99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C總線的基本通信總結(jié)

開源嵌入式 ? 來源:開源嵌入式 ? 作者:神棍 ? 2021-08-26 14:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在電子設(shè)計開發(fā)中I2C大家已經(jīng)很熟悉了,每一種電子產(chǎn)品小到電子開關(guān),大到衛(wèi)星通信都會利用的I2C總線。據(jù)統(tǒng)計I2C在電子產(chǎn)品中占據(jù)了93%的份額,幾乎任何一種電路都要使用。

I2C是由PHILIPS公司在1980年開發(fā)的兩線式串行總線,至今已經(jīng)發(fā)展30多年的歷史了。古老的電子產(chǎn)品中就已經(jīng)在使用I2C總線了。I2C總線在所有總線中是最簡單,最穩(wěn)定的一種,由于發(fā)展歷史久遠,所以I2C總線出現(xiàn)了多種版本。但是萬變不離其中,有的廠商甚至在原有I2C總線的基礎(chǔ)上,自己改變了總線時序,成為獨有的I2C。但是基本原理不變。

我遇到過很多人在問我,自己的I2C程序明明已經(jīng)調(diào)試好,可換了個芯片就通信失敗了,不能讀取數(shù)據(jù)了。都是I2C的元器件,只是芯片廠家不同。在這里我告訴大家,這總線歷史悠久,各種版本的要有幾十種甚至幾百種了,所有版本的通信格式,協(xié)議都一樣,只是時間不同了,因為有的芯片廠家更改了時序中的時鐘周期。所以大家遇到這種問題,只需調(diào)整延時,其余不動即可,不必不知所措,亂找問題。

415246ba-eb9c-11eb-a97a-12bb97331649.jpg

I2C總線從機設(shè)備最多支持127個,主要是通過串行數(shù)據(jù)(SDA)線和串行時鐘 (SCL)線在連接到總線的器件間傳遞信息。每個器件都有一個唯一的地址。

I2C總線有三種數(shù)據(jù)傳輸速度:標準,快速模式和高速模式。標準的是100Kbps,快速模式為400Kbps,高速模式支持快至3.4Mbps的速度。所有的與次之傳輸速度的模式都是兼容的。I2C總線支持7位和10位地址空間設(shè)備和在不同電壓下運行的設(shè)備。

TTL電平與COMS在I2C這里通用。是相互兼容的。

由于I2C的模式多種多樣,我就給大家講一種常用的7位尋址模式的通信,還有10位模式,大家可以自行找資料去了解,這種10位模式的較少。

總線通信流程大概分為四部分。1.啟動—2.數(shù)據(jù)傳輸—3.應(yīng)答—4.結(jié)束。

啟動與結(jié)束:

SCL 線是高電平時,SDA 線從高電平向低電平切換,這個情況表示起始條件;

SCL 線是高電平時,SDA 線由低電平向高電平切換,這個情況表示停止條件。

數(shù)據(jù)傳輸:

發(fā)送到SDA 線上的每個字節(jié)必須為8 位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個字節(jié)后必須跟一個響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB),如果從機要完成一些其他功能后(例如一個內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),可以使時鐘線SCL 保持低電平,迫使主機進入等待狀態(tài),當從機準備好接收下一個數(shù)據(jù)字節(jié)并釋放時鐘線SCL 后數(shù)據(jù)傳輸繼續(xù)。

數(shù)據(jù)應(yīng)答:

數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時鐘脈沖由主機產(chǎn)生。在響應(yīng)的時鐘脈沖期間發(fā)送器釋放SDA 線(高)。

在響應(yīng)的時鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持穩(wěn)定的低電平。

以上是基本的通信流程,當然這通信是離不開時鐘線的SCL。

時鐘同步:

所有主機在SCL線上產(chǎn)生它們自己的時鐘來傳輸I2C總線上的報文。數(shù)據(jù)只在時鐘的高電平周期有效,因此需要一個確定的時鐘進行逐位仲裁。

