粱宜勇 王晓萍 赵文义 刘玉玲 王立强
摘要:“嵌入式系统”是较新兴的课程,在理论与实践教学上正处于不断的成熟中。在理论教学中,通过引入比较式教学,使学生得以更好地理解和吸收新知识;在教学内容上可以灵活地根据教学目标进行裁剪,当学时数有限时,教学深度与广度上宜适度收敛;实践内容要反映递进式教学特点,同时避免实验内容的高级单片机化;在与专业结合方面,应努力将专业特点融入嵌入式系统课程的教学中去。
关键词:嵌入式系统;比较式教学;教学内容裁剪;递进式实践环节;专业融合
“嵌入式系统”课程是“微机原理”课程的后续课程,在教学、实验、教材等方面,后者比前者更为成熟和规范,这是因为“微机原理”课程已有几十年的发展,而“嵌入式系统”课程则是较新兴的课程。由于社会和专业的双重需要,许多学校的理工专业陆续开设了这门课程。浙江大学的光电专业本科,本着贯彻浙江大学“KAQ”(知识、能力、素质)并重、“宽专交”并行的人才培养理念,也开始引入“嵌入式系统”这门课程,使光电专业本科的学生在微机类课程的发展和光电知识的交叉上更进一步。为了更好地贯彻“教学服务于学生”的宗旨,我们对“嵌入式系统”课程进行了初步的探索和研究,以期起到抛砖引玉的作用。
一、比较式教学方法
“嵌入式系统”与“微机原理”课程一脉相承,却有一定的区别。就处理器而言,一般前者选ARM处理器,后者选MCS-51单片机,二者在体系结构上有较大差别,如支持的数据类型、寄存器组织、处理器模式、寻址方式及指令集等;在软件上,“嵌入式系统”课程一般要讨论操作系统以及复杂的启动程序问题,而“微机原理”课程则不涉及操作系统或启动程序问题;在硬件上,嵌入式处理器芯片的功能强大,接口、外设众多,导致出现数百个寄存器,是单片机所不能相比的。
尽管如此,二者仍有许多共性的和相互联系的地方,因此在教学上可以采用比较式教学法。
比较式教学法的前提是学生已经修读过微机原理类课程,这在许多已开设或即将开设嵌入式系统类课程的专业中基本能保证。已修过微机原理类课程的学生,对微机如51单片机的体系结构、软硬件模型有清晰的认识和轮廓感,在学习类似的“嵌入式系统”课程时,下意识地会用已学的微机课程知识作比较性理解。比如:嵌入式处理器的寻址方式和51单片机相比是交叉的:51系统有中断,嵌入式系统则有类似的概念但称为异常:51指令集是变长的,但嵌入式体系如ARM指令集是等长的。这些具有比较性的问题不仅学生会思考。教师在教学时更应主动提及并作出比较性解释,这对学生的理解、记忆和深入学习是非常有益的。
我们在教学中发现,适当的比较性讲解,有利于学生快速适应和接受“嵌入式系统”这门新课程。
二、教学内容的裁剪
如上所提,“嵌入式系统”课程没有“微机原理”课程成熟和规范,这使各个学校、各个专业在教学内容的取舍上并不统一,而且相差很大。有些学校或专业注重概念讲解,偏向于基础性的入门教学;有些则把重点放在体系结构这一块,不讲具体嵌入式芯片;有些则把嵌入式操作系统作为主讲内容:有些则以某流行嵌入式处理器为中心,进行应用性讲解。众多的内容取向表现为相应的教材也是五花八门,和“微机原理”教材相比,寻找一本合适的符合教学目标的嵌入式系统教材并不容易。另外,不同的内容取向也会导致不同的教学深度。
在我们具有试验性的选修课教学中,学生反映学习难度太大。这一方面是课程设置的学时偏少,理论课时为24学时,另一方面是由于学习内容太多且部分内容讲解太深。在该选修课中,内容涉及ARM体系结构、程序设计、ARM9芯片、操作系统四大块,当面面俱到时,内容确会显得过于广泛和深入。在实际的理论教学中,为了既能达到教学目标又能获得良好的教学效果,在教学内容的广度和深度上作适度收敛是必要的。在教学内容上,各个专业可以根据自己的教学目标及给定的课时数,对教学内容本身的深度、广度进行适当裁剪,以达到学生能顺利接受新知识为准。
实际上,上述反映的在嵌入式系统教学内容、教材及深度等方面的问题具有一定的普遍性。在嵌入式系统类课程达到微机原理类课程的成熟度之前,各高校、各专业从不断的教学实践中得出经验并进行共享讨论是非常有价值的。
三、递进式的实践环节
实践环节是课程教学不可或缺的部分,尤其对于“嵌入式系统”这样抽象难懂的课程。实践环节的主要过程是实验,而实验内容的选取与分布,对课程的教学效果有很大影响。
微机原理类课程的硬件实验内容,大都是通过用汇编语言编程来认识所学单片机各功能单元的工作特性,各个实验的关系与难度基本是平行的。在嵌入式系统的实验中,如果仅停留在类似“微机原理”课程的实验内容是不够的,因为这样不能反映嵌入式芯片的特色,如支持复杂嵌入式操作系统等,并且很容易将嵌入式芯片作高级单片机化。
在我们购置的实验系统中,可以开设许多实验,基础实验有:AD接口实验、DA接口实验、键盘与LED接口实验、直流电机与步进电机控制实验、RS485通讯实验、CAN总线通讯实验等。但除基础实验外的大多数实验是基于嵌入式Linux操作系统开发环境之上的,如驱动模块实验、BootLoader的编译与烧录、Linux内核的移植与编译等。学生对各部分实验的难度感受是非常明显的,如基础性实验,虽然实验开发环境已从原来的Keil uVision过渡到了ADS集成开发环境,甚至开发语言也从汇编语言过渡到了C语言,但学生能很好地适应,这与他们在“微机原理”课程中取得的训练有关。但当进入嵌入式Linux开发环境的实验时,学生在实验中表现出明显的困难,这是因为Linux操作系统对大多数学生是陌生的,而且实验中所涉及的知识面非常广泛,甚至使有些同学感到举步维艰。
鉴于此,嵌入式系统类课程的实验内容应是递进式的,也就是先安排若干基础实验,然后安排适量中级实验内容如驱动程序开发,最后是少量提高实验如非常重要的启动程序实验、建立于操作系统开发环境之上的简单程序开发等。对于比较容易的实验,强调深入理解:对于比较深的实验,强调理解过程即可。这一方面使学生对难度的把握和适应有个循序渐进的过程,另一方面保证了学生对嵌入式系统特色知识的完整认识。随着教学实践的不断发展,实验内容、分布甚至实验开发环境等也应做出适度变化,以适应教学目标、社会需求等的变化。
除了在实验室做实验,还可在实践环节引入其他手段来加强学生在该课程的训练,如建立以PROTEUS软件为核心构建的虚拟实验室便是手段之一。PROTEUS最大特点是可以同时仿真模拟电路、数字电路和MCU,可以满足对一般的嵌入式系统硬件实验的仿真。
四、课程与专业的融合
就“嵌入式系统”课程本身而言,其知识点是不以学生所处的专业而变化的,但在具体的教学当中,可以将知识点和学生的专业进行融合。
以光电专业本科的“嵌入式系统”课程而言,其教学目标和其他工科专业应是大致相同的,但在具体教学实践中,可有意识地引入与光电专业相关的教学案例、实验构建,以激发和建立学生的学习兴趣和良好的专业归属感。比如,教师可以将从事过的基于嵌入式系统的光学仪器、光电检测系统的设计科研过程作为例子,与教学内容相结合进行讲解,必定是生动且富有真实感;又比如,在可能的情况下对某些实验进行光电相关的重新设计和构建,使学生对嵌入式系统在光电系统的应用有感性和理性的认识。
除了理论教学,我们还鼓励学生积极参与第二课堂,在各种与专业相关的实践如光电设计大赛、电子竞赛、机械竞赛、SRTP、省新苗计划、国家创新项目等活动中,努力将嵌入式知识融入和应用到这些系统中去,以在嵌入式系统的教学实践中起到很好的示范和榜样作用。
五、課程教学与实践改革初显效果
比较式教学使学生较自然地从51微机原理过渡到嵌入式系统的学习,并从比较学习中加深了对相关概念的理解。
教学内容在保证教学目标的前提下,进行更适合学生学习的裁剪,保留了并增强了ARM体系结构等基本知识的教学,对嵌入式操作系统的内容则有所缩减,对具体嵌入式芯片的外围设各则有选择性地讲解,避免大而全。经过这样的裁剪,学生的接受度得到了提高。
在实验内容方面,保留少量嵌入式操作系统环境下的实验,不求学生能深入理解,但要给学生建立些感性认识:在基础实验方面则要求深入,比如能通过修改源程序以达到设计要求。