文獻(xiàn)標(biāo)志碼:A
DOI: 10.16157/j.issn.0258-7998.233903
引用格式: 王子涵,巴曉輝,姜維,等. 基于CUDA加速的GPS L1C/A實(shí)時(shí)信號(hào)發(fā)生器設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2023,49(11):146-152.
【引言】
進(jìn)入21世紀(jì)后,隨著人類(lèi)步入到信息數(shù)字化時(shí)代,全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS(Global Navigation Satellite System)的應(yīng)用也從最初的軍事領(lǐng)域,滲透到包括交通、金融、航空、航海、測(cè)繪等生活的方方面面,成為關(guān)系人們?nèi)粘I畹囊豁?xiàng)重要基礎(chǔ)設(shè)施[1]。
全球衛(wèi)星導(dǎo)航系統(tǒng)一般由地面控制部分、空間衛(wèi)星星座和地面用戶設(shè)備三部分組成。除了要保證太空中衛(wèi)星的正常工作外,地面上的用戶設(shè)備也是系統(tǒng)正常運(yùn)行的關(guān)鍵一環(huán),而各種高性能接收機(jī)的開(kāi)發(fā)與調(diào)試都離不開(kāi)信號(hào)模擬器[2]。與直接讓接收機(jī)接收真實(shí)衛(wèi)星信號(hào)或使用信號(hào)回放儀回放衛(wèi)星信號(hào)的方法相比,信號(hào)模擬器可以根據(jù)用戶的需要,設(shè)計(jì)不同環(huán)境、不同復(fù)雜場(chǎng)景下的模擬衛(wèi)星信號(hào),從而為導(dǎo)航接收機(jī)等設(shè)備提供仿真測(cè)試條件[3]。此外,衛(wèi)星導(dǎo)航系統(tǒng)在軍事領(lǐng)域的更多潛力也在被迅速開(kāi)發(fā),通過(guò)使用欺騙技術(shù),使得敵方的精確武器、設(shè)備失去作戰(zhàn)能力,具有非常高的軍事研究?jī)r(jià)值,并已成為世界各國(guó)研究的熱點(diǎn)。而產(chǎn)生實(shí)時(shí)高效的模擬衛(wèi)星信號(hào)則是研究欺騙與反欺騙技術(shù)的技術(shù)前提,具有重要意義[4,5]。
傳統(tǒng)的GNSS信號(hào)模擬器由仿真控制軟件(simulation control software)和信號(hào)生成硬件(signal generation hardware)組成[6-7]。仿真控制軟件可以通過(guò)設(shè)置載體運(yùn)動(dòng)軌跡和模擬場(chǎng)景來(lái)生成GNSS信號(hào)。在信號(hào)生成硬件中,數(shù)字信號(hào)處理(Digital Signal Processor, DSP)芯片負(fù)責(zé)計(jì)算導(dǎo)航信息、狀態(tài)參數(shù)、控制參數(shù)。通過(guò)現(xiàn)場(chǎng)可編程門(mén)陣列(Field-Programmable Gate Array, FPGA)實(shí)現(xiàn)信號(hào)編碼和直接序列擴(kuò)頻調(diào)制,生成數(shù)字中頻信號(hào)。最后,再經(jīng)過(guò)模數(shù)轉(zhuǎn)換器(Digital to Analog Converter, DAC)和數(shù)字中頻信號(hào)的上變頻得到所需的衛(wèi)星信號(hào)[8-9]。
傳統(tǒng)的信號(hào)模擬器通常采用“FPGA+DSP”結(jié)構(gòu)。這種系統(tǒng)需要定制化,硬件成本高且靈活性低,用戶不能方便地更改導(dǎo)航電文、擴(kuò)頻碼等信息。此外,對(duì)于傳統(tǒng)信號(hào)模擬器,諸如認(rèn)證信息添加和多徑效應(yīng)模擬等功能的拓展也比較復(fù)雜。而模擬器在實(shí)際運(yùn)用過(guò)程中經(jīng)常需要根據(jù)需要,對(duì)不同場(chǎng)景、各種狀態(tài)的衛(wèi)星信號(hào)靈活模擬,傳統(tǒng)信號(hào)模擬器亟需改進(jìn)。
為解決上述問(wèn)題,基于軟件無(wú)線電(Software Defined Radio, SDR)的GNSS模擬器體系結(jié)構(gòu)開(kāi)始被人們所采用[10]。基于軟件無(wú)線電的GNSS模擬器使用仿真軟件來(lái)代替DSP和FPGA生成數(shù)字中頻信號(hào),由于整個(gè)中頻信號(hào)的產(chǎn)生是由軟件端完成的,因此系統(tǒng)功能的變更和拓展較為方便。此外,在多通道、高采樣率的情況下,普通的CPU很難做到實(shí)時(shí)地生成模擬GNSS信號(hào)。因此,通過(guò)運(yùn)用GPU加速的方法來(lái)滿足實(shí)時(shí)、多通道、高速率GNSS信號(hào)的模擬需求成為很多人的選擇[11-12]。
針對(duì)基于GPU的衛(wèi)星生成信號(hào)算法,前人已經(jīng)進(jìn)行了一些研究。文獻(xiàn)[13]對(duì)GPU優(yōu)化加速的方法進(jìn)行了系統(tǒng)性的總結(jié),并通過(guò)在相同條件下比較使用CPU和CPU+GPU兩種方法產(chǎn)生衛(wèi)星信號(hào)的快慢,證明了GPU對(duì)于信號(hào)加速的可行性及有效性;文獻(xiàn)[14]針對(duì)GPS L1信號(hào),對(duì)程序的并行線程結(jié)構(gòu)、內(nèi)存分配方式進(jìn)行了優(yōu)化,實(shí)現(xiàn)了多通道高采樣率的衛(wèi)星信號(hào)的實(shí)時(shí)生成;文獻(xiàn)[15]設(shè)計(jì)了一種數(shù)據(jù)結(jié)構(gòu),以提高GPU訪問(wèn)偽碼數(shù)據(jù)的速度,并最終高速實(shí)時(shí)生成了BDS B1I信號(hào)。但是,前人關(guān)于GPU信號(hào)加速的研究,主要是針對(duì)并行程序部分的線程結(jié)構(gòu)、內(nèi)存訪問(wèn)方式以及數(shù)據(jù)存儲(chǔ)方法的優(yōu)化,而系統(tǒng)在執(zhí)行核函數(shù)以外的命令時(shí),仍然是以串行運(yùn)行為主的方式,這造成了資源上的浪費(fèi)。對(duì)此,本文在繼承前人優(yōu)化思想的基礎(chǔ)上,運(yùn)用異步運(yùn)行的思想,引入了CUDA流的概念,對(duì)GPU產(chǎn)生衛(wèi)星信號(hào)的過(guò)程進(jìn)行進(jìn)一步的加速。
在本文中,提出了一種SDR GNSS信號(hào)模擬器的體系結(jié)構(gòu)。在這個(gè)結(jié)構(gòu)中,仿真控制軟件基于本文提出的優(yōu)化算法高速實(shí)時(shí)產(chǎn)生GNSS數(shù)字中頻信號(hào),然后通過(guò)高速接口將信號(hào)送到USRP中,再經(jīng)過(guò)正交矯正、數(shù)模變換、上變頻,最后通過(guò)射頻端輸出,生成模擬GNSS信號(hào)。由于中頻信號(hào)的產(chǎn)生是在軟件中進(jìn)行的,因此整個(gè)系統(tǒng)具有良好的可拓展性,便于測(cè)試與驗(yàn)證。
文章詳細(xì)內(nèi)容下載請(qǐng)點(diǎn)擊:基于CUDA加速的GPS L1C/A實(shí)時(shí)信號(hào)發(fā)生器設(shè)計(jì)AET-電子技術(shù)應(yīng)用-最豐富的電子設(shè)計(jì)資源平臺(tái) (chinaaet.com)
【作者信息】
王子涵1,巴曉輝1,2,3,姜維1,2,3,蔡伯根2,3,4,王劍1,2,3,文韜1,2,3,郭旗1
(1.北京交通大學(xué) 電子信息工程學(xué)院,北京 100044;2.北京交通大學(xué) 軌道交通控制與安全國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100044;
3.北京市電磁兼容與衛(wèi)星導(dǎo)航工程技術(shù)研究中心,北京 100044;4.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044)