【技能大赛真题】2019年物联网国赛任务三题1-无线通讯系统html
XMF393 小蜜蜂笔记 / 广东职院 欧浩源数组
【题目要求】:无线通讯系统网络
Zigbee通信拥有短距离无线通信的能力,选用一个Zigbee节点盒(蓝色),一个Zigbee模块(黑色),实现点对点的数据传输通信,考核选手Zigbee点对点知识的掌握,利用给定的工程实现任务。要求以下:
<1> Zigbee网络号PAN ID、信道号Channel ID请参考纸质附件给定的值。
<2> 程序开始运行Zigbee节点盒LED一、LED2灯亮,Zigbee模块D四、D三、D六、D5灯亮;
<3> 单击Zigbee节点盒SW1后,板上的LED一、LED2灯进入交替亮灭状态(如LED1亮则LED2灭,LED2亮则LED1灭);同时发送一个信息给Zigbee模块,当Zigbee模块收到这个信息后Zigbee模块板上的D四、D三、D六、D5灯进入流水灯状态。
<4> 单击Zigbee模块上的SW1后,板上的D五、D六、D三、D4灯进入流水状态;同时发送一个信息给Zigbee节点盒,当Zigbee节点盒收到这个信息后Zigbee节点盒板上的LED一、LED2进入呼吸灯状态;
<5> 单击Zigbee模块上的SW2后,重置两个Zigbee板上的灯,Zigbee模块D四、D三、D六、D5灯亮;Zigbee节点盒LED一、LED2灯亮。
<6> 能重复实现以上步骤。
<7> Zigbee节点盒要实现与PC端串口的通信功能,以便接收PC端软件由串口发送过来的数据后,经过无线通信转发给Zigbee模块,再由Zigbee模块将这个数据经过串口发送给Android端软件。
<8> Zigbee模块要实现与Android端串口的通信功能,以便接收Android端软件由串口发送过来的数据后,经过无线通信转发给Zigbee节点盒,再由节点盒将这个数据经过串口发送给PC端软件。框架
补充说明:
<1> 在两块Zigbee板上的小辣椒(天线)上贴上“任务三题1”标签纸,Zigbee节点盒经过USB转串口线接入开发机电脑,Zigbee模块经过公母直连串口线接入到移动互联终端,两个Zigbee板都要接上电源待裁判评判。
<2> Zigbee节点盒与PC端链接的串口为COM八、波特率为115200,Zigbee模块与移动互联终端链接的串口为COM2,波特率为115200,要求编译后的工程软件直接运行就能读取到相应的信息。函数
任务三题1的第<7>和<8>项功能,仍是任务五题1第<3>和第<4>的实现基础,也就是说,这个RF无线数据透传功能没法实现,任务五题1的部分功能也没法得分。
任务五题1:点对点聊天系统。
<3> 当在输入消息文本框里输入相应的文本以后,点击发送按钮,将这条文本信息显示在现实文本框的最后一行,同时把这条消息经过串口发送给任务三题1提供的Zigbee模块,由模块转发给Zigbee节点盒最终由PC端接收并显示该信息。
<4> Android端接收到从Zigbee模块串口发送过来相应的信息,则直接把该信息显示在现实文本框的最后一行。工具
【硬件资源】Zigbee模块与Zigbee节点盒的电路对照测试
注:关于Zigbee模块的详细资料,可详见:XMF09B国赛Zigbee模块资料汇总spa
【解题关键】:五个知识技能要点设计
这是一道很是优秀的BasicRF综合应用题目,仅仅掌握BasicRF点对点无线通讯相关的内容是很难在一个小时左右完成题目的。这道题目的重要知识点至少包括:
<1> 基于BasicRF点对点通讯的无线数据收发。
<2> 基于BasicRF点对点通讯的串口数据收发。
<3> 基于BasicRF点对点通讯的I/O端口控制。
<4> 呼吸灯的是程序现实。
<5> 简单通讯协议的设计。
<6> 多状态切换的系统框架设计。3d
<参考资料01>:基于BaiscRF点对点通讯的灯光控制
<参考资料02>:基于BaiscRF点对点通讯的串口收发
<参考资料03>:Zigbee模块XMF09B国赛兼容版资料汇总
<参考资料04>:BasicRF点对点无线通讯的应用开发核心要点
<参考资料05>:BasicRf点对点与Z-Stack组网国赛官方提供API函数汇总
<参考资料06>:十大传感器模块的接口电路与API函数资料汇总
【解题参考思路】:大约归为七个步骤。
<1> 认真阅读题目,至少三遍以上, 把题目中的要点摘录至草稿纸上。
<2> 头脑中要初步造成整体的设计思路和清晰的实现步骤,最好能把基本的系统结构和应用逻辑勾勒过来,否则很难在短期内彻底解答该题目。
<3> 先设计一个单独的程序,实现呼吸灯的功能。呼吸灯的实现跟BasicRF点对点通讯没有关系,但应该是本题的一个难点,你能够选择用定时器来实现PWM信号,也能够用普通延时函数来实现。用定时器会涉及一些寄存器的设置和中断的处理,因此,我采用了普通延时函数来实现,这也是一个比较快捷的方法。
<4> 再设计一个单独的程序,实现串口与RF无线之间的数据透传功能。也就是利用串口助手等工具在PC端经过串口向A节点发送数据,A节点收到后经过RF无线发送到B节点,B节点收到数据后,再经过串口发送给PC端并在另外一个串口助手中显示出来。反之亦然。
注:看起来这里虽然多写了2个测试程序,但这是为了扫除题目中最大的两个技术障碍,使后面的应用程序开发的道路更顺畅平台。若是你对这两部份内容很熟练的话,这个2个测试程序就免了。
<5> 根据应用的具体要求和实现环境 设计点对点的通讯协议。在这里我选择了32字节的数组做为无线传输的数据帧,其结构定义以下:
第0字节:系统命令字。
第1字节:数据域的有效长度。
第2字节~第31字节:数据域。
<6> 定义通讯协议中系统命令字。本题选择状态机做为系统应用逻辑处理的基本思路,在这个步骤中实际上也把系统的具体切换状态肯定了。 具体的命令字定义,你们能够参考后面的源码与注释。
<7> 按照系统设计思路和通讯协议,设计具体的应用程序,并调试。
【其余资源】
<1> 参考代码详见:核心关键源码与注释
<2> HEX烧写代码下载:2019年国赛任务三题1-Zigbee节点盒
<3> HEX烧写代码下载:2019年国赛任务三题1-Zigbee模块
原文出处:https://www.cnblogs.com/ALittleBee/p/11199572.html