[DSP编程] 怎么用SCI的FIFO做MODBUS?

[复制链接]
2902|4
 楼主| hong7817 发表于 2013-11-19 15:23 | 显示全部楼层 |阅读模式
最近的项目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貌似没有这个,除非自己程序中自己加定时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

108

帖子

2

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