基于USB的数据采集系统设计摘要:本文针对高速数据采集器的需要,设计了基于USB的数据采集器。设计工作包括硬件设计和软件设计两部分,硬件部分本系统选用了ATMEL公司的单片机AT89C5131作为微控制器,负责接收由A/D转换得到的数字量数据,并通过其内置的USB控制器实现单片机和PC机之间的USB数据通信。AT89C5131是ATMEL公司推出一款新型带有USB微控制器的芯片。有较快的处理速度和较大的存储容量,有在系统可编程的功能,是USB接口设计的理想选择。关键词:数据采集,USB,A/D,AT89C5131,Abstract:Inthispaper,theneedforhigh-speeddataacquisitionsystemdesignedUSB-baseddataacquisition.Design,includinghardwaredesignandsoftwaredesignintwoparts,hardwarepartsofthesystemselectedastheATMELCorporationAT89C5131microcontrollermicrocontrollertoreceivetheA/Dconversionbythedigitaldata,andthroughitsbuilt-inUSBControllerBetweenthemicrocontrollerandPC,USBdatacommunication.ATMELAT89C5131isanewcompanylaunchedwithaUSBmicro-controllerchip.Afasterprocessingspeedandlargestoragecapacity,thereisin-systemprogrammablefunctions,isidealforUSBinterfacedesign.Keywords:dataacquisition,USB,A/D,AT89C51,LED目录1前言……………………………………………………………………………………………12整体方案设计…………………………………………………………………………………22.1方案比较…………………………………………………………………………………22.2方案选择…………………………………………………………………………………33单元模块设计…………………………………………………………………………………33.1元器件选择………………………………………………………………………………33.2特殊元器件介绍…………………………………………………………………………33.2.1AT89C5131介绍……………………………………………………………………33.2.2ADC0809介绍………………………………………………………………………43.3单元模块功能介绍………………………………………………………………………53.3.1AT89C5131USB接口电路……………………………………………………………53.3.2A/D转换接口电路……………………………………………………………………63.3.3外接存储器接口电路………………………………………………………………93.3.4系统外围电路模块…………………………………………………………………114软件设计………………………………………………………………………………………114.1固件程序设计…………………………………………………………………………114.2USB设备驱动程序设计………………………………………………………………135结论……………………………………………………………………………………………14参考文献………………………………………………………………………………………15附录1:电路总图………………………………………………………………………………16第1页1前言现代工业生产领域和科学研究中往往都需要采集数据,并对采集到的数据进行分析和处理。随着科技的发展特别是计算机技术的逐渐成熟,数据采集器的应用已经非常广泛,同时对于数据采集的要求也越来越高,特别是在一些高实时性要求(如动态图像数据实时传输)的场合,往往需要进行高速数据采集才能保证数据传输的准确性。在数据采集系统得到广泛运用中大多采用RS232接口,它不适合于便携式应用场合。USB(通用串行总线,UniversalSerialBus)近年来开始在计算机外设中得到普及,并逐渐成为计算机标准外设,它的出现使传统数据采集的问题可以得到很好的解决。相对于传统的串行、并行接口,USB的优势在于:即插即用,支持热插拔;传输速度快,USB2.0提供最高达480Mbps的传输率;最多可连接127个设备;电源可从计算机或集线器获得,不需要外加电源。USB设备在PC领域的应用目前已经非常普遍,如USB数码照相机、USB摄像头、USB打印机等;而考虑到USB的各种优势,基于USB总线的数据采集器也正逐渐成为工控领域的应用热点。目前国内外都已开发出了一些成熟的USB数据采集设备产品,可见基于USB的数据采集器具有广阔的应用前景,因此本课题的研究具有现实意义。本文针对高速数据采集器的需要,设计了基于USB的数据采集器。设计工作包括硬件设计和软件设计两部分,硬件部分本系统选用了ATMEL公司的单片机AT89C5131作为微控制器,负责接收由A/D转换得到的数字量数据,并通过其内置的USB控制器实现单片机和PC机之间的USB数据通信。AT89C5131是ATMEL公司推出一款新型带有USB微控制器的芯片。有较快的处理速度和较大的存储容量,有在系统可编程的功能,是USB接口设计的理想选择。第2页2整体方案设计2.1方案比较方案一:USB传输的主要特点是传输速度快,因此USB数据采集系统主要是应用于大量数据的高速采集。实际应用中,往往同时需要对多个外设的多路数据进行采集,因而对数据传输的实时性要求较高,USB2.0的出现使这种高速数据传输已成为可能。本系统在实际应用中的硬件设计框图如图1所示。系统中外设1~外设n具有多路数据需要进行同步采集(数据信号可能包括电压、电流、声音、图像等各种模拟信号),因而需要选用能对多路数据进行同步采样的A/D转换器将这些模拟信号转换为数字信号。该芯片能对最多8路模拟输入信号进行同步A/D转换,且分辨率达到14位,完全能满足对多路数据同步采集的要求。转换得到的数据送入主控制器,再通过USB控制器芯片使这些数据可通过USB2.0的高速传输送到PC机中。控制器芯片可选择位数较高(16位/32位)的MCU/DSP,从而能满足多路并行数据的输入。在此方案中USB控制芯片选用AT89C5131单片机芯片,它是ATMEL公司的。AT89C5131为内置USB控制器的8位单片机,定位于计算机和工业USB系统中图1硬件设计框图方案二:基于USB接口的数据采集系统硬件部分由多路开关、A/D转换器、微控制器、USB接口芯片、主机组成。运用的芯片为AT89C52。系统中的多路开关和A/D采用传统方法设计,微控制器和USB接口芯片分别采用ATMEL的AT89C52和Philips公司的PDUSBD12实现.AT89C52的ALE和D12的ALE相接,表示采用单独地址和数据总线配置。USB设备固件程序采用单片机C语言来写,用户通过主机应用程序调用WindowsAPI函数,将请求下发到驱动程序,由驱动程序构造USB,通过USBD类,下发到微控制器。微控制器根据USB接口芯片触发的中断类型和用户传来的命令,进入到相应的中断服务程序进行数据采集。经过A/D转换后再重新打包由USB接口芯片通过USB接口发送给主机,从而完成整个采集过程.。外设1外设2外设3。。。。。。外设n多通道同步采样A/D芯片多路输入信号USB数据采集主控制器(MCU/DSP等)USB控制器芯片USB2.0第3页2.2方案选择两方案的不同在于方案一选用的USB控制芯片为AT89C5131,方案二选用的USB控制芯片为AT89C52。方案一的软件设计包括固件设计、USB初始化、中断处理程序、请求处理程序、配置请求、A/D转换数据程序、USBDI与USB驱动程序等模块组成。方案二的软件设计流程图如图2所示。图2方案二软件流程图在本次课程设计中我们选用的是方案一,用AT89C5131为USB的控制芯片。选用此方案主要是由于AT89C5131为一款我们不太熟悉的51系列单片机,我们可以通过这次课程设计来学习一下,接受更多的知识。3单元模块设计3.1元器件选择在本次设计中我们选用的USB控制芯片为AT89C5131,除此之外还要用到ADC0809、74HC393、非门芯片74LS00、反相器芯片74LS04、AT28C64、74HC573这些器件。3.2特殊元器件介绍3.2.1AT89C5131介绍AT89C5131是ATMEL公司的一款带USB控制器的8位闪存单片机。下面对AT89C5131单片机的主要管脚进行介绍其引脚分布图如图3所示:P0、P1、P2、P3和P4口是I/O信号引脚。P0口可作为地址/数据复用总线,作为地址总线时,P0.0~P0.7上为低8位地址;P1.0~P1.7则与键盘接口信号KIN0~KIN7复用,数据采集系统WDM驱动设备数据分析处理用户控制界面USB设备开始或停数据显示表格曲线数据查询数据打印第4页同时P1.0和P1.1又与T2和T2EX复用,P1.2则与可编程计数器队列的外部时钟输入ECI复用,P1.3~P1.7与捕获外部信号输入或比较外部信号输出CEX0~CEX4复用。P2口也可以作为地址线,此时P2.0~P2.7上输出高8位地址。P3口各引脚均具有第二功能,P3.0和P3.1与串行信号接口RXD和TXD复用,P3.2和P3.3与外部触发脉冲0INT和1INT复用,P3.4和P3.5与定时器/计数器T0和T1复用,P3.6和P3.7则与写信号WR和读信号RD复用;另外P3.3~P3.7还与驱动LED输出引脚LED0~LED3复用。P4.0~P4.1分别与TWI串行时钟SCL和TWI串行数据SDA复用。D+和D-分别是USB总线正信号I/O引脚和负信号I/O引脚。本系统中利用D+和D-两个引脚与USB端口的两根数据线D+和D-相连,从而实现USB数据通信。RST是单片机复位信号引脚,ALE是地址锁存使能信号引脚,只有当读写外部程序存储器和使用MOVX指令时该引脚信号有效。EA————引脚接高电平时芯片是从内部存储器寻址的,必须接低电平才能使芯片从外部程序存储器起始地址0000h开始寻址。图3AT89C5131引脚分布图3.2.2ADC0809介绍ADC0809采用28脚双列直插式封装,其引脚功能说明如下:IN0~IN7:8路输入通道的模拟量输入端口。START、ALE:START为A/D转换启动控制端口,ALE为地址锁存控制信号端口。这两个端口可连在一起,通过软件输入一个正脉冲即可启动A/D转换。EOC、OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口。这两个端口也可连在一起,表示A/D转换结束。当OE端的电平由低变高,打开三态输出锁存器,将转换得到的数字量输出到数据总线上。VREF(+)、VREF(-)、VCC、GND:VREF(+)和VREF(-)为参考电压输入端;VCC为主电源输入端,GND为接地端。一般VREF(+)与VCC连接在一起,VREF(-)与GND连接在一起。第5页CLK:时钟输入端。ADDA、ADDB、ADDC:8路模拟开关的3位地址选通输入端,用来选择对应的输入通道。ADC0809的工作时序如图8所示。其中tWE为最小ALE脉宽,典型值100ns;tD为模拟开关延时,典型值:1μs;tWS为最小启动脉宽,典型值:100ns;tEOC为转换结束延时,最大为8个时钟周期:+2μs;tC为转换时间,典型值:100μs。图4ADC0809工作时序由图4可看出,当送入启动信号