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

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

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

一文了解IIC總線

微云疏影 ? 來源:一口Linux ? 作者:深漂趙工 ? 2022-04-11 15:07 ? 次閱讀

在生活中,經(jīng)常會碰到設(shè)備掉電的情況,像手機(jī),智能手環(huán),電腦等等;但是存儲的東西不會丟失,比如電話號碼,短信消息,記事本,微信,QQ信息等等均會被保存下來;恢復(fù)出廠設(shè)置后,這些東西才會消失;這是因?yàn)檫@些設(shè)備中都有一個“掉電保存”的器件,比如硬盤,U盤等等,他們的特點(diǎn)就是沒電了之后,存在他們上面的信息不會丟失,就像人的大腦,有記憶功能。

工業(yè)領(lǐng)域也非常常見這種器件,一般有EEPROM和FLASH。它倆共同點(diǎn)是可讀可寫,斷電保存;不同點(diǎn)是EEPROM寫之前不用擦除,而FLASH寫之前一定要擦除,否則寫不成功;EEPROM一般都使用IIC總線來通信,而FLASH一般是使用SPI總線。

poYBAGJT072AHAkGAAFg71s02nw643.jpg

EEPROM存儲器系統(tǒng)架構(gòu)圖

今天筆者就和大家聊一聊IIC總線。

位傳輸

IIC總線是由飛利浦(Philips)公司開發(fā)的一種雙向二線制同步串行總線,實(shí)現(xiàn)有效的IC間的控制,它只需要兩根線(SDA和SCL)即可在連接于總線上的器件之間傳送信息。

IIC總線在傳輸數(shù)據(jù)都是按照bit來傳送。SCL為時鐘線,SDA為數(shù)據(jù)線;在SCL時鐘線為高電平時,SDA數(shù)據(jù)線上的電平不允許被修改,SCL時鐘線為低電平時,SDA數(shù)據(jù)線上的電平可為高/低。

pYYBAGJT072AYMVtAAB8dSk5Wjw331.jpg

IIC總線的位傳輸

起始條件:SCL為高電平時,SDA由高電平向低電平切換;表示開始傳送數(shù)據(jù)。

停止條件:SCL為高電平時,SDA由低電平向高電平跳變;表示結(jié)束傳送數(shù)據(jù)。

空閑條件:IIC總線的SDA和SCL兩條信號線同時處于高電平時;表示空閑狀態(tài)。

poYBAGJT072AN4rtAAB4CMk0lHc924.jpg

?p?起始和停止條件

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

字節(jié)傳輸

發(fā)送數(shù)據(jù)時,由主機(jī)先發(fā)送一個起始信號,再將SDA信號切換為輸出模式,然后將8位數(shù)據(jù)依次由高到低發(fā)送出去;發(fā)送完成后,主機(jī)將SDA信號切換為輸入模式,等待叢機(jī)回應(yīng)ACK或NAK;再發(fā)下一筆數(shù)據(jù)

poYBAGJT076AB1BYAAFxbPQLeis422.jpg

IIC總線數(shù)據(jù)傳輸

叢機(jī)地址

在IIC總線系統(tǒng)中,每個設(shè)備都有它的固定地址,一般由芯片的A0,A1和A2決定。叢機(jī)地址字節(jié)由七位地址位(D7-D1位)和一位方向位(為D0位)組成。

器件地址的D7-D4一般都是被廠家固定了為1111,余下的D3,D2和D1連接到芯片的A2,A1和A0決定;D0為0x00表示寫,D0為0x01表示讀。大家看例程都是些0xA0和0xA1就是這個原因。

pYYBAGJT076ADAkxAAAYW5MuP_0108.jpg

EEPROM的器件地址

讀寫過程

寫數(shù)據(jù)過程:

1.主機(jī)發(fā)送IIC總線停止信號,防止總線忙寫數(shù)據(jù)失敗

2.主機(jī)發(fā)送IIC總線復(fù)位信號,確保寫數(shù)據(jù)之前總線處于空閑狀態(tài)

3.主機(jī)發(fā)送IIC總線開始信號,啟動一次數(shù)據(jù)的寫入

4.主機(jī)發(fā)送IIC叢機(jī)地址和寫模式(W/R=0)信號,并且等待一個叢機(jī)的應(yīng)答信號

5.主機(jī)接收到ACK的應(yīng)答信號后,開始多個字節(jié)的寫入,每寫完一個字節(jié)需要等待一個叢機(jī)的應(yīng)答信號

6.主機(jī)接收到ACK的應(yīng)答信號后,發(fā)送IIC總線停止信號,確保總線處于空閑狀態(tài)

讀數(shù)據(jù)過程:

1.主機(jī)發(fā)送IIC總線停止信號,防止總線忙寫數(shù)據(jù)失敗

2.主機(jī)發(fā)送IIC總線復(fù)位信號,確保讀數(shù)據(jù)之前總線處于空閑狀態(tài)

3.主機(jī)發(fā)送IIC總線開始信號,啟動一次數(shù)據(jù)讀取

4.主機(jī)發(fā)送IIC叢機(jī)地址和讀模式(W/R=1)信號,并且等待一個叢機(jī)的應(yīng)答信號

5.主機(jī)接收到ACK的應(yīng)答信號后,開始多個字節(jié)的讀取,每讀完一個字節(jié)需要給叢機(jī)發(fā)送一個ACK應(yīng)答信號

