www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]本文以標(biāo)準(zhǔn)的I2C 總線協(xié)議為基礎(chǔ),提出了一種基于FPGA的I2C SLAVE 模式總線的設(shè)計方案。方案主要介紹了SLAVE 模式的特點。給出了設(shè)計的原理框圖和modelsim 下的行為仿真時序圖。經(jīng)過實際應(yīng)用,證實了本方案操作簡便,實用性強(qiáng)。

0 引言

由于在嵌入式系統(tǒng)開發(fā)中越來越多的應(yīng)用到FPGA,而一些嵌入式CPU,比如STM32 為了降低成本,減小封裝尺寸,沒有外接專門的CPU 讀寫總線,而只提供了一些如SPI 和I2C 的接口。而且在應(yīng)用中經(jīng)常有數(shù)據(jù)要配置到FPGA 中,如FPGA 中的應(yīng)用配置寄存器,和配置表項等,都需要CPU 配置。這些數(shù)據(jù)的數(shù)據(jù)量不大,速度也不要求很高,很適合用I2C 總線來配置。

I2C 總線是Philips 公司設(shè)計的一種控制和配置內(nèi)部IC 雙向兩線的串行總線。主要特點是接口信號線較少,但是其數(shù)據(jù)的傳送速率不是很高,其高速模式下為3.4Mb/s.應(yīng)用于配置FPGA 比較適合。在通常的應(yīng)用中嵌入式CPU 作為MASTER 模式的主器件,F(xiàn)PGA 作為SLAVE 模式的從器件。通過使用I2C 總線,減少了CPU 和FPGA 的連線,而且嵌入式CPU 一般有內(nèi)含I2C總線控制器,使得CPU 和FPGA 間的通訊硬件電路簡化。

1 I2C SLAVE 模式整體結(jié)構(gòu)的分析設(shè)計

I2C 總線要求兩條信號線,一條串行數(shù)據(jù)線 SDA,一條串行時鐘線 SCL.通過串行方式傳送數(shù)據(jù)。它是一個多主器件的總線,如果兩個或更多主器件同時傳輸數(shù)據(jù),可以沖突檢測和仲裁。為簡化設(shè)計和滿足應(yīng)用要求,該設(shè)計實現(xiàn)一個標(biāo)準(zhǔn)I2C總線的子集。完成1 字節(jié)的單次讀寫和連續(xù)讀寫功能。所以這就要求應(yīng)用中的I2C 總線上只能有一個主器件,而FPGA 邏輯則只能當(dāng)成從器件。I2C 總線的兩條信號線都是開漏的,必須外接上拉電阻,以保證總線空閑時,總線都處于高電平。I2C的讀寫時序圖如圖1.

 

 

從圖1 中可以看出,總線的起始條件為在SCL 為高電平時,SDA 拉低產(chǎn)生一個下降沿。而總線的停止條件為在SCL 為高電平時,SDA 釋放由上拉電阻產(chǎn)生一個上升沿。在快速模式下,SCL 時鐘頻率最大值為400KHz,SCL 時鐘的低電平周期最小為1.3μs,SCL 時鐘的高電平周期最小為0.6μs.在輸入端,輸入濾波器必須抑制的毛刺脈寬最大值為50ns.由于SCL是由主器件CPU 的內(nèi)置I2C 模塊產(chǎn)生的,所以SCL 的時序肯定符合要求。而FPGA 要采樣SCL 和SDA 信號,那么FPGA 的采樣時鐘頻率至少要為SCL 頻率的2 倍以上。再加上抑制的毛刺脈寬最大值為50ns.當(dāng)FPGA 的系統(tǒng)時鐘為100MHz 時,端口以100MHz 的頻率采樣信號,遠(yuǎn)遠(yuǎn)大于快速模式下SCl 的400KHz,抑制的毛刺也將在5 個時鐘周期內(nèi)處理。而且FPGA內(nèi)部邏輯一般都工作在100MHz 以上,所以I2C 模塊的系統(tǒng)時鐘可以直接使用FPGA 的系統(tǒng)時鐘,可以省去時鐘轉(zhuǎn)化模塊,簡化處理。當(dāng)I2C 總線讀FPGA 時,總線主器件在發(fā)送完第一個字節(jié),F(xiàn)PGA 回復(fù)ACK 后,緊接著就要FPGA 輸出相應(yīng)的數(shù)據(jù),所以在FPGA 邏輯發(fā)出ACK 的同時就要開始,F(xiàn)PGA 的內(nèi)部尋址和讀取相應(yīng)的數(shù)據(jù),在SCL 時鐘頻率最大值為400KHz 時,F(xiàn)PGA 的系統(tǒng)時鐘為100MHz,那么FPGA 的內(nèi)部邏輯有約250個時鐘周期的尋址時間,這個時間是完全夠用的。I2C SLAVEmode 整體結(jié)構(gòu)圖如圖2.

 

 

接口信號的說明如表1.

 

 

2 I2C SLAVE 模式控制器的設(shè)計與實現(xiàn)

2.1 I2C SLAVE 控制器的接口實現(xiàn)

I2C SLAVE 控制器的接口部分主要包括,信號異步時鐘域的轉(zhuǎn)換。輸入濾波器,用來抑制毛刺。及SDA 線的雙向轉(zhuǎn)換。由于SDA 的PIN 是雙向的,所以一定要分配在FPGA 的IO BLOCK塊中,只有IO BLOCK 中有雙向的硬件結(jié)構(gòu)。因為SDA 和SCL信號的相位相對于FPGA 邏輯的系統(tǒng)時鐘的相位關(guān)系是不確定的。所以一定要進(jìn)行異步時鐘域的轉(zhuǎn)換,以防止輸入的寄存器出現(xiàn)亞穩(wěn)態(tài),它會使邏輯處在某個不確定的狀態(tài)。此外FPGA的系統(tǒng)時鐘頻率比較高,對輸入的毛刺比較敏感,故輸入端要加入濾波器。接口部分的框圖如圖3.

 

[!--empirenews.page--]

 

異步時鐘域的轉(zhuǎn)換,采用兩級寄存器的結(jié)構(gòu)。輸入濾波器采用5 級寄存器的結(jié)構(gòu)。當(dāng)采樣到連續(xù)5 個高電平時,輸出才為高電平,否則為低電平。接口部分的寄存器全都用FPGA 的系統(tǒng)時鐘驅(qū)動。

2.2 I2C SLAVE 控制邏輯的實現(xiàn)

I2C SLAVE 控制邏輯狀態(tài)機(jī)是整個模塊的核心,所有I2C 總線相應(yīng)的控制都由其完成。狀態(tài)機(jī)有四個狀態(tài):IDLE,START,SAMPLE 和STOP 組成。Verilog 的定義如下:

`define IDLE 2'b00

`define START 2'b01

`define STOP 2'b10

`define SAMPLE 2'b11

下面介紹各個狀態(tài)的功能。當(dāng)I2C 總線無任何操作時控制器在IDLE 狀態(tài)下,并保持。當(dāng)接口邏輯判斷到START 條件時,控制器跳轉(zhuǎn)到START 狀態(tài)下,并做好接受第一個字節(jié)的準(zhǔn)備,包括初始化bit計數(shù)器。接著開始接受第一個字節(jié)包含7bit的地址和1bit 的讀寫狀態(tài)位。當(dāng)采集完第一個字節(jié)后,控制器跳到SAMPLE 狀態(tài)下,開始執(zhí)行數(shù)據(jù)字節(jié)的接受或發(fā)送。是接受或發(fā)送的狀態(tài)由前一字節(jié)的最后1bit 的讀寫狀態(tài)位決定。

當(dāng)讀寫狀態(tài)位為高時,表示I2C 總線的讀操作,F(xiàn)PGA 邏輯發(fā)送數(shù)據(jù)。讀寫狀態(tài)位為低時,表示I2C 總線的寫讀操作,F(xiàn)PGA邏輯接受數(shù)據(jù)。接著FPGA 邏輯發(fā)出一個ACK 信號后,表示可以進(jìn)行讀寫操作。那么就進(jìn)入到SAMPLE 狀態(tài)下,正常讀或?qū)懸粋€字節(jié)(也可以連續(xù)的讀寫多個字節(jié),對此沒有限制)。在完成8bit 數(shù)據(jù)讀寫后,I2C 的主器件會發(fā)出一個STOP 條件操作。fpga 邏輯收到后,就跳轉(zhuǎn)到STOP 狀態(tài),并在幾個時鐘周期后,自動跳轉(zhuǎn)到IDLE 狀態(tài)下。從而完成一個完整的I2C 總線的讀或?qū)懖僮鳌?/p>

當(dāng)然也包括一些異常處理,以防止?fàn)顟B(tài)機(jī)處在一個不確定的狀態(tài)下。在SAMPLE 狀態(tài)下如果遇到意外的START 條件時,即上次的總線操作沒有完成就開始了下次的操作,則控制狀態(tài)機(jī)會跳轉(zhuǎn)到START 狀態(tài)下,而開始接受這次新的總線操作,而上次的操作為無效。由如在SAMPLE 狀態(tài)下,但是又收到一個START 條件。還有如在STOP 狀態(tài)收到一個START 條件,處理也和上面一樣。下圖4 介紹了I2C SLAVE 控制邏輯狀態(tài)機(jī)的狀態(tài)跳轉(zhuǎn)圖。

 

 

如上圖所示,在 SAMPLE 狀態(tài)下,可以連續(xù)的讀寫數(shù)據(jù),而地址是在讀寫完一個字節(jié)后由FPGA 邏輯自動加1 的。這樣做使得I2C 總線的一次操作就可以連續(xù)對多個字節(jié)讀或?qū)?。提高的總線的使用效率。

