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