嵌入式系统教学模式研究
回顾从单片机教学到现在的嵌入式系统教学20余年的发展,介绍嵌入式系统教学流行的微处理器和嵌入式操作系统的类型,以及公司的大学计划对嵌入式系统教学的支持。探讨各专业的嵌入式系统教学模式,总结教学经验,为促进国内嵌入式系统健康发展服务。
关键词 嵌入式系统教学 微处理器 嵌入式操作系统
引言
从1985年初接触单片机到现在已有20余年,亲历我国嵌入式系统的发展,也从事着嵌入式系统教学的探索。在社会上开始单片机培训7年后高校才大规模开设单片机课程,而嵌入式系统课程只是全面铺开,并没有形成由应用推动的嵌入式系统教学体系,这值得探讨和反思。
由8/16位单片机到采用32位嵌入式处理器的嵌入式系统,一方面是互联网的普及和高端应用的需求,另一方面是8位单片机对半导体公司来说利润空间已经很小。由全国大学生电子设计竞赛组委会主办、Intel公司协办的“全国大学生电子设计竞赛——嵌入式系统专题竞赛”进一步丰富了全国大学生电子设计竞赛的形式和内容,推动了高校信息电子类专业教学改革、课程体系及实验室建设,各高校纷纷开设嵌入式系统课程。2002年举办的首届嵌入式系统专题竞赛采用Intel公司提供的基于StrongARM和Windows CE的开发板。只有北京大学参赛队采用了Linux操作系统,并最终获得了Intel杯。嵌入式系统不只是 ARM和Linux的组合,可用于嵌入式应用的微处理器和嵌入式操作系统种类繁多。下面评介流行的、适合嵌入式系统教学的微处理器和嵌入式操作系统,探讨嵌入式系统教学模式和经验。
1 嵌入式处理器
用于嵌入式应用的处理器可分为4类:微控制器(即俗称单片机,Microcontroller Unit,MCU)、嵌入式微处理器(Embedded Microprocessor Unit,EMPU)、信号处理领域的DSP处理器(Digital Signal Processor,DSP)和高度集成的片上系统(System on Chip,SoC)。目前用于教学的嵌入式处理器大致形成了以8位、16位和32位划分的局面。
单片机教学最流行的是8051系列。8051是Intel公司1980年设计的8位MCU。20世纪80年代中期,Intel公司将8051单片机内核使用权以专利互换或出售形式转让给世界许多著名的IC制造厂商,如Philips、Atme1、Dallas、Infineon、ADI、Winbond和Silicon Labs公司等,这样8051就变成有众多制造厂商支持的、发展出上百个品种的大家族。到目前为止,其他任何一个单片机系列均未发展到如此的规模,近30年一直是普遍流行的产品,如此具有生命力。8051是单片机教学的首选机型,已成为单片机领域的实际标准。现在C8051F系列和STC89系列就是8051生命力的最好体现,前一种是SoC型单片机,功能更强,后一种价格相当便宜。Oregano System公司的Core8051 IP和Synopsys公司的DW8051_core是与8051指令兼容的8位单片机IP核。基于IP核和FPGA的SoC设计方法具有极大的灵活性,可以大大缩短项目的开发周期。
Microchip公司的PIC系列倚靠大学计划,使得在单片机教学中采用PIC系列单片机的高校不少。值得欣赏的是这个公司非常专注,它把8位PIC单片机做到了60亿颗。现在他们才用MIPS核推出32位微控制器。MIPS是美国计算机体系结构课教学机型,国产的龙芯CPU就是MIPS兼容的。Atmel公司的AVR系列同PIC系列一样也是RISC结构的单片机,得益于启东人成长起来的双龙公司代理该系列产品。AVR系列单片机也在教学中采用,甚至推广到了中学课外科技活动中。这些从国内出版的单片机教材中可见一斑。
在DSP芯片教学中,TI公司做得最好,TMS320C54x系列靠大学计划得到普及。该公司后续推广的TMS320C240系列和MSP430系列单片机也得益于大学计划。ADI公司也利用大学计划推广DSP芯片。Freescale公司(原Motorola公司半导体部)大学计划推广DSP芯片、通信用PowerPC芯片和单片机。
ARM公司是一家不生产芯片,只提供IP授权的公司,它的产品已经成为32位嵌入式系统的事实标准。ARM嵌入式处理器以它独特的IP授权形式得到了众多半导体厂家的青睐。DSP生产厂家购买它的RISC核做双核芯片,PLD生产厂商购买其IP核支持SoC设计,大多数半导体厂商设计MPU或MCU。NXP公司(原Philips公司半导体部)靠广州周立功公司的推广,其LPC系列ARM7核微控制器在教学中得到采用。采用ARM公司最新Cortex核的意法半导体公司的STM32系列和Luminary公司的群星系列微控制器正在推广过程中。ARM9核芯片方面,因NXP公司和Atmel公司的芯片都不带LCD控制器,做实验箱普遍都采用了三星公司的S3C2410芯片。但三星公司对散客没有支持,优势只是价格便宜。Intel公司出售了ARM核的XScale,主推自己的EIA架构,对高端嵌入式系统教学有一定的影响。
SoC片上系统更是嵌入式系统的终极目标。大学计划做得最好的是Altera公司,它推出了Nios软核的SOPC解决方案,并举办创新竞赛。Xilinx公司也有大学计划,推广Microblaze软核FPGA。现在还有Actel公司,在推广带ARM CortexM硬核和8051软核的FPGA芯片。
总之,嵌入式系统教学用处理器应选用主流芯片,或有厂家大学计划支持的芯片。若教学偏重硬件设计,要教会学生制板、做硬件应用系统,最好选择8/16位芯片、ARM7或CortexM芯片。200 MHz以上的ARM9芯片对布线的要求高,而且表面贴装引脚较多的芯片也需要专门的焊接设备。
2 嵌入式操作系统
Linux从1991年问世到现在,短短十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统抗争,在新兴的嵌入式系统领域内也获得了飞速发展。嵌入式Linux以其可应用于多种硬件平台、内核高效稳定、开放源码、软件丰富、完善的网络通信和文件管理机制等优良特性,成为嵌入式系统领域中的一个研究热点。Linux开放源码及内核可裁减非常适用于嵌入式系统教学。要注意,没有MMU的微控制器只能使用μClinux,要使用流行的图形用户界面GUI需要ARM9以上的微处理器和普通Linux操作系统。
Windows CE是微软公司从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许对从掌上电脑到专用工业控制器的用户电子设备进行定制。微软公司的大学计划支持高校的嵌入式系统教学,提供有时间限制的安装软件光盘和完整的教学课件。会微机编程的人能够很容易上手Windows CE编程,软件学院教学选用它很合适。更重要的是微软提供完整的解决方案,学生可以专注于应用的开发。
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks是商业化强实时操作系统,价格较高。风河公司有大学计划支持嵌入式系统教学。现在它从FSMlabs购买了RTLinux,对实时 Linux开发设计提供专业的开发平台。
μC/OS是由美国人Jean J.Labrosse开发的实时嵌入式操作系统内核。这个内核的产生和Linux有点相似: 由于从事嵌入式产品的相关开发和Labrosse本人的兴趣,他花了一年时间开发了这个最初名为μC/OS的实时操作系统。值得注意的是μC/OS只是一个操作系统内核,没有文件系统、网络协议和图形用户界面。μC/OS是开源的,但不免费。针对教育和非商业应用只要买Labrosse的书即可得到光盘上的源码,但用其开发产品是要付费的。周立功公司购买了μC/OS授权,自己设计了文件系统ZLG/FS、网络协议ZLG/IP和图形用户界面ZLG/GUI,提供了开发平台。Labrosse的Micrium公司通过北京麦克泰软件公司代理其产品。该软件代码很规范,没有使用操作系统课程中很专业的进程和线程的概念,只使用了任务,适合没有学过操作系统课程的开发人员学习。
总之,嵌入式系统教学用嵌入式操作系统也要慎重选择,能选用主流或有厂家大学计划支持的更好。一般只需选择一种,从精通一种到能开发项目。实际上一通百通,再学习其他的操作系统也不困难。
3 嵌入式系统教学探索
3.1 应用推动嵌入式教学
笔者1985年起给单片机培训班上课,当时的培训班学员来自研究所、公司和高校。培训班的目的是销售和培训厂商的开发工具,不收取费用。很多学员都有项目需求,学会使用工具后直接参与项目。这种单片机推广培训开展7年后,国内高校才大规模开课。由于单片机应用已经全面铺开,高校培养的学生很容易找到工作。
现在的嵌入式系统教学很大程度上不是由应用来推动的,而是跟着实验箱厂家提供的内容来规划授课内容,包括接口技术、汇编编程、C语言编程、操作系统移植。甚至ARM加Linux似乎就是嵌入式系统。存在的问题是,Linux开放源代码、免费但无人支持,一旦碰到难点只能网上求援。很多小公司吃了苦头,再不敢用Linux做产品;有的转向Windows CE,因为无法把握产品的开发周期,而且人员成本较大。虽然Linux可以免费得到,但是其上流行的图形用户界面GUI又是收费的,按照GPL协议还得公开自己的源码。Linux的教学难度也很大,一般学过操作系统才好办。最早的嵌入式系统课将很大精力消耗在教学生怎么用Linux,直到计算机操作系统课加了Linux上机实验上手才比较顺利。从Intel公司大学计划送给高校教学用的PDA参考设计——SitSang板子的培训教师看,硬件部分的培训教师是板子的设计者,是学电子技术的,主要讲硬件原理,软件只是用C语言编写测试程序来测试板子的各个部件是否工作正常;软件部分的培训教师是学计算机的,主要讲如何移植Linux、设计驱动程序和应用程序。可见大公司软硬件人才分工很明确。
实际上一个项目的软硬件开发人员比例可以到8∶2。也就是说若有10人,其中做硬件的只有2人,大部分人要开发软件。硬件有参考设计原理图,做出来即可;而软件体现着创意,体现产品的附加值。软件很重要,拿VCD机和苹果公司的iPOD比较,国内VCD机只能卖到几百元,而苹果公司的iPOD要卖几千元。硬件成本两者相比差不多,关键是软件。微软的移动和嵌入式研讨会令人感到震撼。微软资助用Windows Mobile开发云南白药集团企业管理用手机和城管通手机: 企业销售人员用前者随时和企业联系,一次拜访客户即可把订单做好;城管通手机使城管监督员可将所在地点的门牌标识和脏乱差的情况拍照,直接发送给城管部门。微软公司介入嵌入式领域,提供的是完整的解决方案,用户很快就能开发出产品。反观国内的嵌入式Linux,还陷在移植和底层接口模块的使用上。一般来讲这些适合偏硬件的人员做,距离做出产品还相去甚远。半导体厂商偏爱Linux是因为它是免费的,只要移植到评估板上就能证明处理器是正常工作的。真正要能开发出产品还得搭建应用平台。目前大的厂商都有手机平台、PDA平台或汽车电子平台。软件类嵌入式系统教学应该与硬件类嵌入式系统教学有所不同,应侧重平台搭建、GUI应用的开发,让学生能把自己的创意实现出来。至于编程,应以C语言为主、汇编语言为辅,优化则采用模块化混合编程。嵌入式系统课的实践性非常强,要上成理论课就失去了它的意义。
3.2 嵌入式系统的专业化分工
嵌入式系统教学需要前期开设的基础课有:模拟电路和数字电路、微机原理或计算机组成原理、计算机接口技术、操作系统、C语言程序设计。嵌入式系统支柱学科有:微电子学科、计算机学科、电子技术学科及对象学科。微电子学科、计算机学科、电子技术学科为嵌入式应用构筑各种类型的应用平台,不介入嵌入式系统的具体应用;对象学科一定要在嵌入式系统应用平台的基础上,实现嵌入式系统在本学科领域的产品化应用,不必介入嵌入式系统的平台构建。操作系统的构建应该定位在计算机学科领域。在对象领域中,操作系统被视为工具,只需了解操作系统与应用界面。基于此,各个专业的嵌入式系统教学应有所侧重,不能千篇一律;只有把国内的嵌入式应用推动起来,培养的学生才能好找工作。这样看来,本科教学中,电子技术专业应侧重讲接口技术和驱动程序设计,非电类的对象应用专业应侧重单片机接口和C语言编程技术,计算机专业应侧重GUI应用和驱动程序。至于操作系统移植,并非一般教学内容,应安排在本科毕业设计或研究生阶段教学。实际教学能做到“师傅领进门,修行在个人”即可,主要是培养学生对嵌入式系统的兴趣,而不能因涉及面太广、难度太大而把学生们吓跑。各高校嵌入式系统课多为选修课,学时有限,规划主要的教学内容和实验内容侧重点是教师的首要任务。
3.3 加强嵌入式系统的实践能力
笔者“嵌入式系统”选修课围绕ARM和Linux,按照验证性实验、综合性实验和创新性实验等3个层次逐渐培养学生开发应用程序和驱动程序的能力。实验教学中心采购了多种实验箱。针对实验设备的多样性,采用驱动程序屏蔽的方法,给学生提供一致的应用程序编程接口,利用实验设备共性的部分开设基础的验证性实验。同时,针对各种外设开发出各种实验样例程序,如液晶屏、触摸屏、小键盘和摄像头等,由学生自由组合成综合性实验。对于实验设备选配件以及未开发的部分,允许学生自主命题,申请器件进行创新性设计。这已经不是课内的内容,而是作为对嵌入式系统感兴趣的学生的课外科技活动。基于GTK+图形库的开源LiPS手机平台被移植到实验箱上。手机是未来的电脑,三大Linux手机标准联盟正推动着基于Linux的手机开发。鼓励大三和大四学生选修嵌入式系统课,侧重图片显示、触摸屏和视频采集的内容,通过开源手机平台等提高学生对硬件类课程的兴趣。上课和开设实验更多是为了发现对嵌入式系统感兴趣的学生,嵌入式系统课程不是普及教育,而是精英教育。光学课本,没有长时间的动手实践,根本不行。回想接触嵌入式Linux之初,买遍了市面上嵌入式Linux的书也没有找到一个模块化驱动程序的开发样例,最后不得不求助在Freescale公司工作的学生。从只会画单色圆的实验设备做起到积累大量实验样例,深深感到只把Linux移植到具体的板子远远满足不了嵌入式Linux应用的要求,应用程序和驱动程序开发才是嵌入式系统开发的关键。只有把嵌入式Linux的应用推动起来,国内高端嵌入式应用才能健康发展。现在更缺少嵌入式软件人才,希望培养学生对嵌入式系统的兴趣,更多地侧重多媒体、人机交互和GUI的程序设计。
因实验箱厂商的支持有限,倡议成立嵌入式系统教学联盟,寻找提供交流的平台。按照各个专业的特点设计实验样例,能有自己的OS和GUI。希望不久的将来在国内能看到大量基于Linux的产品,学生们也能更好找工作。
3.4 重视开发环境的教学
2008年5~7月,ARM公司举办“微控制器市场创新研讨会”。会议的主题内容是:ARM MCU市场和技术发展趋势、各半导体厂商基于ARM的MCU产品及技术方案和针对ARM MCU的开发工具解决方案。ARM公司合作伙伴Atmel、Luminary、NXP和ST公司及其代理商介绍自己的MCU并展示开发板。
ARM公司推出的CortexM核专门针对微控制器市场。ARM公司收购德国Keil公司并投资英蓓特公司,推出中国版的RealView MDK开发平台。这样原用8051单片机的用户可使用熟悉的开发环境过渡到ARM MCU的应用。此次会议的新理念是,用ARM来统一支离破碎的微控制器市场开发环境,以后微控制器的选型不再以8位、16位和32位来区分,而是以高、中、低档芯片来划分。因为这些微控制器都有统一的机“芯”,区别只是它们的外围部件不同和厂商的技术支持不同。这样,工具和软件都可以重复使用,不用购置各种开发工具。在整个芯片成本中CPU只占很少的部分,芯片的价格不是由CPU核来确定,再按位数来评价MCU没有意义,应按外围部件和Flash容量等来确定。Microchip公司用MIPS核推出了32位微控制器。这都显现出通用的内核、广泛的支持、一致的开发环境是未来的发展趋势,也是嵌入式系统教学的新曙光。
结语
其实各高校也不一定淘汰单片机教学而一味去讲带操作系统的嵌入式系统。适时更新一部分教学内容,跟上时代的发展即可。ARM现在也同样看中单片机的应用市场。只要大家记住教学是为了满足应用的需求,社会有什么需求,就朝什么方向努力。嵌入式系统没有单一、通用的教学模式,正像嵌入式系统是面向对象领域的专用计算机系统,只有突出自己的专业特点才能更好地为社会服务。
评论
查看更多