深入淺出IIC協議 - 從總線原理到FPGA實戰開發 -- 第一篇:I2C總線協議深度解剖

第一篇:I2C總線協議深度解剖

副標題 : 兩根線如何征服千億設備?詳解硬件工程師必須掌握的通信奧義


1. 為什么I2C仍是嵌入式經典?

1.1 總線拓撲的哲學

拓撲對比圖
在這里插入圖片描述
SPI需4線+N片選 vs I2C僅2線級聯
UART點對點 vs I2C多主從架構

成本控制實例 :某智能手表傳感器模組布線成本節省37%

1.2 技術演進時間線

  • 1982~2023關鍵節點
年份事件速率提升
1982Philips發布初版標準100kHz
1998專利開放引發生態爆發400kHz
2007加入高速模式(HS-mode)3.4MHz
2014最新版UM10204規范5MHz

1.3 當代應用場景

  • 工業領域 :PLC模塊中的板載溫度傳感器鏈
  • 消費電子 :手機攝像頭模組的控制總線

2. 物理層核心機制

2.1 電氣特性深度解析

  • 開漏輸出原理
    電路中僅使用一個N溝道晶體管。晶體管的漏極直接輸出,沒有連接到電源電壓。工作原理:當晶體管導通(開啟)時,輸出端接近地線;當晶體管關閉時,輸出端是懸空的,需要外部上拉電阻連接到高電平,以確保輸出端能夠達到高電平狀態。
    優點:簡化了驅動電路,方便與不同電壓的電路接口,常用于I2C等總線通信協議中。
    缺點:輸出高電平時依賴外部上拉電阻,對電路的設計提出了額外要求;輸出電流能力較弱。

  • 為何需要上拉電阻?避免總線"鎖死"的數學證明

  • 上拉電阻計算黃金公式

  Rp(min) = (VDD - VOL(max)) / IOL  Rp(max) = tr / (0.8473 × Cb)  其中:  tr = 上升時間(規范要求<1μs@100kHz)  Cb = 總線總電容(包括線路+器件引腳)  
  • 實例計算:當VDD=3.3V, Cb=200pF時,Rp取值區間

2.2 地址擴展的演進

  • 7位 vs 10位尋址對比表
特性7位地址10位地址
設備數量112個1008個
首字節格式0bAAA AAAA R/W0b1111 0AX R/W
典型應用傳感器大型存儲陣列

3. 協議層關鍵時序

3.1 起止信號的時間密碼

  • 時序參數規范表
參數標準模式快速模式單位
tSU:STA4.70.6μs
tHD:STA4.00.6μs
tSU:STO4.00.6μs
  • 常見設計錯誤
    案例1:FPGA主頻過高導致tSU:STA不滿足
    案例2:未考慮線延遲引發的建立時間違例

3.2 ACK/NACK應答機制

  • 從機響應流程圖
  Master發送字節 → 釋放SDA → 從機在第9時鐘拉低SDA → Master檢測ACK  
  • NACK的三種含義
  1. 從機地址不匹配
  2. 寫入時從機寄存器不可寫
  3. 讀取時主機應終止傳輸

3.3 時鐘拉伸(Clock Stretching)

  • 典型應用場景
    低速從機(如EEPROM)的數據準備期
    安全芯片的加密計算耗時階段
  • Verilog處理代碼片段
  always @(posedge scl) begin  if (slave_busy)  scl_out <= 1'bz;  // 釋放SCL線  else  scl_out <= scl_gen;  end  
4. I2C 協議時序要求

4.1 I2C傳輸開始結束時序
SCL: 高電平
SDA: 高電平 -> 低電平 傳輸開始
低電平 -> 高電平 傳輸結束
在這里插入圖片描述
4.2 I2C有效數據時序
SCL:高電平時,SDA保持不練
SDA: SCL低電平時,SDA允許變化
在這里插入圖片描述
4.3 I2C數據傳輸時序
Byte format: MSB first
在這里插入圖片描述
在這里插入圖片描述

