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