自动化专业本科嵌入式系统课程教学问题新思考

摘要:针对嵌入式技术综合性强、涉及知识面广的特点,在分析企业对嵌入式技术人才需求的基础上,结合本校自动化专业学生的知识结构特点,首先进行嵌入式系统课程定位。在此基础上对嵌入式系统课程教学过程中教学内容选择、实验设计、教学手段、考核方式等相关问题进行讨论。在中国地质大学(武汉)的教学实践应用表明,本文提出的有关嵌入式系统教学的思路和方法切实可行、行之有效。

关键词:嵌入式课程;自动化专业;课程定位;教学实践

嵌入式系统己被广泛应用于工业控制系统、信息家电、通信设备、医疗仪器等众多领域。随着社会的快速发展,行业对嵌入式技术人才的需求日益增加。嵌入式系统和相关技术受到广大工程技术人员和教育者的关注,正成为新兴的热门领域。与传统8位单片机嵌入式系统相比,以32位微处理器为核心构成的嵌入式系统的显著特点是具有自己的操作系统和应用软件,在实现复杂多任务功能时具有明显优势。两者在系统构成和研发方式上都明显不同。近年来,国内高校陆续开展嵌入式技术相关课程的教学。但由于嵌入式技术覆盖的知识面较广,各高校不同专业对嵌入式系统教学的相关理论教学内容的选择、实验教学与实践环节的组织,依然处于不断探讨和修正的阶段[1-3]。

本文主要针对我校自动化专业的嵌入式系统课程教学,从课程定位、课程内容、教学手段、课程考核等方面进行探讨。

1嵌入式技术课程体系及其在本专业的定位研究

嵌入式系统不是一个独立的学科。2004年,IEEE和ACM对计算机专业本科教育的课程体系进行设置,并认为嵌入式系统的课程应包括以下内容:嵌入式的发展历程和概述、嵌入式微处理器、嵌入式软件设计、实时操作系统、低功耗计算、系统可靠性设计、设计方法学、嵌入式系统设计工具、嵌入式多处理器系统设计、网络化嵌入式系统、接口和混和信号系统等[4]。据此可看出嵌入式技术是一项综合性非常强的技术,涉及的知识面很广,既涉及底层微处理器及外围硬件接口设计,又涉及上层应用软件设计,同时涉及信号的采集与处理技术、网络传输技术、可靠性设计技术,等等。

除了嵌入式专业外,相关专业本科阶段的嵌入式系统课程学时都非常有限,多则48学时,少则32学时。在有限的学时里,完成这么多内容,学生无法充分消化所学知识,老师授课也很困难,由此,学生会产生畏难情绪,影响今后的学习。因此,我们认为教学内容的选取是课程首先需要解决的问题,它取决于课程在本专业的定位,而定位的重要依据应是用人单位对嵌入式人才的需求。

一般来说,一个典型的嵌入式系统开发涉及以下3个方面。

1) 嵌入式系统设计:包括嵌入式处理器及外围设备接口硬件平台的构建和操作系统的裁剪和移植;

2) 嵌入式驱动开发:包括特定操作系统下设备驱动程序的设计开发;

3) 嵌入式应用开发:包括基于特定软硬件平台的应用或控制软件的设计开发,包括网络、图形等。

因此,相关企业也是从嵌入式系统设计工程师、嵌入式驱动开发工程师、嵌入式应用开发工程师3个不同方向招收相关技术人才。从业者大多来自电子类和计算机类的相关专业。

在参加相关课程教学研讨会、与兄弟院校教师交流、借鉴先期开设嵌入式系统设计学校课程设置,及学生学习效果讨论的基础上,我们结合上述企业需求,从学生特点出发,对本校自动化专业嵌入式系统课程进行如下定位。

1) 与计算机专业相比,自动化专业学生的优势偏硬件,从利于学习的角度考虑,我们将课程重点放在培养学生的系统设计能力和驱动开发能力上;

2) 将相关嵌入式知识依难易程度划分成基础学习和深入进阶两个阶段,在本科生和研究生中开展系列教学。根据学生在不同学习阶段的特点和基础情况,在本科生高年级阶段和研究生阶段按不同侧重点安排教学内容和实验内容。

