嵌入式开发:I2C总线协议与驱动详解.pdfVIP

嵌入式开发:I2C总线协议与驱动详解.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

I2C总线-HQ

[TOC]

注意

I2C系列文章分为两部分:I2Cspec、I2CdriverI2Cspec已写完,分为六篇文章:

想要深入探讨I2C协议,必须深刻理解各种时间的定义,有的时候即便你i2c设备驱动没问题,但是调了

i2c_transfer后发现还是传输失败,就是因为这些时间参数不符合从设备要求,需要在i2c控制器驱动中修

改这些参数。

I2C(一):I2Cbusspec

I2C系列文章主要分为两个部分来写:

1、I2Cbusspec:专注于I2C协议本身,研究它的传输机制,硬件。

2、I2Cdriver:研究LinuxI2C的软件驱动,包括总线驱动和设备驱动两部分。

目录如下

I2Cspec

I2CIntroductionI2CArchitectureI2CTransferI2CSynchronizationAndArbitrationI2CHs-modeI3C

IntroductionI3CProtocol

I2Cdriver

I2CSWArchitectureI2CDataStructure12CRegisterFlow12CDataTransfer

I2CIntroduction

I2C

1、I2C:Inter-IntegratedCircuit,总线。2、I2C是Philips公司在1982年为主机板、嵌入式系统开发

的一种简单、双向二线制同步串行总线。3、Philips事业部就是现在的NXP。4、I2C的专利在2006年

11月1日起已经到期,大家可以免费使用5、Intel1995年推出的I2C兼容总线(SystemManagerment

Bus),即SMBus或SMB6、版本I2Cv.6于2014.04.04推出

I2C的未来

1、MIPI在2014年左右定稿了I3C(improvedInterIntegratedCircuit)规范,I3C在I2C的规格上建立了功

能超集,支持高传输速率模式12.5MHz2、当前不论是Soc厂商,还是device厂商,都已经开始或正在向I3C

过度

I2C是一种低速、串行总线,有SDA(串行数据线)和SCL(串行时钟线)两条信号线,半双工通信。通信速度如

下:

![img](assets/assets.I2C总线-HQ/image-2-1024x376.png)

速度由SCL决定,不同模式对上升沿的要求不一样,上升沿由上拉电阻和等效电容决定(RC)

I2C是一种多主从架构总线1、I2C的读写均有master端发起。2、I2C通信的每一个byte(8bits)都需要

slaver端的回应ACK/NACK作为回应3、多master端需要引入仲裁机制4、slaver端通过设备地址区分,有

7bits和10bits等地址,还有一种8bits地址,实际上是7bits+读写位。【7位地址=种类型号(4bit)+寻址

码(3bit)】

I2C总线能挂多少设备?

理论上:7-bitaddress:2的7次方,能挂128个设备。10-bitaddress:2的10次方,能挂1024个设备。

但是I2C协议规定,总线上的电容不可以超过400pF。管脚都是有输入电容的,PCB上也会有寄生电容,所以会

有一个限制。

实际设计中经验值大概是不超过8个器件。

总线之所以规定电容大小是因为,I2C使用的GPIO为开漏结构,要求外部有电阻上拉,电阻和总线电容产生了

一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。传输速度越快,信号的窗口就越

小,上升沿下降沿时间要求更短更陡峭,所以RC乘积必须更小。

note:要把预留设备地址去除,保留地址如下:

![img](assets/assets.I2C总线-HQ/image-1-1024x724.png)

参考:

《I2C总线规范.pdf》周立功

《I2C-busspecificationandusermanual.pdf》NXP

《I.MX6U嵌入式驱动开发指南.pdf》正点原子

I2C(二):I2Cbusspec

I2CArchitecture

![img](assets/assets.I2C总线HQ/image3

文档评论(0)

159****9610 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档