前言:在多数的微控器(MCU)应用中「成本」向来被视为第一设计要则,因此许多工程师倾向(或被要求)使用初阶MCU来精省成本,然这仅是精省了量产时的硬件料件成本,若从整体成本的角度来审视,结果往往会适得其反。
过去,微控器(MCU)的应用设计相当讲究硬件料件成本的精省,如果能在一个产品上多省个0.1美元,则产品的量产数愈多,则成本精省效应就愈高,所以过往都偏好使用简易、低廉的MCU,能用4位MCU完成设计就用4位MCU,能用8位MCU完成设计就用8位MCU,很少在意后续硬件设计上的后续发展、扩充弹性。
不过,硬件料件精省法只适合于过去的「少样、多量、少变」生产,然今日市场已是「多样、少量、快变」的走向,如此若再坚持「以料件精省为第一要则的设计」不仅无法省成本,反而会适合其反。ARM公司欧洲区车用及嵌入式部门经理Boris Vittorelli表示。
为了因应「多样、快变」的趋势,研发单位必须增加MCU控制程序的撰写心力,现在MCU应用开发的编制上已到了1:4的软硬配置,即一个研发项目中有1名MCU硬件工程师与4名MCU软件工程师,或者2名硬件工程师加上8名软件工程师,可见MCU软件研发的重要性大幅增高。
若更进一步了解,MCU的软件研发成本不单是在功效的首次开发撰写上,此方面的比重已退至1/3,有更大的比重(另2/3)是在软件的后续维护支持上,此方面为程序发表后的持续更新补强、最佳化微调、新功能的追加等,这才是真正的成本症结所在。
烦人的额外调修、转移改写的痛
那么,前面所言的「为精省硬件成本而选用初阶MCU,反而是增加整体设计开发成本。」到底是何故呢?那就是「选用低阶MCU虽精省了些许硬件成本,但却使软件的开发、维护成本大增,对整体成本而言反而是有增无减。」
Boris说明:初阶MCU的运算力有限、可存取的内存容量有限,程序在开发设计时因这些硬件性限制而无法尽情挥洒,必须要用更多的人工心力来对程序进行最佳化,例如程序过大时必须想办法精简程序代码,执行过慢时必须对程序优先权再行调整,这样才能完成设计并合乎当初规划设定的需求,然如此就增加了软件工程师的额外心力、时间成本。
只是增加软件的调修心力还不是最麻烦的,更麻烦的是:一旦确定原有使用的初阶MCU,其架构已无法进一步满足新的功效设计需求时,就必须进行架构的替换,这时就得开始物色新接替的(中阶)MCU,然新MCU的架构往往与原有的MCU不兼容,这时原有的控制程序就要全面改写,如此才能移转到新架构上来执行。
转移(Migration)与转写(Porting)就造成相当庞大的心力成本。Boris说,原有的程序无法持续受用、程序设计师必须学习与适应新架构、重新摸索新架构的对应开发工具、找寻新架构所常用的函式及范例程序等。不仅如此,转写过程中还有程序重新整合的工作,转写完成后还要重新再来一次有关除错、验证、试行的工作,这才是真正的大成本。
如果这些移转仅只一次或许还能勉为其难地接受,但通常若干年后就必须重演一次,因为转移后的架构又开始不敷使用;或者当初物色评选时不够严谨,选择了不全然合用的架构;或初期合用但逐渐又难以合用的架构;或发创该架构的业者自行停终架构的后续发展,随之芯片也停产等,这时上述一切的痛苦就必须再来一遍。
选择良善架构、健全生态
所以,精省成本的第一目标依旧没变,但实现手法必须改变,MCU的开发设计者必须在初期就选定一个最具未来性的MCU架构,该架构要能因应日后的各种新发展、新扩增,使程序代码获得最长效的沿用,免去每数年就必须再行转移、改写的无谓程序。
同时,良善架构的MCU也保有开发设计的高度宽裕性,程序设计师可以专注于新功效的开发,而不用回头再去担忧新撰写的程序会否太占内存空间、会否太耗用运算资源。
更重要的是,广大采用且长时间受用的MCU架构,其生态系统也格外健全,程序设计师可以找到最多的范例程序、最多的开发支持工具,使开发更省心力、更具效率。有鉴于此ARM针对MCU应用提出最合适的新架构核心:Cortex-M3,Cortex-M3比原有ARM7TDMI核心更适合于嵌入式控制应用。
针对嵌入式控制而设计
Coretx-M3之所以更适用于嵌入式控制应用,主要在于其内建了中断控制,与过往其它未内建中断控制的核心相比,Coretex-M3可以在更快的频率周期时间内对中断作出反应。此外Coretex-M3能对内存进行最佳化运用,能分别以8位、16位、32位的宽度来存取内存,如此任何地址都能存取,就不容易产生空隙、未用地址的情形。再加上Coretex-M3使用Thumb-2指令集,Thumb-2指令集能兼顾运算效能与内存容量,让嵌入式应用以更省的成本达到最佳的效能。
8位、32位量化比较
「选择较具宽裕弹性的MCU架构,以精省软件开发维护成本,进而精省整体开发成本。」这对多数的嵌入式应用工程师而言可说是完全颠覆了过去,恐一时间难以接受,且依旧会在意硬件料件成本。
对此Boris表示:新实现方式的唯一顾虑就是硬件料件成本的增加,如果连硬件料件成本都低于原有的实现方式,那么工程师就没有理由再坚持原有的作法。Boris以量化数字为例说明:今日若有一个嵌入式应用设计,其效能需求须达5 DMIPS,程序代码容量须低于256KB,且芯片都是用台积电(TSMC)的180nm一般性制程来产制,以此3项为先决标准,则Cortex-M3核心的MCU只需要4MHz的工作频率,原因是Cortex-M3核心每MHz的运算能有1.25 DMIPS的效能。
其次Cortex-M3核心每MHz工作频率约耗用0.19W的电能,如此4MHz则耗用0.8mW电能。再者用180nm制程产制Coretex-M3核心只需要0.36平方公厘的裸晶面积,而存放程序代码的闪存则只要64KB容量,理由是Cortex-M3为32位架构,一般而言比8位架构高出4倍的程序代码密度,64KB Flash Memory用180nm制程产制的结果只占0.13平方公厘的电路面积。针对面积部分进行加总,0.36+0.13=0.49,0.49平方公厘换算成晶圆成本则约19美分。
相对的,若不实行Coretex-M3核心而使用8位架构的8051核心,则各项特性表现多无法与Coretex-M3相比。
首先是效能,8051若要达到5 DMIPS的效能,以最传统、最标准的8051而言,其每12个频率周期才能完成1个指令的运算(若干指令要24、36个周期),因此每MHz约0.08 DMIPS(更确切而言是0.083),5 MDIPS则需要约63MHz的频率。(附注1)
频率频率为63MHz,且8051核心的功耗约0.5mW/MHz,乘以63则得31.5mW(约32mW),等于是Coretex-M3的39、40倍用电。
至于电路面积方面,8051核心约为0.1平方公厘,纯就核心面积确实8051比Cortex-M3理想,但若将Flash Memory的用量面积算入就全然不同,8051的控制程序必须使用256KB的内存容量,180nm制程后的面积为0.52平方公厘,核心与内存相加的结果成为0.62平方公厘,就整体面积而成大于Cortex-M3方案的0.49平方公厘,最后对应到晶圆成本上则是20美分,还比Cortex-M3方式贵1美分。(附注2)
至此毫无疑问:若选择新精省路线,连硬件料件成本都比原有路线更精省,那么嵌入式应用工程师就再也没有理由或顾忌,当下就应当替换成新的核心架构,即便今日不替换,数年后原有架构无法再因应成长,届时一样要替换,相信聪明的工程师不会让自己的明天拘限在窒碍的角落。
附注1:标准传统8051确实以12个频率为1个执行周期,然今日以8051为核心的MCU多半能以4个频率为1个周期,甚至是1个频率为1个周期。
附注2:以上比较不含核心硅智财的技术授权费与每件量产的权利金。
共2条
1/1 1 跳转至页
超宏达科技是一家专业的电子元器件代理商(www.super-grand.net),主要是NXP、ATMEL、ST、FAIRCHILD、NS、MICROCHIP、Winbond、Rohm、JRC、SAMSUNG、IR、UTC的代理,公司强大的技术支持和电子商务平台,可以解决电子元器件BOM表一站式打样和在线询价。详细资料请登陆 www.super-grand.net 联系人:邱先生 电话:0755-83218602 传真:0755-83261186 QQ:952845901 MSN:ericqxz@hotmail.com
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |