MCU

MCU是Microcontroller Unit(微控制器单元)的缩写,它是一种集成了中央处理器(CPU)、存储器(ROM、RAM)、输入/输出端口(I/O)、定时器(Timer)、串行通信接口(UART、SPI、I2C等)和其他外围设备控制器的单个芯片。MCU通常用于嵌入式系统中,用于控制各种电子设备和系统。

由于其集成度高、体积小、功耗低以及成本相对较低等特点,MCU被广泛应用于各种嵌入式系统中,例如智能家居设备、医疗设备、汽车电子系统、工业自动化等。MCU的选择通常基于应用的需求,如处理性能、功耗、外设接口等因素。



中断

单片机CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。

例如,当你正在洗衣时,突然手机响了(中断发生),你暂时中断洗衣的工作,转去接电话(中断响应和中断服务),待你接完后,再回来继续洗衣(中断返回),这一过程就是中断。

单片机中断分为内部中断和外部中断两大类,外部中断由单片机外部设备产生,中断产生后通过单片机的外部管脚传递给单片机,传递这个中断信号最简单的方法就是 规定单片机的管脚在什么状态下有外部中断产生,这样单片机通常是有一个或多个IO口,当在输入状态时可以用来检测外部中断信号。

有外部中断产生的条件通常也 就是这五种:IO口输入为高、IO口输入为低、IO口输入由高变为低、IO口输入由低变为高、IO口输入由高变低或者由低变高。

一个连接到 单片机的外部设备,如果想要使用单片机的外部中断,就必须在自己请求单片机中断响应的时候给单片机提供单片机在这五种信号中所支持的类型来触发单片机中 断。程序运转中,一个中断不是只产生一次,一般都会间隔持续产生,这五种外部中断触发信号前四种都有一个问题,就是外设发出请求中断信号后如果信号请求线 状态不改变,外设会无法向单片机提供下一次中断请求信号。让我们来看看以单片机和外部设备采用负跳变触发中断为例的触发情况。

外部设备以负跳变触发单片机中断,第一次中断请求外部设备的中断请求输出脚可以从高变低,触发单片机中断,第一次中断请求发生后中断请求脚保持输出低,外部设备无法产生第二次中断的触发负跳变信号。

外设只能产生一次中断请求信号示意图

图1 外设只能产生一次中断请求信号示意图

将外部设备的中断请求信号做出修改,原来为需要中断时只是输出从高到低变化,现在改为输出先从高变到低,经过一小段时间后自己从低变回高,这样就可以每次需要中断时都能向单片机输出负跳变触发信号。

外设可连续产生中断请求信号示意图一

图2 外设可连续产生中断请求信号示意图一

或者是由外部设备提供某种接口,单片机通过该接口可以对外部设备进行中断清除操作,中断清除操作可以让外部设备的中断请求输出脚恢复到高。

外设可连续产生中断请求信号示意图二

图3 外设可连续产生中断请求信号示意图二

外部中断触发还有一些特殊方式,比如外部脉冲宽度测量、外部脉冲计数等,这些方式都是在前面几种基本触发方式上进行功能扩展得来的,外部脉冲宽度测量就是当 中断信号线跳变时会启动内部一个计时器,到下一次中断信号线跳变时通过计时器得到脉冲宽度并重新启动计时器,这些方式很少会使用到,不做详述。

内部中断是指单片机内部的功能模块产生中断信号,只要是单片机内部在CPU外围能独立工作的功能模块都会提供中断功能,常见的内部中断类型有时钟 Timer、串口UART、模数转换ADC等。内部中断的工作流程和外部中断没太多区别,只是中断请求信号是在单片机内部进行传输,中断信号不是管脚上的 电平状态,而是一个寄存器里面的相应标志位,通常当某个内部中断产生中断请求时就会将相应标志位置为1,CPU响应中断时将这个标志位清0。

内部中断触发示意图

图4 内部中断触发示意图

单片机对中断标志位的处理方法没有统一标准,具体的约定方法要看单片机文档。大部分是标志位为1有中断产生,但有少数单片机是标志位为0有中断产生;有的单片机对中断标志位是CPU写入什么就给改写成什么,有的则是规定必须通过写1或写0来实现清除操作,还有少数只要读一下中断标志位就会自动清除掉该标志位。

如果单片机不想被外部中断触发,大不了将用于连接外部中断触发信号的管脚接成不会触发中断的电压状态就可以,但内部中断无法去改变内部 连线,所以单片机为了可以选择中断是否可以被除法,在其内部会有相关的寄存器来进行选择,通过里面的控制标志位,开发人员可以根据实际情况决定是否使用中 断。通常单片机里面有一个总控制位,这个位可以控制所有中断的开与关,然后每一种中断自己还有一个独立的控制位决定自己的开与关,如果想使用某个中断,就 需要将总中断开关和对应中断的开关都打开。

当单片机有中断信号产生时,就会触发对应中断,不同的中断源会需要不同的响应方法,也就是说不同 的中断产生的时候,需要单片机程序依照不同的中断源做出不同的响应,这就是中断服务程序。如果是UART收到新数据产生中断,应该是UART中断服务程序 将数据读回来并做处理,如果是ADC转换完成产生的中断,需要的则是ADC中断服务程序将数据读回来并做处理。如果需要清中断标志位动作,一般都是在中断 服务程序里面完成。

不同的中断源需要与之对应的中断服务程序,实际开发中并不是所有的中断都会被用到,开发人员为了节约程序代码空间会只写 出自己要使用到的中断服务程序,也就是说会有一些中断没有与之对应的中断服务程序,如果触发了这样的中断,单片机程序会运行出错,前面中断各自独立的控制 位就排上用场,将这些控制位关掉,相应中断就不会被触发。

单片机开始上电的时候,如果控制中断是否被打开的寄存器控制标志位被打开,可能会出现中断被误触发的情况,而这个中断如果没有与之相对应的中断服务程序的话程序就会跑飞,所以单片机上电的时候一般会自动将这些寄存器里面的标志位都关掉,以免误触发。

中断服务程序是单片机程序的一部分,具体内容由开发人员决定,这样中断服务程序的大小在单片机程序中的位置就不固定,当单片机的中断被触发后,单片机需要知道中断服务程序在什么位置才能执行它,单片机通过中断跳转表(中断向量表)来解决这个问题。

虽然中断服务程序的大小和在整个程序中的位置会不固定,但程序只要被烧进单片机系统,对于这个程序来说其中断服务程序的大小和在整个程序中的位置就会被固定 下来,如果对单片机程序空间分配我们做出一些约定,将一个绝对固定地址专门分配给中断使用,程序编译时会将中断服务程序的起始地址(或者是跳转到中断服务 程序的指令)填到这个绝对固定地址所在的空间,当中断产生时候,单片机先将绝对固定地址所在位置里面的内容读出,根据所读内容就可以跳转到中断服务程序。

