原创 I2C总线的特点及工作原理解析

2020-2-10 21:19 1064 13 2 分类: 电源/新能源

I2C总线特点
  I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
  2 I2C总线工作原理
  I2C总线上的数据稳定规则,SCL为高电平时SDA上的数据保持稳定,SCL为低电平时允许SDA变化。如果SCL处于高电平时,SDA上产生下降沿,则认为是起始位,SDA上的上升沿认为是停止位。通信速率分为常规模式(时钟频率100kHz)和快速模式(时钟频率400kHz)。同一总线上可以连接多个带有I2C接口的器件,每个器件都有一个唯一的地址,既可以是单接收的器件,也可以是能够接收发送的器件。


  每次数据传输都是以一个起始位开始,而以停止位结束。传输的字节数没有限制。最高有效位将首先被传输,接收方收到第8位数据后会发出应答位。数据传输通常分为两种:主设备发送从设备接收和从设备发送主设备接收。这两种模式都需要主机发送起始位和停止位,应答位由接收方产生。从设备地址一般是1或2个字节,用于区分连接在同一I2C上的不同器件。
  I2C总线的特点及工作原理解析
  I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
  开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
  结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。
  应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
  在I2C总线中只有主发送和主接收两种操作方式。在系统初始化时,由指令控制CPU送出相关的数据,经接口送到I2C寄存器内。通过初始化这些寄存器,可以实现I2C总线的主模式控制,以及实现I2C总线上的从设备读写。
  当主设备和其中的一个从设备交换数据时,主设备首先发出一个启动Start信号,这个信号被所有的从设备接收。即从设备准备接收CPU的信号,然后主设备再发出它要通信的从设备地址。接下来,所有的从设备将收到的这个地址和它们自己的地址进行比较。
  如果收到的地址和它们自己的地址不同,则什么都不做,只是等待主设备发出停止stop信号;如果收到的地址和它自己的地址相同,它就发出一个信号给主设备,这个信号称为应答Acknowledge信号。当主设备收到应答信号后,它就开始向从设备发送数据或者从从设备接收数据。当所有操作都进行完毕时,主设备发出一个Stop信号,通信完毕,释放I2C总线;然后所有的从设备都等待下一次Start信号的到来。
  3 总线基本操作
  I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
  3.1 控制字节
  在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
  1.写过程
  (1)上电后等待一个延时(1ms)。
  (2)器件寻址,给一个起始信号(SCL为高电平时SDA给一个下降沿)。发送从器件地址,高5位为10110,然后根据A1/A0(如果和器件的地址相同则那个器件会应答)进行读/写控制(O为读)。
  (3)应答,器件在SCL的第9个周期时SDA给出一个低电平,作为应答信号。
  (4)开始写有两种模式:字节写模式和页写模式。
  ·字节模式:给出A15~A8应答,给出A7~A0应答;然后给出DATA和停止信号 (SCL为高电平时,SDA给出一个上升沿),接着要等待一个擦写时间。
  ·页写模式:给出地址以后连续给出64个数据。如果多于64个数据,则地址计数器自动翻转。(如果少于64昵,估计是没有问题的,但是需要实验验证。)(5)判断擦写操作是否完毕的一个方法(应答查询),如果器件还处于擦写状态,则不会应答器件寻址;如果有应答,则说明擦写完毕。
  2.读过程
  (1)上电以后等待一个延时(lms)。
  (2)器件寻址。
  (3)应答。
  (4)开始读有三种模式:立即当前地址读、选择/随机读、连续读。
  ·立即当前地址读:如果上次读/写的操作地址为N,则现在是N+1。不需要ACK,但是需要Stop信号。
  ·选择/随机读:先伪写(用于给出一个地址),然后再次启动,读取数据。
  ·连续读:读取一个以后给一个应答,这样器件会再给出下一个地址的数据内容。
  (5)开始数据传输Start后、停止数据传输Stop前,SCL高电平期间,SDA上为有效数据。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

curton 2020-2-17 18:23

学习;
相关推荐阅读
简单qqq 2022-02-08 10:42
《集成电路测试指南》+试读报告
非常有幸能参加这次的试读,在此也谢谢论坛的管理小伙伴们收到书的时候还是很激动的。首先外观,包装很好,无破损和翘角,印刷质量非常好,字迹清楚然后是书本内容。纵观整个集成电路的学习资料,很少有完全讲解测试...
简单qqq 2020-12-05 13:20
模拟小白学习心得分享
文笔不太好,废话比较多,将就一下作为一个浑浑噩噩工作了10年后才开始模拟电子之路的小白来说,模拟电子确实难,年纪大了,公式记不住,更要命的是电路基础也是最近才重新捡起来重学,所以可以说是完完全全的小白...
简单qqq 2020-11-13 14:05
三张图,看懂手机开机、充电、显示的实现原理
手机可以方便人们的生活,可以加快人们之间信息的传递,可以加快生活的节奏。所以手机现在已经成为了人们生活中必需品中的必须品。很多人现在离不开手机这是肯定的,比如我。但是大家知道手机是怎样运行的吗?今天就...
简单qqq 2020-11-07 21:11
职场暴力何时休?
     最近一则"XX公司员工被HR抬出公司"的新闻火了,各个网络平台都上了热搜,相关部门和公安局已经介入调查。事情是怎样的呢?     ...
简单qqq 2020-04-08 17:01
解析锂电池的充电的整个过程!
锂电池充电器的基本要求是特定的充电电流和充电电压,从而保证电池安全充电。增加其它充电辅助功能是为了改善电池寿命,简化充电器的操作,其中包括给过放电的电池使用涓流充电、电池电压检测、输入电流限制、充电完...
简单qqq 2020-04-08 16:59
学习电子如何入门?哪些是要学的,要按照怎样的顺序学?
对于一个要学习电子学的初学者来说,最困难的可能就是准确的了解什么是我们应该学习的?哪些内容值得学习?学习这些内容一般要按照怎样的顺序?  出发点  下图提供了一个很好的出发点,告诉我们那些是要学的,要...
我要评论
1
13
关闭 站长推荐上一条 /3 下一条