基于单片机的心电血压监测仪USB接口设计

发布者:跳跃龙珠最新更新时间:2010-12-04 关键字:心电血压监测仪  USB  接口 手机看文章 扫描二维码
随时随地手机看文章
  引言
    
  家用心电血压监测系统由采集记录设备和上位机电子病历管理系统组成,因此,需要解决数据传输方式问题。传统的通信接口采用简单的RS-232串行UART ,这种方式速度慢且适用性差,而USB转串口芯片的传输性能不能得到根本改善。USB总线接口则具有速度快、易于扩展、支持热插拔、使用灵活方便等优势,尤其适用于家用设备与计算机的通信连接。

  本文重点讨论USB通信协议及其接口芯片的控制方法,针对临床需求,设计实现了具有心电、血压智能监测和USB高速数据传输功能的小型化设备,提供心电、血压数据电子病历查询、打印和网络传输等功能,对于提高家庭健康保健水平具有很重要的意义。

  监测仪的USB接口电路设计
    
  系统主控制芯片采用32位高性能嵌入式ARM微处理器S3C44B0X,USB专用控制芯片选用USBN9603。USBN9603内置7个FIFO端口,包括1个双向的控制端口,3个发送端口和3个接收端口,各有64字节。

  USB控制器与S3C44B0X的接口电路如图1所示。将USB控制器设计为Bank2,即将nGCS2存储体选择线作为USBN9603的片选线,则该芯片的片选地址为0x4000000。本文采用并行数据接口,两个芯片的低8位数据线D0~D7相连接,并行传输通信数据。将MODE0和MODE1引脚都接地,配置USBN9603为非复用方式,由于此工作模式需要地址线A0作为存取USBN9603片内寄存器DATA_IN、DATA_OUT和ADDR寄存器的选择线,需连接32位地址总线中的A18到USB控制器的A0。对USBN9603进行读写操作时,分为两个总线周期:首先,将地址线A0置高,即设置总线地址为0x4040000,将待访问寄存器的地址从数据线D[0:7]写入,这样,就在第一个总线周期将地址送到芯片;然后,在第二个周期,将A0置低,即设置总线地址为0x4000000,读写D[0:7]即可实现对寄存器的读写操作。整个USB通信过程主要是处理包括接收、发送数据等各种中断事件,将USBN9603的INT引脚连接到S3C44B0X的外部中断EINT0引脚,设置USB中断为向量中断请求模式。由于未使用DMA方式,需将DACK置高,DMA请求线DRQ悬空。USB电缆有4条导线,D+和D-是USB差分信号线,另外两个分别是5V电源线和地线。USBN9603支持低速和全速的USB通信,在D+信号线上连接1.5KΩ上拉电阻,使其工作在全速模式。

系统扩展存储器和USB接口原理图

                                      图1 系统扩展存储器和USB接口原理图

  监测仪的USB接口固件实现

    
  USB通信过程的操作是从主机开始的,按照约定的时序先发出一个令牌包,包含操作类型、方向、外设地址及端点号等信息,然后在令牌中指定数据发送者发出一个数据包或者指出没有数据传输。而USB外设要以一个确认包作出响应,表示传输成功。

  本文采用主从式USB通信结构,上位机通过发送各种事先约定好的协议命令,来实现对心电、血压数据的采集及对系统设备的初始化设置,主要包括以下几种数据:心电数据以段为单位,每段包括32KB心电数据及6B的采集时间信息,每次传输若干段,数据量大,对传输可靠性要求也高;血压数据包括舒张压和收缩压及其采集时间,共10B,由于血压监测比较频繁,每次会传输一段时间内的血压监测数据,数据量也比较大;下载升级版的固件等文件信息 。这3种数据的数据流量都比较大,而且可靠性要求都较高,3种数据均选用块传输通道类型,另外,每个USB传输都必有控制传输通道。因此,需要使用3个通道,即控制通道、BulkIN通道和BulkOUT通道。

  USB固件数据结构  
    
  本文涉及USB设备配置枚举阶段上位机在控制传输中要求设备传输的4类描述符,按照层次依次为:设备描述符、配置描述符、接口描述符和端点描述符,其中,较高阶描述符会通知主机任何其它低阶的描述符信息。

  设备描述符是在设备连接时主机第一个读取的描述符,每个设备只能有一个设备描述符,包含整个设备的信息以及设备支持的配置号码,共18个字段。每个USB设备有一个或多个配置描述符,包含设备的电源管理以及设备配置所支持的接口号码,当设备收到获取配置描述符的要求后,传送该配置描述符及其所有接口、端点和其它附属描述符给主机,本文设置一个配置,其描述符共8个字段。接口包含一组端点,本文设置一个接口,其描述符有9个字段,为上位机提供了设备使用端点的数目及其类型等信息。每个接口描述符有零个或多个端点描述符,包含主机与端点通信所需的信息,端点0作为控制端点来通信,端点1和端点2分别为块传输模式,其描述符包含了端点号、传输方向、端点传输类型、数据包最大传输字节等信息。

  USB固件通信流程
    
  USB固件框架流程如图2所示,在进入通信模块后,固件首先调用初始化例程,配置USB接口设备,并使其进入操作状态,然后启用中断,USB通信的主要功能是在中断服务中实现的,主程序只是在循环等待是否有退出的按键,当检测到中断信号时,就会进入中断服务子程序,根据寄存器MAEV的值,判断中断类型,并进入相应的处理过程。

