完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言:在多数的微控器(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)是在软件的后续维护支持上,此方面为程序发表后的持续更新补强、最佳化微调、新功能的追加等,这才是真正的成本症结所在。 |
|
相关推荐
4个回答
|
|
烦人的额外调修、转移改写的痛
那么,前面所言的「为精省硬件成本而选用初阶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:以上比较不含核心硅智财的技术授权费与每件量产的权利金。 |
|
|
|
只有小组成员才能发言,加入小组>>
1906个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
605浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
796浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:30 , Processed in 1.112372 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号