蔣 韜,劉文波
(南京航空航天大學自動化學院,江蘇南京 210016)
基于μC/OS-II的便攜式飛行參數數據卸載器
蔣 韜,劉文波
(南京航空航天大學自動化學院,江蘇南京 210016)
飛行參數數據卸載器作為民用和軍用飛機普遍配置的設備,在地勤維護、飛行事故預防和調查分析以及飛行質量評估等方面起著重要作用。隨著飛行參數數據量的加大以及對飛行參數使用要求的提高,逐漸暴露出一些影響飛行參數正常使用的問題,其中誤碼率高、數據卸載速度慢、飛行參數卸載設備型號多等是影響其工作的關鍵。因此,文中介紹了一種新型的便攜式飛行參數數據卸載器,利用嵌入式技術實現其小型化、模塊化、可視化,提高了飛行參數使用效率,有效地降低誤碼率以及實現數據高速轉錄。
STM32;飛行參數卸載;μC/OS-II;μC/GUI;USB存儲
隨著嵌入式系統的廣泛應用和功能的不斷強大,對系統中人機界面的要求也越來越高,因此在嵌入式系統中加入圖形用戶界面得以廣泛運用。為充分發揮32位處理器的功能和性能優勢,提高系統的可靠性,使操作更加人性化,更多的工程師在其項目開發中選擇移植嵌入式實時操作系統(RTOS)和圖形用戶界面(GUI)?;贏RM Cortex-M3內核的STM32系列處理器具有性能優異、功耗超低、接口方便、集成度好、開發容易等優點,針對國內某型號飛機飛行參數檢測設備體積大、結構復雜、數據卸載速度慢、誤碼率高等問題,設計出基于嵌入式實時操作系統μC/OS-II的便攜式飛行參數數據卸載器,可解決以上問題。
μC/OS-II是一個可裁剪的實時操作系統多任務內核,可根據實際需求量身定做地加載一些模塊,如圖形界面、文件系統、TCP/IP等,使μC/OS-II成為一個面向問題的實用嵌入式操作系統[1]。文中首先介紹飛行參數記錄系統,然后介紹如何在STM32系列處理器上移植μC/OS-II和圖形界面μC/GUI以及飛行參數數據卸載器的功能實現。
飛行參數記錄系統測試對象為國內某型戰斗機所裝備的飛行參數記錄儀,其用于記錄飛機的各種飛行參數和機載設備的工作狀態信息,為在地面對飛機的飛行狀態和機載設備工作狀態進行分析提供原始數據。飛行參數記錄系統主要由信號轉換器、磁帶記錄器、電源3部分組成,其結構框圖如圖1所示。

圖1 飛行參數記錄系統的組成
信號轉換器的主要功能是將來自飛機的各種傳感器參數處理和轉換成9位二進制并行數字信號,同時產生循環脈沖和地址同步脈沖,并產生相應邏輯控制信號,控制磁帶記錄器正、反轉等工作狀態。
電源部分的主要功能是為信號轉換器、磁帶記錄器和電源故障指示等部件可靠地提供所需的直流穩壓電源,同時輸出設置時間和飛行架次兩個輔助參數的信號到信號轉換器。
磁帶記錄器的主要功能是完成對經信號轉換器轉換后輸出的不同工作狀態下原始信息的記錄和輸出。磁帶記錄器在寫入數據時,寫入的是信號轉換器輸出的12位并行碼。讀出時,將記錄數據以12位并行碼形式輸出,輸出數據的速度是寫入數據速度的10倍,當檢測到有循環脈沖時,通過D觸發器鎖存上升沿信號,可有效克服因黑匣子中磁帶偏離導致的數據丟失現象,使采樣數據合格率達到99.9%以上,有效地降低飛行參數誤碼率[2]。
文中設計的飛行參數數據卸載器主要由Flash存儲模塊、矩陣鍵盤模塊、LCD驅動模塊及USB傳輸模塊等組成,其硬件連接圖如圖2所示。

