MCU

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

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

引言

当下,物联网、移动互联技术大刀阔斧地改变着整个世界。随着嵌入式技术的不断革新,32位MCU成为主流,64位MCU的应用范围也越来越广。与此同时,唱衰8位MCU即将消亡的言论从未停息……

事实上,在工业控制、安防、物联网、消费类电子等诸多领域,8位MCU的身影依然处处可见,而且不断推陈出新。从市场的占有率和销售额来看,8位MCU的市场份额甚至还在不断攀升。根据IHS的预测,2018年8位MCU的市场规模将增长到78亿美元,继续超过每年MCU市场营收的三分之一以上。

究竟是什么原因令8位MCU的生命力如此旺盛,市场潜力依然巨大呢?未来,8位MCU又有哪些新的发展趋势和应用领域呢?且听这些行业巨头们一叙。

业界声音

纵横市场数十年的8位MCU,至今仍是开发各种嵌入式系统的关键器件,甚至在未来的物联网(IoT)时代中也将占有一席之地。尽管近年来半导体厂商纷纷转换至32位ARM CortexM内核架构,进而招来许多有关8位MCU将走出历史舞台的宿论,但事实是,它仍然在市场上屹立不倒,而且在新型消费电子、物联网、工业控制、智能传感器和电信及数据通信设备中都可见其踪迹。

Microchip:8位MCU创新空间巨大

8位MCU的创新空间是十分巨大的,Microchip一直致力于该领域的创新和研发。Microchip的研发部门有很多创新的想法,并且不断地推出一些创新性的解决方案来保持8位单片机的生命力,因此8位单片机是不会消亡的。目前,市场上并没有其他厂商在8位单片机方面继续大量地投入,然而Microchip一直以来都非常注重8位单片机市场的创新与投入,而且,未来会进一步地扩大Microchip的市场份额。在短期内,就整个8位单片机的市场而言,并不会出现特别大的突发性的增长。

新一代的8位MCU更多的是朝智能模拟、创新性的外设这样的方向发展,Microchip会仔细地倾听市场的需求,通过创新性的产品(比如创新性的外设、独立于内核的外设),来更好地满足市场需求。今年Microchip会推陈出新,新的技术至少能够让Microchip在5~7年内保持技术的领先优势。因此,对于8位单片机市场,Microchip非常有信心。特别需要强调的一点是,新技术中会有越来越多集成化的智能模拟模块集成在一起。

可以看到,8位单片机在照明领域的应用非常广泛,包括消费类的照明、工业照明,以及汽车车灯的照明等等。当然,这只是应用的其中一个方面。而上述这些概念和互联网的概念都是相关的,比如说智能照明、智能车灯等等。除此之外,8位单片机在汽车领域应用得也非常多,比如智能汽车方面。

随着用户对于产品“与众不同”和“个性化”需求的加大,Microchip也推出了不同种类、不同版本的产品,能够让客户实现他的个性化,体现他的与众不同。Microchip集成了很多的外设,目的是帮助客户在成本和价值方面取得平衡。

Silicon Labs:8位MCU应用无处不在

相较于32位设计,基于传统8051内核的8位架构常被一些工程师认为太过老旧。事实上,8051内核一直在与时俱进,不断得到显著的升级,加上其长久以来在大量开发商和工程师的支持下,所积累的设备安装量和为之编写的数以百万计的代码,使嵌入式开发人员能够继续利用这些丰富的知识宝库,来缩减产品上市时间和测试成本。

经过Silicon Labs持续优化的8051架构正是具备更高性能的典型8位MCU之一。Silicon Labs以3级流水线冯·诺依曼(VonNeuman)架构对8051内核进行了现代化和“类RISC”化,并保持与原始内核代码兼容,从而获得了巨大的性能提升。

俗话说的好,万变不离其宗!广泛部署并经过长时间考验的8051指令集仍然是许多既需要功效、又需要高性价比应用的最佳选择。对于新兴的物联网(IoT)应用而言,可连接设备和传感器网络通常有严格的功耗、占用空间和预算限制,开发商会选择在终端节点中广泛使用小尺寸、低功耗且低成本的8051 MCU,并达到加速系统设计的目的。

