曹宇軒 李 波 孔金祥 陳正陽 王星博
摘? 要:隨著計算機模擬現(xiàn)實能力增強,有越來越多事物可以在計算機上操作實現(xiàn),而許多學(xué)科的實驗器材損壞的速度都很快,學(xué)校進(jìn)行維護(hù)和更換的開銷都很巨大,所以文章就有了利用計算機模擬實驗器材的邏輯,讓學(xué)生在虛擬實驗平臺完成自己學(xué)科所需的實驗要求的構(gòu)想,該文章分為兩個模塊完成,即硬件模擬的實現(xiàn)和用戶操作界面。文章首先闡述了研究目的,再闡明了設(shè)計思路與模塊細(xì)節(jié),還有國內(nèi)外研究的現(xiàn)狀和發(fā)展動態(tài)
關(guān)鍵詞:模擬硬件;操作界面;硬件實驗;虛擬實驗平臺
中圖分類號:TP391.9? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2020)01-0084-03
Abstract:With the enhancement of the ability of computer simulation reality,more and more things can be operated and realized on the computer,and the speed of experimental equipment damage in many disciplines is very fast,and the cost of school maintenance and replacement is huge,so we have the logic of using computer simulation experimental equipment,so that students can complete their own subjects in the virtual experimental platform concept of test requirements is divided into two modules,namely,the realization of hardware simulation and user interface. This paper first introduces the purpose of the research,then expounds the design ideas and module details,as well as the current situation and development trend of the research at home and abroad
Keywords:simulation hardware;operation interface;hardware experiment;virtual experiment platform
1? 研究目的
計算機技術(shù)的進(jìn)步促使著人才涌入這個行業(yè),這也使得行業(yè)對從業(yè)者的素質(zhì)有著越來越高的要求,就目前市場而言,高端的軟件研發(fā)人員還是相當(dāng)匱乏,而許多傳統(tǒng)行業(yè)研發(fā)人員的處境卻越來越尷尬,因此快速提升學(xué)生編程能力、加深學(xué)生對計算機底層原理的理解,成為不少學(xué)校和教育機構(gòu)的訴求之一。學(xué)習(xí)編程需要了解底層語言的實現(xiàn),只有在對計算機的組成原理有一個較為深刻的認(rèn)識之后,才能系統(tǒng)地對各種編程語言進(jìn)行學(xué)習(xí),學(xué)生的知識體系才能更加完善?!坝嬎銠C組成原理”這門課程是學(xué)習(xí)其他課程的前提和基礎(chǔ),其本身具有承上啟下的作用,也是從事計算機行業(yè)開發(fā)、設(shè)計、維護(hù)的基礎(chǔ)。學(xué)生對這門課掌握得越好,在今后學(xué)習(xí)編程的道路中就能越輕松,處理相關(guān)編程難題時也就越得心應(yīng)手。同時這門課程還在硬件和軟件之間建立起一道橋梁,讓軟件通過接口的方式操作硬件,繼而產(chǎn)生了許多基于硬件操作的實驗。而市面上與此有關(guān)的實驗設(shè)備卻價值不菲,學(xué)校的實驗設(shè)備年久失修。本文致力于搭建一個虛擬的硬件實驗教學(xué)平臺,將傳統(tǒng)的硬件實驗用計算機軟件實現(xiàn),從而擺脫實驗設(shè)備易損壞的現(xiàn)狀。
2? 設(shè)計思路
(1)學(xué)生用戶可以通過賬號和密碼登錄本實驗平臺,平臺會將學(xué)生的實驗記錄保存在服務(wù)器中,從而使學(xué)生用戶更好地進(jìn)行“計算機組成原理”的虛擬實驗,同樣也設(shè)計了教師用戶界面,從而使教師可以更方便地管理學(xué)生的成績。在數(shù)據(jù)存儲方面,本平臺選擇Oracle數(shù)據(jù)庫完成以上功能,并使用JDBC與平臺相連。
(2)在學(xué)生電腦裝有瀏覽器且能聯(lián)網(wǎng)的情況下即可使用本軟件,所以本文使用JSP設(shè)計頁面還有電路的模擬,并在其中添加一些CSS3的樣式來使操作界面更加美觀,同時我們還將為虛擬實驗平臺架設(shè)專門的服務(wù)器,并申請公網(wǎng)ip,學(xué)生可以通過菜單來獲取實驗報告內(nèi)容以及提交完成的作業(yè),還可以通過菜單來保存、刪除或新建實驗,我們還考慮為學(xué)生錄制教學(xué)視頻,從而幫助學(xué)生更好地使用本平臺,完成實驗內(nèi)容。
(3)本?!坝嬎銠C組成原理”課程實驗所需芯片有74LS181(運算器)、74LS244(三態(tài)門)、RAM6116(靜態(tài)存儲器由2片6116組成)、74LS374(觸發(fā)器)、74LS245 (三態(tài)門)、EPROM2816(電可擦寫儲存器),所需基本元件有開關(guān)、燈、單脈沖控制器、連續(xù)脈沖器、以及與門、或門、非門、與非門、或非門、與或門和最基礎(chǔ)的線路模擬。為在虛擬平臺上模擬以上元器件,我們采用的基本思路是用CSS+HTML5頁面來模擬圖形化的操作界面,用JS腳本實現(xiàn)內(nèi)部邏輯判斷和是否與其他元器件相連,在學(xué)生完成連接并判斷達(dá)到運行條件后,平臺將會根據(jù)學(xué)生的后續(xù)操作給出運行結(jié)果。
實驗平臺的結(jié)構(gòu)框架如圖1所示。
3? 芯片功能設(shè)計
本實驗平臺半導(dǎo)體芯片都采自Intel設(shè)計,具體引腳功能及分布如下。
3.1? 運算器設(shè)計
整個運算器由算術(shù)邏輯單元、數(shù)據(jù)暫存器和輸出用的三態(tài)門組成,算術(shù)邏輯單元由4片74LS181構(gòu)成,74LS181一共有48個引腳,其中14個必要輸入、25個地線、8個輸出、1個電源。而2個16位數(shù)據(jù)暫存器由4片74LS273構(gòu)成,74LS273一共有40個引腳,其中2個必要輸入、8個普通輸入、8個輸出、21個地線、1個電源線。輸出采用的是三態(tài)門74LS245,74LS245一共有40個引腳,其中9個必要輸入、9個輸出、20個地線、1個電源和1個其他類型的引腳。
3.2? 存儲器設(shè)計
半導(dǎo)體靜態(tài)隨機存儲器由2片RAM6116組成,RAM 6116一共有48個引腳,其中10個必要輸入、8個輸入/輸出、4個輸入、21個地線、1個電源、4個其他類型引腳。
3.3? 微程序控制器
微程序控制器由1片三態(tài)輸出觸發(fā)器74LS374、3片EEPROM2716c3、1片三態(tài)門74LS245組成,74LS374有40個引腳,其中10個必要輸入、8個輸出、21個地線、1個電源。EEPROM2716c3有80個引腳,其中8個必要輸入、5個輸入、24個輸出、36個地線、7個其他引腳。74LS245在上面已經(jīng)敘述過,不再贅述。
4? 各個模塊介紹
4.1? 識別各芯片及實驗原件模擬
本平臺將每個元器件的陣腳設(shè)定為一個可連接的對象,再根據(jù)該元件類型判斷連接是否正確,如果正確即可連接,否則不可相連,再將所有創(chuàng)建的元器件通路判斷是否滿足運行條件,如果滿足運行條件,那么就更改元器件的圖片,例如使燈泡處于發(fā)亮狀態(tài),具體實現(xiàn)方法是首先創(chuàng)建一個隊列,從隊頭開始依次向下循環(huán)判斷實驗元器件的連接情況,之后一直遍歷到隊尾,如果實驗器件擺放錯誤,那么將不會執(zhí)行內(nèi)部邏輯。
4.2? 用戶管理設(shè)計
采取Oracle數(shù)據(jù)庫來存放用戶信息,首先在數(shù)據(jù)庫中設(shè)計用戶表和增刪改查等一系列存儲過程,再把這些存儲過程打包為程序包,最后將數(shù)據(jù)庫與前端所創(chuàng)建的登錄頁面相連接,從而實現(xiàn)用戶登錄、用戶注冊、進(jìn)行用戶名密碼修改等操作,這樣的設(shè)計結(jié)構(gòu)可以方便教師區(qū)分每個學(xué)生的實驗完成進(jìn)度。
4.3? 功能、操作界面
菜單的實現(xiàn)采用CSS和HTML5語言,其中使用HTML5構(gòu)造框架與其具體功能,CSS負(fù)責(zé)頁面美化并實現(xiàn)二級菜單功能。首先消除HTML標(biāo)簽?zāi)J(rèn)的內(nèi)外邊距,然后清除浮動,去掉默認(rèn)a標(biāo)簽的下劃線,設(shè)置鼠標(biāo)滑過后的樣式,先使二級菜單的內(nèi)容隱藏,設(shè)定鼠標(biāo)滑過一級菜單后顯示的二級菜單,最后把樣式加入菜單,即可完成一個二級菜單的設(shè)計。
工具欄的實現(xiàn)使用HTML,jQuery和jQuery UI圖形庫,首先使用HTML來構(gòu)筑工具欄的外框,再使用jQuery UI庫自帶的圖形函數(shù)來完成工具欄滑動的效果,之后使用SVG選擇所需要的元器件,將圖形拖拽出來,工具欄的每個標(biāo)簽背后都有一個JavaScript實現(xiàn)的JS腳本,所以每個元件都是現(xiàn)場繪制,內(nèi)部邏輯已經(jīng)在JS腳本里實現(xiàn),就完成了工具欄的設(shè)計。
連接線是使用SVG來繪制的,只有鼠標(biāo)放在元器件引腳上方時才可繪制連接線。獲取兩點(鼠標(biāo)點擊元器件引腳的坐標(biāo)點與鼠標(biāo)松開時另一個元器件引腳的坐標(biāo)點)之后,根據(jù)特定的公式算出一些固定的折點,然后繪制。具體實現(xiàn)是將兩點坐標(biāo)分別設(shè)為(x1,y1),(x2,y2),隨之獲取((x2-x1)/2,y1),(x2,(y2-y1)/2)這兩點,通過折線將兩個元器件最終連接到一起。
至此,功能操作界面基本實現(xiàn)完成。各個模板介紹也已完成。
5? 結(jié)? 論
本項目遵循方便、節(jié)約資源、可拓展性強的原則,為學(xué)校和學(xué)生搭建一個隨時隨地可用的虛擬實驗平臺。和原先學(xué)校使用的笨重的、封裝的實驗器材相比,在計算機上實現(xiàn)的實驗平臺更加直觀,更易于學(xué)生對照課本學(xué)習(xí),而部署虛擬實驗平臺的費用也遠(yuǎn)低于原先購買器材的價格。和其他類似的虛擬實驗平臺相比,本平臺更加美觀,兼容性更強,學(xué)生的實驗成果能以更加清晰的方式呈現(xiàn)在虛擬實驗平臺上?!坝嬎銠C組成原理”這門課程的開展是為了使學(xué)生以宏觀的思維來對待組織繁雜的計算機內(nèi)部結(jié)構(gòu),所以學(xué)生如果在做實驗的過程中能一目了然地看到一個結(jié)構(gòu)簡單的計算機內(nèi)部組成的示意圖,自然會極大地提高學(xué)習(xí)效率。未來會有越來越多的學(xué)?;蚪M織采用類似的虛擬平臺的方式對學(xué)員進(jìn)行培養(yǎng),虛擬實驗平臺在教育領(lǐng)域的優(yōu)勢會隨著技術(shù)的發(fā)展而越發(fā)突顯。
參考文獻(xiàn):
[1] 唐朔飛.計算機組成原理:第2版 [M].北京:高等教育出版社,2008.
[2] 唐朔飛.計算機組成原理——學(xué)習(xí)指導(dǎo)與習(xí)題解答:第2版 [M].北京:高等教育出版社,2012.
[3] 張珈珣,范立鋒.HTML5+CSS3基礎(chǔ)開發(fā)教程:第2版 [M].北京:中國人民郵電出版社,2017.
[4] 陳矗,任平紅.Web編程基礎(chǔ)——HTML、CSS、JavaScript [M].北京:清華大學(xué)出版社,2014.
[5] 孫風(fēng)棟.Oracle11g數(shù)據(jù)庫基礎(chǔ)教程:第2版 [M].北京:電子工業(yè)出版社,2017.
作者簡介:曹宇軒(2000.09-),男,漢族,吉林磐石人,本科在讀,研究方向:軟件工程。