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