羅清龍,馮 敏,李清濤
(聊城大學(xué) 物理科學(xué)與信息工程學(xué)院,山東 聊城 252000)
嵌入式系統(tǒng)指用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置,它具有軟硬件可裁剪的特點(diǎn),可以滿(mǎn)足應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等多種約束[1-3]。嵌入式技術(shù)作為計(jì)算機(jī)科學(xué)技術(shù)、電子信息工程、自動(dòng)化等專(zhuān)業(yè)的重要專(zhuān)業(yè)課程被引入教學(xué)體系,其講授內(nèi)容依次經(jīng)歷著從8位到16位、32位、64位MCU的提升 演 進(jìn)[4-6]。NXP、TI、Samsung、Atmel、ST、Intel等大公司也相繼推出自己的嵌入式平臺(tái),給嵌入式實(shí)驗(yàn)教學(xué)提供了豐富的選擇。
目前,國(guó)內(nèi)嵌入式系統(tǒng)教學(xué)大多選擇基于ARM核的開(kāi)發(fā)平臺(tái),其中又以ST的32位產(chǎn)品為主。這是由于STM32產(chǎn)品廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、物聯(lián)網(wǎng)、通訊設(shè)備、醫(yī)療服務(wù)、安防監(jiān)控等應(yīng)用領(lǐng)域,其優(yōu)異的性能進(jìn)一步推動(dòng)了生活和產(chǎn)業(yè)智能化的發(fā)展[7-8]。截至2016年10月,STM32全球出貨量已超過(guò)20億顆[9]??梢灶A(yù)見(jiàn)隨著物聯(lián)網(wǎng)和人工智能的迅猛發(fā)展,嵌入式教學(xué)將迎來(lái)新的契機(jī)和挑戰(zhàn)。
當(dāng)前國(guó)內(nèi)高校的嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)大都定位于32位MCU。以采用ARM內(nèi)核的STM32系列產(chǎn)品為例,開(kāi)設(shè)基礎(chǔ)實(shí)驗(yàn)內(nèi)容涉及GPIO輸入輸出實(shí)驗(yàn)、串口實(shí)驗(yàn)、中斷實(shí)驗(yàn)、定時(shí)器實(shí)驗(yàn)、I2C接口實(shí)驗(yàn)、SPI實(shí)驗(yàn)、CAN控制器實(shí)驗(yàn)等[10]。依托的實(shí)驗(yàn)硬件以開(kāi)發(fā)板為主,采用寄存器開(kāi)發(fā)或庫(kù)函數(shù)開(kāi)發(fā)實(shí)現(xiàn)具體應(yīng)用,表1為兩種開(kāi)發(fā)形式的優(yōu)缺點(diǎn)對(duì)比。
表1 寄存器開(kāi)發(fā)與庫(kù)函數(shù)開(kāi)發(fā)優(yōu)缺點(diǎn)對(duì)比
通過(guò)對(duì)比分析可知,庫(kù)函數(shù)開(kāi)發(fā)采用分層的思想,實(shí)際是基于CMSIS標(biāo)準(zhǔn)新建了與芯片生產(chǎn)商無(wú)關(guān)的硬件抽象層,可以為接口外設(shè)、實(shí)時(shí)操作系統(tǒng)提供簡(jiǎn)單的處理器軟件接口,屏蔽了硬件差異,這對(duì)軟件的移植有極大的好處。STM32固件庫(kù)就是按照CMSIS標(biāo)準(zhǔn)建立的。
鑒于以上情況,在實(shí)際的實(shí)驗(yàn)教學(xué)中大都采用基于庫(kù)函數(shù)的開(kāi)發(fā)方式。存在的問(wèn)題是學(xué)生需要面臨復(fù)雜的STM32初始化配置,形成相應(yīng)的模板才能進(jìn)行后續(xù)實(shí)驗(yàn)開(kāi)發(fā)。學(xué)生普遍反映兩個(gè)問(wèn)題:第一,配置模板的過(guò)程比較繁瑣;第二,實(shí)驗(yàn)中時(shí)鐘和引腳的配置不夠直觀。筆者聯(lián)合使用ST公司2014年推出的STM32CubeMX和ARM公司推出的Keil Vision解決了上述問(wèn)題。
以STM32F103為例,對(duì)比改革前后嵌入式實(shí)驗(yàn)教學(xué)流程的差異,見(jiàn)圖1。
圖1 嵌入式實(shí)驗(yàn)教學(xué)流程對(duì)比圖
通過(guò)對(duì)比可見(jiàn),基于STM32CubeMX的實(shí)驗(yàn)教學(xué)流程較傳統(tǒng)基于標(biāo)準(zhǔn)庫(kù)函數(shù)的開(kāi)發(fā)模式更簡(jiǎn)潔,效率更高。
通過(guò)經(jīng)典的流水燈實(shí)驗(yàn),可以詳細(xì)說(shuō)明基于STM32CubeMX的實(shí)驗(yàn)教學(xué)實(shí)施方案。
圖2給出利用STM32CubeMX新建工程,選擇芯片型號(hào),通過(guò)圖形化下拉菜單初步設(shè)置引腳類(lèi)型;圖3給出設(shè)置時(shí)鐘、引腳具體設(shè)置、生成Keil文件的過(guò)程??梢钥吹?,通過(guò)圖形化設(shè)置的方法,大大簡(jiǎn)化了開(kāi)發(fā)設(shè)置流程。
利用Keil μVision打開(kāi)由STM32CubeMX輔助生成的工程文件,然后進(jìn)行用戶(hù)程序的編寫(xiě),見(jiàn)圖4。
圖2 STM32CubeMX圖形化設(shè)置
圖3 利用STM32CubeMX進(jìn)行初始化設(shè)置
為評(píng)價(jià)實(shí)踐效果,筆者選取電子信息工程專(zhuān)業(yè)大三的30名學(xué)生,分成兩組進(jìn)行教學(xué)實(shí)驗(yàn),分別測(cè)試“流水燈實(shí)驗(yàn)”(簡(jiǎn)單實(shí)驗(yàn))、“PWM實(shí)驗(yàn)”(較復(fù)雜實(shí)驗(yàn))。A組利用基于STM32CubeMX的實(shí)驗(yàn)方法,B組利用基于標(biāo)準(zhǔn)庫(kù)函數(shù)的實(shí)驗(yàn)方法。實(shí)驗(yàn)情況見(jiàn)圖5,其中圖5(a)給出簡(jiǎn)單實(shí)驗(yàn)的進(jìn)展情況,在2小時(shí)實(shí)驗(yàn)課程內(nèi),采用基于STM32CubeMX的實(shí)驗(yàn)方法的A組學(xué)生較采用基于標(biāo)準(zhǔn)庫(kù)函數(shù)方法的B組學(xué)生較快、較好地完成了實(shí)驗(yàn)。這種領(lǐng)先優(yōu)勢(shì)隨著實(shí)驗(yàn)難度的加大愈發(fā)明顯,見(jiàn)圖5(b)??紤]到個(gè)體差異,A、B組互換實(shí)驗(yàn)方法重新進(jìn)行了實(shí)驗(yàn),得到了類(lèi)似結(jié)果。
通過(guò)對(duì)學(xué)生實(shí)驗(yàn)主觀感受的反饋可以發(fā)現(xiàn):學(xué)生普遍認(rèn)為基于STM32CubeMX的方法在初始化配置時(shí)更加直觀、形象,步驟更加清晰、明確。配置完成后在用戶(hù)編程階段,編程更加方便、具體。調(diào)試成功率也大大提高。
將STM32CubeMX引入嵌入式實(shí)驗(yàn)教學(xué)后,學(xué)生實(shí)驗(yàn)用時(shí)普遍縮短了13%~18%。學(xué)生反映實(shí)驗(yàn)更加直觀、形象。通過(guò)基于STM32CubeMX嵌入式實(shí)驗(yàn)教學(xué)改革實(shí)踐,大大提高了實(shí)驗(yàn)教學(xué)的效率和學(xué)生對(duì)嵌入式系統(tǒng)的學(xué)習(xí)興趣,有助于學(xué)生把握當(dāng)前嵌入式系統(tǒng)發(fā)展趨勢(shì),提升實(shí)驗(yàn)動(dòng)手能力,取得實(shí)驗(yàn)教學(xué)的良好效果。
[1]張凱龍. 從架構(gòu)、原理到設(shè)計(jì)的多維融合嵌入式系統(tǒng)知識(shí)體系構(gòu)建[J]. 計(jì)算機(jī)教育, 2017(4): 98-103.
[2]艾紅, 陳雯柏. 微處理器系列課程整體優(yōu)化方案研究[J]. 實(shí)驗(yàn)技術(shù)與管理, 2016, 33(1): 169-172.
[3]鄢秋榮, 王玉皞, 王艷慶, 等. 面向軟硬件協(xié)同設(shè)計(jì)的嵌入式系統(tǒng)教學(xué)改革與實(shí)踐[J]. 實(shí)驗(yàn)室研究與探索, 2016, 35(6): 190-193.
[4]胡青, 余嘉, 蘇玉剛. 嵌入式課程的理論教學(xué)改革與實(shí)踐[J]. 計(jì)算機(jī)教育, 2017(6): 131-134.
[5]張林, 程文青,羅杰,等. 美國(guó)高校電氣工程專(zhuān)業(yè)本科培養(yǎng)計(jì)劃淺析[J]. 電氣電子教學(xué)學(xué)報(bào), 2014, 36(3): 6-10.
[6]藺智挺. 基于虛擬仿真實(shí)驗(yàn)的模擬集成電路實(shí)驗(yàn)教學(xué)[J]. 實(shí)驗(yàn)技術(shù)與管理, 2016, 33(1): 122-126.
[7]陳晨, 邱春玲, 李肅義, 等.“學(xué)生主體—教師主導(dǎo)”的嵌入式系統(tǒng)教學(xué)[J]. 計(jì)算機(jī)教育, 2017(1): 136-138.
[8]謝盈, 丁旭陽(yáng), 陳建英, 等. 嵌入式系統(tǒng)與設(shè)計(jì)在物聯(lián)網(wǎng)工程專(zhuān)業(yè)的教學(xué)方法探索[J]. 教育教學(xué)論壇, 2016(43): 131-132.
[9]EEFOCUS. STM32累計(jì)出貨20億顆, 鎖定物聯(lián)網(wǎng)市場(chǎng)再出新系列[EB/OL]. [2017-07-11]. www.eefocus.com/mcu-dsp/371172.
[10]陳德富, 何通能, 張洪偉. 學(xué)術(shù)興趣驅(qū)動(dòng)的嵌入式系統(tǒng)教學(xué)[J]電氣電子教學(xué)學(xué)報(bào), 2016, 38(1): 93-94.