8位MCU市场需求依然强劲,例如在近来特别红火的无人机中,内部的电机控制电路板上便搭载了8位MCU;而许多空间受限、性能密集型应用,例如光模块、测试和测量仪器、工业控制设备和智能传感器等,也都需要高模拟性能和外设集成度的8位MCU。以Silicon Labs新款Laser Bee MCU为例,其集成了高分辨率模/数转换器和数/模转换器、高精度温度传感器等多个元器件,将能提供更快的时钟及PWM性能。

新唐看好具有强大竞争优势的8位MCU

MCU市场仍处于成长阶段,各级别的MCU的需求量持续攀升,应用范围持续扩大。一般而言,在大量数据运算与图像影音处理等方面,以32位MCU为主;在控制类应用方面,进入市场较早的8位MCU产品则具备诸多竞争优势,例如 8位MCU产品很早进入消费类、医疗用品、工业控制、汽车电子等市场应用,产品稳定,性价比满足需求,至今仍占主导地位。这些已稳定量产的产品,由于安全可靠与成本优势,也成为8位 MCU市场的发展基石。

在对价格特别敏感的市场,更能凸显8位产品价格上的优势。伴随着丰富外设的加持,小家电市场随处可见8位MCU的踪迹,IC制程也由 0.35 μm、 0.25 μm 进入到0.18 μm及0.13 μm, 性能更强、功耗更低。由此可见,8位MCU需求量仍不断增加,市场份额仍具有上升的空间。以新唐今年的销售成绩而言,8051单片机的出货量大幅超出了预期。

新唐经营8位 MCU已超过20年,为客户累积了完整的链接库与应用经验,使研发周期大幅缩短。新唐MCU包含8位的12T、 4T、 1T 8051与32位 CortexM0/M4、ARM7、ARM9 CPU 内核, 产品线完整。根据新唐长久经营MCU市场的经验来看,对客户而言,MCU位数并非选型的关键因素,平台完整度、代码复用性与可移植性、产品质量稳定可靠,以及良好的客户服务, 才是决胜的重要因素。例如,新唐以8位 MCU为核心所开发的触摸按键系列,PCB板设计简单,具备高集成度、高抗干扰性能,加上工程师可在新唐开发平台简易且快速地完成产品设计、具有良好的开发体验,这些因素使新唐触摸系列深受客户欢迎。新唐认为,触控产品需求将会是推动新唐8位 MCU成长的重要驱动力,加上积累20年的深厚客户关系,8位 MCU市场潜力依然巨大。新唐将会持续提供高性价比的MCU、体贴的开发环境与技术支持,满足市场与客户需求。

何立民教授:8位MCU的生命力长盛不衰

当ARM系列不断吞噬8位MCU的市场份额时,有人认为32位MCU将取代8位MCU,8位MCU将会退出历史舞台。殊不知,ARM系列在传统嵌入式领域大肆扩张的同时,80C51成功地实现了华丽的转身,在嵌入式系统无限大的市场领域(如物联网、可穿戴设备)中获得新生,成为MCU中的不死鸟。

从MCU无限大的市场角度看,随着智能化工具的发展,MCU产品的市场需求日益扩大,从传统电子的智能化改造、新兴的智能化设备、智能化设备的分布、智能化设备总线、智能化设备局域网,直到物联网时代,无处不在的人工智能的感知与控制终端领域,都表明了MCU有一个无限大的市场。这个无限大市场的多样性决定了对MCU的多样需求,8位、32位、64位MCU没有好坏之分,主要体现在不同的应用领域,其技术各有所长,最重要的是取其所长,把它们应用在能充分发挥其长处的地方。

编辑视角

从嵌入式系统教育角度看,由于8位MCU具有稳定、便宜、易用的特点,以51系列单片机(8位MCU)的应用作为嵌入式系统教学是十分理想的,而且嵌入式系统的初学者以51系列单片机作为入门单片机的学习是较好的。学好了51单片机,今后再学习更为复杂的单片机就容易上手了。

从系统稳定性的角度看,在控制领域、安防领域、消费类电子等领域仍会大量地使用8位MCU,大量工业现场的恶劣环境注定了系统中的核心控制器件必须稳定、可靠、易维护。同时,工控设备器件选型有一个重要原则:芯片必须稳定可靠、应用成熟,器件所含有的功能和数量应略大于设计需求。就分配给它的任务而言, 51系列的8位单片机性能足矣,在满足需求的情况下,处理器越简单,稳定性就越强,越有利于产品的安全维护。

从市场产品需求看,在大部分嵌入式产品中,8位MCU就能满足嵌入式系统中80%~90%的基本需求,嵌入式产品最低的要求也是能处理8位二进制数据或代码,众多的嵌入式产品从内核到开发工具都是以8位内核为基础的,市场的需求及其自身性价比决定了它依然能活跃在这个舞台上。

文章来源:单机片与嵌入式系统应用

围观 483

低功耗是MCU的一项非常重要的指标,尤其是在便携式和可穿戴设备中,其携带的电量有限,如果系统功耗高的话,就会很容易出现电量不足的情况,频繁的更换电池或充电必然会带来很差的用户体验,甚至存在一定安全问题,且高耗能的情况下,产品容易发热,严重影响产品的使用寿命。产品的低功耗是那么的重要,下面我将介绍一下NXP Kinetis L系列MCU的低功耗,看它在解决产品低功耗问题的“三板斧”。

一板斧
Cortex-M0+内核,能效比提高30%
Kinetis L系列MCU被誉为全球能效最高的32位MCU,基于当前能效最高的ARM Cortex®-M0+内核,同时采用90nmTFS技术,大大降低MCU静态功耗。

二板斧
10种灵活的电源模式
传统的MCU过去只采用3种电源模式:运行、睡眠和深度睡眠。然而这种“以一概全”的思路不适应现在电源配置多样设计需求。Kinetis L系列MCU将传统的3种电源模式扩展为10种灵活的模式,能够支持多种应用用例,从而大大提高了能效。


图1 10种灵活的电源模式对比

注:
* 计算操作启用:3.6 mA @ 48 MHz内核/24 MHz总线)
** 计算操作启用:144 uA @ 4 MHz内核/1 MHz总线)
a部分Kinetis L系列设备上提供


图2 10种电源模式转换

三板斧
智能电源外设
Kinetis L系列MCU在外设内实现了低功耗智能,允许外设在深度睡眠模式下通过备用时钟源自主运行。例如,MCU内包含异步DMA(ADMA)唤醒功能,允许某些外设在停止和VLPS模式下请求DMA传输。


图3 节能外设应用示例

凭借着“三板斧”的巨大威力,Kinetis L系列MCU在与竞争对手相应的16位低功耗MCU展开正面能效基准挑战赛中完胜对手,证明它作为全球能效最高的MCU选手是实至名归的。

来源:周立功单片机

围观 378

MCU深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP数位讯号处理器或FPU浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
  
微控制器加速芯片整合 大幅扩展MCU可应用场域
  
微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。
  
MCU深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP数位讯号处理器或FPU浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
  
MCU整合FPU可以在进阶数值运算的精密度大幅提升、处理效能也能获得改善。
  

针对IoT应用开发的MCU方案,整合DSP可优化感测器数据撷取品质与提升信号处理效能。
如果以FPU或DSP导入目的,一般在MCU中追加FPU、DSP整合架构,主要目的还是在考量成本下的设计方向,尤其在早期半导体元件,SOC(SystemonChip)系统单晶片与MCU存在一段价格差距,如果仅需要SDP或FPU进行运算加速,又不想选用高单价SOC,这时整合DSP或FPU硬体加速单元的MCU产品、不仅可以更好的提供运行效能,同时又能在成本控制上表现更加优异。
  
MCU整合晶片封装成本骤降增加MCU功能扩充应用空间
  
以早期的SOC产品来看,搭载DSP与FPU硬体加速器是SOC产品的重要特性,其中DSP与FPU的应用方向主要以音讯、影像等处理加速运算为主,而在制程技术持续优化,SOC的成本逐步与MCU拉近,MCU在32位元甚至64位元架构下,也开始有结合DSP或是FPU硬体加速单元的解决方案。
  
先看看MCU加上硬体加速单元的优点,在MCU追加FPU导入,最直接的效益是早期利用MCU处理类似FPU运算内容,会因为MCU本身的运算架构限制,让运算结果得出时间会相对拉长,而在导入硬体加速器处理浮点运算时,因为硬体呼叫或是资料传递就能透过硬体算出数据,MCU本身耗在浮点运算的记忆体资源可以因硬体加速整合减少至少10%。
  
