快捷搜索:

基于USB技术实现采集系统与计算机的通信设计

1 引 言

CCD(ChargeCoupledDevices)电荷耦合器件是20世纪70年代初成长起来的新型半导体集成光电器件。因为CCD器件具有诸多优点:灵敏度高、光谱相应宽、动态范围大年夜、空间自扫描等,使得近30年来,CCD器件及其利用技巧的钻研取得了惊人的进展,分外是在图像传感和非打仗丈量领域的成长更为迅速。今朝,CCD利用技巧已成为集光学、电子学、周详机器及微谋略机为一体的综合性技巧,在今世光子学、光电检测技巧和今世丈量技巧中成果累累。跟着CCD技巧的迅猛成长,针对CCD旌旗灯号的采集及采集之后的旌旗灯号若何与谋略机进行信息通信就成为CCD利用的一个紧张问题,而能够针对CCD每一个象素进行高速采集并实时的传输给谋略机处置惩罚,将会大年夜大年夜的前进采集到的CCD旌旗灯号的精度并办理实时处置惩罚的问题,这在CCD旌旗灯号采集和处置惩罚领域都将有异常广阔的前景。

通用串行总线USB(UniversalSerialBus)是1995年由康柏、微软、IBM,DEC等公司为办理传统总线不够而推广的一种新型的通信标准。USB总线接口具有较高的数据传输率、应用机动、易扩展等优点,异常得当CCD的数据采集。他有低速、全速和高速三种事情要领,即USBl.1版本中.的低速模式和全速模式,低速模式的传输速度为1.5Mb/s,支持一些不必要很大年夜数据吞吐量和很高实时性的设备,如鼠标、键盘等;全速模式的传输速度可以达到12Mb/s。,可以外接速度更高的外设,得当用于线阵CCD的数据采集。在USB 2.0版本中,增添了一种高速模式,其数据传输率最高可以达到480Mb/s,完全可以满意高速CCD数据采集系统的必要。

2 接口硬件组成

本系统选用高速的AD(模数)转换器,用于采集CCD旌旗灯号,配以先辈先出(FIFO)存储器作为数据高速缓冲器,用于存储AD转换后的数据,并采纳具有微节制器的USB接口芯片,从而经由过程USB接口将采集到的数据输入谋略机。系统道理框图如图1所示。

此中应用CPLD技巧完资源采集系统的节制模块。CPLD(可编程逻辑器件)技巧已经成为当今设计数字电路最为盛行的要领,他可以将数字电路集成到一块芯片上,大年夜大年夜减小了电路板的体积和靠得住性,而且他的可编程性使得设计好的电路在进级和改动上变得异常简单和方便。

USB节制芯片选用Cypress公司EZ-USB系列的AN2131QC,片内嵌有一个增强型的8051微节制器,并应用片内RAM作法度榜样和数据存储器,使得芯片具有软特点,容许客户随时赓续地设置和进级。内部框图如图2所示。

EZ-USBAN2131QC相符USB规范1.1版本,有4种传输要领:节制传输、中断传输、批量传输和同步传输。此中同步传输又有2种要领,即通俗读写要领和快速读写要领。在本系统中采纳的是快速读写要领,使得芯片可以在0.5 ms内读写1 kB的数据。

3 软件设计

软件主要分为3部分:USB芯片的固件法度榜样、USB设备驱动法度榜样以及主机的用户利用法度榜样。固件相应各类来自系统的USB标准哀求,完成各类数据的互换事情和事故处置惩罚。USB-驱动法度榜样为USB采集系统供给了利用软件与USB设备的接口,他的开拓使USB广泛利用于数据采集系统成为可能。而利用软件则实现用户与采集系统的交互,完成数据采集敕令,进行实时显示。

3.1 固件法度榜样代码

由USB芯片集成的加强型8051单片机来处置惩罚,当EZ-USB设备连接到USB口时,主机进行总线罗列,根据设备ID先应用系统法度榜样将固件下载到芯片内部,然落后行重罗列,固件作为用户的功能设备开始履行。

Cypress公司供给固件法度榜样框架,来完成节制传输和大年夜部分的数据传输事情。本采集系统的固件法度榜样便是基于此固件框架开拓的,应用KeilC进行编译。法度榜样流程图如图3所示。

