------------根据相关资料整理-------------- 一、I2C总线简介
I2C为双向同步串行总线,因此I2C总线接口内部为双向传输电路。I2C总线端口输出为开漏结构,故总线须接上10K左右的上拉电阻,当总线空闲时,SDA、SCL都为高电平。I2C总线数据传输速率在标准工作方式下为100Kbit/s, {zg}可达400Kbit/s。其接口电路结构如下图。 I2C总线上所有外围器件都有规范的器件地址。如下表(1): 二、I2C总线数据的传输 在数据的传送过程中,SCL为高电平期间,SDA上数据必须保持稳定,只有当SCL为低电平时候才允许变化,同时也 必须确认数据传送的开始和结束,即开始信号(Start)和终止信号(Stop)。SCL为高电平期间,SDA由高到低的变化表示开始信号,SDA由低到高的变化则表示终止信号。如下图: I2C 总线数据传输的格式:开始信号后,送出的{dy}字节数据是用来选择器件地址(见上表一)的。开始信号后个器件将自己的地址与总线上发送的地址进行比较,若一致则该器件为要寻址的器件,其接受信息还是发送信息由{zh1}一位R|/W决定。 主器件发送完一字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,此时钟内主器件释放SDA线,一字节传送结束,而从器件的响应信号将SDA拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。从器件的响应结束后,SDA线返回高电平进入下一个传送周期。 应答信号时序图: 另外,I2C总线还具有广播呼叫地址,用于寻址总线上所有的器件的功能。 三、I2C总线接口器件 具有I2C总线接口的器件有很多,在视频处理、通信领域采用I2C总线接口器件较普遍,另外还有些通用的I2C接口器件,例如:带I2C总线的单片机、RAM、ROM、A/D、D/A、LCD驱动等。 51系列单片机并未提供I2C接口,但是基于对I2C协议的分析,可以通过软件模拟的方法来实现单片机I2C接口,从而实现51系列单片机与I2C器件之间的数据传输。 |