配套資源
  1. I2C協議檢查表 (PDF下載):包含22個關鍵參數速查表
  2. I2C 協議 2021版本 :62頁完整I2C協議

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 索引優化以及慢查詢優化

在數據庫性能優化中&#xff0c;索引優化和慢查詢優化是兩個關鍵環節。合理使用索引可以顯著提高查詢效率&#xff0c;而識別和優化慢查詢則能提升整體數據庫性能。本文將詳細介紹MySQL索引優化和慢查詢優化的方法和最佳實踐。 一、MySQL 索引優化 1.1 索引的基本概念 索引是…

vue使用Pinia實現不同頁面共享token

文章目錄 一、概述二、使用步驟安裝pinia在vue應用實例中使用pinia在src/stores/token.js中定義store在組件中使用store登錄成功后&#xff0c;將token保存pinia中向后端API發起請求時&#xff0c;攜帶從pinia中獲取的token 三、參考資料 一、概述 Pinia是Vue的專屬狀態管理庫…

通俗版解釋CPU、核心、進程、線程、協程的定義及關系

通俗版解釋&#xff08;比喻法&#xff09; 1. CPU 和核心 CPU 一個工廠&#xff08;負責干活的總部&#xff09;。核心 工廠里的車間&#xff08;比如工廠有4個車間&#xff0c;就能同時處理4個任務&#xff09;。 2. 進程 進程 一家獨立運營的公司&#xff08;比如一家…

用 VS Code / PyCharm 編寫你的第一個 Python 程序

用ChatGPT做軟件測試 編寫你的第一個 Python 程序——不只是“Hello, World”&#xff0c;而是構建認知、習慣與未來的起點 “第一行代碼&#xff0c;是一個開發者認知世界的方式。” 編程的入門&#xff0c;不只是運行一個字符串輸出&#xff0c;更是開始用計算機思維來理解、…

amd架構主機構建arm架構kkfileview

