當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于獨(dú)立DSP平臺(tái)的實(shí)時(shí)衛(wèi)星導(dǎo)航接收機(jī)的設(shè)計(jì)

目前,衛(wèi)星定位系統(tǒng)的應(yīng)用越來(lái)越廣泛,中國(guó)、歐盟和日本等國(guó)都在積極發(fā)展自己獨(dú)立的衛(wèi)星定位系統(tǒng)。自1980年第一臺(tái)商品GPS信號(hào)接收機(jī)問(wèn)世以來(lái),GPS信號(hào)接收機(jī)不斷更新?lián)Q代,目前的衛(wèi)星導(dǎo)航接收機(jī)主要由專用集成芯片(ASIC)搭建而成,擁有集成度高、速度快的優(yōu)點(diǎn)。但隨著衛(wèi)星導(dǎo)航系統(tǒng)現(xiàn)代化的開(kāi)展,在軌飛行的導(dǎo)航衛(wèi)星日漸增多,衛(wèi)星導(dǎo)航應(yīng)用趨于多樣化,固定的硬件結(jié)構(gòu)難以完成快速系統(tǒng)更新,暴露出硬件接收靈活度低、升級(jí)昂貴的弱點(diǎn)。而軟件接收機(jī)通常是通過(guò)下變頻芯片將衛(wèi)星導(dǎo)航信號(hào)降到較低的中頻,然后通過(guò)模數(shù)轉(zhuǎn)換器對(duì)信號(hào)進(jìn)行數(shù)字化,接收機(jī)的捕獲、跟蹤、定位等功能則由軟件在通用的信號(hào)處理平臺(tái)上實(shí)現(xiàn),易于在現(xiàn)有系統(tǒng)的基礎(chǔ)上進(jìn)行性能升級(jí)和功能擴(kuò)展。
  從目前研究現(xiàn)狀來(lái)看,軟件接收機(jī)的實(shí)現(xiàn)大多基于PC機(jī)或FPGA/DSP組合平臺(tái)[1]。而FPGA平臺(tái)雖然是一個(gè)可編程的平臺(tái),但其靈活性和擴(kuò)展性與純軟件相比仍然有所欠缺,而DSP通常在此平臺(tái)中僅實(shí)現(xiàn)定位解算功能。因此,實(shí)現(xiàn)基于獨(dú)立DSP平臺(tái)的通用衛(wèi)星導(dǎo)航接收機(jī)是一項(xiàng)十分有意義的工作,可以極大程度地?cái)U(kuò)展軟件接收機(jī)的靈活性。本文主要探討基于獨(dú)立DSP的軟件接收機(jī)平臺(tái)結(jié)構(gòu)設(shè)計(jì),討論如何在現(xiàn)有DSP平臺(tái)上提供多星座衛(wèi)星導(dǎo)航軟件接收機(jī)支持,同時(shí)分析系統(tǒng)自舉引導(dǎo)功能的實(shí)現(xiàn)和基于DSP/BIOS操作系統(tǒng)的軟件接收機(jī)任務(wù)調(diào)度管理。
1 接收機(jī)平臺(tái)結(jié)構(gòu)設(shè)計(jì)
  GNSS軟件接收機(jī)平臺(tái)采用模塊化設(shè)計(jì),可以分為中頻數(shù)據(jù)采集模塊、數(shù)據(jù)存儲(chǔ)模塊、結(jié)果輸出模塊和電源及復(fù)位模塊。本文所設(shè)計(jì)的衛(wèi)星導(dǎo)航接收機(jī)硬件系統(tǒng)原理框圖如圖1所示。

  基本的工作原理:由射頻前端GP2015對(duì)天線接收的信號(hào)進(jìn)行下變頻,輸出模擬中頻信號(hào),ADC對(duì)中頻信號(hào)進(jìn)行采樣和量化,然后傳輸?shù)絋MS320C6416 DSP進(jìn)行相關(guān)的運(yùn)算處理,完成衛(wèi)星信號(hào)的捕獲、跟蹤和定位解算等功能,最后將解算的結(jié)果通過(guò)輸出模塊傳送到顯示終端顯示定位結(jié)果及相關(guān)信息。
1.1 TMS320C6416簡(jiǎn)介
  TMS320C6416是TI公司推出的高性能定點(diǎn)DSP[2],其時(shí)鐘頻率可達(dá)1 GHz,最高處理能力為8 000 MIPS,軟件與C62X完全兼容,采用先進(jìn)的甚長(zhǎng)指令結(jié)構(gòu)(VLIW)的DSP內(nèi)核有6個(gè)ALU(32/40 bit),每個(gè)時(shí)鐘周期可以執(zhí)行8條指令,所有指令都可以條件執(zhí)行。該DSP采用二級(jí)緩存結(jié)構(gòu),一級(jí)緩存(L1)由128 Kbit的程序緩存和128 Kbit的數(shù)據(jù)緩存組成,二級(jí)緩存(L2)為8 Mbit,有2個(gè)擴(kuò)展存儲(chǔ)器接口(EMIF),1個(gè)為64 bit(EMIFA),1個(gè)為16 bit(EMIFB),可以提供64條獨(dú)立的DMA通道[3]。
  本系統(tǒng)使用50 MHz有源晶振作為DSP的外部輸入時(shí)鐘,內(nèi)部鎖相環(huán)使用×20模式(CLKMODE1=1,CLKMODE0=0),系統(tǒng)的主頻為1 GHz。
1.2 多星座數(shù)據(jù)采集模塊
  為了使軟件接收機(jī)能夠支持多衛(wèi)星導(dǎo)航星座的中頻數(shù)據(jù)采集與處理功能,本系統(tǒng)同時(shí)提供了模擬中頻采集接口和數(shù)字中頻采集接口,2個(gè)接口可以同時(shí)使用,也可以任選其一,從而使系統(tǒng)具備較高的軟件可擴(kuò)展性。多星座中頻數(shù)據(jù)采集模塊的原理框圖如圖2所示。

  在本系統(tǒng)的設(shè)計(jì)中,采用ADI公司的高速A/D轉(zhuǎn)換器AD9283實(shí)現(xiàn)模擬中頻信號(hào)到數(shù)字中頻信號(hào)的轉(zhuǎn)化。由于接收到的衛(wèi)星導(dǎo)航信號(hào)能量比噪聲信號(hào)能量低約為20 dB,因此量化位數(shù)的高低對(duì)檢測(cè)衛(wèi)星導(dǎo)航信號(hào)的影響是有限的,若采用高位數(shù)量化會(huì)增加數(shù)據(jù)運(yùn)算量和系統(tǒng)的復(fù)雜度,通常的商用接收機(jī)大多采用1 bit或2 bit量化。本設(shè)計(jì)中量化位數(shù)為1 bit和2 bit可選配置。經(jīng)過(guò)ADC數(shù)字化的中頻信號(hào)送到DSP的McBSP0和McBSP2端口,并隨后觸發(fā)EDMA事件,完成數(shù)據(jù)拷貝和緩存[4]。與此同時(shí),采樣時(shí)鐘作為McBSP口的外部時(shí)鐘同步輸入信號(hào),將8 bit同步減法計(jì)數(shù)器74HC40103D設(shè)計(jì)成32進(jìn)制計(jì)數(shù)器對(duì)采樣時(shí)鐘進(jìn)行分頻來(lái)產(chǎn)生幀同步信號(hào),實(shí)現(xiàn)串并數(shù)據(jù)轉(zhuǎn)換。為避免因負(fù)載過(guò)多時(shí)鐘驅(qū)動(dòng)能力不足,采用了可配置時(shí)鐘驅(qū)動(dòng)芯片CY2308作為時(shí)鐘驅(qū)動(dòng)。圖3所示為多星座數(shù)據(jù)采集的硬件連接原理圖。

  為避免數(shù)據(jù)丟失,采用乒乓緩存的方法緩沖采集到的數(shù)據(jù)流,在DSP的片上內(nèi)存為每個(gè)McBSP通道開(kāi)設(shè)乒緩沖區(qū)和乓緩沖區(qū)。以12 MHz、1 bit采樣為例,在片上內(nèi)存開(kāi)辟2個(gè)30 KB的數(shù)據(jù)緩沖區(qū),即每個(gè)緩沖區(qū)能夠存放20 ms的數(shù)據(jù)。系統(tǒng)運(yùn)行后,EDMA控制器先將McBSP0采集到的數(shù)據(jù)寫入乒緩沖區(qū),20 ms后乒緩沖區(qū)滿,EDMA控制器向CPU發(fā)出中斷請(qǐng)求,對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行運(yùn)算處理。同時(shí),EDMA向乓緩沖區(qū)寫數(shù)據(jù),這樣通過(guò)不斷的乒乓切換完成數(shù)據(jù)的緩沖存儲(chǔ)。
1.3 查找表數(shù)據(jù)存儲(chǔ)管理
  在捕獲、跟蹤中需要用到大量查找表,為了降低接收機(jī)的啟動(dòng)時(shí)間,直接把這些數(shù)據(jù)表格作為固件燒入到Flash中,而不用每次都由DSP通過(guò)程序重新生成。所有查找表需要約15 MB的空間,為了降低存儲(chǔ)空間,使用LZW無(wú)損壓縮算法進(jìn)行壓縮至約2 MB。系統(tǒng)初始化時(shí),DSP先讀取Flash中的數(shù)據(jù)表格,然后執(zhí)行解壓程序?qū)ζ浣鈮海⒋嬗谄獾腟DRAM中提供給接收機(jī)做運(yùn)算時(shí)調(diào)用。
  本設(shè)計(jì)中使用了2片4 MB×32位的SDRAM芯片MT48LC4M32并聯(lián)連接到DSP的EMIFA口,把程序運(yùn)行過(guò)程中對(duì)實(shí)時(shí)性要求較低的數(shù)據(jù)段和查找表分配到SDRAM中。總線運(yùn)行在166 MHz的高速狀態(tài),由專用的可配置的時(shí)鐘芯片ICS525對(duì)50 MHz的時(shí)鐘倍頻產(chǎn)生。
1.4 定位結(jié)果輸出模塊
  衛(wèi)星導(dǎo)航接收機(jī)需要周期性地輸出定位結(jié)果以及其他相關(guān)信息,通常輸出速率為1 Hz~5 Hz,DSP的串行接口McBSP即可滿足要求。為了能夠?qū)⒔Y(jié)果在顯示設(shè)備上顯示,數(shù)據(jù)的輸出需要兼容NMEA0183協(xié)議,因此需要將McBSP口擴(kuò)展成符合RS-232標(biāo)準(zhǔn)的異步串行接口。
  將DSP的McBSP端口的工作模式設(shè)為SPI模式作為主設(shè)備,直接與MAX3111進(jìn)行連接,DSP通過(guò)執(zhí)行相關(guān)的指令,設(shè)置MAX3111的相關(guān)控制字,完成波特率、數(shù)據(jù)位、奇偶校驗(yàn)等的設(shè)定,然后向MAX3111輸出有效信息,利用其片內(nèi)的轉(zhuǎn)換器實(shí)現(xiàn)UART到RS-232格式及電平的轉(zhuǎn)換,從而實(shí)現(xiàn)DSP與RS-232設(shè)備進(jìn)行異步數(shù)據(jù)傳輸。
[!--empirenews.page--]2 系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì)
2.1多星座接收機(jī)軟件設(shè)計(jì)
  在多星座軟件接收機(jī)中,對(duì)于來(lái)自多個(gè)不同星座的中頻數(shù)據(jù)的一部分軟件處理模塊可能是相同的。例如,對(duì)于GPS導(dǎo)航接收機(jī)和Galileo導(dǎo)航接收機(jī)可以采用共同的定位模塊。與單星座的軟件接收機(jī)相比,多星座的軟件接收機(jī)可能會(huì)有多個(gè)EDMA/McBSP的中斷處理程序和信號(hào)跟蹤處理模塊。因此,在針對(duì)多星座接收機(jī)的軟件設(shè)計(jì)中,對(duì)這些模塊的處理需要額外進(jìn)行。軟件接收機(jī)的結(jié)果輸出如圖4所示。

2.2 自舉引導(dǎo)功能的實(shí)現(xiàn)
  為了保證接收機(jī)能夠脫離主機(jī)獨(dú)立工作,本設(shè)計(jì)采用ROM自舉加載模式,接收機(jī)程序作為固件存儲(chǔ)在外部的非易失存儲(chǔ)器Flash中,DSP復(fù)位后,先把外部存儲(chǔ)的程序加載到片上高速內(nèi)存中,然后順序執(zhí)行片上RAM中的程序。由于C64x只自動(dòng)復(fù)制1 KB到片上內(nèi)存,而接收機(jī)的程序遠(yuǎn)遠(yuǎn)大于這個(gè)數(shù)量,所以需要采用二級(jí)程序加載的方法。二級(jí)程序加載按照如下方式進(jìn)行:
  編寫二次引導(dǎo)程序代碼,然后燒寫到Flash中。系統(tǒng)復(fù)位后,DSP將通過(guò)EDMA控制器按照默認(rèn)的時(shí)序自動(dòng)二次引導(dǎo)代碼加載到片上內(nèi)存的首地址中,傳輸完成后CPU從首地址開(kāi)始執(zhí)行這段二次引導(dǎo)程序。二次引導(dǎo)代碼首先配置EMIFB的相關(guān)寄存器,使其工作在16 bit總線時(shí)序下,然后將衛(wèi)星導(dǎo)航接收機(jī)相關(guān)程序加載到CPU的片上指定空間。當(dāng)二次引導(dǎo)程序執(zhí)行完畢后自動(dòng)跳轉(zhuǎn)到主程序的入口處,開(kāi)始執(zhí)行軟件接收機(jī)的相關(guān)程序。
  值得注意的是本設(shè)計(jì)中Flash采用16 bit數(shù)據(jù)線,所以EMIFB的地址線的最低位BEA1沒(méi)有連接到Flash芯片地址線的最低位A-1,而C64x在ROM加載模式下是使用默認(rèn)時(shí)序8 bit加載,即在自加載情況下EMIFB不能訪問(wèn)本設(shè)計(jì)中Flash的奇地址。為了保證自加載成功,需要對(duì)二次引導(dǎo)程序生成的二進(jìn)制(.bin)文件進(jìn)行修改,將有效數(shù)據(jù)存放在偶地址單元,在奇地址單元填充任意數(shù)據(jù)。圖5所示為16 bit Flash與DSP的連接及自舉示意圖。

2.3 接收機(jī)任務(wù)調(diào)度設(shè)計(jì)
  軟件接收機(jī)程序是在CCS3.1開(kāi)發(fā)環(huán)境下用C語(yǔ)言開(kāi)發(fā)移植完成的。由于DSP平臺(tái)資源有限,為了滿足實(shí)時(shí)性,TI公司的DSP/BIOS操作系統(tǒng)將應(yīng)用程序按線程結(jié)構(gòu)化設(shè)計(jì),每個(gè)線程完成1個(gè)模塊化的功能,并允許高優(yōu)先級(jí)線程搶占低優(yōu)先級(jí)線程以及線程間的同步和通信[5]。把接收機(jī)的跟蹤、捕獲、定位等功能模塊設(shè)置成相互獨(dú)立的線程,線程之間的切換通過(guò)硬件中斷或軟件中斷來(lái)實(shí)現(xiàn),并根據(jù)實(shí)時(shí)性要求為各個(gè)線程分配優(yōu)先級(jí),其中跟蹤優(yōu)先級(jí)最高,捕獲優(yōu)先級(jí)最低,定位線程通過(guò)周期(PRD)函數(shù)來(lái)實(shí)現(xiàn),優(yōu)先級(jí)介于跟蹤和捕獲之間。軟件接收機(jī)各個(gè)線程的功能以及它們之間的關(guān)系如下:
  (1) 數(shù)據(jù)采集硬件中斷
  EDMA觸發(fā)的硬件中斷具有最高優(yōu)先級(jí)。該中斷由McBSP端口產(chǎn)生,并通過(guò)EDMA中斷觸發(fā),每20 ms中斷1次。中斷響應(yīng)程序中主要完成乒乓緩沖區(qū)的切換和數(shù)據(jù)拷貝工作。中斷處理完成后,會(huì)立刻觸發(fā)跟蹤軟中斷,以保證及時(shí)完成衛(wèi)星信號(hào)的跟蹤。
  (2) 信號(hào)處理軟中斷
  跟蹤線程軟中斷處理程序如果發(fā)現(xiàn)有需要跟蹤的導(dǎo)航衛(wèi)星,則對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行跟蹤運(yùn)算。跟蹤線程結(jié)束后,會(huì)根據(jù)當(dāng)前DSP處理器占用情況分時(shí)隙調(diào)用捕獲軟中斷。跟蹤線程具有最高的軟中斷優(yōu)先級(jí)。該中斷執(zhí)行時(shí)間與同時(shí)跟蹤的衛(wèi)星數(shù)量有關(guān)。
  捕獲線程中斷處理程序可被所有其他線程搶占,當(dāng)所有高優(yōu)先級(jí)的線程執(zhí)行完畢后,捕獲才能繼續(xù)執(zhí)行。捕獲線程對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行捕獲處理,將已捕獲的衛(wèi)星信息告知系統(tǒng),以在下一次硬件中斷后對(duì)其進(jìn)行跟蹤,在DSP平臺(tái)的平均執(zhí)行時(shí)間為50 ms。
  (3) 定位線程周期中斷
  定位周期線程執(zhí)行1次定位解算任務(wù),并將定位結(jié)果寫入專門開(kāi)辟的緩沖區(qū)中,隨后EDMA控制器會(huì)自動(dòng)將結(jié)果通過(guò)McBSP1端口傳輸?shù)斤@示設(shè)備。該中斷的優(yōu)先級(jí)高于捕獲線程,但低于跟蹤線程,在DSP平臺(tái)的平均執(zhí)行時(shí)間為3 ms。
  圖6所示為軟件接收機(jī)各線程之間的調(diào)度流程框圖。

3 實(shí)驗(yàn)結(jié)果
  在實(shí)驗(yàn)中,將接收機(jī)平臺(tái)設(shè)置為12 MHz,1 bit采樣,通過(guò)射頻前端與GPS天線相連,實(shí)時(shí)接收GPS衛(wèi)星信號(hào),利用RTDX技術(shù)通過(guò)JTAG口將結(jié)果傳輸?shù)街鳈C(jī)進(jìn)行顯示。根據(jù)對(duì)各線程運(yùn)算量的分析和實(shí)驗(yàn)驗(yàn)證可知,基于獨(dú)立DSP的衛(wèi)星導(dǎo)航接收機(jī)平臺(tái)可以很好地完成6~10顆衛(wèi)星的實(shí)時(shí)跟蹤,并能準(zhǔn)確定位。圖7所示為對(duì)應(yīng)的電子地圖結(jié)果。除此之外,本文所提到的多星座軟件接收機(jī)也開(kāi)展了仿真試驗(yàn)測(cè)試,目前能夠?qū)γ總€(gè)星座系統(tǒng)實(shí)現(xiàn)4~5顆衛(wèi)星的實(shí)時(shí)跟蹤,其性能仍需進(jìn)一步提高。

  本文詳細(xì)介紹了基于單顆高速定點(diǎn)DSP的實(shí)時(shí)衛(wèi)星導(dǎo)航軟件接收機(jī)平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)。提供了詳細(xì)的硬件平臺(tái)結(jié)構(gòu)設(shè)計(jì)方案,闡述了系統(tǒng)上電自加載功能的實(shí)現(xiàn)方法以及接收機(jī)軟件任務(wù)調(diào)度流程。根據(jù)本方案實(shí)現(xiàn)的衛(wèi)星導(dǎo)航軟件接收機(jī)具有低成本、低功耗、通用性好、功能可升級(jí)擴(kuò)展等優(yōu)點(diǎn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