问题背景
车载终端与外设通讯帧格式
车载终端和外设之间通过串口进行交互数据,数据交互格式这里采用的JT/T-905标准,报文格式如下图:
碰到的问题
1.不能完整读取一条报文,导致部分数据丢失?
原因分析
智能终端没有一个字节一个字节的从串口外设读取数据,而是n个字节的读取,这样就会出现串口外设可能只向tx缓冲区写入了小于n的字节,这时候终端就要读取n字节,返回出现,从而这个有效数据就会丢失。
为了保证数据的安全,建议一个字节一个字节的读取数据,读取错误的时候,等待一会,再继续读,保证每次能完整的读取一个包。
结论
在多设备的交互过程中,需要数据交互的速率问题。每个设备的能力是不一样的,处理数据也不一致。要明白帧格式再数据交互过程中的重要性。帧格式,是指根据不同协议规定的帧的格式。通常由“帧头+数据信息”两部分组成。