文獻標(biāo)識碼: A
文章編號: 0258-7998(2015)06-0024-03
中文引用格式:蔡曉暉,鄭植,李浩.基于PCIe總線的衛(wèi)星導(dǎo)航信號傳輸系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(06):24-26+30.
0 引言
近年來,,隨著軟件無線電技術(shù)的快速發(fā)展,GNSS軟件接收機因其高度的靈活性,、通用性,、開放性等優(yōu)點,,成為GNSS接收機的發(fā)展主流[1]。GNSS數(shù)據(jù)傳輸系統(tǒng)作為軟件接收機的硬件部分,,通過射頻接收,、A/D轉(zhuǎn)換、數(shù)字采集與傳輸?shù)饶K為GNSS軟件接收機提供原始的觀察數(shù)據(jù),,原始數(shù)據(jù)的質(zhì)量在一定程度上影響著軟件接收機對原始數(shù)據(jù)的要求,。
目前導(dǎo)航中頻信號的傳輸系統(tǒng)大都基于USB、PCI總線[2-3],,采樣速率,、數(shù)據(jù)傳輸速率都越來越無法滿足高性能軟件接收機的需求,PCIe作為第三代的高性能I/O串行總線,,在總線帶寬,、傳輸速率、靈活性等方面都有了較大的提升,,根據(jù)實際系統(tǒng)的不同,,它可以靈活配置成X1、X4,、X8和X16通道,,單通道在每個方向上的發(fā)送與接收速率可以達到2.5 Gb/s,可以滿足各種軟件接收機對原始導(dǎo)航數(shù)據(jù)的需求,。
1 系統(tǒng)組成
本文所設(shè)計的導(dǎo)航數(shù)字中頻信號傳輸系統(tǒng)由A/D模塊,、Xilinx、PCIe IP硬核+PCIe-DMA控制模塊,、數(shù)據(jù)緩存模塊組成,,系統(tǒng)基本結(jié)構(gòu)如圖1所示。A/D模塊接收射頻前端產(chǎn)生的模擬中頻型號,,對其進行240 MS/s的采樣,;FPGA完成A/D的控制邏輯及采樣后信號的數(shù)字處理,同時FPGA還產(chǎn)生PCIe硬核的DMA控制邏輯,,將最終的導(dǎo)航數(shù)據(jù)通過PCIe接口傳輸?shù)缴衔粰C,。
2 系統(tǒng)關(guān)鍵模塊設(shè)計
2.1 A/D模塊設(shè)計
模數(shù)轉(zhuǎn)換器(ADC)是采集系統(tǒng)的關(guān)鍵器件之一。系統(tǒng)采用AD9467實現(xiàn)數(shù)據(jù)轉(zhuǎn)換功能,,AD9467是一款量化精度為16 bit,、采樣時鐘頻率高達250 MHz的模數(shù)轉(zhuǎn)換器,具有優(yōu)異的性能,。該模塊接收射頻前端模塊經(jīng)下變頻產(chǎn)生的模擬中頻信號,考慮到GNSS各頻段導(dǎo)航信號(包括GPS,、GLONSS,、GALILEO以及北斗)為大約210 MHz[4]的帶通信號(見表1)以及整數(shù)倍頻率抽取兩個因素,,將A/D采樣頻率設(shè)置為240 MS/s,采樣后的數(shù)據(jù)經(jīng)過FPGA數(shù)字處理模塊后變成IQ數(shù)據(jù),,采樣率變?yōu)?0 Mb/s,,通過數(shù)據(jù)緩存,經(jīng)PCIe接口傳輸?shù)缴衔粰C,。
2.2 PCIe-DMA控制模塊設(shè)計
本系統(tǒng)采用Xilinx公司的Virtex5-XC5VFX70T芯片,,該芯片集成了PCIe硬核,實現(xiàn)了X4通道的PCIe接口,。系統(tǒng)的DMA控制邏輯原理框圖如圖2所示,,其主要包含PCIe配置空間接口設(shè)計、發(fā)送模塊,、接收模塊以及中斷控制模塊,。
2.2.1 PCIE接口的配置空間
PCI Express配置空間與驅(qū)動程序設(shè)計密切相關(guān),它是PCI Express傳輸卡與上位機的接口管理部分,。配置寄存器空間用來與上位機進行交流,,上位機驅(qū)動程序主要通過這組寄存器對傳輸卡進行控制。而FPGA端則根據(jù)上位機在配置寄存器中的具體參數(shù)來完成DMA傳輸,。表2列出了這組寄存器的具體名稱及偏移地址,。
2.2.2 數(shù)據(jù)發(fā)送模塊
在本設(shè)計中,發(fā)送數(shù)據(jù)模塊(TX_ENGING)接收經(jīng)A/D采樣,、數(shù)字處理后的導(dǎo)航信號,,根據(jù)上位機的DMA讀請求,將導(dǎo)航數(shù)據(jù)組織成相應(yīng)的TLP包[5]發(fā)送至上位機,。其幀頭格式如圖3所示,。
初始狀態(tài)下狀態(tài)機處于TX_RXT復(fù)位狀態(tài),如圖4所示,,其有效轉(zhuǎn)換狀態(tài)可以概括為以下幾點:
(1)發(fā)送CPLD包:TX端帶數(shù)據(jù)的完成包主要響應(yīng)上位機對配置空間的讀請求,,當(dāng)板卡RX端收到上位機的DMA讀請求后,會由開始狀態(tài)進入發(fā)送CPLD包的狀態(tài),,根據(jù)讀請求包中的地址信息,,將配置空間對應(yīng)寄存器中數(shù)據(jù)返回給上位機。
(2)發(fā)送存儲器寫數(shù)據(jù)包(MWR包):在配置寄存器中存儲著每次DMA寫操作的相關(guān)參數(shù),,當(dāng)DMA寫開始后,,TX端會根據(jù)上述寄存器參數(shù)來組織發(fā)送相應(yīng)的MWR包。
(3)發(fā)送存儲器讀數(shù)據(jù)包(MRD包):該數(shù)據(jù)包用來讀取上位機的回傳數(shù)據(jù),,當(dāng)DMA讀開始后,,TX端會根據(jù)配置寄存器參數(shù)組織發(fā)送相應(yīng)的MRD包。
2.2.3 數(shù)據(jù)接收模塊
接收端(RX_ENGING)接收上位機經(jīng)PCIe IP硬核傳輸過來的TLP包,,其狀態(tài)機設(shè)計如圖5所示,,可以大致分為以下幾種狀態(tài)跳轉(zhuǎn):
(1)接收完成包(CPLD包):當(dāng)TX端發(fā)出對上位機的讀請求后,,RX端會收到上位機發(fā)出的CPLD完成包,其中包內(nèi)的數(shù)據(jù)即為所要讀取的PC端數(shù)據(jù),,此時狀態(tài)機進入CPLD狀態(tài),,開始接收PC端的數(shù)據(jù)。
(2)接收存儲器寫數(shù)據(jù)包(MWR包)和存儲器讀數(shù)據(jù)包(MRD包):PC端能夠讀寫板卡的范圍只能是配置空間的配置寄存器,,并且每次讀寫只能是一個雙字,。PC端通過讀寫B(tài)AR空間來實現(xiàn)板卡與上位機的“交流”,大致可以概括為以下兩點:
①對于DMA寫操作:PC端通過MWR包來設(shè)置相應(yīng)寄存器的值,,主要包含:WriteDMATLPAddress,、WriteDMATLPSize、WriteDMATLPCount,、DCSR2,、INT。通過MRD包來讀取相應(yīng)寄存器的值,,在DMA寫過程中主要讀取DMA寫結(jié)束寄存器來判斷DMA寫是否結(jié)束,。
②對于DMA讀操作:PC端通過MWR包來設(shè)置相應(yīng)寄存器的值,主要包含:ReadDMATLPAddress,、ReadDMATLPSize,、WriteDMATLPCount、DCSR2,、INT,。通過MRD包來讀取相應(yīng)寄存器的值,在DMA讀過程中主要讀取DMA讀結(jié)束寄存器來判斷DMA讀是否結(jié)束,。
其操作配置空間寄存器流程如圖6所示,。
2.2.4 中斷控制模塊
中斷是為計算機處理緊急事件或非預(yù)測事件而設(shè)計的,也是PCIe傳輸系統(tǒng)設(shè)計的重要組成部分[6],,優(yōu)良的中斷設(shè)計可以有效提高整個系統(tǒng)的性能,。在Xilinx平臺中,發(fā)出中斷主要操作核的4個信號,,其時序圖如圖7所示,,cfg_interrupt_n為中斷信號,在整個中斷周期內(nèi)拉低兩次,,第一次表示發(fā)出中斷,,第二次表示清除中斷。
設(shè)置配置空間偏移地址0x50為中斷寄存器,,其具體格式如表3所示,。當(dāng)DMA讀或者寫完成后,F(xiàn)PGA發(fā)出相應(yīng)的讀寫完成中斷到上位機,同時將中斷寄存器中的中斷有效位和讀/寫位置1,,上位機驅(qū)動收到該中斷后,,讀取BAR空間中斷寄存器的值,判斷中斷類型,,進入相應(yīng)中斷處理程序,此后FPGA端發(fā)出清除中斷信號,,同時將中斷寄存器各位置0,,當(dāng)上位機收到該信號后,跳出中斷控制程序,,數(shù)據(jù)傳輸結(jié)束,。
3 實驗與測試
數(shù)據(jù)采集傳輸卡設(shè)計完成后,在基于PCIe的總線的上位機上進行測試,,A/D端接入射頻前端的模擬中頻信號,,經(jīng)數(shù)據(jù)處理、緩存后送入PCIe總線并傳入上位機,,F(xiàn)PGA程序使用Verilog語言編寫,,在ISE開發(fā)環(huán)境進行設(shè)計和測試,上位機驅(qū)動采用微軟的驅(qū)動開發(fā)環(huán)境WDF(Windows Driver Foundation),。系統(tǒng)集成后首先利用ISE ChipScope工具對硬件邏輯設(shè)計部分進行驗證,,圖8所示為一次導(dǎo)航數(shù)據(jù)DMA傳輸?shù)臅r序圖,為了便于觀察時序,,設(shè)置一次傳輸DMA的包個數(shù)為100,。時序分析可知,中斷控制信號cfg_interrupt_n在數(shù)據(jù)發(fā)送端口trn_td發(fā)送完數(shù)據(jù)包后,,連續(xù)兩次有效,,最終完成一次DMA的傳輸。
考慮到上位機對FPGA發(fā)出的PCIe的中斷處理需要一定時間,,而這個時間在DMA傳輸數(shù)據(jù)量較小時對系統(tǒng)性能影響較大,,因此在速度測試時參考了3個速度,分別是傳輸卡,、設(shè)備驅(qū)動以及應(yīng)用程序,,傳輸卡速度為PCIe傳輸接口上的總線速度,不考慮上位機的中斷響應(yīng)時間,,測試結(jié)果如圖9,、圖10所示。結(jié)果表明,,在傳輸數(shù)據(jù)較小時由于上位機中斷處理所需時間,,驅(qū)動層與應(yīng)用層讀寫速度較慢;當(dāng)傳輸數(shù)據(jù)逐漸增大后,三者傳輸速度趨于一致,,DMA寫速度為800 MB/s,,DMA讀速度為630 MB/s。
4 結(jié)論
本文設(shè)計了一種基于Virtex-5 FPGA的4通道PCIe導(dǎo)航中頻信號傳輸系統(tǒng),,經(jīng)過測試與驗證,,該系統(tǒng)能夠滿足了高精度軟件接收機對導(dǎo)航原始數(shù)據(jù)的需求,與目前主流的基于USB,、PCI總線的導(dǎo)航中頻信號傳輸系統(tǒng)相比,,本系統(tǒng)在信號采集速率、傳輸速度方面都具有明顯的優(yōu)勢,。同時該系統(tǒng)的設(shè)計方法也可以推廣到雷達,、通信、圖像處理等高速數(shù)據(jù)傳輸領(lǐng)域,。
參考文獻
[1] 謝鋼.GPS原理與接收機設(shè)計[M].北京:電子工業(yè)出版社,,2009.
[2] 胡濱,王慶,,嚴(yán)偉.基于USB和FPGA的GPS中頻信號采集平臺設(shè)計[J].艦船電子對抗,,2009(9):63-66.
[3] 賈志宏,崔曉偉.室內(nèi)GPS的數(shù)字化采集設(shè)計[J].科學(xué)技術(shù)與工程,,2012(9):7031-7034.
[4] 鄧仕海,,姚錚.全頻段多系統(tǒng)全球?qū)Ш叫l(wèi)星系統(tǒng)數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2014(1):191-194.
[5] 候杭呈,,王憶文,,李輝.一種基于PCI Express總線的DMA高速傳輸系統(tǒng)[J].微電子學(xué),2013(6):383-386.
[6] 唐雷雷,,賀占莊.PCI Express總線中消息中斷的研究[J].微電子學(xué)與計算機,,2013(7):137-140.