APP下载

嵌入式设计教学的强化自主学习法研究

2017-09-01刘春王中齐

计算机教育 2017年8期
关键词:仿真实验嵌入式系统

刘春+王中齐

摘 要:分析目前嵌入式系统设计的现状,提出在嵌入式设计课程的教学中引入系统级硬件设计与软硬件联合仿真方法,遵循“小系统设计—驱动设计—应用层设计—综合设计”的脉络,以培养能力和信心为宗旨,以“强化自主式学习法”为教改思想,对教学与实验内容进行改编,增加设计型仿真实验,编排虚实结合的软硬件组合接口设计、游戏设计等,设计多阶目标满足不同强化训练需要。通过对4届学生的成绩综合分析发现,该教学法对提升整体成绩效果明显。

关键词:强化自主式学习;嵌入式系统;仿真实验;Proteus

1 背 景

近年来,随着物联网等技术的广泛应用,嵌入式系统设计软硬件开发工作呈现出更宽广的市场需求。从培养计算机综合系统能力角度来看,现有的教学内容和教学模式常常偏“软”,硬件层与系统层设计还远不能满足实际需要。针对这一问题,许多高校都进行了教改尝试。如电子科技大学、武汉理工大学等引入项目案例教学法力求增强课程吸引力[1-2],而同济大学、华中科技大学等则自行研制开发教学开发板和配套教材[3-6],以求从内容上突破。上述方法取得了一定的成效,但对普通应用型高校和应用型人才的培养来说,均不易普及。嵌入式设计课程具有技术性强、软硬结合、内容宽广的特点,但也面临总体课时不足、实验器材落后、教师经验缺乏等诸多限制。经过多次更换教材、改编实验内容等尝试,我们认识到要在诸多限制下教好这门课程,需要回归到学习和教育的本源,激发学生自主学习动力,设计并利用強化方法引导学生逐步深入,并解决以下3方面的问题。

(1)学生有条件在脱离学校实验器材限制的情况下自主反复实验。

(2) 教学和实验的内容设计既要循序渐进,又要连续保持高度压力,驱动学生强化学习。

(3)把考试目标分解为单元目标并以一定的成就机制吸引使学生自我正反馈学习。

例如,华中科大自行研发了综合实验箱,在大一阶段就发给学生自主学习,大四再收回。这种方法解决了实验器材的限制,但大多数学校尚不具备这种条件。Proteus仿真软件早已在单片机、微机原理、自动化、计算机组成原理等专业课中被引入作为先进的自我学习实验手段[7-8],8.4以上版本已能支持ARM7、ARM9、CORTEX M3等CPU。通过引入这一最新适用于嵌入式CPU的仿真软件,笔者以ARM7为基础设计了一系列的软硬件结合设计型教学内容,推行强化式自主学习,最后再基于硬件实验箱进行综合强化设计。

2 教改思想:强化自主式学习

引导性学习以老师讲、学生听,老师出题、学生备考为基本学习形式,这一典型教学方法并不太适用于嵌入式系统的教学。首先嵌入式教学内容覆盖广泛,从电子技术基础、原理图设计、ARM芯片原理、汇编设计,到嵌入式操作系统、交叉编译、驱动程序设计、上层应用程序设计,很难在规定课时内完整讲解所有内容。其次,嵌入式课程大量内容还是技术性和设计型的,课堂讲授效果比纯理论类课程差,需要补充大量实验来强化教学效果。

自主性学习(self-dominated study)一般是指个体自觉确定学习目标、制订学习计划、选择学习方法、监控学习过程、评价学习结果的学习。自主学习不是放任不管,结合嵌入式学习要求,在自主式学习基础上需要引入教师的强化引导要求,以使自主学习增加以下3个要求。

(1)有目标。 布置的学习任务均带有明确的课题目标或阶段性目标,学生在完成任务后能得到阶段性评分,并形成自我反馈。

(2)有强度。每个阶段布置的学习任务都具备一定的复杂度,需要学生花费一定时间思考和尝试,在完成任务后有成就感,并获得继续深入的动力。

(3)有意义。具化为能力的培养,使学生能感受到自身进步,培养解决问题的信心。

3 教改内容:体系的沿袭与内容的创新

