加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

技術(shù) | I2C 子系統(tǒng)(七)

2022/06/13
3107
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

7、I3C Protocol

本文講解 I3C 協(xié)議規(guī)范的詳細(xì)內(nèi)容,從規(guī)范中可以看出,I3C 比 I2C 復(fù)雜很多,硬件簡(jiǎn)單帶來(lái)的是軟件的復(fù)雜。

對(duì)于 Linux 常用版本,kernel-4.14 和 kernel-4.19 并沒(méi)有提供 I3C 驅(qū)動(dòng),kernel-5.10 有提供 I3C 驅(qū)動(dòng)(從 kernel-5.0開(kāi)始提供的)

如下可以在線查看 Linux 源碼,目錄/drivers/i3c/...

https://elixir.bootlin.com/linux/latest/source

 

Bus configuration

I3C 不僅支持多個(gè)從設(shè)備,還支持多個(gè)主設(shè)備。I3C 總線上可以支持的設(shè)備有:

  1. Main Master(當(dāng)前主設(shè)備)
  2. Secondary master(輔助主設(shè)備)
  3. i3c Slave(i3c從設(shè)備)
  4. i2c Slave(i2c從設(shè)備)

I3C 特性寄存器描述并定義了 I3C 兼容設(shè)備在 I3C 總線上的 capabilities 和 functions,沒(méi)有 I3C 特性寄存器的設(shè)備不得連接到公共I3C總線。

有三種特征寄存器類型:

  1. Bus Characteristics Register (BCR)
  2. Device Characteristics Register (DCR)
  3. Legacy Virtual Register (LVR)

 

Bus Communicaton

SDR 協(xié)議基于 I2C 標(biāo)準(zhǔn)協(xié)議,有幾個(gè)顯著的變化:

SDR Message

  1. 地址頭中的地址是7'h7E(I3C廣播地址)。所有 I3C 從設(shè)備應(yīng)與地址值 7'h7E 匹配。地址頭中的地址與從機(jī)的動(dòng)態(tài)地址匹配。所有 I3C 從機(jī)應(yīng)匹配其自己的動(dòng)態(tài)地址。

Role of I3C Slave

  1. 在分配動(dòng)態(tài)地址之前,I3C從設(shè)備應(yīng)作為I2C設(shè)備運(yùn)行I3C START 和 STOP 在信號(hào)方面與 I2C START 和 STOP 相同,但在時(shí)序上可能不同。

I3C Address Header

  1. 支持帶內(nèi)中斷支持輔助主設(shè)備支持熱拔插 (熱插拔特性可以讓i3c從設(shè)備在不工作時(shí)處理睡眠或者關(guān)閉狀態(tài),需使用時(shí)才掛載到總線上使用,進(jìn)一步達(dá)到降低功耗的目的)

I3C Address Arbitration

  1. 主設(shè)備和一個(gè)或多個(gè)從設(shè)備following a START (but not a Repeated START)Open Drain(whether Master or Slave)lower Addresses having higher Priority

Hot-Join Mechanism

  1. After a START, 7’b0000_010 + RnW(1’b0)允許從設(shè)備在I3C總線配置完成后加入熱拔插設(shè)備可以是任何有效的從設(shè)備類型,包括輔助主設(shè)備

In-Band Interrupt

  1. After a START (but not a Repeated START) + Dynamic Address + RnW(1’b1)I3C 主設(shè)備提供 ack bits

Secondary Master Functions

  1. After a START (but not a Repeated START)+Dynamic Address +RnW(1’b0)輔助主機(jī)保持控制總線,直到另一個(gè)主機(jī)被授予總線控制。defer some actions to a more capable Master(GETACCMST)

I3C Bus conditions

I3C總線應(yīng)被視為不活動(dòng)的三種不同情況:

  1. Bus Free ConditionBus Available Condition(tAVAL)Bus Idle Condition(tIDLE)

I3C 為主設(shè)備提供了一種機(jī)制,用于通知從屬設(shè)備I3C總線上預(yù)期即將到來(lái)的活動(dòng)級(jí)別:

總線初始化和動(dòng)態(tài)地址分配模式

頭地址是 7h7E(I3C 廣播地址),所有的 I3C 從機(jī)將匹配 7h7E,任何的 I2C 從機(jī)設(shè)備將不會(huì)匹配此地址,因?yàn)檫@個(gè)地址在 I2C 中是保留的并且未使用。

Common Command Codes (CCC)

通用命令代碼(CCC)是全球支持的命令,可以直接傳輸?shù)教囟ǖ腎3C從設(shè)備,也可以同時(shí)傳輸?shù)剿蠭3C從設(shè)備。

CCC 命令分為四類:

  1. Broadcast WriteDirect Read/WriteDirect WriteDirect Read

支持動(dòng)態(tài)地址

i3c支持動(dòng)態(tài)地址,同時(shí)可以分配 7bit 靜態(tài)地址以適配傳統(tǒng) i2c 從設(shè)備。i3c從設(shè)備地址由主設(shè)備仲裁,但并不是所有設(shè)備地址都可用,部分地址是 i3c 標(biāo)準(zhǔn)所保留的,用于后期拓展或者錯(cuò)誤仲裁。

支持多種通信模式

i3c支持4種通信模式,分別是 SDR、HDR-DDR、HDR-TSL、HDR-TSP,不同模式通信速率有差異。

SDR 很多 I3C 主控和設(shè)備支持,HDR 很多設(shè)備不支持,所以最常用的是 12.5MHz。

  1. SDR 模式:12.5Mbit/sHDR-DDR模式:25Mbit/sHDR-TSL模式:30 Mbit/sHDR-TSP模式:37.5 Mbit/s

I3C 應(yīng)用場(chǎng)景

  1. 傳感器領(lǐng)域,節(jié)約總線 IO。物聯(lián)網(wǎng)領(lǐng)域,功耗低。傳統(tǒng) i2c、spi、uart 設(shè)備接口中。camera、touch panel。i3c 向下兼容 i2c,可與傳統(tǒng) i2c 接口器件一起使用。

 

 

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

研究生在讀,熟悉硬件、STM32單片機(jī)、嵌入式Linux。已收獲小米、聯(lián)發(fā)科、浙江大華、上能電氣、英威騰、匯川技術(shù)、格力、富士康等大廠offer。在這里分享求職經(jīng)驗(yàn)、嵌入式學(xué)習(xí)規(guī)劃、考研、嵌入式Linux技術(shù)文章等。