打印
[其他]

基于nRF401 的无线通讯系统及应用

[复制链接]
631|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
基于nRF401 的无线通讯系统及应用

       1. 引言
  在仪器仪表及测控技术中,无线数据通信以其节省传输线、使用方便等优点被广泛关注。中短距离(小于500 米)的无线通信在自动测试系统、无线抄表、计算机遥测遥控系统、车辆监控系统和小区管理等实际应用中有广泛的市场。在众多的无线收发芯片中,nRF401 以其成本低、可靠性高、外围设计简单广受欢迎,然而由于通信空间的复杂性,无线通讯系统很容易收到误码,即使在发送端不发送数据的情况下,接收端也仍然会接收到大量的干扰数据。在一个中等规模的系统设计中,CPU 要进行多种操作,如外部存储器的访问,传感器数据的处理等,因此无线通讯干扰信息较多时,特别是在中断通讯模式下,频繁的中断将严重影响主程序的运行,另外由于对nRF401 的操作除了控制输入输出外,还需要对nRF401的收发状态、运行模式切换,因此对于一个总线结构的系统(如485 通讯模式),无线通讯部分也作为一个独立ID 模块时,传统的设计处理遇到了困难。因此需要设置一个中间处理环节,既能有效过滤信息又不影响通讯速率。

  为解决上述问题,本设计基于nRF401 作为无线收发芯片,使用两片AT89C2051 作为控制芯片,设计出一套无线通讯系统。其中一片AT89C2051(定义为控制芯片A)控制nRF401,AT89C2051 的IO 接口与串口配合控制nRF401 实现异步通讯;另一片AT89C2051(定义为控制芯片B)既能满足总线串口的要求,又能解决控制芯片A 由于频繁串行中断而不能及时响应总线的问题,起到分担任务、隔离干扰、串口扩展的作用。采用两片2051单片机设计方法,与采用一片双串口单片机设计相比,能降低成本、提高芯片利用率、隔离干扰。实践表明该系统结构简单、抗干扰能力强,能很好解决短距离系统之间的无线通信问题。

  2. 系统硬件设计
  系统硬件设计包括无线通讯模块和通讯控制部分。
  2.1 基于nRF401 的无线通讯模块设计
  nRF401单片UHF无线收发芯片,工作在433MHz ISM频段。在接收模式中,nRF401被配置成传统的外差式接收机,所接收的射频调制的数字信号被低噪声放大器放大,经混频器变换成中频,放大、滤波后进入解调器。解调后变换成数字信号输出(DOUT端)。在发射模式中,数字信号经DIN端输入,经锁相环和压控振荡器处理后进入功率放大器射频输出。在本系统设计中,为了避免干扰,将基于nRF401的无线收发部分做在一块单独的PCB板上,引出通讯控制接口(J1),组成独立的无线收发模块。

  2.2 基于AT89C2051 的控制系统设计
  控制部分包括两片AT89C2051,控制芯片A 负责处理无线收发模块数据信息,并与控制芯片B 通过P1 口以中断1 方式进行数据交流。控制芯片B 负责处理来自串口的信息,并与控制芯片A 进行数据交流。由于两片AT89C2051 以中断方式并行传输模式传输数据,其数据交换时间远小于单片机串口通讯时间,因此不会影响整个系统的半双工通讯时间。为了满足各种要求,串口通过跳线被设计成232 模式、485 模式和UART 模式。


  3. 系统软件设计
  3.1 通讯协议
  在无线通信的过程中,由于外部环境的干扰,通常误码率比较高,即使发射方不发送数据,接收方仍会经常接收到由于外部干扰而产生的杂乱数据,为了在接收的过程中区分接收到的数据是否为有效数据,必须有一定的通信协议。在传输数据量不大时,为有效处理信息,本系统设计以下通讯协议:
       1) 无线收发数据帧由3个字节组成,即8bit的标识位(0xab),8bit的数据位,8bit的校验位。
  2) 无线收发数据帧格式
  byte1 高四位为1010(0xa),低四位为数据的高四位
Bit7  Bit6  Bit5  Bit4  Bit3  Bit2  Bit1  Bit0
1  0  1  0  D7  D6  D5  D4
  Byte2 高四位为1011(0xb),低四位为数据的低四位
Bit7  Bit6  Bit5  Bit4  Bit3  Bit2  Bit1  Bit0
1  0  1  1  D3  D2  D1  D0
  Byte3 为byte1与byte2的异或值。
