国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

通信教程03_I2C簡史 基礎原理及協議

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-02-05 13:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本教程由作者strongerHuang于2019年09月原創發布。

標簽:串口、 I2C通信

版權所有:禁止商用

申明:該文檔僅供個人學習使用,轉載請公眾號聯系作者授權。

1寫在前面

本打算先寫點UART相關內容,但UART基礎知識在前面第一篇文章都簡單寫過,也相信大家不陌生,這里就不再次贅述。

I2C是目前使用較多的一種總線,一般用于連接各種從設備,比如:EEPROM存儲器、溫濕度傳感器、角速度計等。

額外提一句,初入職場的人有必要學習了解下,掌握I2C算是最基本的技能。

2I2C簡史

1980年,飛利浦公司為了讓各種低速設備(飛利浦芯片)連接起來,就開始著手研發通信的總線。

1982年,原始版本,使用了100KHz通信速率,提供7位地址,將總線上的器件數量限制為112(有幾個保留地址)。

1992年,發布第一個規范,增加了400kHz的快速模式以及擴展的10位地址空間。

1998年,隨著技術的進步,通信速率要求越來越高,達到了高速3.4 MHz,再到后面升級至5MHz,同時使用差分信號以改進抗噪聲能力等。

I2C版本歷史:

額外說一下SMBus:

1995年,英特爾在I2C基礎上推出了一種變體稱為“系統管理總線”(SMBus)。SMBus是一種更嚴格控制的格式,旨在最大限度地提高PC主板上支持IC之間通信的可預測性。

SMBus之間最顯著的區別在于它將速度限制在10kHz至100kHz之間,而I2C則可以支持0kHz至5MHz的器件。

3I2C基礎內容

I2C:Inter-Integrated Circuit,字面意思是集成電路之間,是I2C Bus簡稱。

I2C只需要兩根電線,這兩根線最多可支持1008個從設備,實現同步串行通信。

與SPI不同的是,I2C可以支持多主機,多從機的總線。

3.1 I2C兩線信號

每個I2C總線由兩個信號組成:SCL時鐘信號,SDA數據信號。時鐘信號總是由當前總線主機產生。

與UART、SPI不同,I 2 C總線驅動器是開漏(不了解開漏的請自行百度),意思是它們可以將相應的信號線拉低,但不能將其驅動為高電平。

每條信號線上都有一個上拉電阻,當沒有器件將其置為低電平時,將信號恢復為高電平。

3.2 信號電平

通常,I2C總線信號電平5V、3.3V居多,如果總線上器件兼容這兩種電平,可以直接使用。

如果信號電壓相差很大(5V和2.5V),或者電平不兼容,就需要進行電平轉換才行。

4I2C協議

I2C對初學者來說,難點就在于理解其中協議,下面從幾個簡單角度說一下。

4.1 收發基本原理

I2C的兩個總線:SCL時鐘信號,SDA數據信號。SCL由主機產生,SDA由主機或者從機產生。

I2C是同步串行通信,同時它屬于半雙工,也就是說同一時間SDA只能由一個設備發送信號。

這樣,你就會發現,SDA上的信號(數據),有時候是主機的,有時候是從機的。

4.2 基本協議:7/10位地址

I2C支持7位地址和10位地址,消息主要分為兩種:地址和數據。

7位地址:

10位地址:

除了地址和數據,還有開始條件、停止條件、讀寫,以及應答信息(上圖小字描述)。

4.3 開始和停止

SDA數據線由高 -> 低 為總線開始條件;

SDA數據線由低 -> 高 為總線結束條件;

4.4 應答(ACK)和非應答(ACK)

應答和非應答發生在每個字節之后,是由接收方向發送方發出確認信號,表明“數據”已成功接收,并且可以繼續發送下一字節數據。

應答有很多種情況,初學者可以參考協議手冊,里面有詳細講述。

I2C協議手冊地址:

https://www.nxp.com/docs/en/user-guide/UM10204.pdf

我之前結合模擬I2C代碼講述I2C的文章:

更加深入理解I2C總線、協議及應用

5

說明

1.該文檔僅供個人學習使用,版權所有,禁止商用。

2.本文由我一個人編輯并整理,難免存在一些錯誤。

3.本文收錄于公眾號『嵌入式專欄』,關注微信公眾號回復【通信教程】即可查看全系列教程。

6最后

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

    關注

    28

    文章

    1092

    瀏覽量

    42150
  • 通信
    +關注

    關注

    18

    文章

    6391

    瀏覽量

    140037
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1556

    瀏覽量

    131215
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經討論了SPI通信和UART通信的基礎知識,現在讓我們討論本系列的最后一個協議,即集成電路間協議I2C)。如果您曾經構建
    的頭像 發表于 01-04 09:14 ?1623次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

    基于FPGA的I2C控制模塊設計

    I2C_WRITE_WDATA.v模塊實現I2C寫時序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發表于 12-26 09:48 ?4878次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設計

    基于FPGA的I2C通信協議設計

    I2C(Inter-Integrated Circuit)是一種由飛利浦半導體(現為恩智浦半導體)在1980年代初開發的同步、串行、半雙工的總線型通信協議。主要用于近距離(同一塊印刷電路板(PCB
    的頭像 發表于 12-26 09:44 ?6113次閱讀
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>通信協議</b>設計

    I2C的總線協議

    用狀態。 I2C 通信采用主從結構,并由主機發起和結束通信。主機通過發送 START 起始信號來發起通信,之后發送SLA+W/R 共 8bit 數據(其中,SLA 為 7bit 從機
    發表于 12-15 08:07

    I2C的缺點介紹

    上升時間變慢和潛在的信號衰減。對于長距離通信,其他協議,如 UART(通用異步接收器/發送器)或 SPI(串行外設接口)可能更合適。 速度限制: 雖然 I2C 支持不同的速度模式,但其高速模式(高達
    發表于 11-27 06:10

    SPI、I2CI2S、UART:通信協議解釋

    ? ? ? ? 在嵌入式開發中,最常用的幾種通信接口無非就是SPI、I2C、I2S、UART。名字看起來差不多,但應用場景和特性卻大不相同。為什么都叫串行通信,結構卻不一樣?為什么有的
    的頭像 發表于 11-18 10:53 ?534次閱讀

    SPI、I2C、I2S、UART:通信協議對比表

    在嵌入式開發中,最常用的幾種通信接口無非就是SPI、I2C、I2S、UART。名字看起來差不多,但應用場景和特性卻大不相同。很多初學者容易混淆:為什么都叫串行通信,結構卻不一樣?為什么
    的頭像 發表于 11-17 10:53 ?1725次閱讀
    SPI、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、UART:<b class='flag-5'>通信協議</b>對比表

    深入剖析I2C協議

    I2C是由Philips開發的簡單的雙向兩線總線,在深入淺出理解SPI協議中,我們區分了單工,半雙工,全雙工協議數據流向的區別,根據特征,I2C協議
    的頭像 發表于 08-21 15:10 ?3663次閱讀
    深入剖析<b class='flag-5'>I2C</b><b class='flag-5'>協議</b>

    I2C通信異常問題怎么解決?

    我們在進行I2C通信,發現當寫數據時SCL和SDA會有下降沿重合的情況,導致通信失敗,請幫忙分析下如何處理? I2C通信代碼如下: sta
    發表于 08-12 07:45

    I2C總線通信,為什么要進行電氣隔離?

    I2C總線采用雙向二線制,支持多主機多從機通信,具備高可靠性、抗干擾能力強,廣泛應用于嵌入式系統中。
    的頭像 發表于 08-11 11:04 ?2500次閱讀
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>通信</b>,為什么要進行電氣隔離?

    UM10204 I2C協議總線規范和用戶手冊

    I2C-NPN官方協議手冊
    發表于 07-15 16:33 ?1次下載

    第十八章 I2C通信測試

    本章介紹了I2C協議,其物理層用SDA和SCL雙線,支持多設備:協議層含起始/停止信號、應答機制等。還講解W55MH32的I2C外設及初始化,并進行了
    的頭像 發表于 06-19 17:07 ?1310次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測試

    第十六章 一文淺談I2C

    本篇文章介紹了W55MH32的I2C總線,其由SDA和SCL構成,具設備尋址等特點,協議含起始 / 停止信號等。闡述主從模式,介紹了相關例程,用于驗證 I2C 通信功能。
    的頭像 發表于 05-28 16:07 ?1393次閱讀
    第十六章 一文淺談<b class='flag-5'>I2C</b>

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    在Linux下,I2C(Inter-Integrated Circuit)驅動是用于支持I2C總線協議的驅動程序。I2C是一種串行通信協議
    發表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    在Linux下,I2C(Inter-Integrated Circuit)驅動是用于支持I2C總線協議的驅動程序。I2C是一種串行通信協議,
    發表于 04-15 10:19