基于ARM的数字化病房呼叫系统
扫描二维码
随时随地手机看文章
摘要:详细介绍了基于ARM的数字化病房呼叫系统的设计。以微控制器STM3210为核心控制终端设备接收和发送,采用RS232、RS485及UDP通信技术,实现了终端设备与服务台之间语音和通讯命令传输。该系统在实际使用中效果良好。
关键字:RS485;RS232;UDP;语音信息;通讯命令
数字化病房呼叫系统是一种应用于医院病房、养老院等地方,用来联系沟通医护人员和病员的专用呼叫系统,是提高医院护理水平的必备设备之一。
目前市场上存在着许多医院病房呼叫系统,主要为有线式和无线式两大类。
无线式系统采用无线传输,但是无线电波会干扰其它医疗仪器设备,同时医疗设备也会影响该呼叫系统的正常通讯,导致设备不能正常工作等状况;传统的有线式病房呼叫系统采用集中式结构,电源线、数据通信线、语音通信线分开传输,具有较好的稳定性。目前大多数医院采用此类有线呼叫系统。
本系统以ARM为核心设计,整个系统只需一条网线即可完成通讯。主机通过网线向各终端设备即分机提供数据通信和语音通信的通道,同时终端设备的供电也由该网线提供。在系统没计中每台主机最多可容纳8台分机,采用多种软、硬件抗干扰措施,使得系统抗干扰能力强、实时性好、可靠性高。
该设备具有病人信息显示、爱心提示、收听广播、音乐、语话等功能,具有可靠性高、稳定性好、功能强大等优点,在现代医院具有实用价值。
1 系统设计
数字病房呼叫系统设计主要分为四部分,PC服务台、主机、分机、语音解码器。如图1所示。
1.1 主机
主机采用YC2440芯片控制,主要功能如下所述。
(1)对分机上传通讯命令分配ID,重新封装后上传给PC服务台。
(2)对控制平台发送的控制及提示信息进行下发。
(3)循环向该主机管理的所有终端设备发送询问/查询指令,查询是否有设备存在通讯请求。
1.2 分机
分机即床头终端设备,由STM3210控制。在终端设计中,通过跳线,经A/D转换后以查询的方式而获得床位信息。这种通过跳线配置床号的方式,有利于设备的安装、调试及日后维修。由于系统设计中采用三个跳线,所以,同一台主机最多可搭载8个终端没备。
分机与主机的通讯通道主要由网线提供,网线由4组交叉线组成。两组分别提供与主机之间通讯数据的接收和发送。采用这种交叉线的方式可减少信号传输过程中的噪声干扰。剩余的两组交叉线一组提供分机的电源,剩余一组备用。
分机设计有设备按键和呼叫手柄,及LCD显示屏。设备按键和呼叫手柄的功能包括:呼叫、取消呼叫、改变LCD工作模式、取消信息提示等。LCD显示屏主要用来显示当前病人的基本信息,如:姓名,年龄,护理等级,病例信息以及由服务台发送的提示消息。LCD显示屏有三种工作模式,空床位、白天、夜间。用户可以通过设备按键选择其工作模式同时服务台也可统一改变工作模式。
1.3 语音解码器
语音解码器主要用来播放终端设备的语音信息,采用STM3210主芯片控制。在本系统的设计中,分机上传的语音信息由护士站PC服务台通过RS232的方式转发到语音解码器,最终由解码器进行解压进行播放,由护士服务台下传的语音信息,则直接采用广播的方式发送到病人所在的病房。采用这种方式,造成的不便之处是存护士站与某一个分机语音通信的过程中,会影响到其他病人的正常休息。
1.4 设备连接
在主机与分机的通信过程中采用RS485的通信方式,因为这种方式的传输距离可以达到上千米,为设备的正常通讯提供了基本得保障,同时由于它的接线方式,如果某一个分机出现故障,也不会影响其他分机的止常工作。RS485是一种串行的主从通信协议,具有“单主多从”的特点,所以网络中只有一个设备(主机)能够建立通信(称为“查询/命令”)。其它设备(从机)只能通过提供数据响应主机的查询/命令,或根据主机的命令/查询做出相应的动作。然而由于RS485采用的是异步串行、半双工传输方式,在同一时刻主机和从机之间只能有一个发送数据,而另一个只能接收数据。 为提高系统的实时性,在该系统的设计中,主机和分机的之间的数据的收发采用独立的方式,即采用两个独立的SP13485芯片,可以保证主机或分机同时接收与发送数据。主机与分机通信接线如图2所示。
主机同服务台PC之间的通讯采用UDP方式。UDP方式是一种不可靠的无连接协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。与TCP协议相比,具有传输速度高的优点,更好的满足医疗呼叫系统的实时性要求。通过UDP方式直接连接护士站服务台,由服务台对终端设备的请求做出回复。
2 软件设计
系统软件结构主要分为主机和分机两部分。
2.1 主机工作流程
主机采用wince5.0系统,主要分为通讯数据接收、发送、查询/询问命令发送三个任务,其中主机查询/询问命令,通过RS485接口每间隔100ms发送一次。
主机通过RS485接口接收分机发送的数据,经过解析,确定接收的数据正确性,对接收数据重新封装,添加标识符后通过UDP方式转发到PC服务台,等待服务台对分机的请求做出相应。同时,主机将接收到的服务台命令解析后下发到对应的分机,等待分机做出回应。
2.2 分机工作流程
分机采用μC/OS-Ⅱ操作系统,主要分为RS485接收、协议解析、按键检测、LCD显示、语音通信五个任务。
在通讯过程中,分机通过RS485接收主机发送的数据,获取到数据后发送信号量,在协议解析任务获得信号量后,开始对收到的命令进行协议解析,经过协议解析,通知LCD显示仟务、通话任务、信息提示灯提示任务等,RS485接收数据流程如图3所示,协议解析流程如图4所示。
按键任务通过检测设备或者呼叫手柄来来判断当前床位是否有通话请求,若检测到呼叫键已按下,当接收到主机询问/查询命令后则向主机发送通话请求命令,服务台收到通话请求后可选择接听或挂断,服务台发送接听命令后,分机收到回复信息则建立通话通道,打开麦克风,进行通话,由于语音数据量太大,所以,必须对语音数据进行压缩,本系统采用speex1.2压缩方式进行8:1压缩,压缩后的数据通过RS485方式发送到主机,直接转发到服务台,服务台将接收到的语音数据通过RS232的方式发送到语音解码器,语音解码器对数据进行解压后完成播放。服务台的语音数据则直接通过麦克及功放设备到传送到病人所在的病房。语音通话流程如图5所示。
LCD显示任务当判断有显示需求时,将从由协议解析获取到的信息重新封装后显示,如:显示提示信息,病人基本信息,手术安排时间,当前住院费用等。其中提示信息采用滚动显示的方式,当提示信息的内容大于8个汉字时,则进行滚动处理并显示。LCD显示流程如图6所示。
为避免出现总线竞争,分机不允许主动向主机发送数据,由主机发送询问/查询命令,分机收到命令后做出回复的方式进行通信。在进入语音通话模式后,语音数据可不等待主机询问/查询命令直接通过RS485发送。
3 传输安全
由于信号在传送过程中容易受到噪声干扰,同时,采用UDP不可靠的网络传输方式。所以,为保证系统正常通讯,对指令进行校验是必不可少的。主机、分机、PC服务台对指令进行校验,判断指令出错的情况下,采用重发机制来保证系统正确、正常通讯。本系统采用循环校验码(CRC码)校验。
3.1 循环校验码(CRC码)
循环校验码是数据通信领域中常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
3.2 生成CRC码的基本原理
任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x5+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。
3.3 CRC码集选择的原则
若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得
V(x)=A(x)g(x)=xRm(x)+r(x);
其中:m(x)为K次信息多项式,r(x)为R-1次校验多项式,
g (x)称为生成多项式:
g (x)=g0+g1x+g2x2+…+g(R-1)x(R-1)+gRxR
发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。
4 结束语
系统利用单片机的自动控制特性,使得系统稳定、可靠。系统采用的元器件均是常见的电子元器件,因此系统硬件成本较低。分机具有较低的功耗,并且具有较好的扩展性。主机与分机的通信稳定,实时性好,能满足各种规模医院的要求,有很好的应用前景。