引言
動基座光電測量平臺按載體的不同可分為車載、艦載、機載和星載四種。為了保證測量平臺系統(tǒng)的可靠性和測量的準(zhǔn)確性,平臺在正式放到載體上運行之前需要進行仿真檢測。目前的動基座光電測量仿真檢測系統(tǒng)大多成本高、人機交互性差,攜帶不方便,給外場檢測帶來很多麻煩。本文針對這個問題,利用三星的 ARM9處理器 S3C2410、嵌入式 WinCE操作系統(tǒng),設(shè)計出了一種可視化便攜的動基座光電測量仿真檢測系統(tǒng)。該系統(tǒng)使用終端控制命令操縱光電平臺,通過串口通信實時檢測平臺的各種性能指標(biāo)。
S3C2410是三星公司生產(chǎn)的一款基于 ARM920T內(nèi)核的 32位 RISC微處理器,主頻可達 203 MHz。其內(nèi)部集成大量的外圍資源,具有高性能、低功耗、接口豐富的特性。 WinCE是微軟開發(fā)的一個開放的、可升級的 32位嵌入式實時操作系統(tǒng),它的圖形用戶界面相當(dāng)出色,具有模塊化、結(jié)構(gòu)化的特點, WinCE支持各種硬件外圍設(shè)備、其它設(shè)備及網(wǎng)絡(luò)系統(tǒng)。 WinCE有完善的配套開發(fā)軟件工具集,使嵌入式系統(tǒng)開發(fā)者和應(yīng)用開發(fā)者能夠定做各種產(chǎn)品。
1 系統(tǒng)的硬件構(gòu)成
在經(jīng)過分析、篩選之后,選擇合適的硬件搭建硬件開發(fā)環(huán)境。光電測量仿真檢測系統(tǒng)的硬件環(huán)境,主要由以 S3C2410為核心的單片機、帶觸摸屏的 LCD和 SD卡三部分組成。系統(tǒng)的總體結(jié)構(gòu)圖如圖 1所示。
圖1系統(tǒng)整體結(jié)構(gòu)圖
虛線以上的部分為光電測量仿真檢測系統(tǒng)的硬件環(huán)境,其各部分組成與功能如下:
(1)以 S3C2410為核心的單板機。這是整個系統(tǒng)的硬件核心。它帶有一個 64M的 SDRAM和一個 64M的 Nand Flash。一個 SD卡插座用來安裝數(shù)據(jù)存儲用的 SD卡,一個 USB Host可以接鼠標(biāo)鍵盤輸入控制設(shè)備,一個 USB Device接口用于系統(tǒng)程序的燒寫。為了開發(fā)時的調(diào)試方便,還擴展了一個 10M的以太網(wǎng)接口,主要用于和宿主機通訊﹑調(diào)試和下載程序。同時還帶有兩個 DB9的串口,一個用于設(shè)計階段的調(diào)試,另一個用于與下位機上的 PC104通信,從而達到控制光電測量平臺的目的。
(2)帶觸摸屏的 LCD。這是系統(tǒng)的顯示控制終端,負責(zé)用戶控制端的圖形界面顯示。用戶可以在發(fā)送面板上根據(jù)自己的需求輸入控制命令,同時在接收面板會顯示下位機傳過來的各項性能指標(biāo)。出于便攜化設(shè)計的考慮,屏幕只有 3.5寸大小,分辨率為 320*240。
(3)SD卡。它是系統(tǒng)的存儲設(shè)備,負責(zé)存儲通信數(shù)據(jù)。出于系統(tǒng)小型化和便攜的考慮,我們選擇體積較小的 SD卡作為數(shù)據(jù)存儲介質(zhì)。
由于篇幅的限制,這里只簡要的介紹了一下系統(tǒng)的硬件開發(fā)環(huán)境。在接下來的部分將詳細的闡述其軟件開發(fā)流程。
2 系統(tǒng)軟件開發(fā)環(huán)境
在進行軟件開發(fā)之前,必須先建立軟件開發(fā)環(huán)境。本文將使用嵌入式 WinCE操作系統(tǒng)作為軟件的運行平臺,下面將簡要介紹其軟件開發(fā)環(huán)境的建立。
(1)WinCE內(nèi)核的定制。嵌入式系統(tǒng)由于受硬件資源的限制,在實際開發(fā)時往往需要裁減,然后定制出適合自己硬件資源的嵌入式操作系統(tǒng)。根據(jù)現(xiàn)有的硬件設(shè)備配置,使用 Platform Builder 4.2定制、配置、編譯一個 WinCE操作系統(tǒng)內(nèi)核,這當(dāng)中重要的是要加入所需設(shè)備的驅(qū)動程序,最終生成 WinCE內(nèi)核文件nk.bin和安裝 WinCE所需的 Eboot程序。
(2)安裝 WinCE到 ARM板上。先通過 JTAG板將 bios燒寫到 Nandflash,然后用 USB數(shù)據(jù)線將 Eboot程序和 WinCE內(nèi)核 nk.bin下載到 ARM板上,通過 Eboot程序, WinCE將自動被安裝。
(3)應(yīng)用程序的開發(fā)。微軟專門為 WinCE的軟件開發(fā)推出了 eMbedded Visual C++ 4.0,利用 eMbedded Visual C++ 4.0提供的工具可以方便的創(chuàng)建、修改和調(diào)試應(yīng)用程序。
3 系統(tǒng)終端程序設(shè)計
搭建軟件開發(fā)環(huán)境后,接下來進行終端應(yīng)用程序的開發(fā)。動基座光電測量系統(tǒng)的終端程序主要由發(fā)送、接收和串口通信三大模塊組成。其中發(fā)送模塊控制命令和發(fā)送顯示兩部分,接收模塊分為接收顯示和數(shù)據(jù)存儲兩部分。終端系統(tǒng)的主要功能模塊框架圖如下圖 2所示:
圖2終端程序功能模塊框架圖
終端程序的具體設(shè)計使用 eMbedded Visual C++ 4.0軟件,下面簡要介紹一下程序設(shè)計過程:
3.1發(fā)送模塊和接收模塊
發(fā)送和接收模塊的設(shè)計主要是對窗口的設(shè)計。窗口的建立并不復(fù)雜,主要是窗口初始化和各種按鈕控件的建立。同其他版本的 windows程序一樣,WinCE程序也采用了消息驅(qū)動機制,用戶的各種操作通過消息的形式發(fā)送給應(yīng)用程序,而應(yīng)用程序時刻等待著消息的到來,一旦發(fā)現(xiàn)它的消息隊列中有未處理的消息,就獲取并分析該消息,應(yīng)用程序根據(jù)消息所包含的內(nèi)容采取適當(dāng)?shù)膭幼鱽眄憫?yīng)用戶所作的操作。下面是消息循環(huán)函數(shù):
while (GetMessage (&msg, NULL, 0, 0)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
當(dāng)用戶啟動程序的時候,消息循環(huán)開始,建立各個窗口和按鈕控件的消息被發(fā)送,應(yīng)用程序接收到這些消息后,對其進行翻譯,然后運行每個消息所對應(yīng)的函數(shù)。
3.2串口通信
串口通信是終端程序設(shè)計的難點,也是重點。發(fā)送和接收最終都要通過串口來執(zhí)行。串行端口在 WinCE下屬于流接口設(shè)備,它是串行設(shè)備接口的常規(guī) I/O驅(qū)動程序調(diào)用和與通信相關(guān)的具體函數(shù)的結(jié)合。要注意的是, WinCE不支持直接對串行端口的寄存器進行編程。由于篇幅有限,用到的函數(shù)就不一一介紹了,下面主要介紹用多線程的方法進行串口的讀寫。
Windows CE不支持重疊 I/O,所以如果在主線程進行大量讀寫串口操作時,有可能使整個程序陷入緩慢的串口等待中去,因此采用多線程來進行讀寫串口操作。
程序的主線程用來負責(zé)消息的處理,另外還有兩個附加線程。讀線程負責(zé)從串口讀回數(shù)據(jù),寫線程由事件觸發(fā),發(fā)送控制命令。在程序初始化時創(chuàng)建事件,創(chuàng)建寫線程并利用 WaitCommEvent函數(shù)阻塞該線程,等待事件觸發(fā)。然手打開串口,創(chuàng)建讀線程,讀回數(shù)據(jù),進行處理;當(dāng)按下發(fā)送命令后,觸發(fā)通信事件,解除阻塞的寫線程,這時開始發(fā)送數(shù)據(jù)。
4 測試結(jié)果
將最后定型的可執(zhí)行程序燒寫到目標(biāo)板上,然后進行地面仿真試驗。該仿真系統(tǒng)使用 +5V的輸入電壓,由系統(tǒng)終端軟件的控制面板發(fā)送控制命令,靈活的操縱光電平臺的各種運行狀態(tài)。接收面板上能以 100ms的刷新頻率實時顯示光電平臺的各種性能指標(biāo),同時如果選擇數(shù)據(jù)存儲的話,還可以將這些數(shù)據(jù)信息存儲在SD卡上。軟件的運行界面如下圖3所示:
圖3軟件運行界面
這里以光電平臺的高低溫實驗為例,在全程 2個小時中,該仿真系統(tǒng)始終能和光電平臺正確通信,并實時顯示平臺的各項性能指標(biāo)。測試結(jié)果表明該系統(tǒng)具有功能豐富、可靠性高、操作便捷等優(yōu)點。
5 結(jié)語
我們利用 ARM9處理器強大的功能,以及嵌入式 WinCE操作系統(tǒng)的網(wǎng)絡(luò)、可視化圖形界面、多線程編程等提供的便捷高效的底層支持,開發(fā)出的嵌入式光電測量仿真檢測系統(tǒng)具有功能豐富、可靠性高、界面友好、操作方便等諸多優(yōu)點。本文介紹了該系統(tǒng)的硬件組成部分和功能,重點闡述了嵌入式軟件的開發(fā)流程和關(guān)鍵技術(shù)串口通信的解決過程,相信可以為其它基于 WinCE嵌入式終端系統(tǒng)的開發(fā)提供參考。項目最終能產(chǎn)生的經(jīng)濟效益為20萬元。
本文作者創(chuàng)新點:本文采用 ARM&WinCE相結(jié)合,多線程串口通訊,設(shè)計出了一種便攜式、成本低、人機交互性好的動基座光電測量仿真檢測系統(tǒng)。
責(zé)任編輯:gt
-
檢測系統(tǒng)
+關(guān)注
關(guān)注
3文章
960瀏覽量
43098 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6874瀏覽量
123563 -
微處理器
+關(guān)注
關(guān)注
11文章
2272瀏覽量
82630
發(fā)布評論請先 登錄
相關(guān)推薦
評論