蔣 韜,劉文波
(南京航空航天大學自動化學院,江蘇南京 210016)
基于μC/OS-II的便攜式飛行參數(shù)數(shù)據(jù)卸載器
蔣 韜,劉文波
(南京航空航天大學自動化學院,江蘇南京 210016)
飛行參數(shù)數(shù)據(jù)卸載器作為民用和軍用飛機普遍配置的設備,在地勤維護、飛行事故預防和調(diào)查分析以及飛行質(zhì)量評估等方面起著重要作用。隨著飛行參數(shù)數(shù)據(jù)量的加大以及對飛行參數(shù)使用要求的提高,逐漸暴露出一些影響飛行參數(shù)正常使用的問題,其中誤碼率高、數(shù)據(jù)卸載速度慢、飛行參數(shù)卸載設備型號多等是影響其工作的關鍵。因此,文中介紹了一種新型的便攜式飛行參數(shù)數(shù)據(jù)卸載器,利用嵌入式技術實現(xiàn)其小型化、模塊化、可視化,提高了飛行參數(shù)使用效率,有效地降低誤碼率以及實現(xiàn)數(shù)據(jù)高速轉(zhuǎn)錄。
STM32;飛行參數(shù)卸載;μC/OS-II;μC/GUI;USB存儲
隨著嵌入式系統(tǒng)的廣泛應用和功能的不斷強大,對系統(tǒng)中人機界面的要求也越來越高,因此在嵌入式系統(tǒng)中加入圖形用戶界面得以廣泛運用。為充分發(fā)揮32位處理器的功能和性能優(yōu)勢,提高系統(tǒng)的可靠性,使操作更加人性化,更多的工程師在其項目開發(fā)中選擇移植嵌入式實時操作系統(tǒng)(RTOS)和圖形用戶界面(GUI)?;贏RM Cortex-M3內(nèi)核的STM32系列處理器具有性能優(yōu)異、功耗超低、接口方便、集成度好、開發(fā)容易等優(yōu)點,針對國內(nèi)某型號飛機飛行參數(shù)檢測設備體積大、結(jié)構(gòu)復雜、數(shù)據(jù)卸載速度慢、誤碼率高等問題,設計出基于嵌入式實時操作系統(tǒng)μC/OS-II的便攜式飛行參數(shù)數(shù)據(jù)卸載器,可解決以上問題。
μC/OS-II是一個可裁剪的實時操作系統(tǒng)多任務內(nèi)核,可根據(jù)實際需求量身定做地加載一些模塊,如圖形界面、文件系統(tǒng)、TCP/IP等,使μC/OS-II成為一個面向問題的實用嵌入式操作系統(tǒng)[1]。文中首先介紹飛行參數(shù)記錄系統(tǒng),然后介紹如何在STM32系列處理器上移植μC/OS-II和圖形界面μC/GUI以及飛行參數(shù)數(shù)據(jù)卸載器的功能實現(xiàn)。
飛行參數(shù)記錄系統(tǒng)測試對象為國內(nèi)某型戰(zhàn)斗機所裝備的飛行參數(shù)記錄儀,其用于記錄飛機的各種飛行參數(shù)和機載設備的工作狀態(tài)信息,為在地面對飛機的飛行狀態(tài)和機載設備工作狀態(tài)進行分析提供原始數(shù)據(jù)。飛行參數(shù)記錄系統(tǒng)主要由信號轉(zhuǎn)換器、磁帶記錄器、電源3部分組成,其結(jié)構(gòu)框圖如圖1所示。
圖1 飛行參數(shù)記錄系統(tǒng)的組成
信號轉(zhuǎn)換器的主要功能是將來自飛機的各種傳感器參數(shù)處理和轉(zhuǎn)換成9位二進制并行數(shù)字信號,同時產(chǎn)生循環(huán)脈沖和地址同步脈沖,并產(chǎn)生相應邏輯控制信號,控制磁帶記錄器正、反轉(zhuǎn)等工作狀態(tài)。
電源部分的主要功能是為信號轉(zhuǎn)換器、磁帶記錄器和電源故障指示等部件可靠地提供所需的直流穩(wěn)壓電源,同時輸出設置時間和飛行架次兩個輔助參數(shù)的信號到信號轉(zhuǎn)換器。
磁帶記錄器的主要功能是完成對經(jīng)信號轉(zhuǎn)換器轉(zhuǎn)換后輸出的不同工作狀態(tài)下原始信息的記錄和輸出。磁帶記錄器在寫入數(shù)據(jù)時,寫入的是信號轉(zhuǎn)換器輸出的12位并行碼。讀出時,將記錄數(shù)據(jù)以12位并行碼形式輸出,輸出數(shù)據(jù)的速度是寫入數(shù)據(jù)速度的10倍,當檢測到有循環(huán)脈沖時,通過D觸發(fā)器鎖存上升沿信號,可有效克服因黑匣子中磁帶偏離導致的數(shù)據(jù)丟失現(xiàn)象,使采樣數(shù)據(jù)合格率達到99.9%以上,有效地降低飛行參數(shù)誤碼率[2]。
文中設計的飛行參數(shù)數(shù)據(jù)卸載器主要由Flash存儲模塊、矩陣鍵盤模塊、LCD驅(qū)動模塊及USB傳輸模塊等組成,其硬件連接圖如圖2所示。
圖2 飛行參數(shù)數(shù)據(jù)卸載器硬件連接圖
STM32處理器通過SPI接口連接Flash存儲器并與其進行串行通信,當配置SPI為主設備時,STM32為Flash存儲器提供連接時鐘SCK[3]。當GPIO口開始讀取12位并行碼數(shù)據(jù)時,定義雙緩沖數(shù)組,將每2 Byte數(shù)據(jù)分別存入待寫Flash的地址,在寫入內(nèi)容前,必須保證將要寫入的地址處于被擦除狀態(tài)。選用64 Mbit Flash芯片,與STM32實現(xiàn)數(shù)據(jù)傳輸時,具有快速時鐘周期、高可靠性、低功耗等優(yōu)點,在技術上成功解決高速轉(zhuǎn)錄問題,轉(zhuǎn)錄速度最快可達5 120 bit/s,即下載速度為 20∶1。
鍵盤控制器ZLG7289與STM32處理器之間的通信采用SPI接口方式,但由于JTAG和Flash都需要用到SPI接口通信,考慮到鍵盤讀取對實時性要求不高,所以使用IO口模擬SPI來讀取鍵盤數(shù)據(jù)。時鐘、片選、數(shù)據(jù)信號這3根線完成與ZLG7289之間的相關通信。
當鍵盤中有鍵按下時,ZLG7289的中斷信號線由高電平變?yōu)榈碗娖?,通知STM32已有按鍵按下,STM32此時通過數(shù)據(jù)線得到鍵盤控制器輸出的按鍵碼值,從而得知具體的按鍵,并作出響應。
LCD驅(qū)動模塊接口有總線式和模擬IO式兩種,總線式有較快的數(shù)據(jù)傳輸速度,由于STM32有大量IO口,為配合μC/GUI底層驅(qū)動,文中采用IO口模擬8080總線接口連接STM32和由CPLD+SDRAM組成的LCD驅(qū)動板。驅(qū)動板的原理是:SDRAM相當于顯示緩存,CPLD產(chǎn)生SDRAM和LCD的控制時序,一方面配合STM32將數(shù)據(jù)寫入SDRAM,另一方面是將SDRAM中的數(shù)據(jù)不斷地刷新到屏上。每次點亮LCD時對其進行復位,通過命令數(shù)據(jù)選擇線來控制從STM32中寫入的是命令還是數(shù)據(jù),從而完成相應的顯示功能。
便攜式飛行參數(shù)數(shù)據(jù)卸載器要求有U盤卸載數(shù)據(jù)功能,因此采用 CH376芯片實現(xiàn) U盤的讀寫。CH376是文件管理控制芯片,用于STM32讀寫U盤中的文件。CH376支持USB設備方式和USB主機方式,支持常用的USB存儲設備。文中設計STM32通過SPI通信接口控制CH376芯片,將卸載的數(shù)據(jù)存入U盤。
嵌入式實時操作系統(tǒng)μC/OS-II是一個可移植、固化、裁剪的占先式實時多任務內(nèi)核,要想在μC/OSII內(nèi)核上進行應用程序的開發(fā),就要在μC/OS-II的基礎上建立完整的實時操作系統(tǒng)。一個相對完整的嵌入式實時多任務操作系統(tǒng),需要進行較多擴展工作。為外部設備建立相應的API函數(shù),創(chuàng)建圖形用戶界面函數(shù)和建立文件系統(tǒng)等。
μC/OS-II的工作流程為首先進行操作系統(tǒng)初始化OSInit(),主要完成任務控制塊初始化。隨后就可以開始創(chuàng)建新任務OSTaskCreate()、初始化任務堆棧區(qū)。最后調(diào)用0SStart()函數(shù),啟動多任務調(diào)度。在多任務調(diào)度開始后,啟動時鐘節(jié)拍源開始計時。當中斷時,系統(tǒng)把當前正在執(zhí)行的任務掛起,保護現(xiàn)場,進行中斷處理。
μC/GUI是μC/OS-II設計者所開發(fā)的一種用于嵌入式應用的圖形支持軟件。μC/GUI的主要特點有:通過可選組件可以實現(xiàn)個性定制。具有豐富的開發(fā)工具和小封裝的特點??蛇m用各種內(nèi)存容量的系統(tǒng)。相比較其它常用的GUI而言,μC/GUI具有其獨特的優(yōu)勢,并且可以方便地移植到 μC/OS-II系統(tǒng)上[4]。
文中基于μC/OS-II內(nèi)核系統(tǒng)軟件結(jié)構(gòu)的整體框圖如圖3所示。
圖3 系統(tǒng)軟件結(jié)構(gòu)整體框圖
(1)系統(tǒng)外圍設備的硬件部分。系統(tǒng)外圍設備的硬件部分是保證系統(tǒng)能夠?qū)崿F(xiàn)指定功能的最底層的部分。系統(tǒng)外圍設備硬件部分包括:液晶屏LCD、Flash存儲器、文件管理控制芯片、鍵盤驅(qū)動芯片、JTAG調(diào)試接口等。
(2)驅(qū)動程序模塊。驅(qū)動程序是連接底層的硬件和上層的應用程序接口API函數(shù)的紐帶,每個器件的開發(fā)都有一個通用API驅(qū)動,API對該驅(qū)動程序的結(jié)構(gòu),函數(shù)和參數(shù)名稱都進行了標準化。如stm32f10x固件庫里提供了各種資源的接口,可方便地利用庫函數(shù)對GPIO、SPI等外設接口進行編程。
(3)操作系統(tǒng)的API函數(shù)。在操作系統(tǒng)中提供標準的API函數(shù),可以加速用戶應用程序的開發(fā),在API函數(shù)中,提供了大量的常用模塊簡化應用程序的編寫,如任務管理函數(shù)、時間管理函數(shù)、信號量管理函數(shù)等。
(4)實時操作系統(tǒng)的多任務管理。μC/OS-II作為操作系統(tǒng)內(nèi)核,主要任務是完成多任務間的調(diào)度和同步。在建立多任務時指定優(yōu)先級,對μC/OS-II這個可剝奪內(nèi)核而言,讓進入就緒態(tài)的優(yōu)先級最高的任務開始運行。
(5)用戶應用程序。用戶的應用程序建立在系統(tǒng)的主任務基礎之上。用戶應用程序主要通過調(diào)用系統(tǒng)的API函數(shù)對系統(tǒng)進行操作,完成用戶的要求。在用戶的應用程序中也可以創(chuàng)建自己的任務。任務之間的協(xié)調(diào)主要依賴于系統(tǒng)對任務的調(diào)度以及任務優(yōu)先級的分配。
(6)通用圖形界面。用戶將配置好LCD驅(qū)動的μC/GUI加入μC/OS-II實時操作系統(tǒng)之中,利用一個任務對 GUI進行初始化,隨后進行相應的功能顯示。
飛行參數(shù)數(shù)據(jù)卸載器的軟件設計目前分為波形顯示、鍵盤中斷、Flash讀寫和USB存儲數(shù)據(jù)4個部分。以加入優(yōu)先級低于主任務的低功耗任務,可以保證在外場長時間操作。程序開始時初始化μC/OS-II,然后創(chuàng)建新任務,啟動多任務調(diào)度后,系統(tǒng)就進入了多任務操作系統(tǒng)狀態(tài)。系統(tǒng)根據(jù)優(yōu)先級,開始Mytask任務,μC/GUI初始化,顯示波形和其他飛行參數(shù)信息。在多任務環(huán)境中,處理器會響應中斷,當有按鍵按下時,會進入按鍵中斷服務子程序,從而進入不同的工作狀態(tài)和界面。系統(tǒng)主任務流程如圖4所示。
圖4 系統(tǒng)主任務流程圖
在數(shù)據(jù)卸載時能夠顯示工作狀態(tài)、卸載方式和查看方式,在顯示波形時可以同時顯示時間、日期、架次等信息及誤碼率,顯示界面可根據(jù)需要同時顯示多個波形,在波形動態(tài)移動時,若使用簡單的Draw函數(shù),波形閃爍強烈,是因為直接將數(shù)據(jù)顯示在波形上而造成的圖像閃爍。解決辦法為利用GUI_MEMDEV_Draw()進行繪圖,其在執(zhí)行時會調(diào)用回調(diào)函數(shù)[5],基本可以消除顯示屏上的閃爍。
嵌入式實時操作系統(tǒng)μC/OS-II和圖形用戶界面μC/GUI為便攜式飛行參數(shù)數(shù)據(jù)卸載器提供了新的思路,STM32系列微處理器較以往的8位單片機或工控機而言,豐富的外設接口及高性能提供了更多的功能,加入大尺寸液晶屏顯示創(chuàng)造了良好的人機界面,在STM32上移植 μC/OS-II和 μC/GUI,其實時性、多任務、可視化及小型化的特點,以及該設計中D觸發(fā)器鎖存信號降低誤碼率及最高5 120 bit/s高速數(shù)據(jù)轉(zhuǎn)錄的實現(xiàn),可提高飛行參數(shù)數(shù)據(jù)卸載器的功能應用和使用效率。
[1]LABROSSE J J.嵌入式實時操作系統(tǒng) μC/OS-II[M].邵貝貝,譯.北京:北京航空航天大學出版社,2003.
[2]王文杰.便攜式飛行參數(shù)記錄儀測試系統(tǒng)的設計[D].南京:南京航空航天大學,2009.
[3]王永虹,徐煒,郝立平,等.STM32系列 ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[4]王同剛.基于S3C44B0X的服務機器人嵌入式控制系統(tǒng)的研制[D].哈爾濱:哈爾濱工業(yè)大學,2006.
[5]Micriμm Inc.Graphical user interface with graphic library[M].USA:Micriμm Inc,2002.
[6]邸興,陳見,韓俊.基于STM32的便攜式人機界面系統(tǒng)[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—),男,碩士研究生。研究方向:嵌入式系統(tǒng)。劉文波(1968—),女,教授,博士生導師。研究方向:數(shù)字信號處理,非線性動力系統(tǒng)分析,計算機測試與控制。