時鐘同步通過線與連接I2C 接口到SCL 線來執(zhí)行。這就是說SCL 線的高到低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL 線保持這種狀態(tài)直到到達時鐘的高電平。但是如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL 線的狀態(tài)。因此SCL 線被有最長低電平周期的器件保持低電平。此時低電平周期短的器件會進入高電平的等待狀態(tài)。當所有有關(guān)的器件數(shù)完了它們的低電平周期后,時鐘線被釋放并變成高電平。之后,器件時鐘和SCL線的狀態(tài)沒有差別,而且所有器件會開始數(shù)它們的高電平周期。首先完成高電平周期的器件會再次將SCL線拉低。

這樣產(chǎn)生的同步SCL 時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。

7位尋址方式:

第一個字節(jié)的頭7 位組成了從機地址,最低位(LSB)是第8 位,它決定了傳輸?shù)姆较?。第一個字節(jié)的最低位是“0”,表示主機會寫信息到被選中的從機;“1”表示主機會向從機讀信息,當發(fā)送了一個地址后,系統(tǒng)中的每個器件都在起始條件后將頭7 位與它自己的地址比較,如果一樣,器件會判定它被主機尋址,至于是從機接收器還是從機發(fā)送器,都由R/W 位決定的。

下面是I2C的時序圖與對應(yīng)程序,程序已經(jīng)調(diào)試通過,大家可以使用,但是大家記住一點,不同廠家芯片時鐘周期會不同。本人以51單片機,keil4開發(fā)環(huán)境,12M晶振調(diào)試通過。從機芯片是AT24C08芯片。

起始與停止總線:

41b80270-eb9c-11eb-a97a-12bb97331649.jpg

I2C總線程序起始與停止:

41c5df76-eb9c-11eb-a97a-12bb97331649.png

I2C讀寫時序:

420a2b04-eb9c-11eb-a97a-12bb97331649.jpg

I2C讀寫單個字節(jié):

425027c6-eb9c-11eb-a97a-12bb97331649.png

42873054-eb9c-11eb-a97a-12bb97331649.png

I2C應(yīng)答與非應(yīng)答時序:

429ddf5c-eb9c-11eb-a97a-12bb97331649.jpg

I2C多字節(jié)連續(xù)讀寫時序:

42e6f12e-eb9c-11eb-a97a-12bb97331649.jpg

以上程序調(diào)試通過,直接使用即可。但根據(jù)不同廠家的芯片可能時序會有不同,如遇通信不正常,可改變延時?;窘o大家把I2C的基本通信總結(jié)了一下。由于I2C種類版本繁多,但基本原理相同,這里不一一舉例。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路
    +關(guān)注

    關(guān)注

    173

    文章

    6028

    瀏覽量

    175113
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1541

    瀏覽量

    127930
  • 電子設(shè)計
    +關(guān)注

    關(guān)注

    42

    文章

    825

    瀏覽量

    49231

原文標題:看懂了這篇文章你將會操作所有的IIC器件!??!

