梁永恩
(廣東科貿(mào)職業(yè)學院信息與自動化學院,廣州510430)
嵌入式技術(shù)課程是高職院校電子信息類的一門專業(yè)課程,主要講授嵌入式系統(tǒng)原理及其應用。目前,嵌入式技術(shù)主控芯片大多以32 位ARM 核單片機為主。其中,STM32 系列處理器是意法半導體公司推出的基于ARM Cortex-M 內(nèi)核32 位微處理器,其特點是高性能、低成本、低功耗、實時性強,STM32 產(chǎn)品廣泛應用于工業(yè)控制、消費電子、物聯(lián)網(wǎng)、通訊設備、醫(yī)療服務、安防監(jiān)控等應用領域。為了適應時代需要,當前各高職院校電子信息類專業(yè)在原有51 單片機技術(shù)課程的前提下,紛紛開展了基于STM32 系列處理器的嵌入式技術(shù)課程[1-2]。
嵌入式技術(shù)課程一般是在安排在8 位單片機技術(shù)課程后開設。與8 位單片機相比,STM32 芯片集成度高,功能強大,外圍接口豐富,線路復雜,不適于用手工制作開發(fā)板,故教學平臺多以現(xiàn)有廠家提供的嵌入式實驗箱或嵌入式開發(fā)板為主。
當前國內(nèi)高校的STM32 嵌入式技術(shù)主要講授STM32 處理器的工作原理及外設應用,教學知識點包括建立工程模板、通用輸入輸出接口(GPIO)、外部中斷、串口通信、DMA 控制器、定時器、模數(shù)轉(zhuǎn)換器等。開設基礎實驗內(nèi)容涉及GPIO 輸入輸出、串口、中斷、定時器、DMA、ADC、DAC 等。依托的實驗硬件以開發(fā)板為主,采用寄存器開發(fā)或庫函數(shù)開發(fā)實現(xiàn)具體應用。ST 公司提供了基于Cortex 微控制器軟件接口標準(CMSIS)的官方開發(fā)固件庫,為接口外設和實時操作系統(tǒng)提供了簡單的處理器軟件接口,屏蔽了硬件差異。STM32 有數(shù)百個寄存器,用戶想很快掌握每一個寄存器的用法是十分困難的。因此,在實際的實驗教學中大都采用基于STM 固件庫函數(shù)的開發(fā)方式,用戶不需要知道操作的是哪一個寄存器,只需要指導調(diào)用哪些函數(shù)即可,大大提高了開發(fā)效率。
當前的教學中主要存在兩個問題:
(1)由于資金和教學資源的投入限制以及受實驗場地、實驗設備數(shù)量、實驗耗材費用、實驗時間、師資力量、實驗安全等問題的影響而使得實驗內(nèi)容上比較單一,以演示性、驗證性為主,學生在實踐教學階段動手能力不足,難以滿足培養(yǎng)高素質(zhì)技能型人才的需求。
(2)STM32 單片機教學理論復雜,組成架構(gòu)理解起來較為抽象,另外使用ST 固件庫開發(fā)的方式學生需要面臨復雜的STM32 初始化配置,形成相應的模板才能進行后續(xù)實驗開發(fā),影響學生的開發(fā)效率。
基于上述問題,本文討論了一種基于Proteus+STM32CubeMX +MDK-ARM 的STM32 嵌入式實驗平臺設計方案,設置虛實結(jié)合的開放性實驗教學,使用STM32CubeMX 作為圖形化配置工具,充分利用各項教學資源,開展一體化項目任務驅(qū)動教學,切實培養(yǎng)學生的綜合技能與創(chuàng)造能力。
使用仿真軟件Proteus 8.7[3-4]、圖形化配置工具STM32CubeMX 5.3[5]及集成開發(fā)環(huán)境MDK-ARM 5.25搭建虛擬實驗平臺。
使用英國Lab Center Electronics 公司出版的EDA工具軟件Proteus 8.7 作為仿真軟件,該版本支持8051、HC11、AVR、ARM7、8086、Cortex 和DSP 等系列處理器,支持IAR、Keil 和MATLAB 等多種編譯器[6]。實驗芯片選擇STM32F103 系列,內(nèi)核為ARM Contex-M3。
STM32CubeMX 是ST 意法半導體近幾年來大力推薦的STM32 芯片圖形化配置工具,允許用戶使用圖形化向?qū)蒀 初始化代碼,可以大大減輕開發(fā)工作,時間和費用。它具有如下特性:直觀的選擇MCU 型號,可指定系列、封裝、外設數(shù)量等條件;微控制器圖形化配置;自動處理引腳沖突;動態(tài)設置時鐘樹,生成系統(tǒng)時鐘配置代碼;可以動態(tài)設置外圍和中間件模式和初始化;C 代碼工程生成器覆蓋了STM32 微控制器初始化編譯軟件,如IAR、Keil、GCC。
MDK-ARM 是美國Keil 軟件公司出品的支持ARM 微控制器的一款集成開發(fā)環(huán)境。它包含了工業(yè)標準的Keil C 編譯器、宏匯編器、調(diào)試器、實時內(nèi)核等組件。支持Cortex-M、Cortex-R4、ARM7 和ARM9 系列器件。用戶可以在修改STM32CubeMX 生成的項目代碼,可使用Proteus 聯(lián)合調(diào)試虛擬實驗項目或使用ST-Link 在開發(fā)板上調(diào)試程序。
硬件平臺包括STM32 最小系統(tǒng)開發(fā)板、ST-LINK下載器、面包板、CH340G USB 轉(zhuǎn)串口模塊、LED、傳感器等。STM32 開發(fā)板芯片型號為STM32F103C8T6,程序存儲器容量64KB,頻率72MHz。利用面包板實現(xiàn)外圍接口電路,可以實現(xiàn)更多功能,激發(fā)學生的學習興趣。
課程內(nèi)容選取以簡單夠用為原則,以項目為主線,每個項目包含若干個具體的典型任務,實驗內(nèi)容虛實結(jié)合,把知識和技能的學習融入到任務完成的過程中。項目如表1 所示。
表1 嵌入式技術(shù)項目
(1)仿真設計
在教學實踐中,先引入Proteus 進行仿真電路設計。以定時器應用的呼吸燈例,要求學生能夠?qū)崿F(xiàn)LED 亮度隨時間周期變化,效果類似人的呼吸。按照課程標準的要求,以項目任務的形式布置下去,項目布置之前,教師要將定時器工作原理結(jié)構(gòu)、定時器寄存器、PWM 調(diào)制等相關(guān)知識點及仿真參考示例進行講解,循序漸進引導學生進行項目設計,并將課件、視頻等材料上傳至學習通App 中,學生可以利用課外時間自行下載和自主學習。另外,教師要把學生重點關(guān)注的問題和共性問題如STM32CubeMX 定時器配置放在課堂重點講解和分析。值得一提的是,創(chuàng)建工程時沒有使用標準外設固件庫,而是使用STM32CubeMX 創(chuàng)建C 語言工程,在圖形界面進行微處理器的選擇和配置MCU 引腳、時鐘樹及外設,然后在MDK-ARM 打開該工程中添加控制代碼,編譯生成HEX 文件,將該文件加載到仿真電路的MCU 中,調(diào)試仿真電路和程序,直至成功。使用STM32CubeMX 使MCU 的配置工作變得直觀,大大降低了學生的開發(fā)難度。在仿真設計中,學生的實現(xiàn)方法各異,有的用模擬方式,有的用定時器生成PWM 波的方式。通過仿真手段可以方便地對實驗模型、參數(shù)進行修改,實現(xiàn)“可見即可得”的效果,提高學生的學習興趣和積極性。
(2)硬件設計
根據(jù)仿真結(jié)果,進行實物設計。根據(jù)電路設計圖,在STM32 最小系統(tǒng)開發(fā)板上通過面包板擴展外圍電路,使用ST-LINK 下載器下載HEX 文件,在MDKARM 環(huán)境中調(diào)試程序直至成功。有了仿真驗證的基礎,學生的硬件設計成功率很高。以呼吸燈為例,學生需用1kΩ電阻串聯(lián)LED 燈的正極,再用杜邦將MCU的控制引腳、電源引腳與面包板對應的引腳進行連接即可。通過布置思考題的方式引導學有余力的學生深入學習,例如在實現(xiàn)呼吸燈后,通過按鍵控制燈的變化周期。需要注意的是在配置項目時要將STM32Cube-MX 中的Debug Serial Wire 選項選中,否則不能使用ST-LINK 下載程序。通過親手搭建電路和設計調(diào)試軟件,提高了學生的動手能力,鍛煉了學生在實際中發(fā)現(xiàn)問題、分析問題和解決問題的能力。從學生仿真和實物實現(xiàn)來看,較好地達到了預期效果。
實施過程性考核,把仿真設計和實物制作納入課程考核方案中。綜合考勤成績占20%,從出勤率、積極互動和課堂問答三方面進行考核。平時項目作品占50%,該部分又分為仿真設計環(huán)節(jié)和實物制作環(huán)節(jié),具體分數(shù)占比依照實際情況而定。綜合項目設計占30%,根據(jù)項目完成情況以及答辯情況進行綜合評價。此方案強化了平時項目的過程考核,一方面通過成績導向使學生更加重視平時的項目實踐,另一方面教師可以更深入掌握的學生的學習情況,便于持續(xù)改進教學方法。
本課程通過虛實融合的方式,將課程從課上延伸到課下,取得了良好的教學效果。引入STM32CubeMX圖形化配置方式和Proteus 仿真設計使教學更加直觀、形象,大大提高了學生對嵌入式技術(shù)課程的學習興趣,提升了學生的動手能力,有效降低了實驗設備的損壞率和耗材費用。