在本科生高年级阶段,我们以激发学生学习兴趣为主,主要是为学生今后进一步深入学习打基础。自动化专业一般应在大三下或大四上安排嵌入式系统设计的相关课程。此时,学生一般已具备模电、数电、单片机与微机原理、C语言编程、自动控制原理等基础知识,但对于软件工程和操作系统,特别是嵌入式操作系统的知识却相对比较缺乏,反映到嵌入式系统研发上,就是缺乏比较完善的知识结构,即只了解硬件,不了解软件,只了解传统51单片机系统的编程模式,而缺乏“有操作系统的”嵌入式编程的概念。

因此,我们认为学生没有必要在学习阶段掌握所有和嵌入式相关的知识。根据学生的基础,本科生阶段的课堂讲述和相关实验重点应放在嵌入式系统设计和简单驱动程序的开发上,对操作系统移植只作一般性介绍,不做重点详细讲解。教学的重点是使学生了解典型嵌入式系统的构成和研发方式,特别是开发环境的建立和研发过程中相关工具软件的使用。对于初学者暂时用不到,且目前理解困难的知识点,教师要用简单的例子来说明,让学生明白这些知识点是何时、如何在嵌入式系统研发过程中起作用,而更深更细的内容我们不必深究。同时,我们要让学生了解他们正在学习的内容在整个嵌入式技术中所处的位置,了解课上未涉及内容的获取途径,鼓励学生上网查找资料解决问题,教师可提供一些好的学习网站供学生平时学习浏览。

研究生阶段,我们可在本科生教学的基础上进一步向纵深方向扩展各部分内容,同时进一步安排若干大作业,并让学生组成项目小组,根据个人兴趣,组员分别负责系统设计、驱动开发和应用程序的开发,在项目实现的过程中,进一步学习相关知识并体会工程概念。

有了这样的课程定位,我们就可进一步进行教学内容和实验内容的选择和安排。

2嵌入式系统理论教学内容的选择

我们在理论教学内容的选择上应侧重系统设计和驱动程序开发的相关知识。在众多嵌入式处理器和嵌入式操作系统中,选择应用广泛的Linux操作系统和ARM处理器作为软硬件平台。

我们应以学生比较了解的硬件为学习嵌入式技术的出发点,选择当前主流嵌入式微处理器(如SUNGSAM公司的S3C2410芯片),让学生先掌握底层核心硬件及外设接口部件的无操作系统简单编程,再将它们组合起来构成一个相对复杂的软件系统,其实,这就是Bootloader的雏形,通过这种方式使学生轻松过渡到理解和编写自己的Bootloader,进而编写基于操作系统的驱动程序,并有机会深入钻研操作系统内核。

对于系统移植,我们只给出一般性介绍,不做重点详细讲解。实验中直接利用移植好的系统。

对于嵌入式驱动部分,我们在本科阶段只进行简单字符设备驱动程序的介绍,让学生掌握设备驱动程序工作的基本原理、掌握字符设备驱动程序的基本架构、相关数据结构和访问控制,会编写字符设备驱动程序。

大多例程都进行无操作系统和有操作系统两种情况下的编程,通过比较简单的例程让学生更好地理解两种编程方式,尤其是理解有操作系统时应用程序系统调用与驱动程序间的关系,从而实现复杂应用的编程。

有些观点认为在高校嵌入式教学中注重处理器硬件结构和ARM指令的讲解上是浪费时间,对此,我们认为要一分为二地看。如果学习者主攻方向为Bootloader和底层驱动,那么,必须花费相当的时间和精力才能掌握。目前,嵌入式应用的主流处理器在体系结构上采用的哈佛结构和更深流水线架构甚至超深流水线、跳转预测、单指令多数据等复杂技术,如果不进行详细讲解,学生很难理解透彻。当没有操作系统时,嵌入式处理器就是一个功能强大的单片机,完全可以用于工业控制,那么,只有充分了解相关处理器的硬件结构和运行机制,才能很好地利用它完成所需功能;当有操作系统时,对开发人员来说,不论编写Bootloader还是驱动程序,都需要对处理器及其相关接口具有相当的了解才能完成;但典型系统硬件组成比较复杂,全部在课堂上讲解不可能也没有必要。我们认为讲解嵌入式处理器及其指令系统时最好结合Bootloader。将Bootloader第一阶段汇编程序部分用到的硬件进行比较详细的讲解,可以为学生理解和编写Bootloader创造条件,学生有了这部分的学习经验,对底层硬件中其他部分的自主学习也会变得顺利。

