基于FPGA的基帶64×64數(shù)據(jù)分配矩陣設(shè)計方案
來源:電子技術(shù)網(wǎng)
作者:蔣金冰
摘要: 數(shù)字分配矩陣網(wǎng)絡(luò)及矩陣開關(guān)是自動測試系統(tǒng)的重要組成部分,擔負著控制信號流的任務(wù),常用于衛(wèi)星/移動/電信E1/T1信號程控分配調(diào)度。
關(guān)鍵詞:
數(shù)字分配矩陣
FPGA
Abstract:
Key words :
本文采用FPGA作為實現(xiàn)控制邏輯的核心部件,提出了基于FPGA的基帶64×64 數(shù)據(jù)分配矩陣設(shè)計方案,并介紹了上位機的軟件設(shè)計思路和FPGA的內(nèi)部編程實現(xiàn)及仿真。經(jīng)驗證該方案具有規(guī)模大、成本低、高速等特點,可廣泛應(yīng)用于大規(guī)?;鶐?shù)字系統(tǒng)測試及信號程控分配調(diào)度中。
0 引言
數(shù)據(jù)分配矩陣即矩陣開關(guān),顧名思義,指結(jié)構(gòu)為行列交叉排布的開關(guān)產(chǎn)品,其特點為每個節(jié)點連接一個行 /列,每個節(jié)點可以單獨操作,通過設(shè)置節(jié)點的不同組合可以實現(xiàn)信號的路由。矩陣開關(guān)的主要優(yōu)勢在于其簡化的部線,整個測試系統(tǒng)可輕松地動態(tài)改變其內(nèi)部連接路徑而無須外部手動干預(yù)。矩陣開關(guān)的使用非常靈活方便,是目前程控開關(guān)產(chǎn)品中品種最多的產(chǎn)品,在汽車電子、半導(dǎo)體測試、航空航天等領(lǐng)域得到了廣泛的應(yīng)用。
FPGA具有運行速度快,內(nèi)部邏輯資源豐富,外圍I/O口數(shù)量多等優(yōu)點,因此本設(shè)計選用FPGA作為核心器件。
1 系統(tǒng)結(jié)構(gòu)及功能
本設(shè)計是為了實現(xiàn)64位輸入信號到64位輸出的任意無交叉的切換,即輸入與輸出是一一對應(yīng)的。由于本設(shè)計是針對基帶數(shù)字信號,而設(shè)計中選用的晶振頻率為25 MHz,因此根本不用考慮FPGA處理異步時鐘域數(shù)據(jù)傳輸?shù)膯栴},只需直接將對應(yīng)的輸入信號經(jīng)電平轉(zhuǎn)換后,經(jīng)譯碼后直接輸出到相應(yīng)的某路輸出接口即可。
上位機ARM 通過串口向FPGA 發(fā)送接口的連接信息,F(xiàn)PGA根據(jù)接收到的數(shù)據(jù)進行譯碼,將對應(yīng)的輸入與對應(yīng)的輸出連接起來,實現(xiàn)規(guī)定鏈路的連接??紤]到所含資源以及管腳數(shù)量,本設(shè)計方案選用Altera公司Cyclone Ⅲ系列EP3C25F256型FPGA.選用了4塊32路的電平轉(zhuǎn)換芯片實現(xiàn)5 V 信號向FPGA 能夠識別的TTL 信號的轉(zhuǎn)換。
其結(jié)構(gòu)框圖如圖1所示。
2 上位機設(shè)計
上位機的界面如圖2 所示。在相應(yīng)的輸入通道文本框里輸入0~64,點擊“確定”按鈕后,首先對文本框里所有的數(shù)據(jù)進行比較判斷,如出現(xiàn)重復(fù)則進行報錯,提示重新輸入。無誤后,通過串口按輸出接口順序依次向FPGA發(fā)送64條接口的連接指令。每一條指令包含3 B,第一個字節(jié)為信息頭“AA”,若FPGA接收到的某條指令的頭字節(jié)不是“AA”,則無返回信息,上位機將重新發(fā)送這條指令直到正確為止。第二個字節(jié)為輸入端口字節(jié),即對應(yīng)文本框中的數(shù)字,如沒有輸入數(shù)字則默認發(fā)送0,所以如需端口某條鏈路斷開只要在相應(yīng)的文本框中輸入0,點擊確定即可。第三個字節(jié)為輸出端口對應(yīng)的數(shù)據(jù),按1到64順序發(fā)送。圖2中的“遠控”按鈕為預(yù)留的用作計算機遠控使用。
3 下位機設(shè)計
3.1 串口通信協(xié)議
串行通信是一種可以將接收到的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時可將接收的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符發(fā)送出去的通信協(xié)議。
其數(shù)據(jù)幀主要包括1位起始位,8位數(shù)據(jù)位,1位奇偶校驗位,1/2位停止位。
3.2 FPGA內(nèi)部編程
FPGA模塊的主要功能是實現(xiàn)串口收發(fā)和譯碼,相應(yīng)地在用Verilog HDL實現(xiàn)時也分為串口收發(fā)和譯碼2個電路模塊,經(jīng)綜合后其RTL級視圖如圖3所示。開發(fā)工具采用Altera公司推出的集成EDA 開發(fā)工具Quartus Ⅱ,可以完成Altera公司所有的FPGA /CPLD產(chǎn)品開發(fā)的設(shè)計輸入、綜合、實現(xiàn)等環(huán)節(jié)。
3.2.1 串口收發(fā)模塊設(shè)計
串口收發(fā)模塊就是圖3中的uart_top模塊,主要負責串行數(shù)據(jù)的接收與發(fā)送,并將接收到的數(shù)據(jù)送入下一級。
該模塊的功能已通過串口調(diào)試工具調(diào)試成功。該模塊由4個子模塊構(gòu)成,分別為控制接收波特率的speed_rx模塊、控制發(fā)送波特率的speed_tx 模塊、數(shù)據(jù)接收模塊my_uart_rx、數(shù)據(jù)發(fā)送模塊my_uart_tx.
接收、發(fā)送波特率的控制可以引用同一模塊的發(fā)送來實現(xiàn)。其模塊化框圖如圖4所示,當檢測到輸入信號 bps_start出現(xiàn)一個上升沿后,則該模塊通過計數(shù)來實現(xiàn)分頻,例如時鐘頻率為25 MHz,波特率為9 600,則計數(shù)周期的25 000 000/9 600≈2 604,該模塊部分代碼如下:
數(shù)據(jù)接收模塊的模塊化框圖如圖5所示,它是通過移位運算來接收串行數(shù)據(jù),如檢測到rs232_rx 由高電平變?yōu)榈碗娖絼t開始移位接收數(shù)據(jù),每次接收3 B 的數(shù)據(jù),將第二、第三個字節(jié)輸入下一級,若檢測到第一個字節(jié)為10101010(即16進制的AA),標志信號flag就將維持一個周期的高電平輸出,否則flag一直維持高電平,那么后級將無法鎖存第二、第三字節(jié)。部分代碼如下:
數(shù)據(jù)發(fā)送模塊是用來返回接收數(shù)據(jù)讓上位機進行糾錯的,其模塊化框圖如圖6所示。如檢測到flag變?yōu)楦唠娖綍r,鎖存輸入的兩個字節(jié)返回給上位機,部分代碼如下:
3.2.2 譯碼模塊設(shè)計
譯碼模塊的模塊化框圖如圖7所示,其功能是對上位機發(fā)送的輸入輸出端口編號進行譯碼,使相應(yīng)的輸入端口和輸出端口連通,如檢測到flag 有效的情況下,rx_data_in為2,rx_data_out為3,則該模塊會將din[2]通道的輸入信號經(jīng)dout[3]輸出通道輸出。部分代碼如下[10]:
3.2.3 譯碼模塊仿真
由于64×64的仿真很繁瑣且不易操作,所以對4×4的譯碼模塊進行仿真,仿真結(jié)果如圖8所示,輸出1與輸入3相連,輸出2與輸入4相連,輸出3懸空,輸出4與輸入2相連。
4 結(jié)語
本文采用FPGA作為實現(xiàn)控制邏輯的核心部件,提出了基于FPGA的基帶64×64 數(shù)據(jù)分配矩陣設(shè)計方案,并介紹了上位機的軟件設(shè)計思路和FPGA的內(nèi)部編程實現(xiàn)及仿真。經(jīng)驗證本系統(tǒng)基本能實現(xiàn)基帶數(shù)字信號的分配路由,從而證實了該方案具有規(guī)模大、成本低、高速等特點,可廣泛應(yīng)用于大規(guī)?;鶐?shù)字系統(tǒng)測試及信號程控分配調(diào)度中。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。