圖2 飛行參數數據卸載器硬件連接圖
STM32處理器通過SPI接口連接Flash存儲器并與其進行串行通信,當配置SPI為主設備時,STM32為Flash存儲器提供連接時鐘SCK[3]。當GPIO口開始讀取12位并行碼數據時,定義雙緩沖數組,將每2 Byte數據分別存入待寫Flash的地址,在寫入內容前,必須保證將要寫入的地址處于被擦除狀態。選用64 Mbit Flash芯片,與STM32實現數據傳輸時,具有快速時鐘周期、高可靠性、低功耗等優點,在技術上成功解決高速轉錄問題,轉錄速度最快可達5 120 bit/s,即下載速度為 20∶1。
鍵盤控制器ZLG7289與STM32處理器之間的通信采用SPI接口方式,但由于JTAG和Flash都需要用到SPI接口通信,考慮到鍵盤讀取對實時性要求不高,所以使用IO口模擬SPI來讀取鍵盤數據。時鐘、片選、數據信號這3根線完成與ZLG7289之間的相關通信。
當鍵盤中有鍵按下時,ZLG7289的中斷信號線由高電平變為低電平,通知STM32已有按鍵按下,STM32此時通過數據線得到鍵盤控制器輸出的按鍵碼值,從而得知具體的按鍵,并作出響應。
LCD驅動模塊接口有總線式和模擬IO式兩種,總線式有較快的數據傳輸速度,由于STM32有大量IO口,為配合μC/GUI底層驅動,文中采用IO口模擬8080總線接口連接STM32和由CPLD+SDRAM組成的LCD驅動板。驅動板的原理是:SDRAM相當于顯示緩存,CPLD產生SDRAM和LCD的控制時序,一方面配合STM32將數據寫入SDRAM,另一方面是將SDRAM中的數據不斷地刷新到屏上。每次點亮LCD時對其進行復位,通過命令數據選擇線來控制從STM32中寫入的是命令還是數據,從而完成相應的顯示功能。
便攜式飛行參數數據卸載器要求有U盤卸載數據功能,因此采用 CH376芯片實現 U盤的讀寫。CH376是文件管理控制芯片,用于STM32讀寫U盤中的文件。CH376支持USB設備方式和USB主機方式,支持常用的USB存儲設備。文中設計STM32通過SPI通信接口控制CH376芯片,將卸載的數據存入U盤。
嵌入式實時操作系統μC/OS-II是一個可移植、固化、裁剪的占先式實時多任務內核,要想在μC/OSII內核上進行應用程序的開發,就要在μC/OS-II的基礎上建立完整的實時操作系統。一個相對完整的嵌入式實時多任務操作系統,需要進行較多擴展工作。為外部設備建立相應的API函數,創建圖形用戶界面函數和建立文件系統等。
μC/OS-II的工作流程為首先進行操作系統初始化OSInit(),主要完成任務控制塊初始化。隨后就可以開始創建新任務OSTaskCreate()、初始化任務堆棧區。最后調用0SStart()函數,啟動多任務調度。在多任務調度開始后,啟動時鐘節拍源開始計時。當中斷時,系統把當前正在執行的任務掛起,保護現場,進行中斷處理。
μC/GUI是μC/OS-II設計者所開發的一種用于嵌入式應用的圖形支持軟件。μC/GUI的主要特點有:通過可選組件可以實現個性定制。具有豐富的開發工具和小封裝的特點??蛇m用各種內存容量的系統。相比較其它常用的GUI而言,μC/GUI具有其獨特的優勢,并且可以方便地移植到 μC/OS-II系統上[4]。
文中基于μC/OS-II內核系統軟件結構的整體框圖如圖3所示。

