基于微处理器S3C44B0X的监测仪USB接口控制设计

发布者:xrmilk最新更新时间:2023-02-06 来源: elecfans关键字:微处理器  S3C44B0X  监测仪 手机看文章 扫描二维码
随时随地手机看文章

家用心电血压监测系统由采集记录设备和上位机电子病历管理系统组成,因此,需要解决数据传输方式问题。传统的通信接口采用简单的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通道。

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

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

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

图2 USB固件框架

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

设备的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,使用VisualC++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  监测仪 引用地址:基于微处理器S3C44B0X的监测仪USB接口控制设计

上一篇:基于S3C44B0X的嵌入式GUI的研究
下一篇:基于ADSL技术的热网监控解决方案是怎样的

推荐阅读最新更新时间:2024-11-12 19:31

基于APEX20K和ARM7 TDMI-S微处理器实现通用智能传感器IP核的设计
智能传感器技术是一门正在蓬勃发展的现代传感器技术,是涉及微机械和微电子技术、计算机技术、网络与通信技术、信号处理技术、电路与系统、传感技术、神经网络技术、信息融合技术、小波变换理论、遗传理论、模糊理论等多种学科的综合技术。 智能传感器中智能功能如:数字信号输出、信息存储与记忆、逻辑判断、决策、自检、自校、自补偿都是以微处理器为基础的。基于微处理器的传感器从简单的数字化与信息处理已发展到了目前具有网络通信功能、神经网络、模糊理论、遗传理论、小波变换理论、多传感器信息融合等新理论新技术逐步完善的现代智能传感器。其微处理器硬件也经历了从单CPU结构到多CPU甚至DSP、ASIC与MCU相混合的结构。然而微处理器在可靠性、功耗、功能复
[单片机]
基于APEX20K和ARM7 TDMI-S<font color='red'>微处理器</font>实现通用智能传感器IP核的设计
基于ARM微处理器和Linux的无线气象数据通
自动气象站数据采集器一般基于单片机或PC/104总线控制器设计,具有与PC兼容性好、功耗低、体积紧凑等特点,然而如何设计出功能强大,网络传输功能强的自动气象站数据采集器,满足现代气象检测的要求,是一个值得研究的课题。 文中基于ARM微处理器和Linux操作系统平台,借助前端无线传感器网络的数据输入,利用嵌入式Qt的开发优势并设计数据通信格式,完成无线气象数据通信系统的设计,实现了数据的可靠传输。为天气预报、科学研究、气象灾害预警等提供实时的气象观测数据。 1 无线气象数据通信系统的基本组成 如图1所示,无线气象数据通信系统主要由无线传感器网络节点、协调器、数据通信器(数据通信器以S3C2440AL为核心)、远程服务器
[单片机]
基于ARM<font color='red'>微处理器</font>和Linux的无线气象数据通
arm的具体含义是什么?
  1、ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。   2、ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可,由合作公司生产各具特色的芯片。   3、ARM处理器的内核是统一的,由ARM公司提供,而片内部件则是多样的,由各大半导体公司设计,这使得ARM设计嵌入式系统的时候,可以基于同样的核心,使用不同的片内外设,从而具有很大的优势。   知识小结:   1、ARM微处理器的运行模式可以分为用户模式和特权模式,也可以根据是否有异常发生来进行分类,队去用户模式和系统模式以外的5钟模式称为异常模式。   2
