基于51单片机和nRF905的无线通信装置的设计
扫描二维码
随时随地手机看文章
摘要:文章设计了一种基于AT89S52单片机和nRF905的无线通信装置。该装置包含两个完全相同的节点模块,通过PC机上的客户端软件输入需发送的文字信息,而接收到的文字信息会显示在节点模块自带的液晶屏上。该装置适用于小范围的室内无线点对点文字信息交换应用。
关键词:AT89S52;nRF905;无线通信
0 引言
随着当前网络通信技术的高速发展,人们对各类场合下的无线通信的需求也随之增高。在短距离低成本的无线通信的应用中,基于51单片机以及Nordic公司的nRF905无线通信芯片的应用方案被广泛采用。比如,文献设计了一种基于51单片机与nRF905收发器的无线智能控制交通灯,文献设计了一种基于AT89S52和nRF905的无线遥控系统。
本文设计了一种基于AT89S52单片机和nRF905的无线通信装置。该装置适用于小范围的室内无线点对点文字信息交换应用。
1 系统总体设计
本文设计的装置是由发送和接收两个完全相同的节点模块构成,图1所示为系统示意图。需发送的信息通过PC机上的客户端软件输入,接收的信息显示在节点模块的液晶屏上。
节点模块的主控芯片是ATMEL公司的AT89S52单片机,具有高性能、低成本的特点,十分适合本设计的应用场合。节点模块与PC上位机的通信采用RS232串口通信。
2 系统硬件设计
节点模块的主控芯片选用AT89S52单片机,其外围电路有:RS232电平转换电路、1602液晶显示模块、nRF905无线模块以及蜂鸣器提示音电路等。节点模块硬件框图如图2所示。
3 系统软件设计
系统软件的设计包括三个方面,一是PC上位机的客户端软件的设计,二是单片机接收与发送的软件设计,三是nRF905驱动程序设计。
3.1 PC上位机客户端软件设计
PC机客户端软件采用VC++6.0环境下的MSComm控件进行串口通信的开发。
为了解决输入文字信息的不定长所导致的单片机串行接收与无线发送带来的问题,本设计采用了对文字信息的空格填充的解决方案。即由客户端软件判别文字信息的长度,不足32字节的信息由程序自动填充空格。
发送按钮响应程序流程图如下:
3.2 单片机端程序设计
单片机端的程序设计主要包括主程序和串口中断服务子程序的设计,在主程序中循环检测发送标志位和接收就绪标志位,一旦满足相应标志位条件,便跳入执行相应的发送与接收程序。
为了实现装置的双向通信,无线发送采用中断的方式,信息数据由上位机通过串口发送至单片机。单片机通过在中断子程序中接收数据,当接收缓冲区的字符为32字节时,置位发送标志位。主程序中一旦检测到该发送标志位,则调用发送程序将信息数据通过无线模块发送出去。
无线数据韵接收采用查询方式,当有接收到的数据时,nRF905将DR引脚信号叠高电平。由单片机循环检测nRF905无线模块的DR引脚,从而判断是否收到信息。
3.2.1 单片机主程序设计
单片机主程序主要包含发送和接收两部分,都采用标志位查询的方式作为进入的条件。单片机主程序流程图如图4所示。
3.2.2 单片机中断服务子程序设计
单片机中断服务子程序主要完成上位机发送的数据接收功能,当接收的数据满足32字节的条件时,设置发送就绪标志位。中断服务子程序的流程图如图5所示。
3.3 nRF905无线模块的驱动程序设计
在该装置中,nRF905无线模块的通信地址设计为4个字节的固定地址,接收与发送的地址一致。无线模块配置频段在430MHz,接收发送有效数据长度为32字节。
3.3.1 发送程序设计
无线模块设置为不重发模式。在该模式下,可以通过读取无线模块的DR断口的电平来判断数据发送是否完毕。一旦数据发送完毕,可将TRX_CE引脚龟压拉低,模块进入特机模式。
3.3.2 接收程序设计
当nRF905的TX_EN设置为低,TRX_CE设置为高时,模块处于接收模式。此时模块监听无线信号,一旦数据接收完毕,会置位DR引脚,因此,单片机同样可利用该引脚电平来判断是否接收到了新的数据。
图7接收程序流程图
4 实验与结论
实验表明,本文设计的通信装置可有效、可靠地相互传递文字信息。此装置可用于室内范围内的文字信息的交换,简单方便,具有一定的实用价值。
由于本文设计的装置的显示部分采用的是英文字符型液晶,因此只能显示英文或数字信息,不支持中文显示,有望在后续设计中升级为带中文字库的液晶显示。