《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于PCIe總線的衛(wèi)星導(dǎo)航信號傳輸系統(tǒng)設(shè)計
基于PCIe總線的衛(wèi)星導(dǎo)航信號傳輸系統(tǒng)設(shè)計
2015年電子技術(shù)應(yīng)用第6期
蔡曉暉1,,鄭 植2,李 浩1
1.電子科技大學(xué) 電子科學(xué)技術(shù)研究院,,四川 成都611731,; 2.電子科技大學(xué) 通信與信息工程學(xué)院,四川 成都611731
摘要: 為了滿足高精度軟件接收機對衛(wèi)星導(dǎo)航中頻信號傳輸系統(tǒng)的新要求,,設(shè)計了一種基于PCIe總線的傳輸系統(tǒng),。該系統(tǒng)以Virtex-5 FPGA為核心控制器件,以DMA方式通過4通道PCIe接口傳輸導(dǎo)航衛(wèi)星數(shù)據(jù),。詳細介紹傳輸系統(tǒng)AD模塊,、DMA控制模塊、中斷模塊等核心模塊的FPGA實現(xiàn)方法,。經(jīng)過測試與驗證,,系統(tǒng)讀寫速率分別達到了800 MB/s和650 MB/s,可以滿足不同層次導(dǎo)航軟件接收機對原始導(dǎo)航數(shù)據(jù)的需求。
關(guān)鍵詞: 衛(wèi)星導(dǎo)航 FPGA PCIe DMA
中圖分類號: TN967,;TP274
文獻標(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.
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軟件接收機因其高度的靈活性,、通用性,、開放性等優(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,。

qrs4-t1.gif

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,。

qrs4-b1.gif

2.2 PCIe-DMA控制模塊設(shè)計

    本系統(tǒng)采用Xilinx公司的Virtex5-XC5VFX70T芯片,,該芯片集成了PCIe硬核,實現(xiàn)了X4通道的PCIe接口,。系統(tǒng)的DMA控制邏輯原理框圖如圖2所示,,其主要包含PCIe配置空間接口設(shè)計、發(fā)送模塊,、接收模塊以及中斷控制模塊,。

qrs4-t2.gif

2.2.1 PCIE接口的配置空間

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

qrs4-b2.gif

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

qrs4-t3.gif

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

qrs4-t4.gif

    (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):

qrs4-t5.gif

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

qrs4-t6.gif

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ā)出中斷,,第二次表示清除中斷。

qrs4-t7.gif

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

qrs4-b3.gif

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的傳輸。

qrs4-t8.gif

    考慮到上位機對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。

qrs4-t9.gif

qrs4-t10.gif

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.

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