要求编写一个串口通信协议文件,两个设备固定,单片机和上位机传输,传输的数据是温度和光功率,一共16个光功率测试通道,怎么编写串口通信协议文件
字符型,一般单指令,报头+报信息+指令+数据+报尾,根据具体需要增删,如加入crc检测,去报尾等,多指令需要引入分隔符。
非字符型,一般根据定长度,报头可去除或保留,如指令两个字节,数据四个字节等,例如主机号(1字节)+读写操作(1字节)+指令(2字节)+数据(4字节)+crc(2字节)。
一般可以参照通用协议去编写,方便后续其他设备接入,改动也比较小。自己编写设计也是可行的。
定义一个结构体,发送端把数据写到结构体里,然后发送逐个结构体,接收端接收完成后组合成一个结构体。
当然,考虑到串行通讯的特点,可能需要一些额外的数据,用于检测数据的开始,也就是所谓的数据标头,然后,还需要校验信息。
最简单的是直接使用工业通信协议 Modbus