• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      I2C主從通信協(xié)議擴展驅(qū)動設(shè)計①

      2022-08-23 12:12:18方振國毛春雨
      關(guān)鍵詞:傳輸速率時序雙向

      嚴(yán) 寒, 方振國, 汪 珺, 郭 偉, 毛春雨

      (淮北師范大學(xué)物理與電子信息學(xué)院,安徽 淮北 235000)

      0 引 言

      I2C總線協(xié)議是由Philips公司開發(fā)的一種同步串行總線。相比于其它的串行協(xié)議來說,I2C總線擁有占用資源少、可以有多個主機控制和能掛載多個從機等優(yōu)點,使得其被廣泛的應(yīng)用在系統(tǒng)內(nèi)多個IC之間的通信。對于I2C協(xié)議掛載多從機進(jìn)行數(shù)據(jù)傳輸也得到了業(yè)內(nèi)人士的廣泛應(yīng)用和研究。其中,孫靖實現(xiàn)了嵌入式控制器基于I2C總線體系的外圍設(shè)備擴展應(yīng)用[1],但在設(shè)計中掛載在總線上的外圍設(shè)備是通過器件地址進(jìn)行區(qū)分,對器件地址相同的設(shè)備沒有進(jìn)行研究。邱永華通過PCF8574和數(shù)字開關(guān)實現(xiàn)了可連接器件地址相同的模塊的I2C接口擴展器[2],但可連接數(shù)目受限,靈活擴展配置性能較差?;诳芍貥?gòu)并行處理平臺ZYNQ對I2C協(xié)議進(jìn)行了擴展設(shè)計,有效的補充了了相同地址下的主從通信協(xié)議并解決了傳輸速率的自主選擇問題。

      1 I2C總線工作原理

      I2C總線是一種簡單的雙向二進(jìn)制同步串行總線,只需要使用一根時鐘線(SCL)和一根雙向數(shù)據(jù)線(SDA)即可在器件中進(jìn)行傳輸信息[3]。主機和從機之間以一個字節(jié)(8bit)為單位進(jìn)行雙向傳輸,根據(jù)通信速率的不同,主機和從機進(jìn)行數(shù)據(jù)傳輸時需要嚴(yán)格的遵循I2C的傳輸規(guī)范。讀寫操作如下:

      寫數(shù)據(jù)操作分為Byte Write和Page Write兩種,Byte Write時序如圖1所示,根據(jù)時序圖單字節(jié)寫數(shù)據(jù)流程如下:主機發(fā)送起始信號->主機發(fā)送7位器件地址+1位寫命令R/W(0為寫)->主機發(fā)送8為字地址->從機返回響應(yīng)信號ACK(0表示數(shù)據(jù)寫入成功)->主機發(fā)送8位寫數(shù)據(jù)->從機返回響應(yīng)信號ACK->主機發(fā)送停止信號。

      圖1 寫數(shù)據(jù)過程

      讀數(shù)據(jù)操作分為Random Read和Sequential Read兩種,Random Read時序如圖2所示,根據(jù)時序圖單字節(jié)寫數(shù)據(jù)流程如下:主機發(fā)送起始信號->主機發(fā)送7位器件地址+1位寫命令R/W->主機發(fā)送8為字地址->從機返回響應(yīng)信號ACK->主機發(fā)送起始信號->主機發(fā)送7位器件地址+1位讀命令R/W(1為讀)->從機返回響應(yīng)信號ACK->從機發(fā)送8位數(shù)據(jù)->主機發(fā)送停止信號。

      圖2 讀數(shù)據(jù)過程

      2 系統(tǒng)設(shè)計

      I2C主從通信擴展協(xié)議驅(qū)動系統(tǒng)如圖3所示,設(shè)計主要包括參數(shù)配置、I2C總線接口、編碼片選器三個部分,其中參數(shù)配置中有從機切換裝置和I2C傳輸速率切換裝置。

      圖3 I2C協(xié)議擴展驅(qū)動系統(tǒng)圖

      由系統(tǒng)框圖可知,掛載在I2C總線上的從機擁有相同的器件地址,總線通過選通器對從機進(jìn)行區(qū)分。為了節(jié)約資源,總線對所有從機都發(fā)送時鐘信號(SCL),只對片選器選通的從機進(jìn)行雙向數(shù)據(jù)傳輸(SDA),為了防止數(shù)據(jù)誤發(fā),片選器一次只能對一個從機保持選通狀態(tài)(即參數(shù)配置中從機切換裝置每次只能選定一個從機進(jìn)行數(shù)據(jù)傳輸)。為了實現(xiàn)I2C總線傳輸速率調(diào)節(jié)便利,設(shè)計中設(shè)置了低速(100Kbps)、中速模式(400Kbps)和高速模式(3.4Mbps)三種傳輸速率[4],可通過參數(shù)配置中的傳輸速率切換裝置自由切換。

      以I2C總線掛載4塊從機為例,從機片選真值表如表1所示,由表可知,4塊從機通過二進(jìn)制進(jìn)行編碼需要2根切換線,可以通過從機切換裝置控制切換線狀態(tài)從而完成I2C總線和切換從機進(jìn)行選通。

      表1 從機片選真值表

      3 設(shè)計驗證

      設(shè)計中的FPGA采用的Xilinx公司ZYNQ-7000開發(fā)平臺,該開發(fā)平臺集成了ARM處理器的軟件可編程性和FPGA的硬件可編程性[5-7],設(shè)計軟件采用Xilinx Vivado 2020.2,使用Verilog語言,并且使用Vivado軟件中的邏輯分析儀進(jìn)行設(shè)計驗證。

      設(shè)計驗證中使用片選按鍵作為從機和傳輸速率切換裝置,4塊AT24C02 EEPROM模塊作為從機,AT24C02器件地址為7’1010000。驗證過程中往從機字地址8’b00110011中發(fā)送固定數(shù)據(jù)8’b01010101,通過對從機中發(fā)送的數(shù)據(jù)和讀取的數(shù)據(jù)進(jìn)行對比來驗證本設(shè)計。

      驗證步驟如下:

      1)配置傳輸速率為400Kbps,選定從機3;

      2)寫入數(shù)據(jù)到從機3,再從從機3讀取寫入的數(shù)據(jù);

      3)傳輸速率不變,選定從機4;

      4)寫入數(shù)據(jù)到從機4,再從從機4讀取寫入的數(shù)據(jù);

      5)選定從機4,分別切換傳輸速率切換為100Kbps,3.4Mbps,往從機寫入數(shù)據(jù)。

      使用100Kbps傳輸速率對選通從機3進(jìn)行數(shù)據(jù)讀寫的時序圖如圖4,5所示,由圖可知,數(shù)據(jù)傳輸過程中I2C總線只對從機3的雙向數(shù)據(jù)線(sda)進(jìn)行數(shù)據(jù)傳輸,且寫入的數(shù)據(jù)和讀取的數(shù)據(jù)皆為8’b01010101,其余從機雙向數(shù)據(jù)線處于空閑狀態(tài)。

      圖4 從機3數(shù)據(jù)寫入時序圖

      使用100Kbps傳輸速率對選通從機4進(jìn)行數(shù)據(jù)讀寫的時序圖如圖6,7所示,由圖可知,數(shù)據(jù)傳輸過程中I2C總線只對從機4的雙向數(shù)據(jù)線(sda)進(jìn)行數(shù)據(jù)傳輸,且寫入的數(shù)據(jù)和讀取的數(shù)據(jù)皆為8’b01010101,其余從機雙向數(shù)據(jù)線處于空閑狀態(tài)。

      圖5 從機3數(shù)據(jù)讀取時序圖

      圖6 從機4數(shù)據(jù)寫入時序圖

      圖7 從機4數(shù)據(jù)讀取時序圖

      F= 1/Ts

      (1)

      傳輸速率計算公式如公式1所示,其中F表示傳輸速率,Ts表示單個時鐘信號周期消耗的時間。由圖6可知4個時鐘信號周期消耗1000個系統(tǒng)時間間隔,而系統(tǒng)時鐘為50Mhz(20ns),故系統(tǒng)時間間隔為10ns。因此此時傳輸速率為式(2):

      F=4/(1000*10ns)= 400Kbps

      (2)

      使用傳輸速率為100Kbps往從機4寫入數(shù)據(jù)的時序如圖8所示,由圖可知5個時鐘信號周期消耗5000個系統(tǒng)時間間隔。因此此時傳輸速率為式(3):

      圖8 傳輸速率100Kbps從機4數(shù)據(jù)寫入時序圖

      F=5/(5000*10ns)= 100Kbps

      (3)

      使用傳輸速率為3.4Mbps往從機4寫入數(shù)據(jù)的時序如圖9所示,由圖9可知3.4個時鐘信號周期消耗100個系統(tǒng)時間間隔。因此此時傳輸速率為:

      圖9 傳輸速率3.4Mbps從機4數(shù)據(jù)寫入時序圖

      F=3.4/(100*10ns)= 3.4Mbps

      (4)

      4 結(jié) 語

      為了使主機可以通過I2C總線對擁有器件地址相同的從機進(jìn)行數(shù)據(jù)傳輸和I2C總線可以自由切換傳輸速率,提出來一種基于FPGA的I2C擴展驅(qū)動設(shè)計方案,并通過ZYNQ-7000硬件開發(fā)平臺,AT24C02 EEPROM模塊和Vivado軟件完成本設(shè)計,通過Vivado軟件中的邏輯分析儀抓取的波形可以看出,主機可對任一從機進(jìn)行數(shù)據(jù)傳輸,并且可以自由切換I2C總線的傳輸速率。設(shè)計結(jié)構(gòu)簡單、擴展性強、可移植性高,具有一定的實用價值,設(shè)計中若需要擴展從機設(shè)備,只需要增加系統(tǒng)的管腳資源而不用消耗其它硬件資源。

      猜你喜歡
      傳輸速率時序雙向
      時序坐標(biāo)
      雙向度的成長與自我實現(xiàn)
      出版人(2022年11期)2022-11-15 04:30:18
      基于Sentinel-2時序NDVI的麥冬識別研究
      跨山通信中頻段選擇與傳輸速率的分析
      黑龍江電力(2017年1期)2017-05-17 04:25:16
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      數(shù)據(jù)傳輸速率
      CHIP新電腦(2016年9期)2016-09-21 10:31:09
      一種軟開關(guān)的交錯并聯(lián)Buck/Boost雙向DC/DC變換器
      一種工作頻率可變的雙向DC-DC變換器
      新一代全球衛(wèi)星通信網(wǎng)絡(luò)將百倍提升傳輸速率
      新一代全球衛(wèi)星通信網(wǎng)絡(luò)將百倍提升傳輸速率
      炉霍县| 孙吴县| 长治市| 绥化市| 垣曲县| 政和县| 西昌市| 彰化市| 泰宁县| 沁源县| 高唐县| 谢通门县| 凌云县| 项城市| 措美县| 泽州县| 平泉县| 新野县| 油尖旺区| 西丰县| 罗源县| 喀喇| 芦溪县| 中山市| 清丰县| 徐水县| 平潭县| 科技| 凭祥市| 礼泉县| 宜城市| 石城县| 思茅市| 广元市| 普安县| 吉林市| 峨边| 高平市| 明光市| 读书| 辉南县|