当然,从目的性来看,不管MCU有无整合FPU硬体加速单元,浮点运算需求使用MCU现有的运算能力也能得出结果,只是前提是计算过程会耗用较多运算时间与硬体资源,对于可等待、无需提供即时反应的系统自然可以不考虑整合FPU的MCU方案,但若是对系统效能、回馈反应速度要求高的整合需求,MCU结合FPU的效益提升不仅仅是运算资源耗用优化、节能优势等效果,反而是加快系统回应与效能提升的效用,才是MCU结合FPU硬体加速最直接、重要的功能改进,也让MCU可以因应更高复杂度的整合工作。
  
高阶数值运算运用硬体加速满足设计需求
  
在早期MCU元件仍以8位元架构为主流的应用方向,MCU在资料处理与运算处理上,本来就有因架构的问题而有其处理限制,例如,MCU进行小数点、分数处理运算时,因为4位元或是8位元位数有限,就必须采用有限数值进行处理,透过数值结果的限制换取处理复杂度简化与效能要求目的,而这种因为数值处理产生的误差即“截断误差”,截断误差也会因为使用MCU进行数据运算的限制,而令误差数值产生扩大现象。

而在MCU整合FPU硬体加速,在运算同类型的数据处理时,例如在IoT物联网或是终端感测器应用中,常有将外部类比感测数据转换成数位资料的资料撷取、处理需求,这时透过MCU整合的FPU/DSP硬体加速单元,不仅可将感测数据更快速处理完成、加快系统回应,同时,也能导入进阶运算减少数据演算的误差。
  
在实际应用中,FPU硬体加速器本身并无法完全解决误差扩大问题,所以会有FPU、DSP等不同硬体加速整合架构下的应用目的考量,举例来说,透过DSP硬体加速器,可针对特殊数据类型更高速、可靠的运算处理输出,像是DSP可利用指令来进行多种运算,处理如快速快速傅立叶转换或有限脉冲回应进阶运算中重要且耗资源的运算需求,甚至透过单周期的指令便能处理单一指令多重资料运算需求,MCU在进行进阶数值处理方面还可获得进阶增强效益。
  
FPU/DSP不同硬体加速单元具互补作用
  
虽说整合FPU或DSP基本在架构与应用方向就不同,但实际上两者分别是针对数据运算、讯号处理对应至各式演算法应用,两者功能可以说是各有互补效用,比较难被独立拆分。以ARMCortex-M4来看,若仅提供DSP硬体加速处理器反而没设置FPU浮点运算加速器反而会造成应用限制,因为在Cortex-M4应用场合如果仅有数位信号处理加速硬体支援,少了浮点运算支援,对开发需求端若碰到需要数值进阶运算加速,就会造成设计上的弹性限制,或是导致还需透过外部功能晶片支援,或利用原有的运算资源因应数值进阶计算需求,反而会因为数值处理效能限制了Cortex-M4的应用可能性。
  
同样的状况也发生在仅有FPU而没有设置DSP的微控制器应用方案上,对DSP或是FPU应用功能是相辅相成,独立整合对于微控制器的配置并未能产生综效,反而会成为发展路径的限制。
  
再者,从新一代IoT产品发展方向,透过感测器融合应用方向为例,若是SensorFusion概念为将多感测器整合在单一系统中协同运行,系统需要高阶数值与讯号处理能力,才可以将关键数值讯号自复杂数据中提取出来。
  
至于感测器融合可以再搭配即时的调整、控制与校正处理,由DSP加上FPU协同处理达到高精密度、高效率进行撷取数据的精密分析,尤其是现有的SensorFusion已做到陀螺仪、加速度器、温度、压力甚至触控感测都做在同一个模组中,必须透过DSP与FPU预先筛出相对精密且兼顾处理效率的讯号撷取与预处理的感测数据,提供相对高效的系统更具效率的感测数值处理机制。
  
DSP数位滤波应用可提升感测讯号撷取品质
  
此外,在MCU整合FPU的另一个优势在于可在系统中善用其运算特性,例如,运用数位演算法进行撷取数值的数位滤波应用,针对处理讯号进一步以基于硬体加速的数位演算法进行波形或数据再处理,形成一提升数据噪讯比(SNR)的便捷作法,数位滤波器还可利用演算机制优化提供不同程度大小的滤波效果,这在于微控制器用于感测热门的心率、血液含氧量、运动数值等生理资讯,或是数位电表、智能电表等应用,解决末端数据因为杂讯或环境噪讯影响,倒置讯号失真的数据优化回补效用,优化终端取得的讯号波形信号品质,更利于后续处理或数据使用。
  