中断响应示意图

图5 中断响应示意图

简单的单片机所提供的中断种类有限,为了简化程序,会给每一个中断分配一个用来存放中断服务程序地址的地址空间,这种方法其实没什么不好的地方,只是单片机 技术发展到现在遇到了瓶颈,高端单片机越来越复杂,于是一些专业厂商开始合作共享技术资源,例如ARM公司利用他们在CPU架构体系上的技术优势专门给另 外的厂商提供CPU内核,另外的厂商在ARM内核的CPU外围增加功能模块,这些功能模块大都支持中断。

ARM内核单片机架构图

图6 ARM内核单片机架构图

不同厂家在相同CPU内核基础上设计出来的单片机外围的功能模块会各不相同,从而中断的种类和个数也各不相同,而CPU处理中断的方法是一样的,如果延续简单的单片机给每个中断都分配一个地址空间的做法显然有问题,CPU无法知道到底有多少种中断需要支持,这些中断又分别对应什么模块,于是采用另外一种中断处理方法,将所有中断地址都指向同一个,并将所有中断依次编号,中断产生时候CPU会告诉中断服务程序当前中断编号是多少,然后中断服务程序根据中断编号 做出相应响应。

公用中断入口中断响应流程图

图7 公用中断入口中断响应流程图

独立中断入口中断响应流程图

图8 独立中断入口中断响应流程图

所有中断使用同一个中断向量地址,然后通过中断号判断中断类别的方法虽然解决了通用CPU内核中断不能直接对应中断向量地址的问题,但把它中断处理的流程和具有独立中断向量表的单片机相比就会发现:中断的响应速度会变慢。具有独立中断向量表的单片机只要一条跳转指令就可以直接进入中断程序,而没有独立中断向量表的单片机需要先跳转到中断公共入口,然后通过代码判定中断类别,确定中断类别后才跳转到真正的中断程序中去。C语言的代码会让这种情况更加恶化,所以如果是没有独立中断向量表的单片机一般采用汇编查表的方法加快中断响应速度。

汇编中断快速跳转表

图9 汇编中断快速跳转表

中断程序执行完毕后回返回继续执行主程序,这样就要求中断不改变主程序的运行状态,所以中断响应时需要将程序当前运行的状态信息保存起来,比如程序运行到什 么位置、当前CPU状态寄存器的状态等信息。当中断程序执行完毕,可以通过这些信息将CPU状态寄存器恢复原来状态,并能返回原程序继续执行。不同的单片机对此的处理方式也会有不同,一种是完全由硬件来完成,并不需要程序来进行管理;另外一种是将状态信息用相应指令保存在特定位置,返回时再用相应指令恢复原来状态。

单片机中断还有中断优先级和中断嵌套的概念,但不是所有的单片机都会支持这两种功能。中断优先级是不同的中断会有不同的优先级别,如果同时有两个中断产生,单片机会先响应优先级高的中断。中断嵌套是指在中断响应当中又有新的中断产生,单片机可以暂停当前的中断程序执行去响应新的中断,新中断程序执行完以后在接着执行当前中断程序。一般中断嵌套是高优先级的中断可以插入低优先级中断响应程序,同级或低级的中断不能插入当前中断响应程序。

中断嵌套示意图

图10 中断嵌套示意图

中断步骤说明:
步骤①保存主程序现场,执行中断1服务程序。
步骤②保存中断1服务程序现场,执行中断2服务程序。
步骤③恢复中断1服务程序现场,继续执行中断1服务程序。
步骤④恢复主程序现场,准备继续执行主程序,有新中断不能继续执行主程序。
步骤⑤保存主程序现场,执行中断3服务程序。
步骤⑥恢复主程序现场,准备继续执行主程序,有新中断不能继续执行主程序。
步骤⑦保存主程序现场,执行中断4服务程序。
步骤⑧恢复主程序现场,无中断产生继续执行主程序。

有的单片机一进入中断函数就会自动将中断的总控制位关掉,需要开发人员在中断程序中用程序再次打开,否则一次中断后所有的中断就不能继续使用。对于中断标志位,在写单片机程序的时候要依据单片机文档进行清除标志为操作,不然有可能会一旦产生某个中断就会连续不停的反复响应这个中断,导致主程序不能继续运行。

本文转自: 嵌入式资讯精选

围观 539

MCU的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明大家越来越重视嵌入式领域的信息安全和程序安全了。但对于很多特殊行业,比如消费类电子产品,低成本的通讯模块、电源控制模块等等,迫于成本压力以及更新换代速度问题,都无法使用更安全的主控MCU,有很大一部分产品甚至还在使用51单片机,大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析。

大家不要把解密想的很复杂,他不像研发一款产品那样,先确定客户需求或者新产品主要功能,然后立项确定技术指标,分配软硬件开发任务,基于硬件调试程序,然后验证功能,测试bug,还要做环境试验。行业里解密的方法有很多,每个人破解的思路也不一样。但是大致分为几种。

第一种:

利用软件破解目标单片机的方法,利用这种方法,不会对目标MCU元器件造成物理损伤。主要是对WINBONGD,SYNCMOS单片机和GAL门阵列,这种利用软件解密设备,按照一定的步骤操作,执行片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了(GAL采用逻辑猜测),就可以得到加密单片机中的程序。

第二种:硬件破解法,流程如下:

1、测试

使用高档编程器等设备测试芯片是否正常,并把配置字保存。

2、开盖

采用手工或专用开盖设备进行开盖处理,这里说的开盖并不是说单片机或者其他MCU真有一个盖。简单解释一下,MCU其实是一个大规模集成电路,它是由N个电路组合而成的,而晶圆就是搭载集成电路的载体。将晶圆进行封装后,就形成了我们日常所用的IC芯片,封装形式可以有多种,比如TSSOP28、QFN28等,大家可以自己去百度搜索,这里不再复述。

开盖之后的效果如图1所示。

3、做电路修改

对不同芯片,提供对应的图纸,让厂家做电路修改,目的是让MCU的存储区变得可读。有些MCU默认不允许读出Flash或者E2PROM中的数据,因为有硬件电路做保护,而一旦切断加密连线,程序就暴露可读了。如图2所示 

 

(切割掉加密熔丝,这样就可以直接读出芯片内部程序)

4、读程序

取回修改过的MCU,直接用编程器读出程序,可以是HEX文件,或者BIN文件。

5、烧写样片给客户

按照读出的程序和配置,烧写到目标MCU中,这样就完成了MCU的破解。 至此,硬件破解法成功完成。

第三种:

采用软件和硬件结合的方法,需要对芯片的内部结构非常的熟悉。

另外还有其他一些破解技术,例如电子探测攻击、过错产生技术等等,但是最终目的只有一个,就是能够模仿出目标MCU的功能就可以了。

看到这里大家应该明白一个道理,破解MCU并不能做到把MCU中的程序原封不动的还原出来。目前的技术也做不到,至少国内应该做不到。针对以上情况,加密芯片应运而生,初期确实能很好的保护MCU的安全,但很快就被找到了漏洞。

我举个实际破解的例子分析一下,大家就能够明白了。

加密原理:

MCU和加密芯片各存储一条认证秘钥,存储同样的加密算法;

MCU产生随机数发给加密芯片,后者用秘钥加密后将密文返回,此时MCU解密后,比对明文是否和生成的随机数相等。如果相等,程序正常运行;如果不相等,出错处理。

因为盗版商没有这条秘钥,加密芯片与MCU交互的数据又是随机变化的,无法找到规律,所以只能把加密芯片的程序破解了,再复制一片加密芯片才能让MCU的程序跑起来。而加密芯片不同于通用MCU,它内部有很多安全机制,破解难度非常大。

这种加密方案看似非常安全,但其实还是有漏洞的。

破解方法:

1、首先按照第二种破解方法,获取到MCU的HEX文件。此处省略N步,不再复述。

2、使用软件进行HEX反编译,反编译软件目前有很多。

3、在反编译的程序中,找到对比点,比如图3所示,CJNE语句可能就是这个对比点。因此只要把箭头2那行语句删除,然后重新把汇编语言下载到MCU中,破解工作就完成了。此时即使没有加密芯片,MCU也能正常运行了。

其实原因很简单。MCU是要对加密芯片的返回值进行判断的,那么不让他做判断,这样一来不管加密芯片返回值是什么,程序都能正常运行。

因此这种加密方案很快就被破解了。当然也不是这么绝对,因为有些MCU即使剖片也不能获得里面的HEX或者BIN文件,所以这种破解方案也要看MCU的安全等级够不够高。但是足以说明一个问题,这种通过对比加密结果来实现加密的方案,安全等级还是不够高,还是有破解漏洞的。

因为篇幅有限,本文只做解密技术的简单介绍。所谓知己知彼,百战百胜,唯有了解了破解技术,才能更有效的做加密防护。

围观 507

看门狗电路其实是一个定时器,有一个定时器控制寄存器,可以设定时间(开狗),到达时间后要置位(喂狗),如果没有的话,就认为是程序跑飞,就会发出RESET指令。

看门狗,又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为MCU。

在MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗电路清零,如果在超过规定的时间不喂狗,WDT定时超时,就会回给一个复位信号到达MCU,使MCU复位,防止MCU死机。总的来说,看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。

WDT的基本工作原理如下:在整个系统运行以后就启动了看门狗的计数器,此时看门狗就开始自动计时,如果到达了一定的时间还不去给它清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统的复位。

硬件看门狗就是利用了一个定时电路,来监控主程序的运行。在主程序的运行中,我们要在定时时间到达之前对定时器进行复位。

看门狗的作用就是防止程序无限制的运行,造成死循环。它可以用在接收和发送数据时对接受和发送超时的处理,起到保护数据,保护电路的作用。

一般看门狗电路用来监视MCU内部程序运行状态,在程序跑飞或死锁情况下,可以自动复位。不过由于厂家、型号不同可能有些差别。

看门狗电路的工作原理是:当系统工作正常时,CPU将每隔一定时间输出一个脉冲给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。 主要作用是防止程序跑飞或死锁。

看门狗电路图

来源:网络(本文仅供学习参考使用,版权归原作者所有)

围观 1300

市场研究机构IC Insights的最新报告估计,汽车电子系统市场(automotive electronic systems)从现在到2020年之间可取得4.9%的复合年平均成长率(CAGR),在六个主要电子系统类别市场(如下图)中表现最佳。

在各种汽车电子系统中,安全与舒适系统(safety and convenience systems)是消费者正在寻找而且希望他们的新车有配备的功能;包括自动紧急煞车系统、车道偏离/盲点侦测系统,以及倒车摄影机等,是消费者最想要的系统。而对半导体供货商来说这是个好消息,因为这类汽车系统将会需要各种模拟IC、微控制器(MCU)以及传感器。

车用半导体未来成长表现优胜消费类电子

IC Insights报告中关于其他电子系统与IC市场的重点趋势还包括

虽然汽车领域预期到2020年之间是成长最快的电子系统市场,在2016年整体IC市场中占据的比例估计仅7.9%,而且该比例在预测期间不会超过10%。

工业/医疗/其他电子系统预期会是成长速度第二快(CAGR预测为4.3%)的类别市场,包括可穿戴式医疗装置、家用健康诊断设备、机器人以及物联网(IoT)系统等等都是

推动该市场成长的助力;模拟IC将占据该类应用芯片市场2016年营收的49%。

通讯在2013年成为第二大IC终端应用市场,超越PC用芯片;亚太区预测将在2016年贡献整体通讯IC市场的67%,而该比例到2020年将达到70%。

消费性电子系统市场估计到2020年之间可取得2.8%的CAGR,逻辑芯片会是消费性IC市场在预测期间占据最大比例的芯片;整体消费性IC市场预期到2020年之间的CAGR为2.3%。

全球政府/军用IC市场预期2016年可达到25亿美元规模,但仅占据整体IC市场(约2,900亿美元);其中美国市场是最大的军用IC市场,在2016年占据整体军用IC市场的63%。

受到个人运算装置(桌上型PC、笔记本电脑与平板计算机)需求衰退的影响,计算机系统(computer systems)预期到2020年之间会是成长表现最弱的一个市场类别;整体计算机IC市场预期将在2016年继2015年衰退3%之后再次衰退2%。亚太区是计算机IC最大的市场,在2016年占据66%的比例,该比例在2020年可达到71%。

围观 327

电子产品的低功耗问题经常让产品设计者头痛而又不得不面对。以单片机(MCU)为核心的系统,其功耗主要由单片机功耗和单片机外围电路功耗组成。要降低单片机系统的功耗,需要从硬件和软件两方面入手。
  
硬件设计考虑因素
  
要满足单片机系统的低功耗要求,选用具有低功耗特性的单片机可以很容易实现。因为具有低功耗特性的单片机可以大大降低系统功耗,这可以从单片机的供电电压、内部结构、系统时钟和低功耗模式等几方面来考察一款单片机的低功耗特性。一般来讲,用户在选择技术供应商和产品过程中,需要对下面的一些重要硬件参数进行更加深入的考量:
  
选择简单的CPU内核
  
