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

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

3天內不再提示

解析IIC專題原理及應用篇(一)

FPGA之家 ? 來源:CSDN技術社區(qū) ? 作者:Angelia_cfq ? 2021-06-01 11:43 ? 次閱讀

一、操作

1.1、系統的概述

I2C系統使用串行數據線(SDA)和串行時鐘線(SCL)進行數據傳輸。連接到這兩個信號的所有設備必須具有漏極開路或集電極開路輸出。這兩條線上的邏輯“與”功能都通過外部上拉電阻器來實現。

數據在主機和從機之間以字節(jié)為單位同步傳輸到SDA線上。每個數據字節(jié)為8位長。每個數據位都有一個SCL時鐘脈沖,并且首先發(fā)送MSB。每個傳送的字節(jié)后都有一個應答位。在SCL的高電平期間對每個位進行采樣;因此,只能在SCL的低電平期間更改SDA線路電平,并且必須在SCL的高電平期間保持穩(wěn)定。若SCL為高電平時,SDA線上存在跳變則被解釋為命令(請參見START和STOP信號)。

1.2、IIC協議

從宏觀的角度講,IIC協議可以包含以下四個部分:

1、開始信號的產生(START)

2、從機地址傳輸

3、數據傳輸

4、停止信號產生(STOP)

1.2.1 開始信號(START)

當總線空閑/就緒時,這意味著沒有主機設備正在使用總線(SCL和SDA線均為高電平),主機可以通過發(fā)送START信號來啟動傳輸。START信號(通常稱為STA-bit)定義為:SCL為高電平時,SDA從高到低的跳變。START信號表示新數據傳輸的開始。Repeated START是一種啟動信號,但沒有先產生一個停止信號。主機使用這種方法在不釋放總線的情況下,以不同的傳輸方式(例如,從寫入設備到從設備讀取)與另一個從機或同一從機通信。

當命令寄存器中的STA-bit置1且RD或WR位置1時,內核產生一個START信號。根據SCL線的當前狀態(tài),將生成START或Repeated START。

1.2.2 地址線傳輸

在START信號之后,主機立即傳送的數據的第一個字節(jié)是從機地址。這是一個7位的調用地址,后跟RW位(7address+1RW)。RW位向從機發(fā)送數據傳輸方向信號。一個系統中的兩個從機不能具有相同的地址。只有地址與主機發(fā)送的地址匹配的從機會通過在第9個SCL時鐘周期將SDA拉為低電平來返回一個應答位來做出響應。(從機拉低SDA作為ACK)

內核將從地址傳輸視為寫操作。將從設備的地址存儲在發(fā)送寄存器中,并將WR位置1。然后,內核將在總線上傳輸從機地址。

1.2.3 數據傳輸

一旦成功完成從機尋址,就可以按照主機發(fā)送的RW位指定的方向逐字節(jié)進行數據傳輸。在第9個SCL時鐘周期中,每個傳輸的字節(jié)后都有一個應答位。如果從機發(fā)出“無應答”信號,則主機可以產生一個STOP信號來中止數據傳輸,或者產生一個Repeated START信號并開始一個新的傳輸周期。

如果作為接收設備的主機未應答從機,則從機釋放SDA線供主機產生STOP或Repeated START信號。

要將數據寫入從機,將要發(fā)送的數據存儲在發(fā)送寄存器中,并將WR位置1。要從從機讀取數據,請將RD位置1。在傳輸過程中,核心設置了TIP標志(Transfer in progress),指示正在進行傳輸。傳輸完成后,將重置TIP標志,設置IF標志(Interrupt Flag),并在使能時產生中斷。設置IF標志后,接收寄存器包含有效數據。當TIP標志復位時,用戶可以發(fā)出新的寫或讀命令。

1.2.4 停止信號

主機可以通過產生一個STOP信號來終止通信。STOP信號(通常稱為P位)定義為SCL為邏輯1時SDA從低到高的跳變。

1.3、仲裁過程

1.3.1 時鐘同步化

I2C總線是真正的多主機總線,可以在其上連接多個主機。如果兩個或多個主機同時嘗試控制總線,則時鐘同步過程將確定總線時鐘。由于I2C信號采用“線與”連接,從高到低的跳變會影響連接到總線的所有設備。因此,SCL線上從高電平到低電平的轉換會導致所有相關設備都將其低電平周期計算在內。一旦設備時鐘變低,它將使SCL線保持在該狀態(tài),直到達到時鐘高狀態(tài)為止。由于采用“線與”連接,因此SCL線將由具有最短低電平周期的設備保持低電平,并由具有最短高電平周期的設備保持高電平。

665fc762-c238-11eb-9e57-12bb97331649.png

1.3.2 時鐘伸展

從設備可以使用時鐘同步機制來降低傳輸比特率。主機將SCL拉低后,從機可以拉低SCL為所需的時間,然后釋放它。如果從機的SCL低電平周期大于主機的SCL低電平周期,則將延長所得到的SCL總線信號低電平周期,從而插入等待狀態(tài)。

編輯;jq

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

    關注

    11

    文章

    302

    瀏覽量

    38405
  • SDA
    SDA
    +關注

    關注

    0

    文章

    124

    瀏覽量

    28182
  • SCL
    SCL
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17115
  • MSB
    MSB
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8266

原文標題:IIC專題原理及應用篇(一)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    天合光能榮獲光伏組件回收專題等獎

    近日,工業(yè)和信息化部第二屆能源電子產業(yè)創(chuàng)新大賽太陽能光伏賽道決賽在山東臨沂隆重舉行。天合光能全回收再生光伏組件在眾多參數作品中脫穎而出,榮獲光伏組件回收專題等獎,也是該專題的最高獎項。
    的頭像 發(fā)表于 01-06 11:07 ?195次閱讀

    深度解析 4G模組GPIO編程技巧

    本文將解析4G模組GPIO編程技巧,從概述、軟硬件環(huán)境準備、示例等詳細道來:
    的頭像 發(fā)表于 11-20 23:08 ?244次閱讀
    深度<b class='flag-5'>解析</b>  4G模組GPIO編程技巧<b class='flag-5'>篇</b>

    愛芯元智亮相IIC Shenzhen 2024

    近日,國際集成電路展覽會暨研討會(IIC Shenzhen 2024)在深圳福田會展中心拉開帷幕。作為業(yè)界最具影響力的系統設計盛會之IIC匯聚了國內外電子產業(yè)領袖、管理人員、設計精英及決策者。在
    的頭像 發(fā)表于 11-07 15:41 ?390次閱讀

    MCU通過IIC口控制TLV320AIC3204,請問MCU的IIC接口和TLV320AIC3204的IIC接口對接時需要電平轉換嗎?

    MCU通過IIC口控制TLV320AIC3204,該芯片的IOVDD接1.8V,MCU的IIC上拉電平是3.3V,請問MCU的IIC接口和TLV320AIC3204的IIC接口對接時
    發(fā)表于 10-30 06:02

    使用TAS5805M作為音頻功放,但是初始化的IIC驅動直不成功,求助IIC的底層驅動代碼

    現有款產品使用TAS5805M作為音頻功放,但是初始化的IIC驅動直不成功,求助IIC的底層驅動代碼,使用單片機為ST的030。另
    發(fā)表于 10-09 09:20

    IIC信號線需要增加上拉電阻,是因為IIC的IO是什么

    IIC通信中扮演著至關重要的角色,而上拉電阻的加入則是實現這種通信方式有效性和可靠性的關鍵。以下是對此現象的介紹: 、IIC通信與開漏輸出 IIC通信協議是
    的頭像 發(fā)表于 10-06 15:50 ?914次閱讀

    IIC通訊協議解析

    概述 IIC(Inter-Integrated Circuit)其實是IICBus簡稱,所以中文應該叫集成電路總線,它是種串行通信總線,使用多主從架構,由飛利浦公司在1980年代為了讓主板、嵌入式
    發(fā)表于 09-12 16:09

    人工智能專題課System+for+AI.part1

    人工智能專題課System+for+AI.part1教學教程。
    發(fā)表于 07-18 11:37 ?1次下載

    iic通訊的ardunio的文件下載

    里面很多iic通訊的ardunio的文件
    發(fā)表于 07-05 10:55 ?1次下載

    示波器如何捕獲和分析IIC波形?

    示波器捕獲和分析IIC(集成電路間通信)波形是項重要的電子測量任務,特別是在嵌入式系統和微控制器的調試過程中。
    的頭像 發(fā)表于 05-20 15:08 ?3318次閱讀

    電壓敏學術研討委員會暨學習交流專題會議圓滿召開

    專題會議在杭州良渚希爾頓歡朋酒店隆重召開。電壓敏委員會常委鴻志電子董事長林生、電壓敏委員會秘書長華格電子總經理黃章慶為與會人員帶來了場關于《解讀AEC-Q200無源元件應力測試認證》的專題報告,深入
    的頭像 發(fā)表于 05-06 15:47 ?446次閱讀
    電壓敏學術研討委員會暨學習交流<b class='flag-5'>專題</b>會議圓滿召開

    巨霖科技將亮相IIC Shanghai并發(fā)表主題演講

    活動預告∣巨霖科技將亮相IIC Shanghai 并發(fā)表主題演講
    的頭像 發(fā)表于 03-27 09:50 ?436次閱讀
    巨霖科技將亮相<b class='flag-5'>IIC</b> Shanghai并發(fā)表主題演講

    FPGA實現IIC協議的設計

    今天給大家?guī)淼氖?b class='flag-5'>IIC通信,IIC協議應用非常廣泛,例如與MPU6050進行通信,配置OV5640攝像頭、驅動OLED屏幕等等,都需要使用到IIC協議,所以掌握它是非常必要的,廢話不多說,接著往下看。
    的頭像 發(fā)表于 03-04 10:49 ?1318次閱讀
    FPGA實現<b class='flag-5'>IIC</b>協議的設計

    GD32 MCU碰到IIC總線卡死怎么辦?

    大家在使用MCU IIC通信時,若碰到設備復位或者總線干擾等情況,可能會導致IIC總線卡死,表現上總線上SDA或者SCL其中根線為低電平,IIC總線
    的頭像 發(fā)表于 02-24 09:46 ?3955次閱讀
    GD32 MCU碰到<b class='flag-5'>IIC</b>總線卡死怎么辦?

    IIC總線為什么是半雙工?

    IIC(Inter-Integrated Circuit)總線是種半雙工的串行通信接口。在I2C總線上,主設備和從設備之間的數據傳輸是采用半雙工模式進行的。這意味著主設備和從設備在不同的時間段內交替發(fā)送和接收數據。
    的頭像 發(fā)表于 02-02 16:37 ?4739次閱讀
    <b class='flag-5'>IIC</b>總線為什么是半雙工?