色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

I2C總線的基本通信總結

開源嵌入式 ? 來源:開源嵌入式 ? 作者:神棍 ? 2021-08-26 14:08 ? 次閱讀

電子設計開發中I2C大家已經很熟悉了,每一種電子產品小到電子開關,大到衛星通信都會利用的I2C總線。據統計I2C在電子產品中占據了93%的份額,幾乎任何一種電路都要使用。

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

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

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

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

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

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

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

總線通信流程大概分為四部分。1.啟動—2.數據傳輸—3.應答—4.結束。

啟動與結束:

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

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

數據傳輸:

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

數據應答:

數據傳輸必須帶響應,相關的響應時鐘脈沖由主機產生。在響應的時鐘脈沖期間發送器釋放SDA 線(高)。

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

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

時鐘同步:

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

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

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

7位尋址方式:

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

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

起始與停止總線:

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

I2C總線程序起始與停止:

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

I2C讀寫時序:

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

I2C讀寫單個字節:

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

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

I2C應答與非應答時序:

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

I2C多字節連續讀寫時序:

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

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

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電路
    +關注

    關注

    172

    文章

    5901

    瀏覽量

    172134
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1484

    瀏覽量

    123619
  • 電子設計
    +關注

    關注

    40

    文章

    797

    瀏覽量

    48595

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

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

收藏 人收藏

    評論

    相關推薦

    I2C總線為什么要接上拉電阻

    輸出。 為什么要接上拉電阻? 接上拉電阻是因為I2C通信需要輸出高電平的能力。一般開漏輸出無法輸出高電平,如果在漏極接上拉電阻,則可以進行電平轉換。 I2C由兩條總線SDA和SCL組成
    的頭像 發表于 11-20 10:07 ?442次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>為什么要接上拉電阻

    詳解I2C總線與SPI總線的區別

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

    了解I2C總線

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

    I2C總線上拉電阻計算

    電子發燒友網站提供《I2C總線上拉電阻計算.pdf》資料免費下載
    發表于 10-08 09:54 ?1次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>上拉電阻計算

    物聯網嵌入式軟件中的I2C總線設計詳解

    I2C(Inter-Integrated Circuit)通信總線,作為嵌入式系統設計中的一個關鍵組成部分,其靈活性和高效率使其在高級應用中備受青睞。本文旨在提供關于I2C
    的頭像 發表于 09-29 16:21 ?369次閱讀
    物聯網嵌入式軟件中的<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>設計詳解

    I2C總線上拉電阻的必要性

    在電子通信領域,I2C總線作為一種廣泛應用的雙向串行通信協議,其穩定性和效率對于整個系統的性能至關重要。為了確保數據傳輸的可靠性,I2C
    的頭像 發表于 09-09 17:16 ?1001次閱讀

    優秀實踐:I3C共享總線上的I2C器件

    電子發燒友網站提供《優秀實踐:I3C共享總線上的I2C器件.pdf》資料免費下載
    發表于 09-06 09:49 ?0次下載
    優秀實踐:<b class='flag-5'>I3C</b>共享<b class='flag-5'>總線</b>上的<b class='flag-5'>I2C</b>器件

    簡單認識I2C通信協議

    I2C(Inter-Integrated Circuit)通信協議是由飛利浦公司(現為恩智浦半導體)開發的一種簡單、雙向二線制同步串行總線協議。自1982年發布以來,I2C協議因其高效
    的頭像 發表于 07-25 18:06 ?1436次閱讀

    I2C總線協議的工作原理和尋址格式

    I2C(Inter-Integrated Circuit)總線協議,即集成電路總線協議,是一種用于連接微控制器及其外圍設備的串行總線協議。I2C
    的頭像 發表于 05-27 15:47 ?1724次閱讀

    I2C總線物理拓撲結構

    I2C總線上可掛接的設備數量受總線的最大電容400pF限制,如果所掛接的是相同型號的器件,則還受器件地址位的限制。
    發表于 03-15 11:03 ?825次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>物理拓撲結構

    什么是I2C協議 I2C總線的控制邏輯

    在實際使用過程中,I2C比較容易出現的一個問題就是死鎖 ,死鎖在I2C中主要表現為:I2C死鎖時表現為SCL為高,SDA一直為低。
    發表于 03-12 09:17 ?1048次閱讀
    什么是<b class='flag-5'>I2C</b>協議 <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的控制邏輯

    藍牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調試工作的時候,會經常用到I2C、SPI、UART這3條總線I2C、SPI、UART這三種通信
    的頭像 發表于 01-22 09:41 ?1618次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——<b class='flag-5'>I2C</b>/SPI/UART

    關于I2C總線的6個問題分析

    I2C總線上的上拉電阻范圍是多少? 回答: 總線電容是走線部分、連接部分、管腳部分的電容的總和。總線電容限制了上拉電阻(Rp) 的最大值,因為
    發表于 12-25 09:19 ?1677次閱讀
    主站蜘蛛池模板: 久久午夜伦理| 国产啪精品视频网免费| 综合伊人久久| 亚洲国产精品久久又爽黄A片 | 99久久国内精品成人免费| 野花视频在线观看免费最新动漫| 亚洲 欧洲 国产 日产 综合| 熟妇久久无码人妻AV蜜桃| 日韩在线看片中文字幕不卡| 人人听力网mp3下载| 日本xxxxxxx| 色人格影院第四色| 天天久久影视色香综合网| 天天摸夜添狠狠添高| 微福利92合集| 亚洲国产精品特色大片观看| 亚洲AV无码乱码在线观看浪潮| 性xxxx18公交车| 亚洲麻豆精品成人A在线观看 | 免费在线视频一区| 女教师二十三岁| 秋霞午夜理论理论福利无码| 青青伊人网| 无人区日本电影在线观看高清| 天天躁日日躁狠狠躁AV麻豆 | 麻豆国产成人AV在线| 免费国产在线观看| 青草在线观看视频| 睡觉被偷偷进入magnet| 亚在线观看免费视频入口| 一个色夫导航| 99久久精品费精品国产一区二| a级成人免费毛片完整版| 动漫美女被h动态图| 国产亚洲国际精品福利| 久爱精品亚洲电影午夜| 蜜芽无码亚洲资源网站| 日日操日日射| 亚洲色欲色欲WWW在线成人网| 真实处破女全过程完免费观看| A级超碰视频在线观看|