打印

请教SCI发送与接收中断问题

[复制链接]
4750|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangshen|  楼主 | 2009-9-23 16:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在我在做SCI通信方面的程序,DSP通过SCI中断发送数据,需要有数据返回,来确定发送的数据成不成功,当没有数据返回时,就重新发送,一共发送3次都没有返回数据,则认为错误。我的问题是,如何来开始第二次发送?也就是两次发送之间需要等待多长时间才合适?怎么确定当前的总线上没有接收数据?
因为我做的程序,如果仅发送一次,经过时间等待,能够接收到数据,但是,如果启动重发,就会接受不到(即使我将等待时间设置的足够长)。我感觉是因为本来总线上是有接受数据的,但是由于重发,将总线改为发送了,所以数据就接受不过来了,所以我想请教一下,关于我问的这几个问题。
先谢谢啦!
我这个是SCI与modbus 的结合

相关帖子

沙发
jindiaozhanji| | 2009-9-25 17:14 | 只看该作者
我也是遇到类似的问题,接收到的数据通过仿真环境看始终是一致,而且已进入中断程序就飞了,但每次都飞到同一个地方、、、、

使用特权

评论回复
板凳
andy.free-tech| | 2009-9-27 09:32 | 只看该作者
SCI是个很底层的协议,本身不具有总线仲裁的功能,需要自己来保证总线不冲突——也说是保证同一时刻只有一个在发,具体怎么保证没有统一的标准。一般是你自己定个协议(设个机制),比如主端下发命令后要求从端在规定时间(如500mS)内回应且回应是数据间隔小于某个值(如20mS),这样如果主端500mS内等不到回应就开始第二次发送。

使用特权

评论回复
地板
pangshen|  楼主 | 2009-9-28 16:21 | 只看该作者
恩,知道了,谢谢

使用特权

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

本版积分规则

9

主题

55

帖子

0

粉丝