俞翔 杨庆 曹欲晓 钱瑛
摘 要 根据应用型本科院校产教融合的教育方针和计算机专业人才培养的特点,从理论教学和实践教学两方面探讨嵌入式系统课程教学改革方案。本方案主张理论推动实践,实践检验理论,通过优化教学内容、改进教学方法将实际项目的开发经验融入课堂,调动学生学习嵌入式系统的兴趣,鼓励学生参与各层次嵌入式系统设计竞赛,培养学生的工程综合实践能力,实现应用型本科人才的培养目标。
关键词 计算机专业;嵌入式系统;教学改革;实践教学
中图分类号:G642.0 文献标识码:B
文章编号:1671-489X(2018)16-0090-03
1 引言
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能可靠性成本体积和功耗有严格要求的专用计算机系统[1]。随着半导体技术和計算机技术的高速发展,嵌入式系统已经在军事领域、工业自动化、医疗仪器、智能家电、通信和消费类电子产品中有了非常广泛的应用。可以预见的是,不远的将来,嵌入式系统技术还将在人工智能和机器人领域大放异彩。受行业需求的带动,优秀的嵌入式系统软、硬件研发人才是目前社会较为紧缺的资源。因此,“嵌入式”培养方向正成为国内高校电子信息工程、自动化控制、计算机科学等专业的关注热点。
不同高校和专业对“嵌入式”培养方案的侧重点不尽相同。南京工程学院立足于学以致用,该院计算机工程系自2013年面向本科阶段,在多个计算机类专业中设立“嵌入式”培养方向,在嵌入式系统的教学与研究方面进行较为深入的实践与探索,获得一些有益经验。但嵌入式系统技术发展日新月异,教学实践中除了要引导学生掌握嵌入式系统的基础理论知识和系统开发的基本方法,更重要的是要让学生掌握嵌入式系统设计的思路和相关知识技术的迭代途径[2]。
本文将从教学内容、教学方式和实践教学环节三个角度,分析和讨论嵌入式系统课程的教学改进方案,提出以真实的企业项目为驱动的课程设计方法,从实际出发,让学生学以致用,激发学生的学习积极性,提高授课效率。
2 教学内容设计
嵌入式系统的教学内容主要可以包含硬件设计和软件设计,选取的教学内容应该符合本科阶段的学习难度、课程学时以及可操作性。下面将分硬件和软件两部分讨论嵌入式系统教学内容的编排。
嵌入式系统硬件教学内容的设计 系统硬件主要包括微处理器和外设等基本系统构架,这部分内容也正是这门课的起点。注重入门引导的作用,可以激发学生的学习兴趣和积极性。基于此,笔者会在这门课的开端给学生展示一些自制系统的硬件,再分块结合嵌入式系统的硬件构架一一讲解,如图1所示。结合实物分析理论,大多数学生能够较快进入创设的课堂情境中。微处理器是硬件部分的核心,其构架较为复杂和抽象。在讲述这部分内容的时候,笔者注意与学生已建立的知识体系(即51单片机和计算机组成原理)相结合,通过比较嵌入式微处理器与它们的共通之处,帮助学生理清学习思路,同时也体现出嵌入式微处理器架构的特点,强调处理器在各应用领域的应用中没有“最好”,只有“最合适”。这里还可以根据学生的兴趣穿插一些处理器选型的教学内容,增强学生处理实际工程问题的能力。
嵌入式系统的外设和外围电路,主要包括存储器、时钟、电路数据端口、复位电路和电源等,重点介绍能够支撑系统启动和运行的最小系统概念。除了告诉学生最小系统的组成单元,还可以从人的生理角度解释为什么嵌入式最小系统需要由这几个单元组成。比如一个系统要想正常运行,除了要有微处理器(大脑),还必须具备时钟电路(心跳)和电源电路(血压)等。外围电路的教学内容方面,重点放在电源、存储器、GPIO和串行通信接口等部分。
在分模块介绍硬件之初,就要通过一些案例向学生强调电源电路在系统中的重要性——好的电源电路就是好系统的一半。通过讲解电源的性能指标和典型电源模块,让学生明白如何根据需求设计电源电路;通过分析不同类型存储器的特点,告诉学生在项目中如何配置和扩展存储资源;通过讲解GPIO的复用功能,让学生直接体会“软件”到“硬件”的距离,消除计算机类专业学生对硬件的排斥,也为后续软件驱动的教学打下基础;串行通信接口的内容,通过对UART、IIC、SPI这三种较为经典和常用的串行总线电气规范及协议的讲解,让学生对设备通信的硬件基础有较透彻的了解。针对计算机专业学生硬件基础较为薄弱的特点,在介绍外围电路的理论基础上,还要补充嵌入式系统实际工程中经常遇到的电路问题,并让学生用理论知识判断问题的成因。
嵌入式课程软件设计教学内容的选取 在修嵌入式系统课程之前,计算机相关专业的学生已经建立了较好的软件开发基础,具备了C、C++和Java等高级语言的编程基础。因此,嵌入式课程软件设计教学内容应该把重心放在嵌入式软件层次性、汇编语言和驱动程序编写方面。另外,可以适当介绍一些典型的嵌入式操作系统。
授课时需要向学生讲授各软件层的功能与特点,通过实例讲解让学生认识到操作系统并不是嵌入式软件体系中的必需层次,引导学生根据嵌入式系统的软件体系结构对软件设计分层和分块。重视嵌入式汇编语言的教学内容,强调汇编语言在执行效率和时序性方面具有不可取代的优势。在驱动程序编写教学内容方面,通过一些驱动小例程,让学生建立起通过“软件”控制“硬件”的概念,如在课堂上给学生演示通过对GPIO相关寄存器进行配置并控制I/O口点亮、熄灭LED的例程。必要的情况下,根据学情加入一些先导课程如数字逻辑、51单片机的复习内容,帮助学生理解嵌入式驱动程序与硬件的关联性。
嵌入式操作系统方面,应向学生介绍几种主流的嵌入式操作系统,让学生对商用和开源嵌入式操作系统的发展概况和各自特点有一定了解。最后可以引导学生根据文档自学Keil-MDK集成开发环境下自带的RTX操作系统,体会任务并发执行带来的高效率,让学生体验任务轮询方式和并行执行方式编程思路的区别,也为实践教学环节打下基础。
3 嵌入式系统教学方式的优化
嵌入式系统的教学方式要体现温故知新和学以致用。任课教师在充分理解教学内容的基础上,合理安排授课内容的次序,根据学情适时复习一些先导课程的内容,如C语言、51单片机、数字逻辑等。紧密结合就业市场需求和实际项目的教学方式,带动学生的学习兴趣,提高教学效率。
嵌入式课程硬件教学方式改革 在嵌入式硬件设计教学中,笔者首先向学生介绍一块自制的无人机飞行器控制器(飞控),如图2所示。该飞控采用STM32 F4系列处理器,内置FPU具有较强的数据处理能力,飞控上还集成了微型电源模塊、三色LED、气压计、陀螺仪、加速度计、罗盘、NAND-Flash和Wi-Fi等外设,同时可以通过丰富的通信接口外扩设备。展示该飞控能够让学生直观地认识嵌入式系统的硬件组成,若学生对系统硬件的制作过程感兴趣,也可以引入硬件设计的基本流程以及教师的一些感悟。随后可以结合授课内容在不同阶段对飞控板上的模块做单独讲解。比如在讲到UART时可以加入GPS模块,演示该模块如何通过UART接口与飞控主板通信等。运用该教学方式,学生的积极性被充分调动,提问次数也较多。任课教师应该牢牢抓住学生关注的问题,结合实例,自然地引导学生理解理论知识[3]。
嵌入式课程软件教学方式优化 嵌入式软件教学方式要抓住以应用需求为主导,软件需求服从应用需求的主线。通过对多个典型的实际项目应用需求进行分析,让学生明白虽然项目的复杂度和实现功能大相径庭,但是软件层次的概念必须十分清晰;也要让学生明白操作系统并不是必选项,在某些需求下,一个软件架构高度优化的程序执行效率比优秀的操作系统还要高。而讲解操作系统部分的内容时,建议采用简单易用的操作系统[4],如RTX、μc/OSⅡ等,重点让学生体会任务优先级、任务间的通信、任务的切换以及中断机制在操作系统中的作用。
4 嵌入式系统实践教学的优化
实践教学是引导学生从理论知识向工程实践能力转化的重要环节[5],学生需要通过此环节验证自身对理论知识的理解是否存在偏差,从实践中找到问题,再对理论知识反刍,加深理解。另外,实践环节旨在训练学生的动手能力和解决工程问题的能力[6]。
嵌入式实践教学需要向学生详细介绍实验系统的结构图和电路原理,在此基础上介绍软件集成开发环境,并以一个简单的实验引导学生搭建实验环境。教师在学生熟悉开发流程后,应逐渐增加实验的难度,当他们做出正确的阶段性实验结果时,要给予鼓励并提出进一步的需求;当学生在调试过程中遇到困难时,要给予适当的引导和提示,而不是直接告诉答案。对于学有余力的学生,应该鼓励在已有实践基础上开发一些小系统,实现一些具有简单功能的电子设备。在这过程中培养学生独立思考和解决问题的能力。
此外,在嵌入式实践课程结束后,应鼓励学生参加各个层次的嵌入式系统设计竞赛,进一步锻炼学生的工程实践能力和分工合作能力,为提高学生的就业质量打下良好的基础。
5 结论
本文针对嵌入式系统理论和实践教学的特点,从教学内容、教学方式两方面探索教学的有效途径。结合实际企业项目的需求,优化教学内容和教学方式,增强了学生的软、硬件设计能力,培养了学生研发小型系统的能力。通过鼓励学生参加各层次的科技竞赛,锻炼了学生的综合素质,为高质量就业打下良好基础。
参考文献
[1]孙弋,朱周华,等.ARM-Linux嵌入式系统开发基础[M].西安:西安电子科技大学出版社,2008.
[2]黄敏,郑斌.嵌入式方向实践教学体系构建研究:以长沙理工大学为例[J].当代教育理论与实践,2015(1):50-53.
[3]钱丹浩.项目化嵌入式教学的开发系统平台构建[J].单片机与嵌入式系统应用,2010(11):22-24.
[4]任哲.嵌入式实时操作系统uC/OS-II原理及应用[M].北京:北京航空航天大学出版社,2009.
[5]谭会生.基于ARM嵌入式系统的研究性教学探讨[J].中国电力教育,2012(10):70-71.
[6]权宁一,权晓林.嵌入式系统专业实验教学改革的探索与实践[J].实验技术与管理,2011(3):146-147.