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

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

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

硬件電路設(shè)計之I2C電路設(shè)計

CHANBAEK ? 來源:一杯苦Coffee ? 作者:一杯苦Coffee ? 2023-12-04 11:28 ? 次閱讀

1 簡介

IIC-BUS的英文全稱是Inter-Integrated Circuit Bus,其主要的目的是實現(xiàn)微控制器與外圍設(shè)備進(jìn)行數(shù)據(jù)傳輸。它是一種半雙工通信方式,通信方式簡單,僅包含SDA(數(shù)據(jù)總線)和SCL(時鐘總線)組成。通信總線通常由主設(shè)備和從設(shè)備組成,從設(shè)備是通過設(shè)備地址來進(jìn)行區(qū)分,在同一時刻,設(shè)備之間數(shù)據(jù)傳送只能由一個設(shè)備傳送給對應(yīng)地址的設(shè)備。

圖片

什么是I2C總線主設(shè)備和從設(shè)備?

主設(shè)備 :I2C總線的主導(dǎo)者,能向從西安發(fā)送起始信號和中止信號,且能決定總線數(shù)據(jù)的發(fā)送與接收。另外,主設(shè)備能發(fā)送指令,同時既能向從設(shè)備讀取數(shù)據(jù)也能向從設(shè)備寫入數(shù)據(jù)。

從設(shè)備 :I2C總線的被動者,對主設(shè)備發(fā)送的數(shù)據(jù)做出及時響應(yīng)。從設(shè)備的類型比較多,具體可以是EEROM、各種傳感器等。

I2C總線最大可以掛在多少個設(shè)備?

最大電容限制(標(biāo)準(zhǔn)模式和快速模式為400pF,高速模式為500pF)。且在實際的應(yīng)用過程中最好保證I2C設(shè)備不超過8個(經(jīng)驗之談)。

有些設(shè)備預(yù)留地址線的僅3位(相同設(shè)備最多掛在8個,2^3=8),甚至更少。

I2C總線最大的傳輸速率為多少?

序號模式最大速率
1標(biāo)準(zhǔn)模式100kb/s
2快速模式400kbit/s
3高速模式3.4Mbit/s

之前在講串口電路時,有講過一個“波特率”概念,不知道是否有人知道波特率和比特率的區(qū)別?

波特率:單位時間內(nèi)傳輸?shù)拇a元個數(shù)。

比特率:單位時間內(nèi)傳輸?shù)亩壷莆粩?shù)。

二者換算關(guān)系為:比特率=波特率×log2n,此處分享一個計算的案例:

圖片

2 I2C總線特點

  • 簡單和靈活 :僅包含數(shù)據(jù)線和時鐘線,物理通信鏈路簡單。
  • 雙向傳輸 :主設(shè)備既能向從設(shè)備發(fā)送數(shù)據(jù),從設(shè)備也能向主設(shè)備發(fā)送數(shù)據(jù)。
  • 時鐘同步 :采用串行時鐘總線,能有效保證數(shù)據(jù)的準(zhǔn)確性。
  • 多種設(shè)備支持 :總線上掛載的設(shè)備,可以掛在多種不同設(shè)備,不受設(shè)備類型的影響。

3 編碼規(guī)則

  • 起始信號和停止信號
  • 起始信號:當(dāng)時鐘信號為高電平時,數(shù)據(jù)線由高電平變?yōu)榈碗娖降倪^程。
  • 停止信號:當(dāng)時鐘信號為高電平時,數(shù)據(jù)線由低電平變?yōu)楦唠娖降倪^程。

圖片

注意: 在IIC空閑時,SDA、SCL都是保持高電平 。(I2C信號出現(xiàn)故障時,先查看SCL和SDA的電平)

  • 應(yīng)答信號和非應(yīng)答信號
  • 應(yīng)答信號:當(dāng)主設(shè)備傳送8位數(shù)據(jù)結(jié)束后,主機會將SDA線拉高,此時如果從設(shè)備正確接收數(shù)據(jù)則會將SDA拉低并在SCL高電平時保持低電平,這個信號為ACK信號
  • 非應(yīng)答信號:如果在傳輸8位數(shù)據(jù)后從機沒有將SDA拉低則該信號為NACK。

圖片

4 信號傳輸

IIC總線上面的每一個設(shè)備都有唯一的地址與之對應(yīng),信號傳輸時也是根據(jù)指定的地址找到設(shè)備來傳輸信號。

  • 寫操作
  • 主設(shè)備確定從設(shè)備地址,發(fā)送起始信號;
  • 向總線設(shè)備的地址以及數(shù)據(jù)傳輸方向;
  • 從設(shè)備收到主設(shè)備的信號后沒回復(fù)一個應(yīng)答信號;
  • 主設(shè)備向從設(shè)備以字節(jié)為單位發(fā)送數(shù)據(jù),且每發(fā)送一個數(shù)據(jù),都會接收來自從設(shè)備的應(yīng)答信號;
  • 數(shù)據(jù)發(fā)送完成后,從設(shè)備發(fā)送一個停止信號,表明此次數(shù)據(jù)傳輸結(jié)束。

