I2C总线协议及工作原理一、概述1、I2C总线只有两根双向信号线
一根是数据线SDA,另一根是时钟线SCL
SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据
(边沿触发)SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系
I2C总线通过上拉电阻接正电源
当总线空闲时,两根线均为高电平(SDL=1;SCL=1)
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系
2、主设备与从设备系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义
主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构
终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容400pF的限制
主端主要用来驱动SCLline;从设备对主设备产生响应;二者都可以传输数据,但是从设备不能发起传输,且传输是受到主设备控制的
空闲状态I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态
此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高
起始位与停止位的定义:起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号
停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号
起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态