本刊编辑部
使用ARM Cortex-M MCU拓展单片机教学
——精彩纷呈的嵌入式系统联谊会第13次主题讨论会
本刊编辑部
ARM处理器在21世纪初进入中国,借助其在全球移动终端和嵌入式系统上的成功,正在深刻地影响着嵌入式系统教学。2004年ARM发布Cortex-M3 MCU内核之后,国际上主要MCU厂商纷纷推出基于M3、M4、M0和M0+的各种MCU。其中,M0/M0+瞄准的是替代传统的以8051为代表的8位MCU,这些给单片机和嵌入式教育带来新的机遇和挑战。
近日,由嵌入式系统联谊会主办的第13次主题研讨会如期举行。来自清华大学、同济大学、太原理工大学等知名高校的专家学者,以及ARM、意法半导体、飞思卡尔等产业界人士齐聚一堂,就“使用ARM Cortex-M MCU拓展单片机教学”这一话题发表了精彩演讲,并展开了极其热烈的讨论。
嵌入式课程依附于相关应用领域,嵌入到所有学科。其内容基点在硬件和软件的结合点上。十余年前,ARM的优势已得到广泛认可,并被引入到教学当中。目前,低端ARM替代8/16位MCU已成定局,高端ARM已开始进入云计算领域,单片机教学转向ARM MCU是大势所趋。
飞思卡尔公司2010年推出Cortex-M4,当时我反对将其引入教学,理由是它过于复杂。但是,把Cortex-M4推入到大学生车模竞赛以后,虽然当时没有人学过,可是在第二年的车模竞赛中,就有26%的学生使用了ARM Cortex-M4。
RISC技术起初多用于PowerPC、MIPS等32位CPU。8/16位MCU的CPU多使用CISC技术。精简到最简的M0+,是典型的RISC结构CPU。这样,基于CSIC的教学转向RISC,时机已经成熟。
作为教师,需要理解转型有哪些优势和难点。实践为主,讲课为辅,自上而下的学习对教师提出了更高的要求。可以采取以下对策:加强对教师的培训;加强教材建设,含出版物和网络教材建设;要借助半导体厂商的合作与支持。清华大学的“口袋”实验室现已取得了很好的教学效果,在激发学生学习兴趣的同时,显著提升了其动手能力。
图 1
2013年底,ARM预计当年出货量为100亿片。仅此一年就达到100亿片,实现下一个500亿片需要多久?即使不再保持指数的增长趋势,仅保持今年的数字,那么估计也只需要5年的时间。其实,手机和平板ARM虽然占到95%以上,但仅仅靠它们是撑不起500亿片的出货量的。下一个阶段主要的增长点,来自于物联网。因此,对于非电类的教学,大家有所期待。
下一个500亿片的芯片面临几方面的挑战:首先,哪里有足够的芯片工程师来设计这500亿个芯片。其次,哪里能培训足够多的系统硬件工程师,把这个500亿片的芯片用起来。最后,也是终极挑战,到哪里寻找足够的优秀软件工程师,来在这500亿芯片之上做软件的开发。
这也正是ARM开展大学计划的动力所在。ARM期望整个生态系统内,包括合作伙伴以及合作伙伴的用户,拥有足够的人才储备,为下一个技术的增长做好相应的人才池的准备。ARM大学计划的目标就是与高校各个电类的专业开展合作,包括SoC芯片设计、嵌入式系统、软件编程等。ARM公司愿意支持各个专业老师的实验室和课程建设。
ARM公司每年会在各个地方举办师资培训班以及研讨会等各类活动。ARM还参与一些竞赛,例如Cortex-A系列,ARM会和Google合作举办Android设计挑战赛;MCU方面,与ST合作举办了MST设计挑战赛;另外还与CYPRESS合作举办设计挑战赛,参与飞思卡尔的智能车竞赛等等。
为了更好地辅助高校教师基于Cortex-M处理器进行教学,ARM公司将推出Lab-in-a-Box,包含几种厂家的ARM MCU开发板、MDK软件开发工具、课件、样书以及试题库。
图 2
(1) 营造良好的学习环境
要培养优质的人才,首先要营造良好的学习环境。从第一次只有4个人参加到现在,晓明实验室已经将近有300人报名参加。对选拔出的学生进行暑期培训,内容包含:CorelDRAW、Origin、Photoshop、LabVIEW、软件操作、论文的撰写方法、资料的整理方法、大量工作文件的整理方法等。这些内容大学不可能学到,同学们在进行了上述基础学习之后,步入工作岗位时就得心应手了。这也是为什么在就业环境日益严峻的情况下,从晓明实验室出去的学生却可以挑选自己喜爱的工作。
(2) 制定有效的培养计划
晓明实验室针对本科生,形成一套行之有效的培养计划,提倡“四个一”——做一个实验、写一篇研资、做一个PPT、搞一次发表,让学生从“玩家”到“工程师”!
(3) 注重学生的全面发展
注重学生的全面发展,让他们实现角色的转换。在把学生引进来之后,会提出一些有趣的项目,让同学们自己动脑动手完成,并逐渐地把这些实际的项目慢慢地复杂化,让同学们不是仅仅围绕着一个单片机、ARM去设计,而是几个东西同时在做。这样,同学们不断提升,接近工程师的水平。
(4) 良好的文化是发展的根本
良好的文化是发展的根本,兴趣驱动、项目吸引、文化熏陶最终把同学们带入嵌入式系统的世界,并通过“嵌入式系统”带动学生全面发展。
图 3
ARM这个平台之所以发展得如此迅速,受益于整个生态系统,它是每个价值链的充分发挥。意法半导体,正是其中的一个环节。在这个环节,我们努力把ARM内核作为一个载体呈现给我们的用户,以及工程师、学生、教师,由其他各个环节发挥各自的积极作用,共同推动整个生态系统,乃至整个产业的发展。
作为最早发布基于Cortex-M内核的MCU的厂商,意法半导体在不断追求创新的同时,积极与高校开展合作。目前,已与清华大学、西安电子科技大学多家高校建立联合实验室;支持竞赛和创新设计,累计为高校提供逾5 000套开发套件。
经过五六年的推广,STM32已经成为众多主流的一个设计平台。最近我们在推进和手机、MEMS相关的一些应用。另外,ST不遗余力地打造一个无所不在的沟通的平台,比如研讨会、BBS论坛、中文资料的下载以及第三方爱好者的书。同时,我们也在做一些大学计划,赞助竞赛。
ST作为商业公司,价值在于平台化的战略,打造更多的产品,这些产品是一个无缝的链接,从低端到高端,都是一个很好的平台。同时我们与ARM公司一起拓展更广泛的生态系统,最终目的是推动一些创新的设计,推动整个生态系统的发展。不仅如此,对于高校的活动以及学生的创新活动,我们也将会有越来越多的投入。
图 4
比如说今年我们赞助了清华大学一个嵌入式梦工厂,让他们来做一些创新的设计。今后我们会通过更多的方式进行赞助,包括资金、讲座以及样品、开发板的赞助。电子这一方面,中国缺乏创新的人才和想法,也许一些工程师有些创新的想法,但是不知道怎么去实现;而企业也有一些创新的要求,但找不到合适的人去做。这个空白需要来填补。因此,我们在做中国本地化的事情,也就是鼓励我们的第三方,以及学生、爱好者,让他们来积极参与写书。
基于Cortex-M MCU进行教学,无论软件还是硬件,与8051教学都存在很大差异。其中一大难点在于,在学时少、实践少的情况下,如何平衡发展软、硬件能力。实际教学中,团队采用Android实验箱和Cookie板,MCU教学与物联网和Android教学相结合。
图 5
每个半导体厂商都出了很多书,但老师常常觉得这些书不好用。原因是每本书都只针对一个半导体器件来写,而每个学校每个老师采用的处理器都是不同厂家的。好的教材应该向《ARM权威指南》学习,外围电路的搭建只需稍微说明一下即可,这样方便学生们的教学,简单易懂。
此外,软件硬件能力的平衡很重要。不少老师过去硬件设计能力都很强,但是现在很多半导体公司都已经把芯片做得很好,集成了很多东西;而且嵌入式设计公司硬件工程师的需求越来越少,有些工程师只要能看懂硬件做软件就可以了。对于计算机专业或者软件工程专业来说,软件课程和硬件课程的比例在9:1或者8:2就够了,应该根据学生们所学的内容和重点培养的方向调整教学内容。术业有专攻,尽量把时间花在对同学们最重要的课程上。
挑战:Cortex-M编程环境复杂,学生C语言基础差,应用能力弱;Cortex-M集成度高,不利于培养学生硬件能力;教材硬件设计内容仍然偏少;知识点需要进一步凝练,内容取舍需要探讨。
目前,我们学院采用Cortex-M3教学的只有控制科学与工程专业,其他几个专业还是讲单片机与嵌入式系统,先讲单片机,后讲嵌入式系统。控制科学是第一个进入卓越工程师培养系列的,所以在这方面切入得比较早。为了让学生适应日后工作中的应用,希望找到一种适合自动化专业的处理器,最后选择了STM32。ST公司非常支持,他们的工程师多次来校进行研讨,然后开始教材的编写。
我自己也一直在思考怎么教学,指导电子竞赛的过程当中,也遇到了不少困惑。早一点让学生接触,就要让他早一点开始学习,可此时又有很多基础的东西还没有掌握,或者掌握得不够深入。
Cortex-M3内核还是比较复杂的,学生学起来难度较大。我们写教材的时候也在研讨这个问题。最终达成几点共识:一是把概念讲清楚,有一部分让学生下去自己理解;二是重视学生能力的培养,增加实践的环节。自动化的学生可能以后不会涉及CPU,更多的是在应用,所以我们讲关键性的一些特点,让学生在应用的时候,能够直接利用一些优良特性。对于外设,我简单地进行了分类,分成不同的模块,给学生讲课时贯穿一个理念,按这种结构去理解,即便不同厂家的芯片,其本质是相同的。具体的应用留给学生后面实践去做。
关于汇编和高级语言的取舍,我们现在偏向于高级语言,而且我们还要将工程的设计思想告诉学生。现在很多的学生知识很琐碎,不适于以后的就业。我希望能把整体性的概念传授给他们。
我们是自动化类的,对硬件是比较关注的。卓越课程对实践要求的也比较多,现在我们有一半以上的课时都是实践,在实验室里上。以后,实践环节可能还要增加课时,可以让学生在兴趣当中去学。我们经常带电子竞赛,学生只要有兴趣,很多工作都可以放心地交给他,我们只要把重要的概念传输给他就行了。
那么在教学当中,还是有些需要以后去探索的。一是,学生入门还是比较难,但是兴趣很高。现在实践课时增加了,但是还是不够,以后还是要提倡口袋实验室,把实验让学生带回去,把板子带回去,因为课时终归是有限的,实验室的设备也是有限的。二是,虽然教材也强调硬件,但是,仍然偏少。虽然现在的芯片集成度很高,但是自动化专业的学生应该尽可能多地掌握一些硬件设计方面的内容。三是,知识点的凝练,比如很多外设都很复杂,那么就需要进一步凝练,把复杂的外设抽象成一个个模块电路,把这个概念介绍清楚后,学生再应用,无论他用哪家公司的芯片都非常容易。
理念:简化细节学习,重视概念讲解;简化汇编程序学习,重视应用能力培养;合理分配课时,重视硬件设计能力培养;创造条件,加大实践环节时间,培养实践能力。
在嵌入式系统联谊会的发起委员、中国软件行业协会嵌入式系统分会副秘书长何小庆的主持下,与会者就ARM Cortex-M0/M0+是否将替代8051用于单片机教学,教师和学生面临的困难有哪些?目前嵌入式教学中使用的ARM MCU教材内容有哪些地方需要改进? 许多物联网应用的芯片依然采用8051或者非ARM架构,在物联网专业的嵌入式课程中,MCU教学应如何开展?围绕这些问题大家踊跃发言。
飞思卡尔大学计划的马莉女士介绍了飞思卡尔大学计划和智能车大赛情况,今年推广的重点已落在高校的创新实验室建设上。新唐微控产品中心主管林任烈先生介绍了新唐Cortex-M4新品和大学计划情况,威视姚远博士介绍他们最新开发基于Zynq的SNOWLeo廉价开发板。北京邮电大学软件学院邝坚教授谈了他们在计算机专业使用ARM处理器和MCU方面的体会,强调了RTOS学习的重要性,他指出,ARM MCU教学要区分不同专业。
与会代表们热烈讨论了在转型中8051实验箱如何平滑过渡到ARM实验箱,如何解决正版廉价的JTAG调试电缆等细节问题。与会代表们还就ARM MCU是否,以及何时可以替代8051的问题,发表了自己的观点,飞思卡尔杨欣欣博士表示,用户推动和成本推动是最大的动力,曹锦东先生表示现在包括8051在内的8位MCU在成本上还是有优势,用户有使用上惯性,如果M0/M0+价格继续下降,更多的用户逐渐熟悉了ARM MCU,替代就是大势所趋了。
北京大学工学院南京研究院 导航与定位技术研究所 申崇江博士
我参加了3次嵌入式联谊会的主题讨论会,每次都是收获满满。本次讨论会主要关注的是单片机教学,虽然我从事科研工作,更多关心的是技术的发展,但仍然收获颇多。
教学和技术发展是紧密联系的,技术发展决定着教学的方向,而教学又促进新技术的推广。高校的教师应该把握和预测好技术发展的方向,让课程与社会的现实需求相吻合,从而让学生学到更多有用的知识。
我也来谈谈单片机芯片的技术发展趋势。单片机(嵌入式系统)芯片和PC芯片的市场格局完全不同,PC市场芯片是x86的天下,而单片机(嵌入式系统)芯片是群雄并起,不下几十种芯片架构。ARM的出现,使得单片机市场趋向赢家通吃的迹象。ARM以出售IP的方式,改变了芯片业的商业模式:ARM设计出最优秀的IP,芯片厂商搭积木,快速生产出价廉、稳定的芯片;从而更多的芯片厂商跟风;ARM获得更多的利润,进而设计出更优秀的IP。这种马太效应使得其他单片机架构的市场日趋萎缩。
芯片业的竞争就是比拼成本、功耗和性价比。目前,ARM Cortex-M3的性价比已经超越其他芯片。2014年,ARM Cortex-M0的芯片(ST)预计将低至2元人民币,在成本方面,除了8051系列的芯片,其他芯片的价格优势荡然无存。功耗方面,ARM Cortex-M0+ (Freescale)同样具有显著的优势。
除此之外,ARM芯片还具有如下优点:一是利用其高性能,一块芯片可以代替以前多块单片机的功能;二是多个芯片厂商供应,减少对芯片厂商的绑定和依赖,而且总能找到一款适合的芯片;三是高校普及度高,工程师上手容易,降低了开发成本。
未来,其他单片机架构只能依靠已有的市场维持,不会再有大的新应用。而随着时间的流逝,其已有市场必然萎缩。按照这个趋势,在未来5~10年的时间,单片机市场将会发生大的洗牌。教育应该面向未来,所以ARM MCU课程代替8051课程是必然的。