chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于FPGA的I2C通信協(xié)議設計

友晶FPGA ? 來源:友晶FPGA ? 2025-12-26 09:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 I2C簡介

I2C(Inter-Integrated Circuit)是一種由飛利浦半導體(現(xiàn)為恩智浦半導體)在1980年代初開發(fā)的同步、串行、半雙工的總線型通信協(xié)議。主要用于近距離(同一塊印刷電路板(PCB)上的集成電路(IC)之間)、低速(注:標準模式100K,快速模式400K,高速模式3.4M)的芯片之間的通信。

I2C總線有兩根信號線,一根數(shù)據(jù)線SDA用于收發(fā)數(shù)據(jù),一根時鐘線SCL用于通信雙方時鐘的同步。I2C總線是一種多主機總線,連接在I2C總線上的器件分為主機和從機,主機有權(quán)發(fā)起和結(jié)束一次通信,而從機只能被主機呼叫。每個連接到I2C總線上的器件都有一個唯一的地址(7-bit)。主機通過I2C設備的地址來選擇從機。

97eb9964-dae8-11f0-8c8f-92fbcf53809c.png

2 I2C的三態(tài)門電路

信息雙向傳輸(方向為inout)的時候需要使用三態(tài)門電路。FPGA內(nèi)部三態(tài)門結(jié)構(gòu):

984718e8-dae8-11f0-8c8f-92fbcf53809c.png