选择CPU内核时切忌一味追求性能,以“够用就好”为原则。8位机够用,就没有必要选用16位机、32位机;单片机的运行速度越快,往往其功耗也越大。一个CPU越复杂、集成度越高、功能越强,片内晶体管越多,总漏电流也越大,即使进入STOP状态,漏电流也会变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。
  
选择低电压供电的单片机系统
  
单片机系统的供电电压低,可以有效地降低其系统功耗。由于半导体制造工艺的发展,现在单片机的供电电压从5V供电降低到3.3V、3V、2V乃至1.8V。供电电压低,不紧可以降低单片机的功耗,还可以降低单片机外围电路的功耗。
  
选择带有低功耗模式的单片机系统
  
低功耗模式指的是系统的Idle、Stop和Suspend等模式。处于这些模式下的功耗将远远小于正常运行下的功耗。Idle模式下,CPU停止工作,但内部系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式功耗的50%左右。
  
如果在CPU进入Stop模式时,将各个模拟外设关掉,这时的功耗可以降低到nA级。但是在Stop模式下,CPU被唤醒后要重新对系统作初始化,所有特殊功能寄存器的内容将被重新初始化。这在某些低功耗应用场合需要注意。
  
Suspend模式下,CPU、内部系统时钟停止工作,I/O模块等被悬挂起来,片内RAM中存储的数据将被保持,CPU的功耗可以降低到nA级,由唤醒事件唤醒。当CPU被唤醒后,系统不会被CPU复位,继续从进入Suspend模式的地方开始执行程序。这是一种非常理想的低功耗模式。
  
在硬件层面来说,对上面的这些参数进行仔细衡量是十分必要的,除此之外,选择合适的时钟方案和使用每MIPS功耗来衡量MCU的低功耗性能也是非常关键的。

应用软件考虑因素
  
应用软件设计对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件设计上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。但是设计者如果能尽量将应用的低功耗特性反映在软件中,就可以避免那些“看不见”的功耗损失:
  
用“中断”代替“查询”
  
在没有要求低功耗的场合,程序使用中断方式还是查询方式并不重要。但在要求低功耗场合,这两种方式相差甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU必须不停地访问I/O寄存器,这会带来很多额外的功耗。
  
用“宏”代替“子程序”
  
子程序调用的入栈出栈操作,要对RAM进行两次操作,会带来更大的功耗。宏在编译时展开,CPU按顺序执行指令。使用宏,会增加程序的代码量,但对不在乎程序代码量大的应用,使用宏无疑会降低系统的功耗。
  
尽量减少CPU的运算量
  
减少CPU的运算工作量,可以有效地降低CPU的功耗。减少CPU运算的工作可以从很多方面入手:用查表的方法替代实时的计算;不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。
  
让I/O模块间歇运行
  
在系统运行过程中,不用的I/O模块要关掉,间歇使用的I/O模块要及时关掉,以节省电能。同时,不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。
  
总之,在单片机系统设计过程中,需要深入理解单片机低功耗的特性,并在硬件和应用软件的设计过程中充分利用单片机的低功耗特性,从而设计出符合低功耗要求的产品。

来源:网络(本文仅供学习参考使用,版权归原作者所有)

围观 238

1、引言

目前,集成电路的嵌入式技术发展越来越快,各色嵌入式产品也越来越受欢迎,尤其是以大屏幕多功能的手机、平板电脑等为典型代表,做为其控制核心的高性能、低功耗的微控制器(MCU)起到了决定性作用。因此以CPU为核心MCU的设计也成为了诸多高等院校、各大公司进行市场竞争的一个主流发展方向。

2、MCU选型技术

微控制器(MCU)的应用领域非常广泛,如消费类电子市场中的手机、照相机、摄像机、MP3、MP4、平板电脑、笔记本电脑、PC机、各种遥控电动玩具等,还有汽车电子的电子钥匙、控制系统、导航、倒车影像、倒车雷达等,还有各种安全防卫系统、医疗器械、工业控制、武器装备、航空航天等各个领域。因此在设计MCU之前需要进行明确的市场定位,从而使目标产品有的放矢,并在高性能、低成本、多功能、轻体积、低功耗、高可靠、散热好、抗辐照、抗单粒子、适应超高温和超低温等方面具有很强的竞争力。MCU硬件设计主要包括两大部分:CPU选型和外围IP核的选取。

3、CPU选型

CPU作为MCU的大脑,起到控制核心的作用,基本上决定了MCU的目标应用领域,因此CPU的选型是设计MCU的关键。目前,可以用于集成电路嵌入式设计的CPU主要有CISC架构的80386EX,RISC架构的ARM7TDMI/EJ、ARM926EJS/946ES/968ES、ARM1136/56/76、ARMCortex-A5/7/8/9/15、ARMCortex-R4/5/7、ARMCortex-M0/0+/1/3/4、SecurCore000/100/300、MIPS32M4K/4K/14K/24K/34K/74K/1004K/1074K、microMIPS32、SmartMIPS、Nios/NiosII、PowerPC40x/60x/70x/90x、SPARCv7/8/9、LEON2/3/4、OR1000/1200等,其中以ARM系列嵌入式CPU发展的势头最为迅猛,占据了嵌入式处理器绝大部分的市场份额,而且还在继续增长。各家公司的每种处理器都有自己的特点,可以满足不同的应用需求。此外,开发环境的完备性、总线接口协议的高效性、技术支持的专业性、IP核种类的丰富性、设计资源的开放性以及设计者的使用习惯等,都会对CPU的选型产生决定性的影响。

4、外围IP选取

对于应用领域而言,外围IP核起到了很好的支撑作用,因为如果把MCU比作“人”,则外围IP核相当于MCU的“眼”“耳”“口”“鼻”等重要器官,所以外围IP核的选取也同样至关重要。IP核的选取包括通用IP核和特定用途IP核两种。

4.1通用IP选取

目前,通用IP核的种类比较繁多,按照总线接口协议可以分为IBM公司的Core Connect、ARM公司的AMBA(Advanced Microcontroller BusArchitecture)和Silicore Corp公司的Wishbone等;按功能分为接口类IP核如DMA、GPIO、UART、USART、Timer、WDT、I2C、I2S、SPI、CAN、存储器控制器,图像处理类IP核等;存储器类IP核如ROM、RAM、SRAM、FLASH等。根据功能不同可以进行不同的选择,还可以集成几个相同功能的IP核,如UARTx4有4个UART接口,I2Cx2则是有2个I2C接口等。

4.2特定用途IP选取

特定功能的IP核种类也很多,如时钟类的PLL、片上高精度振荡器,模数转换类的AD、DA,网络类的ETHERNETMAC/PHY、Modem,图像处理类的H.264、JPEG,接口类的USB2.0/3.0、IDE、SATA等,高速接口类的LVDS、RapidIO、SerDes等,还有各种传感器等,需要根据市场定位来确定。