3 内部单片机之间传输的数据不包括标识字节和校验字节。
4 系统与外部串行通讯时,采用另外的通讯协议(如Mod Bus协议)。
5 外部输入采用中断方式,内部循环采用查询方式。
6 程序设计中,外部中断优先,以及时接收外部数据信息。
7 执行某一中断时,不响应其他中断。
8 无线通讯模块平时处于接收状态。

  3.2 程序流程
  对于控制芯片A,接收无线收发模块数据为串行中断方式,接收控制芯片B 数据为外中断1 方式。主程序运行过程中始终处于检测系统状态字循环方式,当发送缓冲区有数据(来自控制芯片B)时,主程序调用串行发送程序将数据经串口、无线收发模块发送出去;当接收缓冲区有数据(来自无线收发模块)时,主程序调用并行发送程序将数据经P1 口发送到控制芯片B。在设计应将发送缓冲区和接收缓冲区设置为多字节,用来堆积不能及时转移的数据。控制芯片B 的程序流程与控制芯片A 流程相似,只是在接收串口数据时,控制芯片A 程序对数据帧的校验方式不同。
  图4 为程序流程图,其中UART()定义为串行中断服务程序;Int1()定义为外部中断1 中断服务程序;TranByte 定义为发送缓存区;RecByte 定义为接收缓存区;Recsum 定义为接收缓存区计数;Transum 定义为发送缓存区计数;delay 定义为延时子程序;flag 定义为系统状态控制字,其中flag.7 定义为接收缓存区状态标志;flag.6 定义为发送缓存区状态标志。

  4. 在自主移动机器人系统中的应用
  在自主移动机器人系统中,可靠稳定的通讯系统对机器人与上位机、机器人与机器人之间的信息交换是十分重要的。基于nRF401 的无线通讯系统可以作为中小型自主移动机器人的无线通讯部分,在应用中,将该系统通过跳线设置为RS232 模式与计算机串口相连,另一套系统设置为UART 模式与机器人其它部分组成多机通讯系统,这样便构建了一个机器人与上位机的一套无线通讯系统。


  5. 结论
  本文给出了一种基于nRF401 的无线通讯系统设计,该系统具有硬件电路简单、成本低廉、编程方便、可靠性高的特点。可以方便地应用于各种总线结构的系统中,作为其无线通讯部分,实现无线数据的双向传输。无线通讯系统传输的安全性和可靠性依赖于良好软件设计,由于外界干扰,无线通讯系统很容易收到误码,无线通讯程序设计中采用的短帧结构、三字节校验法,实践证明对过滤误码是很有效的。另外测试表明在最高通讯速率范围内,适当提高通讯速率可以减少误码率。



相关帖子

沙发
Violin11|  楼主 | 2019-3-18 17:54 | 只看该作者
基于nRF401 的无线通讯系统及应用

使用特权

评论回复
板凳
51xlf| | 2019-3-20 21:06 | 只看该作者
nRF401芯片在RFID系统中的应用   

使用特权

评论回复
地板
i1mcu| | 2019-3-20 21:06 | 只看该作者
两个nRF401模块,如何相互配对?     

使用特权

评论回复
5
pmp| | 2019-3-20 21:07 | 只看该作者
高可靠无线通讯电路                  

使用特权

评论回复
6
mmbs| | 2019-3-20 21:07 | 只看该作者
系统中都需要嵌入无线数据传输的装置   

使用特权

评论回复
7
lzbf| | 2019-3-20 21:08 | 只看该作者
nRF401的短距离无线通信   

使用特权

评论回复
8
youtome| | 2019-3-20 21:08 | 只看该作者
蓝牙协议在程序上要做何处理?

使用特权

评论回复
9
cemaj| | 2019-3-20 21:08 | 只看该作者
nRF401只是无线数传芯片         

使用特权

评论回复
10
uptown| | 2019-3-20 21:09 | 只看该作者
nRF401原件在proteus软件里面有吗?  

使用特权

评论回复
11
1988020566| | 2019-3-20 21:09 | 只看该作者
nRF905 一般10dBm的话,开阔地应该能传输1000米

使用特权

评论回复
12
uptown| | 2019-3-20 21:09 | 只看该作者
做一个利用nrf401芯片与单片机做一个温度采集系统

使用特权

评论回复
13
51xlf| | 2019-3-20 21:09 | 只看该作者
在仪器仪表及测控技术中,无线数据通信以其节省传输线、使用方便等优点被广泛关注。

使用特权

评论回复
14
cemaj| | 2019-3-20 21:10 | 只看该作者
如何在isis中添加nrf401?      

使用特权

评论回复
15
i1mcu| | 2019-3-20 21:10 | 只看该作者
如何用单片机控制nrf401,实现该无线模块的发送与接收?   

使用特权

评论回复
16
youtome| | 2019-3-20 21:10 | 只看该作者
通常蓝牙需要专用芯片,自行写协议栈不现实?  

使用特权

评论回复
17
pmp| | 2019-3-20 21:10 | 只看该作者
在现代通信领域占据重要地位。           

使用特权

评论回复
18
houjiakai| | 2019-3-20 21:10 | 只看该作者
无线收发芯片nRF401或PTR2000可以再哪个软件里实现仿真?  

使用特权

评论回复
19
mmbs| | 2019-3-20 21:10 | 只看该作者
NRF短距数据通信芯片nRF401、nRF903和CC1000  

使用特权

评论回复
20
1988020566| | 2019-3-20 21:10 | 只看该作者
nrf401接收和发送信号,实际情况下相隔有多远距离?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

717

主题

1010

帖子

3

粉丝