在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

SPI和I2C的對比 FPGA實測I2C波形

電子設計 ? 來源:面包板社區 ? 作者:面包板社區 ? 2021-03-25 16:16 ? 次閱讀

I2C是什么

消費電子工業電子等領域,會使用各種類型的芯片,如微控制器電源管理,顯示驅動,傳感器,存儲器,轉換器等,他們有著不同的功能,有時需要快速的進行數據的交互,為了使用最簡單的方式使這些芯片互聯互通,于是I2C誕生了,I2C( Inter-Integrated Circuit)是一種通用的總線協議。它是由Philips(飛利浦)公司,現NXP(恩智浦)半導體開發的一種 簡單的雙向兩線制總線協議標準。對于硬件設計人員來說,只需要 2個管腳,極少的連接線和面積,就可以實現芯片間的通訊,對于軟件開發者來說,可以使用同一個I2C驅動庫,來實現實現不同器件的驅動,大大減少了軟件的開發時間。極低的工作電流,降低了系統的功耗,完善的 應答機制大大增強通訊的可靠性。

多主多從

5種速率

I2C協議可以工作在以下5種速率模式下,不同的器件可能支持不同的速率。

標準模式(Standard):100kbps

快速模式(Fast):400kbps

快速模式+(Fast-Plus):1Mbps

高速模式(High-speed):3.4Mbps

超快模式(Ultra-Fast):5Mbps(單向傳輸)

I2C速率模式【bps:bit/s,即SCL的頻率】其中超快模式是 單向數據傳輸,通常用于LED、LCD等不需要應答的器件,和正常的I2C操作時序類似,但是 只進行寫數據,不需要考慮ACK應答信號

pIYBAGBcReSAZMf_AAD1C9un248023.png

超快模式在I2C協議的官方文檔 NXP_UM10204_I2C-bus specification and user manual_Rev.6,超快模式和其他模式在3.2和3.1章節分別進行介紹。

4種信號

I2C協議最基礎的幾種信號: 起始、停止、應答和非應答信號。

起始信號

I2C協議規定,SCL處于高電平時,SDA由高到低變化,這種信號是起始信號。

停止信號

I2C協議規定,SCL處于高電平,SDA由低到高變化,這種信號是停止信號。 起始和停止信號

數據有效性

I2C協議對數據的采樣發生在 SCL高電平期間,除了起始和停止信號,在數據傳輸期間,SCL為高電平時,SDA必須 保持穩定,不允許改變,在SCL低電平時才可以進行變化。

pIYBAGBcRfCAA7NNAAE4f20AZRk049.png

數據有效性

應答信號

I2C最大的一個特點就是有完善的 應答機制,從機接收到主機的數據時,會回復一個應答信號來通知主機表示“ 我收到了”。應答信號出現在1個字節傳輸完成之后,即第9個SCL時鐘周期內,此時主機需要釋放SDA總線,把總線控制權交給從機,由于上拉電阻的作用,此時總線為高電平,如果從機正確的收到了主機發來的數據,會把SDA拉低,表示應答響應。

pIYBAGBcRf2ALCNCAAG_3z0rBog572.png

應答信號使用MCUFPGA控制器實現時,需要在第9個SCL時鐘周期把SDA設置為 高阻輸入狀態,如果讀取到SDA為低電平,則表示數據被成功接收到,可以進行下一步操作。

非應答信號

當第9個SCL時鐘周期時,SDA保持高電平,表示 非應答信號。 非應答產生非應答信號可能是主機產生也可能是從機產生,產生非應答信號的情況主要有以下幾種:

I2C總線上沒有主機所指定地址的從機設備

從機正在執行一些操作,處于忙狀態,還沒有準備好與主機通訊

主機發送的一些控制命令,從機不支持

主機接收從機數據時,主機產生非應答信號,通知從機數據傳輸結束,不要再發數據了

讀寫時序

向指定寄存器地址寫入指定數據操作時序:

寫時序從指定寄存器地址讀取數據操作時序:

讀時序注意,讀數據時有兩次起始信號。

7位和10位地址

大多數I2C器件支持 7位地址模式,有一些器件還支持 10位地址,而且兩種類型的器件可以連接在同一個I2C總線上,目前10位地址的器件 還沒有被廣泛使用。主機發送,從機接收。使用10位地址進行寫時序:

10位地址寫主機接收,從機發送。使用10位地址進行讀時序:

10位地址讀

I2C保留字節

I2C讀寫時起始位之后的第一個字節,除了廠商指定的設備地址外,還有一些保留字節,主要有兩組0000 xxx和1111 xxx,保留字節的含義:

pIYBAGBcRj-ACfRQAAJyIqeOS04142.png

保留字節上述的10位地址模式,就是使用到了最后一種 保留字節。第一種廣播模式,可以通過寫入第二個字節06h來 復位I2C總線上所有的從機器件。

