摘要:当时,大学中的“嵌入式体系与单片机运用”及相似课程的教育内容和试验正处在转型期,由单纯8位机转向8位、16位、32位并重;开发方法上,仿真器在逐步退出;嵌入式实时操作体系被引入教育。本文就相关课程内容与试验渠道计划的规划提出一些观点,以引起同行的考虑与评论。 关键词:单片机 嵌入式 RTOS μC/OS 教育 训练 引 言 在2003年天津举办的“全国单片机及嵌入式体系学术年会”上,来自全国各地几十所大学的教师对单片机与嵌入式体系教育展开了火热的评论。这儿,就咱们的知道介绍如下,以抵达抛砖引玉的意图。 1 单片机与嵌入式体系运用类课程的转型期 当时,单片机与嵌入式体系运用类课程正处在转型期。曩昔的20年中,单片机商场与需求都是以8位机为主的。最近几年来,16位、32位单片机的嵌入式运用呈迅速增长的趋势。在一两年后,数量上尽管仍会以8位为多,但32位单片机在产值上会超越8位单片机,如图1、图2所示。往后,单片机运用将出现8 位、16位、32位单片机并重的格式。 因为单片机体系的需求越来越杂乱、集成电路技能开展又非常快,片上存储器容量不断扩大,使得在片上体系的开发中,运用嵌入式实时操作体系(RTOS)成为或许。计算机关于90%以上的学生都不能是他的专业,而仅仅一种东西。同各行各业开发单片机运用的工程师相同,非计算机专业的学生来自各个领域,他们不行能将首要精力花在研讨操作体系上,而是要把首要精力放在所研讨的专业上,他们需求的是把计算机专家们研讨的效果直接拿来运用。RTOS能够将一个杂乱的运用分解成多个使命,然后简化运用程序的规划;RTOS能够确保体系的实时性抵达或挨近理论上能够抵达的最好水平。而多使命自身会带来一系列的问题,首要是使命间的竞赛、死锁、优先级回转、使命间同步与通讯等。这些问题有RTOS为用户考虑,只需知道RTOS的原理,会运用就能够了。故单片机教育的这次转型,引入RTOS概念是一大特色。 2 单片机教育史的回想与考虑 回想曩昔我国单片机教育走过的路,大多数院校都是从8051走过来的。故8051在国内遍及单片机运用方面功不行没。而总结一下由8051教育形式带来的副作用,将有利于现在的转型。 图1 一个副作用是,教育中以一片8051配以不同的外围电路去习惯各种不同的运用。这就疏忽了单片机运用的多样性和单片机运用的个性化定位。单片机姓 “单”,世界上的单片机至少有上千种,每种单片机都有各自的定位。咱们着重的是SoC,即片上体系,只需将整个体系都集成在一个集成电路芯片上,才干做到低本钱、高可靠性。只需在不得已的情况下,才扩大额定的接口芯片。故应告知学生,尽管学的是某种单片机,但针对不同的运用要挑选最适合的单片机。单片机教育要求教师教会学生一种办法,会用这种单片机,天然也会用其它单片机。 曩昔8051教育引入的另一误区是运用仿真器。如果说曩昔开发掩膜型单片机运用仿真器属不得已,则现在单片机都选用了能够重复擦写十万次以上的 Flash存储器,真实没有必要运用仿真器。自己在曩昔20年的单片机运用开发中,就从来没有用过仿真器,并非没有仿真器可用,仅仅不建议运用仿真器,特别不建议运用仿真器教育。仿真器使单片机开发变得不直观,高价的仿真器添加了开发本钱,也添加了教育的担负。开发者不行能为每一类单片机买一种仿真器,只好以自己有仿真器的那种单片机去习惯悉数的运用,然后误入歧途。 3 是教育仍是训练 咱们这儿讲的是教育,不是训练,教育不同于训练。俗话说,“授之以鱼不如授之以渔”。教育是“授之以渔”,授之以处理问题的办法,培育处理问题的才能,是引导学生入门。经过授课与试验,要求学生能做到三个看懂,看懂原文手册、看懂硬件原理图、看懂他人写的程序。在此根底上学会怎么把握一种自己不熟悉的单片机。咱们讲CPU硬件结构,讲汇编指令集,教育生怎么初始化串行口,然后完成与单片机的CPU“对话”,从而学会写监控程序,然后将怎么与C言语接口,以μC/OS-II为例,讲RTOS基本概念,从而移植μC/OS-II。 训练的意图是让用户赶快上手,一周乃至三天后就能够开端写运用程序。训练是“授之以鱼”,训练的典型比如是教育生怎么运用某单片机的仿真器。 教育,着重的是引导学生入门,只需咱们能正确地引导学生入门,告知他们什么是正确的办法,后边的路他们会自己走。 4 将μC/OS用于RTOS教育 1995年今后,咱们逐步将μC/OS、μC/OS-II引入单片机运用的科研与教育,证明是成功的。μC/OS、 μC/OS-II是专门为嵌入式运用规划的实时内核,适用于简直悉数8位、16位、32位单片机;90%以上与硬件无关的代码用C言语写成,用汇编言语写的与硬件相关的代码缺少200行;有PC机上可运转的典范;有针对数十种闻名CPU的移植典范可直接从网上下载;有注解明晰、书写标准的悉数源代码。有一部600页的书对RTOS基本概念、内核原理做了翔实的描绘,随书所附光盘上的μC/OS-II V2.52经过了美国航空航天管理局的安全认证,可用在与人性命攸关的控制体系中,是一部科学、有用的好教材。该内核的前身是μC/OS,最早的版本是为 Motorola 增强型8位单片机68HC11 CPU写的。68HC11曾经是世界上产值排名第三的(第一是68HC05,第二是8051)闻名单片机CPU。1995年前后,咱们曾以68HC11作为单片机运用的教材,并出过一本《MC68HC11单片机开发技能》的教材,清华大学出书社出书。现在,68HC11逐步被与之指令集在源码级兼容的 CPU12 代替,故咱们的研讨生教育也将顺势转向选用16位的CPU12 单片机。 我不建议将嵌入式Linux、μClinux等用于教育。它缺少恰当的定位,尽管有源码,但并没有一本适于做教材的书本,关于非计算机专业的学生来说太难了,也没有必要花那么多的时刻去抠懂。将μClinux移植到不同32位体系上是计算机专家的事,非计算机专业的人士,仅仅是运用罢了。关于计算机专业的学生,操作体系是必修课,有一部很好的教材,Andrew S. Tanenbaum等著,王鹏等译 《操作体系规划与完成》(第2版),电子工业出书社出书。这本书讲的是Minix,实际上是简化了的Unix、Linux。学过这部教材,从而把握 Linux原理就不难了。μClinux等嵌入式Linux不是实时的,仅对Linux做了简化,使之可用于嵌入式运用,但作不到SoC。学习简化的 Linux,不如选用Minix。当然,μClinux可用于针对某特定运用的训练。运转μClinux至少需求512KB的 SDRAM,现在的技能水平片内RAM还不行能做那么大。而运转μC/OS-II则只需求几KB的RAM,十几KB的Flash,这完全能够在单片机的片内完成。解说RTOS原理,μC/OS-II满足好了。 5 教育内容要在安稳的前提下开展 8位、16位、32位单片机将三分全国已是业界一致,作为教育,安稳至关重要。尽管单片机技能开展迅速,但开一门单片机教育的课程并非易事,需求教师、教材、试验器件等,特别是试验渠道,需求较大的投入。教师要有适当的科研经历,用单片机做过研制,还要会讲。我的经历是,讲一门新课,至少要讲到第三年才干说会讲了或能讲好了。为了安稳,每年只能更新一小部分内容,要长于处理安稳和开展快这一对对立。RTOS的教育可安稳很多年。μC /OS现已十多年了,依然好用,尽管每年都有新开展,但基本原理没有改变,我看μC /OS-II至少还能够再讲10年;MINIX快20年了,仍是一部好教材。试验渠道也应尽量安稳的时刻长一些,已然叙述的是开发办法,运用8位、16位仍是32位单片机其实是无所谓的。 由8位机一统全国,到8位、16位、32位并重,转型期定位单片机与嵌入式运用类课程的切入点在哪里为好? 自己拟选用了以16位机 CPU12为切入点。它比8位单片机杂乱,比32位单片机简略,外围接口丰厚(比一般32位机还要丰厚),片内RAM、ROM资源适中。叙述了以汇编写监控程序开端,到用C言语写程序,再到移植μC /OS这一办法,相同适于8位、32位单片机。这种办法自身也始于20年前,逐步添加RTOS是近8年的事,是相对安稳又有开展的。 图2 对没有条件由8位机试验渠道转向16位、32位渠道的校园,不用强求,仍可运用8位机渠道。若运用的教育渠道有几KB 的RAM、几十KB的Flash,用于μC /OS-II作RTOS教育已满足好,但期望不要再用仿真器,而选用咱们从写一个简略的监控程序,到移植μC /OS的教育法。不用过多地教育各种I/O接口的运用办法,让学生在写一个简略监控程序的根底上自己去驱动这些 I/O模块。 有条件直接升级到32位单片机也是一种挑选。不少校园选用了以ARM为CPU的单片机,但请注意三点。一是定位,若课程定位在非计算机专业的学生,运转μC /OS之类RTOS,可挑选片内有几KB、十几KB的RAM、几十KB的Flash、可作业在单片方法下的ARM,这样会使教育渠道很廉价。第二点是不要炒作,不要一哄而上。ARM的运用定位很清晰,是悉数与媒体有关的便携式低功耗运用。ARM是32位CPU,并不是悉数32位单片机。以ARM为CPU扩以几MB乃至十几MB SDRAM、Flash的、能够上Linux的贵重渠道,只适用于针对某类产品开发运用的训练,不适于用来教育,因为Linux在PC机上也能跑。第3点是学时与学生的根底,32位单片机关于没有8位单片机根底的学生是很难把握的,没有满足的学时,ARM底层的东西是很难把握的。 6 关于课程的定位 课程定位不同,即授课目标不同,课程的内容能够很不相同,但都必须契合学习的客观规律。咱们有2门单片机与嵌入式运用课程,一门定坐落电类本科生(我系核电子学专业),名为“单片机知道与实践”,32学时,只讲简略8位单片机的入门常识,不讲RTOS,面向还没有学过数字电路课程,对单片机有爱好的2 年级电类本科生。 因为物理学对计算机的需求简直是无限的,故像互联网这样的计算机技能最早源于物理学的需求。咱们系对部分本科生计算机才能的要求是很高的。接下来,部分学生将做一个单片机运用方面的SRT (Student Research and Training Program) 项目, 清华对SRT有专门的经费支撑。学生想象一个简略的单片机运用原理性演示标题,使用课余时刻,花半年到一年,规划一块印刷线路板、再把软件调出来,优秀作品可拿到每年的学生科展上评奖,乃至参与学生挑战杯的比赛。这些学生在毕业规划中,一般会做一个单片机运用方面的课题。这样上来的研讨生乃至能够协助我当研讨生课教训试验的小教师。 另一门课程是定坐落全校非计算机专业的各系研讨生,特别是那些或许在研讨生课题中用到单片机的各专业学生。咱们讲以CPU12为中心的16位单片机和根据μC/OS-II的RTOS。这两部分内容共组织课内64学时,其间授课与教师指导下的试验约各占一半。按校方要求,这类课程原则上课内、外学时之比为1∶2,即学生课外要花128学时读书和进行无教训下的试验。因为学生来自不同学科、不同专业,在单片机运用方面水平很不相同。计算机技能的开展是各行各业需求拉动的,而计算机技能的开展促进了需求。这儿,需求是对立的首要方面。而单个研讨生,特别是外校考入我校的非电类研讨生,乃至没有学过微机原理之类课程。这儿咱们只能假定选修这门课的同学都有数字电路课的根底,会用C言语写程序。因为水平的良莠不齐,及学生个人或许组织的课外学时的差异,到课程结束时,每个人抵达的水平也是很不相同的,故只能是各按脚步、共同前进。 教育、开课要契合学生认、知的客观规律,是由简略到杂乱,由8位到16位、32位,由汇编到C,到RTOS。要牢记避免浮躁,也要教训咱们的学生避免浮躁。咱们能做到的仅仅是领学生入门罢了,能指出一个大致正确的方向,不误人子弟已属可贵。后来,能成为IT高手的,不是咱们培育的,而是经过他们自己艰苦努力完成的。