6.主機(jī)接收到ACK的應(yīng)答信號后,發(fā)送IIC總線停止信號,確??偩€處于空閑狀態(tài)

poYBAGJT076ANqBjAAD0IMJAjcI300.jpg

主機(jī)讀/寫數(shù)據(jù)過程

結(jié)語

IIC總線在嵌入式應(yīng)用中非常廣泛,基本上所有的電力電子設(shè)備都會用到這個總線;筆者根據(jù)自身多年的工作經(jīng)驗(yàn),記錄下了我對它的理解,如果有寫的不對,希望大家能多多指出,今天的I2C總線就先寫到這里,希望大家喜歡。

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

    關(guān)注

    10

    文章

    2898

    瀏覽量

    88261
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1030

    瀏覽量

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

    關(guān)注

    28

    文章

    1495

    瀏覽量

    124202
收藏 人收藏

    評論

    相關(guān)推薦

    IIC總線簡介

     IIC(Inter-Integrated Circuit)是個多主從的串行總線,又叫I2C,是由飛利浦公司發(fā)明的通訊總線,屬于半雙工同步傳輸類型
    發(fā)表于 11-10 16:07 ?2704次閱讀
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>簡介

    詳解IIC總線

    IIC(Inter-Integrated Circuit)集成電路總線,它是種兩線式串行通信總線,又叫I2C,使用多主從架構(gòu),由飛利浦公司在1980年推出的。多用于主控制器和從器件間
    發(fā)表于 06-07 15:38 ?9976次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    詳解IIC總線

    IIC(Inter-Integrated Circuit)是個多主從的串行總線,又叫I2C,是由飛利浦公司發(fā)明的通訊總線,屬于半雙工同步傳輸類型
    發(fā)表于 09-12 11:15 ?2330次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    介紹IIC總線仲裁

    IIC總線
    電子電器
    發(fā)布于 :2023年02月07日 11:24:43

    什么是IIC總線

    - 什么是IIC總線IIC總線是同步通信的種特殊形式,具有接線口少、控制簡單、器件封裝形式小、通信速率高等特點(diǎn)。在主從通信中,可以有多個
    發(fā)表于 01-24 08:27

    IIC總線接口學(xué)習(xí)

    在多主設(shè)備IIC 總線模式下,多個S3C2440A 微處理器可以從從屬設(shè)備接收或發(fā)送串行數(shù)據(jù)。主設(shè)備S3C2440A 可以初始化和終止個基于IIC
    發(fā)表于 04-27 15:31 ?61次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>接口學(xué)習(xí)

    LESSON8_IIC總線工作原理

    LESSON8_IIC總線協(xié)議 LESSON8_IIC總線協(xié)議
    發(fā)表于 02-18 18:23 ?0次下載

    解讀IIC總線的FPGA實(shí)現(xiàn)原理及過程

    本文首先介紹了IIC總線概念和IIC總線硬件結(jié)構(gòu),其次介紹了IIC總線典型應(yīng)用,最后詳細(xì)介紹了
    發(fā)表于 05-31 10:56 ?6750次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解讀<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>的FPGA實(shí)現(xiàn)原理及過程

    MCU_IIC總線

    MCU_IIC總線
    發(fā)表于 11-16 09:36 ?20次下載
    MCU_<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    【51單片機(jī)】IIC總線

    什么是IIC 總線?IIC是Inter IC Bus的縮寫,是由PHLIPS提出的種串行總線,具備多主機(jī)系統(tǒng)所需要的包括
    發(fā)表于 11-23 16:20 ?14次下載
    【51單片機(jī)】<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    IIC通信總線尋址

    IIC的使用IIC總線簡介IIC通信時序IIC總線尋址IIC
    發(fā)表于 12-04 16:06 ?14次下載
    <b class='flag-5'>IIC</b>通信<b class='flag-5'>總線</b>尋址

    IIC總線學(xué)習(xí)筆記

    IIC總線學(xué)習(xí)筆記(2020.11.8)文章目錄*IIC總線學(xué)習(xí)筆記(2020.11.8)*、I^2^C
    發(fā)表于 01-17 13:33 ?6次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>學(xué)習(xí)筆記

    帶你迅速了解常用串行總線IIC協(xié)議1

    集成電路總線** (Inter-Intergrated Circuit),通常稱作IICBUS,簡稱為IIC,是種采用多主從結(jié)構(gòu)的串行通信總線I
    的頭像 發(fā)表于 01-21 17:19 ?1947次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>帶你迅速<b class='flag-5'>了解</b>常用串行<b class='flag-5'>總線</b>之<b class='flag-5'>IIC</b>協(xié)議1

    帶你迅速了解常用串行總線IIC協(xié)議2

    集成電路總線** (Inter-Intergrated Circuit),通常稱作IICBUS,簡稱為IIC,是種采用多主從結(jié)構(gòu)的串行通信總線。I
    的頭像 發(fā)表于 01-21 17:20 ?1097次閱讀

    帶你迅速了解常用串行總線IIC協(xié)議3

    集成電路總線** (Inter-Intergrated Circuit),通常稱作IICBUS,簡稱為IIC,是種采用多主從結(jié)構(gòu)的串行通信總線I
    的頭像 發(fā)表于 01-21 17:20 ?1123次閱讀