图3中:TD_Init()为初始化全局变量;TD_Poll()为用户功能;TD_Suspend()为相应挂起事故;TD_Resume()为相应外部唤醒事故。

EZ-USB应用8051的INT2来相应21种USB中断,自动矢量(Autovector)机制赞助使8051内核进入响应的ISR(Interrupt Service Routine中断办事例程)。在初始化函数中加入使能EZ-USB的SOF(帧肇端)中断语句,可以开始同步传输。每1 ms开始发生SOF中断,标志帧的开始。在SOFISR中从外部FIFO读取一个包长度的字节数据到端点缓冲区中。

3.2 驱动法度榜样设计

USB客户驱动法度榜样是支持即插即用功能的标准WDM(Windows Driver Model)驱动法度榜样,这是分层的驱动法度榜样模型,即设备驱动被分成了多少层,范例地分成:高层驱动法度榜样、中心层驱动法度榜样、底层驱动法度榜样。每层驱动再把I/O哀求划分成更简单的哀求,以传给更下层的驱动履行。最底层的驱动法度榜样在收到I/O哀求后,经由过程硬件抽象层,与硬件发生感化,从而完成I/O哀求事情。在这样的架构下,上面的驱动层就不必要对每个操作系统都要开拓一遍了。USB客户驱动法度榜样接管I/O治理器发来的IRP(I/ORequestPacket),构造URB(USBRequest Block)通报给主节制驱动法度榜样接口USBDI。在USBDI的根基长进行编程将大年夜大年夜简化,用户不用关心IRP的类型,而只必要在响应的分发例程中经由过程构造URB(USBRequestBlock)并将其经由过程USBDI发送下去就可以实现对USB设备的节制了。

开拓USB设备驱动法度榜样的对象今朝广泛利用的主要有2类:

(1)Windows DDK(Device Driver Kits),DDK基于汇编说话的编程要领和内核模式的调用,对没有深挚的操作系统道理和编程水平的职员来说,义务相称艰难。

(2)NuMega公司的Driverstudio对象开拓包,此中的DriverWorks实际上实现了对DDK类的封装,可以供给给用户驱动法度榜样的开拓框架,只需用户在响应的代码段中加入自己系统的节制代码即可,不必懂得内核机制,大年夜大年夜加速了USB外设的开拓速率。本系统便是应用DriverWorks来开拓USB设备驱动法度榜样的。天生的利用接口函数在VC“中调用,大年夜大年夜低落了主机软件的难度。

3.3 用户利用法度榜样设计

利用法度榜样实现的功能有:启动/关闭USB设备,设置USB数据传输管道/端口,采集数据,显示数据等。这里,采纳VisualC++6.0作为法度榜样的开拓情况,并且充分运用了多线程的编程思惟。从而实现同时进行数据采集与实时显示。

为了实现与驱动法度榜样的通信,利用法度榜样起开创建一个事故和一个线程,再将事故句柄通报给WDM,用这一线程来等待WDM发送的事故消息,接管到事故消息后,就读取驱动法度榜样的数据,显示数据。

在Windows中,Win32利用法度榜样调用的APl函数有5个;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。

利用法度榜样为打开一个WDM设备驱动法度榜样,应用CreateFile()函数。他的第一个参数是一个符号链接名。假如用DriverWorks创建一个WDM驱动法度榜样,平日会用类KUniTIzedName天生一个设备符号链接名。这名字的后面有一个数字,一样平常是一个o。例如,若符号链接名为”USBDevice“,则通报给CreateFile()的是”\\\\.\\USBDevice0“。

一旦利用法度榜样得到设备的有效句柄,他就能够调用Win32函数,这将孕育发生对应于此设备工具的响应IRP,发送给驱动法度榜样,完成响应功能。这种关系如表1所示。

4 结 语

本采集系统使用USB技巧实现与谋略机通信,有浩繁的优点:

①安装方便,支持即插即用。

②供电方便,可直接由主机经由过程USB接口供给5V的电压。

⑧性价比高,远优于并行口和串行口的CCD图像采集系统。

滥觞;电子工程网

您可能还会对下面的文章感兴趣: