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