美国硅谷圣何塞州立大学是硅谷地区重要的IT工程师摇篮,经过访问考察发现其嵌入式课程由CMPE 241: Embedded System Development Tools、CMPE 242: Embedded Hardware Design、CMPE 243: Embedded Systems Applications和CMPE 244: Embedded Software共同组成。其内容涵盖了软硬件设计和编程开发,并额外开设了IEEE 802/11BGN课程(CMPE 245: Embedded Wireless Architecture),选用教材包括自编材料和厂家芯片手册,芯片体系架构主要讲述ARM Cortex M3核的LPC1769,实验方法是要求学生自购模块化LPC1769开发板和外围模块,逐步添加和深入,在美国当地购齐材料成本约为每人160美金,软件为LPCXpresso集成环境。

从课程体系的设置以及教学内容的编排看,大多数国内高校与其主要不同之处在于自购实验板和严格的实验评分。笔者讲授过针对ARM7、ARM9、CORTEX M3和A8的课程,从教学经验看,比较合适本科层次的还是ARM7,其难易适中,教学材料丰富,学生就基本原理与基本技术的学习容易上手和深入。嵌入式操作系统方面则各有偏重,有从适宜理解方面选择UCOS操作系统教学,还有从与实用对接角度考虑选择Linux系统。笔者认为嵌入式系统的教学应沿袭现有成熟课程体系,但其教学内容的编排应进行必要的变革创新。

首先,以ARM7+ Embedded Linux组合的教学内容是比较合适的选择。内容应包括ARM7的体系结构、汇编与C混合编程应用、无操作系统的驱动与应用程序设计、嵌入式Linux操作系统基础、交叉编译环境设置、嵌入式图形应用程序设计等。至于Android、iOS等应放到后置课程中学习。课程总体目标是以综合应用设计的方式,配以案例教学和大量的实践实验,使学生切实体会到一个项目的提出、方案选择、硬件设计、软件设计、调试等一系列过程,达到各种所学知识的高度融合。以上内容体系与课程目标与大多数学校的教学大纲和教学目标是基本一致的。

其次,嵌入式系统学科是典型的工科学科,是在基础理论科学的基础上结合理论研究、应用研究和工程实践经验积累而发展起来的应用学科,其目标是培养在工程领域中从事设计、研究、制造、管理等方面的工程技术人才,尤其强调动手实践和综合运用所学知识解决实际问题的能力。为此嵌入式系统课程,特别是实验课程,内容的安排应从被动的观察思考类,转到主动的设计实现类,这就需要结合学校条件,采取虚实结合的先进实验方法,重新改编实验内容。表1比较了传统的依托ADS CodeWarrior IDE的嵌入式实验课程内容,和以Proteus8 IDE为依托的创新实验设计内容。

ADS实验一般设计10课时,受客观条件限制基本上难以展开。Proteus实验则可以完全摆脱实验箱和实验室课时的限制,以课外自主式学习和实验为主,以课堂实验检查为辅,从第三个实验开始即进入设计型模式,设计难度从2机时到15个机时不等,涉及的软件工具还包括Vmware、Ubuntu Linux、QT、SQLite、Skyeye等,不但对教学内容构成必要的补充,而且充分覆盖对学生的整体应用设计能力的培养。

4 教改方法:虚实结合的软硬件组合设计强化训练

由于硬件条件受限,目前国内大部分高校沿用的还是ADS环境结合实验箱进行实验,但是ADS是纯粹的软件环境,只能将最后编译结果下载到实验箱建立与硬件的联系,欠缺软件到硬件中的必要联系。一些大学在嵌入式系统的教学中引入了Verilog设计工具进行仿真,该工具的使用与C语言环境有较大不同,要求先学习硬件描述语言,适用于电子或自动化等专业,对计算机类等本科专业学习门槛较高。而Proteus仿真与设计软件可以在PC上完成从原理图设计、电路仿真、PCB设计到软件代码调试、实时仿真、测试和PCB 3D视图验证的整个开发过程,8.0以上的版本不但直接对Keil等编译环境进行集成设置,还增加了Arduino流程图设计集成环境,可以做机器人仿真设计,大大丰富了软硬件之间的直接联系。利用Proteus,学生可以完成从硬件电路设计到软件代码联调仿真的综合,他们可在自己的电脑上充分自主地设计、联调和观察结果,不但弥补了硬件设计的短板,而且能克服实验箱引起的诸多限制,是绝大多数工程技术专业学生进行自主式学习的有利工具。

