日期:2023-01-23 阅读量:0次 所属栏目:学前教育
一、引言
几十年来,以8位/16位微处理器为核心的微机原理与接口技术一直是电子信息类专业的专业必修课,在低端应用中,它们还是有很大的应用市场的。但是近年来,以ARM为核心的32位处理器迅速发展,凭借其高性能、低功耗等特性成为主流微控制器产品,也成为物联网的重要技术支撑,市场对掌握32位微控制器应用的人才需求尤为强烈。为适应市场对人才知识技能的要求,各大高校相继开设了32位嵌入式系统课程,由于STM32结构复杂,涉及知识面广,所以当初主要是面向研究生开设的。随着以ARM为核心的STM32的诞生,相关集成开发环境和固件库的支持以及STM32开发板功能的完善,笔者尝试在独立学院中开设该课程。虽然独立学院学生的基础相对薄弱,但是通过合理设置该课程的教学大纲并优化教学方法,还是可以达到良好的教学效果的。另外,在全国以及各省的大学生电子设计大赛中,传统的MCS-51单片机已经不能满足要求,越来越多的学生需要用STM32来解决控制问题。笔者发现,开设基于STM32的嵌入式系统设计课程,对学生参加电子设计大赛,完成毕业设计,提高科研能力以及增加就业机会等都具有非常大的促进作用。
二、嵌入式系统设计课程的特点
嵌入式系统,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。而根据英国电器工程师协会的定义,嵌入式系统为“用于控制、监视或者辅助操作机器和设备的装置”。目前国内普遍认同的嵌入式系统定义为:“嵌入式系统被定义为以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应于应用系统对功能、可靠性、成本、体积、功耗等具有严格要求的专用计算机系统”。一般而言,嵌入式系统的结构可以包括四个部分:嵌入式处理器、存储器、通用设备接口和I/O接口以及软件。
嵌入式系统技术发展很快,从最早的微处理器(MPU),发展到微控制器(MCU),再到片上系统(SoC),嵌入式系统的结构越来越复杂。随着芯片技术的发展,使得单个芯片集成多种接口,处理能力变得更强,因而也能满足更广泛的应用需求。其实单靠课堂的时间是不可能让学生完全掌握嵌入式系统技术的所有功能的,但是可以让学生入门,掌握嵌入式系统的一般开发过程,为其今后更深入地学习有关嵌入式系统技术打下坚实的基础。
嵌入式系统的综合性很强,它涉及到的基础课程主要包括:电工与电路基础、数字电子技术基础、模拟电子技术基础、信号与系统、通信原理、自动控制原理、计算机程序设计、计算机原理、操作系统、微机接口技术等。通过该课程的学习,要求学生一方面要了解嵌入式系统的硬件结构与各种接口的功能;另一方面也要求学生掌握利用固件库编写控制程序的方法。
由于嵌入式系统主要是面向用户、面向产品、面向应用的,因此嵌入式系统技术必须与具体应用相结合才能体现出它的优势。总之,嵌入式系统技术是一门实践性很强的课程,只靠看书是无法理解透彻的,必须要经过大量的实际操作才能学好。在嵌入式系统技术的相关实验中,学生通过反复地发现问题、分析问题及解决问题,不仅可以深入理解嵌入式系统技术的相关原理,而且也有助于学生真正地掌握嵌入式系统的应用技术。而合理的实验项目设计,则可以帮助学生由浅入深地逐步掌握嵌入式系统的开发技术。
三、实验平台的搭建
传统的嵌入式系统实验主要依赖实验室,所有的实验必须在实验室中才能完成。但是,一般情况下,实验室不会对学生随时开放,导致学生只能在规定的课堂时间内做实验,而当实验中遇到的问题一时无法解决的时候,学生就必须等到下次实验课才能解决。
基于STM32的嵌入式实验硬件平台主要包括PC机、JLINK仿真器(可选)、开发板,如图1所示。其中,开发板价格便宜,体积小,方便携带,可以每人一块。教师可以在第一次实验前发给学生,学生也可以在课余时间继续学习,在学期结束时由教师再收上来。同时,开发板功能强大,通常具有很多种外设,功能模块如图2所示。根据不同的开发板,学生可以设计开发出基础型、设计型、综合型、创新型等多种不同类型的实验项目。
基于STM32的软件实验平台选用与51单片机一样的集成开发环境Keil MDK-ARM,在程序设计过程中,若使用库函数编程,则需预先到官网下载STM32的固件库。学生可以像开发51单片机一样,创建STM32的工程、编写源代码、生成目标文件,最后将调试好的程序下载到开发板中具体运行。
四、实验内容的设置
1.嵌入式系统课程教学目标。嵌入式系统设计以ST公司的32位基于ARM Cortex-M3内核的STM32为核心,主要介绍嵌入式系统的定义、特点和发展,ARM Cortex-M3体系结构,片上外设资源与STM32固件库等相关基础知识,要求学生能够学会嵌入式系统的开发技术和系统综合设计方法,为今后从事嵌入式系统方面的应用与研究的学生打下坚实的基础。本课程的具体教学目标主要有以下几项:(1)掌握嵌入式系统的基础知识;学习ARM Cortex-M3体系结构;学习STM32 MCU的结构、STM32最小系统、片内外设资源和外部引脚功能,学习嵌入式系统硬件的设计方法;(2)学习STM32的软件开发技术,掌握利用嵌入式C语言设计STM32程序的方法;(3)学习嵌入式系统硬件设计技术,掌握STM32最小系统硬件和外围扩展单元设计,并能够综合运用嵌入式系统软件和硬件设计技术解决实际工程中遇到的问题;(4)学习ARM Keil集成开发环境的使用方法,熟练使用STM32开发板,并在此基础上完成规定的基础型、设计型以及综合创新型实验。 2.??验项目设计。为了达成嵌入式设计课程的教学目标,笔者在实际的实验教学过程中设计了以下一些不同类型的实验项目:(1)基础型实验。①这个基础型实验主要是基于固件库的工程模板的建立。笔者要求学生在自己的电脑上安装好开发软件,建立STM32工程,在工程中添加库函数,编写源代码,创建目标文件。②GPIO端口直接输入/输出实验。笔者要求学生掌握GPIO工作方式的配置方法、GPIO函数的功能等,同时编程实现了根据按键控制LED以不同的方式点亮。(2)设计型实验。①笔者在设计型实验中主要进行的是外部中断应用实验,在这个实验中,笔者要求学生掌握外部中断的工作方式,EXTI和NVIC相关函数功能与使用方法,能够编写中断初始化程序与中断服务程序,实现按键中断控制数码显示。②定时器应用实验。在这个实验中,笔者要求学生掌握定时器的工作方式、定时时间常数的配置,编写程序实现秒计时、计时暂停、清零等功能。③串口通信实验。在这个实验中,笔者要求学生掌握STM32串口结构与通信原理,能够编程实现STM32与PC机之间的数据传送。④A/D转换实验。在这个实验中,笔者要求学生掌握A/D转换器的工作原理,掌握ADC初始化配置,ADC中断,数据采集等程序设计技术,能够将模拟电压值显示在数码管上,同时通过串口上传到PC机。(3)综合创新型实验。①综合创新型实验主要是基于nRF24L01模块的近距无线通信系统来设计的。在这个实验中,笔者要求学生了解近距无线数据传输原理,掌握24L01的工作原理与特点,掌握24L01的程序设计与应用技术。在具体的实验操作中,两人一组,分别实现双方数据的发送与接收,并能在显示器上进行显示。②基于MF RC522模块的RFID读写器设计。在这个实验中,笔者要求学生了解RFID的工作原理与特点,了解和掌握RFID的程序设计方法,能够应用MF RC522 RFID模块,设计一个RFID读写器,实现对电子标签的读写操作,如可读取校园卡的ID等。
五、实验教学方法与考核
在嵌入式技术实验教学过程中,笔者始终强调要以学生作为实验的中心,同时采用开放式与传统式相结合的实验教学模式,要求学生在自己的笔记本电脑上搭建好STM32开发环境,且学生可以将开发板带走。此外,教师可以将嵌入式技术相关实验的实验目的与要求提前发布,鼓励学生在课前完成实验,充分调动学生的积极性和创造性。实验课上,教师主要负责的是指导答疑、成果检查、当场提问并打分。通过现场提问这种方式,既能让学生之间互相学习,又能让其他学生进行有效地监督,保障最终成绩的公平公正。另外,笔者在嵌入式技术实验的教学环节中采用的是全过程考核方式,考核内容主要包括以下几个方面:(1)实验项目完成情况(占30%):考察完成的进度、每项实验要求的完成情况以及创新成果等。(2)回答问题表现(占30%):考察对实验内容的熟悉程度以及相关基本知识的掌握情况。(3)实验报告质量(占40%):主要考察学生撰写实验报告的结构清晰程度、内容的正确性与完整性等。
六、结语
随着嵌入式技术的快速发展和社会对嵌入式研发人才需求的不断增加,嵌入式系统教学团队十分重视嵌入式系统实验课程的教学研究和教学改革。经过几年的教学实践,结合独立学院学生的特点,笔者建立了基于STM32的嵌入式系统设计课程实验教学体系,确定了比较合理的实验项目与考核评价方式,并采用了开放式与传统式相结合的教学方式,最终的结果就是嵌入式技术课程的选课人数不断增加并获得了学生的好评。通过实践课程的学习,学生嵌入式系统的应用开发能力得到了一定的培养和提高。作为一门综合性强、内容多、侧重应用、内容更新快的应用技术课程,嵌入式技术教学需要在实践教学环节进行更深入地探索,更好地促进学生应用能力的培养,并不断提高嵌入式技术课堂的教学质量,为学生参加电子设计大赛、完成毕业设计以及今后工作奠定良好的理论基础和实践基础。
本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/xueqianjiaoyu/218705.html