MCU

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

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

微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展 元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。
  
MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(digital signal processor)数位讯号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
  
如果以FPU或DSP导入目的,一般在MCU中追加FPU、DSP整合架构,主要目的还是在考量成本下的设计方向,尤其在早期半导体元 件,SOC(System on Chip)系统单芯片与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可利用指令来进行多种运算,处理如快速快速傅立叶转换(fast Fourier transform;FFT)或有限脉冲回应(Finite impulse response;FIR)进阶运算中重要且耗资源的运算需求,甚至透过单周期的指令便能处理单一指令多重资料(Single Instruction Multiple Data;SIMD)运算需求,MCU在进行进阶数值处理方面还可获得进阶增强效益。
  
FPU/DSP不同硬件加速单元具互补作用
  
虽说整合FPU或DSP基本在架构与应用方向就不同,但实际上两者分别是针对数据运算、讯号处理对应至各式演算法应用,两者功能可以说是各有互补效用,比较 难被独立拆分。以ARM Cortex-M4来看,若仅提供DSP硬件加速处理器反而没设置FPU浮点运算加速器反而会造成应用限制,因为在Cortex-M4应用场合如果仅有数 位信号处理加速硬件支援,少了浮点运算支援,对开发需求端若碰到需要数值进阶运算加速,就会造成设计上的弹性限制,或是导致还需透过外部功能芯片支援,或 利用原有的运算资源因应数值进阶计算需求,反而会因为数值处理效能限制了Cortex-M4的应用可能性。
  
同样的状况也发生在仅有FPU而没有设置DSP的微控制器应用方案上,对DSP或是FPU应用功能是相辅相成,独立整合对于微控制器的配置并未能产生综效,反而会成为发展路径的限制。
  
再者,从新一代IoT产品发展方向,透过感测器融合(Sensor Fusion)应用方向为例,若是Sensor Fusion概念为将多感测器整合在单一系统中协同运行,系统需要高阶数值与讯号处理能力,才可以将关键数值讯号自复杂数据中提取出来。
  
至于感测器融合可以再搭配即时的调整、控制与校正处理,由DSP加上FPU协同处理达到高精密度、高效率进行撷取数据的精密分析,尤其是现有的Sensor Fusion已做到陀螺仪、加速度器、温度、压力甚至触控感测都做在同一个模组中,必须透过DSP与FPU预先筛出相对精密且兼顾处理效率的讯号撷取与预 处理的感测数据,提供相对高效的系统更具效率的感测数值处理机制。
  
DSP数位滤波应用 可提升感测讯号撷取品质
  
此外,在MCU整合FPU的另一个优势在于可在系统中善用其运算特性,例如,运用数位演算法进行撷取数值的数位滤波应用,针对处理讯号进一步以基于硬件加速 的数位演算法进行波形或数据再处理,形成一提升数据噪讯比(SNR)的便捷作法,数位滤波器还可利用演算机制优化提供不同程度大小的滤波效果,这在于微控 制器用于感测热门的心率、血液含氧量、运动数值等生理资讯,或是数位电表、智能电表等应用,解决末端数据因为杂讯或环境噪讯影响,倒置讯号失真的数据优化 回补效用,优化终端取得的讯号波形信号品质,更利于后续处理或数据使用。
  
为了优化末端应用,微控制器整合硬件加速单元也蔚为一股风潮,不 只是DSP或是FPU硬件加速单元,例如就有微控制器在架构上加入了VMU硬件加速单元,处理因应马达应用重点的三角函数数值运算需求,或是对应无线电通 讯需求整合的数据分析演算支援,与现有FPU浮点运算硬件加速功能区隔,采取协同分工的方式加速整体微控制器的应用效能。
  
有趣的是,针对不同的市场与运算需求定位,微控制器除在运算时脉进行差异区隔,以最实际的运算效能区分不同应用场合、市场切分外,整合不同应用所需的硬件加速单元也成为 产品市场定位的重要分界,例如针对穿戴式运算应用市场的微控制器,在要求功耗、感测器融合、元器件成本方面就可仅整合FPU、DSP硬件加速定位市场区 隔,在高阶的微控制器应用上,甚至有解决方案直接整合硬件绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT物联网等不同市场需 求,也有五花八门的硬件加速单元配置组合,满足不同整合需求的应用架构。
  
另一个微控制器整合DSP、FPU硬件加速单元的目的,其实加入 硬件加速单元整合而不采行外部解决方案来组构硬件加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一芯片就 能改善运算的整体效率,而在软体开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成 品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。

来源:网络(版权归原著作者所有)

围观 502

选择一款最适合您自己应用的超低功耗mcu并非易事,并不像对比数据表前面的数据那么简单。我们必须详细对比 mcu 功能,包括:断电模式、 定时系统、 事件驱动功能、 片上外设、 掉电检测与保护、 漏电流、 处理效率。还可以关闭外设时钟,注意I/O口的电平状态等措施来降低功耗。

循序渐进式的功耗优化已经不再是超低功耗mcu的游戏规则,而是“突飞猛进”模式,与功耗相关的很多指标都不断刷新记录。我们在选择合适的超低功耗mcu时要掌握必要的技巧,在应用时还需要一些设计方向与思路才能够更好的应用。

一、超低功耗mcu-的选择方法

嵌入式微控制器 (mcu)的功耗在当今电池供电应用中正变得越来越举足轻重。大多mcu 芯片厂商都提供低功耗产品,但是选择一款最适合您自己应用的产品并非易事,并不像对比数据表前面的数据那么简单。我们必须详细对比 mcu 功能,以便找到功耗最低的产品,这些功能包括:断电模式、 定时系统、 事件驱动功能、 片上外设、 掉电检测与保护、 漏电流、 处理效率。

在低功耗设计中,平均电流消耗往往决定电池寿命。例如,如果某个应用采用额定电流为 400mAh 的 Eveready 高电量 9V 1222 型电池的话,要提供一年的电池寿命其平均电流消耗必须低于 400mAh/8760h,即45.7uA。

在使 mcu 能够达到电流预算的所有功能中,断电模式最重要。低功耗 mcu 具有可提供不同级别功能的断电模式。例如,TI 超低功耗 mcu MSP430 系列产品可以提供 5 种断电模式。低功耗模式 0 (LPM0) 会关闭 CPU,但是保持其他功能正常运转。LPM1 与 LPM2 模式在禁用功能列表中增加了各种时钟功能。LPM3 是最常用的低功耗模式,只保持低频率时钟振荡器以及采用该时钟的外设运行。LPM3 通常称为实时时钟模式,因为它允许定时器采用低功耗 32768Hz 时钟源运行,电流消耗低于 1uA,同时还可定期激活系统。最后,LPM4 完全关闭器件上的包括 RAM 存储在内的所有功能,电流消耗仅 100 毫微安。

时钟系统是mcu功耗的关键。应用可以每秒多次或几百次进入与退出各种低功耗模式。进入或退出低功耗模式以及快速处理数据的功能极为重要,因为 CPU会在等待时钟稳定下来期间浪费电流。大多低功耗 mcu 都具有“即时启动”时钟,其可以在不到 10~20us 时间内为 CPU 准备就绪。但是,重要的是要明白哪些时钟是即时启动、哪些非即时启动的。某些 mcu 具有双级时钟激活功能,该功能在高频时钟稳定化过程中提供一个低频时钟(通常为32768Hz),其可以达到 1 毫秒。CPU 在大约 15us 时间内正常运行,但是运行频率较低,效率也较低。如果 CPU 只需要执行数量较少的指令的话,如:25 条,其需要 763us。CPU 低频比高频时消耗更少的电流,但是并不足于弥补处理时间的差异。相比而言,某些 mcu 在 6 微秒时间内就可以为 CPU 提供高速时钟,处理相同的 25 条指令仅需要大约 9us(6us 激活+25 条指令′0.125us指令速率),而且可以实现即时启动的高速串行通信。