大多数ADS实验内容是验证和思考型的,比如大多数GPIO控制实验是要求控制IO引脚点亮LED灯,实验相对简单,难以对学生产生足够的刺激。增加实验次数,提高实验复杂度,在实验中布置个性化检查点,事前充分辅导讲解,事后严格逐个检查,这些措施是使学生从自主式学习迈向强化自主式学习的关键。

如笔者在设计GPIO实验中,加入了更多复杂条件,要求一组LED灯被控制进行至少3组以上的变换显示效果,并增加一个喇叭,对每种输出效果配上不同的音效。检查时,要求每个学生对喇叭随机变调,或对显示效果随机修改并加以解释。由于实验内容与室外广告灯箱效果近似,因此学生在设计时兴趣大增,利用课余时间自主实验和学习,取得了明显的进步和满意的实验效果。

再如在中断实验中,ADS实验内容是使用S3C2410实验箱的定时器0实现0.5秒的定时并产生中断,每产生一次中断即控制蜂鸣器的I/O口状态取反,实验目的过于单调。在Proteus的中断实验中,笔者将ADC和字符显示实验进行了结合,要求设计一个电子秤,对传感器进行ADC转换取得数值,然后用矩阵式键盘进行算术运算,并显示结果。该实验设计机时在15个小时左右,学生们一边抱怨难度太大,一边兴致勃勃地加班加点,最后完成的学生都觉得很有成就感,未能自主完成的学生在参考其他同学的成果后,也有自己的收获,图1为本实验的学生作业图。

5 教改层次:逐步深入,设计多阶目标满足不同需要

教学梯度应遵循“小系统设计—驱动设计—应用层设计—综合设计”的脉络,并注意从纵向和横向进行多阶次设计,使其可以由浅入深,由易到难,满足不同学习能力学生的需求。具体实施如下:

(1)小系统设计是指在训练之初,每一步的复杂度都限制在小型组合系统框架内,如设计ARM CPU+存储器组合系统、 CPU+矩阵键盘系统、CPU+串口通讯系统、 CPU+IIC实时时钟系统等,这些独立的小系统设计均覆盖了系统设计的一个方面,由于限制了系统规模,在设计和实验时不会造成各个模块之间的干扰,学生容易上手。

(2)驱动设计则提高了难度,要求在软件的设计中融合特定硬件的用法,如CPU+LCD显示系统设计实验,是编程点亮12864LCD液晶屏幕显示点阵和字符(学生姓名学号)。

(3)通过上述两个阶段的训练,学生具备了基本的完整应用系统设计能力,可以布置应用层的实验项目,如电子秤系统、贪食蛇游戏机等,这些实验均由多个小系统实验组合而成,只是范围更大、难度更深了。

(4)综合设计实验进一步在上述各种实验基础上,以课程设计的形式,实现多科目融合设计,如将网络通讯、界面开发、嵌入式数据库、软件工程包含在一起,设计无线点菜系统。这样的设计任务接近实用化需求,学生在完成最终的综合设计训练后会有极大的成就感,开发信心倍增。

具体到编排实验内容时,还要注意纵横结合。纵向多阶是指教学与实验内容的逐次递进,横向多阶是指编排的内容在同一个阶層有不同的难度要求和分数奖励。目前采用的方法是在同一个层次编排两个以上的实验,以适应普通学生和学有余力的学生。如表1所示,Proteus实验分为基础实验和进阶实验。在组建交叉编译环境实验时,基础实验只要求建立环境,而进阶实验要求安装skyeye模拟器进行实验验证。又如在接口实验中,IIC与SPI接口实验是设计温湿度检测器,而进阶实验是设计基于TFT LCD屏幕的贪食蛇图形游戏,如图2所示,用矩阵键盘控制蛇的移动方向,其挑战性非常强,完成时间需要15个机时。设计这些进阶实验的目的是通过优秀学生的努力与成就展示,带动普通学生更加努力投入自主钻研的学习中。

上述所有的Proteus内容虽然适于嵌入式系统教学,但是最终还应该设计一个环节与真正的硬件实物进行连接,最合适的安排就是学期结束前的课程设计环节。在学生已经建立了基本的嵌入式基础知识后,以课程设计的形式,进行一个集成各个模块的大型设计,再将编译后的可执行文件下载到实验箱上,最终使得学生通过这样的完整设计与实现过程达到课程培养目标。笔者设计的强化课程设计《基于ARM的无线点菜系统》获得学生好评,课程采风《开发达人是怎样炼成的》还被湖北日报荆楚网报道。

