二、通信协议三要素
1.语义,语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
2. 语法,语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。
3. 时序,时序是对事件发生顺序的详细说明。(也可称为“同步”)。
三、串口通信协议
基于串口的通信协议通常不能太复杂,因为串口通信速率、抗干扰能力以及其他各方面原因,相对于TCP/IP这两种通信协议,是一种较为低级的通信协议。在本次模拟温室监控系统设置中,我们上位机和下位机使用串口通讯,而基于串口的通信,除了一些通用的通信协议之外,很多时候,我们都要根据自己项目所需要的情况,自定义通信协议。
所以,我们在上位机创建了一个类,类中定义了我们上位机的通信协议:
const byte FRAME_HEAD1 = 0xAA; //帧头1
const byte FRAME_HEAD2 = 0x55; //帧头2
const byte FRAME_END = 0x0D; //帧尾
const byte FRAME_DIR_CMD = 0x01; //下发
const byte FRAME_DIR_REC = 0x81; //上发
const byte FRAME_DATA_NUM = 3; //数据长度
const byte FRAME_LED = 0x01; //LED灯
const byte FRAME_FAN = 0x02; //风扇