防数据碰撞的无线呼叫系统设计
CS:频道选择,CS=0选择工作频道1,即433.92MHz;CS=1选择工作频率2,即434.33MHz。连接AT89C51的P2.5脚。
DOUT:数据输出,连接AT89C51串口RXD。javascript:window.open(this.src);" style="cursor:pointer;"/>
DIN:数据输入,连接AT89C51串口TXD。
PWR_UP:节能控制,PWR_UP=1正常工作状态,PWR_UP=0低功耗节能状态。连接AT89C51的P2.6脚。
TXEN:发射接收控制,TXEN=1时,nRF401为发射状态;TXEN=0时,nRF401为接收状态。连接AT89C51的P2.7脚。
NRF401射频模块硬件电路的具体设计。为了获得最佳的RF性能,推荐使用1.6mm FR4板材的双面PCB;nRF401的直流供电必须使用高性能的RF电容去耦;在PCB板上应该避免长的电源走线;所有的开关数字信号和控制信号都不能经过nRF401的PLL环路滤波元件和VCO电感附近。
4 无线呼叫系统的软件设计
4.1 通信协议
为了保证通信成功,通信双方必须严格遵循通信协议的约定。由于nRF401的最大数据传输率为20kbps,为获得中央服务器和呼叫器之间大的通信速率,单片机的系统时钟频率为11.0582MHz时,我们将串口的波特率选定在19.2kbps。
由中央服务器向所有呼叫器发系统同步信号。根据设计要求和测试结果,我们将同步信号序列SYN定义为双同步字符:0xAA和0xAA。所有呼叫器接收到该字符串后,开始计算各自的可以发送呼叫信息等时间Ti。
当对应呼叫器与中央服务器建立起通信关系后,在可通信时间片内采用异步通信的方式。呼叫器向服务器发出握手信号:0xBB;服务器接收到握手信号后发回应答信号:0xCC,接收到应答信号后呼叫器开始传送数据块。设计中的数据块可以直接是使用VCD码表示的呼叫器的识别号,能很方便地在服务器的LED上显示出来,还可以传输对其它相应服务编码得到数据。收、发双方的数据校验方式采用计算发送数据块的“校验和”。呼叫器对所发数据求出“校验和”,在数据块发完后将其发到中央服务器中;服务器计算所收数据块的“校验和”,并与从呼叫器发来的“校验和”相比较。若两者相等,收正确,服务器应答一个“0x00”;叵不等,说明接收器接收到“0x00”的答复后,结束发送。又因为呼叫器发出的服务请求只能在规定时间片段内完成,故必须的服务请求。系统直到等待时间最长的那个呼叫器的时间片过去以后,中央服务器又再次向所有呼叫器发出系统同步信号.
图6 收发程序流程
因为系统分配给各个呼叫器的可与中央服务器完成一次呼叫申请的时间片的长度是固定的,这个时间长度既要保证呼叫器发出的申请能准确的传到服务台上,又要尽量短,才可缩小同步信号的周期。因此收发程序的执行时间十分关键,必须短而高效。图6给出了中央服务器和呼叫器的收发程序流程。
结语
本设计中的硬件设计、软件设计方案已通过实验检验。对在多发单收情况下产生的数据磁撞一解决良好,系统运行稳定,通信误码率低。由于电路的结构简单,功能完善,这种低成本的无线呼叫系统在酒店、医院及娱乐场所中有很好的实用价值。