曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

什么是IIC協(xié)議

汽車電子技術(shù) ? 來源:嵌入式之入坑筆記 ? 作者:嵌入式之入坑筆記 ? 2023-02-10 10:53 ? 次閱讀

1、IIC協(xié)議的誕生

IIC協(xié)議最早1982年由飛利浦公司設(shè)計開發(fā),是一種兩線制(SDA + SCL)的串行通行方式,提供了主從機(jī)之間通行的一種方案,在今天也是被廣泛的應(yīng)用在很多的產(chǎn)品設(shè)備上。

    一個使用IIC協(xié)議進(jìn)行通信的設(shè)備,它既可以作為主機(jī)又可以作為從機(jī)(支持多主多從),并且它是一種半雙工的通信方式。

IIC可以支持的通信速率范圍較大,可以很好的滿足多種設(shè)備的不同的通信速度的要求,它支持的速率有如下幾個:

1)普通模式(100kHz即100kbps)

2)快速模式(Fm)(400kHz)

3)快速模式+(Fs+)(1MHz)

4)高速模式(Hs)(3.4MHz)

5)超高速模式(UFm)(5MHz)

2、IIC總線的術(shù)語說明

圖片

3、SDL 線和 SCL線

IIC設(shè)備有兩條接口線:串行數(shù)據(jù) SDA 線和串行時鐘 SCL 線。

    連接到IIC總線上的設(shè)備通過這兩根線互相傳遞信息,SDA 和 SCL 都是雙向線,可以互相之間進(jìn)行信息的交互,但是是一種同步半雙工的通信方式,同一時刻只能有一個方向進(jìn)行數(shù)據(jù)的操作,不能同時進(jìn)行。

IIC設(shè)備上的兩根通信線一般示意如下:

圖片

4、IIC總線協(xié)議

圖片

4.1、IIC總線的起始信號

IIC總線發(fā)送啟動信號的時序如圖:

圖片

發(fā)送啟動信號時,時鐘線SCL需要穩(wěn)定的保持在高電位,SDA由高電位變化為低電位。啟動信號發(fā)送完成之后就可以進(jìn)行數(shù)據(jù)的發(fā)送了。

    如果在一次通信過程中,有兩臺以上的設(shè)備同時發(fā)出了起始信號,都希望獲得總線控制權(quán)的話,那么第一個發(fā)出起始信號的設(shè)備將獲得總線控制權(quán),作為主設(shè)備開始傳輸數(shù)據(jù)。

注意:起始信號由主機(jī)負(fù)責(zé)產(chǎn)生。

4.2、停止信號

IIC總線發(fā)送停止信號的時序如圖:

圖片

停止信號是在時鐘線SCL為高電位的時候,數(shù)據(jù)線SDA由低電平變化為高電平。停止信號一般是在通信完成之后或者通信失敗退出之后發(fā)送的。

注意:停止信號由主機(jī)負(fù)責(zé)產(chǎn)生。

4.3、數(shù)據(jù)傳輸與有效性

IIC數(shù)據(jù)傳輸?shù)膮f(xié)議如下:

圖片

數(shù)據(jù)的傳輸是在發(fā)送完成了啟動信號之后便可以進(jìn)行數(shù)據(jù)的傳輸了。

    IIC協(xié)議要求在時鐘信號SCL為高電位的期間,數(shù)據(jù)線SDA上的數(shù)據(jù)要保持穩(wěn)定,不能發(fā)生變化(上圖中1的位置)。只有在時鐘信號SCL電位變低的時候,數(shù)據(jù)線SDA上的電平狀態(tài)才能發(fā)生跳變。

    每一個數(shù)據(jù)的bit位傳輸需要一個時鐘脈沖,一次傳輸最多是8bit。

一個完整的傳輸過程的通信時序如圖:

圖片

通信開始時,最開始發(fā)送的都是地址幀。比如,一個7Bit的地址,首先發(fā)出的是最高位,即讀寫位(1-讀,0-寫),用于指示是讀操作還是寫操作。

     幀的第9位是 **應(yīng)答位(ACK/NACK)** 。所有幀(數(shù)據(jù)或地址)都是一樣的。一旦發(fā)送幀的前8位,接收設(shè)備就可以控制數(shù)據(jù)線SDA。如果接收設(shè)備在第9個時鐘脈沖沒有將SDA線拉低進(jìn)行應(yīng)答,則可能是接收設(shè)備沒有接收到數(shù)據(jù),或者出現(xiàn)錯誤。在這種情況下,主機(jī)需要決定該做什么樣的處理(一般考慮重發(fā)或者退出)。

    注意:SCL時鐘信號由主機(jī)負(fù)責(zé)產(chǎn)生。數(shù)據(jù)的發(fā)送是高位先發(fā)的!

4.4、總線的仲裁

IIC總線支持多個主機(jī)同時在總線上發(fā)送數(shù)據(jù),但是同一時刻只能有一個主機(jī)傳送數(shù)據(jù)。因此必須要通過某些手段來決定哪個主機(jī)獲得總線的控制權(quán),其它的沒有獲得主機(jī)控制權(quán)的設(shè)備就只能進(jìn)行等待,直到獲得總線控制權(quán)才能進(jìn)行數(shù)據(jù)的傳輸。

    IIC總線仲裁的方式有兩種:時鐘同步、仲裁。

4.4.1、時鐘同步

時鐘同步是通過時鐘線SCL來實現(xiàn)的。在時鐘信號SCL由高到低的切換過程中,IIC器件會開始數(shù)自身的低電平周期。當(dāng)主器件的時鐘信號變?yōu)榈碗娖降臅r候,它會使SCL線保持這個電平狀態(tài)直到達(dá)到高電平。假如這個時候有另外一個器件的時鐘依然是處于低電平的周期,這個時鐘的低到高的變化不會改變SCL線的狀態(tài)。

    因此,SCL線被有著最長的低電平周期的器件占有總線的控制權(quán),而這個時候低電平周期短的器件會進(jìn)入高電平的等待狀態(tài),直到當(dāng)前的主器件釋放總線控制權(quán),自身能夠獲得總線控制權(quán)才會改變這些狀態(tài)。

時鐘同步的時序示意圖如下:

圖片

4.4.2、仲裁

仲裁和同步一樣,都是為了解決多主機(jī)情況下的總線控制沖突。仲裁的過程與從機(jī)無關(guān)。

    只有在總線空閑的時候主機(jī)才可以啟動傳輸。兩個主機(jī)可能在比較短的時間內(nèi)在總線上同時產(chǎn)生一個有效的起始信號,這種情況下需要仲裁來決定由哪個主機(jī)占有總線控制權(quán)來完成數(shù)據(jù)傳輸。

    仲裁是逐位進(jìn)行,在每一位數(shù)據(jù)的仲裁期間,當(dāng)時鐘線SCL為高電平時,每個主機(jī)都檢查數(shù)據(jù)總線SDA上的電平是否和自己要發(fā)送的相同。

    這個過程需要持續(xù)很多位。理論上講,如果兩個主機(jī)所傳輸?shù)膬?nèi)容完全相同,那么他們能夠成功傳輸而不出現(xiàn)錯誤。但是,如果一個主機(jī)發(fā)送高電平但檢測到SDA總線上的電平為低時,則認(rèn)為自己仲裁失敗并關(guān)閉自己的SDA數(shù)據(jù)線上的數(shù)據(jù)傳輸,而另一個主機(jī)則繼續(xù)完成自己的傳輸。

IIC總線仲裁的時序示意圖如下:

圖片

5、IIC通信的流程

每個I2C設(shè)備都通過唯一的器件地址進(jìn)行識別,根據(jù)設(shè)備功能,他們既可以是發(fā)送器也可作為接收器。通信的流程如下:

    1)IIC從機(jī)檢測到IIC總線上的起始信號之后,就開始從總線上接收地址,之后會把從總線接收到的地址和自身的器件地址(通過軟件編程)進(jìn)行比較,一旦兩個地址相同,IIC從機(jī)將發(fā)送一個確認(rèn)應(yīng)答(ACK),并響應(yīng)總線的后續(xù)命令;

    2)發(fā)送或接收數(shù)據(jù);

    3)發(fā)送或接收完成之后,在收到應(yīng)答信號ACK之后結(jié)束數(shù)據(jù)的傳輸。

此外,如果軟件開啟了廣播呼叫,則IIC從機(jī)始終對一個廣播地址 (0x00)發(fā)送確認(rèn)應(yīng)答。I2C模塊始終支持7位和10位的地址。

5.1、有關(guān)地址幀的發(fā)送

7 位地址的 IIC 通訊流程

圖片

7Bit地址的通信中,開始信號之后的第一幀是地址幀+讀寫位,剛好是8Bit的數(shù)據(jù),直接發(fā)送,等待從設(shè)備應(yīng)答之后便可以進(jìn)行數(shù)據(jù)的通信。

10 位地址的 IIC 通訊流程(主機(jī)發(fā)送)

圖片

對于10-bit地的址設(shè)備,需要使用兩個幀來傳輸10Bit的slave地址。

    第一個幀的前5bit固定為b11110xx,后接slave地址的高2位,第8位仍然是讀寫(R/W)位,接著是一個ACK位,由于總線上可能有多個10 Bit 從設(shè)備地址的高2bit相同,因此這個ACK可能由多有slave設(shè)備返回。

    第二個幀緊接著第一幀發(fā)送,包含slave地址的低8位(7:0),接著該地址的slave回復(fù)一個ACK(或NACK)。

    注意:10-bit地址的設(shè)備和7-bit地址的設(shè)備在總線中是可以并存的,因為7-bit地址的高5位不可能是b11110。

10 位地址的 I2C 通訊流程(主機(jī)接收)

