IIC (I2C)通信

一、IIC的特點

I2C(Inter IC Bus)又成為(愛方C I2C)是由Philips公司開發的一種通用數據總線

兩根通信線:SCLSerial Clock)、SDASerial Data

同步,半雙工

帶數據應答

支持總線掛載多設備(一主多從、多主多從)

二、外設硬件

STM32內部集成了硬件I2C收發電路,可以由硬件自動執行時鐘生成、起始終止條件生成、應答位收發、數據收發等功能,減輕CPU的負擔

支持多主機模型

支持7/10位地址模式

支持不同的通訊速度,標準速度(高達100 kHz),快速(高達400 kHz)

支持DMA

兼容SMBus協議

STM32F103C8T6 硬件I2C資源:I2C1I2C2

上圖設備都能夠支持IIC通信的設備。在通信過程當中,每個設備都有一個相應的地址,比如說第一個MPU6050,地址一般是1101?000,第三個AT24C02的地址一般是101 0000,不同型號的設備的地址都不一樣,相同型號的設備可以在拓展口接入1條線來防止地址沖突。例:MPU6050AD0引腳接高電平就是1101 001.

三、硬件電路

所有I2C設備的SCL連在一起,SDA連在一起

設備的SCLSDA均要配置成開漏輸出模式

SCLSDA各添加一個上拉電阻,阻值一般為4.7KΩ左右

首先看上圖左側,IIC主要有兩個線組成,SDA和SCL這兩根線。SDA是數據線,SCL是時鐘線,他們的都是由主機CPU控制,主機CPU具有對SCL(時鐘線)的完全控制,而從機只有短暫的控制SDA(數據線)的能力,只有在從機發送數據的時候才能夠控制SDA,而且需要主機主動發送接收邀請,從機接收到邀請并且應答,然后主機接收到應答才轉交SDA控制權給從機。

由于為了避免電路短路以及引腳電平頻繁轉換的原因,規定了設備的SCLSDA均要配置成開漏輸出模式 (開漏輸出模式當引腳輸出高電平的狀態為高阻態,輸出低電平的時候才是低電平)。上拉電阻的引入讓這兩條線一直處于弱上拉的狀態,只允許設備下拉。

由于只能夠下拉,當某一個設備下拉了某條線,這整條線都處于低電平的狀態,除非全部設備對這根線都是高阻態(上拉)這條線才是高電平。這樣的特性讓IIC能夠實現多主機時鐘同步和總線總裁。

四、時序

起始與結束

起始條件:SCL處于高電平,在此期間SDA從高電平切換到低電平,隨后主機將SCL電平。平拉低從機接收到這個信號就開始復位準備接收數據?。

終止條件:主機將SCL放開,SCL回到高電平,在SCL高電平期間,SDA從低電平切換到高電平

接收發送與應答

發送一個字節:SCL低電平期間,主機將數據位依次放到SDA線上(高位先行),然后釋放SCL,從機將在SCL高電平期間讀取數據位,所以SCL高電平期間SDA不允許有數據變化,依次循環上述過程8次,即可發送一個字節

