-
1 知识介绍
-
2 PPT
-
3 学习视频
-
4 讨论
-
5 大国重器
案例介绍
本次课将讲解第五单元基于BasicRF的通信应用当中的第五个任务,传感数据汇聚。通过对仓储环境监测系统进行分解得到四个子任务,本任务将要完成第四个子任务每隔2s将采集的传感器数据通过无线网络传给汇聚节点模块任务的实现。
仓储环境监测系统子任务如下:
(1) 采用温湿度传感器模块和通信模块组成数字量采集节点A
(2) 火焰传感器模块和通信模块组成开关量采集节点B
(3) A、B两个节点实时采集传感器的数据
(4) 每隔2s将采集的传感器数据通过无线网络传给汇聚节点模块
案例分析
通过对案例的任务进行分析,得到需要实现的具体关键点如下:
(1)在定义宏CC2530_DEBUG的情况下,汇聚节点接收到自定义协议后,对协议数据进行解析将数据显示在PC机串口调试助手上。
(2)温度显示格式:“当前温度:xx℃”。湿度显示格式:“当前相对湿度:xx %”,火焰显示格式:“当前红外线(火焰)强度:xxmV”。
(3)汇聚节点与串口调试助手的波特率是115200,8位数据位,1位停止位。当关闭宏定义CC2530_DEBUG的情况下,汇聚节点将数据透传到串口上。
知识储备
一、CC2530串行通信相关知识介绍—串行通信概述
在本任务中需要用到串行接口,所以先介绍一下CC2530 串行通信相关的知识。

如
UxCSR -USART x 控制和状态(USART x Control and Status) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
7 | MODE | 0 | R/W | USART模式选择。 0:SPI模式; 1:UART模式 |
6 | RE | 0 | R/W | UART接收器使能。注意在UART完全配置之前不使能接收。0:禁用接收器; 1:接收器使能 |
5 | SLAVE | 0 | R/W | SPI主或者从模式选择0:SPI主模式; 1:SPI从模式 |
4 | FE | 0 | R/W0 | UART帧错误状态0:无帧错误检测; 1:字节收到不正确停止位级别 |
3 | ERR | 0 | R/W0 | UART奇偶错误状态0:无奇偶错误检测; 1:字节收到奇偶错误 |
UxCSR -USART x 控制和状态(USART x Control and Status) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
2 | RX_BYTE | 0 | R/W0 | 接收字节状态。URAT模式和SPI从模式。当读U0DBUF时,该位自动清除;也可以通过写0清除它,都可有效丢弃U0DBUF中的数据。0:没有收到字节; 1:准备好接收字节 |
1 | TX_BYTE | 0 | R/W0 | 传送字节状态。URAT模式和SPI主模式0:字节没有被传送1:写到数据缓存寄存器的最后字节被传送 |
0 | ACTIVE | 0 | R | USART传送/接收主动状态。在SPI从模式下,该位等于从模式选择位。0:USART空闲; 1:在传送或者接收模式USART忙碌 |
UxUCR–USART x UART 控制(USART x UART Control) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
7 | FLUSH | 0 | R0/W1 | 清除单元。当设置时,该事件将会立即停止当前操作并且返回单元的空闲状态。 |
6 | FLOW | 0 | R/W | UART硬件流使能。用RTS和CTS引脚选择硬件流控制的使用。0:流控制禁止; 1:流控制使能 |
5 | D9 | 0 | R/W | UART奇偶校验位。当使能奇偶校验,写入D9的值决定发送的第9位的值,如果收到的第9位不匹配收到字节的奇偶校验,接收时报告ERR。如果奇偶校验使能,那么该位设置以下奇偶校验级别。0:奇校验; 1:偶校验 |
UxUCR–USART x UART 控制(USART x UART Control) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
4 | BIT9 | 0 | R/W | UART 9位数据使能。当该位是1时, 使能奇偶校验位传输(即第9位)。如果通过PARITY使能奇偶校验,第9位的内容是通过D9给出的。0:8位传送; 1:9位传送 |
3 | PARITY | 0 | R/W | UART奇偶校验使能。除了为奇偶校验设置该位用于计算,必须使能9位模式。0:禁用奇偶校验; 1:奇偶校验使能 |
2 | SPB | 0 | R/W | UART停止位的位数。选择要传送的停止位的位数0:1位停止位; 1:2位停止位 |
1 | STOP | 1 | R/W | UART停止位的电平必须不同于开始位的电平0:停止位低电平; 1:停止位高电平 |
0 | START | 0 | R/W | UART起始位电平。闲置线的极性采用选择的起始位级别的电平的相反的电平。0:起始位低电平; 1:起始位高电平 |
U0GCR–USART x 通用控制(USART x Generic Control) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
7 | CPOL | 0 | R/W | SPI 的时钟极性。0:负时钟极性; 1:正时钟极性 |
6 | CPHA | 0 | R/W | SPI 时钟相位0:当 SCK从CPOL倒置到CPOL时,数据输出到MOSI端口;当 SCK从CPOL到CPOL倒置时,对MISO端口数据采样输入。1:当SCK从CPOL到CPOL倒置时,数据输出到MOSI端口;当 SCK从CPOL倒置到CPOL时,对MISO端口数据采样输入。 |
5 | ORDER | 0 | R/W | 传送位顺序。0:LSB 先传送;1:MSB 先传送 |
4:0 | BAUD_E[4:0] | 00000 | R/W | 波特率指数值。BAUD_E 和 BAUD_M决定了UART波特率和SPI 的主SCK时钟频率。 |
UxDBUF– USART x 接收/传送数据缓存(USART x Receive/Transmit Data Buffer) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
7:0 | DATA[7:0] | 0x00 | R/W | USART接收和传送数据。当写这个寄存器的时候数据被写到内部,传送数据寄存器。当读取该寄存器的时候,数据来自内部读取的数据寄存器。 |
UxBAUD– USART x 波特率控制(USART x Baud-Rate Control) | ||||
位 | 名称 | 复位 | 读/写 | 描述 |
7:0 | BAUD_M[7:0] | 0x00 | R/W | 波特率小数部分的值。 BAUD_E和 BAUD_M决定了UART的波特率和SPI的主SCK时钟频率。 |
二、波特率
(1)如

