罗清龙,冯 敏,李清涛
(聊城大学 物理科学与信息工程学院,山东 聊城 252000)
嵌入式系统指用于控制、监视或者辅助操作机器和设备的装置,它具有软硬件可裁剪的特点,可以满足应用系统对功能、可靠性、成本、体积、功耗等多种约束[1-3]。嵌入式技术作为计算机科学技术、电子信息工程、自动化等专业的重要专业课程被引入教学体系,其讲授内容依次经历着从8位到16位、32位、64位MCU的提升 演 进[4-6]。NXP、TI、Samsung、Atmel、ST、Intel等大公司也相继推出自己的嵌入式平台,给嵌入式实验教学提供了丰富的选择。
目前,国内嵌入式系统教学大多选择基于ARM核的开发平台,其中又以ST的32位产品为主。这是由于STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能化的发展[7-8]。截至2016年10月,STM32全球出货量已超过20亿颗[9]。可以预见随着物联网和人工智能的迅猛发展,嵌入式教学将迎来新的契机和挑战。
当前国内高校的嵌入式系统实验教学大都定位于32位MCU。以采用ARM内核的STM32系列产品为例,开设基础实验内容涉及GPIO输入输出实验、串口实验、中断实验、定时器实验、I2C接口实验、SPI实验、CAN控制器实验等[10]。依托的实验硬件以开发板为主,采用寄存器开发或库函数开发实现具体应用,表1为两种开发形式的优缺点对比。
表1 寄存器开发与库函数开发优缺点对比
通过对比分析可知,库函数开发采用分层的思想,实际是基于CMSIS标准新建了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异,这对软件的移植有极大的好处。STM32固件库就是按照CMSIS标准建立的。
鉴于以上情况,在实际的实验教学中大都采用基于库函数的开发方式。存在的问题是学生需要面临复杂的STM32初始化配置,形成相应的模板才能进行后续实验开发。学生普遍反映两个问题:第一,配置模板的过程比较繁琐;第二,实验中时钟和引脚的配置不够直观。笔者联合使用ST公司2014年推出的STM32CubeMX和ARM公司推出的Keil Vision解决了上述问题。
以STM32F103为例,对比改革前后嵌入式实验教学流程的差异,见图1。
图1 嵌入式实验教学流程对比图
通过对比可见,基于STM32CubeMX的实验教学流程较传统基于标准库函数的开发模式更简洁,效率更高。
通过经典的流水灯实验,可以详细说明基于STM32CubeMX的实验教学实施方案。
图2给出利用STM32CubeMX新建工程,选择芯片型号,通过图形化下拉菜单初步设置引脚类型;图3给出设置时钟、引脚具体设置、生成Keil文件的过程。可以看到,通过图形化设置的方法,大大简化了开发设置流程。
利用Keil μVision打开由STM32CubeMX辅助生成的工程文件,然后进行用户程序的编写,见图4。
图2 STM32CubeMX图形化设置
图3 利用STM32CubeMX进行初始化设置
为评价实践效果,笔者选取电子信息工程专业大三的30名学生,分成两组进行教学实验,分别测试“流水灯实验”(简单实验)、“PWM实验”(较复杂实验)。A组利用基于STM32CubeMX的实验方法,B组利用基于标准库函数的实验方法。实验情况见图5,其中图5(a)给出简单实验的进展情况,在2小时实验课程内,采用基于STM32CubeMX的实验方法的A组学生较采用基于标准库函数方法的B组学生较快、较好地完成了实验。这种领先优势随着实验难度的加大愈发明显,见图5(b)。考虑到个体差异,A、B组互换实验方法重新进行了实验,得到了类似结果。
通过对学生实验主观感受的反馈可以发现:学生普遍认为基于STM32CubeMX的方法在初始化配置时更加直观、形象,步骤更加清晰、明确。配置完成后在用户编程阶段,编程更加方便、具体。调试成功率也大大提高。
将STM32CubeMX引入嵌入式实验教学后,学生实验用时普遍缩短了13%~18%。学生反映实验更加直观、形象。通过基于STM32CubeMX嵌入式实验教学改革实践,大大提高了实验教学的效率和学生对嵌入式系统的学习兴趣,有助于学生把握当前嵌入式系统发展趋势,提升实验动手能力,取得实验教学的良好效果。
[1]张凯龙. 从架构、原理到设计的多维融合嵌入式系统知识体系构建[J]. 计算机教育, 2017(4): 98-103.
[2]艾红, 陈雯柏. 微处理器系列课程整体优化方案研究[J]. 实验技术与管理, 2016, 33(1): 169-172.
[3]鄢秋荣, 王玉皞, 王艳庆, 等. 面向软硬件协同设计的嵌入式系统教学改革与实践[J]. 实验室研究与探索, 2016, 35(6): 190-193.
[4]胡青, 余嘉, 苏玉刚. 嵌入式课程的理论教学改革与实践[J]. 计算机教育, 2017(6): 131-134.
[5]张林, 程文青,罗杰,等. 美国高校电气工程专业本科培养计划浅析[J]. 电气电子教学学报, 2014, 36(3): 6-10.
[6]蔺智挺. 基于虚拟仿真实验的模拟集成电路实验教学[J]. 实验技术与管理, 2016, 33(1): 122-126.
[7]陈晨, 邱春玲, 李肃义, 等.“学生主体—教师主导”的嵌入式系统教学[J]. 计算机教育, 2017(1): 136-138.
[8]谢盈, 丁旭阳, 陈建英, 等. 嵌入式系统与设计在物联网工程专业的教学方法探索[J]. 教育教学论坛, 2016(43): 131-132.
[9]EEFOCUS. STM32累计出货20亿颗, 锁定物联网市场再出新系列[EB/OL]. [2017-07-11]. www.eefocus.com/mcu-dsp/371172.
[10]陈德富, 何通能, 张洪伟. 学术兴趣驱动的嵌入式系统教学[J]电气电子教学学报, 2016, 38(1): 93-94.