美章网 资料文库 生理参数采集模块的USB接口设计范文

生理参数采集模块的USB接口设计范文

时间:2022-05-31 09:36:15

生理参数采集模块的USB接口设计

摘要:

采用USB接口芯片和多通道生理参数采集模块设计了一种采集模块与上位机PC通信的USB接口,实现了多通道生理参数的实时数据采集。从通信实现的上位机和下位机两方面讨论了接口的设计和实现过程。阐述了基于PC的上位机驱动程序设计,基于USB接口芯片的下位机硬件设计和固件设计,与PC串口通信对比了数据通信的实时性和准确性。

关键词:

USB接口,生理参数,数据通信,WDM驱动

以往的多通道生理参数采集接口一般为PCI插槽或串口。PCI接口安装复杂、硬件资源受限制,而串口速度比较慢,越来越轻便的电脑已经不集成串口。由于以上缺点,本文设计了一种生理参数采集模块的USB接口实现。以OEM定制生理参数采集模块为基础,通过PDIUSBD12实现了与上位机PC的实时高速数据通信。该接口集成度高、满足生理参数尤其是心电数据的通信率要求、使用简便。

1系统设计方案

系统采用OEM定制的生理参数采集模块,此模块具有同时采集用来测量和监控心电波、心率、无创血压(收缩压、舒张压、平均压)、血氧饱和度、呼吸和体温的功能。模块定制接口具有全双工通信模式,输入为规定格式的控制命令字,输出数据的比特率为10000bps。下位机选用AT公司的MCU和Philips公司的PDIUSBD12完成了USB通信接口的硬件电路和固件设计。下位机电源包括两部分,一部分为DC6V直接给采集模块供电,另一部分为USB接口电源设计为直接从USB总线索取5V电源。上位机PC的软件设计包括驱动程序和数据测试程序两部分。驱动程序为WindowsNT32位操作系统下生理参数采集模块的USB接口总线的WDM驱动。基于VC开发的测试程序主要用来测试数据双向通信准确性。系统结构图如图1所示。

2下位机接口设计

2.1硬件电路下位机硬件设计实现了USB通信接口。PDIUSBD12是一款性价比很高的USB器件,通常用作实现与微控制器进行通信的高速通用并行接口。由于D12已有成熟连接电路,在此不再详细介绍。对比D12的两种不同读写方式:IO方式和总线方式(如图2所示)。针对不同MCU可以选择合适的连接方式,修改底层功能函数。IO方式为IO模拟的方式模拟D12的读写,读写的时候需要指定IO引脚。读写的时候按照D12时序一次进行。总体分为三步:1)根据命令和数据置位A0(A0=1选择命令,A0=0选择数据);2)输出对D12操作的地址;3)读出或写入数据。这种方式的优点就是适用范围广,适用于各种单片机,尤其是不带总线的单片机。比如AVRMEAG8,但缺点是代码复杂,执行效率低。本文采用总线读写的方式。MCU选用AT89S52,它自带总线结构。可以很简单的实现对D12的读写操作。将D12的CS_N引脚连接到MCU的P2.7引脚。总线地址最高位为0时D12片选有效。

2.2USB固件设计固件设计的目标就是使D12在USB上达到最大的传输速率。固件程序主要包括两部分:USB总线的枚举和数据通信处理。USB总线的枚举是USB协议中最复杂的部分,枚举的完成也是通信成功的必备条件。此设计按照USB协议标准实现了USB标准请求,成功完成设备枚举。数据通信处理核心功能为数据双向实时传输。此部分程序模拟了操作系统中的双线程功能。一个线程处理MCU采集生理参数数据过程。程序流程图如图3所示。设计为硬件中断方式,从而保障数据接收的实时性、准确性。另一个线程为主函数循环,主要处理USB与主机的通信过程。如图4所示。USB协议规定了4种传输类型:批量传输、同步传输、中断传输和控制传输。由于同步传输无法保证100%数据准确性;中断传输适用于数据量小,保证查询频率的传输;而控制传输主要应用与枚举的实现,故选择批量传输模式。为了确保数据的实时传输,软件设计了主副两个数据缓冲区,通过修改指向缓冲区的指针,实现了循环数据缓冲区功能。D12设置为模式0,使用端点2的批量输入输出,最大缓冲区字节设置为64字节。

3上位机驱动设计

3.1USB驱动程序在Windows操作系统下,不能直接对硬件接口进行操作,必须采用驱动程序作为桥梁[3]。WDM是微软退出的一种驱动程序模式,旨在提供一种灵活方式简化驱动程序开发。WDM驱动采用了分层驱动的方式,在USB驱动框架中主要分为:总线驱动、功能驱动和过滤驱动。总线驱动已经由操作系统提供,而过滤驱动是一种监视、拦截和修改数据的驱动。因采集模块没有确定对应系统类,故开发了其专有USB功能驱动。开发基于WDM模型的驱动程序不仅需要了解系统内核原理,而且还要熟练WindowsDDK编程。为了缩短开发周期提高效率,选用第三方工具:DriverStudio。它使用DriverWorks进行WDM驱动程序开放,对标准的WDM驱动程序进行了封装,简化了驱动开放过程。可以简单使用向导方式生成一个驱动框架。框架程序大体都相似不再详述。

3.2应用测试程序应用程序需要获取驱动程序的GUID和设备路径才能使用CreateFile打开设备进行读写操作。以上三个函数通过GUID查找设备,获取路径信息。使用CreateThread函数创建了两个子线程分别用于端点读写操作。通过DeviceIoControl函数分别使用EP2_READ/EP2_WRITE功能代码实现端点2读写操作。图5为基于VC编写的上位机USB数据测试程序。图5中右边所示为接收的生理参数数据。

4结束语

经过和串口测试比较,此设计完全可以取代串口。通过此模块可以扩展上位机应用软件,可以实现远程医疗、生理数据存储等功能。

参考文献

[1]周立功.PDIUSBD12USB固件编程与驱动开发[M].北京航空航天大学出版社,2003

[2]陈心浩,刘海华,陈亚光.基于USB接口的多通道实时数据采集系统[J].计算机工程与应用,2003(19):128-129

[3]薛园园.USB应用开发技术大全[M].北京:人民邮电出版社,2007

[4]陆永忠,刘峰.嵌入式高速实时数据采集系统设备驱动程序的研究[J].计算机工程与科学,2006,28(10)

[5]ArtBaker,JerryLozano.Windows2000设备驱动程序设计指南[M].施诺,译.北京:机械工业出版社,2001

作者:高勇 闫聪聪 单位:天津理工大学聋人工学院 河北工业大学控制科学与工程学院

被举报文档标题:生理参数采集模块的USB接口设计

被举报文档地址:

https://www.meizhang.comhttps://www.meizhang.com/sjlw/jksjlw/694405.html
我确定以上信息无误

举报类型:

非法(文档涉及政治、宗教、色情或其他违反国家法律法规的内容)

侵权

其他

验证码:

点击换图

举报理由:
   (必填)