为了配合上述的各阶层目标,笔者将课程总评成绩拆解为一系列的小目标成绩,其中期末考试占30%,而每个实验的现场考核都按难度不等计入5~10分,对高难度设计设立奖励分。也可以按周进行实验的规划,并设置提交时间区间,按区间给起评分。

6 教学效果检验与展望

为了检验上述强化自主式学习的教学效果,笔者对连续4届的学生进行了成绩跟踪与回访,将各分项实验得分和最终在实验箱上进行课程设计时完成的目标项数对比,并以此作为判别依据。其中第一届采用的是ARM7+ADS实验内容;第二届采用ARM11+ADS;第三届采用ARM7+LINUX+课堂Proteus;第四届采用强化自主式学习法,内容为ARM7+LINUX+课外Proteus,其对比结果见表2。

从表2可看出,经过课程与实验的优化,学生的成绩逐渐提高,但是对ADS型实验,学生成绩起伏不大,既无兴趣的提高也无明显降低,基本上依赖学生自觉。对于第四届的教学改革,可见实验成绩有强化性的提高,最终的课设成绩也有大幅度的改善。进一步分析第三届引导式学习法与第四届强化自主式学习法取得的分段成绩(见表3),强化自主式学习法对低分段学生有明显的提升效应,在实验难度不是特别大的情况下(如实验3—4),整体能取得最好的成绩;在难度最大的时候(如实验5),整体仍然能取得稳定的成绩,这些比较充分地说明了该种教改方法对学生成绩的促进。

基于Proteus仿真软件,我们对嵌入式系统课程的教学实验内容和方法进行了改革,克服了课时与实验设备的限制,以强化自主式学习法取得了较好的教学实践效果。需要注意的是,由于软件仿真能力的限制,目前可以仿真的uclinux系统功能微弱,图形和网络能力很少,还不足以支撑实现系统级的设计仿真,所以最后一个连接实验箱的环节目前仍然不可或缺。此外采取上述方法的前提是学生对Proteus设计调试方法有一定基础,笔者在讲授计算机组成原理时,已经引入和设计了相应的组成原理Proteus实验对学生进行了准备性训练。强化自主式学习法从学习的本源出发对嵌入式系统课程的教学进行了有益的尝试,未来的工作包括需要进一步调整教学与实验内容的难度以适应不同阶层的学生,以及进一步设法解决系统级应用设计完整仿真的问题。

参考文献:

[1] 李文生, 邓春健, 吕燚. 案例驱动的嵌入式系统教学改革探索[J]. 计算机教育, 2011(2): 22-25.

[2] 李寧, 宋薇, 库少平. 项目化嵌入式教学方法研究[J]. 单片机与嵌入式系统应用, 2010(2): 5-8.

[3] 郭华, 张小军, 张德学. 嵌入式教学改革探索[J]. 教育教学论坛, 2016(27): 101-103.

[4] 潘登, 陈启军. 面向卓越人才培养的嵌入式系统教学改革[J]. 计算机教育, 2013(13): 1-5.

[5] 陈乃金, 周鸣争. 计算机系统能力背景下的嵌入式系统实验教学研究[J].电脑知识与技术, 2016, 12(12): 98-99.

[6] 凌明, 刘昊, 时龙兴. 关于嵌入式系统课程教学过程中几个问题的思考[J].电气电子教学学报, 2007(S1): 97-99.

[7] 万松峰. 基于Proteus的单片机原理与应用的教学改革[J]. 高教学刊, 2016(14): 121-123.

[8] 张婧婧, 李勇伟. 电子类仿真软件应用的教学之道[J]. 计算机教育, 2016(7): 126-129.

[9] 郝建新, 王金全, 陈晓宁, 等. 强化学生自主性学习的方法和机制[J]. 河南科技, 2010(6): 67-67.

(编辑:彭远红)

猜你喜欢

仿真实验嵌入式系统
仿真软件在制药人才培养中的作用分析
开展体验式教学创新研究 提高化学课堂有效性
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
基于多重视阈下的《电子控制技术》课程的教学探讨
基于ETAP的电气设计仿真实验
计算数据中心的动态数据聚集算法研究