打印

I2C 总线调解问题

[复制链接]
1759|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
314314314|  楼主 | 2010-12-18 01:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2C Master 可以通过对比SDA线上的资料与自己写出的资料是否一致来判断自己能否得到总线控制权。

但如果同一时间,有两个master呼叫同一个slave,然后输出的资料又一样,怎样调解?

相关帖子

沙发
xinzha| | 2010-12-18 14:42 | 只看该作者
如果对slave的请求完全一样,也就会得到完全一致的结果,大家都满足了就没矛盾,何来调解?
如果请求有一点点不同或者两个master的时序略有不同,那么I2C的仲裁机制规定其中之一退出。

使用特权

评论回复
板凳
314314314|  楼主 | 2010-12-18 17:09 | 只看该作者
如果对slave的请求完全一样,也就会得到完全一致的结果,大家都满足了就没矛盾,何来调解?
如果请求有一点点不同或者两个master的时序略有不同,那么I2C的仲裁机制规定其中之一退出。 ...
xinzha 发表于 2010-12-18 14:42

我想即使请求一样,也应该要调解。
假设Slave里面有一个暂存器,存了一个数值。
两个master同时发出请求,要求Slave 把自己暂存器里的数值加1。
理论上暂存器应该加两次,但由于没有调解,结果只加了一次。
这种情况如何解决?

使用特权

评论回复
地板
xinzha| | 2010-12-18 19:53 | 只看该作者
如果两个master发出的波形始终是相同的,从硬件协议上来说是没法解决的,只能从软件协议上做出区别。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
314314314 + 1
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

0

粉丝