串口协议帧设计
我要实现这样的功能:
上位机每帧给STM32的串口发送1-2K的数据,STM32收到数据把它们写到NANDFLASH中。平时做的时候都是按字节来的,发送几个字节。这里每次要发这么多是不是申请一个大数组,作为缓存,还是一字节一字节的发送啊?老大要求设计一个协议,怎么做啊,没有一点头绪。请大神救我。 串口只能用一个字节一个字节的发送,建一个状态机,控制帧头,帧长度,帧载荷,帧尾。 当然还是逐字节收发,这里要考量的是串口通讯速率与FLASH写入速率的关系,如果串口速率低,那收一个写一个就可以了。如果串口速率高,那么就需要缓存,片内资源不够就要扩充片外资源。
至于协议问题与此无关,协议要考虑的是差错控制及应答控制,以便知道数据是否准确且完整的被接收。合理的通讯协议要考虑应用场合,电磁环境很干净的地方,就楼主的应用而言,根本无所谓协议,直接发都可以,但干扰严重的话就另论了。 可以参考MODBUS 发送数据量少,被干扰可能性小,一次性发送几K数据,只要有一个数据错了,就要重新发送了,看使用环境吧! 学习了 学习了 学习了,谢谢各位 可以参考MODBUS RTU模式
页:
[1]