7bit/10bit寻址数据格式
7bit/10bit寻址和重复开始信号的格式
从设备地址:
总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.
系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。
二、10bit地址
10bit的寻址扩展可能寻址的数目。有7bit地址和10bit地址的设备可以连接到相同的I2C总线上,而且7bit寻址和10bit寻址都可以用在所有的总线速度模式下。不过,10bit寻址用的不多。
10bit的从机地址由开始条件(S)或重复开始条件(Sr)后的两个字节组成。第一个字节的前7位是1111 0XX,XX是10bit地址的最高有效位的前两位。第一个字节的第8bit是读写位,决定传输方向。
尽管1111 XXX有8种可能的组合,然后只有1111 0XX这四种可以用于10bit寻址。剩下的1111 1XX这四种是为将来I2C扩展用的。
前面描述的用于7bit寻址的读写格式都适用于10bit寻址。详情如下:
1.主-发送器传输到从-接收器(10bit从机地址)
从图中看出传输方向不变。当接收到开始条件后的10bit地址,从机就和它自己的地址比较从机地址的第一个字节(1111 0XX),并检查第八个bit(读写位)是否为0.有可能多个设备都匹配并产生应答(A1)。接下来所有从机开始匹配自己地址与第二个字节的8个bit(XXXX XXXX),这时就只有一个从机匹配并产生应答(A2)。被主机寻址匹配的从机会保持被寻址的状态直到接收到终止条件或者是重复开始条件后跟着一个不同的从机地址。
2.主-接收器从从-发送器接收数据(10bit从地址)
在第二个读写位之后传输方向就会改变。
在第二个应答A2之前,处理过程与上面的主-发送器寻址从-接收器一致。在重复开始条件(Sr)之后,匹配的从机会保持被寻址上的状态。这个从机会检查Sr之后的第一个字节的前7bit是否正确,然后测试第8bit是否为1(读)。如果这也匹配的话,从机就认定它被作为一个发送器被寻址到了并产生应答A3.从-发送器会保持被寻址的状态知道接收到终止条件(P)或者重复开始条件(Sr)跟着一个不同的从机地址。然后这个时候的重复开始条件下,所有的从机会比较它们的地址与11110XX比较并测试第八位(读写位)。然而它们不会寻址到,因为对于10bit设备,读写位是1,或者对于7bit的设备,1111 0XX的从机地址不匹配。
三、保留地址下表是保留的两组地址的描述:
[1]通用广播地址是用来包括软件复位的几个功能
[2]没有设备可以应答开始字节
[3]CBUS地址是保留的,使得同一个系统可CBUS总线兼容的设备和I2C总线兼容的设备.I2C兼容的设备不允许响应这个地址
[4]为不同总线格式保留的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)