圖3 系統軟件結構整體框圖
(1)系統外圍設備的硬件部分。系統外圍設備的硬件部分是保證系統能夠實現指定功能的最底層的部分。系統外圍設備硬件部分包括:液晶屏LCD、Flash存儲器、文件管理控制芯片、鍵盤驅動芯片、JTAG調試接口等。
(2)驅動程序模塊。驅動程序是連接底層的硬件和上層的應用程序接口API函數的紐帶,每個器件的開發都有一個通用API驅動,API對該驅動程序的結構,函數和參數名稱都進行了標準化。如stm32f10x固件庫里提供了各種資源的接口,可方便地利用庫函數對GPIO、SPI等外設接口進行編程。
(3)操作系統的API函數。在操作系統中提供標準的API函數,可以加速用戶應用程序的開發,在API函數中,提供了大量的常用模塊簡化應用程序的編寫,如任務管理函數、時間管理函數、信號量管理函數等。
(4)實時操作系統的多任務管理。μC/OS-II作為操作系統內核,主要任務是完成多任務間的調度和同步。在建立多任務時指定優先級,對μC/OS-II這個可剝奪內核而言,讓進入就緒態的優先級最高的任務開始運行。
(5)用戶應用程序。用戶的應用程序建立在系統的主任務基礎之上。用戶應用程序主要通過調用系統的API函數對系統進行操作,完成用戶的要求。在用戶的應用程序中也可以創建自己的任務。任務之間的協調主要依賴于系統對任務的調度以及任務優先級的分配。
(6)通用圖形界面。用戶將配置好LCD驅動的μC/GUI加入μC/OS-II實時操作系統之中,利用一個任務對 GUI進行初始化,隨后進行相應的功能顯示。
飛行參數數據卸載器的軟件設計目前分為波形顯示、鍵盤中斷、Flash讀寫和USB存儲數據4個部分。以加入優先級低于主任務的低功耗任務,可以保證在外場長時間操作。程序開始時初始化μC/OS-II,然后創建新任務,啟動多任務調度后,系統就進入了多任務操作系統狀態。系統根據優先級,開始Mytask任務,μC/GUI初始化,顯示波形和其他飛行參數信息。在多任務環境中,處理器會響應中斷,當有按鍵按下時,會進入按鍵中斷服務子程序,從而進入不同的工作狀態和界面。系統主任務流程如圖4所示。

圖4 系統主任務流程圖
在數據卸載時能夠顯示工作狀態、卸載方式和查看方式,在顯示波形時可以同時顯示時間、日期、架次等信息及誤碼率,顯示界面可根據需要同時顯示多個波形,在波形動態移動時,若使用簡單的Draw函數,波形閃爍強烈,是因為直接將數據顯示在波形上而造成的圖像閃爍。解決辦法為利用GUI_MEMDEV_Draw()進行繪圖,其在執行時會調用回調函數[5],基本可以消除顯示屏上的閃爍。
嵌入式實時操作系統μC/OS-II和圖形用戶界面μC/GUI為便攜式飛行參數數據卸載器提供了新的思路,STM32系列微處理器較以往的8位單片機或工控機而言,豐富的外設接口及高性能提供了更多的功能,加入大尺寸液晶屏顯示創造了良好的人機界面,在STM32上移植 μC/OS-II和 μC/GUI,其實時性、多任務、可視化及小型化的特點,以及該設計中D觸發器鎖存信號降低誤碼率及最高5 120 bit/s高速數據轉錄的實現,可提高飛行參數數據卸載器的功能應用和使用效率。
[1]LABROSSE J J.嵌入式實時操作系統 μC/OS-II[M].邵貝貝,譯.北京:北京航空航天大學出版社,2003.
[2]王文杰.便攜式飛行參數記錄儀測試系統的設計[D].南京:南京航空航天大學,2009.
[3]王永虹,徐煒,郝立平,等.STM32系列 ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[4]王同剛.基于S3C44B0X的服務機器人嵌入式控制系統的研制[D].哈爾濱:哈爾濱工業大學,2006.
[5]Micriμm Inc.Graphical user interface with graphic library[M].USA:Micriμm Inc,2002.
[6]邸興,陳見,韓俊.基于STM32的便攜式人機界面系統[J].電子設計工程,2011(5):100 -103.
Portable Unloader for Data of Flight Parameters Based on the μC/OS-II
JIANG Tao,LIU Wenbo
(College of Automation Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
The portable unloader for the data of flight parameters is generally used in civil and military aircraft.It also plays an important role in ground maintenance,prevention and investigation of flight accidents and flight quality evaluation.With higher requirements and larger data of flight parameters,some problems are exposed and have had many negative effects.Both high error rates and slow data unloading are the key elements that affect its work.A new portable unloader for the data of flight parameters is therefore introduced in this paper.By the embedded technology,we achieve a small,modularized and visual unloader which realizes high flight efficiency,low error rates and a high-speed data transcription.
STM32;flight parameters unloading;μC/OS-II;μC/GUI;USB storage
TP316.2
A
1007-7820(2012)06-041-04
2011-12-22
蔣韜(1987—),男,碩士研究生。研究方向:嵌入式系統。劉文波(1968—),女,教授,博士生導師。研究方向:數字信號處理,非線性動力系統分析,計算機測試與控制。