基于FPGA的實(shí)時(shí)數字化光纖傳輸系統
3 軟件設計
設計采用自頂向下的模塊化設計方法,用Verilog硬件語(yǔ)言編程,實(shí)現FPGA對光纖接口處芯片、A/D和 D/A轉換器等外圍電路的控制。
3.1 發(fā)送端FPGA程序設計
發(fā)送端FPGA邏輯設計主要包括采樣存儲邏輯、校驗、成幀及編碼邏輯和光發(fā)送器接口邏輯。
3.1.1 采樣存儲邏輯
采樣存儲邏輯完成數據的采集以及實(shí)時(shí)存儲。其邏輯形式及原理框圖如圖5所示。本文引用地址:http://dyxdggzs.com/article/190349.htm
AT84AS001是ADC芯片。輸入的差分數據直接接到FPGA的專(zhuān)用差分引腳。采集存儲控制邏輯包括LVDS接收以及數據重組等模塊,通過(guò)LVDS接收器將雙沿時(shí)鐘變?yōu)閱窝?,數據重組模塊進(jìn)行數據重新排序,還原原始數據流。最后在FIFO中進(jìn)行緩存。
3.1.2 校驗、成幀及編碼邏輯
校驗、成幀及編碼邏輯完成數據格式轉換,將處理后的數據進(jìn)行CRC編碼、成幀、8B/10B編碼和并串轉換。算法流程如圖6所示。
3.1.3 光發(fā)送器接口邏輯
光發(fā)送器接口邏輯完成幀數據到高速串行數據流的轉換。直接利用FPGA內部的專(zhuān)用收發(fā)器,其結構如圖7所示。
幀數據首先南發(fā)射相位補償FIFO模塊進(jìn)行相位補償,抵消時(shí)鐘相位差,然后通過(guò)字節串行器將數據轉換為8位,接著(zhù)進(jìn)行8B/10B編碼,并由串行器轉換為高速數據流,由專(zhuān)用差分輸出口輸出。
3.2 接收端FPGA程序設計
發(fā)送端FPGA邏輯設計主要包括光接收器接口邏輯和解碼、解幀及校驗邏輯。
3.2.1 光接收器接口邏輯
TLK1501有一個(gè)狀態(tài)機,負責監測不同的工作狀態(tài),即同步捕獲模式、同步模式和誤碼檢測模式。上電或復位后,狀態(tài)機進(jìn)入同步捕獲模式,當接收到3個(gè)連續的IDLE碼或載波擴展碼或1個(gè)有效數據或錯誤延時(shí),即進(jìn)入同步模式。在同步模式下進(jìn)行數據的正常接收與發(fā)送。在這個(gè)模式下,TLK1501接收到一個(gè)無(wú)效代碼,狀態(tài)機立即進(jìn)入誤碼檢測模式。檢測模式收到4個(gè)連續無(wú)效代碼時(shí),TLK1501立即重新進(jìn)入捕獲模式。TLK1501同步狀態(tài)機如圖8所示。
評論