李瑞娟
(柳州職業(yè)技術(shù)學(xué)院,廣西 柳州 545006 )
微處理器內(nèi)核運行過程一直是學(xué)生在學(xué)習(xí)微控制器原理相關(guān)知識過程中的難點。通過開發(fā)微控制器的相關(guān)實驗,讓學(xué)生直接能夠觀測到微控制器內(nèi)部的運行過程和運行機制,能夠極大提高學(xué)生對微控制器的學(xué)習(xí)興趣和動力,同時能夠讓學(xué)生理解微控制器內(nèi)部的結(jié)構(gòu)和運行機制[1-2]。然而由于微控制器內(nèi)部的運行過程一般難以直接進(jìn)行觀測,而且也沒有很好的工具或者環(huán)境能夠時時地觀測微控制器內(nèi)部的結(jié)構(gòu)和運行過程。目前采用的一般方式是通過模擬仿真軟件來模擬微控制器的運行過程。通過模擬仿真軟件為用戶提供的微控制器內(nèi)部計算器,內(nèi)存和IO端口等數(shù)據(jù)交換窗口讓用戶能夠觀測到微控制器內(nèi)部的運行過程。然而基于模擬軟件的微控制器過程及實驗環(huán)境只能夠為用戶提供微控制器內(nèi)部觀測的機會,無法為用戶提供更多功能更全面的微控制器內(nèi)部運行機制的相關(guān)實驗環(huán)境,也不支持用戶在此基礎(chǔ)上進(jìn)一步開發(fā)針對微控制器內(nèi)部運行機制的相關(guān)實驗[3-4]。為了提高其組織機構(gòu)和工作機制的問題深入學(xué)習(xí)和研究,除了需要能為學(xué)生提高微控制器內(nèi)部可視化環(huán)境,更為學(xué)生提供在此基礎(chǔ)上進(jìn)行二次開發(fā)和更加復(fù)雜和深入的微控制器相關(guān)實驗的平臺[5-6]。
因此,本文對微控制器運行之后,提出了一種可視化的微控制器運行過程和分析實驗平臺。該實驗平臺能夠為用戶提供微控制器內(nèi)部執(zhí)行過程的相關(guān)信息的輸出。而且該實驗平臺通過對微控制器運行過程的模擬,及輸入輸出接口的映射。還能夠為用戶在此基礎(chǔ)上在對實驗平臺進(jìn)行二次開發(fā),設(shè)計一些針對微控制器內(nèi)部運行機制的相關(guān)實驗,有助于學(xué)生對微控制器內(nèi)部進(jìn)行機制深入地學(xué)習(xí)和理解。
本文設(shè)計的可視化微控制器分析設(shè)計平臺(如圖1所示),主要需要實現(xiàn)兩個功能:①能夠?qū)ξ⒖刂破鞯倪\行過程進(jìn)行展示,并將微控制器各主要計算器以及內(nèi)存IO端口等信息進(jìn)行輸出,給用戶以直觀的展示;②可視化微控制器實驗平臺能夠為微控制器內(nèi)部執(zhí)行過程管理的相關(guān)實驗提供環(huán)境和支撐。因此,可視化分析實驗平臺在設(shè)計上首先能夠完全模擬微控制器的運行過程,能夠準(zhǔn)確將微控制器運行過程的各個狀態(tài)進(jìn)行記錄,通過一定軟硬件模塊將信息進(jìn)行輸出,同時也能夠?qū)ν鈬斎氲南嚓P(guān)的微控制器運行過程相關(guān)控制信息進(jìn)行接收和處理,并對微控制器的相關(guān)信息進(jìn)行正確響應(yīng)[7-8]。由于可視化實驗平臺的相關(guān)控制實驗是在可視化運行平臺的基礎(chǔ)上進(jìn)行擴展,整個實驗最基礎(chǔ)的部分是對分析實驗平臺的設(shè)計。本文設(shè)計的可視化微控制器運行平臺如圖1所示,從圖中可以看出,微控制器運行過程實驗平臺的核心是基于微處理器的嵌入式平臺。在該平臺上運行虛擬化的模擬軟件,實現(xiàn)該控制器的詳細(xì)模擬[9-10]。當(dāng)用戶需要監(jiān)測微控制器上的執(zhí)行某一段程序的詳細(xì)過程時,則將該程序段送入虛擬化的模擬環(huán)境中進(jìn)入模擬運行。虛擬環(huán)境能夠模擬微控制器的運行過程,將目標(biāo)程序的運行結(jié)果進(jìn)行輸出,同時還能夠模擬目標(biāo)程序在運行模擬階段對微控制器的影響。
圖1 基于虛擬化技術(shù)的可視化實驗平臺
通過虛擬化的運行環(huán)境,對目標(biāo)程序的運行過程進(jìn)行模擬之后,能夠得到目標(biāo)程序在在運行過程中微控制器各個部件的狀態(tài)和運行結(jié)果。之后在基于微處理器的嵌入式平臺開發(fā)相應(yīng)的可視化分析程序,對虛擬化運行環(huán)境得到的各個狀態(tài)信息及運行結(jié)果進(jìn)行輸出,在本文設(shè)計可視化分析平臺中,主要對微控制器的各種IO信息,內(nèi)存信息以及計算器信息進(jìn)行輸出,采用不同的數(shù)據(jù)映射模塊實現(xiàn)虛擬化運行環(huán)境中得到的運行數(shù)據(jù)和狀態(tài)信息往外輸出[11-12]。在可視化分析平臺的外圍,設(shè)計一定的可視化顯示終端,主要包括LED指示燈,LED,以及LCD顯示屏等顯示終端。而且每一種顯示終端都對應(yīng)不同類型的信息的顯示,通過這種基于虛擬化技術(shù)的可視化實驗平臺,可以實現(xiàn)將目標(biāo)程序運行的全過程的相關(guān)信息可以輸出,用戶可以通過觀測可視化實驗平臺輸出的各種目標(biāo)程序的詳細(xì)運行過程,實現(xiàn)對微控制器執(zhí)行過程的理解。
微控制器運行過程的可視化研究主要研究如何將運行過程的信息進(jìn)行采集。并將采集到的信息加以輸出。由于目前微控制器在設(shè)計上并不支持用戶直觀的觀測到微控制器的運行過程,也沒有相應(yīng)的接口供用戶進(jìn)行二次開發(fā)。因此微控制器運行過程,對用戶來講是一個黑盒。為了觀測和研究微控制器的運行過程,首先要建立虛擬的仿真平臺,在仿真環(huán)境下將微控制器的各種硬件結(jié)構(gòu)進(jìn)行模擬。然后當(dāng)微控制器加載了目標(biāo)程序之后,對目標(biāo)程序的運行過程進(jìn)行動態(tài)模擬和跟蹤,并對全過程實行信息的采集,以實現(xiàn)對微控制器運行過程的原始信息的獲取。
微控制器在運行過程中,所有的狀態(tài)信息主要表現(xiàn)在計算器,IO端口,內(nèi)存等三個部分。因此對微控制器進(jìn)行模擬的時候需要分別模擬微控制器內(nèi)部的計算器,IO端口和內(nèi)存信息變化過程。在建立虛擬環(huán)境微控制器執(zhí)行過程的時候,虛擬環(huán)境一般會模擬微控制器內(nèi)部的所有硬件結(jié)構(gòu),包括計算機,IO端口和內(nèi)存。因此,在虛擬環(huán)境當(dāng)中,能夠準(zhǔn)確得到微控制器運行過程中這三類信息的變化過程。能夠通過直觀的可視化界面進(jìn)行認(rèn)識,因此在獲取了微控制器在虛擬環(huán)境中運行的各類信息之后,需要設(shè)計相應(yīng)的可視化顯示程序,將采集到的各種信息輸出來,即所有的信息需要從虛擬環(huán)境中映射到外部處于控制功能的平臺,即處于圖一中間位置的微處理器嵌入式平臺,在該平臺中要開辟一段存儲區(qū)域?qū)μ摂M化運行環(huán)境中目標(biāo)微處理器的相關(guān)計算器,IO端口,和內(nèi)存信息進(jìn)行存儲。然后根據(jù)所存儲的內(nèi)容和種類不同,由可視化實驗平臺的相關(guān)顯示設(shè)備進(jìn)行輸出示。
可視化實驗平臺的實現(xiàn)過程主要包括三個不同信息內(nèi)容的可視化實現(xiàn)。即寄存器的可視化信息實現(xiàn),IO端口的可視化信息顯示和內(nèi)存的可視化實現(xiàn)。其中寄存器的可視化顯示和 IO端口的顯示都可以通過LED燈的形式顯示。但是由于計算器的數(shù)量相對少少,信息比較固定。因此,LED的顯示一般都采用LED燈進(jìn)行顯示,在利用LED顯示計算器的運行狀態(tài)時,每個LED代表一個計算器后位,通過LED的亮或滅代表寄存器的01比特數(shù)值。由于LED燈可以直接通過微控制器控制,也可以由微控制器經(jīng)過三極管進(jìn)行驅(qū)動控制,整個實現(xiàn)較為簡單,因此對LED的顯示模塊不詳細(xì)介紹。
內(nèi)存的可視化顯示采用LCD屏的形式顯示,由于內(nèi)存區(qū)域較大,即使使用可視面積較大的LCD 屏幕,仍然難以把整個內(nèi)存區(qū)域進(jìn)行顯示。因此對內(nèi)存信息進(jìn)行顯示的時候,必須選擇某一特定的地址區(qū)塊進(jìn)行顯示。對信息顯示的格式也分地址區(qū)和數(shù)據(jù)區(qū)兩個部分。如圖二所示,每次LCD屏幕上的信息只涉及到內(nèi)存信息當(dāng)中的一段數(shù)據(jù)的內(nèi)容,圖中給出的是基于LCD的內(nèi)存可視化實現(xiàn)原理圖,通過將內(nèi)存的數(shù)據(jù)映射到LCD屏幕的顯示區(qū)域,直接讀取內(nèi)存數(shù)據(jù)中的相關(guān)內(nèi)容進(jìn)行格式轉(zhuǎn)換之后顯示在LCD屏幕的可視區(qū)域當(dāng)中。為了提高 LCD屏幕的觀測范圍,可以將LCD屏幕設(shè)定不同的區(qū)域顯示不同的區(qū)塊,以便實現(xiàn)在一個LCD屏幕上對多個內(nèi)存區(qū)域的數(shù)據(jù)進(jìn)行監(jiān)視(如圖2所示)。
圖2 基于LCD的內(nèi)存可視化實現(xiàn)原理圖
在對微控制器運行過程進(jìn)行可視化設(shè)計時,微控制器運行過程中還有一類信息往往需要進(jìn)行監(jiān)測,即微控制器運行過程中的堆棧變化情況。而且在目前絕大多數(shù)嵌入式系統(tǒng)中都使用了堆棧對數(shù)據(jù)進(jìn)行管理,堆棧是使用最為頻繁的數(shù)據(jù)結(jié)構(gòu)。而且隨著結(jié)構(gòu)的運行時刻發(fā)生改變,因此對堆棧的運行過程和堆棧信息內(nèi)容的理解一直是學(xué)生在學(xué)習(xí)嵌入式平臺中的難點,因此在開發(fā)可視化的微控制器運行過程實驗平臺時,需要專門設(shè)計堆棧的可視化實現(xiàn)模塊。
本文設(shè)計的堆棧可視化實現(xiàn)模塊,采用的是基于數(shù)碼管陣列的形式拼接顯示。由于每一個數(shù)碼管陣列所能夠顯示的行和列數(shù)目是有限的。為了能夠?qū)Χ褩V械臄?shù)據(jù)進(jìn)行完整的表示,構(gòu)建了一個數(shù)碼管陣列,數(shù)碼管陣列當(dāng)中的每一行代表堆棧當(dāng)中一行的數(shù)據(jù)。在數(shù)碼管的顯示區(qū)域內(nèi),處于有效數(shù)據(jù)的最頂端代表的是堆棧的棧頂,數(shù)碼管對底端的數(shù)據(jù)代表的是堆棧棧底的數(shù)據(jù)?;跀?shù)碼管陣列的可視化示意圖如圖3所示,當(dāng)微控制器內(nèi)部程序處于運行狀態(tài)時,在執(zhí)行程序調(diào)用或者中斷等過程時,都會涉及到堆棧的壓棧和出棧等操作。通過基于數(shù)碼管陣列的可視化實現(xiàn),可以讓用戶清楚地看到微控制器內(nèi)部堆棧增長和退去的和過程,也能夠看到當(dāng)前堆棧當(dāng)中所存儲的所有數(shù)據(jù),而且助于用戶理解微控制器中程序的運行過程。
圖3 基于數(shù)碼管陣列的堆棧的可視化示意圖
微控制器的執(zhí)行過程一直是一個非常抽象的知識點,學(xué)生在學(xué)習(xí)微控制器相關(guān)內(nèi)容的時候一直缺乏很好的環(huán)境和工具對微控制器過程進(jìn)行深入的理解和研究。這極大地阻礙了學(xué)生對微控制器相關(guān)知識的學(xué)習(xí)興趣和動力,更缺乏相應(yīng)的實驗環(huán)境和平臺,讓學(xué)生能夠?qū)ξ⒖刂破鞯膱?zhí)行過程開展更為深入的實驗和分析工作[13]。本文設(shè)計的可視化的微控制器執(zhí)行平臺能夠為學(xué)生提供一個功能強大的可視化環(huán)境,使得用戶能夠?qū)ξ⒖刂破鲀?nèi)部結(jié)構(gòu)以及程序的執(zhí)行過程做到實時的準(zhǔn)確的監(jiān)控,為用戶理解微控制器的執(zhí)行過程分析平臺。在此基礎(chǔ)在上,用戶可以通過此平臺進(jìn)行二次開發(fā)和功能擴展,以實現(xiàn)對微控制器執(zhí)行過程的相關(guān)控制和管理,為用戶開設(shè)更加復(fù)雜的相關(guān)微控制器執(zhí)行處理機制的實驗提供硬件支撐。
[1] 林云,劉嘉南,吳啟迪.遠(yuǎn)程分布式虛擬實驗室關(guān)鍵技術(shù)研究[J].中國遠(yuǎn)程教育,2008(11):69-72.
[2] 易克非,胡慶鋒.基于 DSP的實時多任務(wù)調(diào)度內(nèi)核設(shè)計[J].通信技術(shù),2011,44(06):135-137.
[3] 鄭丹.網(wǎng)上虛擬實驗教學(xué)模式的研究與探討[J].高校實驗室工作研究,2008,97(03):60-62.
[4] 楊華,楊松岸,黃修超.以TMS320C6205為核心的MPEG-4編碼器的設(shè)計與實現(xiàn)[J].通信技術(shù),2003(11):1-2,5.
[5] 韓萍,康健.基于LabVIEW的信號處理技術(shù)應(yīng)用演示及實驗系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2010,27(07):99-103.
[6] 趙月飛,馮長江,余建華.電工電子網(wǎng)上虛擬實驗室的建設(shè)與應(yīng)用[J].實驗室研究與探索,2003,22(02):95-97.
[7] 文軍,王加懂.DSP程序在線編程的研究與實現(xiàn)[J].信息安全與通信保密,2007(08):192-195,198.
[8] 燕德麗,夏巖.嵌入式系統(tǒng)開發(fā)平臺化淺析[J].科技信息(學(xué)術(shù)研究),2007(21):194-195.
[9] 裴金剛,熊棟棟.基于ARM的嵌入式系統(tǒng)平臺的構(gòu)建[J].黑龍江科技信息,2010(17):64-64.
[10] 原亮,丁國良,李浩,等.嵌入式系統(tǒng)的綜合教學(xué)實驗環(huán)境建立[J].實驗室研究與探索,2008,27(01):92-95.
[11] 聞紹飛,張石,鮑喜榮,等.淺談ARM7嵌入式系統(tǒng)的實驗教學(xué)[J].實驗室科學(xué),2009(05):53-55.
[12] 盧寧寧.ARM在嵌入式Linux網(wǎng)絡(luò)通信平臺中的應(yīng)用[J].科技風(fēng),2010(01):250-250.
[13] 姜沫岐.陳月云.基于DSP構(gòu)建綜合仿真平臺的OFDM系統(tǒng)實現(xiàn)[J].信息安全與通信保密,2006(03):86-88.