張燕 夏慶鋒 謝鵬飛
摘要:針對(duì)嵌入式系統(tǒng)教學(xué)過程中存在諸如課程直觀性不強(qiáng),學(xué)生動(dòng)手能力不足等問題,以及為了更好地提高學(xué)生的創(chuàng)新性。本文提出了利用proteus以及keil軟件作為課程教學(xué)的輔助手段設(shè)計(jì)一系列案例使得嵌入式系統(tǒng)理論教學(xué)更加形象化,提高學(xué)生學(xué)習(xí)的積極性,且使得實(shí)驗(yàn)教學(xué)對(duì)于設(shè)備的要求有所降低,節(jié)約了實(shí)驗(yàn)教學(xué)成本。
關(guān)鍵詞:proteus軟件;嵌入式系統(tǒng);仿真;輔助教學(xué)
中圖分類號(hào):G642.41 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1674-9324(2015)43-0252-02
一、引言
嵌入式系統(tǒng)目前廣泛應(yīng)用于通信設(shè)備,信息家電,網(wǎng)絡(luò)設(shè)備,工業(yè)控制,智能儀表,汽車電子,移動(dòng)存儲(chǔ)等領(lǐng)域中,有統(tǒng)計(jì)表明目前嵌入式微控制器占世界處理器市場(chǎng)的94%,而PC處理器只占6%。因此社會(huì)對(duì)于嵌入式系統(tǒng)相關(guān)技術(shù)人才的需求也在空前擴(kuò)大。嵌入式系統(tǒng)這門課程也成為各個(gè)高校電子信息類專業(yè)的一門非常重要的專業(yè)課程。這門課程融電子電路,程序設(shè)計(jì)等課程于一體。是一門理論和實(shí)踐相結(jié)合的課程。
本課程重點(diǎn)培養(yǎng)的是學(xué)生對(duì)于嵌入式系統(tǒng)理論的認(rèn)識(shí)以及實(shí)現(xiàn)嵌入式系統(tǒng)外設(shè)的相關(guān)操作。由于涉及到嵌入式系統(tǒng)的相關(guān)操作,因此實(shí)驗(yàn)課程非常重要,但由于理論教學(xué)是課堂教學(xué),無法直接的給學(xué)生演示電路連接,運(yùn)行過程,導(dǎo)致課堂教學(xué)比較枯燥。而實(shí)驗(yàn)課教學(xué)又由于設(shè)備和實(shí)驗(yàn)時(shí)間的限制無法滿足學(xué)生的學(xué)習(xí)需求。因此考慮將proteus軟件引入嵌入式系統(tǒng)的教學(xué)過程中,使得所有實(shí)驗(yàn)可以仿真,且可以在教學(xué)課堂上演示。這樣增加了理論課堂的趣味性。同時(shí)設(shè)計(jì)這樣一個(gè)仿真平臺(tái)又使得學(xué)生脫離了實(shí)驗(yàn)設(shè)備的限制,能夠只要有一臺(tái)電腦就可以進(jìn)行理論或者實(shí)驗(yàn)課相關(guān)代碼的編寫調(diào)試工作。
二、proteus在教學(xué)中的應(yīng)用
Proteus是由英國(guó)Labcenter electronics公司開發(fā)的電路分析與實(shí)物仿真軟件,是一款EDA工具軟件。
該軟件包括兩個(gè)程序,ARES主要用于PCB自動(dòng)布線或仿真,ISIS主要采用原理圖的方法繪制電路并進(jìn)行相應(yīng)的仿真。由于我們采用的是虛擬仿真,所以選擇的是ISIS[1]。在嵌入式系統(tǒng)教學(xué)中引入proteus仿真軟件,可以使得教學(xué)過程更加直觀、生動(dòng)。
1.proteus在理論課教學(xué)的應(yīng)用。嵌入式系統(tǒng)理論教學(xué)主要著重講解了嵌入式系統(tǒng)各個(gè)外設(shè)以及如何通過CPU芯片控制外設(shè)。使用的開發(fā)板是cortex-m3,在設(shè)計(jì)仿真平臺(tái)之前,理論課都是將開發(fā)板帶到課堂,講解的時(shí)候演示給學(xué)生看,但是開發(fā)板大都是多層板,而且學(xué)生也無法看清電路的連接。而仿真平臺(tái)建立之后就可以讓學(xué)生直接看清楚連線。同時(shí)將代碼下載到仿真平臺(tái)上就能夠直觀的看到代碼的運(yùn)行結(jié)果。
如嵌入式系統(tǒng)課程講解的第一個(gè)實(shí)驗(yàn)就是輸入輸出,對(duì)于輸出使用的是LED燈來顯示。涉及到的寄存器是控制寄存器和方向寄存器。之前理論課講解的時(shí)候主要通過在黑板上繪制燈的兩種硬件連接方式,而對(duì)于GPIO端口的相關(guān)寄存器講解就是直接講解寄存器手冊(cè)的內(nèi)容。學(xué)生很難直觀地將兩者聯(lián)系起來。筆者設(shè)計(jì)的仿真平臺(tái)中第一個(gè)實(shí)驗(yàn)是燈的實(shí)驗(yàn)。為了從漸進(jìn)性角度讓學(xué)生理解,共設(shè)計(jì)了兩個(gè)實(shí)驗(yàn)。
首先設(shè)計(jì)的第一個(gè)燈的實(shí)驗(yàn)就是控制一盞燈的亮滅。在硬件上采取的是灌電流的形式,也就是3.3V接燈再接一個(gè)電阻,而后連接到LPC2114芯片的P0.8端口上,接下來就是考慮軟件代碼的設(shè)計(jì)。設(shè)計(jì)的代碼是先點(diǎn)亮燈而后延遲一段時(shí)間熄滅燈,延遲一段時(shí)間再點(diǎn)亮,也就是實(shí)現(xiàn)燈的亮滅控制。硬件接線完成之后接下來就是實(shí)現(xiàn)軟件控制。
燈連接到P0.8端口,所以管腳選擇寄存器PINSEL0設(shè)置為GPIO口的形式。而后設(shè)置方向寄存器IODIR0為輸出方向,之后通過設(shè)置寄存器IOSET0以及清除寄存器IOCLR0設(shè)置此端口為高電平和低電平[2,3]。
通過這個(gè)實(shí)驗(yàn)就可以在理論課上講解寄存器之后,給學(xué)生看硬件原理圖,之后演示可以看到原理圖中的燈亮滅。最后結(jié)合代碼分析這樣一個(gè)亮滅的過程,在代碼中可以看到燈的輸出需要使用的GPIO寄存器以及相關(guān)設(shè)置。在講解完例子之后還能夠讓學(xué)生課后回去嘗試換一個(gè)端口去設(shè)計(jì)一段代碼以及改變硬件連接,這樣學(xué)生就能夠在練習(xí)的過程中熟悉相關(guān)寄存器以及GPIO輸出。
關(guān)于燈的實(shí)驗(yàn)還設(shè)計(jì)了一個(gè)擴(kuò)展實(shí)驗(yàn),就是如何實(shí)現(xiàn)多個(gè)燈的控制。那么在設(shè)計(jì)的時(shí)候我們可以在硬件上使用多個(gè)燈直接連接到GPIO口上,但是這種設(shè)計(jì)的問題就是會(huì)占用多個(gè)GPIO口,為了節(jié)約資源,在硬件上添加一個(gè)38譯碼器,實(shí)現(xiàn)3根線控制7盞燈。設(shè)計(jì)中懸空一個(gè)端口的目的是當(dāng)三根線輸入是000實(shí)現(xiàn)所有燈全滅,當(dāng)然這是一個(gè)設(shè)計(jì)問題,學(xué)生完全可以按照自己的思路結(jié)合數(shù)電知識(shí)擴(kuò)展。軟件代碼由于篇幅問題不再講解。
通過燈的兩個(gè)實(shí)驗(yàn)可以看出利用proteus軟件以及keil軟件結(jié)合投影儀,就可以實(shí)現(xiàn)在理論課堂上實(shí)現(xiàn)軟件硬件以及系統(tǒng)集成內(nèi)容的教學(xué),且由于可以動(dòng)態(tài)仿真,所以更加形象,也能夠給學(xué)生一個(gè)直觀的認(rèn)識(shí)。而且通過小實(shí)驗(yàn)?zāi)軌蚋玫淖寣W(xué)生理解嵌入式系統(tǒng)軟硬件是密不可分的。通過擴(kuò)展實(shí)驗(yàn)可以給學(xué)生一個(gè)擴(kuò)展思維的方式,讓學(xué)生不拘泥于所教,還可以自己利用自己的數(shù)電、電路、軟件等相關(guān)課程的知識(shí)去設(shè)計(jì)一些小項(xiàng)目,達(dá)到了擴(kuò)展學(xué)生創(chuàng)新思維的目的。
所以在理論課的教學(xué)中結(jié)合了仿真平臺(tái)就能夠更生動(dòng)地完成嵌入式系統(tǒng)的理論課程。
2.proteus在實(shí)驗(yàn)課教學(xué)的應(yīng)用。傳統(tǒng)的實(shí)驗(yàn)課教學(xué)都是在實(shí)驗(yàn)室給定一塊開發(fā)板進(jìn)行實(shí)驗(yàn),但是由于多種原因,開發(fā)板不可能每年都會(huì)更新,因此存在所學(xué)CPU單一的問題,其次開發(fā)板的所有硬件連接都是固定的,不能夠進(jìn)行更改,因此只能給按照給定的開發(fā)板原理圖去設(shè)計(jì)實(shí)驗(yàn)。再次由于實(shí)驗(yàn)課場(chǎng)地以及時(shí)間的問題,學(xué)生除了上實(shí)驗(yàn)課時(shí)間之外,很難有機(jī)會(huì)去實(shí)踐。
在實(shí)驗(yàn)教學(xué)中引入proteus平臺(tái),就可以建立先進(jìn)的嵌入式系統(tǒng)仿真虛擬實(shí)驗(yàn)室。這樣學(xué)生就可以脫離實(shí)驗(yàn)時(shí)間地點(diǎn)的限制,只要有一臺(tái)電腦以及安裝相關(guān)軟件,就可以隨時(shí)隨地進(jìn)行自己的嵌入式系統(tǒng)設(shè)計(jì),即降低了成本,又可以提高學(xué)習(xí)的效果。Proteus可以仿真很多款A(yù)RM芯片。而且proteus軟件提供了非常多的外圍電路以及器件,如LED燈、按鍵、矩陣鍵盤、I2C、SPI、UART、AD/DA等。筆者基于此設(shè)計(jì)了一款基于LPC2114的實(shí)驗(yàn)仿真平臺(tái),整個(gè)硬件部分原理圖都已經(jīng)給定,學(xué)生可以不設(shè)計(jì)硬件,直接根據(jù)原理圖和芯片手冊(cè)進(jìn)行設(shè)計(jì)相關(guān)軟件,并且進(jìn)行測(cè)試。而針對(duì)有些尖子生就可以在學(xué)習(xí)一款CPU之后掌握了如何閱讀芯片手冊(cè),如何使用寄存器之后,就可以自己去選擇一款proteus相關(guān)的ARM芯片,而后找到相關(guān)芯片的芯片手冊(cè),就可以自己動(dòng)手去設(shè)計(jì)硬件電路軟件程序,所以對(duì)于學(xué)生的動(dòng)手能力有很大的培養(yǎng)效果。
此外對(duì)于此款軟件的學(xué)習(xí)以及嵌入式系統(tǒng)的學(xué)習(xí),學(xué)生可以在做嵌入式系統(tǒng)相關(guān)畢設(shè)的時(shí)候,先通過軟件仿真驗(yàn)證可行性,之后再去制版,避免了硬件設(shè)計(jì)錯(cuò)誤造成的成本損失。
三、總結(jié)
將proteus仿真平臺(tái)引入嵌入式系統(tǒng)的教學(xué),增加了理論課教學(xué)的直觀性以及生動(dòng)性。讓學(xué)生能夠更好地理解理論課教學(xué)的內(nèi)容,也增加了理論課教學(xué)的趣味性。而仿真軟件引入嵌入式系統(tǒng)的實(shí)驗(yàn)課教學(xué)則改變了學(xué)生在學(xué)習(xí)嵌入式系統(tǒng)實(shí)驗(yàn)課程時(shí)候離不開開發(fā)板和實(shí)驗(yàn)室的限制,能夠讓學(xué)生雖離開實(shí)驗(yàn)室仍然能夠去做嵌入式相關(guān)的開發(fā),且也能夠減少實(shí)驗(yàn)成本。讓對(duì)嵌入式感興趣的學(xué)生可以隨時(shí)隨地去編寫代碼驗(yàn)證功能。而且設(shè)計(jì)了一個(gè)仿真平臺(tái)并且提供了些例程代碼,讓大部分學(xué)生能夠在不自己設(shè)計(jì)硬件但是能夠看懂原理圖的基礎(chǔ)上進(jìn)行嵌入式系統(tǒng)相關(guān)外設(shè)的學(xué)習(xí)。而針對(duì)特別優(yōu)秀的學(xué)生,則可以自己選擇proteus庫提供的芯片,自己設(shè)計(jì)硬件電路和軟件代碼進(jìn)行自己的系統(tǒng)設(shè)計(jì)。因此此款軟件引入實(shí)驗(yàn)課教學(xué)不僅節(jié)約了成本,提高了學(xué)生學(xué)習(xí)興趣,還有利于學(xué)生創(chuàng)新性的培養(yǎng)。
總之,將proteus仿真軟件引入嵌入式系統(tǒng)的教學(xué)可以將理論實(shí)踐更好的結(jié)合,提高了學(xué)生學(xué)習(xí)課程的積極性,此外還有利于學(xué)生創(chuàng)新性的培養(yǎng)。
參考文獻(xiàn):
[1]張?zhí)m紅,陸廣平.基于Proteus仿真的單片機(jī)教學(xué)的研究與實(shí)踐[J].中國(guó)電力教育,2014,(5):76-78.
[2]LPC2114_2124_2212_2214-02-user_cn中文手冊(cè).
[3]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京航空航天大學(xué)出版社,2005.