5、MCU设计

5.1硬件设计

目前,MCU领域众多大公司早已大规模推出各类MCU,而且各具特色,因此设计具有自主知识产权的MCU应在系统架构等方面有别于这些大公司,一是避免侵权,二是更有利于市场竞争。同时应做好产品的规划:从简单到复杂,从单一产品到系列产品,设计平台不断维护与更新,设计软件不断维护与升级,设计人员的水平不断提高。主要包括以下几个方面:

(1)体系架构分析、设计和验证

依据设计规格书中的性能指标和功能指标,首先需要制定设计方案:选取几款CPU以及所有用到的IP核进行系统级设计,从整体上评估MCU的系统架构、CPU的性能指标、IP核的功能特性等方面。基于几种选定的目标工艺给出相应的数据分析,确认是否能够满足设计目标的要求,从而确定基本的设计方案,然后再根据具体的设计结果进行相应的优化。

(2)时钟和复位方案设计

时钟和复位对整个电路而言起到了至关重要的作用。如果这两路信号有问题,则电路不能正常工作。因此,需要作出详尽的时钟方案和复位方案,需要给不同的外设提供不同的时钟:USB单独时钟、CPU等高速外设一个时钟、UART等低速外设一个时钟,如图1示。

图1时钟方案示意图

(3)总线方案设计

采用何种总线、何种组合方式、总线的数量等关系到MCU性能的发挥。以AMBA总线为例,通常的用法是AHB接高速外设,再通过AHB到APB总线桥来访问低速外设。有时为了提高外设的访问速度,一个MCU内部可能有两条APB总线;也可能有两条AHB总线。指令和数据分离,一条用来数据传输或图像处理,另一条用来通用控制。还可能有多层AHB的互连矩阵,便于多个Master可以同时访问多个不同的高速外设,从而大幅度提高MCU系统性能。因此,总线方案的制定须依据产品的具体应用来确定。

(4)功耗管理方案设计

低功耗是MCU的突出特点之一,因为MCU中集成了多种低功耗管理策略:不仅在逻辑上采用门控时钟、门级优化的方式,而且还在物理上采用多阈值电压、多电源域、门控电源等方式;同时更在功能模式上采用了多种模式:正常运行模式、睡眠模式、深度睡眠模式、掉电模式等,并严格规定各种模式下运行和关闭IP核的种类以及各种模式之间的进入和退出流程。这既保证了电路的功能,又保证了电路的性能。

(5)中断处理方案设计

中断是MCU一项很重要的功能。通过中断控制,CPU可以快速响应外设的请求。中断处理一般包括中断源的数量、优先级、是否可屏蔽、是一般中断还是快速中断等,通常需要设计一个专用模块来进行中断处理。有时为了提高设计效率,IP销售商也提供标准的基于AHB或APB等总线接口协议的IP核。如果此类IP核能够满足系统对于中断处理情况的要求,也可以选用。

(6)存储器管理方案设计

存储器是MCU中占面积较大的模块。一个MCU中可能同时含有ROM、SRAM和FLASH三种存储器:ROM用于放置BootLoader、IP Drivers等,SRAM用于提高软件运行速度、存放临时数据,FLASH用于存放应用程序和数据。由于FLASH的读写速度比较慢,为了提高FLASH的读写速度,可以采用预取缓冲器和写缓冲器来加速指令和数据的缓冲。由于各个存储器都有自己的地址空间,因此很方便用户访问。为了便于系统管理,通常设计一个存储器管理模块,并在系统控制模块中设计对应的控制寄存器。

(7)在线调试方案设计

目前,比较常用的在线调试方式为串行调试,如JTAG、EJTAG、UART等,使用PC机的并口、串口、网口或是USB接口,使得在线调试简单方便,成本低廉,如图2所示。由于被调试的程序要在目标板上运行,而且MCU必须正常工作,因此需要设计一个专用的调试模块以保证上位机软件可以调用CPU来进行软硬件的在线调试,并且符合IEEE1149.1的协议标准,此模块的基本结构如图3所示。

图2典型在线调试系统示意图

图3调试结构示意图

(8)测试方案设计

MCU的测试方案主要包括物理测试、功能测试和性能测试几部分内容。先要根据时钟方案和复位方案对MCU进行时钟测试,确保时钟电路工作正常;再对CPU进行功能测试,因为CPU是MCU的控制核心,只有CPU正确运行才能对其他IP核进行测试;然后再依据设计规格书对MCU外围的数字IP核和模拟IP核进行功能测试和性能测试。

5.2系统级验证

为了确保设计的正确性,流片之前必须对MCU进行全功能验证。因此需要使用多种IIP和VIP来搭建一个系统级验证平台,依据设计规格书制定详细的验证方案,通过仿真工具,采用定向和随机的方式或采用比较流行的OVM、VMM和UVM等验证方法学、逐个IP核来验证MCU的全部功能是正确的,重点是系统控制单元、总线仲裁器、功耗管理等为系统功能定制设计的非标准模块。

5.3 FPGA原型验证

由于系统级验证使用的是EDA工具进行软件仿真,仿真的速度比较慢,因此可以通过FPGA原型验证的方式来加速系统级验证的速度,尤其是需要将那些功能比较复杂、规模比较大的模块下载到FPGA中,而且应尽可能使用规模比较大的FPGA,如Virtex-7系列、ArriaV系列等。搭建FPGA验证平台时,不仅可以使用一块FPGA,也可以使用多块FPGA,最好能够将设计的所有模块全部下载到FPGA中。FPGA原型验证不仅要验证硬件的正确性,还要验证IP核驱动程序的正确性,同时也可以验证目标应用程序的正确性。

5.4物理设计

在对MCU系统级验证和FPGA原型验证后,需要进行物理设计:依据设计规格书制定合理设计约束,从逻辑综合到自动布局布线,再到物理验证、形式验证、静态时序分析和功能验证,完成从RTL到GDSII的转换过程,最后将数据发送至代工厂进行加工制造。

5.5文档设计

文档是MCU设计过程中很重要而且很必要的环节,且应该在设计的不同阶段,以模板的形式规定在此阶段所要完成的文档设计,并由项目负责人进行详细审查,从而确保一旦设计中出现了任何问题,都可以查找相关的设计文件以及对应的设计文档,尤其是设计的细节需要体现的很完整。

5、结束语

以上只是简要概述了MCU硬件设计的主要方面。若要设计一个性价比高、竞争力强的MCU,还需要进行大量的、详细的工作,尤其是电路的全功能验证和详尽测试,并搭建一个MCU平台来进行系列产品的开发,以保证产品可以源源不断地进入嵌入式市场。