USB固件框架

                                                    图2 USB固件框架

  [page]

  设备的USB通信主要实现心电和血压数据的Bulk传输功能。在USB总线收发数据的通信协议基础上,监测仪还有特定的应用层通信协议。固件接收到用户通信命令后,解析控制命令并执行相应的例程。如传输心电和血压数据命令0x10,固件接收0x10命令码后,从命令参数中获取待传输数据长度、心电或血压的选择传输标志及其记录号等信息,根据记录号调用GetRecordData(),从Flash存储区中查找数据并存入BulkState的发送缓冲区,如果传输心电数据则还需通过GetTIme()获得该段心电数据的采集时间。所有待发送数据准备就绪后开始传输,由于Bulk传输的最大缓冲区为64B,首先发送64B数据,然后在TX_EV例程中判断上位机是否接收成功,若成功则传输下一批块输入事务,否则需要重发,循环重复上述过程直到数据发送完毕。

  USB固件各模块例程

  初始化 
    
  USB接口的初始化例程,包括USBN9603芯片的初始化操作和用户变量的初始化,之后开始设备枚举操作。在初始化阶段,固件需要严格按照顺序对USBN9603的寄存器进行操作。

  USB设备枚举过程 
    
  将系统的USB连接线接入一个USB连接端口(集线器或主机根集线器),设备处于开机状态;在USB的D+和D-数据线和所接入的集线器端口或主机的根集线器之间有两个15KΩ的上拉电阻。此时,上拉电阻会使数据信号线上的电平上升,通知集线器有新设备接入;然后,集线器使用中断通道,报告给主机所发生的事件,确实有新设备接入时,主机向连接设备的集线器发送Set_Port_Feature要求,使集线器向端口发送USB硬件复位命令并持续10ms,然后识别设备的速度。此时,设备已经完成了初始化操作,在主机证明设备已经离开重置状态时,开始在端点0的默认通道上进行USB控制传输,进入枚举阶段。

  块传输标准例程
    
  固件的发送例程通过端点1实现到主机的块传输功能,其流程如图3所示。以上传心电数据为例,固件通过端点0接收主机的上传心电数据要求后,将待传送的数据存入writePtr缓冲区,同时,把待传输的数据、大小等信息存入bulkState。

