《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PCIe總線的衛(wèi)星導(dǎo)航信號(hào)傳輸系統(tǒng)設(shè)計(jì)
基于PCIe總線的衛(wèi)星導(dǎo)航信號(hào)傳輸系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第6期
蔡曉暉1,鄭 植2,李 浩1
1.電子科技大學(xué) 電子科學(xué)技術(shù)研究院,四川 成都611731; 2.電子科技大學(xué) 通信與信息工程學(xué)院,四川 成都611731
摘要: 為了滿足高精度軟件接收機(jī)對(duì)衛(wèi)星導(dǎo)航中頻信號(hào)傳輸系統(tǒng)的新要求,設(shè)計(jì)了一種基于PCIe總線的傳輸系統(tǒng)。該系統(tǒng)以Virtex-5 FPGA為核心控制器件,以DMA方式通過4通道PCIe接口傳輸導(dǎo)航衛(wèi)星數(shù)據(jù)。詳細(xì)介紹傳輸系統(tǒng)AD模塊、DMA控制模塊、中斷模塊等核心模塊的FPGA實(shí)現(xiàn)方法。經(jīng)過測試與驗(yàn)證,系統(tǒng)讀寫速率分別達(dá)到了800 MB/s和650 MB/s,可以滿足不同層次導(dǎo)航軟件接收機(jī)對(duì)原始導(dǎo)航數(shù)據(jù)的需求。
關(guān)鍵詞: 衛(wèi)星導(dǎo)航 FPGA PCIe DMA
中圖分類號(hào): TN967;TP274
文獻(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.
Satellite navigation signal transmission system design based on PCIe bus
Cai Xiaohui1,Zheng Zhi2,Li Hao1
1.Research Institute of Electronic Science and Technology,University of Electronic Science and Technology of China, Chengdu 611731,China; 2.Institute Communication and Information Engineering,University of Electronic Science and Technology of China, Chengdu 611731,Chin
Abstract: In order to meet the new requirements on the signal transmission system of satellite navigation software receiver, a data transmission system which is based on the PCIe is designed. The system uses Virtex-5 FPGA as the core control device.The satellite navigation data can be transmitted by the 4 channel PCIe interface in the way of DMA. This paper details the transmission system of AD module,DMA control module, interrupt module of the FPGA realization method. After testing and verification, the speed of system can be reached 800 MB/s in write and 650 MB/s in read. The design can satisfy the demands of the different levels of software receiver in the data transmission.
Key words : satellite navigation;FPGA;PCIe;DMA

   

0 引言

    近年來,隨著軟件無線電技術(shù)的快速發(fā)展,GNSS軟件接收機(jī)因其高度的靈活性、通用性、開放性等優(yōu)點(diǎn),成為GNSS接收機(jī)的發(fā)展主流[1]。GNSS數(shù)據(jù)傳輸系統(tǒng)作為軟件接收機(jī)的硬件部分,通過射頻接收、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ù)傳輸速率都越來越無法滿足高性能軟件接收機(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ù)通過PCIe接口傳輸?shù)缴衔粰C(jī)。

qrs4-t1.gif

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)過FPGA數(shù)字處理模塊后變成IQ數(shù)據(jù),采樣率變?yōu)?0 Mb/s,通過數(shù)據(jù)緩存,經(jīng)PCIe接口傳輸?shù)缴衔粰C(jī)。

qrs4-b1.gif

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ā)送模塊、接收模塊以及中斷控制模塊。

qrs4-t2.gif

2.2.1 PCIE接口的配置空間

    PCI Express配置空間與驅(qū)動(dòng)程序設(shè)計(jì)密切相關(guān),它是PCI Express傳輸卡與上位機(jī)的接口管理部分。配置寄存器空間用來與上位機(jī)進(jìn)行交流,上位機(jī)驅(qū)動(dòng)程序主要通過這組寄存器對(duì)傳輸卡進(jìn)行控制。而FPGA端則根據(jù)上位機(jī)在配置寄存器中的具體參數(shù)來完成DMA傳輸。表2列出了這組寄存器的具體名稱及偏移地址。

qrs4-b2.gif

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所示。

qrs4-t3.gif

    初始狀態(tài)下狀態(tài)機(jī)處于TX_RXT復(fù)位狀態(tài),如圖4所示,其有效轉(zhuǎn)換狀態(tài)可以概括為以下幾點(diǎn):

qrs4-t4.gif

    (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ù)來組織發(fā)送相應(yīng)的MWR包。

    (3)發(fā)送存儲(chǔ)器讀數(shù)據(jù)包(MRD包):該數(shù)據(jù)包用來讀取上位機(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硬核傳輸過來的TLP包,其狀態(tài)機(jī)設(shè)計(jì)如圖5所示,可以大致分為以下幾種狀態(tài)跳轉(zhuǎn):

qrs4-t5.gif

    (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端通過讀寫B(tài)AR空間來實(shí)現(xiàn)板卡與上位機(jī)的“交流”,大致可以概括為以下兩點(diǎn):

    ①對(duì)于DMA寫操作:PC端通過MWR包來設(shè)置相應(yīng)寄存器的值,主要包含:WriteDMATLPAddress、WriteDMATLPSize、WriteDMATLPCount、DCSR2、INT。通過MRD包來讀取相應(yīng)寄存器的值,在DMA寫過程中主要讀取DMA寫結(jié)束寄存器來判斷DMA寫是否結(jié)束。

    ②對(duì)于DMA讀操作:PC端通過MWR包來設(shè)置相應(yīng)寄存器的值,主要包含:ReadDMATLPAddress、ReadDMATLPSize、WriteDMATLPCount、DCSR2、INT。通過MRD包來讀取相應(yīng)寄存器的值,在DMA讀過程中主要讀取DMA讀結(jié)束寄存器來判斷DMA讀是否結(jié)束。

    其操作配置空間寄存器流程如圖6所示。

qrs4-t6.gif

2.2.4 中斷控制模塊

    中斷是為計(jì)算機(jī)處理緊急事件或非預(yù)測事件而設(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ā)出中斷,第二次表示清除中斷。

qrs4-t7.gif

    設(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é)束。

qrs4-b3.gif

3 實(shí)驗(yàn)與測試

    數(shù)據(jù)采集傳輸卡設(shè)計(jì)完成后,在基于PCIe的總線的上位機(jī)上進(jìn)行測試,A/D端接入射頻前端的模擬中頻信號(hào),經(jīng)數(shù)據(jù)處理、緩存后送入PCIe總線并傳入上位機(jī),F(xiàn)PGA程序使用Verilog語言編寫,在ISE開發(fā)環(huán)境進(jìn)行設(shè)計(jì)和測試,上位機(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的傳輸。

qrs4-t8.gif

    考慮到上位機(jī)對(duì)FPGA發(fā)出的PCIe的中斷處理需要一定時(shí)間,而這個(gè)時(shí)間在DMA傳輸數(shù)據(jù)量較小時(shí)對(duì)系統(tǒng)性能影響較大,因此在速度測試時(shí)參考了3個(gè)速度,分別是傳輸卡、設(shè)備驅(qū)動(dòng)以及應(yīng)用程序,傳輸卡速度為PCIe傳輸接口上的總線速度,不考慮上位機(jī)的中斷響應(yīng)時(shí)間,測試結(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。

qrs4-t9.gif

qrs4-t10.gif

4 結(jié)論

    本文設(shè)計(jì)了一種基于Virtex-5 FPGA的4通道PCIe導(dǎo)航中頻信號(hào)傳輸系統(tǒng),經(jīng)過測試與驗(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í)該系統(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。