论文部分内容阅读
摘要:为了培养高质量的嵌入式工程师,针对计算机应用专业学生的特点,从课程体系结构、课堂教学和实践环节等方面介绍了嵌入式系统的教学思路及实际教学方法,提出了理论讲授与动手实践相结合的教学模式。实践表明,嵌入式系统课程有效地提高了学生的工程实践能力,拓宽了学生的就业面。
关键词:嵌入式系统;教学方法;验证型实验;设计型实验
作者简介:钱诚(1981-),男,江苏常州人,常州工学院计算机信息工程学院,讲师;彭馨馨(1980-),女,江苏常州人,江苏理工学院商学院,讲师。(江苏 常州 213002)
基金项目:本文系常州工学院自然科学基金重点项目(项目编号:YN 1204)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)08-0144-02
随着嵌入式系统在工业设备、人们日常生活中的应用普及,对嵌入式系统的需求也随之越来越大,具备嵌入式系统开发技能的人才也因此受到了广泛的青睐。为了满足企业对高质量嵌入式工程师的需求,在高等学校开设嵌入式系统相关课程变得十分必要,其对于促进嵌入式工程师的成长也有着深远的意义。
嵌入式系统本质上是一种软硬件高度集成的微型計算机系统,其具有软硬件可裁剪、低功耗、实时性强等特点。相比于计算机应用方向的其他专业课程,嵌入式系统课程内容涉及软硬件的知识较多,对于学生前期的知识储备有着较高的要求,入门难度相对较大,这些都加大了学习的难度。[1]此外,由于实验条件的限制,传统的教学更加注重于理论知识的讲授,实践环节的课时较少,这容易使学生丧失兴趣,导致授课效果差。
在嵌入式课程中,针对计算机应用专业的特点,[2]设置合理的教学目标,调动学生兴趣,充分挖掘学生的自主学习能力,使得学生能够真正掌握嵌入式系统开发技能,是该课程所期望达到的效果。围绕这一教学目的,在课程设置上,重视嵌入式系统基础性理论的学习,强调对学生动手操作能力及解决工程问题能力的培养,[3]尤其注重实验中嵌入式系统各硬件工作原理的验证以及在此基础上的开发实践活动。[4]兼顾到嵌入式系统的发展趋势以及学生的知识接受能力,整个课程选择了以ARM Cortex-M3为核心的STM32F103XX嵌入式芯片作为教学实践平台。
一、课程体系结构
课程的具体目标是培养学生能够熟练使用嵌入式开发工具及已有的基础固件库完成驱动程序和应用软件的开发,在硬件电路设计方面并不做过多要求。该目标的设置可以充分发挥计算机应用专业学生软件开发能力相对较强的特点,而降低由于电子电路背景知识基础相对薄弱所带来的知识理解困难,这也使得学生不会因为嵌入式系统硬件的复杂性而在学习上产生退缩情绪,反而因为自身所具备的程序编制能力得以快速入门,并产生更多的兴趣驱动其深入到嵌入式系统的学习中。
在教学内容的组织上,根据设置的课程目的,将课程知识体系划分为三个有机组成部分。第一部分,嵌入式系统的总体体系结构;第二部分,嵌入式系统的指令系统;第三部分,嵌入式系统外围核心模块的工作原理。第一部分是对整个嵌入式系统的总览,该部分内容具有一定的抽象性,并不是某特定嵌入式系统结构的具体化,因而更具有普遍性。第二部分主要围绕ARM指令集及Thumb指令集进行介绍,后续的实验环节则更偏重于C语言在ARM内核上的编程。第三部分侧重于外围核心模块,结合各功能模块的工作原理和对应固件库中函数的具体实现,使工作原理的讲解变得直观,容易被学生接受。这三部分并不孤立,第一部分更多地阐述了嵌入式系统的硬件载体,而第二部分则主要阐述了嵌入式系统软件开发的基础,第三部分则是软硬件的综合,其依赖于前两个部分的知识基础。
在授课的模式上,采用了课堂讲授与实验相结合的教学模式。课堂讲授部分主要涉及嵌入式系统微处理器、存储器及时钟电路等内容的介绍,随后则是各功能模块工作原理的介绍。在讲授过程中,首先给出概要性的介绍,使得学生形成感性认识,其次对于重点、难点部分,使用演示法,运行一些小程序,通过对比运行结果,使得学生能够正确理解各工作原理。在设计这些小程序的过程中,只对部分能够说明工作原理的部分进行修改,其他大部分都相同,通过演示讲解,形成更为直观的认识。最后在实验部分,围绕外围模块设置多组实验,难度为一阶梯递增的过程,使得学生能够循序渐进地掌握嵌入式系统的开发技术。
二、课堂教学
在课堂教学的过程中,注重对ARM的软硬件总体结构进行介绍。按照嵌入式系统的纵向结构,将嵌入式系统分为硬件层、中间层、系统层及应用软件层,层次性的介绍使得学生能够快速建立起ARM嵌入式系统框架结构的概念。
硬件层,围绕着嵌入式系统低功耗、实时性强的特点阐述系统设计的初衷与思路,重点介绍系统的时钟电路,注意高速内部时钟、高速外部时钟、低速内部时钟和低速外部时钟获取方法之间差异性的比较。针对嵌入式系统保证系统效率的核心机制——中断机制,课程中引入了STM32F103XX芯片的中断系统作为具体的中断实现进行介绍,由其典型的7类中断类型延伸到其他ARM系统的中断实现。存储器的讲解则偏重于存储器的分区及地址重映射的概念。对于基本硬件构成的讲解不只是停留在每个硬件的简单介绍上,而是通过数据流、指令流的传递阐述这些硬件的协同工作机理。
在中间层,外围模块的驱动程序设计是该课程教学的重点,内容包括通用输入输出引脚(GPIO)、模数转换(ADC)模块、外部中断(EXTI)模块、定时器模块、串口通信(USART)模块、实时时钟(RTC)模块及看门狗模块等。这些模块的驱动程序更加贴近于底层硬件,因此相关理论的介绍是必不可少的。参考当前工业界一些优秀的驱动程序,通过挖掘程序片段供学生阅读,使得学生对这些外围模块的理解不仅仅停留在抽象的原理性认识上,能够更多地从实例程序中理解驱动程序的编写方法及思路。为了让学生更好地理解各模块的基本工作原理,示例小程序的运行效果可以提供一个直观的认识手段。在设计这些示例程序时,突出寄存器的配置参数对程序运行结果的影响。例如,在定时器的配置过程中,通过修改分频系数及计数模式,可以产生不同时长的定时效果,学生可以很直接地发现结果的差异性。 作为源码公开的嵌入式操作系统,μC/OS-Ⅱ嵌入式操作系统具有内核小、实时性强的特点,在系统层,将μC/OS-Ⅱ作为一款典型的嵌入式操作系统,讲解内核结构——任务调度、任务的互斥和同步、任务间的通信等,并在这一过程中穿插其他嵌入式操作系统的内核实现方式,如Linux、vxWorks等相关知识,使得学生能够触类旁通,知识面也不局限于μC/OS-Ⅱ。考虑到计算机应用专业学生已有的操作系统知识,在这一块内容的教学上,并不展开每一个内核的实现细节,课后通过一些作业让学生有意识地利用已有操作系统知识来扩展、自学嵌入式操作系统。
对于应用层的介绍,则给出多个工程实例,剖析部分程序文件,以此向学生展示在嵌入式系统上如何开发应用程序。在工程实例的选择上,综合考虑实用性及学生的学习能力,设计了“基于STM32F103XX的手持电子相册设计与开发”和“嵌入式系统上人机友好交互界面的设计与开发”等实例,引导学生掌握外围功能模块的组合应用。
三、实验教学
实验教学是学生掌握嵌入式系统开发及应用知识的关键性环节。在实验的设计上,根据程序开发的难易程序,将实验分为验证型实验和设计型实验,引导学生循序渐进地掌握软件编制技巧。
验证型实验,设计合理的范例程序,并通过在实验课上程序设计思路的讲解,帮助学生理清程序的流程与框架。对于该类范例程序,一般设置2个目标:第一,要求在范例程序上通过修改参数,观察在不同参数下嵌入式系统的输出表现。第二,按照嵌入式系统的功能要求,补充完整范例程序。为了达到这些实验目标,让学生从硬件接线图着手,在掌握输入输出信号流以后,进一步理解范例程序的功能实现过程。如在流水灯实验中,在确定外部三个LED灯的灌电流驱动方式,让学生通过设置对应端口的高低电平来控制LED的点亮与熄灭。在给出的范例程序中,程序的调用过程标定清楚,学生只需填充函数,完成GPIO时钟的配置,设定引脚号、引脚传递速度和引脚工作模式等参数,从而达到循环控制LED灯的目的。验证型实验可以引导学生快速了解嵌入式系统的开发过程,帮助学生建立起嵌入式系统软件开发的信心,为后续独立开展实验打下基础。
设计型实验在学生具备初步的嵌入式系统开发能力的基础上,采用探究式教学法,给定功能目标,让学生自行设计方案并编制软件实现目标。在这一过程中,学生需要运用软件工程思想,编写概要设计文档与详细设计文档,给出模块划分结果及部分关键函数的流程图作为实验报告的必要组成部分。在编制软件时,由于涉及一些固件庫的使用,要求学生查阅开发手册掌握必要的库函数来完成实验。为了让学生顺利完成实验内容,实验内容都在课程讲授的范围内,只涉及多个外围核心模块的协调工作,学生在掌握工作原理的基础上可以较为顺利地完成方案的设计与软件的编制。
四、考核方法
考虑到嵌入式系统教学目标更加偏重于学生动手能力的培养,因此在考核的内容上强调实验的表现。在期末成绩的综合评定上,平时课堂表现、作业情况占10%,实验成绩占30%,期末理论考试占60%。通过这一考核方案,在促使学生学习嵌入式系统基础理论的同时,能够将所学的理论知识运用到具体的实验操作上,使得计算机应用专业的学生将嵌入式系统知识内化到自身的知识体系中。
五、结语
嵌入式系统课程是一门具有较强实践性的课程,为了使学生系统性地掌握嵌入式系统,在课堂授课过程中采用演示法加深学生对嵌入式系统的理解,另外,设计难度递增的实验内容,使得学生能够循序渐进地掌握嵌入式系统开发技术。通过一系列课堂教学、实验环节的改革,建立一个较为完善的课程体系,更好地促进学生工程实践能力的培养,在实际的教学中取得了较为明显的教学效果,有效地拓宽了计算机应用专业学生的就业面。
参考文献:
[1]刘泽平,羊四清.计算机专业嵌入式方向课程体系建设[J].计算机教育,2013,(6):103-106.
[2]蒋银珍,王宜怀.计算机专业的嵌入式系统课程教学探讨[J].计算机教育,2011,(18):46-48.
[3]孙强,范光宇,陈年生.计算机专业嵌入式系统课程教学改革探讨[J].教育教学论坛,2013,(36):26-27.
[4]蒋书波,王晓荣.嵌入式系统平台课程体系教学方法探析[J].中国电力教育,2013,(2):116-117.
(责任编辑:王意琴)
关键词:嵌入式系统;教学方法;验证型实验;设计型实验
作者简介:钱诚(1981-),男,江苏常州人,常州工学院计算机信息工程学院,讲师;彭馨馨(1980-),女,江苏常州人,江苏理工学院商学院,讲师。(江苏 常州 213002)
基金项目:本文系常州工学院自然科学基金重点项目(项目编号:YN 1204)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)08-0144-02
随着嵌入式系统在工业设备、人们日常生活中的应用普及,对嵌入式系统的需求也随之越来越大,具备嵌入式系统开发技能的人才也因此受到了广泛的青睐。为了满足企业对高质量嵌入式工程师的需求,在高等学校开设嵌入式系统相关课程变得十分必要,其对于促进嵌入式工程师的成长也有着深远的意义。
嵌入式系统本质上是一种软硬件高度集成的微型計算机系统,其具有软硬件可裁剪、低功耗、实时性强等特点。相比于计算机应用方向的其他专业课程,嵌入式系统课程内容涉及软硬件的知识较多,对于学生前期的知识储备有着较高的要求,入门难度相对较大,这些都加大了学习的难度。[1]此外,由于实验条件的限制,传统的教学更加注重于理论知识的讲授,实践环节的课时较少,这容易使学生丧失兴趣,导致授课效果差。
在嵌入式课程中,针对计算机应用专业的特点,[2]设置合理的教学目标,调动学生兴趣,充分挖掘学生的自主学习能力,使得学生能够真正掌握嵌入式系统开发技能,是该课程所期望达到的效果。围绕这一教学目的,在课程设置上,重视嵌入式系统基础性理论的学习,强调对学生动手操作能力及解决工程问题能力的培养,[3]尤其注重实验中嵌入式系统各硬件工作原理的验证以及在此基础上的开发实践活动。[4]兼顾到嵌入式系统的发展趋势以及学生的知识接受能力,整个课程选择了以ARM Cortex-M3为核心的STM32F103XX嵌入式芯片作为教学实践平台。
一、课程体系结构
课程的具体目标是培养学生能够熟练使用嵌入式开发工具及已有的基础固件库完成驱动程序和应用软件的开发,在硬件电路设计方面并不做过多要求。该目标的设置可以充分发挥计算机应用专业学生软件开发能力相对较强的特点,而降低由于电子电路背景知识基础相对薄弱所带来的知识理解困难,这也使得学生不会因为嵌入式系统硬件的复杂性而在学习上产生退缩情绪,反而因为自身所具备的程序编制能力得以快速入门,并产生更多的兴趣驱动其深入到嵌入式系统的学习中。
在教学内容的组织上,根据设置的课程目的,将课程知识体系划分为三个有机组成部分。第一部分,嵌入式系统的总体体系结构;第二部分,嵌入式系统的指令系统;第三部分,嵌入式系统外围核心模块的工作原理。第一部分是对整个嵌入式系统的总览,该部分内容具有一定的抽象性,并不是某特定嵌入式系统结构的具体化,因而更具有普遍性。第二部分主要围绕ARM指令集及Thumb指令集进行介绍,后续的实验环节则更偏重于C语言在ARM内核上的编程。第三部分侧重于外围核心模块,结合各功能模块的工作原理和对应固件库中函数的具体实现,使工作原理的讲解变得直观,容易被学生接受。这三部分并不孤立,第一部分更多地阐述了嵌入式系统的硬件载体,而第二部分则主要阐述了嵌入式系统软件开发的基础,第三部分则是软硬件的综合,其依赖于前两个部分的知识基础。
在授课的模式上,采用了课堂讲授与实验相结合的教学模式。课堂讲授部分主要涉及嵌入式系统微处理器、存储器及时钟电路等内容的介绍,随后则是各功能模块工作原理的介绍。在讲授过程中,首先给出概要性的介绍,使得学生形成感性认识,其次对于重点、难点部分,使用演示法,运行一些小程序,通过对比运行结果,使得学生能够正确理解各工作原理。在设计这些小程序的过程中,只对部分能够说明工作原理的部分进行修改,其他大部分都相同,通过演示讲解,形成更为直观的认识。最后在实验部分,围绕外围模块设置多组实验,难度为一阶梯递增的过程,使得学生能够循序渐进地掌握嵌入式系统的开发技术。
二、课堂教学
在课堂教学的过程中,注重对ARM的软硬件总体结构进行介绍。按照嵌入式系统的纵向结构,将嵌入式系统分为硬件层、中间层、系统层及应用软件层,层次性的介绍使得学生能够快速建立起ARM嵌入式系统框架结构的概念。
硬件层,围绕着嵌入式系统低功耗、实时性强的特点阐述系统设计的初衷与思路,重点介绍系统的时钟电路,注意高速内部时钟、高速外部时钟、低速内部时钟和低速外部时钟获取方法之间差异性的比较。针对嵌入式系统保证系统效率的核心机制——中断机制,课程中引入了STM32F103XX芯片的中断系统作为具体的中断实现进行介绍,由其典型的7类中断类型延伸到其他ARM系统的中断实现。存储器的讲解则偏重于存储器的分区及地址重映射的概念。对于基本硬件构成的讲解不只是停留在每个硬件的简单介绍上,而是通过数据流、指令流的传递阐述这些硬件的协同工作机理。
在中间层,外围模块的驱动程序设计是该课程教学的重点,内容包括通用输入输出引脚(GPIO)、模数转换(ADC)模块、外部中断(EXTI)模块、定时器模块、串口通信(USART)模块、实时时钟(RTC)模块及看门狗模块等。这些模块的驱动程序更加贴近于底层硬件,因此相关理论的介绍是必不可少的。参考当前工业界一些优秀的驱动程序,通过挖掘程序片段供学生阅读,使得学生对这些外围模块的理解不仅仅停留在抽象的原理性认识上,能够更多地从实例程序中理解驱动程序的编写方法及思路。为了让学生更好地理解各模块的基本工作原理,示例小程序的运行效果可以提供一个直观的认识手段。在设计这些示例程序时,突出寄存器的配置参数对程序运行结果的影响。例如,在定时器的配置过程中,通过修改分频系数及计数模式,可以产生不同时长的定时效果,学生可以很直接地发现结果的差异性。 作为源码公开的嵌入式操作系统,μC/OS-Ⅱ嵌入式操作系统具有内核小、实时性强的特点,在系统层,将μC/OS-Ⅱ作为一款典型的嵌入式操作系统,讲解内核结构——任务调度、任务的互斥和同步、任务间的通信等,并在这一过程中穿插其他嵌入式操作系统的内核实现方式,如Linux、vxWorks等相关知识,使得学生能够触类旁通,知识面也不局限于μC/OS-Ⅱ。考虑到计算机应用专业学生已有的操作系统知识,在这一块内容的教学上,并不展开每一个内核的实现细节,课后通过一些作业让学生有意识地利用已有操作系统知识来扩展、自学嵌入式操作系统。
对于应用层的介绍,则给出多个工程实例,剖析部分程序文件,以此向学生展示在嵌入式系统上如何开发应用程序。在工程实例的选择上,综合考虑实用性及学生的学习能力,设计了“基于STM32F103XX的手持电子相册设计与开发”和“嵌入式系统上人机友好交互界面的设计与开发”等实例,引导学生掌握外围功能模块的组合应用。
三、实验教学
实验教学是学生掌握嵌入式系统开发及应用知识的关键性环节。在实验的设计上,根据程序开发的难易程序,将实验分为验证型实验和设计型实验,引导学生循序渐进地掌握软件编制技巧。
验证型实验,设计合理的范例程序,并通过在实验课上程序设计思路的讲解,帮助学生理清程序的流程与框架。对于该类范例程序,一般设置2个目标:第一,要求在范例程序上通过修改参数,观察在不同参数下嵌入式系统的输出表现。第二,按照嵌入式系统的功能要求,补充完整范例程序。为了达到这些实验目标,让学生从硬件接线图着手,在掌握输入输出信号流以后,进一步理解范例程序的功能实现过程。如在流水灯实验中,在确定外部三个LED灯的灌电流驱动方式,让学生通过设置对应端口的高低电平来控制LED的点亮与熄灭。在给出的范例程序中,程序的调用过程标定清楚,学生只需填充函数,完成GPIO时钟的配置,设定引脚号、引脚传递速度和引脚工作模式等参数,从而达到循环控制LED灯的目的。验证型实验可以引导学生快速了解嵌入式系统的开发过程,帮助学生建立起嵌入式系统软件开发的信心,为后续独立开展实验打下基础。
设计型实验在学生具备初步的嵌入式系统开发能力的基础上,采用探究式教学法,给定功能目标,让学生自行设计方案并编制软件实现目标。在这一过程中,学生需要运用软件工程思想,编写概要设计文档与详细设计文档,给出模块划分结果及部分关键函数的流程图作为实验报告的必要组成部分。在编制软件时,由于涉及一些固件庫的使用,要求学生查阅开发手册掌握必要的库函数来完成实验。为了让学生顺利完成实验内容,实验内容都在课程讲授的范围内,只涉及多个外围核心模块的协调工作,学生在掌握工作原理的基础上可以较为顺利地完成方案的设计与软件的编制。
四、考核方法
考虑到嵌入式系统教学目标更加偏重于学生动手能力的培养,因此在考核的内容上强调实验的表现。在期末成绩的综合评定上,平时课堂表现、作业情况占10%,实验成绩占30%,期末理论考试占60%。通过这一考核方案,在促使学生学习嵌入式系统基础理论的同时,能够将所学的理论知识运用到具体的实验操作上,使得计算机应用专业的学生将嵌入式系统知识内化到自身的知识体系中。
五、结语
嵌入式系统课程是一门具有较强实践性的课程,为了使学生系统性地掌握嵌入式系统,在课堂授课过程中采用演示法加深学生对嵌入式系统的理解,另外,设计难度递增的实验内容,使得学生能够循序渐进地掌握嵌入式系统开发技术。通过一系列课堂教学、实验环节的改革,建立一个较为完善的课程体系,更好地促进学生工程实践能力的培养,在实际的教学中取得了较为明显的教学效果,有效地拓宽了计算机应用专业学生的就业面。
参考文献:
[1]刘泽平,羊四清.计算机专业嵌入式方向课程体系建设[J].计算机教育,2013,(6):103-106.
[2]蒋银珍,王宜怀.计算机专业的嵌入式系统课程教学探讨[J].计算机教育,2011,(18):46-48.
[3]孙强,范光宇,陈年生.计算机专业嵌入式系统课程教学改革探讨[J].教育教学论坛,2013,(36):26-27.
[4]蒋书波,王晓荣.嵌入式系统平台课程体系教学方法探析[J].中国电力教育,2013,(2):116-117.
(责任编辑:王意琴)