楊衛(wèi)波 阮秀凱 崔桂華
摘 要 針對嵌入式原理與應(yīng)用的本科教學(xué),設(shè)計基于Coretex-
M4內(nèi)核的嵌入式系統(tǒng)實驗平臺。實驗平臺以STM32F407IGT6微處理器為控制核心,采用模塊化方法進行硬件設(shè)計,并提供豐富的接口;開發(fā)四個層次的實驗項目,實驗項目設(shè)計循序漸進,有利于培養(yǎng)具有創(chuàng)新思維的嵌入式開發(fā)人才。教學(xué)實踐表明,該實驗平臺能夠滿足教學(xué)要求,可以增強嵌入式課程的教學(xué)效果。
關(guān)鍵詞 嵌入式系統(tǒng);STM32;實驗平臺
中圖分類號:G642.423 文獻標(biāo)識碼:B
文章編號:1671-489X(2017)20-0032-03
Design of Embedded System Experiment Platform based on STM32//YANG Weibo, RUAN Xiukai, CUI Guihua
Abstract An embedded experimental teaching platform based on
Coretex-M4 was designed for the undergraduate teaching of embe-dded principle and application. The experiment platform with STM
32F407IGT6 microprocessor adopted modular design, and provided lots of interface in the system. Four levels of experiment items were designed, and the experimental projects were progressive, which was
beneficial to the development of embedded talents with creative thin-
king. The teaching practice demonstrated that the experimental plat-
form can meet the teaching requirements, and can improve the tea-ching effect of embedded courses.
Key words embedded system; STM32; experiment platform
1 前言
嵌入式原理與應(yīng)用是電子與信息類學(xué)科的一門專業(yè)必修課。當(dāng)前我國高校普遍使用以ARM Cortex M3為核心的實驗平臺[1],在教學(xué)實踐中發(fā)現(xiàn),目前的實驗系統(tǒng)存在實驗平臺檔次低、功能單一,大部分停留在開發(fā)板層次,很少有上升到系統(tǒng)層次;實驗系統(tǒng)不是模塊化設(shè)計,可復(fù)用性差,且設(shè)計的實驗項目缺乏體現(xiàn)嵌入式系統(tǒng)的思想,不能很好地為學(xué)生電子競賽、畢業(yè)設(shè)計服務(wù)等問題[2]。為更好地進行本科創(chuàng)新人才的培養(yǎng),需要設(shè)計開發(fā)一款合理、適用的嵌入式系統(tǒng)教學(xué)實驗平臺。
本文在綜合多方面的因素后,設(shè)計開發(fā)一款基于STM32
F407IGT6微處理器的嵌入式系統(tǒng)實驗平臺。該微處理器由ARM公司推出,基于Coretex-M4內(nèi)核。實驗平臺立足于課程教學(xué)大綱,與教學(xué)內(nèi)容緊密結(jié)合,能滿足嵌入式課程教學(xué)的實驗要求。實驗系統(tǒng)硬件部分采用模塊化方法設(shè)計,學(xué)生可根據(jù)需求靈活地將模塊組成所需要的系統(tǒng),作為學(xué)習(xí)開發(fā)板使用;實驗系統(tǒng)軟件部分開發(fā)了基礎(chǔ)型實驗、提高型實驗、綜合型實驗及設(shè)計型實驗等四個層次的實驗項目,項目內(nèi)容貼近工程實踐,能鍛煉學(xué)生的嵌入式系統(tǒng)軟、硬件設(shè)計能力。
2 嵌入式系統(tǒng)實驗平臺的設(shè)計思路
嵌入式系統(tǒng)具有“硬件決定軟件,程序基于硬件”的特點。進行嵌入式實驗平臺設(shè)計時,首先要考慮的是選擇控制系統(tǒng)核心芯片的問題,目前高校嵌入式課程的主流選擇是ARM公司推出的Cortex-M系列微處理器。經(jīng)多方比較,本實驗平臺選擇STM32F407IGT6作為核心芯片,該芯片是新一代Cortex-M4內(nèi)核的微處理器,具有168 MHz主頻、FPU浮點單元、DSP指令集等高性能特性,而且具有多外設(shè)、多接口及多I/O特性,可以很好地負責(zé)功能實現(xiàn)、事件處理及接口等功能[3]。外圍電路模塊部分是在核心微處理芯片的基礎(chǔ)上,選擇常用的典型元器件和模塊電路進行開發(fā)設(shè)計。
考慮到滿足嵌入式系統(tǒng)課程教學(xué)和學(xué)生課外深入學(xué)習(xí)的需要,本文遵循如下思路設(shè)計實驗平臺:
1)實驗平臺的體積要小,電源部分可以選用USB口供電,這樣只需要一臺計算機就可以方便進行實驗;
2)實驗平臺的設(shè)計要體現(xiàn)多功能、多用途的特點,同時具有較高的性價比;
3)由于實驗平臺經(jīng)常需要改變放置位置,整機電路部分需具備高可靠性;
4)實驗平臺有較強的擴展性,方便在板外連接電路,可以完成其他實驗;
5)實驗項目要具有一定的趣味性與實用性;
6)實驗平臺適合在項目驅(qū)動、案例教學(xué)中應(yīng)用。
3 實驗系統(tǒng)的硬件設(shè)計
本文基于STM32微處理器芯片設(shè)計的嵌入式實驗平臺采用模塊化結(jié)構(gòu),各個功能模塊相互獨立、自成體系,體現(xiàn)了平臺的設(shè)計思路。設(shè)計完成的主要功能模塊硬件框圖如圖1所示,包括九個主要模塊。
1)主控CPU模塊:STM32F407IGT6處理器,SWD調(diào)試
接口。
2)基本I/O模塊:4個獨立按鍵及1個復(fù)位按鍵,8位LED燈,4位一體的共陽極數(shù)碼管,蜂鳴器及12864液晶接口電路。
3)控制模塊:繼電器模塊,PWM模塊。endprint
4)信號產(chǎn)生與處理模塊:兩路二階RC濾波電路,可用于波形濾波、測量相位差時的移相電路等;電壓調(diào)節(jié)
電路,用于外部電壓參考源或A/D電壓采集輸入。
5)存儲器模塊:32 KB高速SRAM,EEPROM 24C02存儲
器,W25x80 1 M byte FLASH芯片。
6)基本通信模塊:兩路標(biāo)準(zhǔn)RS232串行通信接口,IIC總線和SPI總線。
7)高級通信模塊:CP2200以太網(wǎng)電路,USB通信電路。
8)外圍輔助模塊:PCF8563 RTC實時時鐘,溫度傳感器DS18B20,ULN2803步進電機驅(qū)動電路,F(xiàn)M收音機,RFID。
9)電源部分:提供穩(wěn)定的+3.3 V工作電壓。
在各個模塊中,ARM微處理器核心占了超過一半的空間,負責(zé)“主控”的角色,而且兼顧接口處理(以太網(wǎng)接口、USB接口、UART接口)與外界交互信息。數(shù)字電源輸出采用高效率的BUCK電路,為ARM及其他模塊供電。系統(tǒng)采用TL431產(chǎn)生2.5 V基準(zhǔn)獨立的模擬電壓基準(zhǔn),為片上ADC/DAC提供基準(zhǔn)電壓。另外通過芯片CH340G作為物理協(xié)議層,實現(xiàn)USB轉(zhuǎn)UART功能,為系統(tǒng)調(diào)試提供極大的方便。由于在高速模式下SWD下載比JTAG下載更加穩(wěn)定,發(fā)生數(shù)據(jù)丟失的概率也更小,因此,ARM采用SWD串行總線調(diào)試接口,這樣可以適用于多種仿真器。此外為了提高實驗平臺的可擴展性,采用排針式擴展接口引在板子的兩端,其中ARM I/O擴展口高達68個,引腳擴展特別靈活,為I/O口的使用和功能擴展提供了極大的方便,使用跳線就可以擴展更多的功能模塊,極大地方便學(xué)生進行創(chuàng)新實驗的開發(fā)。
4 實驗系統(tǒng)軟件例程設(shè)計
嵌入式系統(tǒng)最初的開發(fā)語言是匯編語言,但匯編語言存在編程困難、可讀性和可移植性差等缺點[4]。當(dāng)前應(yīng)用開發(fā)人員都是選擇目標(biāo)代碼和運行速度與匯編語言相差不大,但編程相對容易、可讀性和可移植性較強的C語言,因此在例程設(shè)計中使用C語言作為編程語言。學(xué)習(xí)過51單片機的初學(xué)者很排斥用STM32固件庫,認(rèn)為固件庫太復(fù)雜,其實固件庫就是將一組功能相關(guān)的特殊功能寄存器的操作過程封裝為一些C語言函數(shù),以方便應(yīng)用程序調(diào)用和使用者記憶。直接操作寄存器和調(diào)用固件庫中函數(shù)本質(zhì)上沒有區(qū)別,不會因為多封裝了一層就改變性質(zhì)[5],因此,本系統(tǒng)所有例程都基于固件庫開發(fā)設(shè)計。
嵌入集成思想,通過建立實驗代碼庫,系統(tǒng)平臺設(shè)計圖2所示軟件資源。該軟件資源結(jié)合學(xué)校嵌入式系統(tǒng)課程教學(xué)大綱要求,開發(fā)基礎(chǔ)型實驗、提高型實驗、綜合型實驗、設(shè)計型實驗等四個層次的實驗項目,由淺入深、循序漸進,可以有效增強學(xué)生的嵌入式技術(shù)學(xué)習(xí)效果。
圖2中設(shè)計的實驗項目著重讓學(xué)生學(xué)到當(dāng)前最實用的、與實際工程緊密結(jié)合的技術(shù),使學(xué)生走上工作崗位后能做到快速上手。基礎(chǔ)型實驗與課程教學(xué)內(nèi)容緊密結(jié)合,主要培養(yǎng)學(xué)生嵌入式開發(fā)的基本技能,在數(shù)字I/O使用方面,能讓學(xué)生學(xué)習(xí)嵌入式編程思想,學(xué)生通過簡單的操作就可以控制微處理器及其外設(shè),能很好地激發(fā)學(xué)習(xí)興趣;提高型實驗一般和專業(yè)設(shè)計環(huán)節(jié)結(jié)合,學(xué)生通過完成這部分實驗,基本能達到掌握軟硬件開發(fā)知識以及調(diào)試、測試等技能,可以深入理解掌握中斷及定時器的使用;綜合型實驗重在培養(yǎng)學(xué)生的綜合應(yīng)用能力,部分實驗具有一定的難度,學(xué)生的嵌入式應(yīng)用水平達到一定程度后,基本能獨立完成實驗;設(shè)計型實驗包括電子時鐘、RFID和WAVE音樂播放實驗項目,這部分內(nèi)容一般和畢業(yè)設(shè)計環(huán)節(jié)結(jié)合,培養(yǎng)學(xué)生從系統(tǒng)總體架構(gòu)和創(chuàng)新應(yīng)用角度設(shè)計嵌入式系統(tǒng)的能力。
另外,實驗項目的設(shè)計突出兩種串行總線接口:兩線(IIC)和三線(SPI)、A/D與D/A轉(zhuǎn)換、USB接口及TCP/IP接口。這是當(dāng)前產(chǎn)品開發(fā)的發(fā)展方向。受課時所限,這部分內(nèi)容可以放在學(xué)生課外科研課題、大學(xué)生電子競賽、實驗室開放項目、畢業(yè)設(shè)計等環(huán)節(jié)去學(xué)習(xí),引導(dǎo)學(xué)生去自學(xué)。
通過上述硬件和軟件項目的設(shè)計,充分發(fā)揮STM32F407
IGT6的特性,最大限度挖掘其性能,學(xué)生通過完成這些項目,可以觸類旁通地掌握整個STM32系列微處理器的使用;項目的設(shè)計不在實驗項目的數(shù)目上下功夫,強調(diào)的是項目的代表性和實用價值;所有的例程都提供標(biāo)準(zhǔn)的代碼庫,增強代碼可重復(fù)使用性,這樣有利于學(xué)生在電子競賽、畢業(yè)設(shè)計中使用;各功能模塊完全獨立,可加強學(xué)生對主板硬件電路的認(rèn)識,盡快熟悉硬件電路,快速入門;部分項目貼近工程實戰(zhàn),能很好地鍛煉學(xué)生的創(chuàng)新和工程能力。
5 結(jié)束語
針對本科嵌入式課程教學(xué)的需要,采用模塊化方法設(shè)計一款基于STM32微處理器的實驗平臺,并開發(fā)四個不同層次的實驗項目,能夠滿足嵌入式課程的實驗教學(xué)。多個學(xué)期的教學(xué)實踐表明,該實驗平臺可靠性高、綜合性強、內(nèi)容覆蓋面廣,能夠有效培養(yǎng)動手能力強、具有創(chuàng)新能力的嵌入式開發(fā)人才。下一步將豐富實驗平臺的實驗例程和擴展外圍,并向其他專業(yè)推廣應(yīng)用。
參考文獻
[1]劉清,郭津津,等.基于STM32微處理器的嵌入式教學(xué)實驗平臺開發(fā)[J].中國現(xiàn)代教育裝備,2016(17):20-22.
[2]楊亮.基于Cortex-A8嵌入式實驗平臺的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2014,22(4):152-154.
[3]劉軍,張洋,嚴(yán)漢宇.例說STM32[M].2版.北京:北京航空航天大學(xué)出版社,2014.
[4]王粉花,李擎,張萬書.PIC單片機實驗系統(tǒng)的研制[J].電氣電子教學(xué)學(xué)報,2014,36(2):102-105.
[5]李進,劉曙,李偉平.創(chuàng)新型嵌入式實驗教學(xué)模式研究[J].計算機工程與科學(xué),2014,36(s2):56-60.endprint