串口协议帧设计

[复制链接]
2687|8
 楼主| 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模式
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部