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