一、前言
i2c总线是由philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
二、i2c总线开发设计需要注意点
1、总线容量及驱动能力
i2c总线的外围扩展器件都是cmos器件,总线有足够的电流驱动能力,因此总线上扩展的节点数不由电流负载能力决定,而由电容负载确定。
总线上每个实际节点器件的总线接口都有一定的等效电容,等效电容的存在会造成总线传输的延迟,导致数据传输出错。
通常总线负载能力为400pf,通常各个i2c器件都会有它自己的电容值,一般为不大于20pf,通据此可计算出总线长度及节点数目的限制数量。总线上的每个外围器件都有一个器件地址,因此总线上扩展外围器件时也要受器件地址限制。
2、i2c总线的电气结构
i2c总线为双向同步串行总线,因此i2c总线接口内部为双向传输电路,如图.所示。总线端口输出为开漏结构,故总线上必须有上拉电阻,上拉电阻与电源电压、sda、scl以及总线串接电阻有关,可参考有关数据手册进行选择,通常可选4.7k到10k。
3、每个节点都有一个固定的节点地址。i2c总线为双向同步串行总线,因此总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在总线的地址寄存器件中,称为主器件的从地址。在总线的多主系统中,单片机作为从节点时,其从地址才有意义,所以总线上所有的外围器件都有规范的器件地址。
4、i2c总线时序
i2c总线上数据传递时,总线上传送的每一帧数据均为一个字节。但启动总线后,传送的字节数没有限制,只要求每传送一个字节后,对方回应一个应答位。在发送时,首先发送的是数据的最高位。每次传送开始有起始信号,结束时有停止信号。在总线传送完一个字节后,可以通过对时钟线的控制使传送暂停。
①时钟和数据发送:
sda引脚通常使用外部设备拉高。sda引脚上的数据只能在scl为低电平时进行更改,scl为高电平时数据更改将指示开始或停止条件。如图所示。
②起止条件:
sda由高到低且scl为高是启动条件,必须先于任何其他命令。sda由低到高且scl为高是停止条件,在一个读序列后,停止命令会使eeprom进入待机模式。如图所示。
③应答:
所有地址和数据字均以8bit字连续传输到eeprom,eeprom发送一个0来应答,以确认它已收到每个字。应答发生在第九个时钟周期如图所示。
三、设计实例
我们对于at24c256肯定不会陌生,这是atmel公司256kbit串行电可擦的可编程只读存储器,8引脚双排直插式封装,具有结构紧凑、存储容量大等特点,可以在2线总线上并接4片该ic,特别适用于具有高容量数据储存要求的数据采集系统。
eeprom存储器设备既可以接收又可以发送数据。每个挂接在总线上的器件都有唯一一个地址识别。
主机访问eeprom时,主机在向eeprom发送完控制字节和地址信息后,紧接着向eeprom存储器发送起始条件和控制信号并发送读标志位信号,切换数据的收发方向。接着在收到eeprom的响应信号后便可以读出需要的数据了。
四、总结
通过以上实例,我们可以知道i2c优点主要表现在:
1、简化了硬件电路。在这种总线中只需要两根线,即串行数据线(sda)和串行的时钟线(scl)。
2、每个挂在总线上的i2c器件都有一个唯一的地址,并可以通过软件寻址。
3、因为在总线上可能有多个主i2c器件,因此i2c总线接口协议中有冲突监测和仲裁机制,以防止通信中的数据丢失或发生错误。
4、这种串行的两线双向的总线在标准模式下的速率为100kbit/s,在快速模式下的速率为400kbit/s,在高速模式下为3/4mbit/s。
5、i2c器件中有滤波抗扰措施来保证数据的完整性。
6、在总线上挂接的器件数目是有限的,即总线上的容抗不能超过400pf。
浅析MEMS传感器细分应用介绍
ROHM开始量产具有业界超高性能的650V耐压GaN HEMT!
机器人控制器如何给模拟输出端赋值V4.8
霍尔电流传感器原理
FCC否决允许在飞机飞行中进行手机通话提议
I2C总线有哪些特点,设计时需要哪些细节?
GaN为什么这么火?
多音调警报器,Multi-tone alarm
智汇云智能家居与华为HiLink实现云云对接
端子连接器的不良因素有哪些
人工智能的5大领域
凌力尔特推出大功率电池充电器LTC4156
区块链概念股卷土重来对比特币有影响吗
为什么容量一样的充电宝耐充度却不一样
苹果确认10月4日发布新款iPhone
新唐科技N9H30K41I介绍
特斯拉国产车怎么样?特斯拉和比亚迪你会选哪个
负离子空气净化球泡灯:有效清除空气污染
种子脱粒机的使用效果怎么样,它的维护方法是怎样的
人脸识别算法成功帮助寻亲,大模型技术发展成关键推动力!