《I2C通讯协议介绍.ppt》由会员分享,可在线阅读,更多相关《I2C通讯协议介绍.ppt(24页珍藏版)》请在三一办公上搜索。
1、I2C串行總線的原理,1、总线的概述2、总线结构3、总线传输协议4、常见波形分析,I2C串行總線概述,I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總線,用于连接微控制器及其外圍設備。是微電子通信控制領域廣泛采用的一種總線標準。,I2C串行總線優點,它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通訊效率高等有點。同時,系統的更改和擴充及其容易。,I2C总线特点,1.只要求两条总线线路 一条串行数据线SDA和一条串行时钟线SCL 2.每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址
2、:主机可以作为主机发送器或主机接收器 3.它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏 4.串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达 3.4Mbit/s 5.连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制,SCLSDA结构,连接到总线的输出级是漏极开路或者集电极开路,I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉电阻。,I2C上拉电阻的范围很宽,主要是根据功耗,上升时间等确定。I2C的上拉电阻可以是1.5K,2.2K,4.7
3、K,电阻的大小对时序有一定的影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K。,总的来说:电源电压控制了上拉电阻的最小值;负载电容(总线电容)控制了上拉电阻的最大值。,I2C总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上就会耗电。,连接两个电压不同部分的双向电平转换器电路,I2C总线协议 STOP STAR,SCL是高电平,SDA从高电平向低电平切换表示起始条件SCL是高电平,SDA从低电平向高电平切换表示停止条件,起始和终止信号都是由主机发送的,在起始信号产生后总线就被处于占用的状态;在终止信号产生后总线就处于空闲的状态。,每个接到I2C总线上的器件(可以是微处
4、理器MCU,LED驱动器,存储器或键盘接口。)都是有唯一的地址,而且都可以作为一个发送器或接收器(由器件的功能决定)。主机与其它器件间的数据传输可以是由主机发送数据到其它器件,这时主机即为发送器,接受数据的器件则为接受器。在多主机系统中,可能同时有几个主机企图启动总线传输数据。为了避免混乱,I2C总线要通过总线仲裁决定由哪一台主机控制总线支持多主控模块,但同一时刻只允许有一个主控,启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R./W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;当被控器件检测到收到的地址与自己的地址
5、相同时,在第9个时钟期间反馈应答信号;每个数据字节在传送时都是高位(MSB)在前;,当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);主控收到ACK后开始发送第一个数据字节;被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;,I2C数据传送,SCL线呈现高电平期间,SDA线上的电平必须保持稳定,低电平表示0(此时的线电压为地电压),高电平表示1(此时的电压由元器件的VDD决定)。只有在SCL线为低电平期间,SDA上的电平允许变化。,读通讯过程,1.主控在检测到总线空
6、闲的状况下,首先发送一个START信号掌管总线;2.发送一个地址字节(包括7位地址码和一位R/W 1);3.当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);4.主控收到ACK后释放数据总线,开始接收第一个数据字节;5.主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;6.主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线,I2C数据的中断,接收器收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法接受下一个字节,这时候接收器可以将SCL线拉成低电平,从而使主机处于等待状态,直到接收器准备好接受
7、下一个字节时,再释放SCL线使为高电平,使数据传输继续。,总线的仲裁,假设在某一瞬间两个主器件1和2同时发送启动信号线DATA1和DATA2,由于I2C总线的“线与”特性,使得SDA数据波形是DATA1和DATA2的结合。主机在发送数据的同事还要对自己的输出端的信号电平进行抽检,只要检测的结果和自己的预期相符则继续占用总线。实际系统采用低电平优先的仲裁原则将总线判给最先出现低电平的主机。,常见波形分析,1.起始信号2.主从设备竞争I2C总线 主设备传送完数据释 放总线电压拉高,从设备发送应答信号出现半个波形。3.主设备读入ACK信号 释放总线电平拉高。,5.主机发送信号1后从机出现应答信号所以出现第一个下降沿,然后由于主机传输数据结束后释放总线输出高电平因而产生尖峰。6.应答信号ACK结束,由于之前主机释放总线SDA信号线再次被拉高同(3),