为了优化末端应用,微控制器整合硬体加速单元也蔚为一股风潮,不只是DSP或是FPU硬体加速单元,例如就有微控制器在架构上加入了VMU硬体加速单元,处理因应马达应用重点的三角函数数值运算需求,或是对应无线电通讯需求整合的数据分析演算支援,与现有FPU浮点运算硬体加速功能区隔,采取协同分工的方式加速整体微控制器的应用效能。
  
有趣的是,针对不同的市场与运算需求定位,微控制器除在运算时脉进行差异区隔,以最实际的运算效能区分不同应用场合、市场切分外,整合不同应用所需的硬体加速单元也成为产品市场定位的重要分界,例如针对穿戴式运算应用市场的微控制器,在要求功耗、感测器融合、元器件成本方面就可仅整合FPU、DSP硬体加速定位市场区隔,在高阶的微控制器应用上,甚至有解决方案直接整合硬体绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT物联网等不同市场需求,也有五花八门的硬体加速单元配置组合,满足不同整合需求的应用架构。

另一个微控制器整合DSP、FPU硬体加速单元的目的,其实加入硬体加速单元整合而不采行外部解决方案来组构硬体加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一晶片就能改善运算的整体效率,而在软体开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。

来源:中国智能制造网

围观 354

推挽输出:可以输出高,低电平,连接数字器件;

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.

我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。

我们将图1简化成图2的样子。图2中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。

再看图三。图三中那个1K的电阻即是上拉电阻。如果开关闭合,则有电流从1K电阻及开关上流过,但由于开关闭其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于P0口来说,就是高阻态了。

对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。

另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR单片机的一些IO口就是这种结构。

开漏电路特点及应用

在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。

所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:

2

组成开漏形式的电路有以下几个特点:

1. 利用外部电路的驱动能力,减少IC内部的驱动(或驱动比芯片电源电压高的负载)。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。

2. 可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。

3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2(上拉电阻的电源电压)决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了(这样你就可以进行任意电平的转换)。(例如加上上拉电阻就可以提供TTL/CMOS电平输出等。)

3

4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。

5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。

6.正常的CMOS输出级是上、下两个管子,把上面的管子去掉就是OPEN-DRAIN了。这种输出的主要目的有两个:电平转换、线与。

7.线与功能主要用于有多个电路对同一信号进行拉低操作的场合,如果本电路不想拉低,就输出高电平,因为OPEN-DRAIN上面的管子被拿掉,高电平是靠外接的上拉电阻实现的。(而正常的CMOS输出级,如果出现一个输出为高另外一个为低时,等于电源短路。)

8.OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

应用中需注意:

1. 开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。

4

2. 上拉电阻R pull-up的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,因为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。push-pull是现在CMOS电路里面用得最多的输出级设计方式。

当然open drain也不是没有代价,这就是输出的驱动能力很差。输出的驱动能力很差的说法不准确,驱动能力取决于IC中的末级晶体管功率。OD只是带来上升沿的延时,因为上升沿是通过外接上拉无源电阻对负载充电的,当电阻选择小时延时就小、但功耗大,反之延时大功耗小。OPEN DRAIN提供了灵活的输出方式,但也是有代价的,如果对延时有要求,建议用下降沿输出。

电阻小延时小的前提条件是电阻选择的原则应在末级晶体管功耗允许范围内,有经验的设计者在使用逻辑芯片时,不会选择1欧姆的电阻作为上拉电阻。在脉冲的上升沿电源通过上拉无源电阻对负载充电,显然电阻越小上升时间越短,在脉冲的下降沿,除了负载通过有源晶体管放电外,电源也通过上拉电阻和导通的晶体管对地 形成通路,带来的问题是芯片的功耗和耗电问题。电阻影响上升沿,不影响下降沿。如果使用中不关心上升沿,上拉电阻就可选择尽可能的大点,以减少对地通路的 电流。如果对上升沿时间要求较高,电阻大小的选择应以芯片功耗为参考。

来源:网络

围观 469

