EDN China > 设计实例 > 通信 > RF 射频微波 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于nRF401 的无线通讯系统及应用

来源:科技信息/李欣 王耀宾 杨华?? 2008年05月13日 ?? 收藏0

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


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

nRF401? 无线通讯? AT89C2051?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