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