臧蘇瑩,孔良棟
(湖北工業(yè)大學(xué),湖北 武漢 430068)
嵌入式系統(tǒng)由英國電氣工程師協(xié)會定義,是一種完全嵌入到機器內(nèi)部,從而控制機器運行的計算機系統(tǒng),與常規(guī)的計算機系統(tǒng)不同之處在于其需要預(yù)先設(shè)置執(zhí)行要求和執(zhí)行任務(wù)。設(shè)計人員能夠在初始系統(tǒng)的基礎(chǔ)上隨著功能及需求的增加不斷對其優(yōu)化,并在這個過程中縮小該系統(tǒng)的制造成本,嵌入式系統(tǒng)一般作為處理器控制面板存儲在控制程序的ROM 中。相比于線下嵌入式方法,網(wǎng)絡(luò)嵌入式系統(tǒng)具有效率高、升級能力強、投入低等特點,因此在眾多個人、企業(yè)乃至國家單位中得到了廣泛的應(yīng)用[1]。嵌入式系統(tǒng)的優(yōu)化設(shè)計可以將對象設(shè)置為網(wǎng)絡(luò)計算機中的一個裝置或設(shè)備,嵌入式系統(tǒng)以嵌入式的方式連接到網(wǎng)絡(luò)環(huán)境當(dāng)中,并將對應(yīng)的運行控制程序存儲在計算機的存儲器中,實現(xiàn)計算機與嵌入式系統(tǒng)的聯(lián)動工作。然而嵌入式系統(tǒng)除了需要將自身的項目內(nèi)容向外發(fā)送外,還需要吸取外界反饋的結(jié)果以及相關(guān)意見,因此在嵌入式系統(tǒng)中需要設(shè)計并實現(xiàn)交互模塊[2]。系統(tǒng)的交互模塊設(shè)計定義了兩個甚至多個互動的個體之間交流的內(nèi)容與結(jié)構(gòu),以達成某種目的。系統(tǒng)的交互模塊在設(shè)計的過程中主要是以用戶為中心,滿足用戶在不同方面的交互應(yīng)用需求。然而經(jīng)過一段時間的研究發(fā)現(xiàn),傳統(tǒng)的嵌入式系統(tǒng)主要以完成固定任務(wù)為主,忽略了交互模塊在系統(tǒng)中發(fā)揮的作用,部分系統(tǒng)中還出現(xiàn)了交互延遲的現(xiàn)象,大大降低了用戶的使用感受。
為了解決上述問題,利用三層C/S 模式改變傳統(tǒng)系統(tǒng)中的運行模式與邏輯結(jié)構(gòu),實現(xiàn)對系統(tǒng)交互功能的優(yōu)化設(shè)計。其中,C/S 模式表示Client/Server 模式,即客戶機和服務(wù)器結(jié)構(gòu),使用該結(jié)構(gòu)可以充分利用對應(yīng)硬件環(huán)境的優(yōu)勢,將任務(wù)合理地分配到相應(yīng)的服務(wù)器中,從而降低系統(tǒng)的交互開銷。但基礎(chǔ)的C/S 模式的安裝工作量較大,對客戶端的操作系統(tǒng)也有一定的限制,因此,此次優(yōu)化設(shè)計中應(yīng)用的模式為三層C/S 模式[3]。該模式在基礎(chǔ)模式的基礎(chǔ)上,明確分割了表示層、功能層以及數(shù)據(jù)層,并在邏輯上保證三者的獨立關(guān)系。通過該模式的引用,減輕了一個系統(tǒng)服務(wù)器的運行負載,從而提升系統(tǒng)交互功能的實現(xiàn)效果。
嵌入式系統(tǒng)交互功能的設(shè)計以傳統(tǒng)的嵌入式系統(tǒng)為基礎(chǔ),應(yīng)用三層C/S 模式結(jié)構(gòu)優(yōu)化系統(tǒng)的邏輯結(jié)構(gòu)以及運行模式,并在此基礎(chǔ)上通過建立交互界面與環(huán)境實現(xiàn)交互功能。
從硬件和軟件兩個方面實現(xiàn)對系統(tǒng)的優(yōu)化,按照三層C/S 模式的層次結(jié)構(gòu)實現(xiàn)對系統(tǒng)邏輯的優(yōu)化,具體的系統(tǒng)層次邏輯模型如圖1 所示[4]。
1.1.1 搭建三層C/S 模式框架
三層C/S 結(jié)構(gòu)主要是將嵌入式系統(tǒng)功能分為表示層、功能層和數(shù)據(jù)層三個部分,具體的三層架構(gòu)分布情況如圖2 所示。
圖2 中的用戶層對應(yīng)嵌入式系統(tǒng)中的客戶端,通過用戶層可以為客戶端提供對應(yīng)用程序的訪問[5]。用戶層就是用戶與系統(tǒng)的接口界面,通過對應(yīng)的代碼隱藏文件實現(xiàn)對各種空間的事件處理。功能層即為客戶端與服務(wù)器端的通道,可以實現(xiàn)各種嵌入式業(yè)務(wù)規(guī)則和邏輯。而數(shù)據(jù)層即為服務(wù)器端,服務(wù)器中包含數(shù)據(jù)庫,系統(tǒng)中產(chǎn)生的數(shù)據(jù)實時存儲到數(shù)據(jù)庫當(dāng)中,實現(xiàn)數(shù)據(jù)庫的動態(tài)連接。
圖2 三層C/S 模式架構(gòu)圖
1.1.2 確定系統(tǒng)C/S 計算模式
由于C/S 模式改變了嵌入式系統(tǒng)的框架,因此系統(tǒng)的計算與運行模式也發(fā)生了改變[6]。在實際的交互功能實現(xiàn)的過程中,計算機將應(yīng)用任務(wù)分解成為多個子任務(wù),將繁重的計算負載分別分解給客戶端與服務(wù)器,提升嵌入式系統(tǒng)的計算效率。
按照嵌入式系統(tǒng)交互功能的設(shè)計需求分析結(jié)果,可以將該功能分為人機交互以及人際交互兩個部分。其中,人機交互就是系統(tǒng)用戶操作計算機并發(fā)布系統(tǒng)任務(wù)及功能,而在人際交互的過程中,嵌入式系統(tǒng)作為交互的工具,需要實現(xiàn)系統(tǒng)中用戶與用戶之間的互動[7]。為此在原有系統(tǒng)的基礎(chǔ)上,在系統(tǒng)主界面的導(dǎo)航欄中加入在線留言模塊,并將該模塊與對應(yīng)的留言功能鏈接在一起,實現(xiàn)交互模塊的自動跳轉(zhuǎn),從而實現(xiàn)人際交互。而人機交互功能只需要將計算機可以識別的程序或代碼輸入到系統(tǒng)中即可實現(xiàn)。
嵌入式系統(tǒng)交互功能的實現(xiàn)原則包括同步交互與異步交互相結(jié)合、內(nèi)容交互與人際交互相結(jié)合以及交互數(shù)量與交互質(zhì)量相結(jié)合[8]。在規(guī)定的設(shè)計原則下,確保系統(tǒng)在交互時以質(zhì)為主、以量為輔,并盡量剔除無意義的交互。為提高系統(tǒng)交互功能的有效性,降低交互產(chǎn)生的時延,建立多線程同步交互模式,并根據(jù)不同的交互方式實現(xiàn)交互功能。
1.3.1 多線程同步交互
在三層C/S 模式下,系統(tǒng)服務(wù)器端與用戶端之間的信息通信可以分為編輯、壓縮、發(fā)送、接收、解壓等多個步驟,且每一個部分對實時性的要求都比較高,而且都通過交互通信數(shù)據(jù)產(chǎn)生相互關(guān)聯(lián)[9]。為保證交互信息的時延降到最低,需要使用多個線程分別實現(xiàn)各自的功能,線程之間的工作相對獨立,同時也支持多人在線交互。系統(tǒng)交互功能中多線程同步交互的工作原理如圖3 所示。
從圖3 中可以看出,整個信息交互的過程包含5 個線程,其中都包括發(fā)出鏈接請求、啟動編輯程序、緩沖壓縮、文件接收和壓縮等待[10]。通過采用消息傳遞機制以及信號量機制實現(xiàn)多線程之間的同步工作。
圖3 多線程同步交互工作時序圖
1.3.2 語音通信交互
在多線程同步交互模式下,嵌入式系統(tǒng)的語音通信交互流程如圖4 所示。
圖4 語音通信交互流程圖
從圖4 中可以看出,整個語音通信交互工作可以大致分為三個方面,分別為音頻數(shù)據(jù)的采集、壓縮傳輸以及接收播放[11]。
1.3.3 文字信息交互
除了語音通信交互模式之外,嵌入式系統(tǒng)中的留言板功能也支持在線留言,留言的形式為文字內(nèi)容的形式。用戶可以從系統(tǒng)的主界面連接到留言板模塊中,編輯好相應(yīng)的交互信息并選擇發(fā)送的對象,在C/S 模式下形成客戶端到服務(wù)器端的傳輸連接,實現(xiàn)文字信息的發(fā)送[12]。文字信息交互的對象可以為另一個客戶端也可以是服務(wù)器端。與語音通信交互模式相比,省略了錄音與播放音頻的模塊,因此這種交互方式的實時性更強。
為了檢測嵌入式系統(tǒng)中的交互功能,在原有系統(tǒng)的基礎(chǔ)上對源代碼進行編寫。利用Java 應(yīng)用程序開發(fā)平臺打開原有系統(tǒng)的應(yīng)用程序,Java 提供了可移植、可解釋、高性能和面向?qū)ο蟮木幊陶Z言以及運行環(huán)境。為了保證系統(tǒng)交互功能的正常運行,需要在開發(fā)環(huán)境中安裝jdk 插件,版本選擇為jdk 1.6 版本。除了后臺的程序代碼外,還需要改裝系統(tǒng)的前臺界面,按照交互功能的使用要求,在主界面中加入互動模塊,作為交互功能實現(xiàn)的接口。
離線狀態(tài)下的嵌入式系統(tǒng)是無法實現(xiàn)交互功能的,為此在功能測試實驗中需要搭建相應(yīng)的測試環(huán)境。測試環(huán)境中除了改裝完成的帶有交互功能的嵌入式系統(tǒng)及其應(yīng)用開發(fā)環(huán)境之外,還需要安裝系統(tǒng)的數(shù)據(jù)庫服務(wù)器、運行服務(wù)器以及相關(guān)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。網(wǎng)絡(luò)拓撲結(jié)構(gòu)的性質(zhì)為局域網(wǎng),且在局域網(wǎng)覆蓋的范圍內(nèi)存在其他計算機可以與測試系統(tǒng)形成交互通信。在硬件設(shè)備搭建完成的基礎(chǔ)上,針對網(wǎng)絡(luò)以及計算機之間的適配情況進行進一步調(diào)試。工作人員在測試環(huán)境內(nèi)對嵌入式系統(tǒng)進行調(diào)試的情況如圖5 所示。
圖5 測試環(huán)境
在此次功能測試實驗中,設(shè)置傳統(tǒng)的嵌入式系統(tǒng)交互功能,即基于單層C/S 模式的嵌入式系統(tǒng)交互設(shè)計結(jié)果作為此次實驗的對照組。對比功能在設(shè)計過程中使用的基礎(chǔ)嵌入式系統(tǒng)相同,以此保證實驗結(jié)果的可信度。遵循測試功能的開發(fā)過程,將對比功能輸入到測試環(huán)境當(dāng)中,分別從語音和文字兩個方面設(shè)置交互信息,并分別記錄不同類型信息交互產(chǎn)生的時延情況。為了避免實驗數(shù)據(jù)的偶然性,設(shè)計多次實驗,取平均值作為最終的實驗結(jié)果。
通過統(tǒng)計學(xué)計算原理和第三方軟件的分析得出功能測試實驗的實驗結(jié)果,如表1 所示。
表1中的數(shù)據(jù)表明,在嵌入式系統(tǒng)中信息之間的交互存在不同程度上的時延,且交互信息越復(fù)雜產(chǎn)生的時延越長。經(jīng)過計算,傳統(tǒng)交互功能的平均時延為5.4 min,基于三層C/S 模式的嵌入式系統(tǒng)交互功能的平均時延為1.4 min,相比之下節(jié)省了4 min。實驗結(jié)果表明,設(shè)計的嵌入式系統(tǒng)的交互時延短、交互性更強。
為增強嵌入式系統(tǒng)的交互性,本文提出了基于三層C/S 模式的嵌入式系統(tǒng)交互設(shè)計。三層C/S 模式下的嵌入式系統(tǒng)是由多個嵌入式節(jié)點組成的系統(tǒng),通過一個服務(wù)器節(jié)點為Control Peer 與多個Function Peer 之間的管理模式,實現(xiàn)系統(tǒng)的運行與交互。在該模式下設(shè)計并優(yōu)化系統(tǒng)的交互功能,實現(xiàn)系統(tǒng)功能的多元化,同時提高了系統(tǒng)的可擴展性與靈活性,保證了不同嵌入式設(shè)備之間的資源共享。實驗表明,相較于傳統(tǒng)嵌入式系統(tǒng),設(shè)計的基于三層C/S 模式的嵌入式系統(tǒng)的平均時延更短、交互性更強。該設(shè)計對于嵌入式系統(tǒng)的發(fā)展而言具有重要意義。