基于STC89C52RC单片机的无线呼叫系统设计
摘要:为实现终端呼叫数据的无线传输,设计采用STC89C52RC单片机作为控制芯片,低功耗芯片nRF905作为无线收发模块。最后给出该系统的相关硬件组成电路和数据传输流程图。经测试,系统运行稳定可靠,通信距离很远,且响应时间短,具有很广泛的应用前景。
关键词:STC89C52RC;无线呼叫;nRF905;数据传输
随着科技的进步以及生活质量的不断提高,人们要求在消费中得到的服务更加快捷、方便、舒适;同时处于激烈竞争中的服务性企业也需要进一步吸引顾客,提高企业自身的服务档次和形象。在这样的背景下,产生了各种不同类型的呼叫系统。传统的呼叫系统多是有线的,比如采用分布控制方式的单片机系统,主机和呼叫器的应答通过一根三芯导线,包括电源线、信号线、地线来完成,各呼叫器并行挂接。这样的系统存在着布线繁琐,安装麻烦、成本高等问题,针对这些问题,无线呼叫系统逐渐发展起来,越来越多的研究者将目光投向了无线领域。
1 系统设计方案
低功耗无线呼叫系统的发送和接收模块的框图如图1,图2所示。
其中图1为无线发送模块,以STC89C52RC为主控制核心,及时响应终端的呼叫信息,然后利用nRF905无线传输模块将呼叫信息发送给无线接收模块进行处理。
图2为无线接收模块,以STC89C52RC为主控制核心,利用nRF905无线传输模块接收呼叫信息,然后利用串口转USB线上传给PC,利用上位机软件可以实时监测。
2 系统硬件电路设计
2.1 3.3 V供电电源模块
该设计可用3.3 V电压供电,故采用ASM1117-3.3电源供电系统,如图3所示。无线发送模块和STC89C52RC单片机皆为低功耗器件。对发送端而言,在对通信距离要求较远时,也可采用5 V供电。接收端可通过与PC连接的USB提供5 V电源。核心部件LM1117-3.3是一个低压差电压调节器系列。压差在1.2 V输出,此时相应的负载电流为800mA。
2.2 单片机控制电路
从电源供给及功耗等各方面的考虑,数据处理部分采用STFC89C51RC/RD+系列的STC89C52RC单片机。STC89C52RC单片机除具有MCS-51系列单片机FLASH、RAM、分频器、位定时器/计数器等结构外,具有如下主要特点:加密性强,无法解密;超强抗干扰;对外部的电磁辐射低;超低功耗,正常工作模式时典型功耗为4~7mA。
STC89C52RC单片机与单片射频收发器nRF905连接如图4所示。
2.3 数据传输模块的选择
数据传输模块采用NewMsg_RF905SE模块,该模块采用挪威Nordic公司推出的单片射频收发器nRF905芯片开发而成。NewMsg RF905单片无线收发器工作电压为1.9~3.6 V,工作在433/868/915 MHz的ISM频段,最大数据速率为100 Kb/s。芯片内部由1个完全集成的频率调制器、1个带解调器的接收器、1个功率放大器、1个晶体振荡器和1个调节器组成。ShockBurst工作模式的特点是自动产生前导码和CRC可以很容易通过SPI接口进行编程配置电流消耗很低,在发射功率为+10 dBm时,发射电流为30 mA接收电流为12.5 mA。进入POWERDOWN模式可以很容易实现节电。nRF905是单工工作方式,且在待机模式、接收模式、发送模式之间切换需要延时,所以在无线通信过程中,通信软件应该有合理的时序。表1为nRF905的工作模式及相应功能。
系统软件选用德国Keil公司推出的Cx51编译器,在nVision 2集成开发环境下完成从源程序编辑、编译调试,直到生成最终可执行文件代码的全部过程。该系统的重点是控制nRF905的程序设计。首先应对nRF905进行初始配置,配置完成后按需要编写用户数据的发送和接收程序。
3.1 初始化配置
初始化配置分为以下3个部分:
(1)编写SPIWRITE和SPIREAD子函数,即通过软件为单片机配置SPI功能。
(2)初始化nRF905的射频配置寄存器。这些寄存器中有很多信息,必须根据实际情况进行配置。设计中nRF905外接16 MHz晶体,XOF应配置为01,PA2PWB为发射功率,RX2 RED2 PWB为接收灵敏度,可根据需要配置。另外还有发送地址、接收地址、发送数据和接收数据的长度,可根据实际应用配置。
(3)配置nRF905的发送地址,最多4 B发送端的发送地址应与接收端设备的接收地址相同。在实际工作中,nRF905可以自动滤除地址不相同的数据,只有地址匹配且校验正确的数据才会被接收,并存储在接收数据寄存器中。
3.2 发送数据
nRF905发送数据前,通过条用SPI写函数,在待机模式下先把待发数据填进发送数据寄存器。然后把nRF905的TRX_CE、TX_EN引脚都置为高电平,数据就会自动通过天线发送出去。为了数据可靠地传输,将射频配置寄存器中的自动重发位(AUTO_RE_TRAN)设为有效,这样在TRX_ CE被置高的时间内数据一直在重复不断的发送。程序中设计延时500 ms,之后拉低TRX_CE引脚,回到待机模式。
3.3 接收数据
STC89C52RC把nRF905的TRX_CE引脚置为高电平,TX_EN引脚置为低电平后,即开始接收数据。在设计中可设定在一定的时间内一直判断nRF905的DR引脚是否变高,若为高,则证明接收到了有效数据,可以退出接收模式;若一直没有接收到,待时间到也退出接收模式。退出后在待机模式,CPU把nRF905内部的接收数据寄存器中的数据读出,即接收到的有效数据。
3.4 主程序设计
在该系统中,主程序包括两部分:第一部分是主机(单片机)部分,通过无线模块接收下位机(呼叫器)的信息。程序流程图如图5所示;第二部分是下位机(呼叫器)部分,响应客户的呼叫,并通过无线模块将信息传送至主机(单片机)。程序流程图如图6所示。
系统 设计 呼叫 无线 STC89C52RC 单片机 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)