图2-1 DHT11与CC2530部分接口电路
如上图2-1所示 DHT11的串行接口DATA用于微处理器与其之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右。数据分为小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作如下图2-2:
图2-2 DHT11与CC2530通讯过程
一次完整数据传输为40bit,高位先出。数据格式:8位湿度整数数据+8位湿度小数数据+8温度整数数据+8位温度小数数据+8位校验和。最后8位校验和等于前面32位相加结果的末8位。
CC2530发送一次开始信号后,DHT11从低功耗转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温度采集。采集数据后转换到低速模式。
通讯过程如下图2-2所示
总线空闲时高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测出起始信号。DHT11接收到主机开始信号后,等待主机开始信号结束,然后发送80us后低电平响应信号。主机发达开始信号结束后,延时等待20—40us 后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式或者输出高电平均可。总线由上拉电阻拉高。如图2-3。
16
图2-3 DHT11与CC2530开始响应示意图
总线为低电平,说明DHT11发送响应信号,之后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平开始,高电平长短决定了数据位是0还是1。格式 见下图2-4。如果读取的响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
图2-4 DHT11接口位‘0’‘1’表示方式 实验步骤:
1.外部中断实验
1)正确连接CC2530仿真器到PC和ZXBee CC2530节点板,确定跳线方式为模式一方式。打
开电源上电。
2)用IAR打开实验工程:在方件夹“05-实验例程\\第2章\\2.3-Extint”下的工程文件,选
择重新编译工程。
3)接下仿真器上的复位开关,将程序下载到CC2530节点板上,并运行。
17
4)连续按下CC2530节点板上的K5按键,观察LED亮灭状态变化情况。 完成实验要求中对本实验的要求内容。
2.串口实验
1)正确连接CC2530仿真器到PC和ZXBee CC2530节点板,确定跳线方式为模式一方式。用
RS232串口线一端连接CC2530节点板,一端连接到PC机串口。打开电源上电。
2)在PC机上打开串口终端软件,设置好波特率为19200。
3)用IAR打开实验工程,在方件夹“05-实验例程\\第2章\\2.5-UART”下的工程文件,选择
重新编译工程。
4)按下仿真器复拉按键。将程序下载到CC2530节点板上并运行。程序运行后,在PC机上的
串口软件上通过健盘发送数据到CC2530,以@结束。观察CC2530回送给PC机的数据。
5)改变串口软件的波特率,程序如何修改才能正确运行。 完成实验要求中对本实验的要求内容。
3.温湿度传感器实验
1)准备好带有温湿度传感器的CC2530射频板,正确连接CC2530仿真器到PC和ZXBee CC2530
节点板,确定跳线方式为模式一方式。用RS232串口线一端连接CC2530节点板,一端连接到PC机串口。打开电源上电。
2)在PC机上打开串口终端软件,设置好波特率为19200,8位数据位,1位停止位,无硬件
流控。
3)用IAR打开实验工程,在方件夹“05-实验例程\\第3章\\3.2-UART”下的工程文件,选择
重新编译工程。
4)按下仿真器复拉按键。将程序下载到CC2530节点板上并运行。程序运行后,在PC机上的
串口软件观察CC2530送给PC机的温湿度数据。并用嘴吧靠近传感器吹气,观察显示结果变化情况。
完成实验要求中对本实验的要求内容。
实验要求:
1. 看懂外部中断实验的程序语句,画出实验程序流程图。
2. 修改中断处理程序,实现按下K4时第一个LED灯亮,第二个LED灭;按下K5时第一个LED
灭,第二个LED亮。并存到一个以自己名字首字母加学号命名的项目上。 3. 看懂串口实验的程序语句,画出实验程序流程图。
4. 比较在串口调试助手中输入单字母与输入多字母时候程序回显差异,考虑如何修改程序能
实现多字母回显功能。
5. 找出温湿度传感器实验程序中的主机与DHT11建立通讯过程的每个步骤是哪个语句实现
的,写在实验报告中。
18
6. 修改程序,把显示部分加上小数数据,而且只有数据有变化时才显示出来。数据没有变化
时不再重复显示。存到一个以自己名字首字母加学号命名的项目上。
参考资料:DHT11使用手册、CC2530使用手册、C语言程序设计、IAR使用手册。
-------------------------------------------------------------------------------------------
19
实验五、组网和控制(4学时) 实验目的:
a)熟悉CC2530使用射频通信的基本方法,练习使用状态机实现收发功能。掌握通过发送命令来实现对其他节点外设控制方法;
实验环境:
硬件:电脑、ZXBee CC2530无线节点板3块、CC2530仿真器,调试接口板、交叉串口线。 ZX-s210w53综合物联网实验平台
软件:WINDOWS XP、IAR软件、Eclipse软件、串口调试助手。 实验原理:
CC2530内部的RF模块是一个2.4G无线电模块。它在MCU之间有一个接口,这样可以发出命令、读取自动对无线电事件排序。RF模块的RAM有一个发送数据的128字节先进先出栈TXFIFO和一个128字节接收数据栈RXFIFO。可以通过SFR寄存器RFD(0XD9)访问TXFIFO和RXFIFO。当写入RFD寄存器时,数据被写入到TXFIFO;当读取RFD寄存器时,数据从RXFIFO中读出。
XREG寄存器RXFIFOCNT和TXFIFOCNT提供FIFO中的数据数量的信息。FIFO的内容可以通过发出SFLUSHRX和SFLUSHTX清除。 CC2530RF频率和通道设置过程:
本实验中,发送节点板将数据通过RF模块发送指令到指定的接收板节点,接收节点通过RF 模块接收到数据后,通过串口发送到PC机串口调试助手中显示出来。发果发送节点发送的数据目的地址与接收节点地址不匹配,接收节点将接收不到数据。
接收节点是上电进行初始化,然后通过指令ISRXON开启射频接收器,等待接收数据,直到正确接收到数据为止,再通过串口打印机输出。发送节点上电后和接收点进行相同的初始化,然后将要发送的数据输出到TXFIFO,再调用指令ISTXONCCA通过射频前端发送数据。流程图如下图5-1所示。
20