接收一個字節:SCL低電平期間,從機將數據位依次放到SDA線上(高位先行),然后釋放SCL,主機將在SCL高電平期間讀取數據位,所以SCL高電平期間SDA不允許有數據變化,依次循環上述過程8次,即可接收一個字節(主機在接收之前,需要釋放SDA

無論是主機發送還是主機接收,SDA只有在SCL低電平期間才能夠改變,這為了在SCL高電平期間讀取到的數據穩定可靠。

發送應答:主機在接收完一個字節之后,在下一個時鐘發送一位數據,數據0表示應答,數據1表示非應答

接收應答:主機在發送完一個字節之后,在下一個時鐘接收一位數據,判斷從機是否應答,數據0表示應答,數據1表示非應答(主機在接收之前,需要釋放SDA)

主機接收前都會釋放SDA,當從機拉低了SDA也就是0的時候代表從機應答了,從機并沒有拉低SDA,還是1那就表示未應答。

總結

只需兩根線:

????????SDA(Serial Data Line): 串行數據線,用于傳輸數據。

????????SCL(Serial Clock Line): 串行時鐘線,由主設備產生,用于同步數據。

主從模式:

????????主設備(Master): 負責發起和終止傳輸、產生時鐘信號。通常由微處理器(如單片機)擔任。

????????從設備(Slave): 響應主設備的命令。每個從設備都有一個唯一的設備地址(7位或10位),主設備通過該地址來選擇與哪個從機通信。一個總線上可以掛載多個從設備(由地址空間和總線電容限制)。

多主從支持: 總線可以支持多個主設備(多主模式),通過仲裁機制防止數據沖突。


一次典型的 I2C 通信流程如下:

起始條件(START):

????????主設備在 SCL 為高電平時,將 SDA 線從高電平拉低。這個下降沿表示一次傳輸的開始。

發送從機地址:

????????主設備發送一個7位或10位的從設備地址,后面緊跟一個讀寫位(R/W#)。

????????讀寫位為 0 表示主設備要向從設備寫入(Write) 數據。

????????讀寫位為 1 表示主設備要向從設備讀取(Read) 數據。

????????這8位數據(7位地址+1位讀寫)在 SCL 高電平時必須保持穩定。

應答信號(ACK/NACK):

????????每傳輸完一個字節(8位)的數據(包括地址字節),接收方(無論是主還是從)必須在第9個時鐘脈沖期間發送一個應答(ACK)信號。

????????ACK: 接收方將 SDA 線拉低,表示成功收到字節。

????????NACK: 接收方保持 SDA 線為高,通常表示傳輸結束或接收失敗。

數據傳輸:

????????寫操作: 主設備繼續向 SDA 線上發送數據字節,從設備每個字節后回應 ACK。

讀操作: 從設備向 SDA 線上發送數據字節,主設備每個字節后回應 ACK(如果需要繼續讀)或 NACK(表示讀取結束)。

停止條件(STOP):

????????主設備在 SCL 為高電平時,將 SDA 線從低電平拉高。這個上升沿表示本次傳輸的結束,總線恢復空閑狀態。

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

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

相關文章

【圖像處理 - 基礎知識】ISP(Image Signal Processor)處理

文章目錄1. 圖像傳感背景2. 圖像數據格式2.1. 【RAW】Bayer濾色陣列(Bayer Filter Array)2.2. 【RGB】2.3. 【YUV】3. ISP(Image Signal Processor)3.1. ISP定義3.2. 分類概括1 RAW 域(Raw Domain)2 RGB 域…

PostgreSQL 數據庫災備要點與舉例說明**

PostgreSQL 數據庫災備要點與舉例說明 數據庫災備(Disaster Recovery, DR)是確保業務連續性的核心環節,其目標是在主生產環境遭遇計劃外中斷(如硬件故障、自然災害、人為錯誤、數據損壞)時,能快速恢復數據和服務。PostgreSQL 因其強大和開源特性,提供了多種高效的災備方…

【GaussDB】在邏輯復制中剔除指定用戶的事務

【GaussDB】在邏輯復制中剔除指定用戶的事務 1. 需求背景 在邏輯復制中,期望對源端指定用戶的所有操作不復制到目標端。然而WAL日志中沒有用戶信息可用于過濾,因此考慮結合審計日志來實現這一需求。 2. 解決方案 2.1 配置審計日志 首先需要開啟事務…

C/C++---預定義常量

在C/C開發中,預定義常量是編譯器與標準庫提供的“隱形工具集”,無需開發者顯式定義,卻在跨平臺兼容、調試定位、數值計算安全等場景中發揮核心作用。這些常量涵蓋編譯環境標識、語言標準判斷、代碼定位信息、數值邊界限制等多個維度&#xff…

嵌入式學習筆記--LINUX系統編程--DAY03進程控制

1.進程概述進程和程序的區別程序:程序是存儲在存儲介質上的一個可執行文件---靜態的進程:進程是程序的執行實例。可以說進程就是正在執行的程序。程序是一些指令的集合,而進程是程序的執行過程,這個過程的狀態是變化的&#xff0c…

【90頁PPT】新能源汽車數字化轉型SAP解決方案(附下載方式)

篇幅所限,本文只提供部分資料內容,完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808859/91777751 資料解讀:《新能源汽車數字化轉型SAP解決方案》 ??詳細資料請看本解讀文章的最后內容?? 在全球汽車產業加速向電…

LSM6DS3姿態芯片和LIS2MD磁力計芯片數據讀取(stm32)

上代碼main.c 代碼示例#include "lsm6ds3.h" #include "lis2md.h"int16_t Acc[3] {0}, GYO[3] {0},Mag[3] {0};int main(void) {I2C_GPIO_Config(); //配置IIC使用端口Delayms(500); //延時Lsm6ds3_Init( ); …

數據傳輸安全-IKE工作過程

在前面的課程中,你已經掌握了:IPSec的目標:提供機密性、完整性、身份認證、防重放。IPSec的執行者:AH和ESP協議。IPSec的規則手冊:SA(安全關聯),包含了所有保護參數(算法…

翻譯-同位協同克里金算法

同點協同克里金法 副標題: 地統計學課程 主要內容: 同點協同克里金法 摘要 同點協同克里金法是一種多元地統計學技術,用于借助次要變量(協變量)來估算主要變量。本課程介紹了同點協同克里金法,并將其與簡單克里金法和簡單協同克里金法進行了比較。通過一個假設的案例…

國家統計局數據分析01——機器學習

我們前面爬取過國家統計局數據爬取——機器學習-CSDN博客的數據,我們接下來就對爬取的數據進行分析。 這是一個完整的數據分析代碼,主要用于加載、清洗和探索政府統計數據。讓我為你詳細解釋每個部分: 1. 導入必要的庫 import pandas as pd # 數據處理和分析的核心庫 imp…

【雜談】-混沌理論能否賦予機器差異化思考能力?

混沌理論能否賦予機器差異化思考能力? 文章目錄混沌理論能否賦予機器差異化思考能力?1、AI與結構化思維的本質特征2、人類思維的獨特優勢3、混沌算法的創新實踐4、混沌算法的作用機理5、混沌算法的應用實例5.1 音樂創作革新5.2 圖像生成突破5.3 科學發現…

jQuery.print插件:網頁內容打印與導出指南

本文還有配套的精品資源,點擊獲取 簡介:在網頁開發中,為了實現內容的打印或導出,可以利用jQuery.print插件,該插件提供了一個簡易的解決方案,尤其適用于表格數據。本指南詳細介紹了如何使用jQuery.print…

w嵌入式分享合集125

自己的原文哦~ https://blog.51cto.com/whaosoft/14165530 一、常用電路基礎公式 1.歐姆定律計算 計算電阻電路中電流、電壓、電阻和功率之間的關系。 歐姆定律解釋了電壓、電流和電阻之間的關系,即通過導體兩點間的電流與這兩點間的電勢差成正比。說…

Docker 核心技術:Union File System

大家好,我是費益洲。UnionFS 作為 Docker 的技術核心之一,實現了 Docker 鏡像的分層輕量化構建、容器資源的隔離復用等目的。本文將從核心原理、主流技術實現簡單介紹 UnionFS。 核心原理 Linux 的聯合文件系統(Union File System&#xff0c…

MongoDB 文檔模型設計:JSON 結構的靈活性與陷阱

MongoDB 文檔模型設計:JSON 結構的靈活性與陷阱第一章:MongoDB 文檔模型基礎與核心特性1.1 MongoDB 文檔模型的哲學基礎1.2 文檔模型的優勢分析1.3 與關系型數據庫的深度對比第二章:文檔設計模式與最佳實踐2.1 嵌入式模式(Embeddi…

基于SQL大型數據庫的智能問答系統優化

一、食用指南 基于SQL數據庫的智能問答系統設計與實現介紹了在數據庫中創建表格數據問答系統的基本方法,我們可以向該系統提出關于數據庫數據的問題,最終獲得自然語言答案。 為了針對數據庫編寫有效的查詢,我們需要向模型提供表名、表結構和…

【計算機網絡】前端基礎知識Cookie、localStorage、sessionStorage 以及 Token

一、先搞懂:為什么需要這些“存儲工具”? 網頁是“無狀態”的——比如你登錄一個網站,瀏覽器和服務器每次通信都是獨立的,服務器默認記不住你是誰。為了讓服務器“記住”用戶狀態(比如登錄狀態、購物車內容&#xff09…

【語法】【C+V】【mermaid】本身常用圖表類型用法快查【CSDN不支持,VSCODE可用】

文章目錄 Mermaid 簡介Mermaid 由三部分組成Mermaid 的使用方法復雜圖表結構的技巧餅圖簡介餅圖語法餅圖示例雷達圖簡介雷達圖語法雷達圖語法細節標題軸曲線選項 雷達圖示例時間線簡介時間線語法時間線示例樹形圖簡介樹形圖語法樹形圖示例數據包圖簡介數據包圖語法1&#xff1a…

不止效率工具:AI 在文化創作中如何重構 “靈感邏輯”?

一、引言1.1 AI 創作的崛起在當今時代,AI 技術在文化創作領域的迅猛發展已成為不可忽視的現象。從文字創作領域中,AI 能夠快速生成小說、詩歌,一些新聞媒體也開始運用 AI 撰寫新聞稿件;到視覺藝術方面,AI 繪畫軟件能依…

軟考-系統架構設計師 專家系統(ES)詳細講解

個人博客:blogs.wurp.top 一、ES的核心概念與價值 1. 什么是專家系統(ES)? 專家系統是一種模擬人類專家解決特定領域問題的智能計算機程序系統。它運用特定領域內大量專家水平的知識和經驗,進行推理和判斷&#xff…