另外,如果 mcu 时钟系统为外设提供多个时钟源的话,当 CPU 处于睡眠状态时外设仍然可以运行。例如,一次 A/D 转换可能需要一个高速时钟。如果 mcu 时钟系统提供独立于 CPU 的高速时钟,CPU 就可以在 A/D 转换器运行情况下进入睡眠状态,从而节省 CPU 耗流量。

事件驱动功能与时钟系统的灵活性并存。中断会使 mcu 退出低功耗模式,因此,mcu 的中断越多,其防止浪费电流的 CPU 轮询与降低功耗的灵活性就越大。轮询意味着进行与不进行功耗预算之间存在差异,因为它在等待出现事件时会浪费CPU 带宽并需要额外电流。一个好的低功耗 mcu 应具有充分的中断功能,为其所有外设提供中断,同时为外部事件提供众多外部中断。

按钮或键盘应用可以证明外部中断的优势。如果不具备中断功能,mcu 必须频繁轮询键盘或按钮,以确定其是否被按下。不仅轮询自身会消耗功率,而且控制轮询间隔也需要定时器,其会消耗附加电流。相比而言,在具备中断情况下,CPU 可以在整个过程中保持睡眠状态,只有按下按钮时才激活。

在选择低功率 mcu 时,还需要考虑外设功耗与电源管理。某些低功率 mcu 仅仅是设计时不具备低利率功能的旧架构的改进版本。而有些 mcu 在设计时即具备低功耗特性,并在其外设中内置了低功耗功能。一种特性是在需要时单独启动或关闭外设的能力,换言之,更重要的是自动启动或关闭外设的能力。 A/D 转换器就是一个例子,其在完成一次转换后可以自动关闭。另外,某些 mcu 正在引入直接存储器存取功能,其可以在无需 CPU 干预情况下自动处理数据。

大多 mcu 具有集成的掉电保护功能,当电源低于正常操作范围时其可以复位 mcu。通常会提供启动或关闭掉电保护以节省功耗的功能,但是必须在整个过程中都使掉电保护功能置于可用状态,因为掉电是不可预测的。某些 mcu 需要70uA 的电流来实现掉电保护。在只需要 45uA 平均电流的应用实例中很明显可以不考虑这些 mcu。 ----在选择低功耗 mcu 期间有时会忽视漏电流,但是,在最苛刻的低功耗应用中则必须考虑到漏电流。大多改进后的低功耗 mcu 都具有 1uA 的限定输入漏电流。在 20 输入器件中,它可能会消耗 20uA!针对低功耗设计的最新 mcu 具有最高50nA 的漏电流。

最后,我们常常会误解 mcu 处理效率。大家通常会认为 16 位 mcu 需要两倍于 8 位 mcu 的内存,但是一个 16 位架构实际上需要比 8 位架构要少一些的代码,而 16 位 mcu 一般会更快速地执行任务。例如,8 位 mcu 需要 CPU 开销来管理具有 10 位 A/D 转换数据或需要 16 位计算的应用中的数据。而且当今许多mcu 产品都具有单个工作文件或累加器,其数据必须进行传输,以便处理,因此,与基于寄存器的架构相比需要额外的 CPU 开销。

选择低功率 mcu 是一项耗时、棘手的工作。如果花费一些时间来了解可用产品选项的架构特性,我们就能够开发出能满足最苛刻功率预算的设计。

二、小结

mcu的低功耗设计是一个细致活,要养成良好的习惯,做到每添加一个功能都要重新验证一下低功耗是否符合要求,这样就可以随时随地干掉消耗功率的因素。如果把所有功能都设计好了才去考虑低功耗的问题,一个不小心,就可能要更改程序的架构——即便如此也不一定能把功耗给彻底降下去。

来源:网络(版权归原著作者所有)

围观 423

选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。
  
在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就准备微控制器选型了。这当然不是个好主意。
  
在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时遵循以下10个简单步骤可确保做出正确的选择。
  
步骤1:制作一份要求的硬件接口清单

利用大致的硬件框图制作出一份微控制器需要支持的所有外部接口清单。有两种常见的接口类型需要列出来。第一种是通信接口。
  
系统中一般会使用到USB、I2C、SPI、UART等外设。如果应用要求USB或某种形式的以太网,还需要做一个专门的备注。这些接口对微控制器需要支持多大的程序空间有很大的影响。
  
第二种接口是数字输入和输出、模拟到数字输入、PWM等。这两种类型接口将决定微控制器需要提供的引脚数量。图1显示了常见的框图例子,并列出了对I/O的要求。

步骤2:检查软件架构
  
软件架构和要求将显著影响微控制器的选择。处理负担是轻是重将决定是使用80MHz的DSP还是8MHz的8051。就像硬件一样,记录下所有要求非常重要。
  
例如,是否有算法要求浮点运算?有高频控制环路或传感器吗?并估计每个任务需要运行的时间和频度。然后推算出需要多少数量级的处理能力。运算能力的大小是确定微控制器架构和频率的最关键要求之一。
  
步骤3:选择架构
  
利用步骤1和步骤2得到的信息,一个工程师应该能够开始确定所需的架构想法。8位架构可以支撑这个应用吗?需要用16位的架构吗?或者要求32位的ARM内核?在应用和要求的软件算法之间经常推敲这些问题将最终得出一个解决方案。
  
不要忘了还有未来的可能要求和功能扩展。只是因为目前8位微控制器可以胜任当前应用并不意味着你不应为未来功能扩展甚至易用性考虑16位微控制器。
  
记住,微控制器选型是一个反复的过程。你可能在这个步骤中选择了一个16位的器件,但在后面的步骤中发现32位ARM器件会更好。这个步骤只是让工程师有一个正确的考虑方向。
  
步骤4:确定内存需求
  
闪存(flash)和RAM是任何微控制器的两个非常关键的组件。确保程序空间或变量空间的充足无疑具有最高优先级。选择一个远多于足够容量的闪存和RAM通常是很容易做到的。
  
不要等到设计末尾时才发现你需要110%的空间或者有些功能需要削减,这可不是闹着玩的。实际上,你可以在开始时选择一个具有较大空间的器件,后面再转到同一芯片系统中空间更小些的器件。
  
借助软件架构和应用中包含的通信外设,工程师可以估计出该应用需要多大的闪存和RAM空间。不要忘了预留足够空间给扩展功能和新的版本!这将解决未来可能遇到的许多头疼问题。
  
步骤5:开始寻找微控制器
  
既然对微控制器所需功能有了更好的想法,现在就可以开始寻找合适的微控制器了!像艾睿、安富利、富昌电子等微控制器供应商是寻找微控制器的一个很好的起点场所。
  
与这些供应商的现场应用工程师讨论你的应用和要求,通常他们会向你推荐一款技术领先又能满足要求的新器件。不过要记住,他们可能有推销某个系列微控制器的冲动!
  
第二个最佳场所是你已经熟悉的芯片供应商。例如,如果你过去用过Microchip的器件,并有丰富的使用经验,那就开启他们的网站吧。
  
大多数芯片供应商都有一个搜索引擎,允许输入你的外设组合、I/O和功耗要求,搜索引擎会逐渐缩小器件范围,最终找出匹配要求的器件清单来。工程师随即可以在这个清单中仔细选择出最合适的一款微控制器。
  
步骤6:检查价格和功耗约束
  
到这时,选型过程应该得出许多潜在的候选器件了。这时应认真检查它们的功耗要求和价格。如果器件需要从电池和移动设备供电,那么确保器件低功耗绝对是优先考虑的因素。
  
如果不能满足功耗要求,那就按清单逐一向下排查,直到你选出一些合适的来。同时不要忘了检查处理器的单价。虽然许多器件在大批量采购时会接近1美元,但如果它是极其专用或高端的处理机,那么价格可能很重要。千万不要忘了这一关键要素。
  
步骤7:检查器件的可用性
  
至此你手头就有了一份潜在器件清单,接下来需要开始检查各个器件的可用程度如何。一些重要事项需要记住,比如器件的交货期是多少?是否在多个分销商那里都有备货,或者需要6至12周的交货时间?你对可用性有什么要求?你不希望拿到一份大定单却必须干等3个月才能拿到货吧。
  
