搜索

I2C之知(五)--I2C总线bit地址以及通用广播地址

gecimao 发表于 2019-05-08 17:46 | 查看: | 回复:

  10bit的寻址扩展可能寻址的数目.有7bit地址和10bit地址的设备可以连接到相同的10bit的从机地址由开始条件(S)或重复开始条件(Sr)后的两个字节组成.第一个字节的前7位是1111 0XX,XX是10bit地址的最高有效位的前两位.第一个字节的第8bit是读写位,决定传输方向.尽管1111 XXX有8种可能的组合,然后只有1111 0XX这四种可以用于10bit寻址.剩下的1111 1XX这四种是为将来

  扩展用的.前面描述的用于7bit寻址的读写格式都适用于10bit寻址.详情如下:1.主-发送器传输到从-接收器(10bit从机地址)

  从图中看出传输方向不变.当接收到开始条件后的10bit地址,从机就和它自己的地址比较从机地址的第一个字节(1111 0XX),并检查第八个bit(读写位)是否为0.有可能多个设备都匹配并产生应答(A1).接下来所有从机开始匹配自己地址与第二个字节的8个bit(XXXX XXXX),这时就只有一个从机匹配并产生应答(A2).被主机寻址匹配的从机会保持被寻址的状态直到接收到终止条件或者是重复开始条件后跟着一个不同的从机地址.

  在第二个应答A2之前,处理过程与上面的主-发送器寻址从-接收器一致.在重复开始条件(Sr)之后,匹配的从机会保持被寻址上的状态.这个从机会检查Sr之后的第一个字节的前7bit是否正确,然后测试第8bit是否为1(读).如果这也匹配的话,从机就认定它被作为一个发送器被寻址到了并产生应答A3.从-发送器会保持被寻址的状态知道接收到终止条件(P)或者重复开始条件(Sr)跟着一个不同的从机地址.然后这个时候的重复开始条件下,所有的从机会比较它们的地址与11110XX比较并测试第八位(读写位).然而它们不会寻址到,因为对于10bit设备,读写位是1,或者对于7bit的设备,1111 0XX的从机地址不匹配.

  [3]CBUS地址是保留的,使得同一个系统可CBUS总线C总线C兼容的设备不允许响应这个地址

  通用广播地址是用来同时寻址所有连接到I2C总线上的设备.如果一个设备在广播地址时不需要数据,它可以不产生应答来忽略.如果一个设备从通用广播地址请求数据,它可以应答并当作一个从-接收器.当一个或多个设备响应时主机并不知道有多少个设备应答了.每一个可以处理这个数据的从-接收器可以响应第二个字节.从机不处理这些字节的话,可以响应NA.如果一个或多个从机响应,主机就无法看到NA.通用广播地址的含义一般在第二个字节中指明.

  部分.在接收到这样的2个字节时,所有可以响应这个广播地址的设备将复位并进入地址的可编程部分.要采取预防措施来确保设备不会在加上电源电压后将SDA或SCL拉低,因为这些低电平会阻塞总线h):通过硬件写从机地址的可编程部分.行为同上,但设备不复位3.0000 0000(00h):这个不应该作为第二个字节使用编程过程的顺序参考相应设备的datasheet

  在通用广播(0000 0000)之后发送0000 0010(06h)作为第二个字节会引起软件复位.这个特性是可选的,不是所有的设备都会响应这个命令.在接收到这样的2个字节时,所有可以响应这个广播地址的设备将复位并进入地址的可编程部分.要采取预防措施来确保设备不会在加上电源电压后将SDA或SCL拉低,因为这些低电平会阻塞总线.

  有两种方式连接到I2C总线C总线接口的微控制器可以变成为只接收总线的中断请求.当设备没有这样的接口,它必须要通过软件手段来检测总线.很明显,微控制器检测的时间或者轮询总线的时间越多,实现自己功能的时间就越少.

  因此快速硬件设备和依赖软件轮询的相对慢速微控制器是有速度差别的.在这种情况下,数据传输前有一个比正常时间长很多的起始过程.起始过程组成如下:一个开始条件(S)

  主机发送完开始条件后,发送开始字节(0000 0001).另外的微控制器可以以低采样率来采样SDA线中的一个被侦测到.在侦测到SDA线的低电平后,微控制器可以切换到更高的采样率来探测用于同步的重复开始条件.

本文链接:http://megsmind.net/dizhizongxian/353.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部