文章出處:【微信號:KY_QRS,微信公眾號:開源嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    I2C總線復(fù)用

    帝晶智慧屏I2C總線復(fù)用
    的頭像 發(fā)表于 03-11 17:20 ?1419次閱讀

    I2C總線通信原理 如何設(shè)計I2C總線電路

    I2C總線通信原理 I2C(Inter-Integrated Circuit)總線是一種用于集成電路之間進行
    的頭像 發(fā)表于 01-31 15:01 ?1146次閱讀

    基于I2C總線的智能家居應(yīng)用

    隨著科技的飛速發(fā)展,智能家居系統(tǒng)已經(jīng)成為現(xiàn)代生活的一個重要組成部分。I2C(Inter-Integrated Circuit)總線是一種串行通信協(xié)議,廣泛應(yīng)用于微控制器和各種傳感器之間,因其簡單
    的頭像 發(fā)表于 01-17 16:21 ?568次閱讀

    I2C總線的優(yōu)缺點分析

    I2C總線作為一種廣泛使用的串行通信協(xié)議,以其簡單性和高效性在嵌入式系統(tǒng)中占據(jù)著重要地位。 I2C總線的優(yōu)點 1. 簡單性和低成本
    的頭像 發(fā)表于 01-17 15:50 ?1179次閱讀

    如何選擇I2C總線拉電阻

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設(shè)備通過兩條線(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。為了確保數(shù)據(jù)信號的穩(wěn)定性和減少反射,I2C
    的頭像 發(fā)表于 01-17 15:43 ?624次閱讀

    I2C總線與Arduino的接口示例

    在現(xiàn)代電子設(shè)計中,I2C總線因其簡單性和靈活性而廣受歡迎。它允許多個設(shè)備共享同一通信線路,從而節(jié)省空間和成本。Arduino,作為一個多功能的微控制器平臺,自然也支持I2C
    的頭像 發(fā)表于 01-17 15:34 ?1613次閱讀

    I2C總線的工作模式介紹

    在現(xiàn)代電子系統(tǒng)中,I2C總線作為一種多主機、多從機的串行通信協(xié)議,扮演著至關(guān)重要的角色。它允許多個設(shè)備共享同一總線,進行數(shù)據(jù)傳輸,從而簡化了系統(tǒng)設(shè)計并降低了成本。
    的頭像 發(fā)表于 01-17 15:32 ?1017次閱讀

    I2C總線協(xié)議詳細解析

    1. I2C總線簡介 I2C總線由Philips Semiconductor(現(xiàn)為NXP Semiconductors)在1980年代初期開發(fā)。它是一種多主機
    的頭像 發(fā)表于 01-17 15:22 ?913次閱讀

    I2C總線故障排除技巧

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設(shè)備在兩條線上(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。由于其簡單性和靈活性,I2C
    的頭像 發(fā)表于 01-17 15:20 ?2377次閱讀

    I2C總線與單片機的連接

    在現(xiàn)代電子系統(tǒng)中,單片機(MCU)是核心控制單元,而I2C總線作為一種多主機、多從機的串行通信協(xié)議,因其簡單、高效和節(jié)省引腳的特性而被廣泛應(yīng)用于各種電子設(shè)備中。 I2C
    的頭像 發(fā)表于 01-17 15:18 ?1199次閱讀

    I2C總線設(shè)備地址設(shè)置方法

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個設(shè)備在兩條線上(數(shù)據(jù)線SDA和時鐘線SCL)進行通信。每個設(shè)備都有一個唯一的地址,以確保數(shù)據(jù)能夠正確地發(fā)送到目標設(shè)備。
    的頭像 發(fā)表于 01-17 15:17 ?4277次閱讀

    I2C總線應(yīng)用實例分析

    在現(xiàn)代電子系統(tǒng)中,I2C總線因其簡單、靈活和高效的特點而被廣泛應(yīng)用于各種設(shè)備之間的通信。 I2C總線概述
    的頭像 發(fā)表于 01-17 15:09 ?764次閱讀

    I2C總線與SPI總線的比較

    在現(xiàn)代電子系統(tǒng)中,微控制器與各種外設(shè)之間的通信是必不可少的。I2C和SPI是兩種流行的串行通信協(xié)議,它們各自具有獨特的特點和應(yīng)用場景。 I2C總線
    的頭像 發(fā)表于 01-17 15:08 ?957次閱讀

    詳解I2C總線與SPI總線的區(qū)別

    I2C(Inter-Integrated Circuit)表示集成電路互連,是一種用于線路板內(nèi)部芯片之間通信總線。
    的頭像 發(fā)表于 10-16 15:16 ?1.5w次閱讀
    詳解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>與SPI<b class='flag-5'>總線</b>的區(qū)別

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>