修改本機使用鏡像倉庫地址 vim /etc/docker/daemon.json {“experimental”: true, “registry-mirrors”: [ “https://docker.m.daocloud.io”, “https://docker.1panel.live”, “http://mirrors.ustc.edu.cn/”, “http://mirror.azure.cn/”, “https://docker.hpcloud.c…

[Linux] vim及gcc工具

目錄 一、vim 1.vim的模式 2.vim的命令集 (1):命令模式 (2):底行模式 3.vim配置 二、gcc 1.gcc格式及選項 2.工作布置 三、自動化構建工具makefile 1.基本使用方法 2.配置文件解析 3.拓展 在linux操作系統的常用工具中&#xff0c;常用vim來進行程序的編寫&#xff1b…

數據庫3——視圖及安全性

視圖及安全性 學習內容學習感受 學習內容 一、實驗目的與要求&#xff1a; 1、設計用戶子模式 2、根據實際需要創建用戶角色及用戶&#xff0c;并授權 3、針對不同級別的用戶定義不同的視圖&#xff0c;以保證系統的安全性 二、實驗內容&#xff1a; 1、 先創建四類用戶角色&…

Oracle數據庫如何進行冷備份和恢復

數據庫的冷備份指的是數據庫處于關閉或者MOUNT狀態下的備份&#xff0c;備份文件包括數據文件、日志文件和控制文件。數據庫冷備份所用的時間主要受數據庫大小和磁盤I/O性能的影響。由于數據庫需要關閉才能進行冷備份&#xff0c;所以這種備份技術并不適用724小時的系統。盡管冷…

SAP HCM 0008數據存儲邏輯

0008信息類型&#xff1a;0008信息類型是存儲員工基本薪酬的地方&#xff0c;因為很多企業都會都薪酬帶寬&#xff0c;都會按崗定薪&#xff0c;所以在上線前為體現工資體系的標準化&#xff0c;都會在配置對應的薪酬關系&#xff0c;HCM叫間接評估&#xff0c;今天我們就分析下…

FPGA在光譜相機中的核心作用

FPGA&#xff08;現場可編程門陣列&#xff09;作為光譜相機的核心控制與加速單元&#xff0c;通過硬件級并行處理能力和動態可編程特性&#xff0c;實現高速、高精度的光譜數據采集與處理。以下是其具體作用分類&#xff1a; 一、高速光電信號處理 ?實時光譜復原? 通過硬…

入門OpenTelemetry——部署OpenTelemetry

OpenTelemetry 部署模式 OpenTelemetry Collector 按部署方式分為 Agent 和Gateway 模式。 Agent 模式 在 Agent 模式下&#xff0c;OpenTelemetry 檢測的應用程序將數據發送到與應用程序一起駐留的&#xff08;收集器&#xff09;代理。然后&#xff0c;該代理程序將接管并…

Windows 上安裝下載并配置 Apache Maven

1. 下載 Maven 訪問官網&#xff1a; 打開 Apache Maven 下載頁面。 選擇版本&#xff1a; 下載最新的 Binary zip archive&#xff08;例如 apache-maven-3.9.9-bin.zip&#xff09;。 注意&#xff1a;不要下載 -src 版本&#xff08;那是源碼包&#xff09;。 2. 解壓 Mave…

摩方 12 代 N200 迷你主機(Ubuntu 系統)WiFi 抓包環境配置教程

摩方12代N200迷你主機標配 Intel AX201無線網卡&#xff0c;支持 WiFi 6 協議&#xff08;802.11ax&#xff09;及藍牙5.2。此網卡兼容主流抓包工具&#xff0c;但需注意&#xff1a; 驅動兼容性&#xff1a;Ubuntu 20.04及以上內核版本&#xff08;5.4&#xff09;默認支持AX2…

輕量、優雅、高擴展的事件驅動框架——Hibiscus-Signal

在現代企業級應用中&#xff0c;事件驅動架構&#xff08;EDA&#xff09;已成為解耦系統、提升擴展性的利器。今天給大家推薦一個非常優秀的國產輕量級事件驅動框架 —— Hibiscus Signal&#xff0c;它不僅天然整合 Spring Boot&#xff0c;還提供完整的事件生命周期支持&…

集合-進階

Collection collection的遍歷方式 迭代器遍歷 不依賴索引 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class mycollection {public static void main(String[] args) {//1.創建集合并添加元素Collection<String> co…

【八股戰神篇】Java集合高頻面試題

專欄簡介 八股戰神篇專欄是基于各平臺共上千篇面經&#xff0c;上萬道面試題&#xff0c;進行綜合排序提煉出排序前百的高頻面試題&#xff0c;并對這些高頻八股進行關聯分析&#xff0c;將每個高頻面試題可能進行延伸的題目再次進行排序選出高頻延伸八股題。面試官都是以點破…

Android之橫向滑動列表

文章目錄 前言一、效果圖二、使用步驟1.xml布局2.代碼3.HomeHxBean3.adapter4.item布局5.兩個drawable 總結 前言 橫向滑動列表有多種實現方式&#xff0c;也可以用tablayout&#xff0c;也可以用recyclerview&#xff0c;今天主要介紹recyclerview。 一、效果圖 二、使用步驟…

關于物聯網的基礎知識(二)——物聯網體系結構分層

成長路上不孤單&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///計算機愛好者&#x1f60a;///持續分享所學&#x1f60a;///如有需要歡迎收藏轉發///&#x1f60a;】 今日分享關于物聯網的基礎知識&#xff08;二&a…

【機器人】復現 WMNav 具身導航 | 將VLM集成到世界模型中

WMNav 是由VLM視覺語言模型驅動的&#xff0c;基于世界模型的對象目標導航框架。 設計一種預測環境狀態的記憶策略&#xff0c;采用在線好奇心價值圖來量化存儲&#xff0c;目標在世界模型預測的各種場景中出現的可能性。 本文分享WMNav復現和模型推理的過程&#xff5e; 下…

英語學習5.17

attract &#x1f449; 前綴&#xff1a;at-&#xff08;朝向&#xff09; &#x1f449; 含義&#xff1a;吸引&#xff08;朝某處拉&#xff09; 例句&#xff1a;The flowers attract bees. &#xff08;花吸引蜜蜂。&#xff09; distract &#x1f449; 前綴&#xff…