圖片

  • 讀數(shù)據(jù)
  • 主設(shè)備確認(rèn)從設(shè)備地址,發(fā)送起始信號;
  • 向總線上發(fā)送從設(shè)備的地址以及讀取數(shù)據(jù)的命令;
  • 對應(yīng)的從設(shè)備回復(fù)應(yīng)答信號;
  • 從設(shè)備向主設(shè)備回復(fù)主設(shè)備要讀取的數(shù)據(jù);
  • 從設(shè)備數(shù)據(jù)發(fā)送給完成后,主機向從設(shè)備發(fā)送一個非應(yīng)答信號,然后中止數(shù)據(jù)的讀取。

圖片

5 總線仲裁

總線上存在兩個及兩個以上主設(shè)備時,每個節(jié)點都可以作為主設(shè)備向總線上發(fā)送命令或者數(shù)據(jù)。當(dāng)總線上同時存在兩個或者兩個以上主設(shè)備發(fā)送信號時,就會造成總線沖突。此時,就需要進(jìn)行I2C總線仲裁。分以下兩個方面來說:

時鐘同步

時鐘總線(SCL)具有“線與”的邏輯功能,就是當(dāng)總線有任意一個節(jié)點向總線發(fā)送低電平時,總線就會呈現(xiàn)低電平的狀態(tài)。(所有節(jié)點呈現(xiàn)高電平時,總線表現(xiàn)為高電平)

SDA仲裁

SDA仲裁也是基于“線與”的邏輯功能,節(jié)點發(fā)送數(shù)據(jù)后,比較總線與發(fā)送的數(shù)據(jù)是否一致,保持一致則繼續(xù)發(fā)送,否則退出競爭。SDA仲裁這種機制保證了I2C中線上即使有多個主設(shè)備,也不會造成數(shù)據(jù)丟失。

仲裁過程

  1. 設(shè)備1和設(shè)備2同時向設(shè)備發(fā)送起始信號,總線上電平與發(fā)送電平一致,繼續(xù)發(fā)送數(shù)據(jù);
  2. 設(shè)備1和設(shè)備2同時向設(shè)備發(fā)送低電平,總線上電平與發(fā)送電平一致,繼續(xù)發(fā)送數(shù)據(jù);
  3. 設(shè)備1發(fā)送高電平。設(shè)備2發(fā)送低電平。此時,總線呈現(xiàn)低電平狀態(tài)。總線的電平與設(shè)備1發(fā)送的電平不一致,退出競爭,且變?yōu)閺脑O(shè)備。設(shè)備2繼續(xù)發(fā)送數(shù)據(jù)。

5 上拉電阻計算

由于I2C總線端口的高電平是通過上拉電阻實現(xiàn),線上的電平從低變高時,電源通過上拉電阻對線上負(fù)載電容CL充電,這需要一定的上升時間。

電容充電一般公式:

圖片

整理可得:

圖片

I2C規(guī)范將低于VIL或0.3VDD的電壓定義為邏輯低電平,同樣將高于VIH或0.7VDD的電壓定義為邏輯高電平。由上式可以求得:

圖片

即T1=0.356675*CL

圖片

所以最大上拉電阻為:

圖片

結(jié)論:電源電壓決定上拉電阻的最小值,總線負(fù)載電容決定上拉電阻的最大值。

當(dāng)Tr取最大值,CL取最小值時,R有最大值。

模式上升沿的最大時間總線負(fù)載最大容限
標(biāo)準(zhǔn)模式1000ns400pF
快速模式300ns400pF
高速模式120ns550pF

所以快速模式下,負(fù)載電容為50pF:

圖片

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

    關(guān)注

    48

    文章

    7576

    瀏覽量

    151724
  • 電路設(shè)計
    +關(guān)注

    關(guān)注

    6678

    文章

    2459

    瀏覽量

    204933
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2894

    瀏覽量

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

    關(guān)注

    28

    文章

    1494

    瀏覽量

    124094
  • I2C總線
    +關(guān)注

    關(guān)注

    8

    文章

    391

    瀏覽量

    61054
