嵌入式系統(tǒng)Web在線仿真實驗平臺設計
時間:2022-10-20 09:47:45
導語:嵌入式系統(tǒng)Web在線仿真實驗平臺設計一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:為解決嵌入式系統(tǒng)在線仿真實驗教學平臺系統(tǒng)操作復雜性和實驗板狀態(tài)可視化問題,提出優(yōu)化編譯功能,設計“一鍵式”遠程在線編譯的方法。該方法屏蔽了嵌入式交叉編譯細節(jié),支持學生通過瀏覽器操作完成代碼編譯。融合虛擬現(xiàn)實技術(shù),設計并實現(xiàn)基于Unity3D的可視化模塊,通過實時監(jiān)控部署在遠程服務器端的實驗板的輸出端口,采用3D渲染的實驗板模型進行可視化顯示輸出。教學實踐表明,89.72%的學生認為實驗平臺操作便捷、實驗顯示效果好。該方法有效降低了實驗入門難度,提高了學生的實驗效率和體驗度。
關(guān)鍵詞:嵌入式系統(tǒng);在線仿真實驗;3D可視化;在線編譯
嵌入式系統(tǒng)作為計算機、電子信息及自動化等信息類工科專業(yè)的核心課程,具有理論學習難度大、實踐操作性強等特點[1]。實驗教學作為該課程的重要環(huán)節(jié),重點培養(yǎng)學生的動手實踐能力。傳統(tǒng)的教學模式需要在固定時間和地點統(tǒng)一組織學生“一人一板”開展實驗,在時間和空間上都有很大的局限性。部分院校因為學生較多,需要分批進行實驗,甚至為了節(jié)省實驗時間,實驗內(nèi)容以演示或驗證性為主[2]。此外,這種模式下的教學,如果遇到突發(fā)性疫情,將無法繼續(xù)開展教學工作。針對上述教學模式中的不足,結(jié)合互聯(lián)網(wǎng)技術(shù),嵌入式系統(tǒng)在線仿真實驗教學平臺應運而生[3-4]。嵌入式在線仿真實驗平臺為學生提供了開放的嵌入式系統(tǒng)實驗環(huán)境[5-6],學生可自行選擇合適的時間、地點通過在線方式開展實驗。新的實驗形式解決了傳統(tǒng)教學模式存在的不足,但為了達到良好的實驗效果,在技術(shù)上需要解決的問題主要包括:(1)編譯環(huán)境配置復雜。目前學生比較熟悉Windows系統(tǒng)作為開發(fā)和編譯環(huán)境,而嵌入式系統(tǒng)實驗編譯環(huán)境一般采用基于Linux的交叉編譯的方式,對于不熟悉Linux系統(tǒng)操作的學生需要投入大量的時間學習常用操作命令,在一定程度上增加了實驗的入門難度,容易降低學生實驗興趣。(2)遠程在線實驗無法觀察實驗板數(shù)碼管和LED燈的狀態(tài),導致部分實驗內(nèi)容受限。遠程在線仿真實驗平臺往往只能通過命令行的方式與實驗板進行交互,并通過命令行輸出的信息查看實驗結(jié)果。學生無法觀察到實驗板的顯示狀態(tài),所以只能部署僅僅通過命令行操作就能完成的實驗內(nèi)容,限制了實驗內(nèi)容的多樣性和創(chuàng)新性[7]。鑒于上述問題,需要系統(tǒng)設計的創(chuàng)新來突破這些局限,從而使基于在線仿真實驗平臺的教學質(zhì)量有質(zhì)的提升[8-9]。本文設計并實現(xiàn)了一種基于3D可視的嵌入式系統(tǒng)web在線仿真實驗平臺,該平臺的主要優(yōu)勢包括:(1)設計了一種“一鍵式”遠程在線編譯方法,該方法屏蔽了編譯細節(jié),學生只需在瀏覽器中編輯代碼,選擇編譯類型,即可編譯生成可執(zhí)行文件。不需學生花時間配置編譯環(huán)境,熟悉Linux系統(tǒng)和操作命令,只需重點關(guān)注課程實驗內(nèi)容,降低了實驗門檻。(2)融合虛擬現(xiàn)實技術(shù),設計并實現(xiàn)了一種基于Unity3D的可視化模塊[10]。該模塊實時監(jiān)控部署在遠程服務器端的實驗板的輸入輸出端口,獲取數(shù)碼管、LED燈等顯示組件的狀態(tài),并基于HTTP協(xié)議將數(shù)據(jù)傳遞到前端瀏覽器[11],通過3D渲染的實驗板模型進行可視化顯示輸出。
1系統(tǒng)設計
在線仿真實驗平臺主要實現(xiàn)學生通過Web瀏覽器訪問實驗環(huán)境,開展嵌入式系統(tǒng)實驗,并通過3D虛擬硬件仿真運行效果。圖1是嵌入式系統(tǒng)在線仿真實驗平臺的總體架構(gòu)圖,該系統(tǒng)由實驗服務和Web服務構(gòu)成,左側(cè)部分連接實驗板的調(diào)試系統(tǒng),與實驗板進行實際交互,為實驗服務。右側(cè)部分為Web服務,負責實驗服務部分與用戶之間的交互,將用戶指令傳遞給實驗服務并將實驗服務返回的結(jié)果通過瀏覽器展示給用戶。實驗服務部分主要實現(xiàn)兩個功能。(1)代碼編譯。該模塊通過接口服務接收用戶發(fā)送過來的代碼文本,然后調(diào)用本地編譯環(huán)境的編譯指令,得到編譯返回結(jié)果并返還給用戶。(2)運行程序。該模塊通過接口服務接收用戶發(fā)送過來的指令(Linux指令),然后通過SSH協(xié)議發(fā)送給連接的實驗板,并將返回的運行指令結(jié)果以及實驗板上的LED和數(shù)碼管狀態(tài)返回給Web服務。Web服務部分主要包含三個功能。(1)用戶管理服務。Web服務負責管理用戶的信息,判斷用戶的身份,防止用戶直接調(diào)用實驗服務提供的接口,防止實驗服務直接暴露在網(wǎng)絡中,增加了實驗服務的安全性。(2)實驗數(shù)據(jù)管理。該模塊記錄并保存用戶實驗時的數(shù)據(jù),教師可以為學生實驗打分,學生可以查看之前實驗的數(shù)據(jù),對實驗進行復習。(3)仿真頁面模塊。該模塊將Unity引擎嵌入到Web頁面中[12],通過調(diào)用實驗服務接口獲取實驗板的實時狀態(tài),然后將返回的結(jié)果以LED燈和數(shù)碼管的形式顯示到前端頁面上,模擬了真實實驗板的實時狀態(tài)。實驗服務和Web服務之間采用HTTP協(xié)議,通過JSON數(shù)據(jù)包封裝進行數(shù)據(jù)通信。圖2是系統(tǒng)的功能邏輯結(jié)構(gòu)圖,左側(cè)部分為實驗服務結(jié)構(gòu)(也稱虛擬機開發(fā)服務),右側(cè)部分為Web服務結(jié)構(gòu)。
2核心模塊設計
本系統(tǒng)在現(xiàn)有的嵌入式在線實驗平臺的基礎上降低了實驗系統(tǒng)操作復雜性,簡化了編譯操作方式。利用Unity3D技術(shù)可以直觀地展示實驗板的狀態(tài),學生通過仿真實驗平臺可以獲得和實驗室相同的實驗體驗。
2.1“一鍵式”代碼編譯機制
1)實驗板編譯環(huán)境。實驗板使用MY-IMX6-EK314,其內(nèi)核版本是Linux3.14.52。由于嵌入式平臺空間有限、資源匱乏,無法安裝并運行平臺所需要的編譯器,因此在編譯代碼的過程中,采用了交叉編譯的思想。交叉編譯的本質(zhì)是在一個平臺上生成另一個平臺上的可執(zhí)行代碼,將代碼放到通用主機平臺上編譯,然后再傳到嵌入式平臺上運行[13]。經(jīng)過多次測試,選擇運行最穩(wěn)定的Ubuntu16.04作為代碼編譯平臺。實驗中的代碼編譯主要分為兩類,應用程序編譯和驅(qū)動程序編譯。應用程序為用戶態(tài)的,典型的有控制臺打印輸出、用戶空間文件讀寫,驅(qū)動程序為內(nèi)核態(tài)的,可以讀取或賦值嵌入式實驗板的寄存器,獲取控制實驗板的輸入和輸出。用戶態(tài)程序編譯較為簡單,只需要調(diào)用編譯鏈將需要編譯的代碼文件編譯成對象文件鏈接到一起。而驅(qū)動程序編譯在編譯過程中不僅需要鏈接本地文件,還需要進入到內(nèi)核源碼目錄與內(nèi)核中的對象文件進行鏈接。2)“一鍵式”在線遠程編譯。由于編譯環(huán)境為Ubuntu16.04,不是目前使用最為廣泛的Windows系統(tǒng),學生直接在Linux系統(tǒng)下進行編譯操作,相比于在Windows系統(tǒng)下有更多的困難。同時編譯操作需要手動在控制臺中輸入命令,配置編譯路徑和環(huán)境變量,如果學生只有在集成好編譯鏈的集成開發(fā)環(huán)境進行編程的經(jīng)驗,那么在該嵌入式實驗板的交叉編譯平臺下進行代碼的編譯會存在一定的上手難度。所以在設計的嵌入式平臺中,采用了遠程在線編譯技術(shù)。如圖3所示,在線遠程編譯系統(tǒng)整體分為前端和后端兩個部分。前段為Web瀏覽器端,獲取學生輸入的代碼文本和編譯選項。后端為Web服務器端,負責接收代碼文本,并將代碼在編譯環(huán)境中進行編譯,編譯成功后,將編譯生成的可執(zhí)行文件通過FTP服務上傳到實驗板中。后端在本地編譯環(huán)境中為每個用戶建立了獨立的工作空間,防止不同用戶的代碼因為命名相同等問題而改變或丟失。同時程序通過使用Java提供的Process類與操作系統(tǒng)的Shell進行交互,通過事先輸入到代碼中的編譯指令進行編譯操作,同時讀取指令的返回值來判斷編譯是否成功,并將編譯返回的信息發(fā)送給前端,告知學生出現(xiàn)了錯誤。在線遠程編譯免去了學生在Ubuntu上進行編譯操作,只要有Web瀏覽器,即可進行代碼的編寫和編譯。學生不用額外花時間安裝Ubuntu系統(tǒng)、配置編譯環(huán)境、熟悉命令,而是將重心移到實驗本身。如圖4所示,用戶在瀏覽器中,輸入編輯好的代碼,點擊提交編譯按鈕,嵌入式實驗板即可得到編譯后的可執(zhí)行文件。
2.2基于Unity3D實驗板可視化設計
實驗中需要用到的硬件資源包含數(shù)碼管、LED燈、按鍵,學生在實驗的時候能夠觀察到數(shù)碼管和LED燈的顯示情況,以及能夠通過按下按鍵實現(xiàn)按鍵控制的邏輯。由于LED燈和數(shù)碼管實際上是實驗板的IO輸出端口,按鍵是IO輸入端口,因此可以通過讀取實驗板的IO寄存器來獲得實驗板的硬件資源對應的IO端口輸入和輸出的值,從而獲取實驗板當前數(shù)碼管、LED燈和按鍵的狀態(tài)[14]。我們在實驗板上部署了監(jiān)控程序,通過周期性讀取實驗板IO寄存器的值來實時監(jiān)控實驗板的狀態(tài),然后將檢測到的值通過UDP(userdatagramprotocol)協(xié)議傳遞給與實驗板相連的服務器上,服務器作為后端將獲取到的實驗板信息值緩存下來,瀏覽器前端通過請求接口獲取實驗板的狀態(tài)信息,然后后端將實驗板信息傳遞給前端,前端根據(jù)獲取到的值對頁面進行重新渲染,最終實驗板的狀態(tài)就能夠通過Web瀏覽器真實地展現(xiàn)在學生眼前。實驗板3D效果圖5所示。由于寄存器的讀取是內(nèi)核態(tài)的,而基于Socket的UDP協(xié)議通信程序是用戶態(tài)的,因此我們開發(fā)了IO寄存器讀寫驅(qū)動模塊,使得用戶態(tài)應用程序可以按照定義好的格式操作指定的驅(qū)動文件,實現(xiàn)制定IO寄存器的讀寫[15]。監(jiān)控程序單線程運行,對IO寄存器進行周期性地讀寫,并通過UDP協(xié)議與服務器進行通信,不會過多占用硬件資源而影響實驗板的正常運行。
3系統(tǒng)測試與教學實踐
針對可視化模塊的測試,設計了數(shù)碼管驅(qū)動開發(fā)及應用實驗和GPIO編程實驗,學生在客戶端編輯代碼,并上傳到實驗板進行編譯、運行,瀏覽器端加載3D實驗板模型,實現(xiàn)數(shù)碼管的可視化輸出,程序讀取實驗板系統(tǒng)時間,并通過數(shù)碼管進行顯示。圖5(a)為時分的可視化顯示結(jié)果。圖5(b)所示為GPIO實驗的截圖,實驗內(nèi)容為每隔1s點亮實驗板上的一個LED燈。結(jié)合嵌入式系統(tǒng)課程內(nèi)容,基于3D可視的嵌入式系統(tǒng)Web在線仿真實驗教學平臺設計了8個實驗,如表1所示。2020年春季學期,選課人數(shù)共有21人,實驗平臺服務器端共部署4塊實驗板,平臺運行時間為每周一到周六,周日關(guān)閉平臺進行維護。順利完成疫情期間嵌入式系統(tǒng)實驗課的教學工作。由于目前公開文獻中的嵌入式虛擬實驗平臺主要以虛擬實驗環(huán)境為主,在實驗平臺架構(gòu)和功能上不能滿足我校嵌入式系統(tǒng)相關(guān)課程的需求。對課程組實驗平臺優(yōu)化前后的使用情況對比分析(圖6)發(fā)現(xiàn),實驗1—5的新平臺使用時間減少,由于新增實驗及實驗難度依次增加,新平臺使用時間整體呈上升趨勢。相比編譯優(yōu)化前和優(yōu)化后的“一鍵式”編譯,學生平均實驗時長有所減少,并且時長差有所減少,原因在于編譯優(yōu)化前學生需要配置交叉編譯鏈等步驟,存在部分學生不熟悉配置步驟。其中實驗6的ZLG7290數(shù)碼管驅(qū)動開發(fā)實驗、實驗7的ZLG7290數(shù)碼管應用開發(fā)實驗和實驗8的GPIO編程實驗由于需要觀察實驗板工作狀態(tài),所以原來只能采用線下方式進行,在本文基于3D可視的嵌入式系統(tǒng)Web在線仿真實驗平臺可以實現(xiàn)在線實驗,有效地豐富了實驗內(nèi)容。圖6學生實驗平均時長實驗成績是實驗完成質(zhì)量、實驗報告等綜合評定的結(jié)果,能夠反映學生的學習效果和教師的教學效果。2019年秋季學期共有121人上課,采用非3D可視線上和線下結(jié)合的教學方式,由于線上實驗不支持可視化顯示實驗板狀態(tài)信息,關(guān)于數(shù)碼管和GPIO實驗需要完全使用線下實驗箱完成。2020年春季學期共有21人上課,受到疫情影響,全部采用基于3D可視的線上實驗平臺開展實驗教學。學生成績統(tǒng)計結(jié)果如圖7所示,2019年秋季學期線下實驗和2020年春季學期的線上實驗的教學效果基本相當,表明該實驗平臺基本可以代替線下實驗箱完成嵌入式系統(tǒng)實驗課程的教學任務。2020年秋季學期共有146人上課,采用基于3D可視的線上實驗和線下實驗結(jié)合的教學方式,根據(jù)最新實驗成績統(tǒng)計,優(yōu)良率均高于前兩個學期?;?D可視的嵌入式系統(tǒng)Web在線仿真實驗平臺能夠最大化還原實驗場景,學生可以在課下利用碎片時間,通過該實驗平臺投入更多的學習時間,在課上對實驗做進一步驗證并對擴展實驗進行探索,從而獲得更好的實驗成績,達到提高教學質(zhì)量的目的。通過對2020秋季學期上課的146名學生進行實驗體驗效果問卷調(diào)查,其結(jié)果如圖8所示,89.72%的學生認為集成一鍵式編譯和3D可視化的線上實驗平臺操作便捷、實驗結(jié)果顯示效果非常好??梢娫搶嶒炂脚_在一鍵式編譯和基于3D可視化方面的優(yōu)化設計獲得了絕大多數(shù)學生的認可。
4結(jié)語
本文提出了一種嵌入式系統(tǒng)在線仿真實驗教學平臺的設計與實現(xiàn)方案,該系統(tǒng)通過簡化編譯過程使得學生更加關(guān)注實驗內(nèi)容本身,通過可視化實驗板模型,學生可以實時觀測到實驗現(xiàn)象,獲得與在實驗室做實驗的體驗感。實踐證明本系統(tǒng)在滿足學生隨時隨地實驗的基礎上,優(yōu)化了系統(tǒng)交互性,能夠增加實驗內(nèi)容的豐富性,降低實驗門檻。在培養(yǎng)學生動手實踐積極性和能力方面發(fā)揮了重要作用。
作者:李輝勇 牛建偉 豆淵博 符宗愷 單位:北京航空航天大學計算機學院