具體操作時序可以查看文檔

NXP_UM10204_I2C-bus specification and user manual_Rev.6 :

3.1.12 Reserved addresses

章節有詳細介紹。其中device ID控制字(1111 1xx1),可以讀取I2C器件內部的 24位器件ID,通過對照NXP I2C協議器件列表可以查詢到器件所屬的 廠商和型號。 24位ID設備ID與器件廠商對應表

o4YBAGBcRk6AE1nhAAVxCjM39zs140.png

ID與廠商對照

FPGA實測I2C波形

FPGA實現、、I2C等串行時序,最常用的實現方式就是 狀態機大法,將各個步驟分解為各個狀態,然后根據不同的狀態去控制輸出或讀取輸入,細節方面需要考慮數據的對齊、建立和保持時間、一些異常情況時狀態的跳轉,不能進入死循環,或卡死在某一個狀態。I2C控制狀態機狀態定義:

//general S0_IDLE = 0,

S1_START1 = 1,

S2_CTRL_BYTE1 = 2,

S3_ACK1 = 3,

S4_ADDR = 4,

S5_ACK2 = 5, //write: 0-1-2-3-4-5-》6-7-13-14 S6W_DATA = 6,

S7W_ACK3 = 7, //read: 0-1-2-3-4-5-》8-9-10-11-12-13-14 S8R_START2 = 8,

S9R_CTRL_BYTE2 = 9,

S10R_ACK3 = 10,

S11R_DATA = 11,

S12R_NACK = 12, //general S13_STOP = 13,

S14_DONE = 14,

S15_ERR = 15;

注意 SDA雙向端口的方向控制。

output eeprom_scl,

inout eeprom_sda,

localparam DIR_IN = 1‘b0;

localparam DIR_OUT = !DIR_IN;

reg dir;

reg i2c_sda;

reg i2c_scl;

assign eeprom_scl = i2c_scl;

assign eeprom_sda = (dir == DIR_OUT) ? i2c_sda : 1’bz;

wire sda_in = eeprom_sda;

SDA應該在 第9個SCL時鐘周期設置為輸入狀態:

SDA方向控制下圖的波形是使用Xilinx FPGA對 AT24C1024的驅動,使用片上邏輯分析儀ChipScope抓取的實際波形,AT24C1024B存儲空間為1024K Bit = 131072 Byte,存儲單元地址位寬為17位。AT24C1024B寫時序:

i2c_writeAT24C1024B讀時序:

i2c_read

SPI和I2C的對比

I2C是 半雙工,是全雙工。

I2C支持 多主多從模式,而 SPI只能有一個主機。

從GPIO占用上來看,I2C占用 更少的GPIO,更節省資源。

I2C 有應答響應機制,數據可靠性更高, SPI沒有應答機制。

I2C速率 不會太高,最高速率3.4Mbps,SPI可以達到很高的速率。

I2C通過 器件地址來選擇從機,從機數量的增加不會導致GPIO的增加,而SPI通過CS選擇從機,每增加一個從機就要多占用一個GPIO。

SPI協議在SCLK邊沿進行數據采樣,I2C在 SCL高電平期間進行數據采樣。

兩者大多都應用于板內器件 短距離通訊。

官方標準文檔下載

目前網上比較詳細的介紹I2C文檔主要有以下3個:

1. I2C官方標準文檔_UM10204

I2C的官方文檔是原飛利浦(Philips)半導體事業部,現恩智浦(NXP)半導體發布的UM10204文檔,全文共64頁,是目前最權威最詳細的I2C協議介紹文章,最新版本Rev. 6發布于20140404, UM10204_4 April 2014: I2C-bus specification and user manual_Rev.6

2. TI:理解I2C文檔_SLVA704

TI在2015年發布了一篇SLVA704文檔, 全文共8頁,精簡的概括了I2C協議的電氣特性,操作時序,讀寫時序等,比較適合I2C入門學習。

3. ZLG:I2C總線規范中文版

這篇文檔發布于2000年左右,是對飛利浦官方文檔UM10204_v2.1的翻譯。

I2C協議文檔只是最基礎的文檔,具體寄存器讀寫操作等操作,還是要結合所使用芯片的數據手冊來使用。
編輯:hfy

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

    關注

    1629

    文章

    21753

    瀏覽量

    604198
  • I2C總線
    +關注

    關注

    8

    文章

    391

    瀏覽量

    61021