收藏 人收藏

    評論

    相關(guān)推薦

    虛擬I2C總線串行顯示電路介紹

    本文主要介紹了虛擬I2C總線串行顯示電路,其中包括SAA1064引腳功能介紹、硬件電路設(shè)計、片內(nèi)可編程功能以及程序舉例。 1.SAA1064引腳功能 ① VDD、VEE:電源、接地端。
    發(fā)表于 07-31 16:02 ?3459次閱讀
    虛擬<b class='flag-5'>I2C</b>總線串行顯示<b class='flag-5'>電路</b>介紹

    I2C總線的電路設(shè)計

      I2C協(xié)議已經(jīng)用了很多了,但是呢,在硬件設(shè)計方面,基本也是只會抄抄電路,并沒有理解其中的原理和細(xì)節(jié)。這一章我們具體要說說需要怎么設(shè)計I2C電路
    發(fā)表于 07-27 16:51 ?1.1w次閱讀
    <b class='flag-5'>I2C</b>總線的<b class='flag-5'>電路設(shè)計</b>

    I2C總線硬件電路設(shè)計

    I2C(Inter-Integrated Circuit)總線是由飛利浦在80年代初設(shè)計的,同一電路板上的不同組件之間進(jìn)行通信。簡化了電路的設(shè)計。
    發(fā)表于 09-15 15:31 ?2004次閱讀
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>硬件</b><b class='flag-5'>電路設(shè)計</b>

    I2C總線信號與測試案例(二)

    前面一章講解了I2C總線的基本原理,那么在電路設(shè)計完成打板回來,肯定要做信號測試來驗證設(shè)計
    的頭像 發(fā)表于 11-20 15:49 ?4332次閱讀
    <b class='flag-5'>I2C</b>總線信號與測試案例(二)

    使用GPIO模擬I2C電路設(shè)計

    Questions:當(dāng)使用GPIO模擬I2C時應(yīng)如何進(jìn)行電路設(shè)計?Answer: I2C協(xié)議中規(guī)定了總線上任意器件輸出低電平都會將總線拉低,也就是總線上各器件是通過線“與”的方式來連接的。所以
    發(fā)表于 12-23 11:20

    硬件電路設(shè)計流程系列

    一、硬件電路設(shè)計流程系列--硬件電路設(shè)計規(guī)范 二、硬件電路設(shè)計流程系列--方案設(shè)計(1) :主芯
    發(fā)表于 10-17 17:16

    使用GPIO模擬I2C電路設(shè)計

    當(dāng)使用 GPIO 模擬 I2C 時應(yīng)如何進(jìn)行電路設(shè)計?
    發(fā)表于 10-23 08:22

    基于CP2120的SPI與I2C總線接口轉(zhuǎn)換電路設(shè)計

    基于CP2120的SPI與I2C 總線接口轉(zhuǎn)換電路設(shè)計:SPI總線和FC總線應(yīng)用廣泛,但由5--g-~ 協(xié)議不同,兩種總線器件間無法進(jìn)行數(shù)據(jù)通信,因此.設(shè)計了基于CP2120的SPI總線與VC總線接口轉(zhuǎn)換電
    發(fā)表于 04-12 08:35 ?55次下載

    I2C地址切換電路

    I2C地址切換電路
    發(fā)表于 02-22 11:15 ?1518次閱讀
    <b class='flag-5'>I2C</b>地址切換<b class='flag-5'>電路</b>

    基于I2C總線控制的音頻處理電路設(shè)計

    基于I2C總線控制的音頻處理電路設(shè)計 0 引 言   當(dāng)前汽車音響與高保真的立體聲音響系統(tǒng)中都包含了微處理器電路單元,這為實現(xiàn)音頻處理提供了控制接口,可
    發(fā)表于 11-16 09:56 ?2517次閱讀
    基于<b class='flag-5'>I2C</b>總線控制的音頻處理<b class='flag-5'>電路設(shè)計</b>

    基于I2C總線控制的音頻處理電路設(shè)計

    基于I2C總線控制的音頻處理電路設(shè)計  當(dāng)前汽車音響與高保真的立體聲音響系統(tǒng)中都包含了微處理器電路單元,這為實現(xiàn)音頻處理提供了控制接口
    發(fā)表于 11-16 16:34 ?1268次閱讀

    基于CPLD的I2C總線接口設(shè)計

    電路設(shè)計中,I2C總線是比較常用的兩線式串行通信方式,大多數(shù)的CPU都擅長于并口操作,不具備直接操作I2C總線接口的能力。為了使不具備I2C總線接口能力的CPU通過對并口的簡單操作實
    發(fā)表于 02-12 16:11 ?95次下載
    基于CPLD的<b class='flag-5'>I2C</b>總線接口設(shè)計

    基于I2C總線的單片機鍵盤控制電路設(shè)計與實現(xiàn)

    為減少單片機鍵盤控制占用口線過多的問題,本文介紹了基于I2C總線結(jié)構(gòu)的鍵盤控制方法給出了硬件電路和軟件代碼。
    發(fā)表于 03-28 16:13 ?4次下載

    硬件I2C與模擬I2C

    硬件I2C對應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動電路,其所使用的I2C管腳也是專用的,因而效率
    發(fā)表于 12-28 19:14 ?81次下載
    <b class='flag-5'>硬件</b><b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    硬件設(shè)計:接口--不同電源系統(tǒng)下I2C總線電平轉(zhuǎn)換電路(電橋)設(shè)計

    硬件設(shè)計:接口--不同電源系統(tǒng)下I2C總線電平轉(zhuǎn)換電路(電橋)設(shè)計參考資料:I2C總線3.3V與5V雙向電平轉(zhuǎn)換電路  為了實現(xiàn)在不同電源系
    發(fā)表于 01-11 12:54 ?8次下載
    <b class='flag-5'>硬件</b>設(shè)計:接口--不同電源系統(tǒng)下<b class='flag-5'>I2C</b>總線電平轉(zhuǎn)換<b class='flag-5'>電路</b>(電橋)設(shè)計