以下是在modelsim6.0 下進(jìn)行的行為級仿真的時序圖。

由自行編制的I2C 總線主器件BFM 驅(qū)動進(jìn)行測試。圖5 I2CSLAVE 控制器寫時序圖。圖6 I2C SLAVE 控制器讀時序圖。

 

 

3 結(jié)論

本方案通過介紹SLAVE 模式的特點,給出設(shè)計的原理框圖和modelsim 下的行為仿真時序圖。在Altera 的Cyclone II 系列中用Quartus II 12.0生成的模塊時鐘頻率可達(dá)到180MHz,占用的資源Totalcombinational functions 為83 個,Total registers 為41 個。而在實際應(yīng)用中達(dá)100MHz 左右。證實了本方案操作簡便,效果不錯。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在現(xiàn)代工業(yè)和汽車領(lǐng)域,控制器局域網(wǎng)(CAN)總線作為一種可靠且高效的通信方式,廣泛應(yīng)用于各種電子設(shè)備之間的數(shù)據(jù)傳輸。在 CAN 總線系統(tǒng)中,有一個看似毫不起眼卻至關(guān)重要的元件 ——120Ω 終端電阻。這個小小的電阻,對于...

關(guān)鍵字: 控制器局域網(wǎng) 總線 通信

在數(shù)字化浪潮席卷全球的今天,F(xiàn)PGA技術(shù)正成為驅(qū)動創(chuàng)新的核心引擎。2025年8月21日,深圳將迎來一場聚焦FPGA技術(shù)與產(chǎn)業(yè)應(yīng)用的盛會——2025安路科技FPGA技術(shù)沙龍。本次沙龍以“定制未來 共建生態(tài)”為主題,匯聚行業(yè)...

關(guān)鍵字: FPGA 核心板 開發(fā)板

在現(xiàn)代電子系統(tǒng)中,現(xiàn)場可編程門陣列(FPGA)憑借其開發(fā)時間短、成本效益高以及靈活的現(xiàn)場重配置與升級等諸多優(yōu)點,被廣泛應(yīng)用于各種產(chǎn)品領(lǐng)域。從通信設(shè)備到工業(yè)控制,從汽車電子到航空航天,F(xiàn)PGA 的身影無處不在。為了充分發(fā)揮...

關(guān)鍵字: 可編程門陣列 FPGA 數(shù)字電源

2025年8月4日 – 提供超豐富半導(dǎo)體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 即日起開售Altera?的Agilex? 3 FPGA C系列開發(fā)套件。此開...

關(guān)鍵字: FPGA 邊緣計算 嵌入式應(yīng)用

內(nèi)窺鏡泛指經(jīng)自然腔道或人工孔道進(jìn)入體內(nèi),并對體內(nèi)器官或結(jié)構(gòu)進(jìn)行直接觀察和對疾病進(jìn)行診斷的醫(yī)療設(shè)備,一般由光學(xué)鏡頭、冷光源、光導(dǎo)纖維、圖像傳感器以及機(jī)械裝置等構(gòu)成。文章介紹了一款基于兩片圖像傳感器和FPGA組成的微型3D內(nèi)...

關(guān)鍵字: 微創(chuàng) 3D內(nèi)窺鏡 OV6946 FPGA

運用單片機(jī)和FPGA芯片作為主控制器件 , 單片機(jī)接收從PC機(jī)上傳過來的顯示內(nèi)容和顯示控制命令 , 通過命令解釋和數(shù)據(jù)轉(zhuǎn)換 , 生成LED顯示屏所需要的數(shù)據(jù)信號和同步的控制信號— 數(shù)據(jù)、時鐘、行同步和面同步 。FPGA芯...

關(guān)鍵字: 單片機(jī) FPGA LED顯示屏

在異構(gòu)計算系統(tǒng)中,ARM與FPGA的協(xié)同工作已成為高性能計算的關(guān)鍵架構(gòu)。本文基于FSPI(Fast Serial Peripheral Interface)四線模式,在150MHz時鐘頻率下實現(xiàn)10.5MB/s的可靠數(shù)據(jù)...

關(guān)鍵字: ARM FPGA FSPI

為增進(jìn)大家對CAN總線的認(rèn)識,本文將對CAN總線協(xié)議以及CAN總線負(fù)載率的設(shè)置予以介紹。

關(guān)鍵字: CAN 指數(shù) 總線

為增進(jìn)大家對CAN總線的認(rèn)識,本文將對CAN總線的特征以及高低速CAN總線的特性予以介紹。

關(guān)鍵字: CAN 指數(shù) 總線

為增進(jìn)大家對CAN總線的認(rèn)識,本文將對CAN總線的工作原理、CAN總線和LIN總線的區(qū)別予以介紹。

關(guān)鍵字: CAN 指數(shù) 總線
關(guān)閉