您的当前位置:首页基于ARM处理器的USB数据采集系统

基于ARM处理器的USB数据采集系统

2023-09-16 来源:小侦探旅游网
第25卷第4期 2011年12月 上海工程技术大学学报 V01.25 No.4 Dee.2011 JOuRNAL OF SHANGHAI UNIVERSITY OF ENGINEERING SCIENCE 文章编号:1009—444X(2011)04—0358—04 基于ARM处理器的USB数据采集系统 刘炳祥 ,程武山 (上海工程技术大学a.汽车工程学院;b.机械工程学院,上海201620) 摘要:介绍了一种基于ARM处理器的USB数据采集系统的设计方案,该系统采用了ARM Cortex—M3内核的STM32F103作为数据采集终端的微处理器.通过USB实现了数据采集终 端与客户端程序间的通讯.经实际测试,整个系统运转正常,最高采样频率为200 kHZ,满足了预 期的数据采集控制与数据传输的要求,并具有可靠性高、实时性强、传输速度快等优点. 关键词:ARM处理器;数据采集;通用串行总线 中图分类号:TP 316 文献标志码:A USB Data Acquisition System Based on ARM Processor LIU Bing—xiang .CHENG Wu—shan (a.College of Automotive Engineering;b.College of Mechanical Engineering Shanghai University of Engineering Science,Shanghai 201620,China) Abstract:A design method of data acquisition system for USB was introduced,ARM Cortex—M3 core chip used for STM32F1 03 was adopted as the microprocessor of the data acquisition terminal,the com— munication between data acquisition termina1 and client program was achieved through USB.The whole system can operate very well in the actual testing.The sampling frequency availabled is 200 kHz,which can meet the expected requirements of data acquisition control and transmission.The data acquisition system has advantages such as high reliability,real time,high transfer speed and SO on. Key words:ARM(Advanced RISe Machines)processor;data acquisition;USB(Universal Serial BUS) 随着数据采集需求的不断变化,传统的纯硬件 采集器系统在数据处理方面的能力已不能满足需 求.目前数据采集系统大多采用软硬件结合的方 数据采集器核心的首选 .本文介绍一种基于 ARM Cortex-M3内核微控制器STM32F103的 USB数据采集系统的设计与实现. 式,USB总线凭借即插即用、热插拔和较高的传输 速率等优点,成为PC机与外设连接的普遍标 准l_1].基于ARM Cortex—M3内核的STM32微控 1 硬件设计 本研究数据采集系统以STM32F103为处理 制器片上集成了全速USB 2.0接口,提供诸如SPI 等多种通信接口,这些特性使STM32处理器成为 收稿日期 2011—09 器,通过MAX1270完成A/D转换 .STM32微 14 基金项目 上海市教 委085知识创新工程资助项目(J20906) 作者简介:刘炳祥(1 984一),男,在读硕士,研究方向为数据采集、汽车电子.Email:6360660@163.corn 第4期 刘炳祥,等:基于ARM处理器的USB数据采集系统 控制器由SPI接口与MAX1270相连,由USB接 口与PC主机相连.STM32微控制器起到连接PC 的外设. 1.2数据采集芯片MAX1270 和MAX1270的作用.PC通过USB总线下传用户 命令,微控制器通过SPI总线与MAX1270通信,包 括发送命令字和收集采样数据.由于MAX1270自 身不带采样率控制,所以,必须由STM32微控制器 的定时器来触发采样操作,从而实现采样率的控 制E .STM32微控制器同时将采样得到的数据通过 MAX1270为8通道、多量程双极性输入、串 行输出、逐次逼近型12位AD转换器.MAX1270 的8位控制字及其功能如表1所示.最高位 START为起始位(高电平),标志控制字的开始. /cs为低电平期间,控制字在时钟脉冲SCLK作用 下先高位、后低位通过DIN端输入. 表1 MAX1270的8位控制字格式 Table 1 8.bit control word format of MAX1 270 USB总线上传到PC.系统结构框图如图1所示. SPI思线 M oI ..............一 控制字PC bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 MAX127() STM32MCU USB总线 USB Moudle 功能START SEL2 SELl SEI,0 RNG BIP PD1 PD0 PD1PD0为掉电/时钟模式选择位.PD1PD0= 10或11时为省电模式.正常工作时MAX1270有 图1 系统结构框图 Fig.1 System structural block diagram 外部时钟与内部时钟两种工作模式.PD1PD0=01 时为外部时钟模式,串行数据的移入、移出,以及数 据采集、转换都由SCLK端的输入脉冲控制.外部 时钟模式分为25 SCLK/s和18 SCLK/s两种方 式,后者转换速率稍快,其原因是/cs在全部数据 1.1 STM32F103微处理器 STM32F103是意法半导体公司新近推出的 基于ARM Cortex—M3内核的32位增强型系列 处理器 ].该处理器主频高达72 MHz,片上带128 k Flash存储器和10 k SRAM存储器,有2个高速 转换期间始终维持有效电平.本系统采用18 SCLK/s的外部时钟模式,其采样时序图如图2 所示. USB 2.0接口、2个SPI接口和多个定时器等丰富 /cs] 几几n几几几同几r]r]几闷网几 几几网n n几几网n网r]r]几几网曰n n r]n同r_ MSB CONTROLBYTE0 LSB CONTROLBYTE1 CONTROLBYTt r s叫s ls叫 1日lP Im lPDOl lsEL 1阿 RESULTI . I A 18 SCLK—————————— CONVERSION —I ACOUUISITIO I一 ONLI— 图2 MAX1270采样时序图 Fig.2 MAX1270 sampling timing diagram SEL2~SEL0为通道选择位,000~111分别 选择输入通道CH0~CH7.RNG~BIP为输入范 二进制补码.MAX1270可使用芯片内的4.096 V 参考电压,也可使用外部参考.本系统使用内部 4.096 V参考电压. 围选择位,MAX1270有4种输入范围.RNG~BIP 置00时,0~5 V单极性输入;置叭时,0~10 V单 极性输入;置10时,一5~5 V双极性输人;置11 时,一10~10 V双极性输入.对单极性输入, 1 LSB=FS/4096,输出数据为12位二进制码.对 双极性输入,1 LSB=FS/2048,输出数据为12位 2 软件设计 在本系统中,软件设计分为3个部分:固件设 计、USB驱动设计和PC程序设计. 上海工程技术大学学 报 第25卷 2.1固件设计 固件需要完成的任务包括两方面,一是与PC 的数据交互,二是采样控制. 1)与PC数据交互 通过USB接口实现,STM32F103C8嵌入的 USB 2.0接口支持全速12 Mbit/s,8个可配置端 点支持控制传输、同步传输和批量传输多种模式. 在这里将实现2个批量传输,端点1用于批量传输 IN,端点2用于批量传输oUT(端点0总是用于单 缓冲模式下的控制传输).传输的数据内容主要包 括下传的控制命令和上传的采样数据.其中,控制 命令主要是开始采样和停止采样.开始采样命令中 带有3个参数,通道、采样范围和采样率. 2)采样控制 微控制器通过SPI1与MAX1270连接, MAX1270自身不带有控制功能,是通过在其DIN 引脚上传人命令字进行采样.命令字中需要的配置 参数(通道和采样范围)由PC下传的控制命令决 定.而采样率控制则通过微控制器的一个定时器 TIM2来实现.根据采样率设置定时器TIM2,在每 个TIM2的中断过程中向MAX1270发送一个命 令字来完成一次采样.采样得到的数据通过SPI1 读取,然后通过USB上传到PC.为了减轻微控制 器的CPU负荷,可以充分利用STM32微控制器 DMA性能,实现采样数据从SPI1的接收缓冲区 到USB发送缓冲区的转移.固件的程序流程图如 图3所示. 初始化usB引擎(端点配 置),建立到MAX1270的 数据通路(配置SPI1) 等待采样开始命令 收到开始命令 据采样率设置T1M2定时中 ,根据通道和采样范围建立 令字,启动定时器进行采样 等待采样停止命令 收到停止命令 关闭TIM2,采样停止 图3固件程序流程图 Fig.3 Firmware program flow chart 固件可以在Keil或者IAR环境下开发.STM32 固件库提供了强大的封装,大大简化了用户程序的 开发.本系统主要用到TIM,SPI和USB固件库. 2.2 USB驱动设计 与其他的USB接口通信一样,由于不是标准 的USB设备,需要编写特定的WDM驱动程序.本 系统采用NuMega公司提供的DriverStudio专门 USB设备驱动开发工具,它是一个大的开发工具 包,包含Driver Works,VtoolsD和SoftlCE等开 发工具 .Driver Works用于开发KMD和WDM 驱动程序,并且对DDK函数进行了类的封装,为 开发WindowsNT,Windows2000和Windows98 WDM设备驱动程序提供了一个自动化的方法. VtoolsD开发包提供了对V×D编程的c/c++类 库支持,利用VtoolsD中的QuickV×D工具可以 快速生成V×D的c/c++代码框架,可以在此基 础上根据系统的需要添加自己的代码.本系统利用 Driver Works开发USB驱动程序,可以大大简化 工作量、缩短开发周期以及降低开发驱动程序的难 度_7 ].本系统USB设备有2个批量端点,每个端 点的配置如表2所示. 表2 USB端点配置表 Table 2 Configuration table of USB end points 驱动程序需要实现的功能是通过端点1和端 点2对设备进行读写.利用Driver Works开发本 系统的USB设备驱动程序的步骤如下. 1)启动VC IDE.从VC IDE的菜单“Driver Studio”中选择“Driver Wizard”,并按向导选择总 线类型为USB,驱动程序类型为WDM. 2)按表2中USB端点配置表进行端点的设 置.因为在USB协议中规定端点0是必须存在的, 所以仅需要对端点1和端点2进行定义. 3)选择端点1和端点2产生Bulk Read及 Bulk Write的代码,结束Wizard设置.此处一定要 设置Driver Works菜单下Driver Build Setting中 的Fbasedir]和ECPU]等项.设置好后,在弹出的对 话框中进行正确的选择,即可生成最终的.sys驱动 程序. 2.3 PC程序设计 PC应用程序建立在驱动程序之上,是整个系 统与用户的最直接接口,可选用多种语言进行开 发.本工作以VC++为开发平台,以两个基本功能 (采样控制和采样数据收集)说明如何进行应用程 第4期 刘炳祥,等:基于ARM处理器的USB数据采集系统 序的开发.应用程序可以根据自身需要进行扩展, 技术,即所有的画面绘制工作在一张与窗口显示界 例如对采样数据的波形显示处理、频谱分析等. 1)建立一个面向对话框的应用程序. 2)在对话框中添加一些控件,表3列出了主 要控件的功能. 程序流程图如图4所示. 表3主要控件的功能表 Table 3 MaiU controis menu 面大小相同的内存位图上完成,待所有的绘制完成 之后,通知显示窗口更新.初始化时,根据显示窗口 的大小建立内存位图和内存DC,并根据设置的量 程绘制坐标,依次将采样数据绘制到内存位图中. 然后,使用线连接当前绘制的点和前一个点,当所 有的点都绘制完成之后,刷新显示区域. 停止采样:通过USB接口发送采样停止命令, 控件名称 功能描述 采样通道 采样通道列表选择数据采样的通道 电压量程 电压量程选择系统输入信号的范围 采样率 用于设置系统的采样频率 查找硬件 检查硬件是否连接好 开始采样 控制系统开始采样 停止采样 控制系统停止采样 退出系统 关闭应用程序,退出系统 系统初始化 一l  等待用户启动采样 l 收到采 启动采样数据读取线程 样数据 发送采样开始命令 J 、 ,< 送数据显示模块进 、、、 行显示处理 停止采样数据侦听 发送采样停止命令 图4 PC应用程序流程图 Fig.4 PC application program flow chart 查找硬件:通过查找USB设备来确认硬件是 否连接好,在硬件插入时,如果没有安装驱动程序, 需要安装驱动;如果查找成功,则可以进行采样. 开始采样:通过USB接口发送采样开始命令, 同时开启一个线程侦听USB接口的采样数据,接 收到采样数据时刷新显示区域.此过程采用双缓冲 停止对USB接口上行数据的侦听. 3 结 语 该系统经过实际测试,整个系统运转正常,最 高采样频率为200 kHz,满足了预期的数据采集控 制与数据传输的要求.本系统硬件成本低、可靠性 高、人机界面友好,有良好的市场应用前景. 参考文献: [1]胡晓军,张爱成.USB接口开发技术EM].西安:西安 电子科技大学出版社,2005. E2]杨宗德.嵌入式ARM系统原理与实例开发[M].北 京:北京大学出版社,2007. E33路永坤.基于USB接口的数据采集模块的设计与实 现[J].自动化仪表,2005,26(2):35—37. E43杜戈,闫健卓,孙景琪.USB总线的体系结构I-J].电 子产品世界,2001(1):66—67. E53王永虹,徐炜,郝立平.STM32系列ARM Cortex— M3微控制器原理与实践[M].北京:北京航空航天 大学出版社,2008. [6]武安河,邰铭,于洪涛,等.Windows2000/XP WDM 设备驱动程序开发[M].北京:电子工业出版社, 2003:5—108. E73李朋勃,张洪平.基于USB 2.0的高速数据采集系统 [J].电子技术应用,2009(10):109—112. E8]曹军军,陈小勤,吴超,等.基于USB 2.0的数据采集 卡的设计与实现[J].仪器仪表用户,2006,13(1): 37—38. [9] Wang B I ,Ji H F,Huang Z Y,et a1.A high—speed data acquisition system for ECT based on the differ— ential sampling method[J].IEEE Sensors Journal, 2005,5(2):308—311. 

因篇幅问题不能全部显示,请点此查看更多更全内容