[单片机]
arm的具体含义是什么?
泰克波形监测仪可满足拍摄、后期制作及广播市场的4K需求
客户可轻松升级其WFM/WVR8200与WFM/WVR8300波形监测仪和光栅化器来支持4K要求。 中国 北京,2014年8月7日 —广播视频测试、监测及分析解决方案的市场领导厂商---泰克公司日前宣布,其WFM8200与WFM8300波形监测仪和WVR8200与WVR8300光栅化器目前可通过软件实现轻松升级,以支持4K要求,使客户无需为了拍摄、制作和播送4K节目而购买昂贵的硬件。 WFM8200与WFM8300波形监测仪和WVR8200与WVR8300光栅化器能够进行广泛的4K测量,包括波形、画面、矢量、全域的四块(four tile)显示以及针对YPbPr格式的眼图。这些全面的测量功能使得用户能够减少隔离、论
[测试测量]
总是搞不清微处理器和微控制器的区别?
中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令以及处理计算机软件中的数据。主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。 目前,嵌入式处理器的高端产品有:Advanced RISC Machines公司的ARM、Silicon Graphics公司的MIPS、IBM和Motorola的Power PC 、Intel的X86和i960芯片、AMD的Am386EM、Hitachi的SH RISC芯片;掌上电脑的处理器有六类处理器,分别是:英特尔的PXA系列处理器、MIPS处理器、StrongAR
[单片机]
总是搞不清<font color='red'>微处理器</font>和微<font color='red'>控制</font>器的区别?
基于LPC2104微处理器和nRF401器件实现智能化灯光控制系统的设计
1、引言 随着人们生活质量的提高,灯具已不单纯是室内的基本照明工具,而且是建筑装饰的一种实用艺术品,当家里有各式各样的灯具之后,将它们精心地搭配在一起,达到最适合的气氛效果是高品质生活的需要,目前灯光的控制主要还是手动形式,逐个控制所有的灯具,这样不仅麻烦而且效率低下,也不符合现代舒适生活的标准。 因此,设计一个可以便捷地控制灯光、同时还提供场景组合等功能的智能化灯光系统不仅具有实用价值,而且还具有广阔的市场前景。 2、设计目标 设计一个智能化灯光控制器,安装在家中的各个房间,提供无线遥控、轻触式灯光控制、场景组合、预设存储等丰富功能。通过手持遥控器来控制住宅内所有的灯光;通过遥控器上的场景设置按键,方便地设定灯光场景和迅
[单片机]
基于LPC2104<font color='red'>微处理器</font>和nRF401器件实现智能化灯光<font color='red'>控制</font>系统的设计
基于东芝TMPM374微处理器无刷直流电机变频控制
1 引言 由于无刷直流电机结构简单、能耗低、易于维护,采用无位置传感器控制方式,降低了成本,因此越来越受到大家的青睐。东芝长期从事变频技术的研发,在TMPM370系列微处理器中设计了独特的内置硬件矢量引擎(VE),矢量控制各种算法和数据传递通过硬件实现,减少了软件工作量。参考该解决方案,用户缩短了开发周期,变频产品也稳定可 靠。因此被应用于变频空调、洗衣机、冰箱、空气清新器和直流风扇等变频家电领域。 2 矢量控制 电机矢量控制方框图如图1所示,位置、速度、电流构成三闭环控制系统,最内环是电流环,直接影响系统的响应速度,接下来是速度和位置环,均采用PI控制方法,其中速度控制和转子位置估算由软件实现,电流控制由内置的硬件矢量
[嵌入式]
流程工艺监测仪
西欧流量检测仪器市场的年销售额目前已达9.58亿美元,据市场分析与咨询公司Forst&Sullivan公司最新的市场调查,可以在较长的时期内一直保持持续增长的势头。到调查分析期的最后一年,即2009年时,流量检测仪器的市场销售额可达11.3亿美元。但是巨大的销售市场可能不会带来太多的销售利润。激烈的市场竞争,使生产流程工业企业流量检测仪器的60多家企业处于薄利多销的状况,而且市场竞争的压力还将居高不下。因为,五家资金雄厚的大企业占据了整个流程测量仪器市场一半以上的份额。而他们还计划不断扩大现有的市场占有率。在不断增加的用户中,许多用户在环保规定、卫生规定方面还存在着顾虑。他们感兴趣的与以前一样:工艺流程的改进;同时还有用户提出的更高
[测试测量]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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