文獻(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ī)因其高度的靈活性,、通用性,、開放性等優(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)(見表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à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ì)由開始狀態(tài)進(jìn)入發(fā)送CPLD包的狀態(tài),,根據(jù)讀請(qǐng)求包中的地址信息,將配置空間對(duì)應(yīng)寄存器中數(shù)據(jù)返回給上位機(jī)。
(2)發(fā)送存儲(chǔ)器寫數(shù)據(jù)包(MWR包):在配置寄存器中存儲(chǔ)著每次DMA寫操作的相關(guān)參數(shù),,當(dāng)DMA寫開始后,,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讀開始后,,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),開始接收PC端的數(shù)據(jù),。
(2)接收存儲(chǔ)器寫數(shù)據(jù)包(MWR包)和存儲(chǔ)器讀數(shù)據(jù)包(MRD包):PC端能夠讀寫板卡的范圍只能是配置空間的配置寄存器,,并且每次讀寫只能是一個(gè)雙字。PC端通過(guò)讀寫B(tài)AR空間來(lái)實(shí)現(xiàn)板卡與上位機(jī)的“交流”,,大致可以概括為以下兩點(diǎn):
①對(duì)于DMA寫操作:PC端通過(guò)MWR包來(lái)設(shè)置相應(yīng)寄存器的值,,主要包含:WriteDMATLPAddress、WriteDMATLPSize,、WriteDMATLPCount,、DCSR2、INT,。通過(guò)MRD包來(lái)讀取相應(yīng)寄存器的值,,在DMA寫過(guò)程中主要讀取DMA寫結(jié)束寄存器來(lái)判斷DMA寫是否結(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讀或者寫完成后,F(xiàn)PGA發(fā)出相應(yīng)的讀寫完成中斷到上位機(jī),,同時(shí)將中斷寄存器中的中斷有效位和讀/寫位置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ǔ)言編寫,在ISE開發(fā)環(huán)境進(jìn)行設(shè)計(jì)和測(cè)試,,上位機(jī)驅(qū)動(dòng)采用微軟的驅(qū)動(dòng)開發(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)用層讀寫速度較慢;當(dāng)傳輸數(shù)據(jù)逐漸增大后,,三者傳輸速度趨于一致,,DMA寫速度為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.