打印
[DSP编程]

怎么用SCI的FIFO做MODBUS?

[复制链接]
2312|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感觉很**肋

使用特权

评论回复
5
hong7817|  楼主 | 2015-7-9 14:48 | 只看该作者
airwill 发表于 2013-11-24 21:56
嗯, 数据过短, 可以用接收超时中断.
数据过长, 可以在中断里设置数据接收未完状态, 等待下次中断做数据补充 ...

接收超时中断,TI貌似没有这个,除非自己程序中自己加定时

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

108

帖子

2

粉丝