摘?要:介紹了基于GP4020的GPS接收機(jī)的電路設(shè)計(jì)及軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)。GP4020是ZARLINK公司推出的GPS接收機(jī)數(shù)字基帶處理器,內(nèi)部集成了12通道的相關(guān)器" title="相關(guān)器">相關(guān)器和先進(jìn)的ARM7TDMI微處理器,因而減少了GPS接收機(jī)設(shè)計(jì)的復(fù)雜程度;同時(shí),GP4020與GP2010或GP2015直接相連,組成了GPS導(dǎo)航系統(tǒng)。
關(guān)鍵詞:GPS接收機(jī); GP4020; ARM7TDMI
?
??? 一個(gè)完整的GPS接收機(jī)包括三個(gè)模塊:下變頻模塊、數(shù)字信號(hào)處理模塊" title="處理模塊">處理模塊和應(yīng)用信息模塊。本文介紹的GP4020基帶處理器包含數(shù)字信號(hào)處理模塊和應(yīng)用信息處理模塊,因而減少了GPS基帶電路設(shè)計(jì)的復(fù)雜性。GP4020工作電壓為3.3V,具有先進(jìn)的低功耗微處理器ARM7和可配置的外部數(shù)據(jù)總線。
GP4020電路設(shè)計(jì)
與射頻電路的連接
??? GP4020與下變頻芯片GP2010結(jié)合使用,組成完整的GPS接收機(jī)。GP2010將接收到的L1信號(hào)經(jīng)過三次下變頻,變成中頻為4.309MHz的模擬信號(hào),然后再經(jīng)過采樣變成1.405MHz的2bit數(shù)字信號(hào)(TTL電平)。GP2010與GP4020共有7個(gè)管腳需要相連,它們分別為SIGN(符號(hào))、MAG(量級(jí))、SAMPCLK(采樣頻率)、CLK_I、CLK_T、PLL_LOCK、PRESET。其連接方式如圖1所示。
?
????GP2010輸出的差分信號(hào)CLK_I和CLK_T連接到GP4020,通過系統(tǒng)時(shí)鐘產(chǎn)生器產(chǎn)生40MHz信號(hào),并作為相關(guān)器的主時(shí)鐘。CLK_I、CLK_T管腳輸出的直流偏置電壓為2.1V,但由于GP4020的58、59管腳的電平不能大于1.7V,所以在設(shè)計(jì)時(shí),必須對(duì)GP2010進(jìn)行隔直,同時(shí)通過電源給GP4020的58、59管腳提供小于1.7V的偏置電壓。
??? GP2010的LD管腳接入GP4020的56管腳。當(dāng)LD管腳由低變高時(shí), 表示射頻前端鎖相成功, 主時(shí)鐘(M_CLK 40MHz)已經(jīng)穩(wěn)定。
GP2010的PRESET信號(hào)接入GP4020的Power_Good管腳,指示當(dāng)前電源的狀況,高為正常,低表示GP4020 進(jìn)入掉電模式。
GP2010的SIGN和MAG信號(hào)分別接入到GP4020的61和62管腳,將采樣后的中頻信號(hào)(符號(hào)和模)輸出到相關(guān)器。
??? GP4020的63管腳連接GP2010的11管腳,將5.714MHz的中頻采樣信號(hào)輸出至GP2010。
外部存儲(chǔ)器的擴(kuò)展
??? GP4020內(nèi)部提供了BOOTROM和8KB SRAM,但通常情況下不能滿足一個(gè)完整的GPS接收機(jī)的存儲(chǔ)要求,為此,需要外擴(kuò)Flash和SRAM。
??? GP4020提供20位的地址總線和16位的數(shù)據(jù)總線,以及其他相應(yīng)的控制信號(hào)。它能夠提供外界不同帶寬數(shù)據(jù)的接口,而且可以任意設(shè)置讀或?qū)懙牡却隣顟B(tài),這使得片內(nèi)的ARM內(nèi)核可以連接到幾乎所有類型的外存儲(chǔ)器或其他并行外設(shè)。在本文的設(shè)計(jì)中,SRAM為CY7C1041CV33,其工作電壓為3.3V,存儲(chǔ)空間為256K×16位;Flash為SST39VF800A,其工作電壓為3.3V,存儲(chǔ)空間為512K×16位。
GP4020與SRAM的連接
??? SRAM由片選信號(hào)NSCS[1]進(jìn)行選通控制。BHE、BLE分別為SRAM的低字節(jié)使能信號(hào)和高字節(jié)使能信號(hào)。本設(shè)計(jì)中,SRAM工作在16位數(shù)據(jù)模式下,BHE與GP4020芯片的NSUB引腳相連,NSUB為系統(tǒng)上部字節(jié)信號(hào),低電平有效;BLE與GP4020芯片的A0腳相連;WE為SRAM的寫使能信號(hào),該引腳低電平時(shí),即對(duì)SRAM進(jìn)行寫操作;OE為輸出使能信號(hào),低電平有效;NSWE[O]為GP4020的系統(tǒng)寫使能信號(hào),低電平有效;NSOE為系統(tǒng)輸出使能信號(hào),低電平有效。GP4020芯片與SRAM的連接如圖2所示。
?
GP4020與Flash的連接
??? Flash與GP4020芯片的連接如圖3所示。NSWE[0]為GP4020的系統(tǒng)寫使能信號(hào),低電平有效;NSCS[0]為系統(tǒng)片選信號(hào),低電平有效;NSOE為系統(tǒng)輸出使能信號(hào),低電平有效;CE為Flash的片選信號(hào),低電平有效;OE為Flash的輸出使能信號(hào),低電平有效;WE為Flash的寫使能信號(hào),低電平有效(只在Flash進(jìn)行擦寫時(shí)才有效)。
?
通信與調(diào)試接口
UART接口
??? GP4020提供2個(gè)UART和1個(gè)JTAG接口。UART是雙向獨(dú)立的輸入輸出接口,它提供一個(gè)0~3.3V的邏輯電平,不能和計(jì)算機(jī)RS232接口相連。為使如果UART與RS232串口通信,必須要有一個(gè)電平轉(zhuǎn)換器,把0~3.3V的邏輯電平轉(zhuǎn)換成能與計(jì)算機(jī)通信的電平。在本設(shè)計(jì)中,用MAX3232做電平轉(zhuǎn)換器,其接口電路如圖4所示。
?
JTAG調(diào)試接口
??? JTAG調(diào)試接口與JTAG仿真器相連,對(duì)ARM進(jìn)行調(diào)試。JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片上的JTAG邊界掃描口進(jìn)行調(diào)試的設(shè)備。圖5為JTAG信號(hào)連接圖。
?
系統(tǒng)的復(fù)位電路
??? 在系統(tǒng)中,復(fù)位電路主要完成系統(tǒng)的上電復(fù)位功能和系統(tǒng)在運(yùn)行時(shí)用戶的按鍵復(fù)位功能。本設(shè)計(jì)中的復(fù)位電路由簡單的RC電路構(gòu)成,如圖6所示。 ?
?
??? 在系統(tǒng)上電時(shí),通過電阻R向電容充電,當(dāng)電容兩端的電壓未達(dá)到高電平" title="高電平">高電平的門限電壓時(shí),NSRESET端輸出為低電平,系統(tǒng)處于復(fù)位狀態(tài);當(dāng)電容兩端的電壓達(dá)到高電平的門限電壓時(shí),NSRESET端輸出為高電平,系統(tǒng)進(jìn)入正常工作狀態(tài)。
??? 當(dāng)用戶按下按鈕時(shí),電容兩端的電荷被瀉放掉, NSRESET端輸出為低電平,系統(tǒng)進(jìn)入復(fù)位狀態(tài),再重復(fù)以上的充電過程,系統(tǒng)進(jìn)入正常工作狀態(tài)。
GP4020其他管腳設(shè)計(jì)
MULTI_FNIO(54)管腳
??? 該管腳控制GP4020的啟動(dòng)方式, 若MULTI_ FNIO在系統(tǒng)復(fù)位時(shí)輸入為高,則選中內(nèi)部Boot ROM,系統(tǒng)啟動(dòng)后,從串口1輸入程序代碼到內(nèi)部SRAM中執(zhí)行;若MULTI_FNIO在系統(tǒng)復(fù)位時(shí)輸入為低,則選中外部Flash EPROM,系統(tǒng)直接執(zhí)行外部Flash EPROM中的應(yīng)用程序,這是GPS接收機(jī)的正常工作狀態(tài)。系統(tǒng)設(shè)計(jì)時(shí),通過設(shè)置跳線來選擇54引腳MULTI _FNIO的輸入值。
TEST(67)管腳和TESTMODE(74)管腳
??? 這兩個(gè)管腳一起決定GP4020的測(cè)試模式(通過條線來設(shè)置),見表1所示。
?
??? 當(dāng)TEST=0、TESTMODE=0時(shí),GP4020為正常工作模式。本設(shè)計(jì)中,將TEST管腳和TESTMODE管腳接地。
NICE(84)管腳和NTRST(90)管腳
??? 這兩個(gè)管腳共同控制著GP4020測(cè)試接口模式。NICE(84)=0,GP4020內(nèi)部的ARM7處于測(cè)試模式。NICE(84)=1,GP4020為正常的操作模式。具體模式如表2所示。
?
??? GP4020的工作模式通過跳線來設(shè)計(jì)。當(dāng)管腳NICE和NTRST都為高時(shí),GP4020工作在正常模式下。
軟件設(shè)計(jì)
??? GP4020內(nèi)部的軟件設(shè)計(jì)主要由基帶信號(hào)處理和導(dǎo)航定位算法兩部分組成。基帶信號(hào)處理主要實(shí)現(xiàn)信號(hào)的解擴(kuò)、解調(diào)、位同步和幀同步。導(dǎo)航定位算法主要是根據(jù)導(dǎo)航電文解算偽距、衛(wèi)星位置并計(jì)算出用戶的位置。軟件設(shè)計(jì)主要包括主程序" title="主程序">主程序和中斷程序兩部分。
主程序設(shè)計(jì)
??? 主程序主要由初始化模塊和主循環(huán)模塊組成。初始化模塊完成GP4020內(nèi)部相關(guān)器初始化、ARM內(nèi)的初始化以及串口的初始化。主循環(huán)模塊主要檢測(cè)觀測(cè)量是否更新,如果觀測(cè)量有更新,則更新估計(jì)的多普勒頻率和相關(guān)器通道的分配,完成對(duì)部相關(guān)器的控制。圖7為主程序流程圖。
?
??? 本文主要介紹相關(guān)器模塊的程序流程。相關(guān)器模塊包括相關(guān)器控制模塊和觀測(cè)量提取模塊。
相關(guān)器處理模塊軟件設(shè)計(jì)
?? 相關(guān)器處理模塊軟件工作流程圖如圖8所示,其主要功能如下:
?? (1)讀取并存儲(chǔ)I、Q通道的積分累加值。
?? (2)判斷信號(hào)是否被捕獲。
?? (3)更新前20ms內(nèi)解調(diào)數(shù)據(jù)的采樣值之和。
?? (4)根據(jù)存儲(chǔ)的I、Q積分值,更新碼、載波指示器。
?? (5)如果碼環(huán)和載波環(huán)已鎖定,進(jìn)入位同步操作。
?? (6)根據(jù)存儲(chǔ)的 I、Q積分值,進(jìn)行碼環(huán)的跟蹤,根據(jù)碼跟蹤環(huán)的環(huán)路濾波器輸出的控制量去調(diào)整碼DCO。
?? (7)在1ms歷元計(jì)數(shù)器為零和位已經(jīng)同步時(shí),進(jìn)入幀同步操作,并提取子幀以供主程序的子幀處理模塊處理。環(huán)己經(jīng)鎖定,進(jìn)入位同步操作。
?
?
觀測(cè)量提取模塊
??? 該模塊主要功能是在每個(gè)TIC時(shí)刻,讀取相關(guān)器內(nèi)部的測(cè)量數(shù)據(jù)寄存器,獲得載波相位、載波周期數(shù)以及碼相位。其流程圖如圖9所示。
?
??? 如果滿足碼同步、載波同步、位同步和幀同步條件,則讀取相關(guān)器的碼相位、載波相位、載波整周計(jì)數(shù),并存取這些觀測(cè)量,以供主程序中更新導(dǎo)航解模塊處理。
系統(tǒng)中斷服務(wù)程序流程
??? 中斷服務(wù)程序流程圖如圖10所示。中斷服務(wù)程序是保證GPS實(shí)時(shí)性的關(guān)鍵部分,它主要完成衛(wèi)星信號(hào)的捕獲、跟蹤及原始觀測(cè)量的提取等接收機(jī)中的核心工作。GP4020中的相關(guān)器中斷周期可通過軟件進(jìn)行設(shè)置。相關(guān)器內(nèi)部默認(rèn)中斷周期為505us,在不對(duì)相關(guān)器寄存器進(jìn)行配置的情況下,每隔505?滋s,相關(guān)器發(fā)送中斷信號(hào),通知處理器進(jìn)入中斷服務(wù)程序。
?
??? GP4020相關(guān)器提供1ms的累加結(jié)果。在積分累加器信號(hào)累加之后,會(huì)產(chǎn)生累加清除信號(hào),清除積分器中的數(shù)據(jù)。所以進(jìn)入中斷后,CPU首先要鎖住各狀態(tài)寄存器,根據(jù)狀態(tài)值,判斷積分累加器有無新數(shù)據(jù)需要取走,若有,則將數(shù)據(jù)取出保存,以供后續(xù)判決使用。保存完積分累加器中的數(shù)據(jù)后,進(jìn)入搜索跟蹤環(huán)節(jié)。進(jìn)入此環(huán)節(jié)后,需要根據(jù)各通道的狀態(tài),轉(zhuǎn)入相應(yīng)的處理子程序。
系統(tǒng)測(cè)試
硬件的測(cè)試
?? (1)在加電之前,首先測(cè)試電路板是否短路,如果沒問題,才可給電路板加電。
?? (2)根據(jù)上述硬件的設(shè)計(jì),加電之后測(cè)試整個(gè)電路板的電氣特性,保證每個(gè)管腳都正確連接。
?? (3)測(cè)試從射頻前端輸入的CLK_I、CKL_T信號(hào),此信號(hào)應(yīng)該是同頻反相的40MHz信號(hào),如圖11所示。
?? (4)測(cè)試GP4020的63管腳(SAMPLE)信號(hào),此信號(hào)應(yīng)該是5.714MHz的方波信號(hào),結(jié)果如圖12所示,這表明GP4020硬件已經(jīng)正常工作。
?
?
?
軟件的調(diào)試
??? 在斷電的情況下,將GP4020的54管腳和84管腳設(shè)置成低,將調(diào)試器通過GP4020的JTAG接口連接到目標(biāo)板。在GPS接收機(jī)加電之后,系統(tǒng)進(jìn)入調(diào)試狀態(tài),進(jìn)行多次調(diào)試,使GPS接收機(jī)應(yīng)用軟件正常運(yùn)行。
軟件的運(yùn)行
??? 將GPS接收機(jī)斷電,67管腳、74管腳接低電平,84管腳、90管腳接高電平,這樣處理器工作在正常模式。同時(shí)將54管腳接低,在GPS接收機(jī)加電后,系統(tǒng)從外部的Flash啟動(dòng)。這時(shí)就可以通過PC機(jī)上的串口接收GPS接收機(jī)發(fā)送的數(shù)據(jù)。
??? 本文主要介紹GP4020基帶處理器的電路設(shè)計(jì)和軟件設(shè)計(jì)流程,給出了GP4020重要的輸入輸出信號(hào)的測(cè)試結(jié)果。由于GP4020的硬件特性,其內(nèi)部的相關(guān)器只提供了乘法器和積分累加器,需要配合軟件算法才能完成信號(hào)捕獲與跟蹤。這樣,一方面可以更深入地研究接收機(jī)的工作原理,另一方面又可根據(jù)具體應(yīng)用而采用不同的軟件算法。這樣設(shè)計(jì)出來的接收機(jī)具有較好的可擴(kuò)展性,為GPS接收機(jī)的研究提供一個(gè)很好的實(shí)驗(yàn)平臺(tái)。
參考文獻(xiàn)
[1] 黃勛.基于微處理器ARM的GPS接收機(jī)的設(shè)計(jì)[D].京信息工程大學(xué)碩士學(xué)位論文,2006.
[2] 李士兵.基于GP4020的GPS接收機(jī)軟件設(shè)計(jì)[J].中國慣性技術(shù)學(xué)報(bào).2006,14(4).
[3] ZARLINK. DM5280. GP4020 GPS?baseband processor design manual.2001.