收藏 人收藏

    評論

    相關推薦

    i2c總線ppt(I2C總線器件應用)

    I2C總線器件應用第一節 I2C總線器件應用概述I2C總線工作原理I2C總線系統結構I2C總線系統結構如圖7-1所示。其中,SCL是時鐘線,
    發表于 08-13 17:34 ?0次下載

    I2C總線規范與I2C器件C51讀寫程序

    I2C總線規范與I2C器件C51讀寫程序:本文簡要介紹了I2C總線,并給出了I2C器件的C51讀
    發表于 08-22 17:51 ?93次下載

    I2C總線接口模塊設計

    本實驗是基于EasyFPGA030的I2C總線接口模塊設計,用EasyFPGA030開發套件通過I2C協議實現對二線制I2C串行EEPROM
    發表于 11-02 17:01 ?41次下載

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發表于 04-23 13:55 ?36次下載

    什么是i2c總線

    什么是i2c總線  下載請點擊: i2c總線協議中文版 
    發表于 11-05 09:26 ?2933次閱讀

    SPI總線及I2C總線工作原理

    SPI總線及I2C總線工作原理,本內容詳細介紹了SPI總線和I2C總線的工作原理和比較
    發表于 12-08 16:55 ?0次下載

    i2c

    單片機i2c總線操作;單片機i2c總線操作;單片機i2c總線操作;
    發表于 05-17 11:09 ?35次下載

    CAN、I2S、I2CSPI、SSP總線的介紹和比較

    CAN、I2S、I2CSPI、SSP總線的介紹和比較。
    發表于 07-14 16:20 ?53次下載

    淺談I2C總線,I2C接口和SPI接口的作用相同

    SDA 和 SCL 都是雙向的。SPI 總線有兩根單獨的線,分別用于兩個方向的通信,而 I2C 總線不同,它使用同一根線來完成主機發送數據和接收從機響應。另外,與 SPI 總線具有多個工作模式
    的頭像 發表于 03-21 10:24 ?2.5w次閱讀
    淺談<b class='flag-5'>I2C</b>總線,<b class='flag-5'>I2C</b>接口和<b class='flag-5'>SPI</b>接口的作用相同

    一文看懂I2C協議

    文章目錄I2C是什么5種速率4種信號起始信號停止信號數據有效性應答信號非應答信號讀寫時序7位和10位地址I2C保留字節FPGA實測I2C
    發表于 12-05 19:21 ?15次下載
    一文看懂<b class='flag-5'>I2C</b>協議

    硬件I2C與模擬I2C

    硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高于軟件模擬的I2C;一般也較為穩定,但
    發表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    一文看懂I2C協議

    電子行業最常用的3種串行通訊協議:UART、SPII2C。前面介紹了串口通訊協議及其FPGA實現,SPI協議。本篇文章介紹I2C通訊協議及
    發表于 01-25 18:32 ?40次下載
    一文看懂<b class='flag-5'>I2C</b>協議

    I2C debug出現問題怎么解決

    _transfer 返回值為 -6? 返回值為 -6 表示為 NACK 錯誤,即對方設備無應答響應,這種情況一般為外設的問題,常見的有以下幾種情況: I2C 地址錯誤,解決方法是測量 I2C 波形,確認是否
    的頭像 發表于 07-22 15:00 ?3782次閱讀

    I2CSPI的區別是什么 速率對比

    I2CSPI 對比 ? 功能 I2C SPI 線數 2(SDA,SCL) 4(MOSI,M
    的頭像 發表于 07-27 10:55 ?3794次閱讀

    UART、SPII2C比較 串口通信介紹

    UART、SPII2C比較 I2C線更少,比UART、SPI更為強大,但是技術上也更加麻煩些,因為I2C需要有雙向IO的支持,而且使用上拉
    的頭像 發表于 11-09 18:06 ?1469次閱讀
    UART、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比較 串口通信介紹
    主站蜘蛛池模板: 天天干天天色天天射| 天天干干天天| 干成人| 人人操在线播放| 国产伦精品一区二区三区四区 | 亚洲国产精品久久久久婷婷软件| 在线观看视频色| 色综合天天综合网国产国产人| 日韩精品三级| 久久综合九色综合97_ 久久久| 天堂福利视频| 色综合久久中文字幕网| 欧美ww| 丁香婷婷电影| 国产三级日本三级日产三| 国产精品久久久久久久久ktv | 色九| 看毛片的网站| 最新午夜| 真实子伦视频不卡| 天堂网www天堂在线资源链接| 大桥未久加勒比女热大陆在线| 91男女视频| 在线视频亚洲色图| 三及毛片| 国产三级香港三级人妇| 午夜影视在线| fenfencao在线观看免费视频| 性刺激的欧美三级视频| 亚洲国产成人精品久久| 农村妇女高清毛片一级| 4438x全国免费| 亚洲精品国产自在久久出水| 777kkk亚洲综合欧美色老头| 男女交性视频免费| 四虎音影| 国产精品免费观看网站| 天天拍天天操| 69日本人xxxxxxxx色| 午夜免费福利影院| 九九九色|