接下来的问题是器件有多新,是否能够满足你的产品生命周期需要。如果你的产品生命周期是10年,那么你需要找到一种制造商保证在10年后仍在生产的器件。
  
步骤8:选择开发套件
  
选择一种新的微控制器的一个重要步骤是找到一款配套的开发套件,并学习控制器的内部工作原理。一旦工程师热衷于某种器件,他们应寻找有什么可用的开发套件。
  
如果找不到能用的开发套件,那么这种器件很可能不是一个好选择,工程师应该重新退回去寻找一款更好的器件。目前大多数开发套件不到100美元。支付比这个价格高的费用(除非这种套件能适应多种处理器模块)实在有些冤枉。换一种器件也许是更好的选择。
  
步骤9:调查编译器和工具
  
开发套件的选择基本上限制死了微控制器的选型。最后一个需要考虑的因素是检查可用的编译器和工具。大多数微控制器在编译器、例程代码和调试工具方面有许多选择。
  
重要的是确保所有必要的工具都可用于这种器件。如果没有得心应手的工具,开发过程将变得异常艰苦且代价高昂。
  
步骤10:开始试验
  
即使选定了微控制器,事情也不是说一成不变了。通常拿到开发套件的时间远早于第一个硬件原型建立的时间。要充分利用开发套件搭建测试电路、并将它们连接到微控制器。
  
选择高风险的器件,设法让它们与开发套件一起工作。随后你可能会发现,你认为能很好工作的器件存在一些不可预见的问题,然后被迫选择另外一种微控制器。
  
在任何情况下,早期的试验将确保你做出正确的选择,如果有必要做出改变,影响将降至最小!

围观 376

1、引言 

随着集成电路集成度的提高,越来越多的元件集成到芯片上,电路功能变得复杂,工作电压也在降低。当一个或多个电路里产生的信号或噪声与同一个芯片内另一个电路的运行彼此干扰时,就产生了芯片内的EMC问题,最为常见的就是SSN(Simultaneous Switch Noise,同时开关噪声)和Crosstalk(串音),它们都会给芯片正常工作带来影响。由于集成电路通过高速脉冲数字信号进行工作,工作频率越高产生的电磁干扰频谱越宽,越容易引起对外辐射的电磁兼容方面问题。基于以上情况,集成电路本身的电磁干扰(EMI)与抗扰度(EMS)问题已成为集成电路设计与制造关注的课题。

集成电路电磁兼容不仅涉及集成电路电磁干扰与抗扰度的设计和测试方法,而且有必要与集成电路的应用相结合。针对汽车电子领域来讲,将对整车级、零部件级的电磁兼容要求强制性标准,结合到集成电路的设计中,才能使电路更易于设计出符合标准的最终产品。作为电子控制系统里面最为关键的单元——微控制器(MCU),其EMC性能的好坏直接影响各个模块与系统的控制功能。

本文在汽车电子MCU 中采用抗EMI的设计方法,依据IEC61967传导测试标准,对汽车电子MCU进行电磁干扰的测试。

2、汽车电子MCU设计方法

下面介绍在汽车电子MCU中使用的可行性设计方法以及其他几种抗EMI设计技术。

2.1 时钟电路设计
  
由于时钟电路产生的时钟信号一般都是周期信号,其频谱是离散的,离散谱的能量集中在有限的频率上。又由于系统中各个部分的时钟信号通常由同一时钟分频、倍频得到,它们的谱线之间也是倍频关系,重叠起来进而增大辐射的幅值,因此说时钟电路是一个非常大的污染源。

针对汽车电子MCU 数字前端设计,在抗EMI方面采用门控时钟的方法改进。任何时钟在不需要时都应关闭,减低工作时钟引起的电磁发射问题。根据A8128(汽车电子MCU的型号)芯片系统功能设计要求,采用Run、Idle、Stop和Debug四种工作模式,在每一种工作模式下针对系统时钟、外设模块时钟进行适当门控。此外,还有几种在时钟方面常见的抗EMI的设计方法,包括:

①降低工作频率
  
MCU的工作时钟应该设定为满足性能要求所需的最低频率。从下面的测试结果可以看出,一个MCU的运行频率由80MHz变为10MHz,可以使频谱宽频范围内的干扰峰值产生几十dBμV 的衰减,而且能够有效的降低功耗。

②异步设计
  
异步电路工作没有锁定一个固有频率,电磁辐射大范围均匀分布而不会集中在特定的窄带频谱中。这一关键本质特征决定了即使异步电路使用大量的有源门电路,它所产生的电磁发射也要比同步电路小。

③扩展频谱
  
扩展频谱时钟是一项能够减小辐射测量值的技术,这种技术对时钟频率进行1%~2%的调制,扩散谐波分量,在CISPR16或FCC发射测试中峰值较低,但这并非真正减小瞬时发射功率。因此,对一些快速反应设备仍可能产生同样的干扰。扩展频谱时钟不能应用于要求严格的时间通信网络中,比如FDD、以太网、光纤等。

2.2 IO端口设计
  
在汽车电子MCU 的输入输出端口设计中,也加入了抗EMI方案,包括翻转速率(slew rate control)和驱动强度(drive strength)控制方法。通过在所有通用P口引入可配置的翻转速率和驱动强度寄存器,在需要的时候打开相应功能。翻转速率有打开和关闭两种选择,打开后能够有效地平缓上升沿或者下降沿,降低瞬态电流,进而控制芯片产生的电磁干扰强度。驱动强度有强驱动电流和弱驱动电流两种选择,在能够满足工作驱动强度的情况下,选择弱电流驱动会更好的控制电磁干扰现象。

另外,基于GSMC 180nm工艺库,选择具有施密特触发特性的IO,可以有效地平缓输入信号中带进来的尖峰或者噪声信号等,对芯片的电磁抗扰度有所帮助。

3、汽车电子MCU测试方案

IEC61967标准是国际电工委员会制定的有关集成电路电磁发射的标准,用于频率为150kHz到1GHz的集成电路电磁发射测试。标准中涉及到辐射和传导两类测试方法,由于传导方式的电磁干扰带给芯片应用上的影响更大一些,本次试验选取IEC61967-4直接耦合法进行测试。该方法又分为1Ω测试法和150Ω测试法,1Ω测试法用来测试接地引脚上的总干扰电流,150Ω测试法用来测试输出端口的干扰电压。

在测试时,需要在进行测试的电路中接入串联电阻为1Ω的电流探针(探针即为1Ω测试网络,已经集成在EMC测试板的芯片地端与PCB地平面之间),49Ω串联放置为了形成50Ω匹配,用接收机测量射频电流流经该电阻时产生的射频电压,所测得的电压应为所有流回到集成电路的射频电流在电流探头上产生电压的总和,测得的电压值可以换算为流过探针的电流,测试环境图如图1所示。

图1 1Ω测试环境

在150Ω测试中,集成电路的引脚通过标准规定的匹配网络接到测试接收机,通过150Ω探针(探针即为150Ω测试网络,已经集成在EMC测试板上)可以测量SSN在输入输出端口和电源两类引脚上的传导干扰,通过计算可以将接收机测量的电压转换为噪声电压幅值,测试环境图如图2所示。

图2 150Ω测试环境

下面是针对EMI进行的1Ω和150Ω测试步骤,包括测试前准备工作以及测试数据分析等。

3.1 测试前装备工作
  
①环境温度
  
本次实验集中在晚间进行,现场温度控制在23±2℃范围内,符合标准要求。
  
②环境噪声电平
  
将DUT(被测设备)固定在实验台上且为断电状态,用EMI接收机测量残留噪声。本次实验环境噪声电平在可接受的测试要求内,详情请参看图6。
  
③其他环境条件
  
所有其他可能影响测试结果的环境条件,例如环境湿度。本次实验所测得的相对湿度为45%RH左右。
  
④确认工作状态
  
给DUT供电并检查确认IC处于正常的工作状态,同时在实验时保持周围的测试条件不变。

