隨著(zhù)信息社會(huì )的到來(lái),人類(lèi)的生產(chǎn)方式、生活方式以及工作方式也隨著(zhù)現代技術(shù)的不斷發(fā)展而發(fā)生變化。無(wú)論在民用還是軍用方面,都需要一種可以在移動(dòng)中實(shí)時(shí)、大容量、不間斷地傳遞語(yǔ)音、數據、動(dòng)態(tài)圖像等多媒體信息的衛星天線(xiàn)跟蹤系統的出現。因此,機動(dòng)性能強、抗干擾能力強、保密性強的衛星通信系統理所當然地成為了當前移動(dòng)通信研究領(lǐng)域的熱點(diǎn)與重點(diǎn)。 本文所介紹的基于XScale微處理器的“動(dòng)中通”移動(dòng)衛星天線(xiàn)控制系統,能夠在各種條件下保證天線(xiàn)高精度地對準目標衛星,準確而快速實(shí)現平臺天線(xiàn)和衛星之間的實(shí)時(shí)通信。由于采用了嵌入式控制系統進(jìn)行開(kāi)發(fā),該衛星移動(dòng)天線(xiàn)控制系統體積小,性?xún)r(jià)比優(yōu)良,實(shí)時(shí)性好。 1 系統總體設計 1.1 總體方案 采用“開(kāi)環(huán)穩定+閉環(huán)跟蹤”的控制方案?傮w思想如下:通過(guò)GPS接收機得出載體方位信息,使用姿態(tài)傳感器敏感載體的姿態(tài)角,快速初始對準衛星,將慣性角速率陀螺儀作為電機伺服控制的反饋元件,敏感載體運動(dòng)過(guò)程中天線(xiàn)平臺在方位和俯仰方向的變化,通過(guò)反饋補償保證載體運動(dòng)過(guò)程中平臺的穩定。同時(shí),為克服載體姿態(tài)變化快、幅度大,以及陀螺的漂移和電機的特性等諸多復雜因素的影響,滿(mǎn)足衛星通信對跟蹤精度的要求,在陀螺穩定的基礎上還配以電平信號步進(jìn)跟蹤以達到高精度穩定跟蹤目標衛星的目的。 采用方位和俯仰兩軸控制,雖可以避免三軸控制的復雜性,但是天線(xiàn)俯仰軸相對于水平面的橫滾變化卻無(wú)法消除。該變化對螺旋天線(xiàn)、平板天線(xiàn)影響不大,但是會(huì )影響拋物面天線(xiàn)接收信號的強度。這時(shí)可以在兩軸穩定控制的基礎上增加極化軸,用電機尋找最佳極化角度。 1.2 嵌入式系統組成 嵌入式系統設計是本文的重點(diǎn)內容。嵌入式系統是一種將嵌入了軟件的計算機硬件作為其最重要的一部分的系統。它是一種專(zhuān)用于某個(gè)應用或者產(chǎn)品的基于計算機的系統,既可以是一個(gè)獨立的系統,也可以是更大系統的一部分[1]?傮w而言,一個(gè)嵌入式系統有三個(gè)主要組成部分:支撐硬件、主應用軟件和實(shí)時(shí)操作系統(RTOS)。實(shí)時(shí)操作系統和主應用軟件集成于計算機硬件系統之中,也就是軟件與硬件的一體化。軟件和硬件之間由BSP層(板極支持包)連接。嵌入式系統的體系結構如圖2所示: 1.3 硬件支持 設計中首先要考慮的是如何使操作系統能更有效的管理資源并支持多任務(wù)環(huán)境。為了移植Windows CE操作系統與開(kāi)發(fā)相關(guān)的程序,我們選用基于Intel XScale PXA255處理器的高端嵌入式解決方案XSBASE255作為實(shí)驗平臺。 該開(kāi)發(fā)板具有我們系統實(shí)驗所需的大部分硬件配置。同時(shí),硬件設備廠(chǎng)商為客戶(hù)提供了Windows CE.NET下PXA255的BSP,所以在硬件擴展加以改動(dòng)時(shí),可以很方便的進(jìn)行BSP開(kāi)發(fā),只需對現有的源代碼進(jìn)行修改。 Intel XScale PXA255是32位RISC處理器,支持ARMv5TE指令集,采用7級超流水線(xiàn),32KB指令緩存和32KB數據緩存,主頻為400MHz,具有MMU(Memory Management Unit)。XSBASE255采用兩片16MB的Flash Rom提供了32MB的非易失存儲,采用兩片32MB SDRAM組成64MB作為主內存。引導程序、Image等所有的軟件都是存儲在Flash中。同時(shí),PXA255提供眾多的外設接口為開(kāi)發(fā)提供了極大的擴展性和適應性。 2 系統軟件實(shí)現 2.1 軟件支持 在嵌入式計算機應用中使用實(shí)時(shí)操作系統,可使控制系統的實(shí)時(shí)性得到保證,同時(shí)良好的多任務(wù)規劃設計及根據需求對軟件進(jìn)行裁剪,有助于提高系統的穩定性和可靠性。 Microsoft Windows CE是一個(gè)開(kāi)放的、可裁剪的、32位的實(shí)時(shí)嵌入式窗口操作系統?梢怨ぷ髟12種不同的處理器體系結構、180余種CPU上;緊湊、高效和可擴展的特性,使它適用于各種嵌入式系統和產(chǎn)品。擁有多線(xiàn)程、多任務(wù)、確定性的實(shí)時(shí)、完全搶占式優(yōu)先級的操作系統環(huán)境,專(zhuān)門(mén)面向只有有限資源的硬件系統[2]。同時(shí),它的模塊化設計方式使得系統開(kāi)發(fā)人員和應用開(kāi)發(fā)人員能夠為多種多樣的產(chǎn)品來(lái)定制它。 Windows CE內核是Windows CE操作系統的核心。系統運行時(shí),Windows CE的內核表現為NK.EXE進(jìn)程。NK.EXE是所有基于Windows CE的系統中都存在的核心進(jìn)程,它實(shí)現了Win32 API核心進(jìn)程創(chuàng )建加載、線(xiàn)程調度、中斷處理和內存管理等核心功能[3]。 當Windows CE加載一個(gè)應用程序時(shí),它就產(chǎn)生了一個(gè)進(jìn)程。多個(gè)進(jìn)程使用戶(hù)可以同時(shí)工作于多個(gè)應用程序,而多個(gè)線(xiàn)程可以使一個(gè)應用程序同時(shí)完成多個(gè)任務(wù)。在任務(wù)調度過(guò)程,內核維護一個(gè)當前操作系統所有線(xiàn)程的優(yōu)先級列表。每個(gè)進(jìn)程可能包含多個(gè)線(xiàn)程,而每一個(gè)線(xiàn)程都是一個(gè)可執行單元。調度系統控制這些執行單元的執行順序,并允許他們相互之間以可預測的方式交換數據[4]。當中斷發(fā)生時(shí),調度系統重新排列所有線(xiàn)程的優(yōu)先級。 下面是一些與調度有關(guān)的主要函數介紹[5]: 1、MakeRunIfNeeded(HANDLE hth)函數:主要功能是在需要時(shí)調度線(xiàn)程; 2、MakeRun(PTHREAD pth)函數:如果當前沒(méi)有可運行的線(xiàn)程,或者指定的線(xiàn)程pth是優(yōu)先級最高的線(xiàn)程,那么把pth插入到可運行隊列的最前面,并判斷是否需要重新修改調度策略; 3、RunqDequeue(PTHREAD pth,DWORD cprio)函數:從運行隊列中刪除一個(gè)線(xiàn)程; 4、SleepqDequeue(PTHREAD pth)函數:把一個(gè)線(xiàn)程從睡眠隊列中刪除; 5、ThreadSleep(DWORD time)函數:讓線(xiàn)程睡眠一段時(shí)間。 2.2 任務(wù)劃分 天線(xiàn)控制系統功能復雜、任務(wù)繁多,且各個(gè)任務(wù)之間需要進(jìn)行信息交流,彼此聯(lián)系,互為因果。利用多任務(wù)機制對各個(gè)功能進(jìn)行管理調度,保證了系統的實(shí)時(shí)性和可靠性。 對本系統而言,任務(wù)劃分實(shí)際上就是對天線(xiàn)控制系統的工作流程做一個(gè)分解,使其每一動(dòng)作都對應在一個(gè)任務(wù)中實(shí)現,由動(dòng)作的執行順序確定多任務(wù)中每一任務(wù)的優(yōu)先級。系統進(jìn)入開(kāi)機狀態(tài)后,通過(guò)選擇輸入衛星參數(衛星參數信息固化在程序中),系統開(kāi)始初始化。通過(guò)串口提取GPS提供的有用信息,通過(guò)姿態(tài)解算計算出天線(xiàn)的初始對星角度,并在基準確定的基礎上進(jìn)行角度修正,通過(guò)嵌入式控制系統驅動(dòng)完成初始對星。在對星狀態(tài)完成之后,開(kāi)始進(jìn)行電平搜索,得到準確的天線(xiàn)指向并鎖定該位置,之后系統進(jìn)入自動(dòng)跟蹤狀態(tài),同時(shí)陀螺進(jìn)入閉環(huán)工作狀態(tài)。 2.3 Windows CE移植 引導加載程序(Boot Loader)是在操作系統內核運行之前運行的一段小程序。雖然在Boot Loader中并不嚴格規定如何獲得操作系統映像,但絕大多數Boot Loader都會(huì )從開(kāi)發(fā)機下載映像到目標機,然后把映像放到內存里執行。在所有下載映像的Boot Loader中,通過(guò)以太網(wǎng)進(jìn)行下載的Boot Loader占絕大多數,稱(chēng)為Etherent Boot Loader,簡(jiǎn)稱(chēng)EBoot。在本系統中,EBoot主要有以下功能: 1、初始化目標硬件設備,包括初始化內存、中斷控制器、時(shí)鐘和MMU等; 2、控制啟動(dòng)過(guò)程,提供簡(jiǎn)單的菜單與用戶(hù)交互,讓用戶(hù)選擇啟動(dòng)過(guò)程; 3、下載并執行操作系統映像。 總體而言,EBoot的唯一目標就是加載并執行操作系統映像。因此,Boot Loader必須在OS被下載前就先安裝在目標機上,并與Platform. Builder交互。 在A(yíng)RM/ XScale系統中,我們使用JTAG將Boot Loader程序燒寫(xiě)到Flash存儲器中,待系統加電或重置時(shí)自動(dòng)執行。 2.4 軟件開(kāi)發(fā)與調試 基于Windows CE設備的開(kāi)發(fā)過(guò)程是由不斷修改、增加配置特征、構建、下載、調試等組成的一個(gè)遞歸開(kāi)發(fā)過(guò)程。每當在Platform. Builder中添加或修改一個(gè)特征時(shí),都必須重新構建操作系統映像,并將它下載到目標設備硬件上進(jìn)行執行和調試。一旦完成操作系統配置,我們就可以利用Platform. Builder提供的導出SDK工具,為應用程序開(kāi)發(fā)者導出一個(gè)定制的SDK,應用程序將導出的 SDK安裝到eMbedded Visual C++ 4.0后,就可以為特定的硬件平臺開(kāi)發(fā)應用程序,并在特定硬件上進(jìn)行調試和測試了。 在天線(xiàn)控制系統工作原理的基礎上,采用多線(xiàn)程、分時(shí)共享技術(shù),根據任務(wù)規劃流程建立多任務(wù)和用戶(hù)應用程序,具體劃分如下模塊:用戶(hù)界面線(xiàn)程、信號采集線(xiàn)程、數據處理線(xiàn)程、初始對準線(xiàn)程、動(dòng)態(tài)跟蹤線(xiàn)程、狀態(tài)判斷線(xiàn)程、衛星搜索線(xiàn)程、穩定控制線(xiàn)程。相關(guān)算法集合在各個(gè)任務(wù)之中。 軟件移植主要包括Windows CE操作系統內核代碼定制、裁剪,實(shí)現其核心代碼在XScale處理器上的移植,針對系統實(shí)際需求對Windows CE進(jìn)行操作系統本身的功能擴展,并移植到硬件平臺,實(shí)現天線(xiàn)的每一步具體動(dòng)作。主要實(shí)現“陀螺閉環(huán)穩定+程序跟蹤+步進(jìn)跟蹤”控制跟蹤方案的算法實(shí)現與優(yōu)化,并把用C++語(yǔ)言實(shí)現的控制程序移植到XScale處理器上,最后基于Windows CE建立完整實(shí)用的RTOS對天線(xiàn)控制系統進(jìn)行控制。 3 結束語(yǔ) 基于Intel XScale PXA255處理器作為硬件設計、移植Windows CE操作系統并在天線(xiàn)控制系統整體方案的基礎上,開(kāi)發(fā)了天線(xiàn)控制系統的多任務(wù)軟件系統。整個(gè)系統的模塊化設計,為日后的擴展、移植和維護工作提供了方便。同時(shí)表明,應用嵌入式實(shí)時(shí)操作系統Windows CE開(kāi)發(fā)天線(xiàn)控制系統軟件能夠有效地降低軟件設計的復雜度,顯著(zhù)提高軟件的可靠性和運行效率。該設計方案在實(shí)際中有很好的應用前景。 |