块传输发送模块例程

                                                  图3 块传输发送模块例程

    
  固件的接收例程通过端点2从主机接收数据,主机先发送一个OUT信令到端点2,SIE从收发器自动接收数据并存储到FIFO2,FIFO2会自动更新接收控制寄存器RXC的状态,数据接收的硬件操作完成后,USBN9603会把一个接收中断传送到S3C44B0X处理器,固件执行接收中断服务例程。

  USB通信协议的主机端实现

  WDM驱动程序包括设备功能驱动程序和总线驱动程序。其中,总线驱动程序由Windows提供,本文主机端软件包括以下3个层次:用户模式下的应用程序、实现USB通信的Win32API动态连接库以及核心模式下的WDM设备功能驱动程序。动态连接库封装了访问核心模式驱动程序的函数,并为用户应用程序提供了访问接口,用户应用程序只需调用即可实现特定数据的传输,而主机端软件设计的核心就是如何开发WDM设备功能驱动程序。

  在Windows2000平台安装Windows2000 DDK,使用Visual C++6.0作为开发工具,同时借助DriverWorks工具包和内核代码调试工具模块SofTICE,以及USB总线监测工具Bus Hound进行WDM驱动程序的开发。

  根据DriverWizard向导提示,选择设备类型为USB ;选择I/O请求包IRP的处理方式为IRP排队方式;创建设备接口为128位的全局唯一标识符(GUID)标识,使得在使用CreateFile()函数打开设备时,WDM能通过GUID识别和访问设备的驱动程序;配置控制、BulkIN和BulkOUT这3个端点分别传输命令和数据。配置3个IOCTL控制命令:MYUSB_IOCTL_ COMMAND是主机发送通信命令的控制命令,其IoctlCode为0x812;MYUSB_IOCTL_ BULK_READ和MYUSB_IOCTL_BULK_ WRITE分别发送Bulk数据传输的读写命令,其IoctlCode分别为0x814和0x815。所有设置完成后,生成.inf安装信息文件。在这些框架下,根据应用需求,即可编写与设备固件通信的主机设备驱动程序。

  当主机要求以Bulk方式读写并传送心电或血压数据时,会给出IOCTL_CODE为MYUSB_IOCTL_ BULK_READ的IOCTL IRP,处理例程为BulkReadWrite()。通过传递不同参数分别实现BULK方式的数据读写功能,首先需要从应用程序获得IRP传递的通道号、输入/输出缓冲区及其大小等参数,调用FindPipe()得到IRP要求的通道实例,在该通道上构造URB、调用SubmitUrb()发送URB,实现与底层USB类驱动程序的通信,完成Bulk数据传输功能。

  结语
    
  本文充分利用USB传输速度快、准确性好、使用方便等特点,将USB接口应用于家用心电、血压监测仪,完成ARM内核MCU与USB控制芯片接口的软硬件设计,通过心电图的传输实验,表明该系统具有高可靠性和准确性。

关键字:心电血压监测仪  USB  接口 引用地址:基于单片机的心电血压监测仪USB接口设计

上一篇:抢占医疗照护商机 德州仪器推出16/32位MCU
下一篇:血压监测仪的设计技术与解决方案

推荐阅读最新更新时间:2024-03-16 11:40

基于μClinux的SoPC应用系统设计详解
嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序四部分组成,其发展主要体现在芯片技术的进步上,以及在芯片技术限制下的算法与软件的进步上。随着芯片制造技术的发展,嵌入式系统的结构也随之发生了重大变革,从基于微处理器的嵌入式系统到基于微控制器的嵌入式系统,继而将可编程逻辑PLD(Programmable Logic Device)技术引入到嵌入式系统设计中,进而又发展到SoC(System on Chip),最终将PLD与嵌入式处理器结合而成为SoPC(System on Programmable Chip),使得SoPC成为嵌入式系统设计的一个发展趋势。    本文采用SoPC内嵌32位的软核处理器Nios
[嵌入式]
一张图让你分分钟了解USB3.1
以下内容来源于中关村在线图说频道
[嵌入式]
苹果为了应对欧盟立法,iPhone或将被迫适配Type-C接口
目前在手机中广泛使用的 USB-C 充电端口已经成为了环保、节能的标配选择,但有一家厂商迟迟不愿更换它产品的充电接口,那就是苹果。苹果的 Lightning 端口和数据线质量一直让广大用户诟病,之所以不愿使用统一的 USB-C 充电端口,可能和苹果所考虑的制造成本有关,以至于最后甚至不提供充电线在包装内,或许他们认为用户可以使用旧的数据线给新手机使用。 不过,由于来自各方面的指责和压力,苹果公司不得不放弃自己的利益为其新品更换 USB-C 充电端口提上日常。由于欧洲相关法规的规定,苹果需要保证其手机符合销售地的规定,最晚要在 2023 年实现 USB-C 充电端口的替换,此前苹果已经因为违反相关规定被提起了诉讼,严令整改。
[嵌入式]
基于STM32 的FSMC接口驱动TFT彩屏的设计方案
  0 引言   随着电子产品的不断更新,各种显示界面的开发越来越多,由于TFT彩屏的性价比高,因而被广泛用在各种电子设备上作为显示屏。目前驱动TFT彩屏的方案有很多,可以用底端单片机驱动一个终端类型的液晶模组,这种模组价格比较贵,当然用起来还是很方便的。   只要单片机通过串口或并行口向TFT发送几个字节的命令,就能在屏幕上显示你需要的效果。本设计利用STM32 的FSMC 总线直接驱动TFT 数字彩屏。这种方案对相应的寄存器进行配置后就可以自动向TFT数字彩屏发送数据,无需CPU参与,让CPU有足够时间来处理其他程序。   1 STM32 简介   STM32 是基于ARM 内核Cortex-M3 的32 位微控制器系
