基于XScale處理器的天線控制系統的設計
天線控制系統功能復雜、任務繁多,且各個任務之間需要進行信息交流,彼此聯系,互為因果。利用多任務機制對各個功能進行管理調度,保證了系統的實時性和可靠性。
對本系統而言,任務劃分實際上就是對天線控制系統的工作流程做一個分解,使其每一動作都對應在一個任務中實現,由動作的執行順序確定多任務中每一任務的優先級。系統進入開機狀態后,通過選擇輸入衛星參數(衛星參數信息固化在程序中),系統開始初始化。通過串口提取GPS提供的有用信息,通過姿態解算計算出天線的初始對星角度,并在基準確定的基礎上進行角度修正,通過嵌入式控制系統驅動完成初始對星。在對星狀態完成之后,開始進行電平搜索,得到準確的天線指向并鎖定該位置,之后系統進入自動跟蹤狀態,同時陀螺進入閉環工作狀態。
2.3 Windows CE移植
引導加載程序(Boot Loader)是在操作系統內核運行之前運行的一段小程序。雖然在Boot Loader中并不嚴格規定如何獲得操作系統映像,但絕大多數Boot Loader都會從開發機下載映像到目標機,然后把映像放到內存里執行。在所有下載映像的Boot Loader中,通過以太網進行下載的Boot Loader占絕大多數,稱為Etherent Boot Loader,簡稱EBoot。在本系統中,EBoot主要有以下功能:
1、初始化目標硬件設備,包括初始化內存、中斷控制器、時鐘和MMU等;
2、控制啟動過程,提供簡單的菜單與用戶交互,讓用戶選擇啟動過程;
3、下載并執行操作系統映像。
總體而言,EBoot的唯一目標就是加載并執行操作系統映像。因此,Boot Loader必須在OS被下載前就先安裝在目標機上,并與Platform Builder交互。
在ARM/ XScale系統中,我們使用JTAG將Boot Loader程序燒寫到Flash存儲器中,待系統加電或重置時自動執行。
2.4 軟件開發與調試
基于Windows CE設備的開發過程是由不斷修改、增加配置特征、構建、下載、調試等組成的一個遞歸開發過程。每當在Platform Builder中添加或修改一個特征時,都必須重新構建操作系統映像,并將它下載到目標設備硬件上進行執行和調試。一旦完成操作系統配置,我們就可以利用Platform Builder提供的導出SDK工具,為應用程序開發者導出一個定制的SDK,應用程序將導出的 SDK安裝到eMbedded Visual C++ 4.0后,就可以為特定的硬件平臺開發應用程序,并在特定硬件上進行調試和測試了。
在天線控制系統工作原理的基礎上,采用多線程、分時共享技術,根據任務規劃流程建立多任務和用戶應用程序,具體劃分如下模塊:用戶界面線程、信號采集線程、數據處理線程、初始對準線程、動態跟蹤線程、狀態判斷線程、衛星搜索線程、穩定控制線程。相關算法集合在各個任務之中。
軟件移植主要包括Windows CE操作系統內核代碼定制、裁剪,實現其核心代碼在XScale處理器上的移植,針對系統實際需求對Windows CE進行操作系統本身的功能擴展,并移植到硬件平臺,實現天線的每一步具體動作。主要實現“陀螺閉環穩定+程序跟蹤+步進跟蹤”控制跟蹤方案的算法實現與優化,并把用C++語言實現的控制程序移植到XScale處理器上,最后基于Windows CE建立完整實用的RTOS對天線控制系統進行控制。
3 結束語
基于Intel XScale PXA255處理器作為硬件設計、移植Windows CE操作系統并在天線控制系統整體方案的基礎上,開發了天線控制系統的多任務軟件系統。整個系統的模塊化設計,為日后的擴展、移植和維護工作提供了方便。同時表明,應用嵌入式實時操作系統Windows CE開發天線控制系統軟件能夠有效地降低軟件設計的復雜度,顯著提高軟件的可靠性和運行效率。該設計方案在實際中有很好的應用前景。
評論