单片机I2C接口技术

 

一、I2C总线简介
   I2C总线是一种用于IC器件之间连接的二线制总线。它通过SDA和SCL两根线与连接到总线上的器件之间传递信息,并根据地址识别每个器件。如下图:

 

   I2C为双向同步串行总线,因此I2C总线接口内部为双向传输电路。I2C总线端口输出为开漏结构,故总线须接上10K左右的上拉电阻,当总线空闲时,SDA、SCL都为高电平。I2C总线数据传输速率在标准工作方式下为100Kbit/s, 最高可达400Kbit/s。其接口电路结构如下图。

I2C总线上所有外围器件都有规范的器件地址。如下表(1):

   D7

   D6

   D5

D4

D3

D2

D1

D0

DA3

DA2

DA1

DA0

A2

A1

A0

R|/W


                                                             表一
    高四位DA3、DA2、DA1、DA0为器件地址,I2C总线外围接口器件的固有地址编码,在出厂时候就已经给定。例如,AT24CXX的器件地址为1010.
   后三位A2、A1、A0为引脚地址,根据接不同电源或地址来区分。
   最后一位 R|/W为数据方向位, 为1读数据(接收),为0时写数据(发送 )。

 

二、I2C总线数据的传输

   在数据的传送过程中,SCL为高电平期间,SDA上数据必须保持稳定,只有当SCL为低电平时候才允许变化,同时也 必须确认数据传送的开始和结束,即开始信号(Start)止信号(Stop)。SCL为高电平期间,SDA由高到低的变化表示开始信号,SDA由低到高的变化则表示终止信号。如下图:

I2C 总线数据传输的格式:开始信号后,送出的第一字节数据是用来选择器件地址(见上表一)的。开始信号后个器件将自己的地址与总线上发送的地址进行比较,若一致则该器件为要寻址的器件,其接受信息还是发送信息由最后一位R|/W决定。
  
   在I2C总线上每次传送的数据字节数不限,但每一字节必须是8位,且每个传送的字节后必须跟一个认可位(第9位),也叫应答位(ACK)。数据传送过程如下图所示:

     主器件发送完一字节的数据后,接着发出对应于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器件之间的数据传输。

    

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值