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