文章来源:电子电路网

围观 400

无线射频识别(RFID)将成为第一种与条码技术并存并最终将在低成本识别和个人数据存储领域取代条码技术的新兴技术。 与条码技术相比,它具有多种优势,包括: 1、可以存储更多数据;2、可以在标签中集成一定智能;3、可以在一定距离外扫描;以及 4、可以减少人为干预。而这所有一切皆因MCU的使用让其成为可能。

EPC 技术对智能标签的影响

在消费层的部署中,下一代标签系统必须发展一种新的复杂级别,以应对新应用和全球互操作性所带来的复杂性。

就像统一产品编码(UPC)是条码技术的基本标识一样,一个名为 EPCglobal 的企业联盟也为 RFID 创建了电子产品编码(EPC)。 EPC 代码为 64 位或 96 位长。它将作为联网数据库中的一个查找项,数据库中的数据必须能够实时访问。

在某些时候,标签必须与位于公司内联网之外的主机系统进行通信。 公司可以与其合作伙伴协作,提供 EPC 信息服务(EPCIS)。 这将需要更多的标准化、互操作性和安全性。

图 1: 标签应用贯穿从入库到零售的整个过程

32 位 MCU 适于复杂RFID系统

由于它们经济有效,32 位 MCU 非常适合用于复杂 RFID 自动 ID 系统。 正如前面指出的那样,大部分重新设计工作将是对阅读器进行的。 图 2 显示了一个基本阅读器的框图。

图 2: 使用 MCU 和阅读器 IC 的 RFID 阅读器

MCU 可以使用几种流行串行接口中的任一种接口与较大的 EPCIS 数据库通信,这些接口包括 UART 和 USB 串行通道。 阅读器和标签之间的通信由 MCU 负责。

系统依赖于存储在 EEPROM 中的数据,并具有几个基本特性:

· 每个标签有一个唯一的串行编号,存储在 EEPROM 块 1 和 2 中。

· 两个特殊功能控制代码:电子商品防窃 (EAS) 和安静模式,用于解决安全和开/关操作(存储在块 3 中)。

· 每个标签拥有一个 8 位系列码和一个 8 位应用标识号(均存储在块 4 中)。 这两个代码对标签并不是唯一的。

· 余下的存储器用于用户数据。

· 定义了 256 个时隙,标签在其中的一个时隙中进行广播

如果一个阅读器寻找某个特定标签或一组标签,它可以使用系列码和应用标识号标准询问位于其操作范围内的所有标签。

阅读器需要对标签进行一系列询问操作。 这种交互操作通常是对标签中用户数据的读操作,但也有可能发生后续的写操作。

整个过程大体如下:

· 重复询问标签的操作,直到不再检测到数据逋唬

· 当符合所需系列和应用代码的标签被找到时,阅读器将通过整个排序过程为它们分配时隙。

· 不符合该系列/应用代码标准的标签被指示停止广播其串行编号。 

· 为了使排序过程进行得尽可能快,采用了优化算法。优化是根据对完成该过程所需命令的平均数的仿真进行的。 使用一个 32 位 MCU 可以最好地完成这些算法的快速执行。 

所有这些合起来,对 MCU 构成严重负荷。 标签需要具有更高的性能。使用 32 位 MCU 和大容量片上闪存,就可以实现本地数据库信息存储,而不必与主机进行无休止的通信。 

智能卡阅读器数据加密和解密结构 

加密可通过软件来实现,也可以通过硬件和软件的组件来实现。 纯软件加密的主要优点就是便宜。 另一方面,基于硬件/软件的安全措施会更安全,性能也会有相当多的提升。
  
除了8 位和 16 位系统处理软件加密时的性能弱势以外,对于内存受限的设计来说,软件使用的代码也常常会显得太多,并且几乎总是存在后门,从而造成安全风险。 当系统设计者没有其他选择,只能通过增加外部存储器来容纳剩余代码时,安全风险就会进一步增加。 32 位 MCU 提供了足够的片上内存资源(512 K 字节闪存),而后续产品还将随着时间流逝而不断扩展。 

设计团队经常想当然地以为硬件加密会造成令人无法接受的 BOM 成本和 IP 成本增加。尽管 DES 和 Triple DES 等算法不受版权限制,不需要交纳牌照费,但能够改善其效率的那些实现方法却是受专利保护的。 

好消息是当使用带有安全内核和丰富 IP 库的 32 位 MCU 时,设计者实际上可从两个领域均受益。 一方面,32 位 MCU 拥有通过软件来执行加密算法所需的全部处理能力。 另一方面,具有优化加密引擎的安全内核可以提供所需的所有硬件安全性。 受专利保护的实现算法则是作为 MCU 的 IP 库的一部分。 

软件可配置性对阅读器/标签系统来说特别重要。 例如,很快将进入市场的支持 EPCIS 的下一代智能标签系统,将能够在使用中改变其加密算法。 
 
对于以前的智能标签系统,系统智能的大部分将保留在阅读器模块中。 当阅读器采用基于安全 ARM 内核和适当 IP 的 32 位 MCU 标准元件来提供支持时,实现基于硬件的安全造成的额外成本将非常小。 使用 32 位元件的另一个优势是它们能够提供额外的内存容量。 通过在阅读器的 MCU 中嵌入足够内存,可以消除通常在 8 位和 16 位设计中见到的 MCU 与内存之间的外部总线。 没有了这种总线,也就避免了一种安全威胁,因为从此黑客们将无法再监测阅读器的内存总线。  


 
图 3: AES 加密和解密结构 32 位 MCU在未来应用中更具优势 

在下一代智能标签和非接触式智能卡应用中,32 位 MCU 具有明显优势。 例如,它们能够进行更多智能标签的识别和排序处理,可以使用更多内存,而不必像 8 位 MCU 那样采用内存换页(memory banking)技术来实现。  

当加密成为 RFID 阅读器/标签系统特性列表的一部分时,优势就更加明显。 例如,DES 和 Triple DES 需要使用 32 位乘法器,而在一些MCU 上,乘法器也早已内置其中。  

软件执行加密算法具有许多优点,比如可以在使用中更改加密密鈅等。 但软件执行需要使用大量嵌入式内存,而 32 位 MCU 可以提供这些内存。 使用内存映射 I/O 的能力使系统设计变得更加容易,32 位 MCU 上的 I/O 选项一般包括多种高位速率接口。 

过去,32 位 MCU 的不足之处在于成本较高。 然而,随着越来越多厂商引入基于标准 ARM的 MCU 之后,价格已经下降。采用前沿半导体工艺进行大批量生产缩小了管芯尺寸,降低了 32 位标准规格 MCU 的价格。当然,32 位 MCU 的成本仍然比最便宜的 8 位 MCU 要高,但系统设计者现在还是采用了可以提供他们所需性能的 32 位 MCU,并且能够符合整个系统的材料预算。  