(2)如

(3)由 寄 存 器 UxBAUD.BAUD_M[7 : 0] 和 UxGCR.BAUD_E[4:0]定义波特率。该波特率用于 UART 传送,也用于 SPI 传送的串行时钟速率。
波特率由下式给出:
式中:是系统时钟频率,等于 16 MHz RCOSC 或者 32 MHz XOSC。
标准波特率所需的寄存器值如
波特率 (bps) | UxBAUD.BAUD_M | UxGCR.BAUD_E | 误差(%) |
2400 | 59 | 6 | 0.14 |
4800 | 59 | 7 | 0.14 |
9600 | 59 | 8 | 0.14 |
14400 | 216 | 8 | 0.03 |
19200 | 59 | 9 | 0.14 |
28800 | 216 | 9 | 0.03 |
38400 | 59 | 10 | 0.14 |
57600 | 216 | 10 | 0.03 |
76800 | 59 | 11 | 0.14 |
115200 | 216 | 11 | 0.03 |
230400 | 216 | 12 | 0.03 |
任务实施
任务的实施过程主要有编写程序、系统测试、数据上报云平台三个步骤。
一、编写程序
(一)第一步编写代码
打开创建的工程,打开collect.c的源码。
(二)在collect.c的合适位置新增通讯协议相关的宏定义

(三)在collect.c新增计算校验和函数CheckSum()

汇聚节点的 collect.c 文件中的 main()函数,该函数新增数据解析和输出到串口代码,主要完成数据解析和显示功能。
汇聚节点接收到无线数据后,对协议数据进行解析,温度显示格式为:“当前温度:xx℃”。 湿度显示格式为:“当前相对湿度:xx %”,火焰显示格式为:“当前红外线(火焰)强度:xxmV”。 当关闭宏定义 CC2530_DEBUG 后,无线数据透传到串口。
(四)代码分析
如

如

如




二、系统测试
(一) 系统测试——搭建好硬件环境
首先按照

(二)系统测试——配置好串口调试工具
将汇聚节点的串口连接到 PC 上,打开串口调试软件,将串口的波特率设置为 “115200”。并单击“连接”按钮进行连接,如

(三)系统测试——查看运行结果
在 PC 的串口调试软件上会定时显示接收到温湿度传感器的数据和火焰传感器的电压信息,运行效果如

三、数据上报云平台
(一)数据上报云平台——预编译设置
如

如

在汇聚节点的工程源码配置中,将预编译宏定义“CC2530_DEBUG”改为“xCC2530_DEBUG”, 重新编译并下载到黑色 ZigBee 模块的板子上。然后将汇聚节点的串口连接到232转485转换器,将转换后的485信号接到物联网网关的 RS485 接口上。
(二)数据上报云平台——物联网网关连接
按

(三)数据上报云平台——云平台新建项目
如

(四)数据上报云平台——将设备添加到云平台
如

如


(五)数据上报云平台——配置物联网网关接入云平台
按

如

将前面记录的设备 ID、设备标识、处传输密钥填入到设备ID、设备标识、传输密钥的对应位置。物联网网关配置参数配置完毕,点击设置按钮,物联网网关系统自动重启,等待20 秒左右,系统初始化完毕。

(六)数据上报云平台——云平台数据显示
(1)如

(2)如

(3)如