圖片

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

    關(guān)注

    0

    文章

    124

    瀏覽量

    28665
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    240

    瀏覽量

    17434
  • IIC協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    4033
  • 串行通行
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1178
收藏 人收藏

    評論

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

    FPGA實現(xiàn)IIC協(xié)議的設(shè)計

    今天給大家?guī)淼氖?b class='flag-5'>IIC通信,IIC協(xié)議應(yīng)用非常廣泛,例如與MPU6050進(jìn)行通信,配置OV5640攝像頭、驅(qū)動OLED屏幕等等,都需要使用到IIC
    的頭像 發(fā)表于 03-04 10:49 ?1557次閱讀
    FPGA實現(xiàn)<b class='flag-5'>IIC</b><b class='flag-5'>協(xié)議</b>的設(shè)計

    IIC協(xié)議顯示屏

    我現(xiàn)有國外產(chǎn)品,他的顯示是通過IIC協(xié)議發(fā)送到128*64的顯示評上的,我怎么才能把傳送來的數(shù)據(jù)提取出來呢如果有大??梢越鉀Q,愿意有償合作。電話:***
    發(fā)表于 03-15 10:45

    STM32的IIC協(xié)議

    今天在使用STM32讀取6050數(shù)據(jù)時發(fā)現(xiàn)了一個問題,為什么戰(zhàn)艦,野火的視頻中都使用模擬的IIC協(xié)議,而不使用自動的IIC協(xié)議???經(jīng)過多方查詢了解到STM32為了規(guī)避飛利浦專利的問題
    發(fā)表于 11-20 22:09

    關(guān)于IIC協(xié)議

    IIC協(xié)議在開始信號產(chǎn)生后,發(fā)送了一個數(shù)據(jù)也產(chǎn)生了應(yīng)答,如果沒有結(jié)束信號又直接開始信號這樣可以嗎?
    發(fā)表于 04-07 13:34

    IIC協(xié)議分析

    IIC協(xié)議分析
    發(fā)表于 04-30 15:49

    STM32的IIC協(xié)議簡介

    文章目錄(一)IIC協(xié)議簡介(二)物理層和協(xié)議層簡介(三)IIC物理層:3.1、物理層的特點(四)IIC
    發(fā)表于 01-05 06:13

    IIC協(xié)議的相關(guān)資料推薦

    STM32 IIC實驗講解,從入門到放棄。文章目錄STM32 IIC實驗講解,從入門到放棄。前言一、IICIIC是什么?IIC協(xié)議二、代碼部分IIC
    發(fā)表于 01-17 08:12

    FPGA IIC協(xié)議的相關(guān)資料分享

    FPGA IIC協(xié)議
    發(fā)表于 01-18 07:51

    起始信號和停止信號在IIC協(xié)議中是如何規(guī)定的

    什么是IIC協(xié)議?起始信號和停止信號在IIC協(xié)議中是如何規(guī)定的?
    發(fā)表于 01-24 06:54

    IIC協(xié)議軟件模擬方法

    關(guān)于iic協(xié)議和對AT24C16進(jìn)行讀寫數(shù)據(jù)的代碼解讀認(rèn)識IIC協(xié)議IIC協(xié)議軟件模擬方法功能快
    發(fā)表于 02-09 07:00

    IIC協(xié)議的相關(guān)資料下載

    關(guān)于MPU6050學(xué)習(xí)的一些總結(jié)之二IIC協(xié)議前言一、IIC總線前言在查閱并了解了MPU6050的芯片手冊后,已經(jīng)對MPU6050有了大致的了解。那么接下來如何使MPU6050工作并且讀取內(nèi)部寄存器
    發(fā)表于 02-10 06:02

    IIC協(xié)議是如何進(jìn)行通信的呢

    IIC協(xié)議是什么?IIC協(xié)議用來干什么?IIC協(xié)議是如何進(jìn)行通信的呢?
    發(fā)表于 02-10 07:07

    如何使用代碼實現(xiàn)的IIC協(xié)議

    1. 綜述  由上篇博客可知道IIC協(xié)議如何用代碼實現(xiàn),本篇博客就不涉及協(xié)議內(nèi)容,只講解如何使用?! ”敬蔚膶嶒瀭鞲袨椋篋S3231(時鐘模塊),對于時鐘模塊的具體信息我也就不多介紹,大家可以自行度
    發(fā)表于 02-21 06:36

    IIC協(xié)議超詳細(xì)解釋(適合小白入門)

    以下內(nèi)容,將解釋以下幾個問題1.IIC協(xié)議是什么?2.IIC協(xié)議用來干什么?3.IIC協(xié)議的通信
    發(fā)表于 12-07 14:21 ?5次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>協(xié)議</b>超詳細(xì)解釋(適合小白入門)

    MSP430F5529軟件模擬IIC協(xié)議

    MSP430F5529軟件模擬IIC協(xié)議
    發(fā)表于 11-24 16:35 ?0次下載