陳琛
(安徽職業(yè)技術(shù)學(xué)院,安徽 合肥 230012)
嵌入式系統(tǒng)課程是物聯(lián)網(wǎng)技術(shù)專業(yè)的一門專業(yè)核心課。隨著PC時代及智能時代的到來,以高速度、高可靠、低功耗為特征的嵌入式系統(tǒng)的應(yīng)用日益廣泛和深入[1],嵌入式系統(tǒng)設(shè)計課程在物聯(lián)網(wǎng)應(yīng)用技術(shù)課程體系中的地位愈發(fā)重要,嵌入式系統(tǒng)課程的教學(xué)工作極為迫切。如何通過教學(xué)有效提高學(xué)生的嵌入式工程實踐能力,適應(yīng)嵌入式行業(yè)要求,是嵌入式課程教學(xué)中面臨的主要問題[2]。作為高職院校,“1+X”證書模式已逐漸成熟,學(xué)校已建立多樣的考證平臺。在這種環(huán)境下,利用學(xué)校已有的實驗平臺,基于“1+X”證書平臺嵌入式系統(tǒng)課程教學(xué)方法,具有其獨有特色。一是以課證融通為出發(fā)點,對接行業(yè)發(fā)展,落實“1+X”證書制度,圍繞課證融通需要,建立模塊化課程體系。二是以職業(yè)需求和能力為導(dǎo)向,對接崗位需求和工作過程,對傳統(tǒng)教學(xué)方法和教學(xué)體系進行創(chuàng)新,利用平臺“在學(xué)中做,在做中學(xué)”的優(yōu)勢,開展理論和實踐教學(xué)[3]。這不僅合理利用學(xué)??甲C平臺資源,提供教學(xué)質(zhì)量,同時利于學(xué)生獲取相關(guān)職業(yè)技能等級證書,實現(xiàn)“1+X”證書制度需求。
“1+X”傳感網(wǎng)應(yīng)用開發(fā)平臺是由北京新大陸時代教育科技有限公司提供,該平臺硬件方面提供了stm32的外設(shè)齊全的開發(fā)板主控模塊M3,如圖1所示,便于學(xué)生方便完成芯片性能測試、程序功能驗證以及想法創(chuàng)意的快速應(yīng)用。軟件開發(fā)發(fā)面,為了減少開發(fā)者工作量,提高程序開發(fā)效率,應(yīng)用ST公司軟件開發(fā)工具stm32CubeMXTM和MDK-ARM集成開發(fā)環(huán)境組合開發(fā)。stm32CubeMXTM由PC端的圖形化配置與代碼生成工具stm32CubeMX、嵌入式軟件庫函數(shù)(HAL庫與LL庫)以及一系列的中間件集合(RTOS、USB庫、文件系統(tǒng)、TCP/IP協(xié)議棧和圖形庫等)構(gòu)成,可視化地進行芯片資源和引腳配置,然后生成項目源程序,導(dǎo)入MDK-ARM中進行編譯、調(diào)試和下載。
圖1 M3主控模塊
基于“1+X”傳感網(wǎng)應(yīng)用開發(fā)平臺的教學(xué)方法是一種項目式教學(xué),以典型項目為主題,驅(qū)動課程教學(xué)。每次課程通過項目引入,通過不同的項目了解嵌入式系統(tǒng)的不同部分,主要有輸入輸出口、時鐘系統(tǒng)、定時器計數(shù)器系統(tǒng)、中斷系統(tǒng)、串行通信系統(tǒng)、模數(shù)轉(zhuǎn)換系統(tǒng)等。由淺到深,各項目之間前后關(guān)聯(lián),課程最后一個項目結(jié)束時,整個嵌入式系統(tǒng)結(jié)構(gòu)及開發(fā)過程便會了然于胸。本文中我們以“串行通信控制LED流水燈應(yīng)用開發(fā)”教學(xué)項目為例,介紹基于“1+X”傳感網(wǎng)應(yīng)用開發(fā)平臺的教學(xué)方法。該項目要求設(shè)計一個LED流水燈系統(tǒng),該系統(tǒng)與上位機之間通過串行通信接口相連。上位機可發(fā)送命令對LED流水燈系統(tǒng)進行控制。
通過對項目分析,該項目主要涉及的知識點有:
(1)通用輸入輸出口,前期項目已學(xué)習(xí)流水燈的實現(xiàn)辦法,本項目中直接運用即可。
(2)中斷系統(tǒng),前期項目已學(xué)習(xí)。但本期項目涉及新的中斷源——串口中斷,需要進一步學(xué)習(xí)。
(3)串口知識,本期項目新增知識點,需要著重講解。
通過以上項目分析,我們對本項目的知識系統(tǒng)進行了剖析,在課程教學(xué)中逐個擊破即可,可以是回顧的方式,可以是新知識點講解的方式。并且項目的實施過程,會反復(fù)聯(lián)系前面的知識點,引導(dǎo)學(xué)生將嵌入式系統(tǒng)作為整體來考量。
課程實施過程是教學(xué)的關(guān)鍵,傳道授業(yè)解惑一樣不能少,還要加上實操演示和學(xué)生操作反饋。
理論知識是支撐每次課程的核心,理論清楚了,才能更好地實現(xiàn)項目。課程實施過程中,理論知識的講解為重中之重。
本項目理論部分經(jīng)過分析整理,首先講述串口的來源、串口的用途及其重要性;串口相關(guān)的概念,如數(shù)據(jù)幀、波特率等。一般這些知識會在一些先導(dǎo)的課程中已有所學(xué)習(xí)。
其次是串口的運用、串口的框架、串口的發(fā)送(打?。┖徒邮詹糠帧4诘陌l(fā)送過程在程序設(shè)計的調(diào)試階段可發(fā)揮重要作用。如:將開發(fā)板與PC機通過串行通信接口相連后,可將調(diào)試信息“打印”到串口調(diào)試助手等工具中,開發(fā)者可借助這些信息了解程序運行情況。串口命令的接收,接收過程是一個被動的過程,必須用到中斷系統(tǒng),進而需講解串口中斷類型及用法。
最后拓展串口的操作函數(shù),串口使用要用到的函數(shù)庫。為了讓串口內(nèi)容便利地打印到窗口助手中,還需要學(xué)習(xí)函數(shù)重定向概念,用戶能定義自己的C語言庫函數(shù),連接器在連接時自動使用這些新的功能函數(shù),使用重定向方便應(yīng)用標(biāo)準(zhǔn)庫函數(shù)中的printf函數(shù)進行打印。同時講授學(xué)習(xí)串口發(fā)送和接收的相關(guān)操作函數(shù)。
流水燈部分,運用開發(fā)板中的LED0-LED7實現(xiàn)流水效果,如圖2所示。
圖2 流水燈硬件電路
上位機采用PC機,利用串口助手來模擬。其中的串口號、波特率、檢驗位、數(shù)據(jù)位按系統(tǒng)情況及相關(guān)設(shè)置進行配置,如圖3所示。
圖3 串口助手窗口
根據(jù)項目要求及系統(tǒng)設(shè)計方案,這里給出項目參考流程圖,如圖4所示。主函數(shù)中判斷上位機是否有命令發(fā)送是關(guān)鍵部分,會用到串口中斷。串口接收到上位機的命令會產(chǎn)生中斷請求,完成串口中斷處理函數(shù),實現(xiàn)命令的識別。流程圖中stm32初始化步驟采用STM32CubeMX以圖形界面的方式進行,主要配置引腳功能、時鐘系統(tǒng)、中斷系統(tǒng),具體配置如圖5所示。配置完成后直接生成MDK-ARM的工程文件,隨后在工程文件中進行個性化程序編寫,完成項目中命令識別和流水燈顯示效果程序的編寫。最后進行編譯、調(diào)試和下載,觀察實驗現(xiàn)象。
圖4 項目參考流程圖
圖5 STM32CubeMX初始化配置
本項目主要引入串口的知識,為了讓學(xué)生更好地理解串口,學(xué)生操作部分分為兩個實驗:一是串口的發(fā)送打??;二是串口的命令接收。對此可以設(shè)計簡單的兩個實驗項目。實操一:通過串口將學(xué)號打印到串口助手,這個過程中,學(xué)生采用STM32CubeMX實現(xiàn)串口初始化設(shè)置,生成MDK-ARM工程文件,主函數(shù)中調(diào)用串口打印操作函數(shù)實現(xiàn)串口打印。實操二:通過串口準(zhǔn)確接收上位機(串口助手)發(fā)送的命令并進行反饋,這個過程中,學(xué)生采用STM32CubeMX實現(xiàn)串口初始化設(shè)置,設(shè)置串口中斷,生成MDK-ARM工程文件,編寫串口接收中斷處理函數(shù),實現(xiàn)串口命令的接收和反饋。通過這兩個實驗鞏固串口的發(fā)送和接收的實現(xiàn)。在這兩個實操完成的基礎(chǔ)上,最后綜合完成上位機發(fā)送命令對LED流水燈系統(tǒng)進行控制的項目,完成課堂完整教學(xué)。
課程教學(xué)為一個學(xué)期,共18周,每周四課時。每周課時為項目式教學(xué),由于教學(xué)項目均為綜合性應(yīng)用項目,每次項目的完成都是一個綜合性的應(yīng)用實現(xiàn),為了提高學(xué)生的積極性,讓學(xué)生在探討和操作過程中更好地掌握理論知識和實操能力。課程教學(xué)兩人為一組,在理論教學(xué)過程中共同理解理論知識,在理論講解后的學(xué)生操作過程中,一組人員協(xié)作完成實驗項目[4]。實驗項目完成后,提交完整的項目包,包含STM32CubeMX自身項目和生成的MDK-ARM工程文件,老師對項目實現(xiàn)的完整性和準(zhǔn)確性進行打分(百分制)。課后會在智能化教學(xué)平臺發(fā)布拓展項目練習(xí),供學(xué)生課后思考及課余時間實現(xiàn),實現(xiàn)后提交打分(百分制)。綜合考核成績=平時上課完成分×60%+課后實驗完成分×40%,這一項分數(shù)作為最后期末考核分的重要來源。
本課程依托“1+X”傳感網(wǎng)應(yīng)用開發(fā)平臺,通過理論講解與平臺實操結(jié)合,將理論和實踐結(jié)合在一起,更能激起學(xué)生學(xué)習(xí)的欲望。學(xué)生通過實驗平臺上手操作,實時查看實驗現(xiàn)象,及時解決實驗中發(fā)現(xiàn)的問題,有效提高學(xué)生的嵌入式工程實踐能力。