肖艷軍,毛 哲,溫 博,周 圍,孫凌宇,孟召宗,劉偉玲
儀器設備研制與應用
基于STM32的綜合實驗平臺設計
肖艷軍,毛 哲,溫 博,周 圍,孫凌宇,孟召宗,劉偉玲
(河北工業(yè)大學機械工程學院,天津 300131)
設計了以STM32單片機為核心的單片機實驗平臺,作為對51單片機學習的補充。采用模塊化設計,考慮到學生學習能力以及需對STM32片上外設的掌握程度,設計了相應模塊以及對應的17個實驗。插孔式連接方式使實驗模塊之間連接更加可靠穩(wěn)定。該實驗平臺已在單片機教學中使用,提高了學生對單片機的學習興趣,鍛煉了學生的自主創(chuàng)新能力以及工程實踐能力。
STM32;模塊化設計;實驗平臺
單片機作為儀器類專業(yè)本科生的必修內(nèi)容,而且在各行各業(yè)中應用廣泛[1-4]。目前本科階段所教授的微控制器對象一般為51單片機[5-6]。隨著嵌入式技術的發(fā)展,傳統(tǒng)的8位單片機無論在片上資源及功能上都漸漸無法滿足市場需求。所以,單片機實驗教學課程急需改革,需要注入新的活力[7-9]。
STM32系列單片機是ST(意法半導體)公司推出的基于ARMv7架構的32位單片機,與51單片機相比,STM32片上資源豐富,功能更加強大,具有極高的性價比[10-11]。在學習過51單片機的基礎上,通過庫函數(shù)開發(fā)的方式,可以快速地學習并掌握STM32[12]。目前市面雖有很多STM32的開發(fā)板,但這些開發(fā)板為減小PCB面積、減小生產(chǎn)成本,其外設與單片機引腳的連接方式已經(jīng)固定,不能根據(jù)具體需要來隨意支配單片機的I/O口,不能最大程度地鍛煉學生的實踐與操作能力。且I/O口都以插針的形式引出,連接不可靠。基于以上原因,本文設計了基于STM32F1系列單片機的綜合實驗平臺并設計了相關實驗。
以使學生通過實驗能夠熟練掌握STM32各種片上外設為原則,以實現(xiàn)理論教學與實踐訓練相結合為目標,結合我?!肮W并舉”的辦學特色,基于模塊化理念,設計了各種功能模塊。
基本功能模塊為保證實驗板正常工作的模塊,包括單片機最小系統(tǒng)、電壓轉(zhuǎn)換模塊、BOOT模塊以及USB轉(zhuǎn)TTL模塊。
1.1.1 單片機最小系統(tǒng)
STM32的最小系統(tǒng)與51單片機的類似,都包括晶振、復位、電源以及單片機。區(qū)別是STM32晶振一般為8 MHz,電源電壓為3.3 V。此外,在單片機OSC32_IN以及OSC32_OUT之間還需接入一振蕩頻率為32.768 kHz的晶振,該晶振可作為STM32-RTC(實時時鐘)的外部時鐘源。在VBAT引腳接入備用電源,單片機掉電后,實時時鐘可繼續(xù)計時。最小系統(tǒng)原理圖如圖1所示。
圖1 單片機最小系統(tǒng)原理圖
1.1.2 電壓轉(zhuǎn)換模塊
由圖1可知,單片機所需工作電壓都為3.3 V,實驗板通過USB口供電,USB所提供的電壓為5 V,所以通過電壓轉(zhuǎn)換模塊將電壓轉(zhuǎn)換為3.3 V,電壓轉(zhuǎn)換模塊通過ASM1117-3.3 V芯片將5 V電壓輸入轉(zhuǎn)換為3.3 V電壓輸出,為單片機提供工作電源。
1.1.3 BOOT模塊
STM32單片機有2個引腳BOOT0與BOOT1,單片機在上電時通過檢測這2個引腳電平的高低以決定其啟動方式,啟動方式的不同決定啟動區(qū)域的不同。具體啟動方式見表1。
內(nèi)部Flash啟動即正常啟動方式,程序下載到單片機內(nèi)部即存儲到內(nèi)部Flash中,該啟動模式下,單片機將自動執(zhí)行內(nèi)部Flash中所存儲的程序。
系統(tǒng)存儲器為單片機中一塊特殊的存儲區(qū)域,在出廠時就被固化了一段啟動程序。在系統(tǒng)存儲器被 選為啟動區(qū)域時,程序燒錄軟件可以通過,可以通 過該程序與單片機進行通信,將程序下載到內(nèi)部 Flash中。
表1 STM32啟動模式表
內(nèi)部SRAM沒有存儲功能,掉電后數(shù)據(jù)消失,但其速度較Flash快,且無需擦除,所以可以在程序調(diào)試時使用該啟動項,將程序下載到SRAM中進行調(diào)試,調(diào)試完成后再將程序下載到Flash中。
1.1.4 USB轉(zhuǎn)TTL模塊
在整個實驗平臺中,USB既是電源又是與PC進行通信的通信接口,所以,通過CH340芯片實現(xiàn)USB轉(zhuǎn)TTL,這樣單片機就可以通過USB接口與PC進行通信,實現(xiàn)串口下載程序。
1.1.5 JTAG/SWD下載接口
通過該接口可以使用下載/仿真器進行程序下載與硬件仿真。
其他功能模塊主要為依據(jù)STM32片上外設所設計,以體現(xiàn)其功能與用法。
(1)LED燈模塊。可通過LED燈的亮滅判斷I/O口輸出電平的高低。
(2)數(shù)碼管模塊。通過I/O口控制數(shù)碼管顯示。
(3)蜂鳴器模塊。通過I/O口控制蜂鳴器發(fā)聲。
(4)按鍵模塊。通過I/O口檢測高低電平來判斷按鍵是否被按下。
(5)光敏電阻、熱電阻模塊。光敏電阻以及熱電阻分別可根據(jù)光強的大小以及溫度的高低改變自身阻值,再通過A/D轉(zhuǎn)換得到其阻值,即可得到光強與溫度的大小,同時,STM32芯片內(nèi)部集成有溫度傳感器,可將兩者測得的溫度值進行對比。
(6)串口通信模塊(RS485與RS232通信接口)。集成了工業(yè)上常用RS232與RS485通信接口,通過MAX232芯片以及MAX3485芯片將TTL電平與232與485電平之間進行轉(zhuǎn)換,使單片機能夠與支持232與485接口的設備進行通信,如組態(tài)觸摸屏等。
(7)外部存儲器模塊,包括Flash與EEPROM。采用AT24C20 EEPROM芯片,可通過I2C接口與芯片通信實現(xiàn)數(shù)據(jù)存取。Flash采用W25X16芯片,可通過SPI接口與芯片進行通信實現(xiàn)數(shù)據(jù)存取。
(8)無線射頻模塊。使用NRF24L01芯片,可通過I2C通信控制。
(9)藍牙模塊。使用HC-05芯片,單片機通過串口與之通信收發(fā)數(shù)據(jù)。
(10)紅外接收模塊??膳c遙控器等紅外設備進行通信。
(11)音頻模塊。使用VS1053芯片,單片機可通過SPI接口與其通信實現(xiàn)音頻播放與錄音保存的功能。
(12)SD卡模塊。通過STM32的SDIO與之通信實現(xiàn)數(shù)據(jù)存取。
(13)高精度AD轉(zhuǎn)換模塊。采用HX711 芯片,該芯片為24位高精度A/D轉(zhuǎn)換芯片。配合稱重傳感器可實現(xiàn)高精度測量。
(14)LCD模塊。用于連接液晶屏進行顯示。
圖2為該實驗箱實物圖。
圖2 實驗箱實物圖
編程軟件使用Keil MDK軟件,Keil軟件是一款單片機C語言開發(fā)軟件,且同時支持匯編語言開發(fā)。根據(jù)所支持的單片機的種類分為4種:Keil C51、Keil MDK、Keil C251以及Keil C166(見圖3)。Keil MDK支持的是ARM系列的單片機。
圖3 KEIL官網(wǎng)提供的4款Keil軟件下載
STM32作為32位單片機,其內(nèi)部的寄存器數(shù)量多且大都為32位,若仍直接通過編程對寄存器操作進行編程,則不僅編程工作量大,而且可移植性較差。為此,ST公司提供了STM32的標準固件庫,開發(fā)者只需調(diào)用固件庫中的函數(shù)即可實現(xiàn)對寄存器的操作,這樣就使程序的編寫更加高效且可移植性好,不同的STM32芯片所編寫的程序只需稍加修改甚至不必修改便可互相移植。
既然需要庫函數(shù),那么在創(chuàng)建工程時就需要添加所需要用到的庫函數(shù)文件,在使用的STM32芯片型號不經(jīng)常變更的情況下,比如實驗板上的芯片型號是不會變化的,為了避免每次創(chuàng)建工程時都需要添加庫函數(shù)文件,可以直接創(chuàng)建一個具有完整庫函數(shù)文件的工程模板,在需要建立新工程時,只需將模板復制1份即可。在官方提供的庫函數(shù)文件Project文件夾中,提供了一個芯片型號為STM32F100系列的工程模板,見圖4,可參照該模板建立自己的工程模板。
圖4 固件庫中提供的工程模板
2.3.1 ISP下載與調(diào)試
ISP下載是通過USB轉(zhuǎn)TTL模塊將程序下載到芯片。在程序下載前,需配置BOOT引腳電平,使單片機進入內(nèi)部存儲器啟動模式,下載完成后再更改BOOT引腳電平使單片機進入內(nèi)部Flash啟動模式并開始執(zhí)行程序。該過程較為繁瑣,所以,在USB轉(zhuǎn)TTL模塊中,通過CH340芯片的DTR與RTS控制BOOT引腳,如圖5所示,不同的電路選擇不同的方式進入內(nèi)部存儲器啟動模式。這樣,只需在程序下載上位機配置DTR與RTS 2個引腳即可,實現(xiàn)一鍵下載。程序編寫完成且編譯出HEX文件后,在ISP下載軟件中選擇要下載的文件下載即可。
ISP下載沒有調(diào)試的功能,只能將程序下載到單片機后觀察單片機的程序運行情況。但在下載程序之前,可以在Keil軟件中進行軟件模擬,不通過單片機,直接在Keil軟件中觀察程序運行的情況。
圖5 ISP下載軟件中的DTR與RTS選項
2.3.2 仿真器下載與調(diào)試
與ISP下載相比,仿真器下載不需要配置BOOT引腳,只需在Keil軟件中進行與仿真器相關配置即可。配置完成后,也不需要專用的下載軟件,點擊Keil軟件中LOAD按鈕即可下載,見圖6。若需要硬件調(diào)試,在程序編譯完成之后,點擊Keil軟件中DEBUG按鈕即可,程序會自動通過仿真器下載到單片機中。調(diào)試時可以實現(xiàn)單步運行,復位等功能,還可具體追蹤某一參數(shù)的數(shù)值變化等。
圖6 Keil軟件中的LOAD與DEBUG選項
為使學生能夠充分理解學習STM32單片機,配合所設計模塊,設計了基礎實驗項目,如表2所示,高級實驗項目見表3。
表2 實驗箱基礎實驗項目表
表3 實驗箱高級實驗項目表
基礎實驗是為學習STM32片上外設所設計的,一般只涉及單一外設的實驗,由于GPIO外設的特殊性,所有實驗都要使用到。高級實驗是綜合多個外設所形成的綜合性實驗,或者是實驗難度較大的實驗。其中自主設計實驗為開放性實驗,不限實驗所用器件,學生根據(jù)所學知識與實驗平臺資源和外部資源,設計出一個完整的測控系統(tǒng)。
圖7為學生自主搭建的溫度檢測與控制系統(tǒng),檢測環(huán)境溫度并通過STM32的高級定時器輸出不同占空比的PWM波經(jīng)L298N控制直流電機的轉(zhuǎn)速。同時通過示波器觀察STM32輸出的波形變化。
圖7 學生搭建的溫度檢測與控制系統(tǒng)
本文圍繞STM32單片機的片上外設以及單片機本科教學,設計了STM32實驗平臺與配套的實驗,使本科階段的單片機教學能夠追趕嵌入式技術發(fā)展的潮流。新的教學內(nèi)容與新的單片機也激發(fā)了學生對于單片機學習的興趣,對儀器類專業(yè)綜合實驗平臺的建設具有重要意義。
[1] 許京雷.嵌入式系統(tǒng)課程內(nèi)容設置[J].中國教育技術裝備,2017(8): 85–86.
[2] 張萍,馬樹軍,史可福.基于51單片機的指紋電子密碼鎖的設計與實現(xiàn)[J].實驗室研究與探索,2018, 37(8): 141–145, 168.
[3] 侯衛(wèi)周,顧玉宗.一款單片機系統(tǒng)控制的溫控智能水杯設計[J].實驗室研究與探索,2017, 36(3): 70–74.
[4] 張仲明,郭東偉,呂巍,等.基于DS18B20溫度傳感器的溫度測量系統(tǒng)設計[J].實驗技術與管理,2018, 35(5): 82–85, 94.
[5] 王琳霖,王偉,曹國強,等.基于單片機的機電控制實訓平臺設計[J].實驗技術與管理,2018, 35(4): 82–85.
[6] 朱向慶,黎東濤,蘇超益,等.適合于項目教學法的三合一單片機實驗箱設計[J].實驗技術與管理,2013, 30(7): 55–59.
[7] 肖艷軍,周圍,楊澤青,等.測控專業(yè)單片機實驗教學模式的探索[J].教育教學論壇,2016(46): 265–266.
[8] 肖艷軍,楊澤青,周圍,等.測控專業(yè)人才培養(yǎng)目標及培養(yǎng)模式創(chuàng)新性研究[J].實驗技術與管理,2016, 33(3): 20–22.
[9] 肖艷軍,孫英培,孟憲樂,等.關于單片機原理及應用和PLC課程的教學改革[J].科技信息,2014(8): 23–23.
[10] 滿紅,鄭富榮,胡偉華,等.基于STM32單片機的教學用尋跡平衡車的設計與實現(xiàn)[J].機器人技術與應用,2018(4): 39–42.
[11] 楊剛,千博,陳建安,等.四軸飛行器嵌入式教學實驗平臺的構建[J].實驗科學與技術,2018, 16(1): 132–136, 140.
[12] 盛慶華,杜永均,羅飛,等.基于STM32機械臂解魔方算法研究[J].實驗室研究與探索,2017, 36(4): 29–32.
Design of comprehensive experimental platform based on STM32
XIAO Yanjun, MAO Zhe, WEN Bo, ZHOU Wei, SUN Lingyu, MENG Zhaozong, LIU Weiling
(School of Mechanical Engineering, Hebei University of Technology, Tianjin 300131, China)
The experimental platform of the SCM with STM32 as the core is designed as a supplement to the learning of 51 SCM. With the modular design and in consideration of students’ learning ability and the need to master the peripherals of STM32 chip, the corresponding modules and 17 corresponding experiments are designed. The socket connection mode makes the connection between the experimental modules more reliable and stable. The experimental platform has been used in the teaching of SCM, which improves students’ interest in learning SCM and trains their ability of independent innovation and engineering practice.
STM32; modular design; experimental platform
TP368.2;G484
A
1002-4956(2019)12-0072-05
10.16791/j.cnki.sjg.2019.12.017
2019-04-16
教育部產(chǎn)學研協(xié)同育人項目(201801013016);河北省高等學校教育改革研究與實踐項目(2017GJJG026)
肖艷軍(1976—),男,河北滄州,博士,教授,從事嵌入式系統(tǒng)應用、余熱利用技術、新能源裝備及其關鍵技術等研究。E-mail: x_yanjun2009@163.com
劉偉玲(1973—),女,河北邢臺,博士,副教授,主要研究方向為測控儀器設計。