嵌入式系统课程设计的线上项目式教学方法
2021-06-28徐磊,屈磊,刘瑜
徐 磊,屈 磊,刘 瑜
(安徽大学电子信息工程学院,安徽合肥 230601)
嵌入式系统课程设计是高校硬件类的综合性应用训练课程。如何提高学生的嵌入式工程实践能力和设计能力,适应嵌入式行业要求,是实际教学中面临的新课题[1]。由新冠疫情引发的线上教学暴露出了课程资源准备不充分、师生互动未达到预期效果、缺乏良好的教学设计、学生自我管理难以把控等问题[2-3]。另外,线上教学无法提供该课程所需的硬件平台,进一步增加了开展难度。因此,研究嵌入式系统课程设计的线上教学方法具有重要意义。
项目式教学是在教师引导下,设置一些实际或虚拟项目,把该课程中所要讲授的基础知识和基本原理及与其对应的实践部分融合在一起。通过项目的实施完成教学内容,学生根据项目主动获取相关知识[4]。该教学方法能够为该课程教学效果的提升提供有力支持。Proteus平台将硬件系统软件化,能够模拟硬件系统的实现过程,并能够实时验证程序的正确性[5]。因此,该平台的使用能够为课程的线上教学提供硬件支持。近年来,STM32单片机在大学生创新创业项目和比赛中,逐渐成为了热门首选。但其基于标准库函数的开发方式与51等8位单片机开发方式截然不同,抽象、复杂的引脚和时钟配置提高了入门难度。近两年,Proteus开始提供对STM32F1和STMS2F4单片机的虚拟仿真支持,ST公司开发并不断优化STM32CubeMX软件,使用其进行界面化代码初始化,在大大降低入门难度的同时,提升了软件设计效率。
嵌入式系统课程设计的线上教学开展可关联当前的产学研项目,采用基于Proteus、STM32CubeMx和Keil for ARM的STM32新型联合开发方式,创建和讲解运用单片机技术解决复杂工程问题的新型案例。以“Proteus中基于STM32的单总线温湿度和传感器故障检测的终端设计”为例,详细介绍线上项目式教学方法的设计和实施过程。
1 实验要求
掌握单总线传感器的工作原理、硬件电路设计和软件编程。在Proteus 虚拟仿真环境中,实现STM32单片机对DHT11传感器的温湿度数据采集和故障情况诊断,并通过虚拟终端或PC机串口调试助手进行结果显示。
(1)熟悉温湿度传感器DHT11的器件特性和工作原理。重点理解单总线协议,并用C语言程序表示协议时序图。明确DHT11的断路、短路故障类型。
(2)硬件电路设计。安装Proteus 软件,进行Proteus 中STM32 单片机的选型和基础仿真参数配置,搭建STM32单片机最小系统的虚拟仿真平台。在此基础上,增加串行口通信器件和DHT11传感器,并设计DHT11故障类型(断路、短路)的模拟电路。
(3)软件设计。安装STM32CubeMx、Keil for ARM、虚拟串口、串口调试助手等软件。根据硬件电路设计,针对GPIO 模拟单总线时序和串行口通信,实现STM32CubeMx 基于图形界面的代码初始化。完成Keil for ARM基于HAL(硬件抽象层)库的串行口通信,并根据实验内容进行相应程序设计。
2 教学设计
2.1 实验原理
DHT11的单总线时序图如图1所示。单片机发送一次开始信号,DHT11从低功耗模式转换到高速模式。等待主机开始信号结束,DHT11发送响应信号,送出40 bit的数据。更为具体的技术参数可参考DHT11的技术文档。由图1可以看出,DHT11是否响应输出可以作为其是否发生故障的判断条件。在故障情况下,通过读引脚,并根据引脚电平来进一步判断故障类型是断路还是短路。
图1 单总线时序图
2.2 Proteus中的硬件设计
给出一个实验参考电路原理图,如图2所示。由图2可以看出,该电路包含STM32单片机,具体型号为STM32F103R6;包含串口通信器件COMPIM;包含示波器,用以观察单总线协议时序;包含虚拟终端,用以显示温湿度数据和故障检测结果(安装虚拟串口,串口调试助手功能与虚拟终端相同);包含不同故障类型的DHT11模拟电路,并可通过开关SW1进行器件的选择连通。断路故障模拟电路中DHT11的数据线与PC0之间始终是断开状态。短路故障模拟电路中DHT11的数据线与地线之间始终是连接状态。
图2 实验参考电路原理图
2.3 软件设计
根据系统设计方案,这里给出一个实验参考软件流程图,如图3所示。DHT11.c和DHT11.h是重点设计对象。需要按照实验要求,根据实验原理并遵照HAL 库函数使用规范进行具体设计。图3 中的STM32单片机初始化采用STM32CubeMX以图形界面的方式进行,经过引脚功能和时钟系统配置后的初始化代码直接导出为Keil for ARM的工程文件。引脚功能配置如图4所示。
图3 实验参考软件流程图
图4 STM32CubeMX中引脚功能配置
3 实验效果
DHT11 正常连接时示波器中显示单总线时序波形,虚拟终端显示正常连接情况的温湿度数值,如图5所示。对于故障情况,示波器无时序波形,虚拟终端的故障分析结果显示可自由设计。DHT11 在断路、短路故障情况下的演示效果图分别如图6和图7所示。
图5 DHT11正常连接情况的演示效果图
图6 DHT11断路故障时的演示效果图
图7 DHT11短路故障时的演示效果图
4 教学实施进程
实验课程的教学周数为4 周(1 学期共18 周),即12~15周,具体实施过程如下。
(1)选题的确定。不占用实际教学周数,提前向学生提供6 个以上实验题目及任务、所需基础知识的说明,方便学生进行充分地选题调研和基础积累。
(2)过程指导。①前期,对于第一阶段的基础仿真、联调平台的搭建,各组具有相同性,在第12 周完成讲解。②中期,对于第二阶段各组实验题目的设计,各不相同,在13~15周进行单独指导。③后期,给出实验报告格式和内容上的规范要求,在第15 周进行实验报告撰写的指导。
(3)实验考核。学生最终成绩最高为100 分,主要由平时成绩(占30%)、实验报告成绩(占40%)和PPT答辩成绩(30%)组成,每一部分的成绩最高为100分。
5 结束语
结合项目式教学的优势,本文采用Proteus 仿真软件对嵌入式系统课程设计进行项目式教学研究。在实施过程中学生利用Proteus仿真软件进行项目的设计和仿真,把理论和实践结合起来,使得教学内容更形象化,同时节省制作成本。通过本课程的学习和配套的系列实验,学生能够熟悉STM32 单片机系统的基本分析和设计规范,自行设计小型单片机控制系统,掌握开发系统级和工业级产品的方法、思路和手段。