【技能大赛真题】2019年物联网国赛任务三题1-无线通信系统

【技能大赛真题】2019年物联网国赛任务三题1-无线通信系统

XMF393 小蜜蜂笔记 / 广东职院  欧浩源

【题目要求】:无线通信系统

    Zigbee通讯拥有短距离无线通讯的能力,选用一个Zigbee节点盒(蓝色),一个Zigbee模块(黑色),实现点对点的数据传输通讯,考核选手Zigbee点对点知识的掌握,利用给定的工程实现任务。要求如下:
    <1> Zigbee网络号PAN ID、信道号Channel ID请参考纸质附件给定的值。
    <2> 程序开始运行Zigbee节点盒LED1、LED2灯亮,Zigbee模块D4、D3、D6、D5灯亮
    <3> 单击Zigbee节点盒SW1后,板上的LED1、LED2灯进入交替亮灭状态(如LED1亮则LED2灭,LED2亮则LED1灭);同时发送一个信息给Zigbee模块,当Zigbee模块收到这个信息后Zigbee模块板上的D4、D3、D6、D5灯进入流水灯状态
    <4> 单击Zigbee模块上的SW1后,板上的D5、D6、D3、D4灯进入流水状态;同时发送一个信息给Zigbee节点盒,当Zigbee节点盒收到这个信息后Zigbee节点盒板上的LED1、LED2进入呼吸灯状态;
    <5> 单击Zigbee模块上的SW2后,重置两个Zigbee板上的灯,Zigbee模块D4、D3、D6、D5灯亮;Zigbee节点盒LED1、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端连接的串口为COM8、波特率为115200,Zigbee模块与移动互联终端连接的串口为COM2,波特率为115200,要求编译后的工程软件直接运行就能读取到相应的信息。

    任务三题1的第<7>和<8>项功能,还是任务五题1第<3>和第<4>的实现基础,也就是说,这个RF无线数据透传功能无法实现,任务五题1的部分功能也无法得分。
任务五题1:点对点聊天系统。
    <3> 当在输入消息文本框里输入相应的文本之后,点击发送按钮,将这条文本信息显示在现实文本框的最后一行,同时把这条消息通过串口发送给任务三题1提供的Zigbee模块,由模块转发给Zigbee节点盒最终由PC端接收并显示该信息。
    <4> Android端接收到从Zigbee模块串口发送过来相应的信息,则直接把该信息显示在现实文本框的最后一行。

 

【硬件资源】Zigbee模块与Zigbee节点盒的电路对照

【技能大赛真题】2019年物联网国赛任务三题1-无线通信系统

注:关于Zigbee模块的详细资料,可详见:XMF09B国赛ZIgbee模块资料汇总

 

【解题关键】:五个知识技能要点

    这是一道非常优秀的BasicRF综合应用题目,仅仅掌握BasicRF点对点无线通信相关的内容是很难在一个小时左右完成题目的。这道题目的重要知识点至少包括:
    <1> 基于BasicRF点对点通信的无线数据收发。
    <2> 基于BasicRF点对点通信的串口数据收发。
    <3> 基于BasicRF点对点通信的I/O端口控制。 
    <4> 呼吸灯的是程序现实。
    <5> 简单通信协议的设计。
    <6> 多状态切换的系统框架设计。

 

【解题参考思路】:大约归为七个步骤。

    <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模块

上一篇:Zigbee应用开发 组播通信


下一篇:安防监控之需求分析