1、物理层
IIC用于将微控制器连接到系统的总线。它只使用两条线:串行数据线(SDL)用于数据传送,串行时钟线(SCL)用于指示什么时候数据线上是有效的数据。微处理器可以以主控器和受控器方式连接到IIC上SDL和SCL线上。总线设计成多主控器总线结构。
2、电路接口
总线不规定使用电压的高低以便双极电路或MOS电路都能接到总线上。所有总线信号使用开放集电极/开放漏极电路。一个上拉电阻保持信号的默认状态为高电平,当0被传输时,每一条总线的晶体管用于下拉该信号。开放集电极/开放漏极信号允许一些设备同时写总线而不引起电路故障。
当总线空闲时,SCL和SDL都保持高电位。当一个主控设备在传输时必须监听总线状态以确保报文之间不互相影响,如果设备收到了不同于它要传送的值时,它知道报文之间发生互相影响了。
3、数据链路层
每一个IIC设备都有自已的地址,设备的地址是由系统设计者决定,通常是IIC驱动程序的一部分。必须保证任何两个设备之间的地址都不相同。标准的IIC定义中设备的地址是7位(扩展的IIC允许10位地址)。地址0000000一般用于发出通用呼叫或总线广播,总线广播可以同时给所有设备发出信号。地址11110XX为10位地址保留。地址传送包括7位地址和表示数据传输方向的一个位:0代表主控器写到受控器,1代表从受控器读到主控器。
总线信号由一个开始信号启动以一个结束信号完成。开始信号通过保留SCL为高电平并且SDL上发送1到0的转换产生。结束信号通过保留SCL为高电平并且SDL上发送0到1的转换产生。开始和结束信号必需成对出现。
4、字节格式
当SCL保留高电位同时SDL变低时传送开始。这个开始状态之后,时钟信号变低来启动数据传送。在每一个数据位,时钟位在确保数据位正确时变高电平。在每一个8位数据的结尾发送一个确认信号,而不管它是地址还是数据。在确认时,传送端不会把SDL变为低电平,如果正确接收到了数据允许接收端把电位变为0。确认信号后,当SCL处于高电平时SDL从低变为高,指示数据传送停止。
5、总线属性
在发送时,设备监听总线。如果设备试图发送逻辑1但是却监听到逻辑0时,它立即停止传送,并且把优先权让给其它发送设备(设备应该被设计成可以及时停止传送来允许有效位被发送)。在许多情况下,仲裁在传送地址部分时完成,但也以在数据部分继续。如果两个设备都试图向同一个地址发送同样数据时,那么它们之间不会互相影响且最后都会成功发送报文。
文章评论(0条评论)
登录后参与讨论