3.2 1Ω测试
  
(1)将SMA连接线一端连接到测试板,另一端连接到接收机(安捷伦N9030,内置N141A电磁兼容测试软件),将EMI接收机的测量频率范围设置为150kHz到1GHz,根据标准对测试操作的要求,分成150kHz~30MHz(RBW 为9kHz)和30MHz~1GHz(RBW 为120kHz)两段。下面测试图中绿色边框范围内的是150kHz~30MHz,范围外的是30MHz~1GHz。

结合汽车电子MCU 端口特性以及标准要求,将接地端口与1Ω网络相连,再与SMA口相接,引入EMI接收机进行监控,原理图如图3、图4所示。

图3 芯片的地网络引脚

图4 1Ω网络

(2)选取可能影响EMC特性的因素,在时钟上分别测试10MHz、20MHz以及77MHz频率下电磁干扰大小数值,在测试功能上选取模数转换程序ADC;

(3)测量每一段频谱内可能出现的干扰,提取各个谐波的包络值,接收机的电压可以换算为流过探针的电流。测试仪器以及EMC测试板如图5所示;

图5 实际测试环境

(4)在对每个频率点测试的时候要进行多次测量,以便排除偶然因素的干扰。下面是各个测试情况的说明;

①时钟采用外部晶振10MHz,烧录SRAM 中的程序为ADC。图6左侧为未上电时的环境噪声信号,右侧为上电但未运行程序的测量结果。

图6 断电vs.上电

通过对比可以得出上电之后在整个频谱范围内干扰强度变大,时钟的固定周期将使电磁辐射集中在时钟基波和谐波附近很窄的频谱范围内。根据傅里叶级数展开公式可以得出,在时钟倍频处的频点其干扰值也越大,所以在10MHz、20MHz等倍频点处的现象更明显,为了进一步对比,运行ADC程序,分别在10MHz、20MHz以及77MHz时钟下进行测试,比较不同时钟接地引脚总干扰电流大小,测试结果如图7、图8、图9所示。

图7 10MHz—ADC测试图

图8 20MHz—ADC测试图

图9 77MHz—ADC测试图

图10 10/20/77MHz—ADC测试数据整理

图7、图8、图9分别是10MHz、20MHz和77MHz的测试图,图10是整理后的数据。通过对比可以得出,频谱大致集中在100MHz以内,在对应工作时钟的主频点处干扰值最大,10MHz、20MHz情况下在相应倍频点(如40MHz、60MHz等频点)附近的干扰值也比较集中。

提取数据得到10 MHz时峰值点为9.999MHz(62.643dBμV),20 MHz 时的峰值点为20.002MHz(61.692dBμV),77MHz时的峰值点为19.264MHz(48.049dBμV)以及77.042MHz(47.316dBμV)。可以看出,77MHz时干扰强度和密度反而要弱于20MHz,可能是由于77MHz是MCU工作的极限时钟,此时工作性能受到一定影响,导致测试的结果有所不同。

③由于汽车电子MCU的工作时钟可以选择外部晶振或者内部PLL倍频,所以要对两种情况分别测试,以便比较是否有差别。运行ADC程序后的测试结果如图11所示。

图11 PLL vs.外部晶振(10MHz)

从图11中可以看出,在频谱范围内各个峰值点的分布大致相同,整个频谱范围内没有明显差异,MCU通过外部晶振或PLL倍频两种方式测得的结果基本一致,时钟源选择上不会对芯片的电磁干扰强度带来影响。

3.3 150Ω测试
  
(1)设备装置连接同1Ω测试法的步骤①;
  
(2)根据芯片电源类型,电源分为4路,分别是VDD1(数字IO 供电的5V 电源信号)、VDD2(为ADC和PLL供电的LDO 的5V 电压)、VDD3(数字逻辑LDO的5V电压输入)和VDD4(Flash的5V电压输入)。可单独对每一路电源的干扰噪声进行捕捉,连接方式与1Ω 测试法步骤②相同,如图12所示;

图12 VDD连接150Ω网络145

(3)根据汽车电子MCU应用特点,选取最为典型的PWM、CAN 程序,为了方便以后对众多引脚进行单独测量,将P0、P1、P2(P3未涉及到外设功能复用)端口共24个引脚进行了开关控制,再通过150Ω耦合网络连接到EMI接收机,图13是P0端口的电路原理图,P1和P2的原理图同P0。

图13 IO-P0连接150Ω网络

(4)重复测试多次,得到较多测试样本,经过整理,下面是各个测试情况的说明。
  
①从电源端口结果来看,区别很小,下面以VDD1为例进行分析说明。VDD1测试选取了ADC和counter(数字计数器)的程序,以比较不同类别的程序对数字供电是否有影响,测试结果如图14、图15所示。

在10MHz和20MHz时钟上对比,ADC最高峰值分别为35.827dBμV、43.517dBμV;counter的最高峰值为35.899dBμV、43.271dBμV。可以得出频率越高,干扰强度越大。但就两类程序横向对比来看,结果基本上一致。另外还发现60~300MHz和550~650MHz两处集中的干扰频谱,可见电源处的干扰在高频附近比较明显。

②PWM 功能测试
  
双通道模式下,在不同占空比和周期大小情况下,测试对应P口引脚处传导发射强度的大小,测试结果如图16、图17所示。

从图16中的干扰密度可看出时钟对电磁干扰影响程度。在图17中,由于period和duty较长,测试结果相差不大,此时时钟频率变成次要因素,主要因素取决于输出引脚处高低电平变化周期长短。

③CAN功能测试
  
运行Loopback(回路模式)程序,在不同时钟频率下进行比较,测试结果如图18、图19所示。

从图16~19中观察,随着时钟频率变大,TX和RX端口的传导辐射强度也变大。对于RX端口,10/40MHz频点附近的干扰密度比较大,且在40MHz时候现象更明显,捕捉到连续三个频点(图18右侧标注),分别是39.060 MHz(71.063dBμV)、39.360MHz(67.447dBμV)、40.020MHz(39.171dBμV),两个时钟下的峰值都在70~85dBμV 之间,但一般都在10MHz以下,应该是受低频某一频点的影响较明显。

对于TX端口,10/40MHz频点附近的干扰密度没有RX明显,峰值也都在70~85dBμV 之间,且发生在10MHz以下,和RX的特点大致相同。

4、测试结果分析
  
从测试数据结果可以总结出以下几点:
  
①在时钟频率上,从10 MHz到40 MHz、77MHz,干扰强度或是密度在整体上都会增加,可以是一小段频谱或者是整个频谱范围内,这与测试对象关系比较大。分析原因不难发现,由于时钟电路产生的时钟信号一般都是周期信号,其频谱是离散的,离散谱的能量集中在有限的频率上,又由于系统中各个部分的时钟信号通常由同一时钟分频、倍频得到,它们的谱线之间也是倍频关系,会重叠起来进而增大辐射的幅值。

②在程序烧写方式上,外部晶振或PLL倍频两种方式测得的结果基本一致,整个频谱范围内没有明显差异,时钟源选择上不会对芯片的电磁干扰强度带来影响。

③从VDD1测试结果来看,除了得出频率越高,干扰强度越大之外,还发现出现干扰的频谱范围分别在60~300MHz和550~650MHz两处,可见电源处的干扰在高频附近比较明显。

④对于PWM 功能,通过配置输出波形周期和占空比大小,会导致在不同时钟下产生的电磁干扰强度有所差异。由于双通道模式下寄存器为16bit(原单通道模式为8bit),此时周期和占空比可配置的数值变大,PWM 波输出引脚处的高低电平翻转周期就取决于周期和占空比的设置,与时钟的关系变得没有之前如此紧密,时钟变成了次要因素。由此建议在满足功能要求的前提下,使用PWM 功能时尽量将周期和占空比数值变得大一些,这样会较好地改进EMC性能;

⑤对于CAN 总线来讲,通过10 MHz和40MHz时钟对比,当合理地降低时钟工作频率,会使一大段频谱范围内的干扰值降低,从整体上较好的控制EMI带来的影响。

