IIC
IIC总线上可以互联多个设备,每个设备既可以做主设备(Master),也可以做从设备(Slave)每个设备都有一个唯一的地址,用于和总线上其他设备区分,设备的地址地址位宽为7bit。
传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。
连接到总线的数量只是受到总线的最大负载电容400pf限制。
注意:
IIC传输分为四个阶段:起始,地址,数据,结束阶段。
1、一次传输必须由S开始、由P结束;
2、SCL由主机M给出、SDA中S、ADDR、W/R、P由主机给出,A、DATA由主机或从机给出;(读写使能为0表示写,1表示读)
3、当主机给从机写完8bit数据后,从机需要给出响应Ack/非响应nAck,如果从机可以继续接收,则从机给出响应Ack,否则从机给出非响应nAck,当主机收到非响应nAck,或者在主机发送完8bit数据后一段时间内没有收到从机的响应时,给出结束P;
4、当主机读从机的数据时,当主机接收完从机的数据后,如果需要继续接收,则发送给从机Ack,如果不需要接收,给出nACK,告知从机准备接收结束P;
5、SDA在SCL为低时变化,SCL为高时保持稳定;
ACK为1时停止接受,为0时继续接受
协议层:
1、在时钟的高电平周期内,SDA线上的数据必须保持稳定,数据线仅可以在时钟SCL为低电平时改变。
uart异步,SPI和IIC均为同步
SPI用片选选择从机,IIC是地址选择从机,IIC必须8位,且和SPI一样得从最高位开始传
uart、SPI全双工,IIC半双工