ycvp3281 post_time 2012-6-2 04:05:52

基于TCP IP协议的便携式医疗监护仪器网络化接口的实现

摘 要:
讨论了网络化接口中tcp/ip协议栈的实现方式,着重探讨了基于tcp/ip协议栈芯片w3100a的便携式医疗监护仪器网络化接口的实现,最后介绍了基于sock et模式的程序设计方法。
随着计算机网络和通信技术的发展,便携式医疗监护仪器具有联网功能将是一大趋势。借助远程监护这一新型医疗模式能较好地解决患者在家中以较低的费用获得在医院同样的服务。依靠internet和网络技术,医生能够有效地获得、分析来自仪器的各种数据,及时进行医疗指导或诊治,这对于患者得到高水平的医疗服务及在紧急情况时的急救支援具重要意义。我们曾设计的便携式医疗监护仪器的联网方案是数据以无线方式从仪器传到pc机,再以pc机为网络终端传输数据[1,2]。然而利用8位mcu通过isp(internet服务供应商),在不需要使用pc机或高档单片机的情况下接入internet,这样的应用系统正逐步取代传统的以pc机为中心的应用,成为未来internet发展中的主力军[3]。本文讨论的网络化接口正是针对这一问题而提出的。
在分析了网络化接口中tcp/ip协议栈实现方式的基础上,本文介绍了一种基于tcp /ip协议栈芯片w3100a的以8位mcu为核心的便携式医疗监护仪器网络化接口的实现方案,解决了其接入internet的问题。便携式医疗监护仪器的工作原理和设计在此不再赘述,可参阅文献[1,2]。
1网络化接口的实现
1.1mcu中实现tcp/ip协议栈的方案
(1)基于软件来实现tcp/ip协议栈,通过将tcp/ip协议栈移植到系统中,然后调用相关的api函数实现网络通信,或者不采用移植的方法,参照标准的tcp/ip协议精简相应的协议层,编写相关的api函数完成简易的tcp/ip通信。但是这种方法需要有操作系统、高性能mcu及大容量存储器的支持。
(2)直接采用tcp/ip协议栈芯片,如w3100a。这种方案的主要优点是:应用系统设计不必考虑任何网络协议,只需要解释并执行网络芯片传送过来的指令和数据就可以实现与intern et网络连接,且不需要操作系统的支持。
便携式医疗监护仪器主要完成ecg(心电)、nibp (无创血压)、spo2 (血氧饱和度)、呼吸率和体温5个生理参数的采集、计算和分析,以及显示、报警等功能,其中仪器中的8位mcu负担已经比较重且资源有限,因此决定采用直接使用tcp/ip协议栈芯片来实现网络化接口的方案。
1.2w3100a芯片简介
w3100a是韩国wiznet公司生产的一种tcp/ip协议栈芯片,其中包含的协议层有:tcp(传输控制协议)、ip(网际协议)、udp(用户数据报协议)、icmp(因持网控制报文协议)和协议的dlc(数据链路控制),以及mac协议。该芯片提供2个接口给上层应用层:mcu接口和i2c接口,一个mii(media independent inte**ce)接口给底层物理层。芯片支持全双工4~5mb/s的数据通信;内部带有双口ram的数据缓冲器;采用0.35μm的cmos工艺,64引脚lqfp封装。芯片的内部结构如图1所示。
芯片内部提供512 b的控制寄存器存储空间和16 kb的数据存储缓冲器,其中8 kb传输数据缓冲器供mcu传输数据使用,mcu只能写而不能读;8 kb接收数据缓冲器供mcu接收数据用,mcu只能读而不能写。
http://www.cetimes.com/uploadfiles/medical/2010/1/201001191743449201.jpg
芯片提供寄存器供mcu访问,具体的寄存器分类如下:控制寄存器(命令、状态及中断),体外冲击波碎石机厂家;系统寄存器(网关地址、子网掩码、ip地址等);用于数据收、发的指针寄存器;通道操作的通道寄存器。其主要寄存器功能和地址如表1所示。
http://www.cetimes.com/uploadfiles/medical/2010/1/201001191745043778.jpg
芯片同时支持4个通道连接,控制寄存器c0_cr(通道0的控制寄存器),用于通道0socket(套接字)的初始化、连接、关闭和数据收发,其各位定义如下:
  sys_init(仅通道0有定义):系统初始化位。用于设置系统的地址、网关、子网掩码、物理地址。
  sock_init:通道初始化位。当选择了相应的协议后,用此命令进行初始化。
  connect:连接命令。以客户机模式连接到服务器。
  listen:**模式。以服务器模式**客户机连接。
  close:关闭通道及其连接。
  send:启动数据发送位。
  recv:启动数据接收位。
  s/w reset(仅通道0有定义):用于初始化芯片内部的复位设定值。
  其他寄存器的具体内容可参阅文献[4]。
1.3硬件接口
w3100a提供了并口(mcu接口)和串口(i2c接口)2种方式实现与mcu的通信。本方案为基于i2c的串口连接方式,如图2所示。其中c8051f021为监护仪器中的mcu,以太网物理层芯片选用rtl8201。
i2c是串行通信总线方式,由数据线sda和时钟线scl配合完成通信。c8051f021提供smbus(与i2c串行总线兼容)接口与w3100a通信。首先c8051f021通过设置优先交叉开关译码器xbr0、xbr1和xbr2的值完成数字资源的动态分配,优先交叉开关译码器可以按优先权顺序将片内的计数器/定时器、硬件中断、uart,smbus等映射到p0~p3的端口i/o引脚[5],其次初始化交叉开关配置寄存器xbr2,初始值为0x42,分别使能交叉开关和smbus;将p0.2和p0.3分别分配给sda,scl,p1.5分配给外部中断/int1。这样c8051f021就可以通过smbus接口以主发送器方式向w3100a发送数据了,其对smbus接口进行访问和控制通过5个特殊功能寄存器来实现:控制寄存器smb0cn,时钟速率寄存器smb0cr,地址寄存器smb0adr,发送和接收数据的数据寄存器smb0dat和状态寄存器smb0sta。
c8051f021可以象访问外部ram来写或读w3100a寄存器,而w3100a发送和接收的数据均保存在内部双口ram中。c8051f021向w3100a写数据的过程如图3所示。
http://www.cetimes.com/uploadfiles/medical/2010/1/201001201410291164.jpg
http://www.cetimes.com/uploadfiles/medical/2010/1/201001201411203228.jpg
基于smbus传输数据关键要严格按照他的时序来控制scl和sda高低电平,即主器件每产生一个起始条件,都要有一个停止条件与之对应,并且主器件每发送一个数据或命令给从器件,从器件都要向主器件发送一个响应信号表示数据或命令已接收,主器件在收到从器件的应答信号后才开始继续发送数据。在这个过程中如果有一处电平控制出错传输数据都不会成功。
w3100a提供mii接口与rtl8201相连,其中引脚rx_clk,rxdv,rxd[3:0]以及col用于数据的接收,而tx_clk,txe,txd[3:0]用于数据的发送。
http://www.cetimes.com/images/favicon-j.jpg
12下一页
      
体外碎石机价格,更多可登录:http://www.eswl.cn/
page: [1]
full_version: 基于TCP IP协议的便携式医疗监护仪器网络化接口的实现