hong7817 发表于 2013-11-19 15:23

怎么用SCI的FIFO做MODBUS?

最近的项目CPU负荷有点高,想把485通信改成FIFO,这样就可以减少很多中断次数。

但问题是:发送、接收的数据长度不定,FIFO的级数怎么确定呢?

比如第一次第一次接收10个字节,那我可以设置中断级位10,接收完就会有匹配中断;但下次上位机也许发送17个字节,这时中断级数就对应不上了,该怎么处理呢?

zhangmangui 发表于 2013-11-19 23:53

这个问题我曾经也想过最后还是把数据长度统一了
如果实在没办法你可以把超过长度的截成两次发送
规定好格式第一次发送完还有下次继续发送的数据标志

airwill 发表于 2013-11-24 21:56

嗯, 数据过短, 可以用接收超时中断.
数据过长, 可以在中断里设置数据接收未完状态, 等待下次中断做数据补充

hong7817 发表于 2015-7-9 14:48

zhangmangui 发表于 2013-11-19 23:53
这个问题我曾经也想过最后还是把数据长度统一了
如果实在没办法你可以把超过长度的截成两次发送
规定 ...

这是个办法,但做不成通用,因为上位机发什么下位机是不知道的,且上位机不可控。
如果上位机和下位机都是自己开发程序那好办。
我想很久,也没找出办法。
TI的这个FIFO感觉很**肋

hong7817 发表于 2015-7-9 14:48

airwill 发表于 2013-11-24 21:56
嗯, 数据过短, 可以用接收超时中断.
数据过长, 可以在中断里设置数据接收未完状态, 等待下次中断做数据补充 ...

接收超时中断,TI貌似没有这个,除非自己程序中自己加定时
页: [1]
查看完整版本: 怎么用SCI的FIFO做MODBUS?