RFID 和自动识别技术与安全性和保密性问题的融合,势必将促进 32 位 MCU 在智能标签和非接触式智能卡市场的发展。近期之内,我们将看到它们融入支付、库存和销售点系统中;而不久我们就会看到增强的技术或非接触式智能卡大量进入电子护照等敏感领域。

来源:网络(本文仅供学习参考使用,版权归作者所有)

(直接点击图片可进入调查页面)

开发板测评图片
围观 326

全球物联网(IoT)应用热潮方兴未艾,然却已有不少MCU供应商铩羽而归,面对物联网应用整合控制/电源管理及无线连结的系统级解决方案需求,部分芯片供应商不是被迫待价而沽,就是面临被市场及客户边缘化危机,加上IP大厂安谋(ARM)版图正快速扩展到全球MCU市场,大幅降低进入门槛,并造成MCU市场杀价混战,全球MCU版图大洗牌已箭在弦上。

继恩智浦(NXP)购并飞思卡尔(Freescale),近期高通(Qualcomm)已经买下恩智浦,加上微芯(Microchip)从戴乐格(Dialog)手上抢亲艾特梅尔(Atmel),接着赛普拉斯(Cypress)购并博通(Broadcom)旗下物联网业务,以及瑞萨(Renesas)宣布合并英特矽尔(Intersil),凸显全球MCU大厂纷砸大钱布局物联网市场,全球MCU战火一触即发。

不过,全球物联网市场大饼仍不是很具体,加上众多竞争对手凭藉ARM的IP大刀,积极砍价抢攻市占率,对于过去擅长于少量、多样接单模式的中型MCU供应商,似乎愈来愈难找到生存空间,这亦让全球MCU产业除了排名前5大厂之外的其他MCU供应商,近期业绩表现呈现走滑趋势,并面临一波波的产业整并风暴。

芯片业者坦言,物联网市场商机其实并不容易吃到,除了各路人马全面加入战局外,ARM亦不断渗透全球MCU产业IP版图,甚至快速整合不少应用、产品及市场,让MCU供应商出现腹背受敌的危机,毕竟ARM透过全系列的高、中、低阶MCU IP,已大大降低全球MCU市场进入障碍。

由于各家芯片业者均可借由ARM IP及软件程式资源,开发自家高度客制化的MCU解决方案,对于老字号MCU供应商而言,过去拥有的客户基础及熟悉相关开发工具等竞争优势,已难抵挡新进业者积极杀价的进攻策略,迫使老字号MCU供应商成长动能疲软,尤其是中型MCU供应商受影响最明显,陷入被迫退出竞争行列的困境。

事实上,近期很多芯片业者为加速取得全球物联网市场参赛权,投入大笔资金进行购并,相较于过去MCU供应商提供客户包括芯片、软/韧体、公版及产品开发平台等资源,在物联网应用世代,MCU供应商更必须备齐控制/电源管理及无线连结等解决方案,不仅竞争压力大增,MCU供应商若不砸大钱,恐怕就只能退出这场竞赛。

在物联网市场快速萌芽,以及ARM IP掀起全面攻势的过程中,中型MCU供应商生存空间正持续遭到挤压,业者预期未来全球MCU产业版图将大幅变化,呈现大型、甚至超大型MCU供应商独占特定产品、应用及市场龙头情况。

由于这些大型MCU供应商多专注在领先的技术领域,让小型MCU供应商得以拿下一些利基及更少量、多样的产品市场商机,反而是夹在中间的中型MCU供应商,恐将面临一波波的产业淘汰赛。

MCU市场未来预测

据IC Insights预期,在经历了近几年的价格下滑之后,微控制器(MCU)的平均销售价格(ASP)预期将会回温,并再创销售额新高纪录。

市场研究机构IC Insights预期,IC产业的原始系统级晶片(SoC)产品──微控制器(microcontrollers,MCU)市场的年营收规模,将在未来五年稳定成长并达到新高纪录,尽管该市场整体出货量成长将趋缓。

IC Insights指出,MCU市场销售额在2015年几乎没有成长,幅度不到0.5%,但金额规模却达到了略高于159亿美元的新高纪录,主要是因为MCU出货量成长了15%,在去年达到了221亿颗的高峰(如下图)。强劲的出货量成长──由智慧卡应用与32位元产品带动──让MCU市场抵销了13%的平均销售价格(ASP)下滑;MCU的ASP在2015来到了0.72美元的历史新低。

价格下滑(特别是32位元产品),让MCU销售额成长率在过去四年中有三年都被拖累;但IC Insights指出,现在MCU的ASP预期将回稳,并在2015~2020年间可微幅成长,复合年平均成长率(CAGR)估计为1.6%;该数字在2010~2015年间为-7.7%。

虽然ASP终止下滑,MCU出货量的成长幅度则预测会在接下来五年比过去五年低;主要原因是智慧卡微控制器成长趋缓,还有因为物联网(IoT)应用对IC库存量的紧缩。ICInsights估计,MCU销售额在2016年将由2015年的159亿美元成长4%、来到近166亿美元。

MCU出货量在2016年则预期成长2%,达到224亿颗,而整体MCU的ASP则预测可在今年增加2%,来到0.74美元;在2015到2020年间,MCU销售额的CAGR估计为5.5%,并在2020年达到近209亿美元的规模。IC Insights表示,自1990年代中期以来,全球MCU销售额的CAGR约在2.9%。

MCU销售额到2020年将呈现上扬走势;预期在2016~2019年间,整体MCU市场营收成长率将逐渐增强(2019年成长率预测为9%),直到2020年缩减至4%的成长率;至于MCU出货量则预测在该期间以CAGR为3.9%的幅度成长。

IC Insights指出,MCU出货成长速度到2020年之间逐渐趋缓的原因,是智慧卡市场已迈入成熟阶段;该应用市场在近几年占据MCU出货量的近五成,占据MCU市场整体营收约15~16%。到2020年,智慧卡MCU预期将占据整体微控制器出货量的38%,而在整体销售额的占据幅度则缩减至12%。

(直接点击图片可进入调查页面)

开发板测评图片
围观 443

电子产品的低功耗问题经常让产品设计者头痛而又不得不面对。以单片机(MCU)为核心的系统,其功耗主要由单片机功耗和单片机外围电路功耗组成。要降低单片机系统的功耗,需要从硬件和软件两方面入手。
  
硬件设计考虑因素
  