3嵌入式系统实验教学内容的设计安排

嵌入式系统课程实验依托本校实验中心嵌入式系统实验室,该实验室配备多套北京博创公司的UP-NETARM2410-s试验箱,可用于相关教学和实验。

实验内容的安排与理论教学内容相辅相成,主要是加深对课堂教学内容的理解。

由于学生没有操作系统的知识,在课程初期,我们从应用角度先简单介绍Linux操作系统的安装和配置方法及主要命令,同时,让学生在课下加以学习和体会,弥补这部分知识的不足。

在实验中,对于无操作系统的实验,我们强调学生自己动手编写程序,然后调试,以此熟悉底层硬件的调试环境和调试方法。所涉及的硬件操作应尽量简单,主要目的是让学生了解方法。

带操作系统后的程序一般比较庞大,对这类实验,我们主要强调对程序结构的理解,以验证为主,在此基础上,增加一些简单功能,让学生熟悉嵌入式系统软硬件工作机制和设计流程。这样既可以对嵌入式系统研发中所涉及的硬件接口、操作系统移植、底层驱动、应用程序设计环节及流程都有模块化了解,又可为今后根据个人兴趣进行更进一步的学习建立概念。另外,有兴趣的同学也可在毕业设计阶段进行相关选题的实现,继续进一步学习嵌入式技术。

由于现有实验设备厂家提供的实验指导书不能完全满足使用要求,对此,我们针对教学内容重新设计实验,并编制相应的实验指导书,方便学生学习和验证。

4教学手段和课程考核方式

4.1强调对嵌入式系统开发环境、开发工具、基础实验及调试方法的重视

嵌入式系统学习强调实验,然而,嵌入式系统的代码规模较大,本科生实验学时有限,课堂实验应多以验证性实验为主。因此,学生必须认真对待基础实验,通过基础实验熟悉开发环境、开发工具及程序调试方法,为自主学习打下基础。

在嵌入式学习过程中,实验课对学生有非常重要的意义,但是,学生在实验中如果只是根据实验指导书所描述的原理和步骤,按部就班进行操作,那么,他们也只能得到一些实验结果,却无法了解具体实现细节,基本达不到实验的目的。要想通过实验真正达到学习的目的,学生必须扎扎实实地从基础实验做起,不仅要了解实验原理和步骤,还要认真研究实验程序,搞清具体的实现细节,并在开发环境中利用各种工具对各个细节加以调试和验证,从中不断发现问题、思考问题、解决问题,学习别人的编程方法和程序撰写风格,逐步建立工程概念,达到学习的目的。每一个基础实验都有其学习重点,或针对某一具体硬件接口,或针对某种访问方法,只有掌握了相关基础硬件操作方法和实验方法,才能通过实验来学习和研究新器件、新原理、新方法,才能进行综合设计、才能谈到创新。本科生嵌入式课程总课时少、实验课时有限、课下自主学习时间不能保证,因此,认真做好基础实验、熟悉开发环境和掌握开发调试实验方法,对学生今后进一步学习非常有益。

对嵌入式技术兴趣浓厚的学生,我们可指导其在课余或毕业设计时进行综合性项目实践,将任务按处理器及硬件接口设计、系统移植、驱动程序设计、应用软件设计等划分成若干模块,让学生分工合作,在实践过程中深入学习。

4.2通过学生自己的设计实例演示激发学生的学习兴趣和学习信心

嵌入式技术内容多、学时少,学习难度大。因此,本科教学应以实际应用为主选择教学内容,加强实验,理论教学和实验各占20学时。同时,由于嵌入式系统与特定行业应用密不可分[5],泛泛的教学很难激发学生的兴趣。为提高学生学习兴趣,我们可以利用毕业设计对学生感兴趣的消费类电子产品,如家庭安防系统、mp3、mp4、学生信息管理系统进行先期研发,并在完善后将其在教学中给学生演示,以激发学生学习兴趣,让学生有一个感性认识,并作为嵌入式系统设计实例进行详细分析。虽然上述示例中的内容学生比较熟悉,但是,如果它们是由学生亲自动手设计制作,其意义就不同了,它不仅大大激发了学生的学习兴趣,也大大提高了学生课堂学习积极性。

4.3考核方式设计

我们在考核方式上采用笔试+实验的形式,笔试题目主要考察基本概念,实验考核方式则是将实验题目按难度分成若干等级,等级越高分值也越高,学生可自由选择实验等级,依完成程度在相应等级内得分,以此鼓励学生多学习、多实践。

5课程的长期建设问题

随着社会的发展,嵌入式系统课程越来越重要。嵌入式系统课程要想持续发展,必须具有一支实践经验丰富的教师队伍,实验训练设备和场所要有保证;同时,我们应鼓励教师引导学生参加嵌入式系统设计大赛,在大赛中锻炼学生,也锻炼教师。目前,我校在这些方面都还处于起步阶段,需适当加大这些方面的人力物力投入,逐步建立校内外实训基地。

由于一门课程涵盖的内容有限,因此需要对嵌入式系统课程体系进行深入研究,将嵌入式系统课程体系中的某些内容与现有教学计划中相关课程内容进行合理拆分和组合融合,或适当增加一两门选修课,使嵌入式系统设计课程在自动化专业的教学更加顺畅,学生的知识结构更加合理,更加适应社会的需求。

嵌入式技术综合性强、涉及知识面广,要想在一门课程里覆盖所有内容不现实。本文在分析企业对嵌入式技术人才需求的基础上,结合本校自动化专业学生的知识结构特点,进行课程定位,并对嵌入式系统课程教学过程中教学内容选择、实验设计、教学手段及考核方式等相关问题进行论述。本文提出的方法,在中国地质大学(武汉)自动化专业本科选修课教学及毕业设计中进行了实施,学生在40学时的课程学习中,对嵌入式系统设计中包括嵌入式处理器及外围设备接口硬件平台的构建和操作系统的裁剪和移植及Linux下设备驱动程序的设计开发的流程和方法有了基本的认识和了解,为后续进一步学习打下了基础,达到了课程设置的目的。实践表明,本文提出的有关嵌入式系统教学思路和方法切实可行、行之有效。

参考文献:

[1]刘森,慕春棣. 自动化专业的嵌入式系统教学探讨[J]. 实验技术与管理,2007,24(1):115-117.

[2]郭波,罗小青,管菊花. 应用型本科自动化专业嵌入式课程教改研究[J]. 计算机教育,2009(19):63-64,69.

[3]牛建伟,张炯. 北京航空航天大学嵌入式系统课程建设[J]. 计算机教育,2008(7):62-65.

[4]仲伟波,包亚萍,付跃文,等. 关于嵌入式系统教学的几点思考[J]. 上海:实验室研究与探索,2006,25(12):1565-1568.

[5]徐迎晖,冯然. 嵌入式系统课程设置与教学的思考[J]. 装备制造技术,2009(8):180-181.

New Thinking on Automation Undergraduate Teaching Issues Related to Embedded Systems

ZHANG Lijun

(Department of Automation, Faculty of Mechanical and Electronic Information, China University of Geosciences,Wuhan 430074, China)

Abstract: In view of the comprehensive ,extensive knowledge of the characteristics of the embedded techniques in this paper,it analyzes the business demand for the embedded technical talented person.Combined with the knowledge of our automation students’s structural features, it carries out the embedded system course location.As for the teaching process,it describes the teaching content,experimental design,teaching methods ,assessment methods and other related issues were also discussed. As the proposed ideas and methods of embedded systems teaching,practice shows that all of them are practical and effective.

Key words: embedded courses; automation; location; teaching practice

(编辑:郭小明)

推荐访问:嵌入式系统 课程教学 专业本科 自动化 思考