5、 结束语
  
对于微电子行业来说,芯片级电磁兼容性的设计与测试已经成为一个非常重要的主题。实际上,如果不对集成电路电磁辐射及抗扰度方面进行深入的研究,就很难满足电子设备电磁兼容性方面的需要。本文通过对设计方法的引入,并进一步通过测试方案去总结归纳影响电磁发射的因素和原因,从而间接证明了设计方法的必要性和重要性。

围观 446

汽车电子行业是将电子信息技术应用到汽车所形成的新兴行业。从广义上讲,汽车电子从基础元器件、电子零部件、车载电子整机、机电一体化的电子控制系统(ECU)、整车分布式电子控制系统、与汽车电子有关的车外电子系统等软硬件。从系统看包括零部件系统、车内、车际网络。

一、概述

近二三十年来,随着电子信息技术的快速发展和汽车制造业的不断变革,汽车电子技术的应用和创新极大地推动了汽车工业的进步与发展,对提高汽车的动力性、经济性、安全性,改善汽车行驶稳定性、舒适性,降低汽车排放污染、燃料消耗起到了非常关键的作用,同时也使汽车具备了娱乐、办公和通信等丰富功能。

现代汽车电子集电子技术、汽车技术、信息技术、计算机技术和网络技术等于一体,包括基础技术层、电控系统层和人车环境交互层三个层面,经历了分立电子元器件控制、部件独立控制及智能化、网络化集成控制应用三个发展阶段。目前汽车电子产品可以分为电子控制系统和车载电子装置两大类,其中电子控制系统性能直接决定着汽车整车的性能。

随着汽车电子技术的发展,越来越多的ECU控制单元被应用在汽车中,网络总线系统作为汽车控制网络平台,所有的ECU控制单元和车载电器都将逐步搭载到汽车网络平台上,以达到数据信息共享、实现全车智能化控制。在汽车朝着综合集成控制发展的趋势下,车载网络总线系统作为汽车全车控制网络及通信平台,对汽车全车通信、智能化控制及提升整车性能、安全性、操控性愈加至关重要。

二、汽车电子技术的发展情况

(一)行业现状

市场情况世界汽车电子产业的发展与汽车工业的发展密切相关,美国、欧洲、日本是全球传统的主要汽车市场,也是汽车电子产业的技术领先者,掌握着国际汽车电子行业的核心技术与市场发展优势。目前全球汽车电子产品主要市场仍集中于欧洲、北美、日本等地区,但是随着汽车制造产业向新兴国家和地区的逐步转移,中国、印度、南美等发展中国家和地区汽车电子新兴市场正快速发展。

当前新能源汽车中汽车电子成本占比已经达到47%,随着新能源汽车产量逐渐增加,汽车电子单车产值仍将持续提升。在不同档次和科技含量的汽车中,汽车电子在整车成本中的占比情况如下:

(二)行业特点

1、重视安全、环保和节能

汽车电子的应用是解决安全、环保、节能的主要技术手段,例如:在节能方面,世界主要汽车生产国开始研究和应用电子模块控制的混合动力轿车、氢燃料电池混合动力轿车及纯电动轿车等。

2、传感器性能不断提高、数量不断增加

由于汽车电子控制系统的多样化,使其所需要的传感器种类、数量不断增加,并不断研制出新型、高精度、高可靠性、低成本和智能化的传感器。在性能上,具有较强的抵抗外部电磁干扰的能力,保证传感器信号的质量不受影响,在特别严酷的使用条件下能保持较高的精度;在结构上,具有结构紧凑、安装方便的优点,从而免受机械特性的影响。

3、车用微处理器不断升级换代

随着汽车电子占整车比重不断提高,MCU(微控制单元)在汽车领域的应用将超过家电和通讯领域使用的数量,成为世界上最大的MCU应用领域。

4、数据总线技术应用日益普及

大量数据的快速交换、高可靠性及廉价性是对汽车电子网络系统的要求。汽车内部网络的构成主要依靠总线传输技术,其优点为:减少线束的数量和线束的容积,可提高电子系统的可靠性和可维护性;采用通用传感器达到数据共享的目的;通过系统软件实现系统功能的变化,以改善系统的灵活性等。

5、智能汽车及智能交通系统(ITS)开始应用

以卫星通信、移动通信、计算机技术为依托进行车载电子产品的开发和应用,实现计算机、通讯和消费类电子产品“3C”整合。如:车辆定位、自主导航、无线通讯、语音识别、出行信息通报、电子防撞产品、车路通讯以及多媒体车载终端等。

6、新技术在汽车电子产品中不断得到应用

光纤在汽车信号传输中的应用、新的控制理论和方法的大量应用、蓝牙技术等都是汽车电子技术的发展趋势。
国际汽车巨头纷纷将更多的电子信息技术设备装备到整车中,而电子信息技术设备供应商也纷纷将下一个经济增长点定位在汽车电子行业上。摩托罗拉公司认为,汽车技术发展至今,有70%的创新来源于汽车电子。汽车电子专业厂商保持快速的增长势头,而经营电子产品的跨国公司也纷纷涉足汽车电子行业,使汽车电子成为相对独立的新兴行业。

(三)行业细分

从用途来看,汽车电子可以分为四大类:动力控制系统、安全控制系统、通讯娱乐系统与车身电子系统等。汽车行业随着信息技术与消费电子等应用逐步渗透其中,传统汽车行业或将面临来自移动互联网、消费电子行业等新型行业的冲击。

1、动力控制系统

主要指基于汽车发动机、变速箱等动力系统的传感器、控制系统等,通常用于进行发动机燃烧控制,汽车尾气循环处理(如废气再循环EGR),自动变速箱控制(自动/手自一体)。

2、安全控制系统

分为主动安全系统与被动安全系统,主动安全控制系统是以提高汽车的主动安全性能为主要目标的控制系统,被动安全控制系统是使车辆在事故发生时大幅减低碰撞强度的控制系统。主动安全系统包括汽车安全驾驶辅助系统、防抱死制动系统ABS、制动辅助系统BAS、驱动防滑装置ASR、电子制动辅助系统EBA、电子稳定程序ESP、车辆偏离警告系统、碰撞规避系统、胎压监测系统TPMS、自动驾驶公路系统等。被动安全系统包括安全气囊、预警式安全带等。

3、通讯娱乐系统

车载信息系统(运用计算机、卫星定位、通讯、控制等技术来提供安全、环保及舒适性功能和服务的汽车电子设备)、车载音响、车载电视、车载导航(GPS)等。

4、车身电子系统

转向控制、仪表仪盘、空调控制系统、汽车防盗系统、中控锁等。

通讯娱乐系统与车载电子系统开始步入增长期。根据德勤报告的数据显示,预计2012-2016E通讯娱乐系统年复合增长率将达10.8%,为各细分行业中年复合增长率最快,安全控制系统年复合增长率将为10.2%,位居第二。

围观 481

低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。
  
平时我们在做产品的时候,基本的功能实现很简单,但只要涉及低功耗的问题就比较棘手了,比如某些可以低到微安级的MCU,而自己设计的低功耗怎么测都是毫安级的,电流竟然能够高出标准几百到上千倍,遇到这种情况千万不要怕,只要认真你就赢了。下边咱们仔细分析一下这其中的原因。
  
第一条:掐断外设命脉——关闭外设时钟
  
先说最直观的,也是工程师都比较注意的方面,就是关闭MCU的外设时钟,对于现在市面上出现的大多数的MCU,其外设模块都对应着一个时钟开关。只需要打开这个外设的时钟,就可以正常的使用这个外设了,当然,此外设也就会产生相应的功耗;反之,如果想要让这个外设不产生功耗,只需关闭它的时钟即可。
  
第二条:让工作节奏慢下来——时钟不要倍频
  
