您的位置 首页 新品

I2C之知(五)–I2C总线的10bit地址以及通用播送地址

其实,10bit地址我没用过,通用广播地址更没用过通用广播地址应该是在多个mcu之间用i2c进行通信时使用的虽说没用到,但还是做了翻译,说不定

其实,10bit地址我没用过,通用播送地址更没用过.通用播送地址应该是在多个mcu之间用i2c进行通讯时运用的.虽然没用到,但仍是做了翻译,说不定今后有时机用到:

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]为不同总线格局保存的

通用播送地址
通用播送地址是用来一起寻址一切连接到I2C总线上的设备.假如一个设备在播送地址时不需求数据,它能够不发生应对来疏忽.假如一个设备从通用播送地址恳求数据,它能够应对并当作一个从-接纳器.当一个或多个设备呼应时主机并不知道有多少个设备应对了.每一个能够处理这个数据的从-接纳器能够呼应第二个字节.从机不处理这些字节的话,能够呼应NA.假如一个或多个从机呼应,主机就无法看到NA.通用播送地址的意义一般在第二个字节中指明.

有两种状况需求考虑:
1.最低有用位B是0
2.最低有用位B是1
当B是0,第二个字节有如下的界说:
1.0000 0110(06h):复位并经过硬件写从机地址的可编程部分.在接纳到这样的2个字节时,一切能够呼应这个播送地址的设备将复位并进入地址的可编程部分.要采纳预防措施来保证设备不会在加上电源电压后将SDA或SCL拉低,由于这些低电平会堵塞总线.
2.0000 0100(04h):经过硬件写从机地址的可编程部分.行为同上,但设备不复位
3.0000 0000(00h):这个不应该作为第二个字节运用
编程进程的次序参阅相应设备的datasheet

软件复位
在通用播送(0000 0000)之后发送0000 0010(06h)作为第二个字节会引起软件复位.这个特性是可选的,不是一切的设备都会呼应这个指令.在接纳到这样的2个字节时,一切能够呼应这个播送地址的设备将复位并进入地址的可编程部分.要采纳预防措施来保证设备不会在加上电源电压后将SDA或SCL拉低,由于这些低电平会堵塞总线.

开端字节
微控制器有两种方法连接到I2C总线上.有片上的硬件I2C总线接口的微控制器能够变成为只接纳总线的中断恳求.当设备没有这样的接口,它必需要经过软件手法来检测总线.很明显,微控制器检测的时刻或许轮询总线的时刻越多,完成自己功用的时刻就越少.
因而快速硬件设备和依靠软件轮询的相对慢速微控制器是有速度不同的.
在这种状况下,数据传输前有一个比正常时刻长许多的开端进程.开端进程组成如下:
一个开端条件(S)
一个开端字节(0000 0001)
应对位(ACK)
重复的开端条件(Sr)

主机发送完开端条件后,发送开端字节(0000 0001).别的的微控制器能够以低采样率来采样SDA线知道开端字节的7个0中的一个被侦测到.在侦测到SDA线的低电平后,微控制器能够切换到更高的采样率来勘探用于同步的重复开端条件.
在开端字节后一个应对相关的时钟脉冲发生.设备不允许应对开端字节.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/232778.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部