i2cdetect检测不到i2c设备_《UEFI内核导读》I2C总线简介

固件C字营·版权所有

-------------------------------------------------------------------------

一、简介

I2C总线(Inter Integrated-Circuit)是由PHILIPS公司在上世纪80年代发明的一种电路板级串行总线标准,通过两根信号线——时钟线SCL和数据线SDA——即可完成主从机的单工通信。总线硬件连接极其简单,不同I2C设备挂接在总线上,只需在信号线安装上拉电阻即可完成硬件线路的搭建。另外,I2C总线采用器件地址的硬件设置方法,通过软件寻址方式完全避免了片选寻址的弊端,从而使硬件系统扩展更为灵活。

由于简单有效,I2C在业界得到广泛应用。基于I2C衍生出来的标准有SMBus、PMBus、IPMI、DDC和ATCA等。常见集成I2C硬件接口的设备有微控制器、温度传感器、LED控制器、EEPROM、ADC/DAC、RTC、时钟振荡器和I/O控制器等。

I2C总线最主要的优点是其简单性和有效性,其次I2C支持多主机(Multi-Mastering),任何能够进行发送和接收的设备都可以成为主机。主机控制数据的传输和时钟的频率。在任何时间点只能有一个主机。因为只有两条线,在处理地址和应答时,I2C存在一定的开销,效率不如设备直接相连的SPI总线

下面就基于I2C总线Rev6版本的主要特点、总线操作、同步和仲裁、电接口特点等作简单介绍。

I2C总线Spec定义了OSI所定义的七层网络模型中的最低两层如下图。

1c9b478293246f270b91f8818856d261.png

二、主要特点

·I2C只有两根双向信号线:串行数据线SDA和串行时钟线SCL;

·I2C总线上所有器件的SDA、SCL引脚输出驱动都为漏极/集电极开路结构(UHS模式使用推挽结构),通过外接上拉电阻实现总线上所有节点SDA、SCL信号的“线与”逻辑关系;

·总线上的所有设备通过软件寻址且具有唯一的地址(7位或10位)。7位“从机专用地址码”,其高4位为设备类型地址(由生产厂家制定),低3位为器件引脚定义地址(由使用者定义);10位地址不常见;

·任何时刻都只存在简单的主/从关系,按数据传输的方向,主机可以是主发送器或主接收器(UFm模式单向传输);

·支持多主机。在总线上存在多个主机时,通过冲突检测和仲裁机制防止多个主机同时发起数据传输时存在的冲突(UHS模式不支持多主机);

·I2C总线上所有器件都具有“自动应答”功能,保证数据传输的正确性(UFm模式不支持);

·主机和从机的区别在于对SCL的发送权,只有主机才能发送SCL;

·I2C总线不仅广泛应用于电路板级的内部通信,还可以通过I2C总线驱动器进行不同系统间的通信;

·支持最大传输速率包括标准模式(Standard Mode)100kb/s、快速模式(Fast Mode)400kb/s、增强快速模式(Fast Mode Plus)1Mb/s和高速模式(High Speed Mode)3.4Mb/s;极速模式(Ultra-Fast Mode),单向数据传输速率可达5Mb/s;

·I2C总线允许挂载最多的设备数量取决于总线上最大电容值,一般为400pf(Hs模式100pf)

I2C的数据(SDA)和时钟(SCL)信号都是双向的(UFm模式单向),通过电流源或上拉电阻接到电源(如图1示),VDD大小取决于I2C设备接口的耐压能力。两根线都为高时,总线处于空闲状态(IDLE)。I2C接口的特殊构造以实现“线与”功能,即每个信号接口都分为输出的漏极开路或集电极开路(UFm是推挽输出)和输入缓冲器部分。“线与”逻辑是I2C实现时钟同步和总线仲裁的硬件基础。

“线与”功能,漏极开路/集电极开路的特点是不能输出高电平,必须通过外接上拉输出高电平。如果总线上有任何一个设备接口输出低电平,则整个总线的状态表现为低电平,由此实现I2C总线信号的“线与”功能。“线与”功能的好处在于可以实现总线的仲裁控制。总线的控制权会交给最后一个输出低电平的设备,其它设备(输出为高)通过检测总线上的电平状态(表现为低),对比与自己输出状态不一致,则自动退出对总线的控制请求。漏极开路/集电极开路的缺点是对于一个距离长的数据线,信号传输速率得不到有效保证。更长的走线对于输出驱动器表现为更大的容性负载,等效容性负载C和信号线的上拉电阻R构成RC振荡器。RC越大,意味着反射和振荡越强,从而影响总线的信号完整性。这也是I2C规范对总线电容值约束在400pf以内的原因。高速模式(Hs)对信号完整性的要求更高,协议有定义相关SDA/SCL处理办法,以保证在数据线够长、速率够高时,信号完整性也可以得到满足。

9db1df8acd316d9132d55ede6c2ff90a.png

图1. I2C连接示意图(S和F模式)

三、总线操作

08dffb84a4aed5013685c2f016705ffd.png
e953a8a614b02a5337fc32708764dcea.png

[1] The general call address is used for several functions including software reset.

[2] No device is allowed to acknowledge at the reception of the START byte.

[3] The CBUS address has been reserved to enable the inter-mixing of CBUS compatible and I2C-bus

compatible devices in the same system. I2C-bus compatible devices are not allowed to respond on

reception of this address.

[4] The address reserved for a different bus format is included to enable I2C and other protocols to be mixed.

Only I2C-bus compatible devices that can work with such formats and protoco

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值