我需要(设计?)用于通过串行连接在微处理器驱动的数据记录器和PC(或类似)之间进行通信的协议.没有控制线,设备/ PC可以知道它们连接的唯一方式是它们接收的数据.连接可能随时被破坏
问题是要使用什么类型的数据包,握手代码或类似的.微处理器的能力非常有限,因此协议需要尽可能简单.但是数据记录器将具有许多功能,例如调度记录,下载日志,设置采样率等,这些功能可能同时处于活动状态.
我的臃肿版本将是这样的:对于数据记录器和PC,固定的数据包大小为16字节,带有简单的1字节校验和,可能是开头/结尾的0x00字节,以简化数据包的识别,一个字节表示数据包中的数据类型(命令/设置/日志数据/实时馈送值等).为了同步,可以由PC发送唯一的“hello / reset”数据包(例如所有零),然后返回设备检测到该数据包以确认同步.
我对这种方法的任何评论表示感谢,并欢迎任何其他建议以及一般性意见.
观察:我认为我必须自己动手,因为我需要尽可能轻量化.我将从答案中建议的协议中获取一些零碎,以及我发现的其他一些…… Slip,
PPP和HLDC.
代码是MIT许可的,还有嵌入式C和Python实现:
https://github.com/min-protocol/min