徐 磊,屈 磊,劉 瑜
(安徽大學(xué)電子信息工程學(xué)院,安徽合肥 230601)
嵌入式系統(tǒng)課程設(shè)計是高校硬件類的綜合性應(yīng)用訓(xùn)練課程。如何提高學(xué)生的嵌入式工程實踐能力和設(shè)計能力,適應(yīng)嵌入式行業(yè)要求,是實際教學(xué)中面臨的新課題[1]。由新冠疫情引發(fā)的線上教學(xué)暴露出了課程資源準(zhǔn)備不充分、師生互動未達(dá)到預(yù)期效果、缺乏良好的教學(xué)設(shè)計、學(xué)生自我管理難以把控等問題[2-3]。另外,線上教學(xué)無法提供該課程所需的硬件平臺,進(jìn)一步增加了開展難度。因此,研究嵌入式系統(tǒng)課程設(shè)計的線上教學(xué)方法具有重要意義。
項目式教學(xué)是在教師引導(dǎo)下,設(shè)置一些實際或虛擬項目,把該課程中所要講授的基礎(chǔ)知識和基本原理及與其對應(yīng)的實踐部分融合在一起。通過項目的實施完成教學(xué)內(nèi)容,學(xué)生根據(jù)項目主動獲取相關(guān)知識[4]。該教學(xué)方法能夠為該課程教學(xué)效果的提升提供有力支持。Proteus平臺將硬件系統(tǒng)軟件化,能夠模擬硬件系統(tǒng)的實現(xiàn)過程,并能夠?qū)崟r驗證程序的正確性[5]。因此,該平臺的使用能夠為課程的線上教學(xué)提供硬件支持。近年來,STM32單片機在大學(xué)生創(chuàng)新創(chuàng)業(yè)項目和比賽中,逐漸成為了熱門首選。但其基于標(biāo)準(zhǔn)庫函數(shù)的開發(fā)方式與51等8位單片機開發(fā)方式截然不同,抽象、復(fù)雜的引腳和時鐘配置提高了入門難度。近兩年,Proteus開始提供對STM32F1和STMS2F4單片機的虛擬仿真支持,ST公司開發(fā)并不斷優(yōu)化STM32CubeMX軟件,使用其進(jìn)行界面化代碼初始化,在大大降低入門難度的同時,提升了軟件設(shè)計效率。
嵌入式系統(tǒng)課程設(shè)計的線上教學(xué)開展可關(guān)聯(lián)當(dāng)前的產(chǎn)學(xué)研項目,采用基于Proteus、STM32CubeMx和Keil for ARM的STM32新型聯(lián)合開發(fā)方式,創(chuàng)建和講解運用單片機技術(shù)解決復(fù)雜工程問題的新型案例。以“Proteus中基于STM32的單總線溫濕度和傳感器故障檢測的終端設(shè)計”為例,詳細(xì)介紹線上項目式教學(xué)方法的設(shè)計和實施過程。
掌握單總線傳感器的工作原理、硬件電路設(shè)計和軟件編程。在Proteus 虛擬仿真環(huán)境中,實現(xiàn)STM32單片機對DHT11傳感器的溫濕度數(shù)據(jù)采集和故障情況診斷,并通過虛擬終端或PC機串口調(diào)試助手進(jìn)行結(jié)果顯示。
(1)熟悉溫濕度傳感器DHT11的器件特性和工作原理。重點理解單總線協(xié)議,并用C語言程序表示協(xié)議時序圖。明確DHT11的斷路、短路故障類型。
(2)硬件電路設(shè)計。安裝Proteus 軟件,進(jìn)行Proteus 中STM32 單片機的選型和基礎(chǔ)仿真參數(shù)配置,搭建STM32單片機最小系統(tǒng)的虛擬仿真平臺。在此基礎(chǔ)上,增加串行口通信器件和DHT11傳感器,并設(shè)計DHT11故障類型(斷路、短路)的模擬電路。
(3)軟件設(shè)計。安裝STM32CubeMx、Keil for ARM、虛擬串口、串口調(diào)試助手等軟件。根據(jù)硬件電路設(shè)計,針對GPIO 模擬單總線時序和串行口通信,實現(xiàn)STM32CubeMx 基于圖形界面的代碼初始化。完成Keil for ARM基于HAL(硬件抽象層)庫的串行口通信,并根據(jù)實驗內(nèi)容進(jìn)行相應(yīng)程序設(shè)計。
DHT11的單總線時序圖如圖1所示。單片機發(fā)送一次開始信號,DHT11從低功耗模式轉(zhuǎn)換到高速模式。等待主機開始信號結(jié)束,DHT11發(fā)送響應(yīng)信號,送出40 bit的數(shù)據(jù)。更為具體的技術(shù)參數(shù)可參考DHT11的技術(shù)文檔。由圖1可以看出,DHT11是否響應(yīng)輸出可以作為其是否發(fā)生故障的判斷條件。在故障情況下,通過讀引腳,并根據(jù)引腳電平來進(jìn)一步判斷故障類型是斷路還是短路。
圖1 單總線時序圖
給出一個實驗參考電路原理圖,如圖2所示。由圖2可以看出,該電路包含STM32單片機,具體型號為STM32F103R6;包含串口通信器件COMPIM;包含示波器,用以觀察單總線協(xié)議時序;包含虛擬終端,用以顯示溫濕度數(shù)據(jù)和故障檢測結(jié)果(安裝虛擬串口,串口調(diào)試助手功能與虛擬終端相同);包含不同故障類型的DHT11模擬電路,并可通過開關(guān)SW1進(jìn)行器件的選擇連通。斷路故障模擬電路中DHT11的數(shù)據(jù)線與PC0之間始終是斷開狀態(tài)。短路故障模擬電路中DHT11的數(shù)據(jù)線與地線之間始終是連接狀態(tài)。
圖2 實驗參考電路原理圖
根據(jù)系統(tǒng)設(shè)計方案,這里給出一個實驗參考軟件流程圖,如圖3所示。DHT11.c和DHT11.h是重點設(shè)計對象。需要按照實驗要求,根據(jù)實驗原理并遵照HAL 庫函數(shù)使用規(guī)范進(jìn)行具體設(shè)計。圖3 中的STM32單片機初始化采用STM32CubeMX以圖形界面的方式進(jìn)行,經(jīng)過引腳功能和時鐘系統(tǒng)配置后的初始化代碼直接導(dǎo)出為Keil for ARM的工程文件。引腳功能配置如圖4所示。
圖3 實驗參考軟件流程圖
圖4 STM32CubeMX中引腳功能配置
DHT11 正常連接時示波器中顯示單總線時序波形,虛擬終端顯示正常連接情況的溫濕度數(shù)值,如圖5所示。對于故障情況,示波器無時序波形,虛擬終端的故障分析結(jié)果顯示可自由設(shè)計。DHT11 在斷路、短路故障情況下的演示效果圖分別如圖6和圖7所示。
圖5 DHT11正常連接情況的演示效果圖
圖6 DHT11斷路故障時的演示效果圖
圖7 DHT11短路故障時的演示效果圖
實驗課程的教學(xué)周數(shù)為4 周(1 學(xué)期共18 周),即12~15周,具體實施過程如下。
(1)選題的確定。不占用實際教學(xué)周數(shù),提前向?qū)W生提供6 個以上實驗題目及任務(wù)、所需基礎(chǔ)知識的說明,方便學(xué)生進(jìn)行充分地選題調(diào)研和基礎(chǔ)積累。
(2)過程指導(dǎo)。①前期,對于第一階段的基礎(chǔ)仿真、聯(lián)調(diào)平臺的搭建,各組具有相同性,在第12 周完成講解。②中期,對于第二階段各組實驗題目的設(shè)計,各不相同,在13~15周進(jìn)行單獨指導(dǎo)。③后期,給出實驗報告格式和內(nèi)容上的規(guī)范要求,在第15 周進(jìn)行實驗報告撰寫的指導(dǎo)。
(3)實驗考核。學(xué)生最終成績最高為100 分,主要由平時成績(占30%)、實驗報告成績(占40%)和PPT答辯成績(30%)組成,每一部分的成績最高為100分。
結(jié)合項目式教學(xué)的優(yōu)勢,本文采用Proteus 仿真軟件對嵌入式系統(tǒng)課程設(shè)計進(jìn)行項目式教學(xué)研究。在實施過程中學(xué)生利用Proteus仿真軟件進(jìn)行項目的設(shè)計和仿真,把理論和實踐結(jié)合起來,使得教學(xué)內(nèi)容更形象化,同時節(jié)省制作成本。通過本課程的學(xué)習(xí)和配套的系列實驗,學(xué)生能夠熟悉STM32 單片機系統(tǒng)的基本分析和設(shè)計規(guī)范,自行設(shè)計小型單片機控制系統(tǒng),掌握開發(fā)系統(tǒng)級和工業(yè)級產(chǎn)品的方法、思路和手段。