技术 | I2C 子系统(一)

  • 2022/05/25

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

1、I2C spec:研究 I2C 协议本身,研究它的协议规范、传输机制。

2、I2C driver:研究 Linux I2C 驱动。

I2C 系列文章目录如下:

I2C spec

I2C Introduction
I2C Architecture
I2C Transfer
I2C Synchronization And Arbitration
I2C Hs-mode
I3C Introduction
I3C Protocol

I2C driver

I2C SW Architecture
I2C Data Structure
I2C Register Flow
I2C Data Transfer

 

1、I2C Introduction

I2C 历史

  1. I2C:Inter-Integrated Circuit,集成电路总线。I2C 是 Philips 公司在 1982 年开发的一种简单、双向二线制同步串行总线。Philips 半导体事业部就是现在的 NXP。I2C 的专利在 2006 年 11 月 1 日已到期,大家可以免费使用。Intel 1995 年推出的 I2C 兼容总线(System Managerment Bus),即 SMBus 或 SMB最新版本 I2C v.6 于 2014.04.04 推出。

 

I2C 的未来

  1. MIPI 协会在 2014 年左右定稿了 I3C (improved Inter Integrated Circuit)规范,I3C 在 I2C 的规格上建立了功能超集,支持高传输速率模式。当前不论是 Soc 厂商,还是 device 厂商,都已经开始或正在向 I3C 过度。

 

I2C 的速度

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

• Bidirectional bus:

  1. Standard-mode (Sm), 100 kbit/sFast-mode (Fm), 400 kbit/sFast-mode Plus (Fm+),1 Mbit/sHigh-speed mode (Hs-mode),3.4 Mbit/s.

• Unidirectional bus:

  1. Ultra Fast-mode (UFm),5 Mbit/s

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

I2C 是一种多主从架构总线

  1. I2C 的读写均由 master 端发起。I2C 通信的每一个 byte(8bits)都需要 slaver 端的回应 ACK/NACK 作为回应。多 master 端需要引入仲裁机制。slaver 端通过设备地址区分,有 7bits 和 10 bits 等地址,还有一种 8bits 地址,实际上是 7bits + 读写位。【其中7位地址 = 种类型号(4bit)+ 寻址码(3bit)】

I2C 总线能挂多少设备?

7-bit address :2 的 7 次方,能挂 128 个设备。

10-bit address :2 的 10 次方,能挂 1024 个设备。

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

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

总线之所以规定电容大小,是因为 I2C 使用的 GPIO 为开漏结构,要求外部有电阻上拉,电阻和总线电容产生了一个 RC 延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险(方波三角波)。

传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以 RC 乘积必须更小。

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

note:写的是 two groups,而不仅仅是八个,0000 XXX 和 1111 XXX 系列地址都是保留的。

人工客服
(售后/吐槽/合作/交友)

相关资讯

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. 9.
  10. 10.
  11. 11.
  12. 12.
  13. 13.
  14. 14.
  15. 15.
  16. 16.
  17. 17.
  18. 18.
    W25QXX FLASH介绍

    11/22 07:27

  19. 19.
  20. 20.
查看全部20条内容