基于USB总线的数据采集设备的设计与实现
随着医学信息网络化的需要,经常需要将各种医学仪器(如脑电图、心电图等)与主机相连,以便于从这些医学仪器获得所需的各种医学信息。同时,在需要的时侯还可以通过主机对这些医学仪器的操作进行控制。
传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线虽具有高的传输速度(132Mbps),支持"即插即用"功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个)。ISA总线显然存在着同样的问题。RS-232C串行总线虽然连接简单,但其缺点是传输速度慢(56kbps),且主机的串行口数目有限。
USB(Universal Serial Bus,通用串行总线)是由Intel、Microsoft、IBM及NEC等共同制定的微机总线接口规范1。由于USB具有较高的传输速度(USB协议1.1支持的最高传输速度为12Mbps,而USB协议2.0支持的最高传输速度更是高达480Mbps),支持即插即用和热插拔功能,USB设备的连接电缆最长可达5 m,且可通过USB集线器进行层式星形拓扑连接(一台主机最多可连接127个USB设备,且可实现最多5级的拓扑连接),因此其非常适合作为主机和医学仪器之间的通信接口。
为便于临床上采集病人的某些生理信号(如心电信号,脑电信号等)23,设计了基于USB总线的医学数据采集设备,其最多支持32个通道的同步数据采集,最高采样率为1kHz,采样精度为16bit,主机的操作系统为Win98。主要完成了四个方面的工作:硬件设计、firmware(固件)设计、设备驱动程序设计以及应用软件的设计。
1 硬件设计
USB数据采集设备的硬件构成见图1。
从图1可知,32路模拟输入信号由多路模拟开关控制将其中的某一路信号接入串行A/D(选用B-B公司的ADS7809),A/D转换的结果经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为并行数据并写入FIFO存储器,80C52系统将数据从FIFO存储器中读出并通过USB控制器送到主机。
当前可供选择的USB控制器很多,如朗讯公司的USS820、国家半导体公司的USBN9602。另外,还有将微控制器和USB控制器集成在一起的芯片,如Intel公司的8x930Hx和8x930Ax,其中8x930Hx支持USB集线器功能。在实际开发中选择了朗讯公司的USS820,其主要特点是完全遵循USB协议1.1,支持12Mbps的全速传输,支持四种传输方式,提供8个端点(Endpoint) 且每个端点的传输类型、传输方向均可自由配置。另外,它还为每个端点提供两套FIFO数据缓冲区,总的数据缓冲区大小可达2240字节。
2 firmware设计
此处firmware(固件)是指被固化到89c52 E2PROM中的程序。firmware主要完成两个方面的工作:控制A/D的采样和通过USB控制器与主机通信。由于89C52系统控制A/D采样的工作非常简单,此处不做介绍。详细介绍89C52系统通过USB控制器与主机通信的工作。
因为89C52系统对USB控制器的操作是严格按照USB协议1.1进行的,因此先对USB协议1.1做一简单的介绍。按照USB协议1.1的规定,USB的传输方式分为4种:控制传输(Control transfer),块传输(Bulk transactiONs),中断传输(Interrupt transactions)和等时传输(Isochronous transactions)。控制传输主要用来完成主机对设备的各种控制操作(如获取设备的设备描述符,设置设备的USB地址等,也可以通过控制传输来定义自己对设备的控制操作,如设置采样参数、开始或停止采样等);块传输主要用来完成主机和设备之间的大批量数据传输,由于块传输在硬件级上对传输数据进行错误检测(若发生错误,它支持"重传"功能),因此它能保证数据传输的可靠性,块传输支持两个方向的数据传输(即主机到设备和设备到主机);中断传输用来完成设备到主机的少量数据传输,它只支持设备到主机方向的数据传输(中断传输跟实际的"中断"概念没有任何联系);等时传输主要用来完成主机和设备之间连续、实时数据的传输(如语音信号),同步传输不对传输数据进行错误检测,它主要保证数据的连续传输。另外,需要注意的是所有的USB传输事务均由主机启动,即USB总线采取主从式结构(master to slave)。
在实际开发中使用了两种传输方式:控制传输和块传输。控制传输用来实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作,而块传输用来完成将采集数据从设备传送到主机。
USB控制器的工作原理可以简单地描述为:当USB控制器从USB总线检测到主机启动的某一传输请求时,USB控制器通过中断方式将此请求通知89C52系统。89C52系统通过访问USB控制器的状态寄存器和数据寄存器获得与此次传输有关的各种参数,并根据具体传输参数,对USB控制器的控制寄存器和数据寄存器进行相
- USB总线概述(12-15)
- USB总线分析仪(12-15)
- usb总线驱动粗略过程(OHCI协议)(12-15)
- USB总线协议基础知识(12-15)
- USB总线正在同步相量丈量单位中的操纵(12-14)
- USB总线枚举过程(12-13)