邵曉剛,宋茂忠
(南京航空航天大學(xué)江蘇南京211100)
導(dǎo)航衛(wèi)星信號(hào)模擬器能夠模擬動(dòng)態(tài)衛(wèi)星運(yùn)動(dòng)過程中接收機(jī)接收的衛(wèi)星信號(hào),為接收機(jī)特別是高動(dòng)態(tài)高精度接收機(jī)的研制、測試提供模擬環(huán)境,同時(shí)也可以用于系統(tǒng)級仿真試驗(yàn)[1]。在研制導(dǎo)航衛(wèi)星信號(hào)模擬器時(shí)候,需要大量的浮點(diǎn)計(jì)算以及基帶信號(hào)生成,現(xiàn)在多采用基于“DSP+FPGA”的架構(gòu)來進(jìn)行導(dǎo)航信號(hào)模擬器的研制[2]。DSP作為參數(shù)計(jì)算部分用來實(shí)時(shí)產(chǎn)生衛(wèi)星信號(hào)的狀態(tài)參數(shù)、控制參數(shù)和導(dǎo)航電文,F(xiàn)PGA主要進(jìn)行基帶信號(hào)處理與中頻生成,DSP與FPGA數(shù)據(jù)通信時(shí)易產(chǎn)生數(shù)據(jù)丟失,系統(tǒng)不穩(wěn)定,需要進(jìn)行參數(shù)傳輸設(shè)計(jì)[3]。
基于“DSP+FPGA”的架構(gòu)設(shè)計(jì)GPS衛(wèi)星信號(hào)模擬器,DSP芯片采用TI公司的高速浮點(diǎn)型處理器TMS320C6713B,具有強(qiáng)大的通用信號(hào)處理能力[4]。FPGA采用ALTERA CycloneII系列芯片,門數(shù)資源非常豐富,可滿足目前絕大多數(shù)的信號(hào)處理硬件編程和控制[5]。DSP與FPGA之間傳輸?shù)膮?shù)表現(xiàn)為載波控制字、碼控制字、復(fù)位與啟動(dòng)控制信號(hào)、導(dǎo)航電文等?;谏鲜銎脚_(tái)DSP通過32位EMIF總線往FPGA發(fā)送上述數(shù)據(jù),由于EMIF總線輸入的時(shí)鐘速率和基帶讀取的時(shí)鐘速率不同,這就會(huì)產(chǎn)生異步數(shù)據(jù)跨時(shí)鐘域的傳輸問題,易造成亞穩(wěn)態(tài)[6],這里通過異步FIFO來緩存DSP端發(fā)送過來的大量導(dǎo)航數(shù)據(jù)[7]。
DSP與FPGA在硬件上通過EMIF連接,外部存儲(chǔ)器接口是TI DSP器件上的一種接口,EMIF可實(shí)現(xiàn)DSP與不同類型存EMIF可實(shí)現(xiàn)DSP與不同類型存儲(chǔ)器的連接[8]。FPGA掛接在DSP EMIF CE2空間,該空間配置為32位異步存儲(chǔ)器,如圖1所需接口信號(hào)。
圖1 EMIF接口原理圖
TED作為32位數(shù)據(jù)信號(hào),TEA作為地址信號(hào),TSDWEn作為寫使能信號(hào),EXINT為中斷反饋信號(hào)。其中FPGA地址分配為0x01XY0,其中X作為衛(wèi)星通道選擇,Y作為參數(shù)類型選擇[9]。
在導(dǎo)航模擬源中,為增加數(shù)據(jù)傳輸率、處理大量數(shù)據(jù)流、匹配具有不同傳輸率的系統(tǒng)為目的而廣泛使用異步FIFO緩存器,從而提高了系統(tǒng)性能。異步FIFO緩存器是一個(gè)先入先出的雙口緩沖器,對連續(xù)的數(shù)據(jù)流進(jìn)行緩存,防止在進(jìn)機(jī)制和存儲(chǔ)操作時(shí)丟失數(shù)據(jù),為避免頻繁的總線操作,數(shù)據(jù)需集中起來進(jìn)行存儲(chǔ)與讀取[10],如圖2所示。
圖2 異步FIFO原理圖
由于導(dǎo)航電文作為最重要的傳輸參數(shù),而且傳輸?shù)臄?shù)據(jù)量比較大且只有’1’和’0’兩種狀態(tài),可作為異步信號(hào)處理。異步信號(hào)跨時(shí)鐘域傳輸時(shí),不滿足建立時(shí)間(setup time)和保持時(shí)間(hold time)[11],會(huì)造成采樣的不準(zhǔn)確,所以我們這里采用了異步FIFO來對導(dǎo)航電文進(jìn)行緩存。ALTERA的FPGA開發(fā)環(huán)境中提供異步FIFO內(nèi)核,我們只需要基于該內(nèi)核做接口開發(fā),這樣可以降低編程難度,提高系統(tǒng)的穩(wěn)定性。這里主要需要完成的是接口的信號(hào)設(shè)計(jì),DSP往FPGA中寫接口信號(hào)包括寫時(shí)鐘以及寫使能其中寫使能信號(hào)表 達(dá) 為=20'h01210)&&(TSDWEn==0)。
控制字的計(jì)算是基于FPGA中斷而進(jìn)行的,在FPGA基帶處理模塊中進(jìn)行時(shí)序控制,每隔100 ms產(chǎn)生一個(gè)EXINT中斷,DSP通過IO口檢測到中斷后,進(jìn)行一次載波以及碼控制字的計(jì)算[12],控制字取32位,每次傳輸過來由于需要跨時(shí)鐘域,未免出現(xiàn)在基帶中控制字采樣時(shí)出現(xiàn)亞穩(wěn)態(tài),所以這里做了一個(gè)簡單的電平同步器[13]。電平同步器原理圖如圖3所示。
圖3 同步器原理圖
簡單的同步器,是由兩個(gè)觸發(fā)器級聯(lián)產(chǎn)生的,中間沒有其他組合邏輯。這種方法是通過保證后面的觸發(fā)器在接收前面觸發(fā)器的輸出的時(shí)候,前面的觸發(fā)器已經(jīng)不再處于亞穩(wěn)態(tài),實(shí)現(xiàn)輸出穩(wěn)定?;鶐幚碇巴ㄟ^Verilog HDL編程做兩級觸發(fā)器級聯(lián)[14],控制字?jǐn)?shù)據(jù)經(jīng)過時(shí)鐘沿同步后,延遲時(shí)間為基帶時(shí)鐘域的1~2個(gè)時(shí)鐘周期,這樣輸出的數(shù)據(jù)就被同步到基帶的時(shí)鐘域中,避免出現(xiàn)亞穩(wěn)態(tài),數(shù)據(jù)丟失[15]。
本實(shí)驗(yàn)?zāi)M產(chǎn)生13號(hào)GPS衛(wèi)星信號(hào),在Quartus開發(fā)環(huán)境下根據(jù)FIFO內(nèi)核設(shè)計(jì)了信號(hào)接口,先將DSP計(jì)算出的導(dǎo)航電文通過根據(jù)時(shí)序要求選擇地址總線和數(shù)據(jù)總線通過EMIF發(fā)送給FPGA中的異步FIFO,然后再發(fā)送啟動(dòng)模擬信號(hào),這樣FPGA自己產(chǎn)生時(shí)序讀取異步FIFO中的導(dǎo)航電文數(shù)據(jù),輸出NAV_OUT_13,再和生成的偽碼CA_CODE13異或輸出code13,運(yùn)用Quartus中的Signal Tap工具抓取了FIFO輸出的導(dǎo)航電文以及生成偽碼信號(hào),如圖4所示。FPGA基帶處理生成了13號(hào)星的中頻信號(hào),在經(jīng)過DA生成中頻模擬信號(hào),最后生成射頻信號(hào)發(fā)射出去。運(yùn)用GP2015采集射頻出去的13號(hào)衛(wèi)星,成功捕獲并且解調(diào)出導(dǎo)航電文,結(jié)果如圖5所示。
圖4 導(dǎo)航電文與碼信號(hào)輸出
圖5 解調(diào)出導(dǎo)航電文中的星歷參數(shù)
在設(shè)計(jì)導(dǎo)航衛(wèi)星信號(hào)模擬源時(shí)候,基于“DSP+FPGA”的架構(gòu)研制,能很好的滿足實(shí)時(shí)性,可靠性要求。但是在DSP[16-17]與FPGA通過總線交互數(shù)據(jù)時(shí)往往會(huì)產(chǎn)生跨時(shí)鐘域的異步數(shù)據(jù)傳輸?shù)膯栴},通過異步FIFO和電平同步器的設(shè)計(jì)能很好地解決這個(gè)問題,減少亞穩(wěn)態(tài)的,提高系統(tǒng)的穩(wěn)定性。
[1]賈超廣,肖海霞.基于衛(wèi)星信號(hào)模擬器的北斗接收機(jī)性能測試與分析[J].導(dǎo)航定位學(xué)報(bào),2013,1(3):14-16.
[2]任風(fēng)華,符強(qiáng),紀(jì)元法.GPS模擬器的FPGA實(shí)現(xiàn)及其雜散研究[J].計(jì)算機(jī)測量與控制2013,21(8):2224-2226.
[3]劉志國.衛(wèi)星導(dǎo)航信號(hào)模擬器研究與實(shí)現(xiàn)[D].太原:中北大學(xué),2014.
[4]賀璽,楊述斌,曹珩.基于DSP和FIFO信號(hào)采集系統(tǒng)硬件設(shè)計(jì)及實(shí)現(xiàn)[J].武漢工程大學(xué)學(xué)報(bào),2011,33(1):79-83.
[5]冀臻.GNSS衛(wèi)星信號(hào)模擬器研究與實(shí)現(xiàn)[D].太原:中北大學(xué),2011.
[6]黃隸凡,鄭學(xué)仁.FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)研究[J].微電子學(xué),2011,41(2):255-273.
[7]胡波,李鵬.異步FIFO在FPGA與DSP通信中的運(yùn)用[J].電子科技,2011,24(3):53-55.
[8]楊龍,李范鳴,劉士建.DSP EMIF與FPGA雙口RAM高速通信實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2014,37(13):10-13.
[9]王普.GPS衛(wèi)星信號(hào)模擬源控制字計(jì)算和DSP數(shù)據(jù)接口[J].電子技術(shù)與軟件工程,2016:44-45.
[10]司嵐山.一種高速大容量異步FIFO存儲(chǔ)器設(shè)計(jì)[D].無錫:江南大學(xué),2013.
[11]唐輝艷,李紹勝.FPGA設(shè)計(jì)中跨時(shí)鐘域同步方法的研究[J].鐵路計(jì)算機(jī)應(yīng)用,2011,20(5):43-47.
[12]肖晶晶.實(shí)時(shí)多通道GPS信號(hào)模擬器的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:清華大學(xué),2011.
[13]趙曉海.跨時(shí)鐘域信號(hào)的幾種同步方法研究[J].電子設(shè)計(jì)應(yīng)用,2012,20(7):139-144.
[14]張智明.基于FPGA的位同步電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2016,39(4):132-134.
[15]王曉婷.跨時(shí)鐘域設(shè)計(jì)方法研究[D].西安:西安電子科技大學(xué),2012.
[16]倪原,劉琦,秦東旭,等.基于雙DSP的某飛行器飛行姿態(tài)控制系統(tǒng)的軟件設(shè)計(jì)[J].西安工業(yè)大學(xué)學(xué)報(bào),2015(1):52-56.
[17]李忠楠,楊冰,王強(qiáng),等.一種用于電力線通信的次優(yōu)交織算法與DSP實(shí)現(xiàn)[J].電力信息與通信技術(shù),2014(7):12-16.