除了外设模块功率消耗之外,还有一个功耗大户需要注意一下,这就是PLL和FLL模块。PLL和FLL主要是用来对原始的时钟信号进行倍频操作,从而提高系统的整体时钟,相应的,其功耗也会被提上去。所以在进入低功耗之前,需要切换是种模式,旁路掉PLL和FLL模块,从而尽可能的降低MCU的功耗,等到MCU唤醒之后再把时钟切换回去。
  


  
第三条:围堵涓涓细流——注意I/O口的电平状态
  
如果认为只要关闭外设时钟就能够保证外设不再耗电,那么你就太天真了。如果IO口没有做好处理的话,它就会在暗地里偷走功耗,而你却浑然不知。具体原因是这样的,一般的IO的内部或者外部都会有上下拉电阻,举个例子,如下图所示,假如某个IO口有个10KΩ的上拉电阻,把引脚拉到3.3V,然而当MCU进入低功耗模式的时候,此IO口被设置成输出低电平,根据欧姆定律,此引脚就会消耗3.3V/10K=0.33mA的电流,假如有四、五个这样的IO口,那么几个mA就贴进去了,太可惜了。所以在进入低功耗之前,请逐个检查IO口的状态:
  
如果此IO口带上拉,请设置为高电平输出或者高阻态输入;
  
如果此IO口带下拉,请设置为低电平输出或者高阻态输入;
  

  
总之一句话,不要把上好的电流浪费在产生热量的功能上,咱可不靠这点温度去暖手。
  
第四条:睦邻友好合作——注意I/O与外设IC的统筹
  
IO口的上下拉电阻消耗电流这一因素相对比较明显,下边咱来说一个不明显的因素:IO口与外部IC相连时的电流消耗。假如某个IO口自带上拉,而此与IO相连的IC引脚偏偏是自带下拉的,那么无论这个引脚处于什么样的电平输出,都不可避免的产生一定的电流消耗。所以凡是遇见这一类的情况,首先需要阅读外设IC的手册,确定好此引脚的的状态,做到心中有数;然后在控制MCU睡眠之前,设置好MCU的IO口的上下拉模式及输入输出状态,要保证一丝儿电流都不要被它消耗掉。
  
第五条:断开调试器连接,不要被假象所迷惑
  
还有一类比较奇特,检测出来的电流消耗很大,可实际结果是自己杞人忧天,什么原因呢?是因为在测试功耗的时候MCU还连接着调试器呢!这时候大部分电流就会被调试器给掳走,平白无故的让工程师产生极度郁闷的心情。所以在测低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
  
总结
  
MCU的低功耗设计是一个细致活,要养成良好的习惯,做到每添加一个功能都要重新验证一下低功耗是否符合要求,这样就可以随时随地干掉消耗功率的因素。如果把所有功能都设计好了才去考虑低功耗的问题,一个不小心,就可能要更改程序的架构——即便如此也不一定能把功耗给彻底降下去。
围观 284

新一代年轻消费族群对于生活品质的需求逐渐提高,不仅小米要发展智能家居,中兴通讯也在于近日在北京揭晓智"智能家居"将成为市场主流,而智能家居的崛起也必然引爆MCU(Micro controller Unit,微控制器)的需求量迅速攀升,众多MCU厂商可望迎来庞大商机。

智能家居所需要的IC芯片与物联网主流芯片基本上是一致的,物联网的数据处理、加工、传输都离不开MCU,在物联网(IoT)发展趋势之下,节能、安全感测、3C产品、医疗及汽车电子应用等,均已成为MCU的热门应用领域。

MCU为未来每一个物联网设备的关键组件之一,也是数百亿个物联网终端节点的布建基础,负责智能控制、网路连结、无线传输、人机界面互动系统,举凡玩具、家电、汽车等都不难见其踪迹。

工业物联网、穿戴式装置和智能家居为目前微控制器(MCU)市场的主要驱动力,而32位更是当前驱动MCU成长的重要领域,尽管8位仍有一席之地,但随着物联网对数据处理能力要求越来越高,32位MCU势必将成为市场上主流。

事实上,32位MCU已经在电机及变频控制、安防监控、指纹辨识、触控按键等应用发挥重要的作用,以2015年统计数据来看,去年全年全球32位MCU的出货量,已经超过4/8/16位MCU的总和,可见得随着家电产品智能化水平的提高,以及人机接口和讯息交互的需求上升,32位高性能应用已经有显着的优势。

不可否认的,未来MCU市场成长动能来源将倚靠「智能家居」的带动,全球最大市调机构GFK就披露,全球7个国家的7000个消费者中,有50%消费者认为智能家居会对他们生活造成影响,而这些人中又以中国消费者占比最高,这意味着中国有越来越多家庭对于高价智能家电日益青睐,未来普通家电产品和智能家电的价差可望逐渐缩小,这个市场将有不容小觑的成长爆发力。

根据研究机构Researchand Markets报告显示,未来五年全球智能家居设备和服务市场将每年以8%~10%的速度增长,随着中国经济的稳步发展,预计2016年、2017年中国的智能家居市场规模复合增长率将超过20%,将为MCU带来庞大的市场需求。

随着物联网的飞速发展,使得智能家居得以同步成长,当前有越来越多的企业正加大努力进入新的市场领域,国外大厂像是高通、NXP、ARM、MarWell、Atmel和意法半导体等,国内厂商包括联发科、灵动微、新唐等皆积极抢攻MCU市场大饼。

围观 349

选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。

在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就准备微控制器选型了。这当然不是个好主意。

在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时遵循以下10个简单步骤可确保做出正确的选择。

步骤1:制作一份要求的硬件接口清单

利用大致的硬件框图制作出一份微控制器需要支持的所有外部接口清单。有两种常见的接口类型需要列出来。第一种是通信接口。

系统中一般会使用到USB、I2C、SPI、UART等外设。如果应用要求USB或某种形式的以太网,还需要做一个专门的备注。这些接口对微控制器需要支持多大的程序空间有很大的影响。

第二种接口是数字输入和输出、模拟到数字输入、PWM等。这两种类型接口将决定微控制器需要提供的引脚数量。图1显示了常见的框图例子,并列出了对I/O的要求。


图1:硬件功能清单

步骤2:检查软件架构

软件架构和要求将显著影响微控制器的选择。处理负担是轻是重将决定是使用80MHz的DSP还是8MHz的8051。就像硬件一样,记录下所有要求非常重要。

例如,是否有算法要求浮点运算?有高频控制环路或传感器吗?并估计每个任务需要运行的时间和频度。然后推算出需要多少数量级的处理能力。运算能力的大小是确定微控制器架构和频率的最关键要求之一。

步骤3:选择架构

利用步骤1和步骤2得到的信息,一个工程师应该能够开始确定所需的架构想法。8位架构可以支撑这个应用吗?需要用16位的架构吗?或者要求32位的ARM内核?在应用和要求的软件算法之间经常推敲这些问题将最终得出一个解决方案。

不要忘了还有未来的可能要求和功能扩展。只是因为目前8位微控制器可以胜任当前应用并不意味着你不应为未来功能扩展甚至易用性考虑16位微控制器。

记住,微控制器选型是一个反复的过程。你可能在这个步骤中选择了一个16位的器件,但在后面的步骤中发现32位ARM器件会更好。这个步骤只是让工程师有一个正确的考虑方向。

步骤4:确定内存需求

闪存(flash)和RAM是任何微控制器的两个非常关键的组件。确保程序空间或变量空间的充足无疑具有最高优先级。选择一个远多于足够容量的闪存和RAM通常是很容易做到的。

不要等到设计末尾时才发现你需要110%的空间或者有些功能需要削减,这可不是闹着玩的。实际上,你可以在开始时选择一个具有较大空间的器件,后面再转到同一芯片系统中空间更小些的器件。

借助软件架构和应用中包含的通信外设,工程师可以估计出该应用需要多大的闪存和RAM空间。不要忘了预留足够空间给扩展功能和新的版本!这将解决未来可能遇到的许多头疼问题。

步骤5:开始寻找微控制器

既然对微控制器所需功能有了更好的想法,现在就可以开始寻找合适的微控制器了!像艾睿、安富利、富昌电子等微控制器供应商是寻找微控制器的一个很好的起点场所。

