基于DSP的GPS定位解算算法研究與實(shí)現(xiàn)
以下簡(jiǎn)要說(shuō)明DSP的工作流程:
(1)DSP系統(tǒng)初始化,等待外部中斷;
(2)中斷到來(lái),由外部中斷4得到時(shí)間觀測(cè)量,由外部中斷5得到導(dǎo)航電文;
(3)對(duì)時(shí)間觀測(cè)量和導(dǎo)航電文進(jìn)行拼接組合,由時(shí)間觀測(cè)量得到偽距信息,由導(dǎo)航電文計(jì)算衛(wèi)星發(fā)射時(shí)刻的位置,其中包括觀測(cè)衛(wèi)星在WGS-84坐標(biāo)系下的三維位置、仰角和方位角等;
(4)根據(jù)觀測(cè)衛(wèi)星的星歷對(duì)偽距進(jìn)行修正,并進(jìn)行電離層和對(duì)流層校正等;
(5)根據(jù)定位原理,計(jì)算出用戶的三維位置,校正本地時(shí)間,并將三維位置轉(zhuǎn)換成所需要的坐標(biāo)格式;
(6)通過(guò)McBSP串口輸出定位結(jié)果,并對(duì)輸出結(jié)果進(jìn)行記錄。
2.1 中斷
中斷是DSP系統(tǒng)的基本功能。一般而言,中斷表明一個(gè)特別事件的開(kāi)始或結(jié)束。一個(gè)DSP系統(tǒng)需要與多個(gè)事件打交道,這些事件可能是內(nèi)部的,也可能是外部的,而這些事件發(fā)生的時(shí)間是不確定的,也就是這些事件可能是異步的。異步事件的發(fā)生具有時(shí)間上的不確定性,一旦異步事件發(fā)生,就要求DSP能夠隨之做出相應(yīng)的反應(yīng)和處理。中斷就可以提供這樣的一種機(jī)制,一旦異步事件發(fā)生,DP立即暫停CPU當(dāng)前的處理任務(wù),按預(yù)先的安排對(duì)該事件進(jìn)行處理,處理完畢后,CPU再繼續(xù)原來(lái)的任務(wù)。中斷可以由外部設(shè)備產(chǎn)生,也可以由DSP內(nèi)部產(chǎn)生。由硬件或軟件驅(qū)動(dòng)的中斷信號(hào)可使DSP中止當(dāng)前程序并執(zhí)行另一個(gè)程序,該程序稱(chēng)為中斷服務(wù)程序。
TMS320C6713的中斷處理過(guò)程分為三個(gè)階段:
(1)中斷請(qǐng)求。當(dāng)有中斷請(qǐng)求時(shí),DSP將IFR寄存器的相應(yīng)位置1。
(2)中斷確認(rèn)。對(duì)于軟件中斷和不可屏蔽中斷,CPU是立即響應(yīng)的;對(duì)于可屏蔽中斷,要滿足下列條件才能響應(yīng):CSR寄存器的GIE位為0,IER寄存器的NMIE位為1,IER寄存器的相應(yīng)位為1,優(yōu)先級(jí)最高。
(3)中斷處理。保護(hù)特定的寄存器,執(zhí)行中斷服務(wù)程序,完成后恢復(fù)寄存器。
如圖2所示,在該系統(tǒng)的設(shè)計(jì)中,使用了外部中斷4和外部中斷5。每當(dāng)DSP接收到中斷請(qǐng)求,立即暫停CPU當(dāng)前的處理任務(wù),進(jìn)入中斷服務(wù)程序,處理完畢后,CPU再繼續(xù)原來(lái)的任務(wù)。由外部中斷4得到時(shí)間觀測(cè)量,由外部中斷5得到導(dǎo)航電文。DSP提供的中斷是以中斷向量表的形式出現(xiàn)的,該系統(tǒng)的部分中斷向量表如下:
2.2 EMIF接口
EMIF是外部存儲(chǔ)器與TMS320C6713片內(nèi)單元間的接口。CPU訪問(wèn)片外存儲(chǔ)器時(shí)一般通過(guò)EMIF接口,DSP的EMIF具有很強(qiáng)的接口能力。TMS320~C6713的EMIF接口有20根地址總線,32位數(shù)據(jù)總線,4個(gè)片選信號(hào)和多種控制信號(hào),能夠支持多種不同類(lèi)型的外部存儲(chǔ)器件。其中,每個(gè)片選空間是相對(duì)獨(dú)立的,各自占用一段地址,能夠適應(yīng)不同速率的存儲(chǔ)器件。
如圖2所示,圖中ED[31:0]表示數(shù)據(jù)總線,EA[21:2]表示地址總線,CE[3:0]為片選信號(hào),AOE為輸出使能信號(hào),ARE為讀使能信號(hào),AWE為寫(xiě)使能信號(hào)。通過(guò)控制信號(hào)、數(shù)據(jù)總線和地址總線的配合使用,就可以完成DSP與外部存儲(chǔ)器件的數(shù)據(jù)交換。
圖3所示為T(mén)MS320C6713EMIF接口的讀時(shí)序。圖中讀的建立需要兩個(gè)時(shí)鐘周期,之后每個(gè)觸發(fā)需要兩個(gè)時(shí)鐘周期,在AlRE的下降沿,F(xiàn)PGA將時(shí)間觀測(cè)量和導(dǎo)航電文放在數(shù)據(jù)總線上,在ARE的上升沿,也就是數(shù)據(jù)保持的中間時(shí)刻,DSP讀取數(shù)據(jù),這樣就完成了FPGA與DSP的數(shù)據(jù)交換。本文引用地址:http://www.ex-cimer.com/article/149435.htm
在該系統(tǒng)的設(shè)計(jì)中,時(shí)間觀測(cè)量的幀格式如圖4所示,導(dǎo)航電文的幀格式如圖5所示,DSP由EMIF接口接收到時(shí)間觀測(cè)量和導(dǎo)航電文之后,首先進(jìn)行數(shù)據(jù)的拼接組合,由時(shí)間觀測(cè)量得到偽距,由導(dǎo)航電文計(jì)算出衛(wèi)星發(fā)射時(shí)刻的位置。
評(píng)論