[MCU]

2017年物联网全国技能大赛中职国赛Zigbee点对点通信题目解析

[复制链接]
10332|49
手机看帖
扫描二维码
随时随地手机跟帖
ohy3686|  楼主 | 2017-12-16 18:00 | 显示全部楼层 |阅读模式
本帖最后由 ohy3686 于 2019-7-18 19:56 编辑

2017年物联网全国技能大赛中职国赛Zigbee点对点通信题目解析

XMF393 小蜜蜂笔记 / 广东职业技术学院  欧浩源

1、缘起
      昨天有位成都的学生网友跟我交流了一道2017年全国职业技能大赛中职组“物联网技术应用与维护”的任务五题目1,关于Zigbee点对点通信的。仔细看了一下,并不是那么的容易,所以在这里分享一下实现过程。如果有正在备赛的中职朋友,可以参考一下。

2、题目
2017年中职国赛-任务五-题1A.PNG
2017年中职国赛-任务五-题1B.PNG


3、编码实现
    在比赛中提供了一个基于BasicRF的工程代码,只要在里面补充部分代码就可以了。在工程代码中,有一个“re_set.c”的文件,这个是主节点的代码,另外一个“slave_node.c”的文件,是从节点的代码。
    主节点代码文件"“re_set.c"的实现:
void main()
{
  Init();
  RFInit();
  while(1)
  {
    if(key1==0)
    {
      DelayMS(10);
      if(key1==0)
      {
        while(key1==0);
        P1=0x00;
        mode[0]++;
        switch(mode[0])
        {
         
          case 0x30:   break;
            P1=0x00;
          //补码1001 1100的原码为:1110 0100
          case 0x31:   
            LED4 = 1;
            LED3 = 1;
            LED6 = 1;
            LED5 = 0;
            break;
         
          //补码1010 0110的原码为:1101 1010
          case 0x32:   
            LED4 = 1;
            LED3 = 1;
            LED6 = 0;
            LED5 = 1;
            break;
         
          //补码1011 0000的原码为:1101 0000
          case 0x33:   
            LED4 = 1;
            LED3 = 1;
            LED6 = 0;
            LED5 = 1;
            break;
        }
        basicRfSendPacket(0x0002, mode, 1);
        if(mode[0]>=0x34)
        {
          mode[0]=0x30;
        }
      }
    }
  }
}
//↑↑↑↑↑↑↑请在选手此区域内补充代码↑↑↑↑↑↑↑</font>

    从节点代码文件"“slave_node.c"的实现:
void main()
{
  Init();
  RFInit();
  while(1)
  {
    if(basicRfPacketIsReady())
    {
      uint8 Rx[5]=0x00;
      //basicRfReceive(Rx,5,NULL);
      basicRfReceive(Rx,1,NULL);
      P1=0x00;
      switch(Rx[0])
      {
      case 0x30:   
        P1=0x00;
        break;
      //补码1001 1100的原码为:1110 0100
      case 0x31:   
        LED4 = 0;
        LED3 = 1;
        LED6 = 0;
        LED5 = 0;
        break;
      //补码1010 0110的原码为:1101 1010
      case 0x32:   
        LED4 = 1;
        LED3 = 0;
        LED6 = 1;
        LED5 = 0;
        break;
        //补码1011 0000的原码为:1101 0000
      case 0x33:   
        LED4 = 0;
        LED3 = 0;
        LED6 = 0;
        LED5 = 0;
        break;
      }
    }
  }
}
//↑↑↑↑↑↑↑请在选手此区域内补充代码↑↑↑↑↑↑↑</font>

4、关键点
<1> 补码与原码的换算关系
      对于正数原码 = 补码
      对于负数原码 = 补码(除了符号位)的各个位取反,加1
      补码1001 1100的原码为:1110 0100
      补码1010 0110的原码为:1101 1010
      补码1011 0000的原码为:1101 0000

