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