h1_key

當(dāng)前位置:首頁(yè) >新聞資訊 > 技術(shù)文章>I2C基礎(chǔ)知識(shí)介紹
I2C基礎(chǔ)知識(shí)介紹
2023-04-24 5836次

  I2C是什么?

  在消費(fèi)電子和工業(yè)電子等領(lǐng)域中,會(huì)使用各種類(lèi)型的芯片,有時(shí)需要快速地進(jìn)行數(shù)據(jù)交互,為了使用最簡(jiǎn)單的方式使這些芯片互聯(lián)互通,于是I2C誕生了。I2C(Inter-Integrated Circuit)是一種通用的總線協(xié)議。它是Philips公司半導(dǎo)體事業(yè)部(現(xiàn)在的NXP)在80年代初為方便主板、嵌入式系統(tǒng)設(shè)計(jì)的一種簡(jiǎn)單、雙向二線制同步串行總線。由于其簡(jiǎn)單性,它被廣泛用于微控制器與傳感器陣列、顯示器、IoT設(shè)備、EEPROM等之間的通信。I2C的專(zhuān)利在2006年11月1日已到期,大家可以免費(fèi)使用。

  對(duì)于硬件工程師來(lái)說(shuō),只需要2個(gè)管腳,極少的連接線和面積,就可以實(shí)現(xiàn)芯片間的通信,對(duì)于軟件設(shè)計(jì)人員來(lái)說(shuō),可以使用同一個(gè)I2C驅(qū)動(dòng)庫(kù),來(lái)實(shí)現(xiàn)不同器件的驅(qū)動(dòng),大大減少了軟件的開(kāi)發(fā)時(shí)間。極低的工作電流,降低了系統(tǒng)的功耗,完善的應(yīng)答機(jī)制大大增強(qiáng)了通信的可靠性。



  I2C總線的介紹

  

 

  I2C總線概述

  I2C總線采用兩條線路——串行數(shù)據(jù)(SDA)和串行時(shí)鐘(SCL)線在連接到總線的器件間傳遞信息。每個(gè)器件都有一個(gè)唯一的地址識(shí)別,而且都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。比如,在系統(tǒng)中LCD驅(qū)動(dòng)器只是一個(gè)接收器,而存儲(chǔ)器則既可以接收又可以發(fā)送數(shù)據(jù)。除了發(fā)送器和接收器外,器件在執(zhí)行數(shù)據(jù)傳輸時(shí)也可以被看作是主機(jī)或從機(jī)。主機(jī)是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸?shù)臅r(shí)鐘信號(hào)的器件。此時(shí),任何被尋址的器件都被認(rèn)為是從機(jī)。


  I2C總線特點(diǎn)

  ●它是一個(gè)支持多器件的總線。在一個(gè)I2C通信總線中,可連接多個(gè)I2C通信器件,支持多個(gè)通信主機(jī)及多個(gè)通信從機(jī)。

  ●SDA和SCL都是雙向線路,都通過(guò)一個(gè)電流源或上拉電阻連接到正的電源電壓(見(jiàn)下圖),當(dāng)總線空閑時(shí),兩條線路上都是高電平。連接到總線的器件輸出級(jí)必須是漏極開(kāi)路或集電極開(kāi)路才能執(zhí)行線與的功能。

  ●多個(gè)主機(jī)同時(shí)使用總線時(shí),為了防止數(shù)據(jù)沖突,會(huì)利用仲裁方式?jīng)Q定由哪個(gè)器件占用總線。在I2C總線上產(chǎn)生時(shí)鐘信號(hào)通常是主機(jī)器件的責(zé)任。當(dāng)在總線上傳輸數(shù)據(jù)時(shí),每個(gè)主機(jī)產(chǎn)生自己的時(shí)鐘信號(hào)。主機(jī)發(fā)出的總線時(shí)鐘信號(hào)只有在以下的情況才能被改變:慢速地從機(jī)器件控制時(shí)鐘線并延長(zhǎng)時(shí)鐘信號(hào),或者在發(fā)生仲裁時(shí)被另一個(gè)主機(jī)改變。

  


 

  I2C總線基礎(chǔ)知識(shí)

  I2C總線通信的常識(shí)與術(shù)語(yǔ)


  常識(shí)

  ●多主機(jī)總線,如果兩個(gè)或更多主機(jī)同時(shí)初始化,數(shù)據(jù)傳輸可以通過(guò)重提檢測(cè)和仲裁防止數(shù)據(jù)被破壞。

  ●串行的8bit雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。

  ●連接到相同I2C總線的器件數(shù)量只受到總線的最大電容400pF的限制。

  ●I2C通信的數(shù)據(jù)以8bit為單位,每次發(fā)送完一個(gè)數(shù)據(jù)都要等待接收方的ACK信號(hào)。


  術(shù)語(yǔ)

  發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件。

  接收器:從總線接收數(shù)據(jù)的器件。

  主機(jī):發(fā)送起始/終止信號(hào)和時(shí)鐘信號(hào)的器件。

  從機(jī):被主機(jī)尋址的器件。

  仲裁:是一個(gè)在有多個(gè)主機(jī)同時(shí)嘗試控制總線但只允許其中一個(gè)控制總線并使傳輸不被破壞的過(guò)程。

  同步:兩個(gè)或多個(gè)器件同步時(shí)鐘信號(hào)的過(guò)程。

  SDA:數(shù)據(jù)線通信期間,SDA的電平改變只能發(fā)生在SCL在低電平期間。

  SCL:時(shí)鐘線。

  

 


  I2C總線通信中共有以下幾種狀態(tài)

  ●空閑狀態(tài):SDA和SCL兩條信號(hào)線同時(shí)處于高電平。

  ●起始狀態(tài):SCL為高電平,SDA由高電平到低電平。起始信號(hào)由主控器發(fā)起,發(fā)起前處于空閑狀態(tài)。

  ●結(jié)束狀態(tài):SCL為高電平,SDA由低電平到高電平。結(jié)束信號(hào)由主控器發(fā)起,發(fā)起后處于空閑狀態(tài)。

  


 

  有效的數(shù)據(jù)位傳輸:

  在I2C總線上傳送的每一位數(shù)據(jù)都有一個(gè)時(shí)鐘脈沖相對(duì)應(yīng)(或同步控制),即在SCL串行時(shí)鐘的配合下,數(shù)據(jù)在SDA上從高位向低位依次串行傳送每一位的數(shù)據(jù)。

  進(jìn)行數(shù)據(jù)傳送時(shí),在SCL呈現(xiàn)高電平期間,SDA上的電平必須保持穩(wěn)定,低電平為數(shù)據(jù)0,高電平為數(shù)據(jù)1。只有在SCL為低電平期間,才允許SDA上的電平改變狀態(tài)。

  應(yīng)答信號(hào)與非應(yīng)答信號(hào):

  I2C總線上的所有數(shù)據(jù)都是以8位字節(jié)傳送的,發(fā)送器每發(fā)送一個(gè)字節(jié),就在第9個(gè)時(shí)鐘脈沖期間釋放數(shù)據(jù)線,由接收器反饋一個(gè)應(yīng)答信號(hào)。應(yīng)答信號(hào)為低電平時(shí),規(guī)定為有效應(yīng)答位(ACK簡(jiǎn)稱(chēng)應(yīng)答位),表示接收器已經(jīng)成功地接收了該字節(jié);應(yīng)答信號(hào)為高電平時(shí),規(guī)定為非應(yīng)答位(NACK),一般表示接收器接收該字節(jié)沒(méi)有成功。對(duì)于反饋有效應(yīng)答位ACK的要求是,接收器在第9個(gè)時(shí)鐘脈沖之前的低電平期間將SDA線拉低,并且確保在該時(shí)鐘的高電平期間為穩(wěn)定的低電平。

  

 

  關(guān)于I2C總線的基礎(chǔ)知識(shí)大概介紹到這里,I2C總線經(jīng)過(guò)這么多年行業(yè)應(yīng)用已非常廣泛,下面我們就來(lái)聊下大家所關(guān)心的I2C總線的應(yīng)用。


  I2C總線的應(yīng)用

  I2C總線的主要用途

  用于與顯示器件的對(duì)接:通過(guò)I2C總線,可以使處理器和顯示器件之間的交互更加方便與快捷,實(shí)現(xiàn)更加智能化的人機(jī)交互控制。

  用于外圍芯片的接口:I2C總線可以和可編程的外圍芯片進(jìn)行對(duì)接,如定時(shí)器,繼電器和存儲(chǔ)器等,可以大大減少數(shù)據(jù)通信和控制電路的連接線數(shù)量,降低系統(tǒng)復(fù)雜度,節(jié)省成本。

  用于傳感器的接口:I2C總線可以實(shí)現(xiàn)各種類(lèi)型的傳感器和微處理器或微控制器之間的高速通信,從而可以實(shí)現(xiàn)復(fù)雜的控制系統(tǒng),以及實(shí)時(shí)監(jiān)測(cè)系統(tǒng)狀態(tài)。

  用于模擬和數(shù)字芯片的接口:I2C總線用于主機(jī)與模擬和數(shù)字芯片之間的數(shù)據(jù)傳輸,同時(shí)也可以實(shí)現(xiàn)外設(shè)和外設(shè)之間的快速傳輸,這種鏈路通信方式有助于滿(mǎn)足系統(tǒng)各部分通信協(xié)作和控制需求。

  用于系統(tǒng)間的擴(kuò)展:I2C總線可以連接兩個(gè)或者更多的系統(tǒng),實(shí)現(xiàn)系統(tǒng)間的快速擴(kuò)展,避免系統(tǒng)因拓?fù)浣Y(jié)構(gòu)問(wèn)題而出現(xiàn)混亂情況。比如:GPIO擴(kuò)展、電平轉(zhuǎn)換、系統(tǒng)熱插拔緩沖等等。


  I2C總線的使用注意事項(xiàng)

  I2C總線不支持多級(jí)主機(jī),只支持單級(jí),只有一個(gè)主機(jī)可以激活總線,這個(gè)主機(jī)負(fù)責(zé)控制和管理,總線的數(shù)據(jù)傳輸,多個(gè)主機(jī)存在時(shí),只能有一個(gè)處于激活狀態(tài),其他主機(jī)要進(jìn)行數(shù)據(jù)通信時(shí),必須先通知當(dāng)前主機(jī)放權(quán),再等待放權(quán)成功后才能激活。

  I2C總線只支持先進(jìn)先出等單向數(shù)據(jù)傳輸,不支持雙向數(shù)據(jù)傳輸和多級(jí)傳輸。

  主機(jī)要保證在總線上傳輸?shù)臄?shù)據(jù)字節(jié)不能超過(guò)1024字節(jié)。

  在I2C總線中,主機(jī)只能改變數(shù)據(jù)傳輸?shù)乃俣?,從機(jī)只能接受主機(jī)傳輸?shù)臄?shù)據(jù)速度。

  如果使用多根I2C總線時(shí),可以設(shè)置不同的總線地址來(lái)辨別不同的從機(jī)和主機(jī),不同總線之間應(yīng)盡量避免長(zhǎng)度和信號(hào)強(qiáng)度兩者可能存在差異。如果需要連接多根I2C總線,就需要使用I2C總線糾錯(cuò)技術(shù),確保數(shù)據(jù)傳輸?shù)恼_性。

 

  • XILINX賽靈思 XC7K160T-2FBG484E
  • 賽靈思(XILINX)作為行業(yè)的領(lǐng)軍企業(yè),其推出的 XC7K160T-2FBG484E 更是一款備受矚目的產(chǎn)品。XC7K160T-2FBG484E 屬于賽靈思 7 系列 FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列),具有強(qiáng)大的性能和豐富的功能。
    2024-09-25 186次
  • XILINX賽靈思 XCKU085-2FLVA1517E
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯器件供應(yīng)商,其推出的 XCKU085-2FLVA1517E 以卓越的性能和豐富的功能,成為眾多電子工程師和設(shè)計(jì)師的首選。XCKU085-2FLVA1517E 屬于賽靈思 UltraScale 架構(gòu)系列產(chǎn)品,采用先進(jìn)的 20 納米工藝技術(shù)制造。這一工藝不僅帶來(lái)了更高的性能,還實(shí)現(xiàn)了更低的功耗,為各種復(fù)雜的電子系統(tǒng)設(shè)計(jì)提供了理想的解決方案。
    2024-09-25 164次
  • XILINX賽靈思 XCKU060-1FFVA1517C
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯解決方案供應(yīng)商,其 XCKU060-1FFVA1517C 更是一款備受矚目的產(chǎn)品。XCKU060-1FFVA1517C 屬于賽靈思 UltraScale 架構(gòu)系列,采用了先進(jìn)的 16 納米 FinFET 工藝技術(shù)。這一工藝帶來(lái)了諸多優(yōu)勢(shì),如更高的性能、更低的功耗以及更小的芯片尺寸。
    2024-09-25 182次
  • XILINX賽靈思 XCKU060-2FFVA1517E
  • 賽靈思(XILINX)作為行業(yè)的領(lǐng)軍企業(yè),其推出的 XCKU060-2FFVA1517E 更是一款備受矚目的產(chǎn)品。XCKU060-2FFVA1517E 屬于賽靈思 UltraScale 架構(gòu)系列的 FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)。它融合了先進(jìn)的技術(shù)和強(qiáng)大的性能,為各種復(fù)雜的應(yīng)用場(chǎng)景提供了高度靈活且可靠的解決方案。
    2024-09-25 151次
  • XILINX賽靈思 XC7Z035-3FFG676E
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯解決方案供應(yīng)商,其 XC7Z035-3FFG676E 更是一款備受矚目的產(chǎn)品。XC7Z035-3FFG676E 屬于賽靈思 Zynq - 7000 系列,該系列將處理器系統(tǒng)(PS)和可編程邏輯(PL)完美結(jié)合,為用戶(hù)提供了高度靈活的解決方案。這款器件采用了先進(jìn)的 28 納米工藝技術(shù),在性能、功耗和成本之間實(shí)現(xiàn)了出色的平衡。
    2024-09-25 154次

    萬(wàn)聯(lián)芯微信公眾號(hào)

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺(tái)
    關(guān)注公眾號(hào),優(yōu)惠活動(dòng)早知道!
    10s
    溫馨提示:
    訂單商品問(wèn)題請(qǐng)移至我的售后服務(wù)提交售后申請(qǐng),其他需投訴問(wèn)題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)
    返回頂部