基于FPGA的實時數(shù)字化光纖傳輸系統(tǒng)的設(shè)計與實現(xiàn)
在電子設(shè)計領(lǐng)域中,通常要對多路寬帶信號進行實時采集、處理和傳輸。傳統(tǒng)的信號采集傳輸系統(tǒng),采用專用集成電路控制A/D轉(zhuǎn)換器等外圍電路。由于專用集成電路時鐘頻率低、靈活性差、實時性低、傳輸速度慢、通用性差等缺點,難以滿足對高速寬帶信號采集和處理的要求。FPGA具有時鐘頻率高、速度快、采集實時性高、控制靈活等特點,與A/D轉(zhuǎn)換器等外圍電路結(jié)合,更適于高速數(shù)字信號處理。光纖傳輸與電氣傳輸相比,具有傳輸頻帶寬、通信容量大、傳輸損耗低、抗電磁干擾性能強、抗輻射能力強、保密性好、重量輕等特點,在通信領(lǐng)域被廣泛應(yīng)用。
文中提出基于FPGA和光纖傳輸?shù)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/高速數(shù)字信號傳輸">高速數(shù)字信號傳輸方案。以帶有收發(fā)器的高性能FPGA為控制核心,控制外圍A/D轉(zhuǎn)換器和數(shù)據(jù)處理,通過光纖媒介進行數(shù)據(jù)傳輸,滿足高速數(shù)字信號實時處理和傳輸?shù)?br />要求。
1 系統(tǒng)總體設(shè)計方案
光纖傳輸系統(tǒng)是以光波為信息載體、光纖為傳輸媒介,用光來傳輸信息的傳輸系統(tǒng)。光纖傳輸系統(tǒng)總體框圖如圖1所示,發(fā)送端主要由A/D采集、FPGA數(shù)據(jù)預處理、光纖發(fā)送模塊組成;接收端主要由光纖接收模塊、FPGA數(shù)據(jù)后處理、D/A轉(zhuǎn)換模塊組成。兩者通過光纖進行通訊。
在發(fā)送端,先將外部輸入的模擬信號進行預處理,再通過A/D轉(zhuǎn)換器轉(zhuǎn)化為數(shù)字信號送入FPGA進行處理。根據(jù)數(shù)據(jù)傳輸以及通信協(xié)議的要求,F(xiàn)PGA將預處理后的A/D數(shù)據(jù)進行編碼、成幀。然后由FPGA內(nèi)部的IP核進行并串轉(zhuǎn)換,最后由光收發(fā)模塊完成電光轉(zhuǎn)換后,通過光纖發(fā)送出去。
在接收端,光收發(fā)器模塊將接收到的光信號轉(zhuǎn)化為電信號,完成高速串行數(shù)據(jù)到并行數(shù)據(jù)的轉(zhuǎn)換;然后,將轉(zhuǎn)換后的并行數(shù)據(jù)送入FPG A,F(xiàn)PGA完成信號的解幀、解碼,并進行后處理,該過程是發(fā)送端的逆過程。最后,經(jīng)D/A轉(zhuǎn)換器將接收到的數(shù)據(jù)恢復成模擬信號。
2 硬件電路設(shè)計
2.1 發(fā)送端硬件電路設(shè)計
可編程邏輯器件FPGA是主控芯片,是系統(tǒng)的核心,設(shè)計選用Altera公司帶有收發(fā)器的Arria GX系列芯片EP1AGX50CF48416。芯片內(nèi)部集成了4個收發(fā)器通道,傳輸數(shù)據(jù)率從600 Mbit·s-1到3.152Gbit·s-1,收發(fā)器每通道在2.5 Gbit·s-1時消耗功率僅為125 mW;收發(fā)器可利用固定均衡設(shè)置來均衡串行通道,實現(xiàn)發(fā)送預加重和接收均衡;收發(fā)器支持串行環(huán)回、反向串行環(huán)回以及偽隨機二進制序列(PRBS)產(chǎn)生器和校驗器。專用收發(fā)器接口電路如圖2所示。RREFB14接一個2kΩ/1%的參考電阻,其他未使用的收發(fā)管腳通過10kΩ電阻到電源或地。
光收發(fā)模塊選用MXP-243S-X型光收發(fā)器,其可處理的數(shù)據(jù)率為1.25 Gbit·s-1,單電源3.3 V供電,差分LVPECL電平輸入和輸出,發(fā)射和接收部分相互獨立。發(fā)射部分差分輸入阻抗100 Ω,傳輸光信號波長1310nm。光發(fā)射器電路圖如圖3所示。發(fā)射的差分數(shù)據(jù)接到FPGA的專用收發(fā)器的發(fā)射管腳G4和G5上,控制引腳直接接到普通L/O管腳,并通過上拉電阻接到電源。
2.2 接收端電路設(shè)計
接收端FPGA也選用Altera公司的Arria GX系列芯片EP1AGX20CF48416。光收發(fā)模塊仍選用MXP-243S-X型光收發(fā)器。電路連接只需將圖3中的RD+、RD-端口直接接到光收發(fā)器TLK1501。
為了與下級系統(tǒng)匹配,設(shè)計串行收發(fā)器選用TI公司的TLK1501,支持最高1.2 Gbit·s-1的數(shù)據(jù)帶寬。其內(nèi)部集成有8 B/10 B編碼器、并串轉(zhuǎn)換器、差分輸入輸出接口、8 B/10 B解碼器、串并轉(zhuǎn)換器、時鐘管理模塊等。內(nèi)部有自檢環(huán)路,可方便地進行自檢,并集成信號丟失檢測,支持熱拔插,其電路如圖4所示。
R201,R202,R204,R205為50Ω匹配電阻,R203為參考電阻200Ω,R206和R207提供終端匹配所需要的偏置電壓。
3 軟件設(shè)計
設(shè)計采用自頂向下的模塊化設(shè)計方法,用Verilog硬件語言編程,實現(xiàn)FPGA對光纖接口處芯片、A/D和 D/A轉(zhuǎn)換器等外圍電路的控制。
3.1 發(fā)送端FPGA程序設(shè)計
發(fā)送端FPGA邏輯設(shè)計主要包括采樣存儲邏輯、校驗、成幀及編碼邏輯和光發(fā)送器接口邏輯。
3.1.1 采樣存儲邏輯
采樣存儲邏輯完成數(shù)據(jù)的采集以及實時存儲。其邏輯形式及原理框圖如圖5所示。
AT84AS001是ADC芯片。輸入的差分數(shù)據(jù)直接接到FPGA的專用差分引腳。采集存儲控制邏輯包括LVDS接收以及數(shù)據(jù)重組等模塊,通過LVDS接收器將雙沿時鐘變?yōu)閱窝?,?shù)據(jù)重組模塊進行數(shù)據(jù)重新排序,還原原始數(shù)據(jù)流。最后在FIFO中進行緩存。
3.1.2 校驗、成幀及編碼邏輯
校驗、成幀及編碼邏輯完成數(shù)據(jù)格式轉(zhuǎn)換,將處理后的數(shù)據(jù)進行CRC編碼、成幀、8B/10B編碼和并串轉(zhuǎn)換。算法流程如圖6所示。
3.1.3 光發(fā)送器接口邏輯
光發(fā)送器接口邏輯完成幀數(shù)據(jù)到高速串行數(shù)據(jù)流的轉(zhuǎn)換。直接利用FPGA內(nèi)部的專用收發(fā)器,其結(jié)構(gòu)如圖7所示。
幀數(shù)據(jù)首先南發(fā)射相位補償FIFO模塊進行相位補償,抵消時鐘相位差,然后通過字節(jié)串行器將數(shù)據(jù)轉(zhuǎn)換為8位,接著進行8B/10B編碼,并由串行器轉(zhuǎn)換為高速數(shù)據(jù)流,由專用差分輸出口輸出。
3.2 接收端FPGA程序設(shè)計
發(fā)送端FPGA邏輯設(shè)計主要包括光接收器接口邏輯和解碼、解幀及校驗邏輯。
3.2.1 光接收器接口邏輯
TLK1501有一個狀態(tài)機,負責監(jiān)測不同的工作狀態(tài),即同步捕獲模式、同步模式和誤碼檢測模式。上電或復位后,狀態(tài)機進入同步捕獲模式,當接收到3個連續(xù)的IDLE碼或載波擴展碼或1個有效數(shù)據(jù)或錯誤延時,即進入同步模式。在同步模式下進行數(shù)據(jù)的正常接收與發(fā)送。在這個模式下,TLK1501接收到一個無效代碼,狀態(tài)機立即進入誤碼檢測模式。檢測模式收到4個連續(xù)無效代碼時,TLK1501立即重新進入捕獲模式。TLK1501同步狀態(tài)機如圖8所示。
光接收器接口邏輯完成高速串行數(shù)據(jù)流到低速并行數(shù)據(jù)的轉(zhuǎn)換。使用串行收發(fā)器TLK1501,其結(jié)構(gòu)框圖如圖9所示。
由專用差分端口輸入的高速數(shù)據(jù)經(jīng)時鐘恢復單元進行時鐘恢復,串并轉(zhuǎn)換后進行10B/8B解碼,最后傳給FPGA進行解幀操作。
3.2.2 解碼、解幀及校驗邏輯
解碼、解幀及校驗邏輯完成數(shù)據(jù)格式轉(zhuǎn)換,將接收到的數(shù)據(jù)進行10B/8B解碼、解幀和CRC校驗,獲得有效數(shù)據(jù)。算法流程如圖10所示。
4 實驗仿真及波形
圖11是TLK1501穩(wěn)定傳輸數(shù)據(jù)效果。由圖可以看出,TLK1501實現(xiàn)了實時穩(wěn)定傳輸數(shù)據(jù)。
圖12是數(shù)據(jù)收發(fā)誤碼測試的仿真波形圖。data_all是到當前時鐘為止已測試的數(shù)據(jù)總量,data_err是到當前時鐘為止傳輸錯誤的數(shù)據(jù)總量,可以看出,在傳輸了百億個數(shù)據(jù)后,誤碼仍為零。
5 結(jié)束語
研究設(shè)計了一種基于FPGA和光纖通訊的高速數(shù)字信號傳輸方案。實驗結(jié)果表明,該方案實現(xiàn)了高速數(shù)字信號的實時傳輸,具有信號傳輸誤碼率低、系統(tǒng)工作性能穩(wěn)定、抗干擾性強的優(yōu)點,由于實際需要,系統(tǒng)在接收端采用TLK1501,這就限制了光纖傳輸?shù)乃俾?,若采用FPGA內(nèi)部的光纖收發(fā)模塊,則可進一步提高傳輸速率。
評論