基于Cortex-M3的北斗二代基帶芯片設(shè)計(jì)
作者/ 曾楠1 周芝梅2,3 趙東艷2,3 靳嘉楨2,3
本文引用地址:http://www.ex-cimer.com/article/201610/311934.htm1.國家電網(wǎng)公司(北京 100031)
2.北京智芯微電子科技有限公司 國家電網(wǎng)公司重點(diǎn)實(shí)驗(yàn)室 電力芯片設(shè)計(jì)分析實(shí)驗(yàn)室(北京 100192)
3.北京智芯微電子科技有限公司 北京市電力高可靠性集成電路設(shè)計(jì)工程技術(shù)研究中心(北京 100192)
摘要:我國自主研制的北斗衛(wèi)星導(dǎo)航系統(tǒng),日益在經(jīng)濟(jì)、軍事和民用領(lǐng)域得到越來越廣的應(yīng)用。本文提出并設(shè)計(jì)了基于Cortex-M3處理器的北斗接收機(jī)基帶處理芯片,設(shè)計(jì)了時(shí)域頻域二維并行捕獲模塊,同時(shí)闡述了基于Cortex-M3處理器的控制流程,包括對(duì)捕獲引擎、跟蹤引擎的調(diào)度,電文解調(diào)和定位解算等。本設(shè)計(jì)最后在FPGA上完成原型驗(yàn)證,定位結(jié)果符合算法預(yù)期。
引言
中國北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeIDou Navigation Satellite System,BDS)是中國自行研制的衛(wèi)星導(dǎo)航系統(tǒng),是繼美國全球定位系統(tǒng)(GPS)、俄羅斯格洛納斯衛(wèi)星導(dǎo)航系統(tǒng)(GLONASS)之后第三個(gè)成熟的衛(wèi)星導(dǎo)航系統(tǒng)。隨著2013年底中國衛(wèi)星導(dǎo)航系統(tǒng)管理辦公室公布北斗微信導(dǎo)航系統(tǒng)空間信號(hào)接口控制文件后,國內(nèi)外陸續(xù)開始推出北斗導(dǎo)航處理芯片。
北斗接收機(jī)的信號(hào)處理包含三大塊內(nèi)容,首先是射頻前端處理,對(duì)天線接收下來的信號(hào)進(jìn)行下變頻和A/D轉(zhuǎn)換,轉(zhuǎn)成數(shù)字中頻信號(hào)輸入。第二部分基帶處理部分對(duì)射頻模塊輸入的中頻數(shù)字信號(hào)進(jìn)行數(shù)字信號(hào)處理, 主要功能是完成北斗信號(hào)的捕獲和跟蹤,這是整個(gè)北斗接收模塊最核心的部分。第三部分是導(dǎo)航定位的解算部分和人機(jī)接口,為了提高靈活性,這部分一般由CPU執(zhí)行軟件程序來處理。
早期導(dǎo)航系統(tǒng)GPS接收機(jī)方案多為獨(dú)立射頻模塊連接天線接收GPS信號(hào)后,射頻輸出的中頻信號(hào)輸入FPGA實(shí)現(xiàn)的捕獲跟蹤協(xié)處理器,捕獲跟蹤后的數(shù)據(jù)再輸出給一顆外接專用的ARM處理器,完成第三部分的報(bào)文接收和定位解算,系統(tǒng)結(jié)構(gòu)如圖1所示[1-2]。
1 北斗接收機(jī)系統(tǒng)
隨著嵌入式CPU的蓬勃發(fā)展,導(dǎo)航定位芯片的SoC設(shè)計(jì)越來越成為可能,集成了嵌入式CPU內(nèi)核的接收機(jī)芯片,完成信號(hào)的捕獲跟蹤后,導(dǎo)航報(bào)文直接由片內(nèi)CPU解析并處理,完成定位解算,運(yùn)算的結(jié)果數(shù)據(jù)按照NME0183格式從串口輸出,同時(shí)送出1PPS秒標(biāo)信號(hào)。
本設(shè)計(jì)的北斗接收機(jī)系統(tǒng)框圖如圖2所示,射頻模塊將北斗信號(hào)接收下來后,經(jīng)過去載波處理和AD采樣,轉(zhuǎn)換為中頻數(shù)字信號(hào),輸入到本設(shè)計(jì)的基帶處理芯片?;鶐幚砟K主要完成對(duì)北斗信號(hào)的捕獲、跟蹤處理,然后再由主處理器進(jìn)行定位解算,輸出解算結(jié)果。
2 北斗基帶芯片硬件設(shè)計(jì)
北斗接收機(jī)基帶的硬件部分主要包含了ARM Cortex-M3 CPU,負(fù)責(zé)硬件處理的控制和調(diào)度,還有北斗報(bào)文的解調(diào)和定位解算;SoC芯片的一些基本單元包括RAM、FLASH的控制器、看門狗、TIMER、RTC以及串口/SPI/GPIO等基本通信單元;還有基帶芯片最核心的北斗基帶處理部分,實(shí)現(xiàn)北斗信號(hào)的捕獲和跟蹤處理。
2.1 基帶芯片系統(tǒng)架構(gòu)
基于M3的北斗二代基帶處理芯片系統(tǒng)架構(gòu)如圖3所示,采用ARM Cortex-M3嵌入式CPU, 二級(jí)AMBA總線架構(gòu);AHB總線的主設(shè)備包括CPU和DMA,從設(shè)備包括基帶處理模塊、SRAM控制器、SPI FLASH控制器和APB 橋。APB總線上掛的主要是低速外設(shè),包括SPI、串口通信模塊、看門狗、TIMER、RTC和GPIO。
Cortex-M3是基于ARMv7-M架構(gòu)的ARM處理器[6-7],采用哈弗架構(gòu),3級(jí)流水線設(shè)計(jì),能用分支預(yù)測,有單周期乘法和硬件觸發(fā)功能。 Thumb2指令集結(jié)合非對(duì)齊數(shù)據(jù)存儲(chǔ)和原子位處理等特性,能以8位、16位器件所需的存儲(chǔ)空間實(shí)現(xiàn)32位性能。內(nèi)置的嵌套向量中斷控制器實(shí)現(xiàn)低延遲的中斷處理,Cortex-M3處理器是追求低成本、低功耗和高能效的應(yīng)用場景理想的CPU。M3包含三條總線,指令總線、數(shù)據(jù)總線和系統(tǒng)總線[8-9],與DMA共同為芯片AHB總線的主設(shè)備。
ARM CPU對(duì)跟蹤和捕獲模塊的控制主要包括對(duì)星號(hào)、頻點(diǎn)的設(shè)置,設(shè)置門限、捕獲靈敏度和頻率搜索范圍,根據(jù)捕獲結(jié)果配置跟蹤通道、載波和碼頻率等。
2.2 捕獲跟蹤模塊設(shè)計(jì)
導(dǎo)航信號(hào)處理模塊的功能,主要包括生成本地載波和C/A碼,接收輸入的數(shù)字中頻信號(hào),對(duì)衛(wèi)星信號(hào)進(jìn)行捕獲和跟蹤[4-5]。
北斗信號(hào)采用直接序列擴(kuò)頻方式(DSSS)對(duì)調(diào)制數(shù)據(jù)進(jìn)行擴(kuò)頻,信號(hào)的CA碼速率為2.046Mbps,碼長2046[3]。捕獲模塊接收到數(shù)字中頻信號(hào)后,與本地NCO生成的載波信號(hào)相乘,得到基帶信號(hào)?;鶐盘?hào)經(jīng)過降采樣濾波器后得到4M采樣率的基帶信號(hào)(接近CA碼的半碼片速率)。然后將此基帶信號(hào)與本地生成的相同采樣率的偽碼,同時(shí)輸入匹配濾波器組,從而完成對(duì)導(dǎo)航數(shù)據(jù)的解擴(kuò),這個(gè)過程叫偽碼捕獲。由于北斗衛(wèi)星與接收機(jī)之間具有相對(duì)速度,所以存在多譜勒頻移。要得到衛(wèi)星信號(hào)中的導(dǎo)航數(shù)據(jù),必須獲取到衛(wèi)星信號(hào)的多普勒頻移的數(shù)值。這個(gè)過程叫頻率捕獲。所以,北斗信號(hào)的捕獲是一個(gè)偽碼和頻率的二維捕獲過程,捕獲的目的就是使本地載波和接收到的信號(hào)載波頻率基本一致,并且使本地復(fù)現(xiàn)偽碼和接收到的衛(wèi)星信號(hào)的碼速率基本一致,碼相位差小于一個(gè)碼片寬度,從而實(shí)現(xiàn)本地信號(hào)與中頻輸入信號(hào)的粗同步。
本設(shè)計(jì)采用的是短時(shí)匹配濾波器組結(jié)合FFT的捕獲結(jié)構(gòu),短時(shí)匹配濾波器將總的相干積分時(shí)間Tcoh分成等間隔的M段,每段積分時(shí)間為Tcoh/M。短時(shí)相關(guān)結(jié)合FFT的捕獲過程為:降采樣至4MHz的數(shù)字中頻信號(hào)進(jìn)入匹配濾波器組,與本地生成的相同采樣率的偽碼做相關(guān),得到M個(gè)短時(shí)相關(guān)值;同時(shí),對(duì)輸入信號(hào)進(jìn)行半碼片平移,然后繼續(xù)相關(guān),直到1ms后得到Mx2046個(gè)短時(shí)相關(guān)值,完成碼域的全并行搜索。然后對(duì)每個(gè)碼相位上的M個(gè)短時(shí)相關(guān)值做FFT運(yùn)算,得到其中的頻域信息,實(shí)現(xiàn)頻域的并行搜索。
整個(gè)捕獲功能模塊如圖4所示,主要包括數(shù)字下變頻、載波發(fā)生器、去載波電路、降采樣電路、碼發(fā)生器、匹配濾波器陣列、相干/非相干累加模塊和捕獲引擎控制等模塊。
跟蹤模塊的結(jié)構(gòu)與捕獲模塊類似,只是基于捕獲模塊的粗同步信息,跟蹤模塊可以對(duì)衛(wèi)星信號(hào)進(jìn)行更精細(xì)的C/A碼和頻率跟蹤。
3 基帶芯片軟件設(shè)計(jì)
Cortex-M3 CPU作為基帶芯片的主設(shè)備模塊,首先完成芯片的啟動(dòng)和初始化,后續(xù)執(zhí)行的軟件按照功能主要分為兩部分,一是對(duì)捕獲跟蹤模塊的控制調(diào)度,具體工作流程如圖5所示。先根據(jù)需要捕獲的星號(hào)對(duì)捕獲模塊進(jìn)行相關(guān)參數(shù)的配置,啟動(dòng)捕獲過程;接收到捕獲完成中斷后,根據(jù)捕獲結(jié)果,判決是否成功捕獲,并繼續(xù)配置捕獲下一顆衛(wèi)星或者更換配置參數(shù)重新捕獲本顆衛(wèi)星;根據(jù)捕獲成功得到的碼相位和多普勒頻偏值,配置相應(yīng)衛(wèi)星的跟蹤通道,啟動(dòng)衛(wèi)星的信號(hào)跟蹤。
當(dāng)跟蹤通道成功跟蹤4顆以上衛(wèi)星后,可以對(duì)相應(yīng)衛(wèi)星的導(dǎo)航電文進(jìn)行解調(diào),然后根據(jù)獲得的導(dǎo)航電文進(jìn)行定位解算。
4 總結(jié)
本文設(shè)計(jì)的北斗基帶處理芯片,內(nèi)嵌ARM Cortex-M3 CPU,集成了北斗的捕獲模塊和16路北斗跟蹤模塊。通過ARM CPU的軟件調(diào)度,本設(shè)計(jì)完成導(dǎo)航信號(hào)的捕獲和跟蹤,并由M3完成報(bào)文的解調(diào)和定位解算,最后通過串口輸出定位信息。該設(shè)計(jì)最后在Xilinx FPGA Kintex-7系列xc7k325t上實(shí)現(xiàn)原型測試,對(duì)北斗B1信號(hào)實(shí)現(xiàn)了成功捕獲和跟蹤,定位精度也能符合應(yīng)用需求。
參考文獻(xiàn):
[1]邢增強(qiáng),李金海,梁華慶,等.基于ARM+FPGA的GPS接收機(jī)設(shè)計(jì)[J].傳感器與微系統(tǒng),2011.
[2]劉競超,鄧中亮.基于ARM+FPGA北斗接收機(jī)設(shè)計(jì)[J].軟件,2012.
[3]中國衛(wèi)星導(dǎo)航系統(tǒng)管理辦公室.北斗衛(wèi)星導(dǎo)航系統(tǒng)空間信號(hào)接口控制文件
[4]李金海.高動(dòng)態(tài)GPS接收機(jī)基帶算法研究與設(shè)計(jì)[D].北京:中國科學(xué)院研究生院,2007.
[5]廉保旺,劉慧紅,毛得明.基于匹配濾波器和FFT的偽碼快速捕獲方法及性能分析[J].測控技術(shù),2009.
[6]ARMv7-M Architecture Reference Manual ARM Limited.
[7]ARMv7-M Cortex-M3 User Guide Reference Material ARM Limited.
[8]Cortex-M3 Technical Reference Manual ARM Limited.
[9]Cortex-M3 Integration and Implementation Manual ARM Limited.
本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第10期第59頁,歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論