基于CPRI協議的光纖通訊設計與實現
3.2 發送模塊
CPRI標準數據位為16位,在發送時需要將16位數據分拆為高8位與低8位,然后使用FPGA的ODDR模塊,將分拆后高8位與低8位數據拼接成DDR數據輸出,同時輸出TXCLK送給SCAN25100采集DDR數據。這里需要調節好TXCLK與輸出DDR數據的相位關系,以保證SCAN25100能夠正確采集數據。
3.3 接收模塊
通過光纖接收回來的數據,經由SCAN25100物理層8B/10B解碼后,以DDR數據并行傳輸給FPGA,此時數據位為10位,其中低8位為有效數據。使用SCAN25100同步輸出的RXCLK用于FPGA內部的IDDR模塊采集數據,IDDR模塊兩個數據端口分別輸出數據的高低位,將數據進行相應拼接獲得16位CPRI數據。此時還需要通過一個異步FIFO,將數據由RXCLK時鐘域轉為FPGA內部時鐘域。最后數據可以送給CPRI模塊進行分接與解幀處理。
4 實際測試
4.1 測試方法
為了對系統的光纖通訊傳輸進行測試,在FPGA中定義了一個PRBS(偽隨機碼序列)模塊,用于產生測試數據,數據幀頭為0x50BC。例化兩個相同的PRBS模塊,一個放置于發送端,產生測試數據,通過發送模塊,由FPGA輸出。將一根光纖的兩端同時連接于光模塊形成自環回路,FPGA發送端輸出的PRBS測試數據,經由FPGA外部回環返回給FPGA接收。當FPGA接收端接收到數據為0x50BC時,接收端放置的另一個相同PRBS模塊開始啟動(未接收到幀頭0x50BC則一直處于等待狀態),產生與發送端相同PRBS數據送入PRBS比對模塊,與接收數據進行比對。PRBS比對模塊輸出比對結果,同時可使用Chipscope抓取接收數據與發送數據對比,確認系統是否正常工作。測試方案結構圖見圖5所示。本文引用地址:http://www.104case.com/article/156425.htm
4.2 測試結果
在實驗室環境下,對系統的光纖通訊傳輸進行相應測試。通過Chipscope來抓取收發數據以及一些標志信號,Chipscope測試結果如圖6所示。圖中prbs_check_sync信號值為‘1’,表明接收端PRBS模塊接收到幀頭0x50BC啟動;prbs_d為接收數據,prbs_d_s1為接收端PRBS模塊同步產生數據;prbs_check_err信號值為‘0’表明比對結果正確;los_reg、lock_reg以及cdet_reg均為SCAN25100輸出的狀態信號,其值表明SCAN25100工作狀態正常。通過測試檢查,表明系統能夠正常工作,完成光纖通訊傳輸。
5 結束語
通過對系統的反復測試,測試結果證明,該設計方案能夠有效實現基于CPRI協議的光纖通訊傳輸。通過不斷調整優化FPGA設計與電路板、PCB設計,整個系統能夠正常穩定地工作。
評論