I2C总线简介
I2C总线是飞利浦(PHLIPS)公司推出的一种串行总线,用于连接微控制器及其外围设备,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。
- I2C串行总线有两根双向信号线。一根串行数据线SDA,一根串行时钟线SCL。
- 每个连接到总线上的器件通过唯一的地址联系主机,同时主机可以作为主机发送器或主机接收器。
- 它是一个真正的多主机总线,如果两个或更多主机同时初始化,则数据传输可以通过冲突检测和仲裁防止数据被破坏。
- 串行的8位双向数据传输位速率在标准模式下可以达到100Kb/s,快速模式下可以达到400Kb/s,高速模式下可以达到3.4Mb/s
- 连接到相同总线的IC数量只受到总线最大电容400PF的限。I2C协议规定,在启动总线后第1字节的高7位是从节点的寻址地址,其中高四位为器件类型识别符,接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作,所以具体挂载多少个器件由I2C地址决定,7位寻址地址减去1个广播地址0x00不用,所以有2^7=128 - 1 = 127,那就是127个地址, 所以理论上可以挂127个从器件。
从设备的地址由固定部分和用户自定义部分组成。
- 固定部分:D7-D4 共4位决定的。这是由从设备的生产厂商生产时就已确定的值。确定器件类型
- 用户自定义部分:D3-D1 3位通常对应设备的3个引脚(A0~A2)。把3个引脚接到不同的电平上,就可以形成一个3位的数值。相同类型器件的区分