基于专业规范的嵌入式系统课程教学
2010-04-04刘永军王彦芳孙素静张国兵
刘永军,王彦芳,孙素静,张国兵
(石家庄铁道大学计算机系,河北石家庄 050043)
0 引言
教育部高等学校计算机科学与技术教学指导委员研究了计算机本科专业发展战略后,制订了计算机本科专业规范。该规范归纳了三种类型、四个不同的专业方向,其中工程型的计算机工程专业方向即以计算机科学为基础、以嵌入式技术为主的应用方向[1],如美国的计算机工程专业即以嵌入式实时系统计算为主。
嵌入式系统活跃在计算机应用的主要领域,其中一类应用是电子系统智能化,如工业控制、现代农业、家用电器、汽车电子、测控系统和数据采集等;另外一类是计算机的延伸应用,如计算机外围设备、MP4、手机、通信和网络等[2]。
按IEEE的定义,嵌入式系统即以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。它相对于通用计算机系统追求的高速度和海量存储而言,更侧重于专用性、嵌入应用对象、实时性、低功耗、便捷、可靠性、稳定性以及成本等要求。由于国内大多高校的计算机专业普遍侧重于信息技术或软件工程等,有部分高等职业学校或专业虽很看重嵌入式人才的培养,却往往停留于使用层面上。实际上,嵌入式系统人才的培养需要既看重基础又强调具备开发、创新能力,既系统掌握硬件设计又精通软件设计的复合型人才。
许多高校已逐渐认识到开设嵌入式系统课程的重要性,在近几年已经开始探索性地开设了嵌入式系统相关的课程。由于受传统的专业认识、课程设置、师资以及实验设备等条件的限制,尚未形成完整的嵌入式系统专业或课程体系。
1 嵌入式系统课程体系架构
基于嵌入式系统设计的课程既与计算机、电子、通信和自动控制技术相关的专业课程有关,又与具体的应用背景有关。在知识体系上,会涉及到模拟与数字电路、嵌入式微处理器、计算机组成与接口以及嵌入式操作系统及驱动等技术,是计算机软件、硬件的有机结合。在制订嵌入式系统培养计划时,既需要考虑计算机基础知识、嵌入式系统软硬件专门技术和面向应用领域的知识背景等,又需要顾及到专业深度和应用广度的综合应用能力的培养。我校计算机专业多年来形成了计算机专业基础课程的目标培养体系,开设了“EDA技术”和“微机系统应用综合训练”等课程。自2005年加入Freescale大学计划,在本科生中开设了“嵌入式系统概论”课程,后来随着ARM类实验设备的添设,教学资源愈加丰富,师资力量逐步强大。于是开始考虑建立比较完整的嵌入式教学体系,确立三个层面的知识传授,以计算机的专业公共基础为根本,强化计算机工程方向的内涵,拓展主要应用领域。
正如前述,目前嵌入式系统的应用是面向电子系统智能化和计算机延伸应用两个大类[3]的,电子系统智能化方面的课程选择Freescale系列的系统作为教学的主要内容,面向计算机延伸应用方面的课程选择ARM系列的系统作为教学内容,结合实验平台开展实践教学,突出主要的知识领域和一般方法,相应的培养体系和课程设置围绕这两个方面展开。
2 嵌入式系统基础课程
嵌入式系统是计算机硬件和软件的专门系统,知识领域大多属于计算机,以计算机学科为根基。按照专业规范中计算机工程方向的要求,教学内容和知识结构除通识教育和综合教育外,专业教育体现了研究计算机的理论、设计、实现、开发设计和应用等。目前计算机科学与技术专业的课程体系中所设置的许多基础课和专业基础课,比如“电路基础”、“数字逻辑”、“离散数学”、“C 语言 程序设计”、“数据结构”、“汇编语言”、“操作系统”、“计算机组成与结构”、“微机接口技术”和“计算机网络”等,都是计算机学科各个专业方向的公共核心课程;而计算机工程的方向性课程有“微控制器原理与应用”、“嵌入式系统原理”和“嵌入式操作系统与驱动”等;方向拓展课程有“计算机系统工程”、“信号与系统”、“软件工程”、“数字信号处理”等。
为充实硬件教学,也为嵌入式硬件设计与构造打下相关基础,在基础课及专业基础课阶段,学生可以在课程和实践环节上加强“数字系统设计自动化(EDA)”、“HDL 语言”、“电路板设计”、“数字系统综合设计”和“微机系统综合设计”等,并把工程化思想引入学习实践当中,为嵌入式系统的设计打下必要的基础。
3 嵌入式系列课程
在学习计算机专业基础课程“计算机组成原理”、“计算机体系结构”和“微机原理与接口技术”基础上,引入“微控制器原理及嵌入式应用”课程,结合具体的 MCU(如 Freescale系列的 MC68HC908 GP32)来介绍微控制器的组成结构、工作原理、指令系统和常用外设接口及应用等[5]。这里选择8位MCU为教学内容,是学习的一个关键。学习嵌入式应用选择合适的芯片型号作为入门机型,能让学生容易学会、快速上手、符合循序渐进和由浅入深的学习原则,符合学习规律和认知规律。课程选择Freescale的芯片系列是因为其规格齐全、资源齐备、适用广泛、价格低及市场占有率高,在基本学习的基础上,还可以进一步学习如S12和ColdFire等内容,而在实际应用设计中根据问题的需要选择合适的芯片[5]。
计算机科学是实践的科学,嵌入式的学习更注重动手能力的培养、更关注创新能力和工程化设计思想的形成,配合课程内容设置的相关实验,在教学上提倡用机器语言完成基本实验,如通用I/O、串行I/O 、A/D 、定时、PWM 、LED、监控代码以及基本综合性实验等,在进行复杂应用的实验和设计时,除非底层的功能部分,一般推荐采用高级语言完成设计,并按工程化思想实现每个步骤。采用实验室开放式手段,使学生加快对开发环境和实验系统的熟悉,鼓励学生借助飞思卡尔网站以及相关教材等进行自主学习,结合实际使用的实验系统和实验手段,建立自己满意的实验学习环境[4]。
在学习了“操作系统”课程和“Linux分析”课程的基础上,开设“嵌入式操作系统”(比如μ C/OSⅡ或uCLinux,Linix或WinCE)课程,通过对一个具体的实时操作系统的剖析、裁剪和移植等,结合实验环境使学生掌握嵌入式操作系统一般开发过程[6,7]和培养继续学习的拓展能力。还可通过实习实践、课程设计、竞赛和毕业设计等集中环节对学生进行综合性应用或拓展的深入训练,也可以通过实验平台的设计和实验项目的创新等来进一步加深理解嵌入式技术,学习嵌入式系统的方方面面。
4 结语
本文阐述了符合专业规范的计算机专业人才培养方向,适应社会需求的人才培养目标,以计算机专业为主干,实施坚实公共基础课程、明确专业方向课程、拓展方向相关课程的三层面教学体系,坚定理论基础和强化实践环节的培养方案,使学生在嵌入式系统课程的学习上具备良好的系统知识和较强的实践动手能力,以适应社会对IT人才的需求,尤其是嵌入式技术在工业方面的应用发挥作用。
[1] 教育部高等学校计算机教学指导委员会.高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M].北京:高等教育出版社,2006
[2] 王宜怀,刘晓升.嵌入式技术基础与实践[M].北京:清华大学出版社,2007
[3] 王宜怀,陈建明,蒋银珍.基于32位ColdFire构建嵌入式系统[M].北京:电子工业出版社,2009
[4] 邵贝贝.单片机嵌入式应用的在线开发方法[M],北京:清华大学出版社,2004
[5] 刘慧银,龚光华,王云飞.Freescale微控制器MC68HC08原理及其嵌入式应用[M].北京:清华大学出版社,2005
[6] 周立功.A RM微控制器基础与实践[M].北京:北京航空航天大学出版社,2003
[7] 夏靖波,王航,陈雅蓉.嵌入式系统原理与开发[M].西安:西安电子科技大学出版社,2006