国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HDL的北斗B1C信號Weil碼產(chǎn)生方法

2022-07-09 09:23趙丙風孫壽浩譚志強何健
電子元器件與信息技術 2022年5期
關鍵詞:端口控制器信號

趙丙風,孫壽浩,譚志強,何健

1.中國電子科技集團公司第五十四研究所,河北,石家莊,050081;2.電子信息系統(tǒng)復雜電磁環(huán)境效應國家重點實驗室,河南,洛陽,471001;3.光電對抗測試評估技術重點實驗室,河南,洛陽,471023

0 引言

衛(wèi)星導航系統(tǒng)絕大多數(shù)都是一個基于碼分多址(CDMA)的直接序列擴頻通信系統(tǒng),早期的衛(wèi)星導航信號偽隨機碼多為Gold序列或者m序列;Gold序列應用于北斗B1I /B3I信號、GPS L1CA/L5C信號、Galileo E5a/E5b信號等,m序列主要用于頻分多址的GLONASS G1信號[1]。進入21世紀,主要衛(wèi)星導航系統(tǒng)加速了各自的GNSS現(xiàn)代化進程,其中GPS增加了基于Weil碼L1C信號,北斗系統(tǒng)中增加了基于Weil碼的B1C信號[2]。

Weil碼具有碼長為質數(shù)的優(yōu)點,在不接近2n的指定碼長約束下,易于通過截短或增補實現(xiàn)較好地維持原偽碼的相關性能,降低尋碼的復雜度[3]。同時,研究表明Weil碼的奇偶自相關最大旁瓣相關值相對于Gold碼更小,Weil碼的自相關結果方差也更小,幅度和變化范圍更接近,而Wei碼的奇偶互相關與Gold碼相差很小,也表明了Weil碼具有更好的相關性能[4],以及更好的抗干擾性能[5]。

Weil碼是將兩個勒讓德序列進行異或得到的,而B1C信號通過對Weil碼進行循環(huán)截取的方式得到了合適長度的偽隨機序列[2]。由于勒讓德序列的特殊性,在現(xiàn)場可編程邏輯門陣列(FPGA)或者專用集成電路(ASIC)實現(xiàn)中,很難直接產(chǎn)生所需的勒讓德序列或者Weil碼。FPGA實現(xiàn)中常通過軟件生成所有信號的Weil碼,并將Weil碼寫入RAM中存儲,信號接收過程中直接讀取RAM中存儲的偽碼;另一種方式是通過多端口ROM存儲勒讓德序列,使用時讀取ROM中的勒讓德序列計算對應的Weil碼[4][5]。

但是在ASIC中,ROM都是單讀取端口,只能通過多個ROM塊實現(xiàn)多端口ROM;此外,ASIC中RAM的面積是同等容量ROM的4倍以上,即現(xiàn)有的Weil碼生成方式在ASIC實現(xiàn)時會消耗較多的資源與實現(xiàn)面積。針對以上問題,本文設計了一種基于單端口ROM多次讀取的Weil碼產(chǎn)生方法,完成了基于FPGA的原型平臺實現(xiàn)與驗證,并將該方法成功應用到ASIC設計中。

1 Weil產(chǎn)生算法

B1C信號包含了導頻和數(shù)據(jù)兩個支路,其中數(shù)據(jù)支路包含了擴頻主碼與電文信息,導頻支路包含了擴頻主碼和子碼。導航和數(shù)據(jù)支路的主碼均由Weil碼截斷產(chǎn)生,長度為N的Weil碼的定義為[2]:

式中,mod表示取模運算;w為產(chǎn)生Weil碼所需的兩個勒讓德序列相位差;L(k)為長度為N的勒讓德序列,其定義如下:

通過對長度為N的Weil碼循環(huán)截取,就能夠得到如下的長度為N0的B1C信號數(shù)據(jù)或者導頻支路的主碼序列:

式中,p就是所選的Weil碼的截取位置;w為產(chǎn)生Weil碼的勒讓德序列相位差。

B1C信號共設計了126個主碼序列,每個主碼的截取位置p和相位差w不相同,詳細數(shù)據(jù)可以參考B1C信號的接口控制文件(ICD);B1C信號的數(shù)據(jù)支路和導頻支路各有63個主碼,對應于北斗三號系統(tǒng)支持的63顆衛(wèi)星。B1C主碼速率為1.023Mcps,長度N0為10230,由長度N為10243的Weil碼截斷產(chǎn)生。

2 已有實現(xiàn)方案

由于勒讓德序列的計算方法涉及二次剩余理論,不易于通過HDL語言完成對應的產(chǎn)生算法設計,無法直接在FPGA或者ASIC中通過計算產(chǎn)生,因此當前導航接收機中主要通過單讀寫端口RAM或者雙讀取端口ROM存儲的方式實現(xiàn)基于Weil碼的導航信號接收處理。

2.1 單端口RAM方案

RAM存儲的實現(xiàn)方式可以使用單端口讀寫RAM,為了節(jié)省RAM的資源,會根據(jù)B1C信號的接收通道數(shù)量設計使用的RAM數(shù)量。因為同一衛(wèi)星播發(fā)的B1C信號的數(shù)據(jù)支路和導頻支路是時間對齊的,而不同衛(wèi)星的之間的延遲是不固定的,所以需要每個B1C信號接收通道對應一個RAM存儲器。Weil產(chǎn)生框圖如圖1所示。

圖1 基于單端口RAM存儲的Weil產(chǎn)生框圖

圖1中工作時鐘fs即為接收機信號接收通道工作時鐘;DDS為接收通道中的偽碼NCO,用于產(chǎn)生接收信號主碼的提取脈沖,頻率為fc;軟件寫控制接口根據(jù)軟件指令將軟件產(chǎn)生的B1C信號數(shù)據(jù)和導頻主碼存儲到對應地址的RAM中;本地碼發(fā)生控制器用于產(chǎn)生當前需要的數(shù)據(jù)和導頻主碼讀取地址;讀寫控制器在軟件控制下實現(xiàn)RAM數(shù)據(jù)的讀寫切換。

該方案中,每個接收通道中需要存儲的數(shù)據(jù)量為10230*2=20460kbits,實際由于RAM資源的特殊性,其讀寫地址均為2的整次冪,所以實際的RAM大小為16384*2=32768bits,即32kbits。

2.2 雙端口ROM方案

RAM實現(xiàn)方案除了存儲資源的消耗外,還占用了軟件的計算資源和總線資源,所以后續(xù)提出了基于ROM存儲勒讓德序列,通過多端口讀取來實時計算Weil碼產(chǎn)生B1C主碼的方案[4][5],如圖2所示。

圖2中工作時鐘fs即為接收機信號接收通道工作時鐘;DDS為接收通道中的偽碼NCO,用于產(chǎn)生接收信號主碼的提取脈沖,頻率為fc;通過雙端口同時讀取ROM中0相位和w相位的勒讓德序列,然后經(jīng)過異或和循環(huán)截斷得到所需的Weil碼。

圖2 基于雙端口ROM存儲的Weil產(chǎn)生框圖

該方案中,ROM存儲的數(shù)據(jù)為長度為10243的勒讓德序列,實際存數(shù)長度為16384bits。因為每一個ROM僅能產(chǎn)生一個Weil序列,所以每一個跟蹤通道需要兩個ROM,總的待存儲數(shù)據(jù)量與RAM方案相同。相比于RAM方案,ROM存儲方案在消耗資源不變的情況下,大大減少了軟件的計算量。

在ASIC實現(xiàn)中,同等容量的RAM資源占用面積是ROM的4倍以上,所以ASIC設計中采用ROM的存儲方案更具有優(yōu)勢。同時因為ROM資源的特殊性,雙端口ROM只能用兩個相同的ROM塊實現(xiàn),也就是說,按照現(xiàn)有ROM方案,每個B1C接收通道需要4個相同容量的ROM塊才能實現(xiàn)同時產(chǎn)生數(shù)據(jù)和導頻主碼。

3 單端口ROM方案

3.1 工作原理

因為導航接收通道的工作時鐘fs一般遠高于導航信號偽碼速率fc,所以可以利用fs的時鐘速率,多次讀取單端口ROM的方案,通過順序計算得到所需的B1C信號數(shù)據(jù)和導頻主碼。實現(xiàn)方案的框圖如圖3所示。

圖3 基于單端口ROM存儲的Weil產(chǎn)生框圖

勒讓德序列的存儲ROM以通道時鐘fs進行讀?。唤邮胀ǖ纼戎肈DS基于工作時鐘fs產(chǎn)生頻率為fc的主碼提取脈沖pn_clk;軟件控制接口根據(jù)軟件設置將本通道對應的數(shù)據(jù)和導頻主碼對應的截取位置p和相位差w寫入到Weil碼產(chǎn)生控制器中,同時根據(jù)開通道的需求配置Weil碼產(chǎn)生控制器工作使能信號code_on;Weil碼產(chǎn)生控制器根據(jù)使能信號code_on確定其是否工作,在每個pn_clk脈沖后,以時鐘速率fs完成4次對應的ROM序列讀取,然后將讀取到的結果依次完成異或運算得到對應的數(shù)據(jù)和導頻主碼。

3.2 實現(xiàn)方案

Weil碼產(chǎn)生控制器的端口信息如表1所示。Weil碼產(chǎn)生控制器的內部工作時序如圖4所示。

表1 Weil碼產(chǎn)生控制器端口說明

圖4 Weil碼產(chǎn)生控制器內部工作時序

Weil碼產(chǎn)生控制器的工作流程如下。

(1)軟件啟動某個衛(wèi)星的Weil碼產(chǎn)生,配置衛(wèi)星對應的數(shù)據(jù)和導頻主碼對應的相位截取點和相位差,設置code_on信號為1,啟動對應通道的Weil碼產(chǎn)生使能。

(2)Weil碼產(chǎn)生控制器檢測到code_on信號的上升沿,觸發(fā)第一個Weil碼產(chǎn)生使能信號gen_en,后續(xù)每輸入一個提碼脈沖pn_clk,產(chǎn)生一個對應的gen_en信號。

(3)每個gen_en信號觸發(fā)rom_addr信號計算,依照速率fs依次完成四個讀取地址計算,分別是:

式中,n的取值范圍是0~10229,表示第n個主碼;N的取值為10243,為勒讓德序列長度;dp和dw為導頻主碼相位截取位置和相位差取值;pp和pw為導頻主碼相位截取位置和相位差取值。

(4)根據(jù)ROM讀取輸出,依次將第n個數(shù)據(jù)和導頻主碼計算所需的勒讓德序列Ldkn、Ldkwn、Lpkn、Lpkwn存儲至本地寄存器data_lk、data_lkw、pilot_lk、pilot_lkw。

(5)在ROM讀取完成,依據(jù)存儲的勒讓德序列計算并輸出第n個數(shù)據(jù)和導頻主碼,計算過程如下:

需要說明的是:

(1)Weil碼產(chǎn)生控制器在使能信號code_on置位后,即開始計算第一對數(shù)據(jù)和導頻主碼,這與接收通道中通道接收開始后立即進行相關的需求相符,只要保證在接收通道開啟前完成Weil碼產(chǎn)生控制器的配置,即可保證信號接收啟動后有碼可用;

(2)后續(xù)每個提碼脈沖pn_clk有效后,有效的偽碼在延遲9個clk后輸出,因此在接收通道開啟時需要合理控制開啟時刻,保證接收用偽碼的相位正確性;

(3)每對數(shù)據(jù)和導頻主碼輸出在時間上是嚴格對齊的,這與實際使用需求相符。

4 實施效果

基于ASIC原型驗證平臺(核心器件為Xilinx Zynq UltraScale+的XCZU19EG),利用軟件工具Vivado 2018.3,對本文提出的基于HDL的北斗B1C信號Weil碼產(chǎn)生方法進行了驗證,完成了B1C信號的接收測試,并利用Vivado自帶的集成邏輯分析儀(ILA),采集了24號衛(wèi)星的數(shù)據(jù)和導頻主碼信號產(chǎn)生的結果,如圖5所示。

圖5 B1C信號24號星數(shù)據(jù)和導頻主碼產(chǎn)生結果

文獻[2]中給出了B1C信號24號星數(shù)據(jù)主碼前/后24個偽碼取值為77312776/56550366(八進制),導頻主碼前/后24個偽碼取值為10544206/54230354(八進制),確認了本文提出的方法可以正確產(chǎn)生對應的B1C信號數(shù)據(jù)和導頻主碼。

5 結語

本文研究了基于HDL的北斗B1C信號Weil碼產(chǎn)生方法,使用單端口ROM存儲勒讓德序列,通過高速時鐘順序讀取四次ROM,產(chǎn)生B1C信號接收所需的數(shù)據(jù)和導頻主碼,解決了在ASIC實現(xiàn)中Weil碼的存儲器面積消耗過大的問題,并經(jīng)過原型接收機的驗證Weil碼產(chǎn)生的正確性。實驗證明,本文研究的Weil碼發(fā)生方法適用于基于FPGA的導航接收機,也適用于導航芯片設計。

猜你喜歡
端口控制器信號
三轉子式比例控制器設計與內泄漏分析
溫度對圓柱殼結構應力及端口變形影響研究
南京溧水電子3款控制器產(chǎn)品
華為交換機端口Hybrid 模式的應用
一種有源二端口網(wǎng)絡參數(shù)計算方法
一種端口故障的解決方案
完形填空二則
基于NFV的分布式SDN控制器節(jié)能機制
信號
智能液位控制器在排水系統(tǒng)中的應用
麦盖提县| 昭平县| 乌拉特前旗| 阳西县| 邓州市| 扶沟县| 开原市| 花垣县| 博乐市| 如东县| 滕州市| 广宁县| 且末县| 额济纳旗| 泰顺县| 呼玛县| 新巴尔虎左旗| 岳阳县| 章丘市| 大洼县| 南投县| 噶尔县| 纳雍县| 商城县| 闸北区| 日土县| 西乌珠穆沁旗| 林西县| 会同县| 永嘉县| 西乡县| 金溪县| 福贡县| 长汀县| 蓬溪县| 西青区| 金华市| 南靖县| 廊坊市| 南投市| 楚雄市|