要满足单片机系统的低功耗要求,选用具有低功耗特性的单片机可以很容易实现。因为具有低功耗特性的单片机可以大大降低系统功耗,这可以从单片机的供电电压、内部结构、系统时钟和低功耗模式等几方面来考察一款单片机的低功耗特性。一般来讲,用户在选择技术供应商和产品过程中,需要对下面的一些重要硬件参数进行更加深入的考量:
  
选择简单的CPU内核
  
选择CPU内核时切忌一味追求性能,以“够用就好”为原则。8位机够用,就没有必要选用16位机、32位机;单片机的运行速度越快,往往其功耗也越大。一个CPU越复杂、集成度越高、功能越强,片内晶体管越多,总漏电流也越大,即使进入STOP状态,漏电流也会变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。
  
选择低电压供电的单片机系统
  
单片机系统的供电电压低,可以有效地降低其系统功耗。由于半导体制造工艺的发展,现在单片机的供电电压从5V供电降低到3.3V、3V、2V乃至1.8V。供电电压低,不紧可以降低单片机的功耗,还可以降低单片机外围电路的功耗。
  
选择带有低功耗模式的单片机系统
  
低功耗模式指的是系统的Idle、Stop和Suspend等模式。处于这些模式下的功耗将远远小于正常运行下的功耗。Idle模式下,CPU停止工作,但内部系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式功耗的50%左右。
  
如果在CPU进入Stop模式时,将各个模拟外设关掉,这时的功耗可以降低到nA级。但是在Stop模式下,CPU被唤醒后要重新对系统作初始化,所有特殊功能寄存器的内容将被重新初始化。这在某些低功耗应用场合需要注意。
  
Suspend模式下,CPU、内部系统时钟停止工作,I/O模块等被悬挂起来,片内RAM中存储的数据将被保持,CPU的功耗可以降低到nA级,由唤醒事件唤醒。当CPU被唤醒后,系统不会被CPU复位,继续从进入Suspend模式的地方开始执行程序。这是一种非常理想的低功耗模式。
  
在硬件层面来说,对上面的这些参数进行仔细衡量是十分必要的,除此之外,选择合适的时钟方案和使用每MIPS功耗来衡量MCU的低功耗性能也是非常关键的。

应用软件考虑因素
  
应用软件设计对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件设计上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。但是设计者如果能尽量将应用的低功耗特性反映在软件中,就可以避免那些“看不见”的功耗损失:
  
用“中断”代替“查询”
  
在没有要求低功耗的场合,程序使用中断方式还是查询方式并不重要。但在要求低功耗场合,这两种方式相差甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU必须不停地访问I/O寄存器,这会带来很多额外的功耗。
  
用“宏”代替“子程序”
  
子程序调用的入栈出栈操作,要对RAM进行两次操作,会带来更大的功耗。宏在编译时展开,CPU按顺序执行指令。使用宏,会增加程序的代码量,但对不在乎程序代码量大的应用,使用宏无疑会降低系统的功耗。
  
尽量减少CPU的运算量
  
减少CPU的运算工作量,可以有效地降低CPU的功耗。减少CPU运算的工作可以从很多方面入手:用查表的方法替代实时的计算;不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。
  
让I/O模块间歇运行
  
在系统运行过程中,不用的I/O模块要关掉,间歇使用的I/O模块要及时关掉,以节省电能。同时,不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。
  
总之,在单片机系统设计过程中,需要深入理解单片机低功耗的特性,并在硬件和应用软件的设计过程中充分利用单片机的低功耗特性,从而设计出符合低功耗要求的产品。

(直接点击图片可进入调查页面)

开发板测评图片
围观 341

全球物联网(IoT)应用热潮方兴未艾,然却已有不少MCU供应商铩羽而归,面对物联网应用集成控制/电源管理及无线连结的系统级解决方案需求,部分芯片供应商不是被迫待价而沽,就是面临被市场及客户边缘化危机,加上矽智财大厂安谋(ARM)版图正快速扩展到全球MCU市场,大幅降低进入门槛,并造成MCU市场杀价混战,全球MCU版图大洗牌已箭在弦上。
  
继恩智浦(NXP)购并飞思卡尔(Freescale),近期高通(Qualcomm)传出有意买下恩智浦,加上微芯(Microchip)从戴乐格(Dialog)手上抢亲艾特梅尔(Atmel),接著赛普拉斯(Cypress)购并博通(Broadcom)旗下物联网业务,以及瑞萨(Renesas)宣布合并英特矽尔(Intersil),凸显全球MCU大厂纷砸大钱布局物联网市场,全球MCU战火一触即发。
  
不过,全球物联网市场大饼仍不是很具体,加上众多竞争对手凭借ARM的IP大刀,积极砍价抢攻市占率,对于过去擅长于少量、多样接单模式的中型MCU供应商,似乎愈来愈难找到生存空间,这亦让全球MCU产业除了排名前5大厂之外的其它MCU供应商,近期业绩表现呈现走滑趋势,并面临一波波的产业整并风暴。
  
芯片业者坦言,物联网市场商机其实并不容易吃到,除了各路人马全面加入战局外,ARM亦不断渗透全球MCU产业IP版图,甚至快速集成不少应用、产品及市场,让MCU供应商出现腹背受敌的危机,毕竟ARM透过全系列的高、中、低阶MCU IP,已大大降低全球MCU市场进入障碍。
  
由于各家芯片业者均可藉由ARM IP及软件程序资源,开发自家高度客制化的MCU解决方案,对于老字号MCU供应商而言,过去拥有的客户基础及熟悉相关开发工具等竞争优势,已难抵挡新进业者积极杀价的进攻策略,迫使老字号MCU供应商成长动能疲软,尤其是中型MCU供应商受影响最明显,陷入被迫退出竞争行列的困境。
  
事实上,近期很多芯片业者为加速取得全球物联网市场参赛权,投入大笔资金进行购并,相较于过去MCU供应商提供客户包括芯片、软/韧体、公版及产品开发平台等资源,在物联网应用世代,MCU供应商更必须备齐控制/电源管理及无线连结等解决方案,不仅竞争压力大增,MCU供应商若不砸大钱,恐怕就只能退出这场竞赛。
  
在物联网市场快速萌芽,以及ARM IP掀起全面攻势的过程中,中型MCU供应商生存空间正持续遭到挤压,业者预期未来全球MCU产业版图将大幅变化,呈现大型、甚至超大型MCU供应商独占特定产品、应用及市场龙头情况。
  
由于这些大型MCU供应商多专注在领先的技术领域,让小型MCU供应商得以拿下一些利基及更少量、多样的产品市场商机,反而是夹在中间的中型MCU供应商,恐将面临一波波的产业淘汰赛。

来源: DIGITIMES中文网

(直接点击图片可进入调查页面)

开发板测评图片
围观 276

页面

订阅 RSS - MCU