邓小武?
摘 要:嵌入式系统作为智能技术的核心技术,使嵌入式行业成为时下最热门、最有发展前景的行业,嵌入式研发工程师以突出的优势成为IT职场的紧缺人才。文中结合《嵌入式系统原理与接口技术》课程教学中存在的问题,以嵌入式行业岗位需求为导向,并以提升学生工程实践能力为目的,对此类课程教学如何进行改革作了探索与实践。
关键词:嵌入式技术;教学改革;工程实践能力;教学模式
中图分类号:TP39;G642 文献标识码:A 文章编号:2095-1302(2017)07-0-04
0 引 言
在嵌入式、移动互联网、物联网等热门技术日益普及的今天,以实现智能化为核心目标的典型技术已成为整个信息产业毋庸置疑的主旋律。特别是近1年,以智能家居、智能医疗、可穿戴设备等为首的大量智能硬件批量进入到人们的生活,更让这一场智能技术的变革成为势不可挡的潮流。事实上,随着产业的变革和发展,IT行业已被重新定义,从 Information Technology(信息技术)领域发展为 Intelligent Technology(智能技术)领域。嵌入式系统正是这些热门产业应用技术中最核心、最关键的部分,是推动这些产业快速发展的中坚力量。嵌入式行业更凭借其“应用领域广、人才需求大、就业薪资高、行业前景好”等众多优势成为时下最热门、最有发展前途的行业之一,与此同时,嵌入式研发工程师更是以突出优势成为IT职场的紧缺人才[1]。
针对市场对嵌入式人才的大量需求,国内高等院校都设置了嵌入式方向、嵌入式专业(职业院校),并开设了嵌入式相关课程。虽然如此,但目前高校在嵌入式人才培养模式方面大多仍沿用传统培养模式,使学生的工程能力与市场需求脱节,无法满足市场需求。基于对嵌入式多年的教学和科研体会,本文从培养学生工程能力角度以《嵌入式系统原理与接口技术》课程为例对嵌入式教学模式进行探讨。
1 现阶段嵌入式教学存在的问题
1.1 理论教学与实践教学相分离问题
嵌入式系统是一个软硬件相结合面向应用的专用计算机系统,具有很强的实践性,只有通过不断的实践才能掌握其技术。国内高校的嵌入式相关课程的教学计划都设置了理论课时和实验课时。理论教学在教室授课,而教师在授课时往往采用传统的填鸭式教学,没有与学生互动、交流,不能掌握学生的学习和理解情况,而实践教学通常在理论教学讲完一个知识点或一个模块后,过一段时间才进行实验,甚至有的高校在上完理论课时后才进行实验,这种做法本质上会导致理论教学与实践教学相分离,无法把理论知识融入到实践教学中,更无法取得理想的教学效果。
1.2 教材问题
近年来,国内出版社出版了许多有关嵌入式技术方面的教材和图书,但难度较大,且多数教材以嵌入式系统层次结构来组织相关章节,以讲解原理开始,从抽象的ARM体系结构相关原理到ARM指令集及其汇编程序设计和驱动应用层,内容多来自开发手册和数据手册,内容生硬,缺乏自己的经验、理解和相关的工程项目,导致课程缺乏实例和直观性,使学生很难将抽象的知识和工程实践结合起来并加以应用,往往是当课程学完了学生却不知道学到了什么[2]。
1.3 实践教学问题
绝大多数高校都建立了嵌入式系统实验室,购买供应商的试验箱或开发板,都配有相应的实验教程,但大部分都是验证性实验,缺乏实践性强、提供源代码、理论讲解精炼清晰的实训项目。很多开发板提供商提供的开发板实验手册中讲解完开发板硬件资源后就立即移植操作系统(移植Linux2.6内核)。这也是使得很多人认为使用ARM就必须使用操作系统的关键所在,即使有部分實验教程是讲裸机开发,也是在Linux环境下讲解,这无形中给学生增加了入门难度,因为Linux环境下的Makefile编写本身就有许多内容要学习。在操作实验时,学生不能将自己的想法融入实验中,存在很大的局限性,实验往往缺乏创新性和综合性。
1.4 考核评价问题
考核评价学习成绩和效果仍以笔试为主,对于具有实践性强的嵌入式系统原理与接口技术来说,这种考核评价方式通常不能反映学生的真实情况,特别是学生的实践动手能力。这种考核评价方式本末倒置,影响了学生学习这门课程的兴趣。
2 课程教学改革措施
针对以上在嵌入式系统原理与接口技术中出现的各种问题,笔者结合自身的教学实践做出了一些改进。
2.1 理论教学融入实践教学
理论教学为实验实践环节提供了必要的知识基础,而实验和实践环节则在巩固理论基础的同时,能进一步提高实践动手能力并创造潜能。如何把握和实现理论与实践相结合?怀化学院计算机工程系为将理论教学融入实践教学,对《嵌入式系统原理与接口技术》整个课程只开设实验课时,没有设置理论课时。在教学实践中对理论知识和基本原理进行取舍,将理论知识化整为零,归结到各模块中,在实验中讲授。模块都以实例为基础,详细讲解了相应模块所需的基础知识。恰当去掉对于初学者暂时不用或很少用到的知识点,尽量突出学习重点。
《嵌入式系统原理与接口技术》主要涉及基于非操作系统下的程序开发,即裸机开发,面对ARM指令集及汇编语言程序设计,学生往往无从下手,到底ARM汇编需要学到什么程度?为使问题简单化,只取部分开发常用的ARM指令并结合具体实例进行讲解,讲解完后立即运用这部分指令进行实验,达到理解和掌握该部分指令的目的。如果在开发过程中遇到其他问题时,可以查阅ARM指令集进行学习,问题便会迎刃而解。GPIO组及控制寄存器见表1所列。
GPIO编程是最基本的技能,是控制其他硬件的基础,其核心部分是控制寄存器。PXA270具有119个通用I/O口,都由表1所示的寄存器控制,所以在学习GPIO模块编程时,结合PXA270数据手册对GPIO引脚功能和硬件结构作简要介绍。重点按表1对GPIO寄存器讲解其分类和基本功能,使学生从整体上了解和把握GPIO的寄存器功能。再对本次实验要用到的寄存器结合具体实验程序进行讲解,如何设置寄存器相应的位,为什么要这样设置。但并没有对寄存器所有的位进行讲解,对需要使用的位进行讲解,以最大限度地将注意力集中在学习的重点上,即需要初始化哪些位,而不是刚接触该寄存器就面对许多控制位(多达32位)。当熟悉了部分位的含义后,需要扩展其他功能时,便能很容易地找到其他控制位。理论部分讲解完后,进行验证型实验,体验实验结果。
为了培养和提高学生的设计能力,对实验进行扩展和设置新问题,要求学生实现其功能。例如做完UART通信实验后,设置两个设计性实验:
(1) 将实验参考程序的功能改为菜单选择界面(使用UART_SendStr函数显示菜单,调用UART_),GetKey函数等待用户选择,通过switch语句判断用户的选择并执行相应操作。
(2)设计一个菜单选择界面,控制发光二极管和蜂鸣器。通过以上练习,既能达到理解和掌握相关基本理论知识的目的,把理论应用到实践,又能培养并提高学生的实践能力和设计能力。
2.2 模块化设计与系统设计相结合
整个嵌入式系统由各模块构成,要由浅入深地讲解和实验各个模块,最后将部分模块组成较大的系统,使学生形象地看到模块化开发的全貌和实现过程。笔者将《嵌入式系统原理与接口技术》划分成如图1所示模块。
基础模块主要讲解了ARM处理器的部分基础知识、实验平台magicARM270、ADS1.2集成开发环境和GPIO模块编程。提高模块主要是对PXA270处理器硬件资源进行讲解,并对每个模块给出了一个具体的实现方法,理论联系实践,在实践中更好地理解各个模块的使用方法和使用过程中的注意事项。综合模块以基础模块和提高模块为基础进行设计和开发,通过学习实践进一步巩固基本理论知识。例如串口控制实验。通过串口发送命令,发送命令的格式和下位机收到命令后执行的相关动作见表2所列。
该实验模拟了自动控制系统中上位机控制下位机的情形,即上位机发送命令,下位机接收到命令后,根据不同命令执行相应的动作(上位机控制下位机),这是一个综合性实践项目,可培养学生的综合设计能力。
2.3 培养信息素养和英文资料阅读能力
传统的嵌入式教学忽视了对学生信息素养和英文资料阅读能力的培养。信息素养(Information Literacy)是“利用大量信息工具及主要的信息源使问题得到解决的技术和技能”,简单来说,信息素养包含了专业信息的搜索能力和分析利用能力,分析利用能力包括对信息的分析、加工、创新、利用、协作、交流[3]。随着嵌入式技术的不断发展,有关嵌入式技术的信息和资料非常多,应学会使用百度和Google搜索技术资料,且嵌入式技术更新很快,作为一名优秀的学生(开发人员),英语阅读能力必不可少,因为很多技术资料,特别是一些新兴的技术资料,往往都采用英语书写,这就要求从事软件行业的人员需要有一定的英语阅读能力。同时必须具备较强的学习能力,善于通过各种渠道更新自身的知识体系,关注最新技术发展热点,适应行业最新发展需求。
magicARM270实验箱自带的实验教程没有LCD显示控制实验,以此为例讲解信息检索。通过信息检索,利用网络资源来解决学習工作中不断遇到的技术问题。嵌入式技术比较好的网站见表3所列。
这些网站中都有论坛以供学生交流专业知识,论坛里的版主都非常热心,基本上同学和老师的问题都有问必答,大家可以互相帮助,互相学习,从一定程度上也锻炼了同学们的团队协作能力[4]。
当今我国计算机技术和其他一些领域的技术远远落后于西方发达国家,而且更新发展非常快,为了跟踪、了解和学习他国先进技术,要求专业人员必须具备相关领域的专业英语阅读能力。嵌入式系统开发人员通过Google搜索国外网站或借助其他手段得到的技术资料往往也是英文资料(英文开发手册、开发文档和数据手册等)。笔者在嵌入式教学过程中发现,虽然很多学生通过了大学英语四级、六级考试,但他们阅读英文开发手册和数据手册仍存在一定困难,主要是缺乏专业的英文阅读训练导致的。为培养学生的专业领域英文资料阅读意识和能力,笔者在讲解完某个模块后,要求学生翻译《Intel PXA27X Processor Family Developers Manual》中对应的模块,并且计入期末总成绩。例如讲完GPIO模块后,把翻译开发手册《Section 23. General-Purpose I/O Controller》作为课外作业。
2.4 综合考核方式
考虑到全面评价学生在一个学期的学习情况和实践动手能力,同时综合考核的内容强调实验的表现。期末综合成绩见表4所列。
通过这一考核评价方案,旨在培养学生专业英文阅读和报告撰写能力的同时,促使学生能够将所学的基本理论知识运用到具体的实践操作上。
期末的项目考试都制定了相应的考核方案,包括考试方式、考试要求、考试内容和评分细则。项目考试完成后,要按格式要求撰写项目报告。制定的《嵌入式系统原理与接口技术》考核方案中的评分细则见表5所列。
2.5 参加相关竞赛和科研立项,提升综合能力
为积极倡导以学生为主体的研究性学习和创新性实验教学改革,激发学生的创新思维和创新意识,提高学生的实践能力与综合能力。鼓励学生积极参加 “博创杯”全国大学生嵌入式物联网设计大赛、全国大学生“飞思卡尔杯”智能赛车竞赛、全国大学生电子设计竞赛等各种实践活动,同时还鼓励他们积极参加怀化学院和计算机工程系的“大学生研究性学习和创新性实验计划项目”。在整个过程中都有相应的专业老师指导,通过此方式不仅培养了学生的基本科研素养,锻炼了学生综合科研能力和独立分析、解决问题的能力,也为他们将来走向社会参加科研工作打下了坚实的基础。通过竞赛和科研项目的历练不但让学生提高了工程实践能力,还让他们逐渐形成了前沿的理念与创新意识,而这些也正是一位优秀的嵌入式系统开发人才所应具备的综合能力素质[5]。
3 结 语
嵌入式开发要求从业人员既要具备完整的理论知识结构,又要有很强的动手能力。这对高校嵌入式课程教学提出了更高的要求,需要积极探索嵌入式课程教学改革以适应嵌入式行业对从业人员的要求。通过《嵌入式系统原理与接口技术》课程教学改革措施,有效提升了教学效率,提高了学生的学习兴趣,锻炼了学生积极动手的实践能力,为培养适应嵌入式行业的专业技术人才进行了有益的探索和实践。
参考文献
[1]华清远见.2013-2014年(第六届)中国嵌入式开发从业人员调查报告[EB/OL]. http://www.farsight.com.cn/subject/report2013-2014.htm.
[2]史梁,董丽莎.高职院校嵌入式系统与应用专业教学改革模式探索与研究——以《嵌入式系统概论》课程为例[J].河南广播电视大学学报,2014,2(27):100-102.
[3]段怡.论大学生信息素养教育的内容构成[J].高校图书馆工作,2004,24(3):76-79.
[4]丰海.嵌入式课程建设中的“有所为,有所不为”[J].江西理工大学学报,2011,32(6):72-74.
[5]李志军,张子红,王昊,等.以设计能力为主线的嵌入式系统教学改革[J].物联网技术,2014,4(10):86-87.
[6]吴新生.基于高职学生特点的《嵌入式操作系统》课程教学改革[J].物联网技术,2015,5(2):105-106.
[7]欧阳秀军,刘启岳,彭宣戈,等.嵌入式系统教学模式的研究与实践[J].井冈山大学学报(自然科学版),2006,27(6):43-44.
[8]王俊波.物联网专业应用型人才培养研究与改革[J].物联网技术,2015,5(5):106-108.