徐 磊,屈 磊,劉 瑜
(安徽大學電子信息工程學院,安徽合肥 230601)
嵌入式系統課程設計是高校硬件類的綜合性應用訓練課程。如何提高學生的嵌入式工程實踐能力和設計能力,適應嵌入式行業要求,是實際教學中面臨的新課題[1]。由新冠疫情引發的線上教學暴露出了課程資源準備不充分、師生互動未達到預期效果、缺乏良好的教學設計、學生自我管理難以把控等問題[2-3]。另外,線上教學無法提供該課程所需的硬件平臺,進一步增加了開展難度。因此,研究嵌入式系統課程設計的線上教學方法具有重要意義。
項目式教學是在教師引導下,設置一些實際或虛擬項目,把該課程中所要講授的基礎知識和基本原理及與其對應的實踐部分融合在一起。通過項目的實施完成教學內容,學生根據項目主動獲取相關知識[4]。該教學方法能夠為該課程教學效果的提升提供有力支持。Proteus平臺將硬件系統軟件化,能夠模擬硬件系統的實現過程,并能夠實時驗證程序的正確性[5]。因此,該平臺的使用能夠為課程的線上教學提供硬件支持。近年來,STM32單片機在大學生創新創業項目和比賽中,逐漸成為了熱門首選。但其基于標準庫函數的開發方式與51等8位單片機開發方式截然不同,抽象、復雜的引腳和時鐘配置提高了入門難度。近兩年,Proteus開始提供對STM32F1和STMS2F4單片機的虛擬仿真支持,ST公司開發并不斷優化STM32CubeMX軟件,使用其進行界面化代碼初始化,在大大降低入門難度的同時,提升了軟件設計效率。
嵌入式系統課程設計的線上教學開展可關聯當前的產學研項目,采用基于Proteus、STM32CubeMx和Keil for ARM的STM32新型聯合開發方式,創建和講解運用單片機技術解決復雜工程問題的新型案例。以“Proteus中基于STM32的單總線溫濕度和傳感器故障檢測的終端設計”為例,詳細介紹線上項目式教學方法的設計和實施過程。
掌握單總線傳感器的工作原理、硬件電路設計和軟件編程。在Proteus 虛擬仿真環境中,實現STM32單片機對DHT11傳感器的溫濕度數據采集和故障情況診斷,并通過虛擬終端或PC機串口調試助手進行結果顯示。
(1)熟悉溫濕度傳感器DHT11的器件特性和工作原理。重點理解單總線協議,并用C語言程序表示協議時序圖。明確DHT11的斷路、短路故障類型。
(2)硬件電路設計。安裝Proteus 軟件,進行Proteus 中STM32 單片機的選型和基礎仿真參數配置,搭建STM32單片機最小系統的虛擬仿真平臺。在此基礎上,增加串行口通信器件和DHT11傳感器,并設計DHT11故障類型(斷路、短路)的模擬電路。
(3)軟件設計。安裝STM32CubeMx、Keil for ARM、虛擬串口、串口調試助手等軟件。根據硬件電路設計,針對GPIO 模擬單總線時序和串行口通信,實現STM32CubeMx 基于圖形界面的代碼初始化。完成Keil for ARM基于HAL(硬件抽象層)庫的串行口通信,并根據實驗內容進行相應程序設計。
DHT11的單總線時序圖如圖1所示。單片機發送一次開始信號,DHT11從低功耗模式轉換到高速模式。等待主機開始信號結束,DHT11發送響應信號,送出40 bit的數據。更為具體的技術參數可參考DHT11的技術文檔。由圖1可以看出,DHT11是否響應輸出可以作為其是否發生故障的判斷條件。在故障情況下,通過讀引腳,并根據引腳電平來進一步判斷故障類型是斷路還是短路。

圖1 單總線時序圖
給出一個實驗參考電路原理圖,如圖2所示。由圖2可以看出,該電路包含STM32單片機,具體型號為STM32F103R6;包含串口通信器件COMPIM;包含示波器,用以觀察單總線協議時序;包含虛擬終端,用以顯示溫濕度數據和故障檢測結果(安裝虛擬串口,串口調試助手功能與虛擬終端相同);包含不同故障類型的DHT11模擬電路,并可通過開關SW1進行器件的選擇連通。斷路故障模擬電路中DHT11的數據線與PC0之間始終是斷開狀態。短路故障模擬電路中DHT11的數據線與地線之間始終是連接狀態。

圖2 實驗參考電路原理圖
根據系統設計方案,這里給出一個實驗參考軟件流程圖,如圖3所示。DHT11.c和DHT11.h是重點設計對象。需要按照實驗要求,根據實驗原理并遵照HAL 庫函數使用規范進行具體設計。圖3 中的STM32單片機初始化采用STM32CubeMX以圖形界面的方式進行,經過引腳功能和時鐘系統配置后的初始化代碼直接導出為Keil for ARM的工程文件。引腳功能配置如圖4所示。

圖3 實驗參考軟件流程圖

圖4 STM32CubeMX中引腳功能配置
DHT11 正常連接時示波器中顯示單總線時序波形,虛擬終端顯示正常連接情況的溫濕度數值,如圖5所示。對于故障情況,示波器無時序波形,虛擬終端的故障分析結果顯示可自由設計。DHT11 在斷路、短路故障情況下的演示效果圖分別如圖6和圖7所示。

圖5 DHT11正常連接情況的演示效果圖

圖6 DHT11斷路故障時的演示效果圖

圖7 DHT11短路故障時的演示效果圖
實驗課程的教學周數為4 周(1 學期共18 周),即12~15周,具體實施過程如下。
(1)選題的確定。不占用實際教學周數,提前向學生提供6 個以上實驗題目及任務、所需基礎知識的說明,方便學生進行充分地選題調研和基礎積累。
(2)過程指導。①前期,對于第一階段的基礎仿真、聯調平臺的搭建,各組具有相同性,在第12 周完成講解。②中期,對于第二階段各組實驗題目的設計,各不相同,在13~15周進行單獨指導。③后期,給出實驗報告格式和內容上的規范要求,在第15 周進行實驗報告撰寫的指導。
(3)實驗考核。學生最終成績最高為100 分,主要由平時成績(占30%)、實驗報告成績(占40%)和PPT答辯成績(30%)組成,每一部分的成績最高為100分。
結合項目式教學的優勢,本文采用Proteus 仿真軟件對嵌入式系統課程設計進行項目式教學研究。在實施過程中學生利用Proteus仿真軟件進行項目的設計和仿真,把理論和實踐結合起來,使得教學內容更形象化,同時節省制作成本。通過本課程的學習和配套的系列實驗,學生能夠熟悉STM32 單片機系統的基本分析和設計規范,自行設計小型單片機控制系統,掌握開發系統級和工業級產品的方法、思路和手段。