【单片机】I2C通信详解介绍(初学,浅显易懂,基本知识) |
您所在的位置:网站首页 › 蔡雨汐的详细讲解 › 【单片机】I2C通信详解介绍(初学,浅显易懂,基本知识) |
介绍:I2C通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 特点: 1.只需要一根数据线SDA和一根时钟线SCL,SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线 SCL(Serial Clock):串行时钟线,传输CLK信号,一般是主设备向从设备提供 SDA(Serial Data) :串行数据线,传输通信数据 2.实现真正的多主机总线,任何器件既可以作为主机又可以作为从机,但是同一时刻只能有一个主机 3.可以通过外部连线检测,便于系统故障诊断和调试 4.连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s 5.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,抗高噪声干扰,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽 6.接口电路为开漏输出,需通过上拉电阻接电源VCC,当总线空闲时,两根线都是高电平,连接总线的外同器件都是CMOS器件输出级也是开漏电路 数据传输: 发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续。 空闲时候:SDA数据线和SCL时钟线都是高电平 开始信号:SCL处于高电平,SDA由高到低 结束信号:SCL处于高电平,SDA由低到高 应答信号:当传输完8位数据以后,在第9个SCL时钟周期 主机释放SDA控制权交给从机,由于上拉电阻的作用,此时该电平为高,但是如果从机正确接受了数据,就会将SDA拉低 发送数据:SDA上的数据必须在SCL高电平周期时保持稳定,数据的高低电平翻转变化发生在SCL低电平时期 非应答信号:如果第9个SCL时钟周期,SDA保持高电平,则代表非应该信号 非应答信号可能是主机发出的也可能是从机产生的 有几种可能: I2C总线上没有主机所指定地址的从机设备从机正在执行一些操作,处于忙状态,还没有准备好与主机通讯主机发送的一些控制命令,从机不支持主机接收从机数据时,主机产生非应答信号,通知从机数据传输结束,不要再发数据了通讯特征: 1)串行通信,所有的数据以位为单位在SDA线上串行传输 2)同步通信:通过时钟同步 3)非差分:I2C通信速率不高,且通信距离近,使用电平信号通信。 4)低速率:I2C一般是同一个板子上的两个IC芯片间通信,数据量不大,速率低。速率:几百KHz,速率可能不同,不能超过IC的最高速率。 模式: 标准模式(Standard):100kbps 快速模式(Fast):400kbps 快速模式+(Fast-Plus):1Mbps 高速模式(High-speed):3.4Mbps 超快模式(Ultra-Fast):5Mbps(单向传输) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |