基于AT89C51的无线病房呼叫系统设计
主程序流程图
2.2 从机程序设计
从机的程序设计主要包括初始化程序、外部呼叫信号等待程序、数据接收程序、数据发送程序、延时程序等主要程序。这里需要说明的是在设计外部呼叫信号等待程序时,在接收到外部呼叫信息后,需要经过一段延时(约30 ms)后再进行采样看是否是瞬时干扰信号。
3 系统通信协议设计
3.1 系统无线通信协议设计
由于本设计的无线网络系统中存在一个中心(主机)和多个用户端(从机),因此本系统呈现为点对多点的通信方式,协议为点到多点的通信协议。在整个病房呼叫系统所设计的通信系统中,无论是在发射请求信息还是在发射应答信息时,发射的数据量始终保持固定的字节数且信息结构简单,数据量较小;而且为了降低发射信息出现碰撞的概率,在该系统中从机的数量有一定限制,因此在本设计中采用了比较简单的纯ALOHA法来解决信息碰撞的问题[3]。
3.2 通信协议数据帧设计
本系统采用固定字节长度的数据帧,并使得请求信息数据帧和应答信息数据帧格式相互对应,从机请求信息数据传输采用引导字头、接收地址、发送地址和校验字的数据帧格式,而主机应答信息数据传输采用引导字头、接收地址、确认指令和校验字的数据帧格式。
(1)引导字头:对主机而言,为了随时接收从机发送的请求信息,其射频芯片nRF401总是处于接收状态。本设计的传输协议中,数据帧的引导字采用OxFF后跟OxAA作为通信同步码,接收协议只能够接收以OxFF后跟OxAA开始的数据包。要注意的是,上面已经说明的引导字头前还要再加一个随机字节,因为起始传输时第一个字节往往是接收不到的,它的作用是使接收机进入状态抑制噪声,在本设计中该随机字节采用Ox00。
(2)接收地址:接收地址既包括从机发送请求信息中的接收地址,也包括主机发送应答信息中的接收地址。在医院的病房楼中,很可能存在多套同规格的射频无线病房呼叫系统同时工作。这样就必须给每一个主机编上代码,才能使主机确认接收的信息是否是发送给自己的,这个主机编号同时也就作为了从机发送请求信息时的接收地址。而每个主机下的从机也会有一个对应的编号,这个编号在本设计中就采用病房号,也就是主机发送应答信息时的接收地址。
(3)发送地址:发送地址既存在于从机发送的请求信息中也存在于主机回复的应答信息中。从机请求信息中的发送地址是提供给主机用于显示的病房号,也是在主机发送应答信息时的接收地址。通过应答信息中的接收地址,从机可以判断出该接收到的信息是否是发给自己的。如果不是,从机将重新发送一遍请求信息,否则将继续接收确认信息。同理,主机也可以根据请求信息中的发送地址确认发送信息的是否是自己辖区内的从机,如果不是将不予以接收显示。
(4)确认指令:确认指令用于主机通告从机信息发送是否正确。在本设计中,采用OxFF作为信息发送正确的指令,而采用OxEE作为信息发送错误的指令。事实上,在本设计的软件设计中,为了确保信息的准确发送,只要确认信息不是OxFF,则从机就会自动地重新发送信息。
(5)
评论