当地址信息发送完毕后,紧接着发送数据信息,其中数据信息由4个字节组成,其中前两个字节为湿度的整数部分和小数部分,后两个字节为温度的整数和小数部分。
最后一个字节是数据校验和,它是前面5字节数据的和,用于校验目的,减少数据在传输的过程中受外界干扰发生跳变而误将数据接收处理。与奇偶校验类似,首先将欲发送的前5个字节数据进行累加,若累加后超出8位则采用补码形式表示,将所得的数据和作为最后一个字节。接收端接收到这组数据后,将前面5组数据进行累加,超出8位同样采用补码形式表示,得出新的校验和,将此校验和与接收所得的校验和进行对比,若结果相同则数据在传输过程中没有发生错误,否则数据传输有误,丢弃整组数据不进行处理。
每个字节在传输过程中均按下面介绍的串口通信协议传输。详见串口初始化子程序。
4.3 串口子程序
当单片机读取到传感器的数据时,就需要将所得数据发送至无线模块,在这里采用的是串口通信协议,同样在调试过程中,节点与上位机通信也是使用的串口通信协议,利用单片机的USART口进行数据传输,在ATmega8上通用同步和异步串行接收器和转发器(USART) 是一个高度灵活的串行通讯设备。
其主要特点为:
全双工操作( 独立的串行接收和发送寄存器)
高精度的波特率发生器
支持5,6,7,8,或9个数据位和1个或2个停止位
硬件支持的奇偶校验操作
数据过速检测
帧错误检测
三个独立中断:发送结束中断,发送数据寄存器空中断,以及接收结束中断
倍速异步通讯模式
4.3.1 串口初始化子程序
要保证下位单片机和上位PC机之间的数据传送准确、可靠,需要像无线传输一样共同遵守一个事先制定好通信协议,对USART进行初始化就是对通信协议确定。
初始化过程通常包括波特率的设定,帧结构的设定,以及根据需要使能接收器或发送器。重新改变USART的设置应该在没有数据传输的情况下进行。TXC标志位可以用来检验一个数据帧的发送是否已经完成,RXC标志位可以用来检验接收缓冲器中是否还有数据未读出。在每次发送数据之前(在写发送数据寄存器UDR前)TXC标志位必须清零。图4.2为串口初始化子程序流程图。
- 上一篇:matlab硅微陀螺检测信号数字处理研究
- 下一篇:MSP430单片机控制的电子文件柜设计
-
-
-
-
-
-
-
浅析中国古代宗法制度
现代简约美式风格在室内家装中的运用
中国传统元素在游戏角色...
NFC协议物理层的软件实现+文献综述
高警觉工作人群的元情绪...
C++最短路径算法研究和程序设计
g-C3N4光催化剂的制备和光催化性能研究
江苏省某高中学生体质现状的调查研究
巴金《激流三部曲》高觉新的悲剧命运
上市公司股权结构对经营绩效的影响研究