基于ARM與WinCE的演示系統軟件設計
引 言
本文引用地址:http://www.104case.com/article/149668.htm演示系統從最初的純光學幻燈機開始,已經有了數十年的歷史。發展至今,憑借與PC的整合優勢,數字投影技術已經成為主流。傳統意義上的數字演示系統由PC和投影設備組成,實現控制器、信號源和光學投影3部分功能。在演示過程中,由演示者直接操作PC,并由PC將待顯示信號輸出到投影設備。PC作為控制器和信號源,處于核心地位。在這一結構中,以PC作為信號源有利于發揮其較強的處理能力,能夠帶來比較好的演示效果;同時,作為控制器,PC可以利用其豐富的人機交互能力提供便捷的操作。但另一方面,以PC為核心的演示系統也存在以下局限性:
①對PC的依賴性。演示系統必須配備1臺PC,作為操作和提供演示信號之用,為演示帶來不便。
②演示者的使用環境不能無縫遷移。在一些專業性較強的領域,演示者往往需要可以運行專業軟件的環境,而專用于演示的PC往往不具備這種條件,演示效果自然受到很大影響。
1 總體設計思路和流程
1.1 實現目標
針對傳統演示系統存在的上述不足,以提高演示系統便攜性、易用性為目標,嵌入式演示系統希望通過其他手段取代PC在演示系統的核心地位,從而使演示人員借助盡量少的設備,甚至不需要額外設備就能完成演示,并具有良好的環境適應能力,使演示者獲得更好的使用體驗。
1.2 實現途徑和方法
現階段,設備廠商主要通過配備USB、1394、讀卡器等接口的方式來提高系統的便攜性和易用性。這些接口通過投影機內部的嵌入式處理器,讀取優盤、SD卡、移動硬盤等外置存儲器內的文件,將文件信息轉換為視頻信號,輸出到投影設備上,從而實現無PC演示,如EPSONEMP-1815。
從結構上看,這種方法就是將嵌入式系統作為演示系統的控制器,優盤、閃存卡等移動存儲設備作為演示信息源,從而將PC取代。雖然這樣能夠實現脫離PC的演示,但整個系統還存在以下局限:
①硬件層的性能尚不足以實現對復雜文檔和數據的處理。雖然目前嵌入式系統相當于1個精簡的PC系統,經過近幾年的發展,其硬件性能已經取得了很大進步,但是相對于PC的處理能力來說還是有較大差距,以現階段嵌入式系統的處理能力,還無法完美地執行大多數PC上的文檔數據處理和應用。
②軟件層方面,嵌入式系統應用軟件存在局限性。雖然嵌入式系統的軟硬件條件已經與PC很接近,但無論是嵌入式的Windows系統還是Linux系統,都是其PC版本的精簡,大部分PC上的專業軟件都還沒有對應于嵌入式系統的版本,無法滿足專業演示的多樣化需求。
1.3 設計方案
為滿足要求,嵌入式演示系統在設計上主要有以下兩方面的考慮:
(1)基于嵌入式系統自身處理能力的本地文件演示
現有的嵌入式演示系統,都是通過USB接口、讀卡器等讀取優盤、閃存卡等存儲介質,來實現對本地文件的支持。雖然這種依賴嵌入式系統自身處理能力的方式具有之前分析的軟硬件方面的不足,但已完全能勝任一些對運算要求不高的演示任務。
(2)基于網絡的瘦客戶端方案
瘦客戶端(thin client)指的是在客戶端一服務器網絡體系中基本無需應用程序的計算機終端。它通過接入局域網,經由特定協議與服務器通信。瘦客戶端將其鼠標、鍵盤等輸入傳送到服務器處理,服務器再把處理結果回傳至客戶端顯示。
瘦客戶端方案充分地利用了嵌入式系統的網絡連接能力,可以很好地克服嵌入式系統自身的局限和不足。主要體現在如下兩方面。
①運算量小,適合嵌入式系統。嵌入式系統作為瘦客戶端,在整個系統的實現過程中僅僅需要負責接收與顯示服務器端回傳的遠程操作畫面,較低的硬件要求就可以實現媲美PC的顯示效果。
②直接利用PC端成熟的軟件體系,具有良好的軟件兼容性。由于嵌入式系統作為瘦客戶端,直接將遠程服務器作為遠程桌面,達到間接操作遠程服務器的目的,所以用戶在客戶端操作的軟件環境和文檔數據都與服務器端完全一致,從而能夠提供使用環境和習慣從遠程服務器端到客戶端無縫“遷移”的良好用戶體驗。
但基于瘦客戶端的應用也有其不足之處,比如對遠程服務器和網絡的依賴性,一旦脫離網絡環境就無法工作等。
綜上所述,結合目前的軟硬件環境,采取兼顧上述2種途徑的方案是最為可行的。
1.4 硬件平臺簡介
本嵌入式演示系統基于以三星S3C2440為核心的ARM9嵌入式系統,通過輔助輸出電路將開發板輸出的數字顯示信號轉換為模擬VGA信號,最終輸出到投影儀。開發板硬件自帶USB接口、讀卡器、網卡接口,用以與外界作數據交換。
1.5 軟件需求分析
本設計的軟件部分需要實現的功能主要有:
①實現本地文件資源的管理,通過開發板自帶的USB、讀卡器等接口,與外置存儲設備交換數據。
②在嵌入式系統上實現本地文檔、視頻、圖片等文件的打開和播放,滿足基本演示要求。
③作為瘦客戶端實現遠程連接功能,能對遠程服務器端進行控制和回顯。
1.6 系統結構
系統結構如圖1所示,嵌入式系統硬件位于系統的最底層,第2層的嵌入式操作系統向下驅動底層硬件,向上對應用程序提供接口,調度管理嵌入式系統的軟硬件資源。整個嵌入式系統包含1套完整的軟硬件架構,并具有一定的運算能力,可以運行簡單的程序,實現管理本地資源的功能。
通過系統自帶的RJ-45以太網接口接入,嵌入式系統在局域網中可作為1個能夠獲得獨立IP地址的網絡瘦客戶端,通過遠程連接程序與遠程服務器端相聯,發送鼠標鍵盤等簡單輸入信息。服務器端經運算后,回顯處理結果,達到在瘦客戶端間接實現復雜應用和處理的效果。
2主要技術和實現
在軟件方面,主要涉及系統層和應用程序層。
2.1 系統層
本設計的嵌入式系統采用微軟公司的嵌入式操作系統Windows CE 5.0。Windows CE在秉承Windows桌面操作系統高效易用特點的基礎上,兼容常見的嵌入式硬件,封裝了底層硬件接口,便于開發者開發基于嵌入式的應用程序。在Windows CE 5.0上,微軟提供了兼容.netframework的開發平臺.net compact framework,使開發人員能夠在盡可能接近桌面應用程序的環境下開發嵌入式應用程序,提高了程序的開發效率和不同平臺下的可移植性。
本設計的重點就是在Windows CE上進行遠程控制和本地資源管理模塊的應用程序開發。
2.2 遠程控制模塊
遠程控制是在網絡上由1臺電腦(主控端Remote/客戶端)遠距離控制另一臺電腦(被控端HoST/服務器端)的技術,控制程序一般分2部分(客戶端程序Client和服務器端程序Server),開始控制的時候,由Client端向Server端發出請求,Server端接受請求后與Client端建立連接。
2.2.1 UltraVNC
使用UltraVNC作為遠程控制程序,與其他遠程控制程序類似,采用客戶端/服務器架構,允許經由TCP/IP網絡連接,監視和控制遠程PC。UltraVNC作為以RealVNC為基礎開發的遠程控制程序,具有以下特點:
◆遵循業界廣泛應用的RFB協議;
◆經過優化,有效降低了網路連接時的系統資源占用,適合在嵌入式等性能有限的設備上使用;
◆免費程序,并在GPL協議下開放源代碼,便于進行二次開發。
要實現遠程控制,需要在遠程PC上安裝服務器端程序,在嵌入式系統上安裝客戶端程序。對于WinCE平臺,UltraVNC并沒有官方發布的兼容客戶端,所以需要將UltraVNC官方客戶端程序移植到WinCE平臺的嵌入式設備上。
2.2.2 RFB協議
RFB(Remote FrameBuffer)是遠程圖形用戶的簡單協議,工作在幀緩存級別上,所以它可以兼容于目前的主流操作系統,包括Windows、Linux和Mac OS。
RFB是真正意義上的“瘦客機”協議。RFB協議設計的重點在于減少對客戶端的硬件需求。這樣客戶端就可以運行在不同的硬件上,客戶機的任務實現上就會盡量簡單。
RFB協議對于客戶端是無狀態的。也就是說,如果客戶端從服務器端斷開,那么當它重新連接相同的服務器,客戶端的狀態會被保存。甚至,1個不同的客戶端可以用來連接相同的RFB服務器,而在新的客戶端已經能夠獲得與前一個客戶端相同的用戶狀態。因此,用戶的應用接口變得非常便捷。只要合適的網絡連接存在,那么用戶就可以使用自己的應用程序,并且這些應用會一直保存,即使在不同的接入點也不會變化。這樣無論在哪,系統都會給用戶提供一個熟悉、獨特的計算環境。
2.2.3 程序結構與實現流程
程序定義的常用數據結構:
①“class Conn”。連接實現的核心類,主要負責與UltraVNC Server端的連接,內容的顯示,以及Server端回傳信息的處理。
②“class ConnOpts”。ConnOps類中定義了連接UltraVNC Server端所需要的連接參數,如連接模式、IP地址、端口、連接密碼等。
③“class NetworkConn”。NetworkConn封裝了WinCE中網絡連接相關的函數,便于程序調用
④“namespace Vnc.RfbProto”。Vnc.RfbProto命名空間封裝了RFB協議的基本數據結構和函數,作為遠程控制模塊的底層軟件調用。
⑤“class VncAuth”。系統安全組件,用于加密傳輸用戶連接密碼。
程序功能實現基本流程:
①通過獲取到的輸入連接參數,建立與遠程Server端的網絡連接。
②確認遠程連接協議版本,驗證用戶身份,初始化本地、遠程端。
③開始連接,顯示遠程畫面。
④持續傳輸操作指令,返回更新的結果畫面。
2.3 本地資源管理模塊
為了便于管理嵌入式系統的本地資源,需要為應用程序添加本地資源管理功能。程序能夠在本地通過USB接口、讀卡器等外部接口訪問所連接的資源,從而實現本地文檔、圖片等資源的簡單演示功能。
本地資源管理功能主要通過.net compact framework實現。net compact framework類庫包含了訪問和管理本地文件的System.IO.File類,調用相關方法可以實現文件的打開、剪切、復制、粘貼等功能。系統目前可以直接打開的文件有Word文檔(*.doc)、圖片文件(*.jpg,*.gif)。
部分功能代碼:
2.4 功能整合
要應用到實際產品中,還需要將上述2部分程序整合到統一的界面中。同時,為了提供友好的用戶界面,原有WinCE系統的菜單、任務欄等界面元素需要在程序中隱藏,應用程序提供一個全屏的顯示界面。
隱藏任務欄和全屏顯示代碼:
3 性能和效果測試
①程序執行后通過2個按鈕實現遠程控制和本地管理功能的切換。
②點擊左邊窗口的文件結構樹就可以瀏覽本地文件,并預覽Word文檔和圖片。
③遠程控制成功連接后,用戶就可以完全按PC上的使用習慣,打開和編輯復雜的文件,繼續使用Server端的軟件運行環境,無需學習和適應新的操作方法。
系統測試效果如圖2~圖4所示。
結 語
本設計將現有的嵌入式演示系統向網絡瘦客戶端概念拓展,提出了一個更為完善的嵌入式演示系統的設計并具體實現。通過本地資源管理模塊,可以實現本地文件管理和顯示;通過遠程控制模塊,實現了從現有PC環境向嵌入式系統的無縫遷移,用戶的所有文檔數據和應用程序都可以在嵌入式系統所控制的投影儀上顯示和控制,從而解決了現有嵌入式演示系統存在的軟硬件方面的局限。
目前,該系統仍處于初期階段,尚存在一些問題,主要體現在:
①遠程控制模塊的運行效果仍然不夠理想,在遠程控制過程中畫面回顯仍有延時。這需要在以后的開發過程中進一步優化遠程控制軟件的運行效率,同時改進硬件,選用運算能力更強的嵌入式處理器。
②現階段僅支持有線網絡下遠程控制,隨著Wi-Fi等無線網絡技術的越來越普及,下一步考慮在系統中加入無線網絡的支持,提高演示過程的便捷性。
③本地文件管理方面,現階段能支持的文件格式偏少,尚不能滿足演示需求,計劃在性能允許的情況下增加對更多文檔、視頻、圖片格式的支持,加強演示設備的通用性。
評論