与这些供应商的现场应用工程师讨论你的应用和要求,通常他们会向你推荐一款技术领先又能满足要求的新器件。不过要记住,他们可能有推销某个系列微控制器的冲动!

第二个最佳场所是你已经熟悉的芯片供应商。例如,如果你过去用过灵动微电子的器件,并有丰富的使用经验,那就开启他们的网站吧。

大多数芯片供应商都有一个搜索引擎,允许输入你的外设组合、I/O和功耗要求,搜索引擎会逐渐缩小器件范围,最终找出匹配要求的器件清单来。工程师随即可以在这个清单中仔细选择出最合适的一款微控制器。

步骤6:检查价格和功耗约束

到这时,选型过程应该得出许多潜在的候选器件了。这时应认真检查它们的功耗要求和价格。如果器件需要从电池和移动设备供电,那么确保器件低功耗绝对是优先考虑的因素。

如果不能满足功耗要求,那就按清单逐一向下排查,直到你选出一些合适的来。同时不要忘了检查处理器的单价。虽然许多器件在大批量采购时会接近1美元,但如果它是极其专用或高端的处理机,那么价格可能很重要。千万不要忘了这一关键要素。

步骤7:检查器件的可用性

至此你手头就有了一份潜在器件清单,接下来需要开始检查各个器件的可用程度如何。一些重要事项需要记住,比如器件的交货期是多少?是否在多个分销商那里都有备货,或者需要6至12周的交货时间?你对可用性有什么要求?你不希望拿到一份大定单却必须干等3个月才能拿到货吧。

接下来的问题是器件有多新,是否能够满足你的产品生命周期需要。如果你的产品生命周期是10年,那么你需要找到一种制造商保证在10年后仍在生产的器件。

步骤8:选择开发套件

选择一种新的微控制器的一个重要步骤是找到一款配套的开发套件,并学习控制器的内部工作原理。一旦工程师热衷于某种器件,他们应寻找有什么可用的开发套件。

如果找不到能用的开发套件,那么这种器件很可能不是一个好选择,工程师应该重新退回去寻找一款更好的器件。目前大多数开发套件不到100美元。支付比这个价格高的费用(除非这种套件能适应多种处理器模块)实在有些冤枉。换一种器件也许是更好的选择。

步骤9:调查编译器和工具

开发套件的选择基本上限制死了微控制器的选型。最后一个需要考虑的因素是检查可用的编译器和工具。大多数微控制器在编译器、例程代码和调试工具方面有许多选择。

重要的是确保所有必要的工具都可用于这种器件。如果没有得心应手的工具,开发过程将变得异常艰苦且代价高昂。

步骤10:开始试验

即使选定了微控制器,事情也不是说一成不变了。通常拿到开发套件的时间远早于第一个硬件原型建立的时间。要充分利用开发套件搭建测试电路、并将它们连接到微控制器。

选择高风险的器件,设法让它们与开发套件一起工作。随后你可能会发现,你认为能很好工作的器件存在一些不可预见的问题,然后被迫选择另外一种微控制器。

在任何情况下,早期的试验将确保你做出正确的选择,如果有必要做出改变,影响将降至最小!

围观 362

原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题:

我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下:

static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */

ISR_TIMER() /* 定时中断服务函数 */
{
++__jiffies;
/* 其它代码...: */
}

对于其中的__jiffies变量,就是全局时间基准,程序中其它地方都会对其进行原子读操作来判断时间,典型的接口实现如下:

unsigned long get_jiffies(void)
{
unsigned long tmp;

CLOCK_IRQ_DIS(); /* 关定时中断 */
tmp = __jiffies;
CLOCK_IRQ_EN(); /* 开定时中断 */

return tmp;
}

请注意,其中关于对中断的开关是对该定时中断中所有代码会带来影响。如果在RTOS中,关中断的时间是一种重要性能指标,决定了整个系统的中断快速响应能力。

在此假设一个最艰难的架构,8位机(AVR、51等等),其上只有8位单字节数据的读写是单指令原子的,其中unsigned long型在这样的架构下是32位8字节。

根据各位朋友提出情况,进行说明:

1、有朋友认为读操作没必要关中断.

这个显然不可能,当你读了32位变量任何一个字节的时候,剩下的7个字节都可能改变。

2、认为在中断函数建立数据拷贝

这个理由同上,无论如何复制,都难以避免读的瞬间数据被破坏

3、建立单字节原子锁

该体系必须支持测试清零指令,而且就算支持。如果中断里发现锁被占有了,那这个周期还能进行+1操作么?无论是用变量缓存还是丢弃,所记时间都不准了。

实现如下:

unsigned long get_jiffies(void)
{
unsigned long tmp;

do {
tmp = __jiffies;
} while(tmp != __jiffies);

return tmp
}

简单得大家可能都不相信,可以满足任何MCU架构完成如上对__jiffies变量的操作(必须单核),大家可以仔细想想。

无锁单读单写队列是MCU上经常用的,对中断通信接口的缓冲非常方便可靠。以此为基础,可跨平台实现。

来源:网络(版权归原著作者所有)

围观 501

作者:代文豪、罗克露、雷健

在不断的发展的 MCU 嵌入式系统领域中,软件危机所带来的危害也日渐显现。如何利用软件重用的相关方法来解决这一问题成为当今研究的热点。领域分析是识别、捕捉、组织、分析和表示软件域中相关信息,确定软件的体系结构、框架和构件,以支持软件重用的软件工程过程,是解决重用问题的关键技术之一。通过对领域分析的相关概念、方法、过程以及产品的研究,从而得出在 MCU 嵌入式系统领域进行领域分析的相关方法以及经验。

1、前言

MCU(Micro Controller Unit),又称单片机(Single Chip Microcomputer),是指随着大规模集成电路的出现及其发展,将计算机的 CPU、RAM、ROM、定时数器和多种 I/O 接口集成在一片芯片上,形成芯片级的计算机。当前 MCU 嵌入式系统之间各自封闭开发,不同系统之间的重复工作比较多,大大增加了软件开发的成本和周期,同时系统的可靠性却得不到保证,MCU 嵌入式开发面临着软件规模和复杂性迅速扩大、开发时间紧张,同时又要保证开发质量的问题。因此,迫切需要新的嵌入式软件开发技术。

1968 年,Mellroy 在其论文“大量生产的软件构件”中首次提出软件复用的思想,其目的在于探索利用“为了复用目的而设计的软件成分”生产软件的过程,得到人们的高度关注。在各种软件重用方法中,基于构件的软件开发技术(Component-Based Software Development CBSD)也是人们研究的热点,并且在实践中也取得了良好的效果。

构件化的软件过程可以分成领域工程(开发构件)和应用过程(使用构件开发应用程序)两个独立的子过程。领域工程是可复用软件资产生产的主要技术手段,它包含领域分析、领域设计和领域实现 3 个阶段。在整个软件的复用过程中,领域分析是其关键,只有通过领域分析才能得到相似系统中的可复用资产(领域模型、软件体系结构、可复用构件等)从而进一步支持领域中新系统开发的复用。因此形成在 MCU 嵌入式系统中的有效的领域分析方法是极为重要的。

2、MCU 嵌入式系统开发模式及现状

2.1 MCU 嵌入式系统开发的模式

目前 MCU 嵌入式系统的软件流程基本以包含人机界面处理的主流程(缓处理)、外部非同步中断处理(急处理)、时序输入为中心,再加上机芯控制处理(按照一定规则处理)等各种其他控制组成。MCU 每完成一种功能,其处理过程都遵循 IPO 模式(Input,Process,Output),如图 1 所示。

图 1 IPO 模式

对于每个模式来说,它的输入参数,输出结果都是固定的格式,所以对于一个成熟的模式来说,它的行为是确定的,约束是明确的。因为这些特点,可以很明显地观察到MCU 嵌入式系统领域所具有的内聚性,和稳定性。

因为领域的内聚性,我们可以使用相对较少的、有限的可复用信息来反应整个领域的需求,以及应用。因为领域的稳定性,我们通过领域工程所得到的成果,可以对进行领域工程所花费的人力、物力在将来的工作中得到补偿。

