利用S3C44B0X的心电血压监测仪USB接口设计

发布者:钱老李最新更新时间:2013-03-30 来源: dzsc关键字:S3C44B0X  心电血压监测仪  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接口固件实现

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

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

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

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

  USB固件数据结构

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

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

USB固件框架USB固件通信流程 

图2 USB固件框架USB固件通信流程

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

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

  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控制芯片接口的软硬件设计,通过心电图的传输实验,表明该系统具有高可靠性和准确性。

关键字:S3C44B0X  心电血压监测仪  USB接口 引用地址:利用S3C44B0X的心电血压监测仪USB接口设计

上一篇:S3C2410 的的特点及其软件平台综述
下一篇:看门狗工作原理及定时器操作

推荐阅读最新更新时间:2024-03-16 13:20

基于S3C44B0X的移动机器人的应用研究
移动机器人利用导航技术,获得机器人的目前所处的位置,结合传感器技术对周围外界环境(障碍物等)作实时探测,并根据环境提供的信息规划一条可行路径完成达到目标点的任务。移动机器人技术涉及到传感器技术,导航技术,计算机技术,人工智能等多个领域,因而对移动机器人的控制部分提出很高的要求,特别是视觉传感器的出现,要求控制系统不仅存储量大,而且处理速度快等。以往基于PLC和单片机控制的移动机器人就不能很好的满足实时性快速性的特点。 随着ARM处理器的出现和发展以及嵌入式系统的发展,移动机器人的实时性快速性要求便能得到很好满足,现在该技术已经在多种领域得到有效的应用。本文是以SAMSUNG公司一款基于ARM7TDMI核的低功耗高性能的32位处理
[工业控制]
基于<font color='red'>S3C44B0X</font>的移动机器人的应用研究
基于USB接口和DSP的飞机防滑刹车测试系统
飞机防滑刹车控制器作为飞机防滑刹车系统的核心部件,其设计好坏直接影响到飞机的安全起飞和安全着陆刹车,系统性能的好坏需要通过测试设备来检验。我国对控制器的研究已有半个多世纪的时间,从机械-气压式到目前的数字式,均取得了良好的效果。而对控制盒测试的研究却处于一片空白,迄今为止仍用人工仪器对控制盒进行性能测试,不仅操作复杂,而且耗用大量的空间和时间。本文设计的刹车测试系统可以弥补此项空白。 微机技术的发展、单片机的广泛应用以及便携式电脑的出现,为测试系统的发展提供了良好的硬件平台,高速化、便携式、微型化、低成本、智能化成为测试系统的最大特点。通用串行总线(USB)以其即插即用、速度快、低成本等特点而倍受青睐,逐步取代了传统的RS232
[测试测量]
HTC和索尼的VR之战 谁将笑到最后?
    本文来自爱范儿   当今的 VR 行业,一如十年前的智能手机行业,一群玩家开始进入到这个行业。吵吵嚷嚷,好不热闹。   HTC vive、Oculus Rift 和索尼 PlayStation VR 是目前 VR 领域最享盛名的三款产品。关于它们三者的争论已经不少,谁更好,谁能笑到最后,每个人都有不同的看法。   MIT Technology Review 最近一篇名为《为什么 Oculus 和 HTC 在 VR 领域需要小心索尼?》(Why Oculus and HTC Need to Watch Out for Sony in VR)的文章指出,凭借着三个优势,拥有 PS VR 的索尼将会在三者中突围。 第一
[手机便携]
可监测人体脉搏波及心率的健康鼠标
  脉搏波的波形特征与心血管疾病密切相关,为此用户需要一种简单、实时的便携装置。通过安装在正常使用鼠标时大拇指触摸到的鼠标位置的反射式脉搏波光电传感器采集脉搏波信号,信号经过滤波、放大和A/D转换后,利用单片机对脉搏波信号处理并得出心率数据,最后通过USB接口连接电脑端软件显示。将鼠标和反射式光电传感器结合制成成品之后,经过实际测试,传感器能够很好的测得手指脉搏波并输出。这种可监测人体脉搏波及心率的健康鼠标可以在用户使用鼠标的不经意状态时检测并记录脉搏波及心率。   人体脉搏波中蕴藏着丰富的生理病理信息,大量的临床实测结果证实,脉搏波的特征与心血管疾病有着密切的关系。脉搏波所表现出来的形态、强度、速率与节律等方面的综合信息的确在
[单片机]
基于ARM的心电信号处理系统设计
  本文设计了一个具有数字化、信息化特征的心电信号处理系统。该系统以 32 位高速 ARM 处理器为硬件平台,以实时操作系统作为软件平台,对硬件系统的资源进行了调度和分配,达到了对心电信号进行实时处理的效果,并且实现了对心电信号的实时显示、实时存储等功能。   据统计,我国目前有县及县级以上医院1.3万家,医疗机械总数达17.5万台,加上一些专业心脏疾病治疗机构,我国目前每年心脏疾病的门诊量约在一千万人次以上。根据国家卫生部《全国卫生信息化发展规划纲要》的目标,在2010年要基本实现医院的数字化和信息化。所以未来医疗器械市场对新型医疗设备的市场空间巨大,特别是拥有数字化和信息化特征的心电信号处理系统具有广阔的应用前景和实用
[嵌入式]
基于DSP的USB接口设计方案
  本文介绍了一种基于DSP的USB 接口设计方案,分别从接口的硬件设计、接口操作原理、软件设计流程以及中断服务程序设计要点等方面进行阐述,并利用Cypress 公司提供的USB2.0 接口芯片CY7C68001 实现了USB2.0 从机接口设计,通过硬件平台的搭建和软件程序设计,实现了PC 机与DSP 之间高速双向地传输数据。   1 引言   近年来,随着数字信号技术的发展,需要处理的数据量越来越大,处理的速度也越来越快,因此具有高速性能DSP 芯片的应用得到了广泛重视。而通过DSP 处理的数据往往要传输给PC 机进行存储和再处理,那么就必须解决DSP 与 PC 机之间的高速通信问题。本设计方案以德州仪器(TI)的C5000
[嵌入式]
基于USB接口的虚拟示波器的开发实现
为了克服虚拟示波器应用中的一些缺点,在虚拟示波器中采用了一种新的总线接口标准——USB接口。主要介绍了基于USB的虚拟示波器的独特优点,着重说明了系统整体设计、外插硬件设计、USB驱动软件设计和客户应用软件设计。 关键词:虚拟示波器,USB,Windows驱动模型,快速傅里叶变换 1 系统总体设计   USB规范中将USB分为5个部分:控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同USB设备的客户驱动程序。根据设备对系统资源需求的不同,在USB规范中规定了四种不同的数据传输方式:等时传输方式(isochronous)、中断传输方式(interrupt)、控制传输方式(control)和批(bulk)传输
[模拟电子]
USB接口的数字摄像系统设计
    摘要: 讨论了基于USB(Universal Serial Bus)接口的数字摄像系统的实现。该系统使用CYPRESS公司的EZ_USB系列芯片,并利用其开发板来实现数字摄像系统。该系统完全符合USB1.1协议,是一个新型的多媒体设备。     关键词: USB 摄像系统 I2C总线 固件 USB作为一种新的扩展接口,主要致力于计算机-电话一体化和应用类消费产品。它的数据传输率比标冲串/并口高。USB总线具有时分复用的特点,多个不同速度的USB外设可以通过集线器同时连接到同一台计算机的同一个USB口上,在USB总线带宽允许的情况下,多个外设可以同时工作而不相互影响。USB传输速率适用于中、低速外
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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