汪湛清, 彭熙伟, 郭玉洁, 郑戍华
(北京理工大学自动化学院,北京100081)
随着嵌入式系统在国内外自动化等各领域的需求变得日益广泛而深入,北京理工大学自动化专业自2006年开设了嵌入式系统理论课。鉴于实验教学在嵌入式系统教学中是一个至关重要的环节,近些年来在自动化学院展开了一系列嵌入式系统的实验教学,目前已开设的嵌入式系统实验教学课包括嵌入式系统课内实验、嵌入式系统实验选修课、嵌入式系统开放实验课。
图1给出了北京理工大学自动化专业嵌入式系统实验课体系关系图,此图中嵌入式系统实验课统领三个主要系列,从左到右依次为处理器系列(微机原理实验、单片机课程设计、DSP实验);接口系列(目前主要为现场总线技术实验);结合控制对象系列(可编程序控制器实验、组态软件及自动化装置实验)。
图1 嵌入式系统实验课体系
嵌入式系统是一门汇集计算机软硬件、数字电路设计、模拟电路设计、应用领域专业技术等方方面面知识的综合性课程[1-2],因此需要学生掌握各种理论知识以及设计与调试实践技能,这也给嵌入式系统实验造成很大的挑战。首先,需要设计一款合适的嵌入式系统实验教学平台;第二,合理选材与设置实验前需要讲授的知识技术内容;第三,克服陡峭学习曲线。针对这三个挑战问题,在本文后续部分依次论述。
图2 嵌入式系统实验平台核心及扩展功能单元
设计开发合理适用的实验平台对有效完成实验教学至关重要。依据调研可知,ARM(Advanced RICS Machines)是嵌入式微处理器行业的一家知名企业,设计了大量高性能、廉价、低功耗的RISC处理器、相关技术及软件。目前已有大量的厂商购买ARM的知识产权生产了不同性能和不同应用领域的ARM处理器,近十几年来以ARM作为嵌入式系统教学的核心已成为一种趋势。
在设计嵌入式系统实验平台时,首先需要考虑的是:选用哪一款ARM处理器?因为平台的主要目的是教学实验,所以选用目前市场上主流的Samsung公司的ARM 9[3]列处理器作为实验平台的核心处理器。与此同时,考虑到市场上日益出现的具有不同性能和针对不同应用的ARM处理器,希望本平台能兼顾一些高性能和特殊应用的基于ARM的高性能嵌入式系统的开发,例如Marvell Xscale 270和TIDM355等。
为了兼顾多种处理器内核,考虑以“核心板”+“扩展板”作为本实验平台的基本架构。核心板即带有不同ARM处理器的主板(可以是Samsung ARM9核心板、Marvell Xscale270核心板、TI DM355核心板等);扩展板则是既能兼顾三款核心板,又能扩展出多种外部接口单元以及各种定制模块的电路板。因此本平台的硬件研制重点分为五步:首先,要充分了解三种不同类型的ARM处理器的性能和应用;其次,划分出三款核心板与扩展板各自的功能;第三,定义出核心板与扩展板的连接线;第四,在扩展板上,规划出各个接口单元并为学生自主定制模块设计预留接口;最后,分别设计核心板和扩展板。
图2给出了基于上述设计思路而展开的围绕嵌入式系统ARM核心的各功能单元介绍。其中,核心资源即是 Samsung ARM 9模块,包括内核为 32-bit ARM920T的CPU内核,其最高工作频率是203MHz;64MB的SDRAM;64MB的FLASH;1个主USB;1个从USB;1个10/100M以太网口;1个UART接口;电源模块:将通用的5V转换成Samsung ARM 9处理器所需的3.3V和1.8V。同时,各扩展功能单元包括输入输出接口单元;AD、DA转换单元;LCD液晶显示屏单元;触摸屏单元;JTAG单元等等。此外,还有特别引出了定制模块接口。
在北京理工大学自动化专业,嵌入式系统课程自开设以来,每年都有120名至180名学生选修这门课程。但在以往的课程中,选用的教材大多是针对某一具体的嵌入式控制器或嵌入式处理器而编写的[4],这样造成的问题是:①有具体硬件设备时,理论知识学起来非常抽象;②如果有具体硬件设备,往往又不能举一反三;③理论课程中对其他相关知识介绍不足,不具连惯性和对比性,不易克服在综合全面运用知识过程中的阻碍,学生难以将所学知识系统地结合起来,以至于学习最终趋于分数导向,学生死记硬背,所学知识僵化。为了规避消除上述问题,首先向学生们推荐国外著名高校在嵌入式系统教学中所使用的经典教材[5-6],针对某一特定嵌入式处理器或控制器,结合这些教材,除了在实验课程中要穿插计算机科学相关知识(例如算法、数据结构、软件工程、操作系统等)外,还专门设置了针对以下几方面的实验前讲授内容:①同硬件平台介绍(x86,ARM,DSP,FPGA);②ARM 核心架构以及基于ARM的汇编语言与C语言;③外设、接口、通讯;④电源与晶振;⑤负载驱动;⑥案例分析研究。
上述内容涵盖了在嵌入式系统实际设计与应用中常常会遇到的问题及解决方法,在介绍这些内容时没有固定的教材,而是取材于世界一流嵌入式系统企业针对实际工程问题编撰的设计应用参考资料,例如“5V to 3V Design Considerations”[7],源自飞思卡尔半导体公司的应用说明书,该说明书阐述在嵌入式系统设计中常常会遇到的3 V和5 V混合电源设计问题;“Linear and Switching Voltage Regulator Fundamentals”[8],这篇文章介绍嵌入式系统电源管理中的线性和开关电压调节器设计的基本常识,源自国家半导体公司;“Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices”[9]和“HCMOS Crystal Oscillators”[10],介绍晶振的基本知识和选择方法,分别源自微芯技术公司和快捷半导体公司;“High Speed Board Designs”[11]和“Ground Bounce & Vcc Sag”[12],分别介绍高速电路板设计注意事项和地弹电源下陷问题,二者都源自阿尔特拉半导体公司,“Choosing and Using Bypass Capacitors”[13],介绍旁路电容的选择和使用,源自英特矽尔半导体公司。由于这些资料的作者都是嵌入式系统领域工程业界的一线工程设计人员,内容是他们基于各类典型问题的技术报告,总结了理论技术在实践设计中遇到问题的解决办法和注意事项,理论与工程实际紧密结合,对学生解决嵌入式系统设计与应用的实际问题非常有帮助。
案例分析则是结合实例介绍嵌入式系统工程设计的整个过程必经的环节与内容,对学生们今后的实践,包括本文第四部分介绍的为克服陡峭学习曲线而采用的基于项目的实践设计,起到引领示范的作用。
由于嵌入式系统汇集了方方面面的知识和技能,尽管学生们已具备一些先修基础知识,依然存在陡峭学习曲线等待他们克服。
面对嵌入式系统实验教学中存在的陡峭学习曲线之难题,传统的实验教学方法往往难以奏效。众所周知,传统教育片面强调教师在教育中的权威,在教学中体现为教师的单纯灌输和学生的被动接受,在这个过程中,学生总是处于一种被动的位置,削弱了学习知识的积极性和主动性。
根据多年的教学体会:无论教给学生多少概念,无论讲的有多深,无论考试有多么难,留在学生脑中的只有那些触动他们的!基于项目的实验教学即是通过一个具体的项目“做中学”。“做中学”有利于现代教学中的师生关系的建立,从传统上改变了师生关系,教师和学生的关系更类似于导演和演员的关系,这样更能激发学生们的主观能动性。
因此,采用基于项目的实验教学方法来克服陡峭学习曲线。在实施过程中,在共计16周48学时的嵌入式系统实验课的后8周引入基于项目的实践教学方法,同学们2到4人形成项目组,项目的实施过程依次经历技术分析、方案评审、设计实现、项目评估四个阶段。首先,学生们巩固了前8周所学知识,回顾了前8周基础实验的记忆;其次,在后8周磨砺了嵌入式系统实践设计技能,加深了对于嵌入式系统知识的理解;第三,由于以项目组为单位实施考核,培养了学生团队合作等能力。
通过8周的基于项目的实践教学,每个学生除了完成基础实验之外,还要做一个综合性比较强、比较复杂、多来自实际工程的项目,这样培养出来的学生理论和动手能力都很强,就业率和就业质量都非常高。由于项目设有时间节点,学生要完成硬件设计,最终以论文和PPT答辩的形式进行评估,学生们的积极性和创造性被激发,尽管8周的时间非常煎熬,但是,学生们乐在其中,最终88%的学生能够克服陡峭学习曲线。
在基于项目的嵌入式系统实验教学中,学生既可以从教师设定的项目中选取项目,也可以自行拟定项目。在实验课的初始阶段就提醒学生们在日常生活和学习中有意识的关注嵌入式系统在实践中的运用,以便早做储备并于第8周进行方案评审。经过评审后,项目进入实施阶段。要想最终完好的实现一个项目,8周24学时的实验课往往是不够的,因此学生们利用开放实验时段积极到实验室进行设计调试,同时还要利用课余时间到电子市场采购,甚至去企业调研,学习也由此从课堂、实验室扩展到社会、企业。
学生完成的嵌入式系统项目设计包括基于ARM嵌入式系统的CAN总线模块设计、基于ARM的GPS导航系统设计、超声波测距模块设计、步进电机设计、PWM电机调速控制实现、GSM模块设计等等。以“基于ARM的GPS导航系统设计”为例,4名学生形成的项目组要在8周内协同完成以下内容:①了解GPS技术与需求;②手绘GPS模块原理草图,了解各元器件功能,采用Protel软件设计GPS模块原理图和电路图、PCB制版、器件采购与焊接、硬件电路调试;③操作系统(嵌入式Linux)的初始化、启动、裁剪、移植、调试;④硬件设备驱动程序的编写;⑤GPS应用程序实现。
在这个过程中,学生们首先要手绘原理图,然后,教师引导学生学习初步的Protel设计知识与电路设计常识,学生们自行上网下载软件并学习利用该软件进行设计,这样锻炼了学生的自主学习能力。另外,学生们还要依照在工程设计中的规范格式填写元器件清单并去电子市场调研询价,还要找寻合适的厂家制作印制板。通过市场调研,学生们开阔了视野,也初步形成了将来在实际科研开发工作中所需具备的成本意识。关于嵌入式系统软件的学习,特别是嵌入式LINUX操作系统的移植,教师则会向学生们推荐一些参考书[14-15],学生们根据这些书目进一步自学并完成软件实验内容。
本文回顾了近些年来在嵌入式系统实验教学方面的一些经验,尽管学生们在上课之初对嵌入式系统感到神秘,甚至畏惧,但是,基于对于嵌入式系统平台的精心设计、实验前知识内容的合理选材和设置,并且通过基于项目的实践教学方法来克服陡峭学习曲线障碍,大多数学生通过这门实验课对嵌入式系统有了深刻的认识和进一步深入研究的兴趣。与此同时,经过基于项目的实践教学的各个阶段,学生在申请项目、自主学习、独立工作、撰写科技论文、做PPT报告、团队合作等各方面得到培养和锻炼,从而进一步提高了学生的综合能力和素质,为学生毕业后进一步深造或走向社会打下坚实的基础。
[1] Hamacher C,Vranesic Z,Zaky S,Computer Organization and Embedded Systems[M](6 Edition),The McGraw-Hill Companies,Inc,2013:386-443.
[2] Barry P,Crowley P,Modern Embedded Computing[M],Elsevier Inc,2013:3-41.
[3] User’s Manual S3C2410X 32-Bit RISC [S]. Microprocessor Revision 1.2.
[4] 周立功,ARM嵌入式系统基础教程(第2版)[M].北京航空航天大学出版社,2008:41-99.
[5] Wolf W,Computers as Components:Principles of Embedded Computing System Design[M],Morgan Kaufmann Publishers,2001:177-233.
[6] Vahid F,Givargis T,Embedded System Design:A Unified Hardware/Software Introduction[M],John Wiley & Sons,Inc,2002:29-308.
[7] Filippi G,5V to 3V Design Considerations,Application Note AN2433/D Rev 0,12/2002[R].Application Engineering,Freescale Semiconductor.
[8] Simpson C,Linear and Switching Voltage Regulator Fundamentals[R].National Semiconductor.
[9] Bible S,Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices[R].Microchip Technology.
[10] HCMOS Crystal Oscillators,Application Note 340,1983[R].Fairchild Semiconductor.
[11] High Speed Board Designs,Application Note 75[R].November 2001,ver.4.0,Altera.
[12] Schmitz T,Wong M,Choosing and Using Bypass Capacitors,Application Note AN1325,August3,2007[R].Intersil.
[13] Ground Bounce & Vcc Sag,White Paper[R].Altera.
[14] 陈云川,嵌入式软件调试技术[M],电子工业出版社,2009:41-99.
[15] 杨水清,张 剑,ARM嵌入式Linux系统开发技术详解[M],电子工业出版社,2008:109-135.