基于CPRI協(xié)議的光纖通訊設計與實現(xiàn)
摘要:針對分布式基站基帶處理單元和射頻拉遠單元之間的光纖連接,介紹了CPRI協(xié)議規(guī)范,討論了其基于FPGA的硬件實現(xiàn)方案。同時給出了基于FPGA與SCAN25100方案的設計,采用Verilog語言設計開發(fā)FPGA。該方案開發(fā)成本低,調試簡單方便。通過實際測試表明,該設計方案能夠有效實現(xiàn)基于CPRI協(xié)議的光纖通訊傳輸,工作性能穩(wěn)定。
關鍵詞:分布式基站;CPRI;光纖通訊;FPGA;SCAN25100
0 引言
2009年1月國內3G牌照正式發(fā)放,隨著3G時代的到來,各大通信運營商對3G移動通信網絡展開了大規(guī)模建設,投入巨大,而基站是3G網絡建設中,數(shù)量最多及成本最高的設備。移動通信領域日趨激烈的競爭,使得通信運營商比以往更加關注建網成本,而分布式基站具備低成本、高性能、快速運營等特性,能夠大大節(jié)省運營商的建網與運維成本。因此分布式基站成為當前3G網絡建設的最主要選擇。
分布式基站核心理念,是把傳統(tǒng)宏基站基帶處理單元(BBU)和射頻拉遠單元(RRU)分離,二者通過光纖相連。網絡部署時,將BBU、核心網、無線網絡控制設備集中在機房內,與規(guī)劃站點上部署的RRU通過光纖連接,完成網絡覆蓋。
為了有效處理分布式基站BBU與RRU間的光纖連接,無線通信行業(yè)形成兩個聯(lián)盟,分別制定了兩種接口標準:2002年諾基亞、LG、三星等宣布成立OBSAI(開放式基站結構同盟);2003年愛立信、華為、NEC、北電和西門子等聯(lián)合成立CPRI (通用公共無線接口組織)。本文主要介紹基于CPRI協(xié)議的光纖通訊。
1 CPRI協(xié)議概述
CPRI協(xié)議定義了兩個協(xié)議層。兩個協(xié)議層為物理層(L1)和數(shù)據鏈路層(L2)。在物理層中,將上層接入點的傳輸數(shù)據進行復/分接,并采用8B/10B編解碼,通過光模塊串行收發(fā)數(shù)據。數(shù)據鏈路層定義了一個同步的幀結構,包含基本幀和超幀(由256個基本幀組成),數(shù)據在L2層中,通過CPRI固定的幀結構形式進行相應的成幀和解幀處理。
基帶處理單元(BBU)和射頻拉遠單元(RRU)之間可以通過一條或多條CPRI數(shù)據鏈路來連接,每條CPRI數(shù)據鏈路支持614.4Mbps、1228.8M-bps和2457.6Mbps三種比特率高速串行傳輸。當前工業(yè)界,通過將四條并行CPRI數(shù)據鏈路進行相應串行化處理,可實現(xiàn)BBU與RRU之間通過光纖以近10Gbps(即4X2457.6 Mbps)速率超高速傳輸。
2 硬件方案
采用FPGA來設計實現(xiàn)基于CPRI協(xié)議的光纖通訊,可以有多種方案來實現(xiàn),下面介紹兩種方案。
方案一:采用集成了RocketIO模塊的FPGA。RocketlO收發(fā)器是在Xilinx公司Virtex2 Pro以上系列FPGA芯片中,集成的功能可配置千兆位級串行收發(fā)器??赏ㄟ^調用Xilinx公司的COREGenerator生成的IPCore來使用RocketIO收發(fā)器。該模塊的功能包括8B/10B編解碼,串并轉換,時鐘與數(shù)據流的綁定以及時鐘恢復等。使用此方案優(yōu)點是,可以使電路板尺寸較小、結構緊湊,可方便設置參數(shù);缺點是,一般集成了RocketIO的FPGA芯片價格均較高,必然帶來開發(fā)成本的提高,同時開發(fā)周期相對也較長。
方案二:FPGA與SCAN25100相結合。SCAN25100是美國國家半導體專門為新一代基站結構推出的串行/解串器,其集成了高精度延遲校準測量(DCM)電路及獨立的發(fā)送和接收系統(tǒng)鎖相環(huán)路,還具備先進的高速混合信號和時鐘管理以及信號調節(jié)等功能。同時芯片具備8B/10B編解碼、高速串并轉換、鎖定檢測、CPRI信號和幀丟失檢測等功能。可根據這款芯片來構建多天線技術分布式基站光纖互連解決方案。此方案開發(fā)成本較低,調試簡單方便,性能穩(wěn)定。
2.1 方案整體設計
本文主要針對方案二進行介紹與討論。該方案設計,由FPGA完成CPRI協(xié)議的成幀、解幀、同步、傳輸數(shù)據復,分接等操作,以及與SCAN 25100相關接口設計,同時負責對SCAN25100與光模塊控制與狀態(tài)監(jiān)控。SCAN25100負責實現(xiàn)8B/10B編解碼和高速串并轉換功能。
FPGA與SCAN25100之間通過使用并行數(shù)據線傳輸,SCAN25100的并行數(shù)據線支持8位和10位兩種模式,這里選擇用FPGA將SCAN25100配置成10位模式。SCAN25100完成8B/10B編解碼和高速串并轉換,與光模塊通過差分串行數(shù)據線相連。最后由光模塊完成光、電信號轉換,通過光纖與外部設備進行數(shù)據傳輸,實現(xiàn)光纖通訊數(shù)據收發(fā)。其方案原理框圖如圖1所示。
2.2 時鐘方案
采用輸出頻率為61.44MHz的有源晶振為FPGA提供系統(tǒng)基準時鐘(CLK61),系統(tǒng)所需的其他頻率時鐘,均可使用FPGA內置的時鐘管理模塊,對CLK61進行分頻、倍頻及移相而得。SCAN25100有四個時鐘端口,與FPGA相連。系統(tǒng)時鐘方案如圖2所示。
SCAN25100芯片內置振蕩器能夠產生一個30.72MHz時鐘SYSCLK輸出,提供給FPGA作參考時鐘。當系統(tǒng)作為REC端時,F(xiàn)PGA需要提供一個30.72MHz時鐘REFCLK,給SCAN25100作為參考時鐘。REFCLK和SYSCLK均使用LVDS差分電平,在FPGA內部使用緩沖器IBUFGDS來將輸入差分時鐘信號轉為單端時鐘,而使用OBUFDS將單端時鐘轉為差分時鐘輸出。
TXCLK為FPGA輸出給SCAN25100,用于采集輸出數(shù)據tx_data(9:0)的時鐘。RXCLK為SCAN25100輸出給FPGA,用于采集輸入數(shù)據rx_data(9:0)的時鐘。TXCLK和RXCLK配置使用INCMOS18電平,均為雙邊沿采集數(shù)據,其時鐘頻率由用戶根據需求配置SCAN25100串行接口(DOUT和RIN)的傳輸速率決定。SPMODE(1:0)的配置值決定傳輸速率,對應關系見表1。
2.3 PCB布板設計
PCB布板設計要特別注意信號完整性問題,尤其當系統(tǒng)設定速率為2457.6Mbps高速傳輸時。圖3所示為系統(tǒng)速率設定為2457.6Mbps,未注意信號完整性問題的PCB布板設計下,TXCLK時鐘信號眼圖,可以看到時鐘信號質量較差。而SCAN25100對TXCLK信號質量要求較高,如占空比要求為45%~55%范圍。經測試,在此設計下,當系統(tǒng)工作于614.4Mbps或1228.8Mbps時,系統(tǒng)能正常傳輸數(shù)據,但當系統(tǒng)速率轉換為2457.6Mbps,此時TXCLK/RXCLK雙邊沿對DDR(Double Data Rate)數(shù)據出現(xiàn)了錯誤采集,SCAN25100與光模塊之間的差分串行數(shù)據線傳輸也變得不穩(wěn)定。因此系統(tǒng)對PCB布板設計要求較高。
FPGA與SCAN25100之間的并行數(shù)據線要與相應的TXCLX/RXCLK時鐘線等長布線設計,同時根據國家半導體的推薦,布線應采用65歐姆阻抗匹配。SCAN25100與光模塊之間的高速差分串行數(shù)據線,應合理布局,使其盡可能得短,同時DOUT和RIN應布于不同層盡量分隔開布線,這樣盡可能地減少DOUT和RIN之間的串擾。PCB布板優(yōu)化設計后,高速傳輸下TXCLK時鐘信號眼圖如圖4所示??梢钥吹?ldquo;眼睛”張開,信號質量得到改善。
3 FPGA設計
FPGA內CPRI數(shù)據包括用戶I/Q數(shù)據、控制管理數(shù)據和同步數(shù)據。在發(fā)送端,通過CPRI固定的幀結構形式將這三部分數(shù)據進行復接與成幀處理,然后發(fā)送給SCAN25100完成物理層8B/10B編碼和并串轉換。在接收端,光模塊接收回的數(shù)據,經由SCAN25100物理層8B/10B解碼和串并轉換,F(xiàn)PGA將這三部分數(shù)據進行分接與解幀處理,并提取出時鐘信號。下面分別對FPGA對SCAN25100控制與狀態(tài)監(jiān)控,數(shù)據接口發(fā)送與接收模塊進行相應介紹,采用Verilog語言設計相應模塊。
3. 1 配置與監(jiān)控模塊
FPGA需要根據系統(tǒng)需求對SCAN25100進行相應的配置,如設置芯片管腳使用電平標準,傳輸速率SPMODE(1:0)等,以使其正常啟動工作。對SCAN25100的配置,可以使用兩種方式。通過對SCAN25100芯片的相應配置管腳直接進行電平拉高或拉低操作,這種方式較為簡單,但無法實現(xiàn)系統(tǒng)工作時動態(tài)改變配置值;FPGA將配置數(shù)據通過芯片的MDIO接口寫入芯片,這種方式需要FPGA同樣定義一個MDIO接口,配置過程稍顯復雜,優(yōu)點在于輔助軟件的支持可以在系統(tǒng)工作時動態(tài)改變配置值。
為了系統(tǒng)調試工作的方便,通過FPGA對SCAN25100的狀態(tài)監(jiān)控是非常有必要的,需要將芯片的幾個反映芯片工作狀態(tài)數(shù)據輸出給FPGA。
3.2 發(fā)送模塊
CPRI標準數(shù)據位為16位,在發(fā)送時需要將16位數(shù)據分拆為高8位與低8位,然后使用FPGA的ODDR模塊,將分拆后高8位與低8位數(shù)據拼接成DDR數(shù)據輸出,同時輸出TXCLK送給SCAN25100采集DDR數(shù)據。這里需要調節(jié)好TXCLK與輸出DDR數(shù)據的相位關系,以保證SCAN25100能夠正確采集數(shù)據。
3.3 接收模塊
通過光纖接收回來的數(shù)據,經由SCAN25100物理層8B/10B解碼后,以DDR數(shù)據并行傳輸給FPGA,此時數(shù)據位為10位,其中低8位為有效數(shù)據。使用SCAN25100同步輸出的RXCLK用于FPGA內部的IDDR模塊采集數(shù)據,IDDR模塊兩個數(shù)據端口分別輸出數(shù)據的高低位,將數(shù)據進行相應拼接獲得16位CPRI數(shù)據。此時還需要通過一個異步FIFO,將數(shù)據由RXCLK時鐘域轉為FPGA內部時鐘域。最后數(shù)據可以送給CPRI模塊進行分接與解幀處理。
4 實際測試
4.1 測試方法
為了對系統(tǒng)的光纖通訊傳輸進行測試,在FPGA中定義了一個PRBS(偽隨機碼序列)模塊,用于產生測試數(shù)據,數(shù)據幀頭為0x50BC。例化兩個相同的PRBS模塊,一個放置于發(fā)送端,產生測試數(shù)據,通過發(fā)送模塊,由FPGA輸出。將一根光纖的兩端同時連接于光模塊形成自環(huán)回路,F(xiàn)PGA發(fā)送端輸出的PRBS測試數(shù)據,經由FPGA外部回環(huán)返回給FPGA接收。當FPGA接收端接收到數(shù)據為0x50BC時,接收端放置的另一個相同PRBS模塊開始啟動(未接收到幀頭0x50BC則一直處于等待狀態(tài)),產生與發(fā)送端相同PRBS數(shù)據送入PRBS比對模塊,與接收數(shù)據進行比對。PRBS比對模塊輸出比對結果,同時可使用Chipscope抓取接收數(shù)據與發(fā)送數(shù)據對比,確認系統(tǒng)是否正常工作。測試方案結構圖見圖5所示。
4.2 測試結果
在實驗室環(huán)境下,對系統(tǒng)的光纖通訊傳輸進行相應測試。通過Chipscope來抓取收發(fā)數(shù)據以及一些標志信號,Chipscope測試結果如圖6所示。圖中prbs_check_sync信號值為‘1’,表明接收端PRBS模塊接收到幀頭0x50BC啟動;prbs_d為接收數(shù)據,prbs_d_s1為接收端PRBS模塊同步產生數(shù)據;prbs_check_err信號值為‘0’表明比對結果正確;los_reg、lock_reg以及cdet_reg均為SCAN25100輸出的狀態(tài)信號,其值表明SCAN25100工作狀態(tài)正常。通過測試檢查,表明系統(tǒng)能夠正常工作,完成光纖通訊傳輸。
5 結束語
通過對系統(tǒng)的反復測試,測試結果證明,該設計方案能夠有效實現(xiàn)基于CPRI協(xié)議的光纖通訊傳輸。通過不斷調整優(yōu)化FPGA設計與電路板、PCB設計,整個系統(tǒng)能夠正常穩(wěn)定地工作。