I2C总线的仲裁机制

在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I 2C总线上的仲裁。

I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。

 SCL线的同步(时钟同步)

SCL同步是由于总线具有线的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线

I2C多主机模式下,仲裁是指不同主机之间竞争总线控制权的过程。当多个主机同时发起通信请求时,仲裁机制会决定哪个主机能够获得总线的控制权。这个过程是通过时钟同步和时钟扩展来实现的。 时钟同步是指不同主机之间通过线与的特性和I2C对SCL的持续检测来实现的。根据引用\[2\]中的描述,同步之后的时钟的低电平时间取决于低电平最长的CLK,高电平时间取决于高电平时间最短的CLK。通过这种方式,主机能够在通信过程中保持时钟同步,确保数据的准确传输。 时钟扩展是从机在通信过程中动态调整通信速率的措施。根据引用\[1\]中的描述,从机可以通过时钟扩展来延长SCL的低电平时间,从而使主机能够更好地检测到从机的响应。这样可以避免通信冲突和数据错误。 总的来说,在I2C多主机模式下,仲裁是通过时钟同步和时钟扩展来实现的。时钟同步确保不同主机之间的时钟保持一致,而时钟扩展则允许从机动态调整通信速率,以避免通信冲突和数据错误。 #### 引用[.reference_title] - *1* *2* [I2C(IIC)的仲裁、时钟同步和时钟扩展](https://blog.csdn.net/NeoZng/article/details/128486366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于Verilog的I2C_MASTER模块设计](https://blog.csdn.net/LMYKcat/article/details/126134901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值