羅清龍,馮 敏,李清濤
(聊城大學 物理科學與信息工程學院,山東 聊城 252000)
嵌入式系統指用于控制、監視或者輔助操作機器和設備的裝置,它具有軟硬件可裁剪的特點,可以滿足應用系統對功能、可靠性、成本、體積、功耗等多種約束[1-3]。嵌入式技術作為計算機科學技術、電子信息工程、自動化等專業的重要專業課程被引入教學體系,其講授內容依次經歷著從8位到16位、32位、64位MCU的提升 演 進[4-6]。NXP、TI、Samsung、Atmel、ST、Intel等大公司也相繼推出自己的嵌入式平臺,給嵌入式實驗教學提供了豐富的選擇。
目前,國內嵌入式系統教學大多選擇基于ARM核的開發平臺,其中又以ST的32位產品為主。這是由于STM32產品廣泛應用于工業控制、消費電子、物聯網、通訊設備、醫療服務、安防監控等應用領域,其優異的性能進一步推動了生活和產業智能化的發展[7-8]。截至2016年10月,STM32全球出貨量已超過20億顆[9]。可以預見隨著物聯網和人工智能的迅猛發展,嵌入式教學將迎來新的契機和挑戰。
當前國內高校的嵌入式系統實驗教學大都定位于32位MCU。以采用ARM內核的STM32系列產品為例,開設基礎實驗內容涉及GPIO輸入輸出實驗、串口實驗、中斷實驗、定時器實驗、I2C接口實驗、SPI實驗、CAN控制器實驗等[10]。依托的實驗硬件以開發板為主,采用寄存器開發或庫函數開發實現具體應用,表1為兩種開發形式的優缺點對比。

表1 寄存器開發與庫函數開發優缺點對比
通過對比分析可知,庫函數開發采用分層的思想,實際是基于CMSIS標準新建了與芯片生產商無關的硬件抽象層,可以為接口外設、實時操作系統提供簡單的處理器軟件接口,屏蔽了硬件差異,這對軟件的移植有極大的好處。STM32固件庫就是按照CMSIS標準建立的。
鑒于以上情況,在實際的實驗教學中大都采用基于庫函數的開發方式。存在的問題是學生需要面臨復雜的STM32初始化配置,形成相應的模板才能進行后續實驗開發。學生普遍反映兩個問題:第一,配置模板的過程比較繁瑣;第二,實驗中時鐘和引腳的配置不夠直觀。筆者聯合使用ST公司2014年推出的STM32CubeMX和ARM公司推出的Keil Vision解決了上述問題。
以STM32F103為例,對比改革前后嵌入式實驗教學流程的差異,見圖1。

圖1 嵌入式實驗教學流程對比圖
通過對比可見,基于STM32CubeMX的實驗教學流程較傳統基于標準庫函數的開發模式更簡潔,效率更高。
通過經典的流水燈實驗,可以詳細說明基于STM32CubeMX的實驗教學實施方案。
圖2給出利用STM32CubeMX新建工程,選擇芯片型號,通過圖形化下拉菜單初步設置引腳類型;圖3給出設置時鐘、引腳具體設置、生成Keil文件的過程。可以看到,通過圖形化設置的方法,大大簡化了開發設置流程。
利用Keil μVision打開由STM32CubeMX輔助生成的工程文件,然后進行用戶程序的編寫,見圖4。

圖2 STM32CubeMX圖形化設置


圖3 利用STM32CubeMX進行初始化設置
為評價實踐效果,筆者選取電子信息工程專業大三的30名學生,分成兩組進行教學實驗,分別測試“流水燈實驗”(簡單實驗)、“PWM實驗”(較復雜實驗)。A組利用基于STM32CubeMX的實驗方法,B組利用基于標準庫函數的實驗方法。實驗情況見圖5,其中圖5(a)給出簡單實驗的進展情況,在2小時實驗課程內,采用基于STM32CubeMX的實驗方法的A組學生較采用基于標準庫函數方法的B組學生較快、較好地完成了實驗。這種領先優勢隨著實驗難度的加大愈發明顯,見圖5(b)。考慮到個體差異,A、B組互換實驗方法重新進行了實驗,得到了類似結果。
通過對學生實驗主觀感受的反饋可以發現:學生普遍認為基于STM32CubeMX的方法在初始化配置時更加直觀、形象,步驟更加清晰、明確。配置完成后在用戶編程階段,編程更加方便、具體。調試成功率也大大提高。
將STM32CubeMX引入嵌入式實驗教學后,學生實驗用時普遍縮短了13%~18%。學生反映實驗更加直觀、形象。通過基于STM32CubeMX嵌入式實驗教學改革實踐,大大提高了實驗教學的效率和學生對嵌入式系統的學習興趣,有助于學生把握當前嵌入式系統發展趨勢,提升實驗動手能力,取得實驗教學的良好效果。
[1]張凱龍. 從架構、原理到設計的多維融合嵌入式系統知識體系構建[J]. 計算機教育, 2017(4): 98-103.
[2]艾紅, 陳雯柏. 微處理器系列課程整體優化方案研究[J]. 實驗技術與管理, 2016, 33(1): 169-172.
[3]鄢秋榮, 王玉皞, 王艷慶, 等. 面向軟硬件協同設計的嵌入式系統教學改革與實踐[J]. 實驗室研究與探索, 2016, 35(6): 190-193.
[4]胡青, 余嘉, 蘇玉剛. 嵌入式課程的理論教學改革與實踐[J]. 計算機教育, 2017(6): 131-134.
[5]張林, 程文青,羅杰,等. 美國高校電氣工程專業本科培養計劃淺析[J]. 電氣電子教學學報, 2014, 36(3): 6-10.
[6]藺智挺. 基于虛擬仿真實驗的模擬集成電路實驗教學[J]. 實驗技術與管理, 2016, 33(1): 122-126.
[7]陳晨, 邱春玲, 李肅義, 等.“學生主體—教師主導”的嵌入式系統教學[J]. 計算機教育, 2017(1): 136-138.
[8]謝盈, 丁旭陽, 陳建英, 等. 嵌入式系統與設計在物聯網工程專業的教學方法探索[J]. 教育教學論壇, 2016(43): 131-132.
[9]EEFOCUS. STM32累計出貨20億顆, 鎖定物聯網市場再出新系列[EB/OL]. [2017-07-11]. www.eefocus.com/mcu-dsp/371172.
[10]陳德富, 何通能, 張洪偉. 學術興趣驅動的嵌入式系統教學[J]電氣電子教學學報, 2016, 38(1): 93-94.