杨卫波 阮秀凯 崔桂华
摘 要 针对嵌入式原理与应用的本科教学,设计基于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