victor3l 发表于 2013-9-24 19:09

串口协议帧设计


我要实现这样的功能:
上位机每帧给STM32的串口发送1-2K的数据,STM32收到数据把它们写到NANDFLASH中。平时做的时候都是按字节来的,发送几个字节。这里每次要发这么多是不是申请一个大数组,作为缓存,还是一字节一字节的发送啊?老大要求设计一个协议,怎么做啊,没有一点头绪。请大神救我。

罗菜鸟 发表于 2013-9-26 10:26

串口只能用一个字节一个字节的发送,建一个状态机,控制帧头,帧长度,帧载荷,帧尾。

chunyang 发表于 2013-9-26 18:56

当然还是逐字节收发,这里要考量的是串口通讯速率与FLASH写入速率的关系,如果串口速率低,那收一个写一个就可以了。如果串口速率高,那么就需要缓存,片内资源不够就要扩充片外资源。
至于协议问题与此无关,协议要考虑的是差错控制及应答控制,以便知道数据是否准确且完整的被接收。合理的通讯协议要考虑应用场合,电磁环境很干净的地方,就楼主的应用而言,根本无所谓协议,直接发都可以,但干扰严重的话就另论了。

make8419247 发表于 2013-10-6 10:52

可以参考MODBUS

dictionary 发表于 2013-10-8 14:05

发送数据量少,被干扰可能性小,一次性发送几K数据,只要有一个数据错了,就要重新发送了,看使用环境吧!

15201995539 发表于 2013-10-13 22:22

学习了

15201995539 发表于 2013-10-13 22:23

学习了

15201995539 发表于 2013-10-13 22:23

学习了,谢谢各位

15201995539 发表于 2013-10-13 22:24

可以参考MODBUS RTU模式
页: [1]
查看完整版本: 串口协议帧设计