刘先盛
渤海大学
基于USB总线的实时数据采集系统设计
刘先盛
渤海大学
在现代工业生产以及科学技术不断发展的过程中,做好数据的采集工作有着非常重要的意义,当前采集系统中的采集方法存在的各种问题,可能会存在安装麻烦以及由于环境的影响而导致采集数据的问题,所以会对中断资源产生限制,不利于进行很好的扩展,但是USB总线控制更好地解决了存在的各种问题,文章分析了主机和小型科学仪器的接口方式,认为通过串行总线就可以实现主机和小型科学仪器(USB)的通信,我们从硬件设计,固件设计,设备驱动设计及应用软件设计的方面对USB总线的数据采集,有利于下一步多台仪器和主机互联的目标。
USB总线 数据采集 传输系统
因为科学技术的不断进步和发展,慢慢的出现了各种便携式的电子产品,但是因为工程实践中出现的各种采集装置的问题,而且采集的过程中很复杂,数据处理系统的体积会影响数据采集技术的发展,USB接口技术与PCI或ISA总线接口技术比起来,因为数据传输效率比较高所以这些电子产品能够进行传输,单片机是为了对智能仪器设备进行控制而使用的一种微型计算机,这种计算机的功能非常强大,而且具备优异的性能,这种单片机的分支转移目标以及定位处理功能对工业控制的需要有着重要的意义。
为了促进接调度速度和精度的提升,采用了基于SPCE061A 16位单片机的USB实时数据采集系统。得出了一种USB通信的详细硬软件设计方案和数据处理方法,而且USB总线技术有利于PC机总线的发展,因为连接的方式很简单,而且连接的速度比较快,这里利用USB2.0实现和RS-232接口通信,通过PC机可以对原有的数据进行计算,在对硬件设计的过程中,对于充分发挥软件的作用有着重要的意义,因为传统的编程技术效率不高,而且进行及时处理很困难,需要通过windows多任务处理功能,通过各种编程技术对数据进行处理。
当前USB控制器出现了两个,一种是有USB接口的单片机,不是USB接口的芯片,要更好地实现USB通信就要有外部微处理器进行协调,然后实现数据的交换;可以使用公司的接口芯片让USB更好地进行传输,而且提供了一种8位的并行接口有利于数据以及地址的复用,而且可以很好的和单片机进行连接。
本设计使用了桥式整流电路和AD522 构成前端调理电路,AD522 是一种高精度的数据采集器,A/D转换主要使用的美国模拟器件公司的产品AD7884,这种产品具有高速而且高精度16位A/D转换器,AD7884工作速度也比较高,对干扰噪声比较敏感,使用的主要方法是在外部电路以及电源单加上特有电路,在输入端和模拟地使用了运算放大器,有效的改进了 AD7844的动态特性。
在该系统中,时钟电路的信号是通过接口电路的DMA控制器获得的,由于计数器译码器以及触发器构成的分频电路,这种电路一般会提供125HZ 驱动信号,有利于对4个信道进行采集。
这个信号会经过特定的处理和分屏,而且时钟电路的结构不复杂,可以很可靠地进行工作,系统的缓存通过4片6264 组成,地址编码会通过接口电路的控制器实现,可以通过硬件自动地完成对数据的采集,如果缓冲存储器半满的时候,就可以对数据进行读取,而且硬件可以继续对缓存进行采样。
有用的USB数据采集系统有 A/D转换器,,微控制器以及USB通信接口:在这里, 由于ADuC812 内部集成了 A/D 转换器和微控制器,有利于数据采集系统硬件部分的采集,整个系统由 USBN9604 和 ADuC812 连接而成.系统硬件结构框架如图 1所示。
图1 硬件总体结构
单片机和采集电路的电源会通过计算机的USB接口获得,而且ADuC812 单片机的 P0 口采用的分时复用的方法,既可以用作地址线,也可以用作数据线,因为实现了总线复用,所以它们之间的连接更简单,因为数据和控制信号通过中断和读写8 位地址/数据线来传递。USBN9604 会占用到地址7Fxxh,有用的地址范围为7F00h~7F3Fh.,单片机也可以对数据进行实时采集,一般转换器的基准电源为0~5 V,我们可以使用5V的电源,如果进行了模拟样的采集以后,需要进行滤波以及放大才能将信号进行转换,才能在一定时间内进行模拟量的转换,所得的数据临时存放在内部的 RAM 或外部扩展的 RAM 中,如果接收到了程序的指令USBN9604 的发送 FIFO 中,通过它可以发送到上层设备,有利于更好地处理USB通信,他的处理能力不强,进行USB协议的解释,所以需要将数据和控制信号进行分布,USB使用四芯电缆连接,电缆中有四条线,这几条线可以标识设备,可以标志高速设备或者是低速设备。上面图1为硬件总体结构图。
系统的软件有设备单程序和驱动程序,因为主机驱动程序会涉及到windows内核移动,所以内容会出现复杂的情况,要对设备单的程序进行介绍,设备端程序也要通过各种代码进行书写,可以使用汇编语言进行编写,可以使用C51语言编写,有利于设备的数据管理和交互,图2是一种主程序的框架,实现了设备和主机驱动程序相互响应,而且有利于设备的添加配置,删除等基本操作数据交互是让设备和主机之间进行数据包的传送,有利于单片机及 USBN9604 的初始化工作,数据的采集需要通过终端的方式进行,共有 3 个中断程序 ,每个程序都要设置 A/D 转换,这样才能更好的接收数据并且存储,如果获得了主机命令,就要对命令类型进行判断,才能让数据进行传送和事件处理,9604的初始化会涉及到各种设备的问题,在对设备进行枚举的时候,需要发送各种数据包,这样才能将数据信息更好地传送,包括设备的类型以及设备的接口,这样才能为设备分配各种地址,有利于设备更好地进行初始化操作,设备完成初始化操作后就可以进行正常工作,对驱动程序的编写是一种很困难的工作,还没有需要处理的窗口信息,如果没有windows系统的保护作用就会影响操作系统,而且设备驱动程序是系统非常信任的一部分,会对系统的发展产生影响,出现系统崩坏的情况,所以在开发的时候要注意驱动程序的配备:C ++,Win-dows device developer kits(DDK),此外还要有必要的调试工具,比如:SoftIce、 Winbug等。驱动程序使用 WDM 模型 ,支持设备的即插即用。
USB驱动程序是是基于WDM的。对于USB设备来说,驱动可分为USB总线驱动程序以及USB功能驱动,操作系统就可以对总线进行驱动,因为和实际的硬件有联系,所以有利于进行低层的通信,总线驱动程序是通过开发者进行编写的,在USB总线驱动程序的上层,通过总线驱动程序会发送包含URB的IRP ,有利于对USB设备信息进行接送。
WDM的结构特点和WN32程序设计的消息驱动很相像,这种驱动体制的主体是一个入口函数DriveEnry ,函授的参数是指针会指向某个初始化的驱动程序,这样的方法会将函数指针填入到驱动程序中,这些指针对操作系统指明了驱动程序容器中各种子例程的位置。以下图2就是本文所涉及的DriveEnry 例程实现。
图2 USB系统驱动程序层次关系
USB总线接口作为计算机的一种接口,在许多应用中获得了广泛的发展,因为计算机外设设备的不断进步,有利于满足人们的需求,所以在许多音像设备以及语音设备中都使用了USB接口,本文分析了USB总线数据采集系统,并且介绍了方案设计的硬件和软件方法,因为整个系统的调试过程很复杂,,包括数据采集硬件的固件程序调试和 PC 机上驱动程序的调试。在这里 ,我们可以使用硬件仿真器这样才能对数据采集系统的软硬件更好进行仿真,有利于程序获得良好的效果,也能够实现整体的性能,有利于预期目标的实现,这种设备在国内外处于高速发展的时代而且在国内也获得了广泛的应用和发展,采用 USB2.0协议的 USB 接口 ,最大限度的提升了数据的传输速度,如此高的传输速率对于传输速率的发展有着重要的意义,通过这种高设计的设备控制,有利于实现动态图像的控制和传输,随着时代的发展和进步,USB必将在更广阔的发展领域中获得应用。
[1] 陈繁.USB在数据采集系统中的应用[J].知识经济,2010(16)
[2] 臧巨轮,朱长青,王川川等.USB总线数据采集设备驱动程序的设计[J].国外电子测量技术,2009(12)
[3] 蒋承延,贾日亘.基于USB的嵌入式远程视频监控系统设计[J].重庆工商大学学报(自然科学版),2009(6)