2.2 MCU 嵌入式系统开发的现状

MCU的应用能够深入人类生活的各个方面,关键的原因在于能够通过对软件的灵活定制以达到不同的功能从而针对不同的应用。随着功能的日益增长,MCU 嵌入式系统的开发难度也随之加大。如果内藏ROM 容量在8K 字节之内,有经验的技术人员可以单独一人花费2-3 月用汇编语言进行软件开发,而超过16K 的ROM 想要单独完成会更有困难。特别在消费电子领域,产品的更新换代从以前的年为单位到现在的以月甚至以周为单位,这
导致在以产品质量为生命的企业中,发生质量问题而不得不大量召回产品造成巨大损失的情况屡见不鲜。值得注意的是,在开发中,有经验的开发者通常会选择性的复用以前的工作成果(代码、软件体系、工具、文档),但这种复用一般是个人的,复用的来源也是个人以前的经验成果。在一个特定的领域中,例如一个企业中,这样的复用是经常性的,它们有着以下的特点:

1、一个领域内可复用的资源和复用的机遇是非常多的,但通常情况下无法对可复用资源进行管理,无法决定何时复用以及复用的方式,从而无法对产品的质量进行有效控制。

2、一个领域内掌握某种复用资源的往往是个体,复用资源无法共享,造成资源的浪费和生产力不能进一步的提高。

3、由于掌握资源的个体的离开,导致资源的损失;新加入的个体无法系统地取得这些资源,而导致工作效率的降低。

这种复用被称为个人复用(ad-hoc reuse)。如果能够对领域内资源进行有效的整合,通过更有效的方式进行管理、复用,将能进一步提高软件产品的生产效率、降低生产成本以及提高产品的质量,这种方式被称为系统复用(systematic reuse)。领域工程正为解决这一系列的问题提出了解决方案。

3、领域工程与领域分析

3.1 领域的含义

领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能、问题、问题解决方案或知识区域。领域可分为水平领域和垂直领域:水平领域是指根据应用系统内部模块的功能性分类而得到的相似问题空间,如数据库系统、工作流系统等;垂直领域是指具有相似业务需求的一组相似应用系统所覆盖的业务区域,而我们的MCU 嵌入式系统领域则属于垂直领域。

3.2 领域工程

领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可重用的软件构件的所有活动。领域工程对领域中的系统进行分析,识别这些应用的共同特征和可变特征,对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,依据领域模型产生领域中应用共同具有的体系结构,即特定领域的软件体系结构(Domain Specific Software Architecture DSSA),并以此为基础,识别、开发和组织可复用构件。

在进行领域工程的活动中,通过对领域相关知识进行系统的交叉对比,能够形成一系列的标准。这些标准对构件的选用,以及新构件的产生形成规约,从而指导和规范新产品的开发。同时,由于这些选择是经过了长期时间和实践的论证,所以这些标准也是具有科学性的。当我们要进行同一领域新系统的开发时,只需要根据领域模型,确实新的需求规约,再根据特定领域的软件体系结构形成新的系统设计,并依据相关的标准选取,构造构件,组装到新系统中。这样新系统的质量以及开发效率都将得到可靠的保障,公司也能通过对行为的规范对整个开发流程进行管理、监控。

3.3 领域分析的含义及方法

在系统化的软件复用中,充分的可复用信息的存在是非常重要的。这些信息需要被显示地表示,以便在开发过程中被复用。这些可复用信息,和为方便地定位和操作它们的一些辅助信息一起构成了复用基础设施。领域分析的目的是为了建立这些可复用的基础设施,它的含义是指“识别、捕获和组织特定领域中一类相似系统内对象、操作等可复用信息的过程” 。

领域分析的三个关键过程为:①领域边界确立:通过对已有技术资料,典型系统的分析上,综合领域专家的意见,定义出领域分析的范围和边界,同时收集开展领域分析工作的必要信息;②领域建模阶段:根据在领域边界确立阶段得到的领域边界以及收集到的领域内相关信息,利用相应的建模知识和工具建立具备描述领域内应用系统数据和能力共性与变化性特征的领域模型;③软件体系结构建模阶段:通过已经得到领域模型,以及领域内设计的相关标准建立描述领域内特定问题解决方案的软件体系结构模型(DSSA)。

4、MCU 嵌入式系统领域分析方法

4.1 MCU 嵌入式系统领域的领域边界确定

在这里,并不是打算选择一个适合所有MCU 系统开发的领域,而是选择一个相对狭小的领域,如家电制造行业中的空调行业。在这样的行业中,由于产品要实现的基本功能在很长一段时间内基本固定,客户的需要相对稳定,使得针对同类产品的领域中,有很多的功能是相同的,软件的体系结构是相同的。这为领域分析提供了非常有利的条件。在对这些领域进行分析的时候,资料主要来源于本领域中的典型系统、领域专家的建议、工程师的经验、客户需求、硬件厂商提供的开发包、控制理论、该领域的发展历史以及发展趋势等。当收集完这些资源后也就够成了领域分析的上下文环境,也就是领域的边界。

4.2 MCU 嵌入式系统领域的领域建模

领域模型的意义在于对领域的信息通过组织,以一种令人更容易接受的方式所表现出来。它包括形式化的模型和非形式化的信息,前者是一种对解决方案的描述,后者是对领域知识的补充。对于我们所选择的领域来说,一个具体行业的软件体系结构本身就是相对稳定的,对于具体的每款产品,实现的功能会有一些细小的差别。常见的情况是,当一个原型机出现后,会在原型机上进行诸多的改款,以适应市场客户不同的需要。所以针对于这样的领域特点,我们对这阶段的过程有如下的建议:

1、形式化的模型:采取面向特征的领域模型。特征的定义一般来说是用户或客户可感知的系统特点。但各个组织也可以根据自身的特点来组织选择领域模型。

2、领域字典:领域字典是通过和领域专家的对话,以及对相关的标准进行分析而得到。领域字典的作用是为领域的参与者提供一个准确方便的交流环境。

3、统一的标识:利用一种标准化的,通用的符号系统对领域内的概念进行描述。

4.3 MCU 嵌入式系统领域的软件体系结构

DSSA(特定领域的软件体系结构)不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。它包含构件以及构件互联的规则。当开发本领域的一个新系统时,可以使用这些构件,并且按照这些规则构成满足当前系统需求的特定的系统结构。在DSSA 中有个比较重要的概念就是参考体系结构,它的目的是实现体系结构的复用。图2 给出一种空调控制器领域的参考体系结构(部分)。

图 2 空调控制器领域的参考体系结构(部分)

在上图中,每一个方框代表一个构件。它的下属代表对上一个构件分解而得出的子构件。由多个子构件可以构成一个规模更大的构件,这样能够支持更高效的复用。

在 DSSA 中还包括有一些的需求规约,以及对接口的描述和标准。对于MCU 嵌入式系统领域,由于诸多外设的接口是存在行业标准的,所以如何让控制这些硬件的软件也能够按照一个统一的行业标准来编写是必要而且可行的解决办法。根据标准所编写的软件可以很容易地提取成构件并使用在我们的系统之中。在实践中我们发现,从以下几个方面对这种标准进行约定是可行的:

1、软件的适用范围:如 MCU 类型、应用方案等;

2、外设的硬件特性及使用方式;

3、外设控制流程的规范化:包括有算法和流程图;

4、接口参数的标准化:命名规则、类型、长度等;

5、 一些相关的注意事项:如为适合国家法规而作的一些限制、相关安全性的要求;

5、总结

本文通过对领域分析的概念,方法的介绍,针对MCU 嵌入式系统领域的特点,引出一种适用于MCU 嵌入式系统领域的领域分析方法。该方法已经应用到作者现阶段正在进行的项目中。通过实践已经证明这是一条可行而有着巨大潜力的道路,如何结合更多的手段去达到我们的目的将是今后工作的重点。

围观 259

页面

订阅 RSS - MCU