<2> 对题目的理解非常关键,刚看到题目的时候我也懵B了。四个LED怎么表示8个数据位呢?
     主节点和从节点分别有4个LED,一共8个LED分别表示8个数据位。
     1用LED亮表示,0用LED灭表示。
     数据依次从高到低排列:主节点的D4  D3  D6  D5,从节点的D4  D3  D6  D5
     例如:1110 0100用二进制表示,就是:
     主节点的D4:
     主节点的D3:
     主节点的D6:
     主节点的D5:灭
     从节点的D4:灭
     从节点的D3:
     从节点的D6:灭
     从节点的D5:灭
     理解这个很重要,不然这个题目是做不出来的。

<3> 点对点通信的数据发送和数据接收的两个函数的应用。
     //将数据mode的一个字节发送到目标地址为0x0002的板子上。
    basicRfSendPacket(0x0002, mode, 1);
     //将板子接收到的数据读取1个字节放到Rx数组中。
    basicRfReceive(Rx,1,NULL);

4、工程代码下载
   完成工程代码下载(百度云盘):https://pan.baidu.com/s/1bpxxNqf
基本信息-XMF393版.PNG
评论
BryanChang 2018-2-24 23:33 回复TA
分析到位,学习了! 

相关帖子

dirtwillfly| | 2017-12-16 18:53 | 显示全部楼层

使用特权

评论回复
gygp| | 2017-12-17 22:55 | 显示全部楼层
zigbee是点对点通信的首选。

使用特权

评论回复
chenci2013| | 2017-12-17 22:55 | 显示全部楼层
描述的非常清晰。

使用特权

评论回复
biechedan| | 2017-12-17 22:56 | 显示全部楼层

使用特权

评论回复
gygp| | 2017-12-17 23:02 | 显示全部楼层
原来是大学教师,怪不得这么厉害呢。

使用特权

评论回复
chenci2013| | 2017-12-17 23:02 | 显示全部楼层
楼主对zigbee理解到位了。

使用特权

评论回复
ohy3686|  楼主 | 2017-12-18 12:27 | 显示全部楼层
gygp 发表于 2017-12-17 22:55
zigbee是点对点通信的首选。

自组网才是Zigbee的优势所在。

使用特权

评论回复
ohy3686|  楼主 | 2017-12-18 12:27 | 显示全部楼层
chenci2013 发表于 2017-12-17 23:02
楼主对zigbee理解到位了。

我感觉才刚刚入门呀。

使用特权

评论回复
619888476| | 2017-12-18 15:09 | 显示全部楼层
不错

使用特权

评论回复
gujiamao12345| | 2017-12-18 16:30 | 显示全部楼层
感谢分享

使用特权

评论回复
ohy3686|  楼主 | 2017-12-18 20:52 | 显示全部楼层

对大家有用就好...

使用特权

评论回复
齐鲁灵通| | 2017-12-19 16:27 | 显示全部楼层
都开始开发人工智能了。

使用特权

评论回复
mmuuss586| | 2017-12-19 17:04 | 显示全部楼层

感谢分享;

使用特权

评论回复
lihui567| | 2017-12-20 09:17 | 显示全部楼层
非常不错

使用特权

评论回复
luckyJeck| | 2017-12-20 13:05 | 显示全部楼层
厉害厉害!

使用特权

评论回复
@若水| | 2017-12-22 08:49 | 显示全部楼层
是我们落后了

使用特权

评论回复
sanxingnote7| | 2017-12-22 15:59 | 显示全部楼层
物联网全国技能大赛含金量怎么样?

使用特权

评论回复
backlugin| | 2017-12-22 15:59 | 显示全部楼层
下一步可以研究wifi了。

使用特权

评论回复
sanxingnote7| | 2017-12-22 16:01 | 显示全部楼层
只是针对zigbee产品吗?

使用特权

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

本版积分规则

个人签名:广东职业技术学院 欧浩源(ohy3686@foxmail.com)    [Zigbee技术&物联网应用] 群:168225322    [技术交流微信]:gzyohy (暗号:宝塔镇河妖)

322

主题

899

帖子

2581

粉丝