[单片机]
基于STM32 的FSMC<font color='red'>接口</font>驱动TFT彩屏的设计方案
基于FPGA和USB 2.0的高速CCD声光信号采集系统
0 引 言 在现代通信和雷达领域中,宽带、高增益、实时并行处理是现代接收机的重要标志。因而,这种具有高速并行处理能力和特有的大带宽性能的声光处理系统具有巨大的潜在优势。以声光器件为基础的接收机除了具有宽带、高增益、实时并行处理等特点外,还具有容量大,体积小,功耗低等优点。因而,采用声光信号处理技术解决带宽、高增益和实时并行处理问题具有重要意义,声光信号的采集系统的设计是整个声光系统关键之一。这里设计了一个基于FPGA和USB 2.0的高速CCD声光信号采集系统,为声光信号采集提供了硬件平台。 1 系统概述 声光信号采集系统框图如图1所示。系统主要由CCD声光信号采集模块、A/D转换模块、FPGA驱动和控制模块及USB接口
[工业控制]
基于FPGA和<font color='red'>USB</font> 2.0的高速CCD声光信号采集系统
通过集成工业接口数字隔离器减小尺寸和成本
随着低成本竞争和对差异化产品日益增长的需求,工业市场的生存变得越来越艰难。与此同时,安全标准并没有变得更加宽松,要求越来越多的工业应用采用电流隔离,并受到光耦合器的相关处罚。这些处罚包括尺寸增加、功耗、电路板空间、元件数量和成本增加。 设计工程师如何平衡针对恶意突发和浪涌的竞争性要求、设计复杂性和成本,同时尽快进入市场以保持竞争力?人们可以简单地将一组光耦合器连接到现有的收发器,但这意味着成本、设计复杂性、元件数量和电路板空间都会增加。简单搜索“隔离式RS-485”、“隔离式RS-232”、“隔离式CAN”、“隔离I2C“或”隔离USB“揭示了许多基于数字隔离技术的完全集成的解决方案 - 隔离和收发器集成在单个封装中。有些甚至
[嵌入式]
通过集成工业<font color='red'>接口</font>数字隔离器减小尺寸和成本
技术文章—USB-C技术正在强势崛起
本文中,我们将对替换筒形连接器面临的技术挑战以及解决方案进行详细讲解。 替换筒形连接器面临的技术挑战 在使用USB-C PD连接器代替筒形连接器时,工程团队需要完全熟悉USB PD规范,并确保设备在合规性和互操作性方面符合USB-IF的严格认证要求。符合USB-C标准的充电器本质上是一种可编程电源,它需要进行通信以使负载能够请求所需的电压和电流。因此,所有设计都需要微控制器和相关固件来操作完整的USB PD软件协议栈。在设计中引入更多组件将会拉长总体物料清单(BOM),并需要多次迭代来优化电源电路,最终形成一个在技术上和经济上都切实可行的解决方案。 设计最优解决方案 相对
[物联网]
技术文章—<font color='red'>USB</font>-C技术正在强势崛起
海洋光学为 USB2000+光谱仪新增了触发选项
上海2011年8月3日电 /美通社亚洲/ -- 海洋光学( www.OceanOpticsChina.cn )为广受欢迎的USB2000+微型光谱仪增加了新的触发功能,用于提供光谱仪与其它设备间的精确定时和同步。现在除了正常模式(光谱自由采集)外,共有四种低抖动触发模式可供用户选择。典型的应用包括同步采集脉冲光源的光谱,在线检测移动样品时,或当传感器达到某个温度水平时的触发光谱采集。 光谱仪的触发功能可以在设备间提供精确的定时。通过一个脉冲信号触发 USB2000+,使其能够与其它设备同步工作,比如关闭或打开光源、给氙灯发一个脉冲,或起动光谱仪的光谱采集。当 USB2000+工作在外部触发模式,采样系统外的一个事件(如按下一个按
[传感器]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新医疗电子文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 医学成像 家庭消费 监护/遥测 植入式器材 临床设备 通用技术/产品 其他技术 综合资讯

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved