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