當sda_out為1時,sda被設置為高阻態(tài)(1'bz),即此時sda由外部設備(或上拉電阻)控制。當sda_out為0時,sda被驅(qū)動為0。這種設計符合I2C協(xié)議的開漏輸出特性:I2C設備只能將數(shù)據(jù)線拉低(輸出0)或釋放(輸出高阻,由上拉電阻拉高)。因此,這個三態(tài)設置實現(xiàn)了I2C數(shù)據(jù)線的雙向通信:既可以輸出數(shù)據(jù)(拉低),也可以輸入數(shù)據(jù)(釋放總線并讀取)。具體的Verilog實現(xiàn)如下:

989c7edc-dae8-11f0-8c8f-92fbcf53809c.png

所以FPGA和外設之間要有個上拉電阻,如下是DE10-Nano的相關電路圖:

98f0b182-dae8-11f0-8c8f-92fbcf53809c.png

3 I2C協(xié)議的開始與結(jié)束信號

開始條件為當SCLK(時鐘腳)保持在高電平時, SDIN(數(shù)據(jù)腳)從高到低,接著會開始進行地址與數(shù)據(jù)傳輸;停止的條件是被定義成在 SCLK 在高電平時, SDIN 有一個低到高轉(zhuǎn)換:

99446d54-dae8-11f0-8c8f-92fbcf53809c.png

4 I2C協(xié)議的字節(jié)傳送與應答

I2C總線通信時每個字節(jié)為8位長度,數(shù)據(jù)傳送時,先傳送最高位,后傳送低位,發(fā)送器發(fā)送完一個字節(jié)數(shù)據(jù)后,接收器必須發(fā)送1位應答位(應答:低電平"0";非應答:沒接收到數(shù)據(jù)或者接收器不想應答,就保持高電平"1")來回應發(fā)送器,即一幀共有9位。

9997e9d4-dae8-11f0-8c8f-92fbcf53809c.png

5 I2C協(xié)議的同步信號

I2C總線在進行數(shù)據(jù)傳送時:

時鐘線SCL為低電平時,發(fā)送器向數(shù)據(jù)線上發(fā)送1-bit數(shù)據(jù),在此期間數(shù)據(jù)線上的信號允許變化;

時鐘線SCL為高電平時,接收器從數(shù)據(jù)線上讀取1-bit數(shù)據(jù),在此期間數(shù)據(jù)線上的信號不允許發(fā)生變化,必須保持穩(wěn)定。

99edb562-dae8-11f0-8c8f-92fbcf53809c.png

6 I2C協(xié)議的寫操作

主機先產(chǎn)生一個起始信號ST,再由主機發(fā)送出欲控制的器件地址Device Address[6:0],再加上 1 位的 W/R 讀寫位(設定為 0)。從機收到主機發(fā)送出8 位信號后,會回應一個 ACK 信號;接著送出寄存器地址Register Address[7:0](有的寄存器地址是16位,則可分兩次發(fā)送),從機收到主機發(fā)送出8 位信號后,會回應一個 ACK 信號;接著送出 8 位數(shù)據(jù) Data[7:0],從機收到主機發(fā)送出8 位信號后,會回應一個ACK 信號。傳輸完成后,會從主機送出停止信號SP。則完成了將數(shù)據(jù) Data[7:0] 寫入 Device Address[6:0] 設備中的 Register Address[7:0] 寄存器中:

9a43e5cc-dae8-11f0-8c8f-92fbcf53809c.png

7 I2C協(xié)議的讀操作

主機先產(chǎn)生一個起始信號ST,再由主機發(fā)送出欲控制的器件地址Device Address[6:0],再加上 1 位的 W/R 讀寫位(設定為 0)。從機收到主機發(fā)送出8 位信號后,會回應一個 ACK 信號;接著送出寄存器地址Register Address[7:0],從機收到主機發(fā)送出8 位信號后,會回應一個 ACK 信號;接著主機重新送出開始信號SR(restart),再由主機發(fā)送出欲控制的器件地址DeviceAddress[6:0],再加上 1 位的 W/R 讀寫位(設定為 1)。從機收到主機發(fā)送出8 位信號后,會回應 一個 ACK 信號。接著讀取 8 位數(shù)據(jù) Data[7:0],主機收到8 位信號后發(fā)送一個NACK給從機,通知從機主機不再需要更多的數(shù)據(jù),最后從主機送出停止信號SP:

9a99bad8-dae8-11f0-8c8f-92fbcf53809c.png

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

    關注

    1659

    文章

    22364

    瀏覽量

    632960
  • 通信協(xié)議

    關注

    28

    文章

    1083

    瀏覽量

    41947
  • 接收器
    +關注

    關注

    15

    文章

    2641

    瀏覽量

    76780
  • I2C總線
    +關注

    關注

    8

    文章

    416

    瀏覽量

    63147

原文標題:4-DE10-Nano的HDMI方塊移動案例——I2C通信協(xié)議

文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    3分鐘理解通信協(xié)議I2C總線 #通信協(xié)議

    通信協(xié)議I2CI2C總線總線/接口技術(shù)
    硬聲課堂
    發(fā)布于 :2021年10月18日 10:39:12

    i2c通信協(xié)議

    1.1 i2c通信協(xié)議通信協(xié)議:用來實現(xiàn)數(shù)據(jù)傳輸。i2c物理總線:SCL(時鐘線) SDA(數(shù)據(jù)線)i2c
    發(fā)表于 03-06 16:15

    I2C通信協(xié)議硬軟件

    目錄12C通信協(xié)議硬軟件I2CAHT20測溫濕度參考12C通信協(xié)議I2C
    發(fā)表于 08-23 07:42

    I2C通信協(xié)議簡介

    一.I2C通信協(xié)議簡介1.物理層I2C物理層有以下特點:I2C是支持多設備的總線,支持多個通訊主機、多個通訊從機I2C使用兩條總線線路,SD
    發(fā)表于 01-13 07:20

    I2C通信協(xié)議的原理是什么

    I2C通信協(xié)議I2C通信原理I2C通信原理:I2C
    發(fā)表于 02-17 07:16

    I2C總線通信協(xié)議的相關資料下載

    基于I2C總線通信協(xié)議的溫度采集實驗(基于AHT20) I2C總線通信協(xié)議簡介 AHT20簡介 一.項目說明1)實戰(zhàn)目標:2)實戰(zhàn)元件: 二
    發(fā)表于 02-22 07:37

    SPI、I2C、UART串行總線協(xié)議

    串口通訊通信協(xié)議UART,以及常用外設通信協(xié)議 SPI、I2C的介紹與他們之間的區(qū)別
    發(fā)表于 11-30 11:28 ?96次下載

    實驗八-I2C通信協(xié)議

    實驗八-I2C通信協(xié)議,感興趣的可以瞧一瞧。
    發(fā)表于 09-22 16:42 ?2次下載

    I2C通信協(xié)議應該如何學習

    我最近剛做完I2C通信協(xié)議的編寫與調(diào)試,下面介紹一下我從一開始理解夏老師的程序,修改程序,直到下板調(diào)試整個的學習過程,希望對大家學習 I2C 有一定的幫助。一、 分析源代碼學習 I2C
    發(fā)表于 04-28 08:00 ?22次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>應該如何學習

    什么是I2C通信協(xié)議?

    在本教程中,我們將學習如何在Raspberry Pi Pico中使用I2C引腳并遍歷I2C掃描器代碼。
    的頭像 發(fā)表于 04-26 15:08 ?8857次閱讀
    什么是<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>?

    MPU6050的I2C通信協(xié)議

    不同硬件有不同的I2C協(xié)議
    發(fā)表于 12-06 12:21 ?3次下載
    MPU6050的<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>

    i2c和spi通信協(xié)議的概念與區(qū)別 I2C/SPI總線通信協(xié)議你搞懂沒有

    計劃第四期:硬聲UP主@硬件研究獅 從工程實踐的角度,給大家拆解I2C與SPI。 ? ? 四分鐘搞定通信協(xié)議的分類 簡介: 同步通信與異步通信,全雙工
    的頭像 發(fā)表于 06-23 17:19 ?4889次閱讀

    I2C通信協(xié)議:了解I2C Primer、 PMBus和SMBus

    I2C,即Inter-Integrated Circuit,是一種常用的串行通信協(xié)議,用于在器件之間——特別是兩個或兩個以上不同電路之間建立通信。I2C Primer是最常用的
    的頭像 發(fā)表于 06-15 15:29 ?8284次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus

    SPI和I2C通信協(xié)議:應用與區(qū)別

    本文深入解析了SPI和I2C這兩種通信協(xié)議的特點、工作原理和應用場景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲器芯片和顯示器驅(qū)動等領域;I2C適用于低速控制和傳感器數(shù)據(jù)傳輸,常用于溫度傳感器和ADC
    的頭像 發(fā)表于 04-22 16:45 ?3587次閱讀

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C
    的頭像 發(fā)表于 07-25 18:06 ?3578次閱讀