通过本文来记录下我在Linux系统的学习经历,聊聊我为什么离不了Linux系统,同时也为那些想要尝试Linux而又有所顾忌的用户答疑解惑,下面将为你介绍我所喜欢的Linux系统,这里有一些你应该知道并为之自豪的事实。

这里你应该首先抛开Windows系统,小编也并没有说windows系统不好,只是这里单纯的谈一些Linux的优势,让你彻底的认清楚Linux系统特性,希望这些能够成为你爱上Linux的完美理由。

1、我眼中的Linux系统?

谈起Linux系统,既陌生又熟悉。几年前我从来没有听说过“系统”二字,更不要说Linux了,简直是一脸懵逼,直到老师讲到Linux系统,心里面才有一点点概念,只知道是能够运行在电脑上的高级“软件”,真正到深入学习时,才明白是一款比Windows更优秀的操作系统,而且是开源的,也许初学者误认为开源即免费,错!反过来是可以这样说的(免费即开源)。他是一种自由和开放源代码的类UNIX操作系统,任何人都可以自由使用、完全不受任何限制,以至于全世界60%的人都在使用。在现在的今天,不管你在哪,都不可能不用Linux,据统计,有超过20亿人每天都随身携带Android手机出门,他的底层就是Linux系统,现今的Linux系统已经无处不在了,接触的多了,慢慢的也就熟悉了。

目前Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等,在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上,同时还提供众多Linux发行版,供桌面用户和服务器用户选择。

2、 “投资大脑”— 学习Linux会是一个漫长的过程

当我们知道Linux一系列的优越性时,没有理由不去了解他,值得我们去深入学习,需要进一步探索Linux世界。不介意推荐一本Linux教程读物《Linux就该这么学》, 这也是最近我在读的好书,这本书中能够进一步提升对Linux系统的认知,扩展您的视野。

也正是因为这些理由,让我喜欢上了Linux系统,读完以后,希望你也能喜欢Linux、喜欢开源。

3、“劲爆”的多用户、多任务、多线程

Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰,就像手机开了助手一样,同时登陆多个qq账号,当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,但凭多用户而言就完爆其他操作系统。

4、“坚如磐石”—稳定性和高效性

你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为他继承了Unix卓越的稳定性和高效性。正因为他的稳定才获得了众多用户的青睐,因为他的高效,它的使用范围更加广阔,然而Linux还可以提供一些高可靠性的服务,比如:LNMP、虚拟化、数据库服务等等。

5、“固若金汤”—安全性和SELinux

其安全性相比其他系统也要安全很多,由于Linux拥有相当庞大的用户和开源社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁及时更新,同时还具有很强的“免疫力”特点,很少受到病毒攻击,对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。不过,利用Linux自带防火墙(iptables,firewalld)、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘,同时还有安全增强机制SElinux,在linux内核中提供强制访问控制,功能非常全面,能够很好保护系统和服务,不过很多人喜欢把它关闭,这相对安全性就不是很好了。还有Tcp_wrappers也能够提供很好的网络服务访问控制,Linux系统对于用户和文件管理权限的管理也是相当出色的,能够很好的控制权限,保证文件的机密性,也是其他系统无法比拟,所以Linux系统在一定程度上是坚不可摧的。

6、“就是这么任性”—性能优势

由于Linux要保证其稳定性,所以并没有像其它操作系统一样内核如此臃肿庞大、漏洞百出,随着Linux内核的不断更新,不断提升着优势,Linux操作系统能把服务器的硬件优势体现的淋漓尽致,因为Linux系统吸取了Unix系统近1/4世纪发展的经验,最主要的是Linux开放源代码,保证系统稳定性,更好的调用硬件功能,同时还提供了丰富的系统资源工具top,freee,df,vmstat,dmesg,iostat,sar,uptime等,方便查看资源的利用率,Linux命令大全:http://www.linuxprobe.com/chapter-02.html

7、”—我承认他有缺点

尽管Linux再优秀也会有不足的地方,这不可否认!大家认为图形界面不够友好,我并不这么认为,因为很少用到图形界面。不过目前各大Linux发行版已经对桌面已经改善很多了,比如RHEL7以后的桌面就有很大的改进。

本文来源:嵌入式资讯精选

围观 284



中断

单片机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将每隔一定时间输出一个脉冲给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。 主要作用是防止程序跑飞或死锁。

看门狗电路图

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

围观 1302

市场研究机构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

页面

订阅 RSS - MCU