基于USB的数据采集系统的设计与研究
- 格式:pdf
- 大小:389.40 KB
- 文档页数:5
基于USB的数据采集系统的设计与研究
贾宝金,王宝珠,李晓玲(河北工业大学信息工程学院天津300401)
摘要:为了解决现有数据采集板卡安装麻烦、通用性和可移植性差等问题,开发了基于USB的数据采集系统。介绍USB2.0芯片CY7C68013的结构和特点,开发了基于CY7C68013的硬件设备,并结合AD芯片ADC0804实现了高速数据采集。详细论述了该系统的总体结构、部分硬件和软件的设计,给出了固件程序和客户应用程序流程图。随着时代的进步,技术的发展,USB豳将在更广阔的领域得到更深层次的运用。关键词:CY7C68013;ADC0804}数据采集;固件程序中图分类号:TP274文献标识码:A文章编号:1004—373X(2007)24—187—04
DesignandStudyofDataAcquisitionSystemBasedonUSBJIABaojin,WANGBaozhu,LIXiaoling(SchoolofInformationEngineering,HebeiUniversityofTechnology,Tianjin,300401,China)
Abstract:InordertOsolvetheexistingdataacquisitionboardcardinstallmenttrouble,theversatilityandtheprobabilityinferiorquestion.thispaperhasdevelopeddataacquisitionsystembasedtheUSB.IntroducedUSB2,0thechipCY7C68013structureandthecharacteristic,theauthorhasdevelopedhardwareequipmentbasedtheCY7C68013,whichunifiedADchipADC0804torealizehighspeeddatagathering.Furthermorethepaperelaboratedthissystemoverallstructure,thepartialhard—wareandthesoftwaredesign,gavethefirmwareprocedureandthecustomerapplicationprocedureregulationflowchart.Alongwiththetechnicaldevelopment,USBwillcertainlytOobtainthedeeperlevelutilizationinbroaderdomain.Keywords..CY7C68013;ADC0804;dataacquisition}firmwareprogram
1引言
数据采集作为获取信息的手段,越来越多的应用在各种工业系统中。目前数据采集系统多以PCI,ISA或EPP/ECP等完成数据的传输,这些方式开发调试比较困难,安装不便,通用性和可移植性差;而且PC上的插槽数量、地址、中断资源的有限导致这些方式的可扩展性差[1]。目前广泛应用的USB总线接口具有安装方便、高带宽、易于扩展等优点,USB2.0的传输速率可达到480Mb/s,已逐渐成为现代数据传输的发展趋势之一[2]。
2EZ—USBFX2以及CY7C68013的特点
本文选择Cypress公司USB接口芯片CY7C68013(56一pin),该芯片属于EZ—USBFX2系列。CypressEZ—USBFX2是世界上第一款USB2.0集成微控制器[3]。其在1个芯片上集成了USB收发器(USBTransceiver),串行接口引擎(SerialInterfaceEngine,SIE),CPU(增强型8051微控制器)和一个通用可编程GPIF接口(GeneralProgrammableInterface,GPIF)。集成的USB收发器通过USB电缆的D+
收藕日期:2007一06一07和D一线连接到主机,串行接口引擎(sIE)进行数据的编码和解码、完成错误校验、位填充和其他USB需要的信号级任务。最终,SIE传输来自或将要到达USB接口的数据。FX2的SIE可以在全速(12Mb/s)和高速(480Mb/s)两种速率下运行。为了适应USB2.0增加的带宽,FX2端点FIFO(FirstInFirstOut)和SlaveFⅢo(同外部逻辑或处理器连接的缓冲区)组合在一起,这样可以节省内部数据之间的传送所消耗的时间。CPU是具有快速的执行时间和更多特点的增强型8051,他把内部RAM用作程序和数据存储。CY7C68013有以下主要特征:(1)软件。8051从下载到内部RAM的程序开始运行,这个特征允许固件程序通过主机下载到芯片内部RAM中,从而方便了调试和固件的改写。(2)四个可编程。BULK/INTERRUPT/ISOCHRO—NoUS端点,可以是双缓冲区,三缓冲区或者四缓冲区,这样可以根据外部数据的速率调整缓冲区的宽度和深度,以适应不同的需要。(3)GPIF。允许直接连接到大多数并行接口:8位和16位;由可编程波形述符和配置寄存器来定义波形;支持多个Ready(RDY)输入和Control(CTL)输出。1
87 万
方数据贾宝金等:基于USB的数据采集系统的设计与研究
(4)3.3V。电压供电,减小了控制器的功耗。
3数据采集系统的硬件设计
本系统主要由模数部分、通信部分和电源转换3个部分组成。整个数据采集系统完成对信号的采集、传输和存储。图1为本采集系统结构框图。
图1数据采集系统结构框主要工作流程:经过调理的模拟信号经过模/数转换器(ADC0804)转换为数字信号;USB2.0控制器负责把ADC转换后得到的数据读取到其内部FIFO缓冲区,由程序判断ADC的转换结束;中断信号决定ADC上‘的数据是否有效。PC的用户应用程序发出接收数据的请求,并由设备发出相应的响应决定是否开始传输数据。当系统上电后,系统自动识别设备后加载驱动程序,USB控制器的固件程序通过USB电缆从主机自动下载到其内部程序RAM中,并经过列举和重列举后开始正常工作,计算机可以通过用户软件取得系统的各种配置信息。,USB控制器以GPIF(通用可编程接口)Master模式控制数据采集和读取,并通过CY7C68013GPIF的“波形图”控制ADC的采集和读取数据的时序。3。1USB控制器外围电路设计USB控制器及其外围电路组成了系统的数据读取和传输模块,这部分主要负责读取和传输ADC转换后的数据,并负责与PC机的通信,从而完成这个系统的功能。由于CY7C68013把多重功能都集成到一个片子上,所以外部电路显得不是很复杂,与一般的电路比较,减少了电路复杂的外部数据线和信号线的连接,有利于提高整个系统的可靠性n]。USB控制器部分外围电路原理图如图2所示。
188图2USB外围电路图CY7C68013用自己的片内晶振电路和一个外部24MHz晶振组成系统的时钟电路。他有一个片内锁相环(PLL’电路,衬厢PLL可以靶Z4MHz振荡器频率倍频至480MHz供收发器使用。内部计数器把24MHz的频率分频为内部8051需要的默认的12MHz的时钟频率。XTALIN和XTAL0UT分别为晶振的输人和输出引脚,分别与晶振相连,同时,晶振的两个引脚分别通过一个20~33pF的负载电容接地。DMINUS和DPLUS为USB的D+,D一信号线,分别和USB连接器的相应引脚相接。USB连接器上的VBUS和GND为总线电源线,整个系统的所需要的各种电压都是通过该电源转换而得到。SC!。和SDA分别为12C总线的时钟线和数据线,在本设计中,系统的固件程序采取从主机下载的方法。因此,这里无需连接外部E2PROM,这两个引脚要分别通过一个2.2Q的电阻连接到电源引脚VCC上。RESERVED引脚为芯片韵保留弓{脚,通过一个2.2Q接地。RESET引脚为芯片的复位引脚。该引脚有一个滞后作用并且低电平有效。因为内部锁相环在VCC升至3.3V后大约200弘s保持稳定,所以,RESET引脚所连接的外部RC网络要取适当的值来满足这个需要,典型的取值为:R一100kil,C一0.1pF。WAKEUP为唤醒引脚,在8051和芯片的其他部分为低功耗状态时,USB,系统挂起,PLL和晶振停止工作,当外部逻辑触发WAKEUP,晶振重新工作之后,PLL趋于稳定,同时,8051也会收到一个唤醒中断。RDY0,CTL0,CTLl引脚分别和对应ADC及其外围电路的接口相连,FDEl5:o]分别和ADC的对应数据线连接。3.2A/D采样通道设计本文采用的是CY7C68013的GPIF工作模式,因此直接利用了GPIF的16位并行接口,这样每次可以按字(2个8位)读取数据。考虑到ADC0804的廉价,并且省去了连接多路选择器和其相关的控制接口电路等因素,提高系统的可靠性,利用2片ADC0804同时与GPIF接口相连接,避免了利用多路开关时的所需的转换时间口]。在程序部分,也省去了选择模拟信号通道部分。3.3电源电路设计在本设计中,需要3种大小不同的供电电源,除了ADC0804需要的+5V供电电源外,还有CY7C68013需要的+3.3V的供电电源,模数转换器ADC0804需要的+2.5V的基准电压电7源。由于整个系统可以使用总线电源供电,不需要外加电源,因此需要把+5V的总线电源转换为系统各个部分所需的电源。+3.3V电源是CY7C68013所需芯片供电电压。设计中,选用的是MAXIM公司的电源转换芯片MAX882H],连接电路如图3所示。模/数转换器需要外部提供基准电压,ADC0804需要+2.5
V电压,而且基准电压是否稳定、精 万
方数据雠电壬撞苤》至QQZ笙差墨垒盈总装圣.§兰期一.L一.一..。.=..:.确,直接影响数据转换的精度。而NationalSemiconductor公司的LM336—2.5V是一个能提供精确+2.5V电压的器件,他的集成电路是精确的2.5V并联推挽稳压二极管组成,还有一个用来调节温度对电压影响的引脚ADJ。芯片所产生的2.5V的电压可以很方便的从5V电压系统中获得卟J。
弓。图3+3.3V电源转换电路oI
4数据采集系统的软件设计
该数据采集系统的软件系统主要由3部分组成:USB固件程序(Firmware)、USB设备驱动程序以及客户应用程序。3部分程序之间相互协作来完成整个采集卡的功能。4.1回件程序设计固件程序是指运行在设备CPU中的程序。只有在该程序运行时,外设才能称之为具有给定功能的外部设备。固件程序负责初始化各硬件单元,重新配置设备及A/D采样控制。固件代码的存储位置有3种:第一种是存在主机中,设备加电后由驱动程序把固件下载到片内RAM后执行,即“重新枚举”;第二种方法是把固件代码固化到一片皆PRAM中,外设加电后由FX2通过12C总线下载到片内RAM后自动执行;最后一种方法是把程序固化到一片ROM中,使之充当外部程序存储器,连在FX2三总线上。本文选用第一种方式,这种方式便于系统的调试和升级。Cypress公司为CY7C68013提供了一个开发框架,可以在KEILC51环境下开发。由于开发框架的引入,大大缩短了用户的研发周期。该框架由以下几部分组成:(1)FW.C中包含了程序框架的MAIN函数,管理整个51内核的运行,因为Cypress对这个部分的功能进行了精心划分,一般是不用改动的。(2)用户必须将PERIPH.C实例化,他负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现自己的功能。在这个文件中有几个函数是比较关键的,在这里做特别说明:TDInit函数,负责对USB端点进行初始化设置。本设计中将端点6设置为1024个字节,缓存深度为4级,模式设为自动输入方式。TDPoll函数,负责系统中循环任务的处理。他主要是对各个端点的状态进行查询,处理各种OUT或IN端点的交互。值得说明的一点是,这种处理只是辅助性质的,大部分工作由硬件自动完成。GPIFINIT.C,其中只有一个Gpiflnit函数I他是GPIF模块的初始化函数,一般在TDInit函数中调用。这个函数是由Cypress公司提供的一个GPIFDesigner开发工具根据用户设计的波形生成的,用户不需要自己设计波形查询表,减轻了设计者的工作强度。DSCR.A51是描述表文件,负责USB设备的描述工作,CY7C68013在上电后自动利用其中的VID和PID取代默认的VID和PID。