I2C 总线调解问题

[复制链接]
2410|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

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