IIC总线

1、IIC总线简介

IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线,主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。

IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit或10bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
SDA 和 SCL 都是双向线路都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时,这两条线路都是高电平, 连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能 。(在芯片中,当一个输出级为漏极/集电极开路时(开漏输出),它只能输出低电平和高阻态,低电平我们了解,那「高阻态」又是个什么东西?高阻态可理解为通过很大的电阻把输出引脚与 MCU 芯片内部隔开,近似开路的状态(电阻非常大)。这时芯片无法控制输出的电平,引脚的电平不确定,可被外部电平轻松改变。正是由于开漏输出的「要么拉低要么放手」的特性,使得总线只受输出端低电平的影响(同样,设备也只能通过输出低电平来使用总线),从而实现了「线与」的功能。)
I²C总线上数据的传输速率在标准模式下可达100kbit/s, 在快速模式下可达400kbit/s, 在高速模式下可达3.4Mbit/s。 连接到总线的接口数量只由总线电容是400pF 的限制决定。

术语描述
发送器发送数据到总线的器件
接收器从总线接收数据的器件
主机初始化发送、产生时钟信号和终止发送的器件
从机被主机寻址的器件
多主机同时有多于一个主机尝试控制总线,但不破坏报文
仲裁是一个在有多个主机同时尝试控制总线,但只允许其中一个控制总线并使报文不被破坏的过程
同步两个或多个器件同步时钟信号的过程

下图是一个典型的嵌入式系统的I2C总线应用,系统包含了很多slave从器件,最左边的微控制器是I2C的主器件,它控制了I/O扩展器、LED闪光灯、ADCs/DAC、EEPROM、LCD驱动器、温度放大器等。
在这里插入图片描述

2、IIC总线通信过程

1.主机发送起始信号启用总线
2.主机发送一个字节数据指明从机地址和后续字节的传送方向
3.被寻址的从机发送应答信号回应主机
4.发送器发送一个字节数据
5.接收器发送应答信号回应发送器
...... (循环步骤4、5)
n.通信完成后主机发送停止信号释放总线

3、IIC总线寻址方式

IIC总线上传送的数据是广义的,既包括地址,又包括真正地数据。
主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,‘0’表示主机发送数据,‘1’表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定义为发送器或接收器。

4、起始信号和停止信号

SCL为高电平时,SDA由高变低表示起始信号。
SCL为高电平时,SDA由低变高表示停止信号。
起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线被释放,处于空闲状态。
空闲时,SCL与SDA都是高电平。

SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值