MCU

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

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

本文从对比两颗分立MCU与单芯片双核MCU开始(以LPC4350为例),展开介绍了非对称双核MCU的基础知识与重要特点。接下来,重点介绍了核间通信的概念与几种实现方式,尤其是基于消息池的控制/状态通信。然后,对内核互斥、初始化流程等一些重要的细节展开了论述。最后提出了双核任务分工的两种应用模型,并分别举例。

背景与基本概念

在开发MCU应用系统时,如果单颗MCU无法满足系统的要求,一个很普遍的做法就是使用两颗或更多的MCU,把一部分“杂项工作”分配给另一个有“助理”性质的低端MCU来完成。但是,采用两颗MCU,缺点也很明显,尤其是在芯片与PCB成本、系统可靠性及功耗方面都有先天的不足。此外,若采用了不同架构的MCU,还要面临需要不同的开发工具与开发人员的挑战。如果换一种思路,让MCU内部包含两个内核,其中一个用于主控,另一个用于协控,并且它们主控与协控在架构上能够向下兼容、高效通信,则在很多场合下都可以既保持多机系统的强大,又能避免多机系统的不足。

事实上,这即是“非对称多处理器(简称AMP)”架构的特点。AMP是与“对称多处理器(简称SMP)”相对的架构,后者各处理器有一致的编程模型,并且在分配工作时主要以均衡为原则。而AMP的优点在于精细的任务分工,灵活地适应不同情景,物尽其用,以最佳地平衡成本、性能与功耗。此外,AMP的编程难度也更低。因此,在MCU应用领域,AMP较SMP更为适合。

与独立的双MCU相比,AMP架构有很多优点。其中相当关键的就是,再添加一个内核的代价远比添加一个独立的MCU要低,尤其是当两个内核架构相似时,甚至仅相当于在现有硅片上再添加一两个UART。另一方面,两个内核可以有相同的主频,并且可以通过总线矩阵平等地访问片上资源。而在分立的双MCU方案中,协控MCU的主频常常远低于主控,并且双方使用低速的串行链路通信。

接下来,我们以恩智浦(NXP)半导体公司推出的LPC4300系列为例(尤以LPC4350型号为代表),对AMP MCU进行简单介绍。

非对称双核MCU的特点

AMP MCU一般用于相对大型的系统,这些系统对功能和性能都有较高的要求。在功能上,应支持较多的外设。LPC4350片载2个高速USB、2个CAN、工业以太网、图形LCD控制器,以及SDHC等接口;外加一些独有的逻辑可配置外设以及众多传统外设,适用于工控、能源、医疗、音频、车载、电机、监控等众多行业产品的开发。

性能的改善则是AMP MCU的灵魂。内核、存储器,以及总线架构对于性能有着至关重要的影响。图1展示了LPC4350的实现方式。

非对称双核MCU基础知识及核间通信
图1:LPC4350的内核、存储器以及总线连接图

首先是内核的选择。LPC4350基于32位的ARM Cortex-M4和Cortex-M0内核(以下简称M4和M0),两个内核均可在高达204MHz的主频下执行代码。其中,M4以信号处理和浮点运算能力见长,胜任很多原先要采用DSP才能满足的应用,并且继承了Cortex-M3的控制能力;另一方面,M0以其成本、能效和处理能力的压倒性优势,正迅速吸引开发人员从8/16位架构向上过渡。更重要的是,M4完全向下兼容M0,使用同一套开发工具即可开发、调试。

其次是存储器的容量和组织方式。LPC4350配备多达264KB片上RAM,并且这些RAM被划分成4组,每组连接一条单独的总线,而并非没有分块。如若不然,则会出现两个核竞争使用同一块RAM的情况——性能反而还不如只用单个内核!进一步,LPC4350还有两条总线连接到外部扩展的并行和串行存储器,故总共有6个独立的存储器地址空间——LPC4350无片上闪存。对于有片上闪存的型号,片上闪存也分为两块。

最后是总线架构。LPC4350内部有一个八层总线矩阵。它如同一组纵横开关,可以把CPU与包括存储器在内的众多从设备通过总线任意连接。合理分配总线接通关系,避免多个主设备(如CPU和DMA)同时访问相同的存储器或外设,可以最大地保证各条数据流并行不悖,从而可以充分发挥性能上的优势。

内核间通信

内核间的通信可分为两类:一类是控制与状态信息的通信,另一类则是数据通信。前者一般不携带数据,但往往有较高的实时要求;后者则主要是各类数据缓冲区,通常实时性要求偏低但数据量大。控制/状态通信有较大的通用性,并且与任务间的同步较为相似。这类通信适合由系统软件实现并提供编程接口。数据通信则往往与具体应用相关较大(尤其是在数据结构上),需要量体裁衣。在实现时,适合由应用软件定义各种数据结构。

内核间通过共享的RAM进行通信,并且每个内核都可以触发对方的一个中断源,通过准备数据-触发中断的方式进行通信,如图2所示。当然,内核也可以定期检查共享RAM的状态。

非对称双核MCU基础知识及核间通信
图2:内核间使用共享内存通信模式图

接下来,我们介绍基于消息队列和消息池的控制/状态通信方案。

消息队列:开设两个消息队列,一个用于M4发送消息给M0,另一个则是M0发送消息给M4。两个队列的地址需事先约定好。队列是循环队列,可以使用简单的数组配以读、写下标来实现,也可以使用链表结构来实现。前者实现简单、开销小,但消息只能是定长,不便于携带其它信息,还有,就是必须把数组放置在共享内存区连续的位置,灵活性低。基于链表的实现用指针链接每则消息,每则消息除了公共的链表控制部分外,还可以根据消息类别携带各种各样的附加参数,并且可以由系统软件的内存管理机制灵活分配消息内存,不过,缺点是相对复杂,额外开销大。若涉及动态内存管理,实时性将远不如基于数组的方案。

来源: 广电电器

围观 537

在很多MCU中,都有上拉和下拉的概念,从8051到AVR再到ARM,都有!

上拉:

简单理解起来,上拉就是通过一个电阻接到高电平,在MCU中主要是为了提高芯片的驱动能力,如8051的P0口,在8051的PDF中,我们可以看到:

(1)每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA

(2)每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA,而 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;全部的四个接口所允许的灌电流之和,最大为 71 mA

MCU中上拉和下拉的意义

图中的 D1,是接在正电源和引脚之间的,这就属于灌电流负载,D1 在单片机输出低电平的时候发光。这个发光的电流,可以用电阻控制在 10 mA 之内。

图中的 D2,是接在引脚和地之间的,这属于拉电流负载,D2 应该在单片机输出高电平的时候发光。但是单片机此时几乎没有输出能力,必须采用外接“上拉电阻”的方法来提供 D2 所需的电流。

在引脚和大地之间有一个三极管,而pin则相当于三极管的基极,起到开关阀门的作用,使上面的电流可以通过LED,流到大地中。

此时,P2.0就起到这个作用,用小电流(不能点亮LED)来控制大电流,上拉电阻同时也起到限流的作用。

另外,为了防止临界电平引起误操作,也采用上拉电阻的方式,使得一个不确定的信号用电阻嵌定在高电平状态。减少意外发生。如ARM的中断就需要。

综上:设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗。

下拉:

下拉就是通过一个电阻接到低电平,把输出嵌位在低电平。同时对输出电流起到限流的作用,由于在实际中比较少用到,此处只是略微提一下。

转自: 金凡

围观 369

-超低功耗EFM32™微控制器为能耗敏感型无线设备设计提供安全、功能丰富的处理能力-

Silicon Labs扩展其广受欢迎的EFM32™ Tiny Gecko微控制器(MCU)系列产品,旨在满足开发人员进行下一代安全、电池供电型物联网(IoT)连接设备的设计需求。Silicon Labs新型EFM32TG11 Tiny Gecko MCU为需要长电池寿命的设备提供了低成本的超低功耗解决方案,且不会减弱功能和降低安全性。Tiny Gecko 11 MCU是智能电表、个人医疗设备和家庭自动化产品的理想选择,这些产品通常具有多个传感器、本地显示和触摸控制。新型MCU可在IoT设计中作为独立微控制器或搭配网络协处理器使用,这为开发人员提供了出色的设计灵活性。

Tiny Gecko 11 MCU优化设计旨在满足通过无线接入点、网关和集线器提供云连接的电池供电型应用。当在许多轻量级无线应用中搭配使用Silicon Labs无线收发器、SoC或模块时,Tiny Gecko 11 MCU能够同时管理应用程序和无线连接。当与诸如802.11 b/g/n Wi-Fi®等复杂协议一起使用时,Tiny Gecko 11可被分配去独立管理MCU应用,从而简化无线系统设计。Tiny Gecko 11 MCU包含充足的存储器、传感器接口、外设、通信链路和支持无线应用或者独立MCU应用的硬件加解密模块。

基于48 MHz运行速率的ARM® Cortex®-M0+处理器,Tiny Gecko 11 MCU提供足够的处理能力,同时保持极高的能效。这些MCU具有低运行电流(37μA/MHz)、快速唤醒、一系列睡眠模式(深度睡眠时为1.3μA)以及其他增强的功能和架构来满足安全、电池供电型IoT产品对于高性能和低功耗的设计需求。

Tiny Gecko 11 MCU集成了一系列可扩展应用潜能的功能特性:

• 高级电容式感应控制器,具有触摸唤醒功能,适用于需要触控接口的应用
• 低功耗传感器(LESENSE)接口,可在深度睡眠模式下自主感测
• 专利技术的8x32段LCD控制器,功耗降低高达40%
• CAN控制器,用于工业应用中有线连接
• 一流的硬件加密,支持AES、哈希函数(SHA)、循环冗余校验(CRC)、高能效真随机数生成器(TRNG)、安全管理单元(SMU),实现精细的设备安全访问

新型Tiny Gecko MCU与其他类型EFM32 Gecko在软件和引脚上兼容,与以前的Tiny Gecko产品相比,具有更大的闪存(高达128kB)和RAM(高达32kB),这使得开发功能丰富且支持诸如Micrium OS实时操作系统(RTOS)的嵌入式应用设计变得更加容易。

价格和供货

EFM32TG11 Tiny Gecko可提供样片并已量产,支持6种封装,其中包括超小型5mm x 5mm QFN32封装。Tiny Gecko 11 MCU在一万片采购量时单价为1.65美元起。SLSTK3301A入门开发套件也已供货,零售价格为89.00美元,这使得开发人员能够快速评估和开发基于Tiny Gecko的应用。此外,Silicon Labs Simplicity Studio开发工具也支持这些新型Tiny Gecko MCU,开发人员可免费下载。欲订购Tiny Gecko 11产品样片和开发套件,请浏览网站:www.silabs.com/tg11

围观 425

当为你的下一个设计方案选择正确的核心处理器件时,你应该考虑哪些因素呢?本文将对MPU和MCU做些对比分析,并以此对器件的选择给出一些指导性建议和意见。

每当在为新设计选择正确合理的器件时,我们可能会有些茫然不知所措。这是需要做正确的平衡处理的事,包括价格,性能,功耗等方面的影响。当然,你可以为新设计着手考虑一些直接的技术方案,但是如果核心器件,无论是微控制器还是微处理器成为一系列新产品的基础平台,那么我们可能需要花长时间来做决定,到底是选MCU还是MPU。

首先,我们来看看MCU和MPU的主要差别。一个典型的MCU通常使用片内flash存储器来存储和执行程序代码。以这种方式存储程序意味着MCU有非常快的启动时间,上电能够快速执行代码,片内存储还有个优势是可以加密程序。使用片内存储方式唯一不足就是总存储空间受MCU本身所限。目前市场上绝大多数flash型MCU最大空间为2M字节,从各种应用上看,这证明了是一个限制因素。而MPU没有存储空间的限制,MPU使用外部存储器提供程序和数据空间。程序一般放在非易失性存储器如NAND或者串行Flash内,启动时,程序载入到外部DRAM中,然后开始执行。这意味着MPU没有MCU启动运行来的快,但MPU可扩展的外部DRAM和NVM容量能达到数百Mbytes,甚至上Gbytes。另一个不同是供电,一般MCU仅仅需要单电压供电,而MPU需要几路不同的电压分别给IO,内核,DDR等供电,开发者往往需要在电路板上设计附加的电源转换芯片。

从应用前景来看,设计规范的某些方面可能要求以特殊方式选择器件。例如,外设接口通道数需求超过了MCU能提供的怎么办?再比如,规格书规定了用户接口的容量,而MCU由于没有足够大的片内存储器或者达不到需要的性能,无法满足需求怎么办?当着手第一次设计,必须要知道的是有很大的可能性产品会有许多变更情况。如果那样的话,基于平台设计方法将是首选的设计方法,这将保证更充足的功耗和接口富余,以适应以后的功能升级。

选择难以决断的一个特征是任何所提供的设计都能满足所需要的处理性能。处理能力通常用Dhrystone MIPS (DMIPS)来量化,它是测量处理器运算能力最常见指标之一。例如,一颗基于ARM Cortex-M4内核的Atmel SAM4系列MCU处理率为150 DMIPS,而一颗ARM Cortex-A5处理器MPU,如SAMA5D3能达到850 DMIPS。一种估算DMIPS需求的方式是观察可能导致性能恶化的局部应用。运行一个完整的操作系统,如Linux, Android或者Windows CE,对你的应用来说可能要求至少300-400 DMIPS。对许多应用来说,能够满足RTOS并且有50 DMIPS的足够宽裕即可。使用RTOS还有其他好处,只需要很少的存储空间,一般内核仅仅需要几KB到几十KB的容量。然而,为了运行完整的操作系统,需要一个内存管理单元(MMU),依次指定处理器内核的使用执行,这就要求更快的处理运算能力。对于运行大量数字运算的应用,额外的DMIPS需要保留给OS以及其他的通信和控制任务。所以,越是基于海量运算的应用,越应该考虑使用MPU来控制。

无论是针对消费电子还是工业自动化为目标的应用设计,用户界面(UI)都需要认真考虑。作为消费者,我们已经熟悉并乐于使用多彩色直观的用户图形界面。尽管操作员的操作环境多少会受限,但工业应用中已经越来越多使用这种需要操作员交互的方式。对于用户界面(UI),有许多要素。第一,处理运算额外的需求,如UI库Qt,普遍放在Linux顶部,需要额外的80-100 DMIPS开销。第二,是和UI的复杂度相关,越是丰富多彩,富于变化的多媒体图像显示,就需要越快的处理能力和越多的内存,并且随着解析度的增加,这种需求成比例的增加,这也是为什么以UI为中心的设计更适合用MPU的原因。相反,低解析度的静态图像UI可以使用MCU寻址。另一个关键点是,MPU通常集成一个嵌入式TFT LCD控制器,这是很有用的。很少有MCU芯片有这个功能,所以需要添加额外的TFT LCD控制器和驱动元器件。即使一些MCU嵌入了TFT LCD控制器来抢占市场,但仍需要足够大的SRAM来驱动显示。例如,QVGA 320 x 240分辨率16bit色彩的屏幕需要150K字节的SRAM。对于SRAM来说这是相当大的容量,所以可能需要额外多的内存和器件。更加复杂先进的图形用户界面,特别是屏幕超过了4.3英寸,会明确规定使用MPU。所以,如果说在彩色TFT屏幕上运行用户图形界面是把MPU当做核心,那么分段点状矩阵LCD屏和其他带有串行接口的显示屏就以MCU为核心。

从连接性角度说,大多数MCU和MPU可以利用一切通用外设接口。但诸如USB2.0,以太网等高速通信外设接口通常只有MPU会配备,因为MPU更具有处理大量数据的能力。数据通信中是否有足够的通道和带宽是个关键问题。根据所用的通信协议,在使用第三方工具时应当检查代码空间的压缩问题。当应用需要高速连通性时候,特别是使用基于OS的堆栈,要求基于MPU来设计系统。

另一个决定使用MCU还是MPU的关键方面是根据应用系统的实时/确定性的行为。由于MCU处理器内核嵌入了flash,软件要么是RTOS要么是C,这决定了MCU在大多数即时性应用中将起一个至关重要的角色。

最后一点需要考虑的是功耗。虽然MPU有低功耗模式,但不会像典型MCU那样低。考虑到附加的硬件部分,MPU在使用低功耗模式时有更多的附加因素,这可能使系统变的更复杂。同样,MCU实际功耗大大低于MPU,低功耗模式中,SRAM和寄存器需要保持,这是要考虑的因素。显而易见,操作系统即时的从休眠模式中恢复运行和RAM直接相关。做出选择基于MCU还是MPU的决定牵涉到性能,容量,预算成本。一般而言,MCU趋向于低成本低功耗解决方案,MPU趋向于功能充足,高性能的场合。MCU趋向于在远程控制,消费电子,智能仪器仪表等低功耗应用上,这些应用强调电池的使用寿命,极少使用用户图形交互界面,MCU也使用在需要即时行为功能的场合。MPU则是基于操作系统的工业和消费应用的理想选择,这些应用通常有大量的计算,高速的互联性,或者强大用户图形交互界面。

选择一家可以提供高兼容性MCU和MPU产品的厂商,你能很容易移植,使软件代码的重复使用率最大,获得最好的投资回报。

转自: www.eepw.com

围观 329

前段时间由于应用需要对产品授权进行限制,所以研究了一下有关STM32 MCU的唯一ID的资料,并最终利用它实现了我们的目标。

1、基本描述

在STM32的全系列MCU中均有一个96位的唯一设备标识符。在ST的相关资料中,对其功能的描述有3各方面:

• 用作序列号(例如 USB 字符串序列号或其它终端应用程序)
• 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性
• 激活安全自举过程等

在资料中对其特性的描述是:96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接起来。

想要读取唯一ID,就需要知道它的存储地址,在不同系列的MCU中地址是有差别的,我们查询了部分MCU的资料并将其总结如下:

如何获取STM32 MCU的唯一ID

2、获取唯一ID

前面我们对唯一ID做了简单的描述,并且得到了其存储地址,接下来我们说以说如何得到这个ID。

前面已经描述过唯一ID可以按字节、半字、字等方式读取。唯一ID是一个96位的信息串,所以按字读取就是3个字,按半字读取就是6个,按字节读取就是12个。本质上没有区别,在这里我们按字读取。

/*定义STM32 MCU的类型*/
typedef enum {
  STM32F0,
  STM32F1,
  STM32F2,
  STM32F3,
  STM32F4,
  STM32F7,
  STM32L0,
  STM32L1,
  STM32L4,
  STM32H7,
}MCUTypedef;

 
uint32_t idAddr[]={0x1FFFF7AC,  /*STM32F0唯一ID起始地址*/
                0x1FFFF7E8,  /*STM32F1唯一ID起始地址*/
                0x1FFF7A10,  /*STM32F2唯一ID起始地址*/
                0x1FFFF7AC,  /*STM32F3唯一ID起始地址*/
                0x1FFF7A10,  /*STM32F4唯一ID起始地址*/
                0x1FF0F420,  /*STM32F7唯一ID起始地址*/
                0x1FF80050,  /*STM32L0唯一ID起始地址*/
                0x1FF80050,  /*STM32L1唯一ID起始地址*/
                0x1FFF7590,  /*STM32L4唯一ID起始地址*/
                0x1FF0F420}; /*STM32H7唯一ID起始地址*/
 
/*获取MCU的唯一ID*/
void GetSTM32MCUID(uint32_t *id,MCUTypedef type)
{
  if(id!=NULL)
  {
    id[0]=*(uint32_t*)(idAddr[type]);
    id[1]=*(uint32_t*)(idAddr[type]+4);
    id[2]=*(uint32_t*)(idAddr[type]+8);
  }
}

3、使用唯一ID

我们得到唯一ID当然是为了使用它,前面在ST资料中描述了三个使用方式。我们在这里来使用它实现软件权限的限制。那么如何用唯一ID来实现软件运行权限的限制呢?我们说一说思路:

首先,我们需要指定一个Flash地址,至于于地址空间的大小则与我们xu要存储的信息有关,一般都不会太长。例如,我们使用MD5来生成加密信息,则最多需要16个字节的存储空间;如果我们使用SHA1来作为生成算法,则最多需要20个字节的空间。当然,我们也可以选取其中的一段或几段。不管选用多大的空间都炫耀将其清零,即初始化为0xFFFFFFFF。

接下来再程序运行前读取前面指定的地址并读取其值,并判断是否全部为0xFFFFFFFF,即判断程序是否第一次运行。如果是,那么就获取唯一ID并作相应的处理,然后将信息写入前面的地址中。

如果不是第一次运行,则读取指定地址的值,并用同样的算法处理唯一ID。然后比较存储的信息与计算的信息是否一致,一致则启动程序运行,不一致则终止运行。

如果有人使用工具读出FLASH内容时,因为改制定的地址已经被写入了信息,所以如果把读出的文件再烧到其它MCU芯片,因唯一ID不同所以信息完全不符程序就不会运行。从而实现了对程序权限的限制。

转自: foxclever

围观 539

随着社会和经济的不断发展,环境和资源问题日益突出,预计到2020年,全国年总需水量将达到900亿立方米,而缺水量也将达到150亿立方米,水资源短缺已成为制约我国经济和社会发展的重要因素,为此国家大力提倡节能减排,鼓励节水、节能设备的研发。卫生间节水技术始于20世纪80年代末和90年代初期,在节水技术初级阶段,普遍采用数字逻辑电路和模拟电子技术实现节水控。

随着社会和经济的不断发展,环境和资源问题日益突出,预计到2020年,全国年总需水量将达到900亿立方米,而缺水量也将达到150亿立方米,水资源短缺已成为制约我国经济和社会发展的重要因素,为此国家大力提倡节能减排,鼓励节水、节能设备的研发。卫生间节水技术始于20世纪80年代末和90年代初期,在节水技术初级阶段,普遍采用数字逻辑电路和模拟电子技术实现节水控制功能;自21世纪以来,卫生间节水技术开始采用先进的红外检测技术以及单片机控制技术,节水率有了较大的提高。目前卫生间节水设备存在诸多技术上的缺陷,即冲厕不及时,误冲厕、漏冲厕现象频繁,导致节水率低,环境卫生差。

为实现节约型、环保型社会,未来的卫生间节水设备必将朝着高节水率、环保、集成化、智能化方向发展。基于此,设计了一种基于统计学和模糊控制理论的权控智能节水系统。它利用改进的红外检测单元准确地采集数据;以AT89C2051单片机为硬件平台构建信号处理、控制的主控制器,对检测数据进行处理,并实时判断出真实的人流量;注水分主注水和权控注水,保证主控制单元发出冲厕指令后能迅速冲厕。试验结果表明,系统各项性能指标均达到设计要求,节水率提高到88%。

1、权控技术

为了确保主控制单元发出冲水指令后,水箱内的水能迅速泻放,本节水系统采用了权控技术,权控冲厕功能由主注水、防渗漏控制单元、主控制单元等实现。主注水单元依据水箱低水位检测器状态判断出水箱全空时启动电磁阀,执行主注水至水箱总容量的95%时停止,为水箱的低水位。由于水中杂质经长时间的积淀以及水箱虹吸阀与水箱密封不严密,水过长时间停留会致使水位因渗漏而下降,鉴于此,设计防渗漏电路补注水,使水箱水位始终保持在水箱总容量的95%位置处。主控制单元实时处理入厕信息并发出权注水指令,这部分注水仅占水箱总容量的5%,耗时1~2 s。权注水后水箱内的水已充满整个水箱,达到了虹吸阀开启的位置,这种迅速冲厕的控制技术称为权控技术。

2、系统硬件设计

本系统采用AT89C2051单片机作为系统的主控制单元,可实现红外信号的处理、电磁阀权注水控制和LED显示;结合C语言软件编程,实现了与实际情况相吻合的冲水控制和两级程序保密措施,丰富了系统功能,提高了系统的稳定性。

系统由主辅两大控制单元组成,图1为主控制单元结构图,完成红外信号处理,延时选择并执行冲水子程序。其中,改进的红外监测可感知移动生物,高水位可检测水箱水位是否到达虹吸点,延时选择是在入厕低峰期时供人工选择延时冲水时间;LED可实时显示主控制器工作状态。

基于MCU的权控智能节水系统设计

基于MCU的权控智能节水系统设计

图2为辅控制单元,完成无水断电、主注水及防渗漏控制。当管网断水时,低水位检测水箱内始终无水,于是主注水控制电路一直开启电磁阀,故设计智能电源在无水时断开除水管检测之外的所有电路电源。低水位检测主注水是否到水箱95%,主注水控制单元据之控制电磁阀;防渗漏控制单元保持水箱在95%的水位。

2.1 智能电源设计

智能电源系统结构包括数字+5 V电源电路、模拟+5 V电源电路、无水断电控制电路,系统结构框见图3。

基于MCU的权控智能节水系统设计

在无水断电控制电路检测到无水时,控制2个继电器JDQ3,JDQ4断开常闭触点,切断除水管检测之外的所有电路供电,既保护了电磁阀,又节省了电能。在管网恢复供水后,无水断电控制电路能瞬间迅速恢复电路供电,系统进入正常工作状态,无水断电控制电路图见图4。

2.2 红外监测设计

红外监测采用GH-718人体感应模块感知生物体,输出高电平。GH-718人体感应模块有可重复触发和不可重复触发两种触发方式,为精确计算入厕人数,本系统设置成可重复触发方式。但GH-718人体感应模块的有效探测范围为110°,探测距离最远可达7 m,人体在这个区域移动时,造成同一入厕者有多次红外触发。为了将减少误触发,甚至使误触发降为零,本系统将GH-718人体感应模块设置在机壳内,机壳底部居中开直径为2 mm的圆孔。经过以上改进,红外监测器仅在一根线上才感应移动人体产生红外脉冲,极大地提高了监测精度,误检率降低到0.2%,见图5。

基于MCU的权控智能节水系统设计

2.3 主注水及防渗漏控制电路设计

主注水及防渗漏控制电路不受主控制单元控制,它通过低水位检测装置送来的高低电平判断是否注水,主注水及防渗漏控制电路见图6。

基于MCU的权控智能节水系统设计

当水箱水位未到低水位时,低水位检测装置是低电平,经过一个非门后变为高电平,于是晶体管V1因饱和导通驱使电磁阀闭合进行主注水。当到达水箱水位时,水箱水位检测装置送来的是高电平,经过一个非门后变为低电平,于是晶体管V1截止,主注水控制电路关断电磁阀停止主注水。

2.4 权注水控制电路设计

权注水是以AT89C2051为核心的主控制单元实现电路见图7。权注水控制电路与微处理器耦合时采用光电耦合器耦合,优点是光电耦合器耦合可以阻隔继电器和电磁阀开启与关断瞬间产生的尖锋脉冲等干扰信号对微处理器的干扰,从而避免了主控制单元因受干扰而出现工作性能不稳定的现象,减小了误冲厕和漏冲厕的几率。信号流程为:权注水指令从P3.2口送出,经R8送光耦IC4驱动V2导通,控制继电器闭合常开触电,电磁阀开启权注水。

基于MCU的权控智能节水系统设计

3、系统软件设计

本系统以AT89C2051单片机为核心,为实现单片机的信号处理和控制功能,将程序划分为6个模块:3 min定时模块、红外脉冲计数模块、高低峰期判决模块、延时选择模块、水位检测模块、电磁阀模块,单片机主程序流程如图8所示。

基于MCU的权控智能节水系统设计

3 min定时模块在红外检测经P3.1口送入第1个红外脉冲时启动,在3 min定时时间内由红外脉冲计数模块对红外脉冲计数。3 min定时到时,3 min定时模块和红外计数模块清零复位,此后3 min定时模块和红外计数模块在下一个红外脉冲到来时才再次启动。同时红外计数模块的红外脉冲计数值送高低峰期判决模块。

高低峰期判决模块有2个功能:当3 min内红外计数值满足高峰期人数时启动电磁阀进行权注水;当3 min内红外计数值不满足高峰期人数时,启动延时选择模块。

延时选择设置有友好的人机对话接口,由延时选择程序和设置在机外人工预置的7组机械开关共同组成实现,延时时间一到则开启电磁阀进行权祝水。为了消除开关开闭产生的瞬间尖峰脉冲干扰红外计数,在每组开关上设计了消尖峰脉冲电路。

水位检测模块检测权注水是否到达虹吸阀的虹吸点,即高水位位置,当权注水到高水位时,水位检测模块启动电磁阀模块,使其关闭。

由于篇幅的原因,在此给出部分C语言源程序:
基于MCU的权控智能节水系统设计
通过实际工作环境下的多次试验,系统运行良好,红外监测误检率小于O.2%,冲厕迟滞时间小于1 s。表1是本节水系统在检测周期为3 min时的一年耗水量,以及与普通冲水器的耗水情况比较。

基于MCU的权控智能节水系统设计

从表1可以看出,权控智能节水器在检测周期为3 min的情况下,节水率高达88%,大大节约了水资源,符合设计初衷。

4、结语

提出的权控智能节水方案有效解决了现有节水产品冲厕不及时、误冲厕、漏冲厕等技术缺憾,极大地提高了节水率,获得了比较满意的结果。随着信号处理技术的发展,这种基于热释电红外移动传感器和单片微处理器的权控智能节水器将有着十分广阔的应用前景。

来源: 中电网

围观 385

单芯片双核MCU支持蓝牙5、Thread和Zigbee,同时提升消费和工业物联网设备的安全性

当今的许多设备需要将主微控制器(Host MCU)连接到无线网络,这会增加尺寸和复杂性,同时也会使设计、软件开发、采购、供应链和物流更加繁杂。代表了新一代Kinetis MCU的全新K32W0x无线MCU平台,作为恩智浦广泛的边缘计算产品组合的一部分,可以让设备更强大、更安全。K32W0x平台是其前代产品的补充增强版,通过更高性能、更多功能和更高安全性,应对不断发展的物联网格局。这款新平台是首个具有双核架构和嵌入式多协议RF的单芯片器件,使物联网产品开发者能够通过单一供应商获得从硅芯片、软件、工具、支持到采购的一系列服务,因而整体降低了产品的复杂性、尺寸和成本,与此同时还提升了功能性和安全性。

作为恩智浦新一代Kinetis MCU的首款产品,K32W0x MCU平台将主控制器和无线MCU集成到一个小尺寸器件中,实现了复杂应用小型化,而此前的那些应用通常需要尺寸更大、成本更高的双芯片解决方案。消费类设备(例如可穿戴设备、智能门锁、恒温器和其他智能家居设备等)以及各种健康保健、商业和工业物联网应用都可受益于K32W0x无线MCU平台的多协议RF和强大的性能优势。

K32W0x无线MCU平台的主要特性

• 双核:Arm® Cortex®-M4内核用于高性能
• 大容量内存:1.25 MB闪存和384 kB SRAM支持全功能应用以及连接协议
• 多协议RF:支持蓝牙5和 IEEE® 802.15.4,包括基于IP的ThreadMesh网络协议栈和Zigbee 3.0Mesh网络协议栈
• 支持HomeKit,支持通过蓝牙5连接到iCloud

更安全的物联网设备

当今的许多物联网设备的安全等级达不到防御危及网络的安全威胁的要求。防范这些不断变化的威胁是K32W0x平台的主要关注点——旨在确保物联网设备及其数据的机密性、完整性和真实性。

K32W0x安全系统的安全特性包括:

• 加密子系统(包括专用内核、专用指令和数据存储器)用于加密、签名和执行哈希算法(包括AES、DES、SHA、RSA和ECC)
• 安全密钥管理用于存储和保护敏感的安全密钥
• 在检测到安全漏洞或物理篡改事件时,擦除加密子系统内存(包括安全密钥)
• 资源域控制器用于访问控制、系统内存保护和外围设备隔离
• 内置安全启动和安全无线编程(OTA),旨在确保设备中只运行经过授权和认证的代码

为扩展K32W0x MCU平台的片内安全特性,恩智浦与生物识别认证领域的领导者B-Secur合作开发了一个使用个体独有的心跳模式(心电图/ECG)来验证身份的系统。该系统比使用个人指纹或语音认证更安全。恩智浦在2018年嵌入式系统展会上完整演示了这项创新技术。

新一代Kinetis无线微控制器提升物联网设备性能和安全性

K32W0x平台现已提供样品,计划在第三季度末正式推出。有关K32W0x MCU平台的更多信息,请访问
www.nxp.com/K32W0x

欲了解恩智浦参加本次展会的最新消息,请访问恩智浦2018年嵌入式系统展会新闻中心:
www.nxp.com/EW187/mediacenter .

围观 512

TI新型可靠、抗干扰电容式感应MCU将触摸控制技术引入成本敏感型工业应用

采用CapTIvate™技术的MSP430™微控制器为暴露于电磁干扰、油、水和油脂的应用提供价值和性能

TI近日推出采用CapTIvate™技术的MSP430™微控制器(MCU)系列产品,为成本敏感型应用带来电容式感应功能。开发人员可以利用带集成电容式触摸的新型MSP430FR2512和MSP430FR2522 MCU,为工业系统、家庭自动化系统、家电、电动工具、家庭娱乐、个人音频应用等增加多达16个按钮以及接近感应功能。欲了解更多信息,请访问: www.ti.com.cn/captivate-pr-cn

新型电容式触摸MCU的主要特性和优势

• 可靠、优化的性能:MSP430FR2512和MSP430FR2522 MCU可为暴露于电磁干扰、油、水和油脂的应用提供经国际电工委员会(IEC)61000-4-6认证的电容式感应MCU解决方案。新型MCU的功耗比竞争产品低五倍,支持接近感应和透过玻璃、塑料和金属覆盖层触摸。

• 用于成本敏感型应用的电容式触摸MCU:TI的CapTIvate技术将电容式触摸和接近感应的优势性能增加到门禁控制面板、灶具、无线扬声器和电动工具等应用中。

• 缩短上市时间:开发人员可以使用与CapTIvate编程器板(CAPTIVATE-PGMR)或TI LaunchPad™开发套件兼容的新型BOOSTXL-CAPKEYPAD BoosterPack™插件模块快速评估其应用的电容感应。BoosterPack模块加入CapTIvate设计中心和在线CapTIvate技术指南中的一系列MCU、易于使用的工具、软件、参考设计和文档。此外,开发人员可以加入德州仪器在线支持社区,寻找解决方案,获得帮助,凭借CapTIvate技术加速开发。

封装和供货

MSP430FR2512MSP430FR2522 MCU的批量生产采用20引脚超薄四方扁平无引线(VQFN)封装和16引脚薄型紧缩小外形封装(TSSOP)。

CapTIvateBoosterPack插件模块(BOOSTXL-CAPKEYPAD)通过TI商店和授权经销商供应。

了解采用CapTIvate技术的MSP430 MCU的更多信息

• 了解采用CapTIvate技术的MSP430 MCU产品组合。
• 阅读有关向智能家居助手添加电容感应的信息。
• 探索TI广泛的感应产品组合,涵盖广泛的感应技术。

围观 228

要破解MCU,学校里不会有人讲这个,大概很多老师们也不会。为什么要破解,为了兴趣?研究?挣钱?还可能是太无聊了。不管怎样,学习下MCU的防破解技术,就像了解你家的门锁一样有价值。

本文虽然来自于一篇老帖子,但是内容却并不过时,下面就开始正传。

微控制器的硬件安全措施与嵌入式系统同时开始发展。三十年前的系统是由分离的部
件如CPU,ROM,RAM,I/O缓冲器,串口和其他通信与控制接口组成的。

在早期,除法律和经济外,几乎没有保护措施来防止复制这些设备。例如,ROM是用低成本的掩模技术制造的,可用EPROM轻易复制,但后者通常要贵3-10倍或更多。或定制掩模ROM,那就需要很长的时间和很大的投资。另一种是在游戏机中广泛使用的简易ASIC。这些ASIC主要用于I/O部分来取代数十个逻辑器件,在降低成本的同时防止竞争者的复制,使之不得不应用更大且更贵的解决方案。实际上ASIC不会更安全,用示波器来简单分析信号或穷举所有可能的引脚组合就可以在数小时内得知它的具体功能。

从七十年代后期开始,微控制器提供一种非常好的取代基于CPU的控制板的方法。它们不仅有内部存储器和通用I/O接口,还有一些保护措施以防止未经授权访问内部存储器的内容。

不幸的是,早期的MCU没有提供非易失存储能力,重要的数据不得不存在MCU外部的分离芯片上,因此很容易被读出数据。一些廉价USB狗也用此法来进行软件保护。

怎样防住那些想破解MCU的人
图1:Aladdin HASP4 USB狗

下一步进展就是把EEPROM芯片放在与MCU同一封装的内部。破解这些芯片是不容易的。一种专业的方法是打开样品的封装,用微探针来获得数据。或将芯片重新焊在一个分开的封装内。这两种设备都不是低级破解者所能拥有的。这些破解者会尝试用自制的微探针(旧芯片的焊线区域是相当大的)或利用软件上的缺陷来读出数据。
怎样防住那些想破解MCU的人
图2:PIC12CE518微控制器打开封装后的照片,可见非易失数据存储器和MCU是分开封在同一封装内部的。
怎样防住那些想破解MCU的人
图3某型32位MCU打开封装后的SEM图

一些MCU始终没有任何特殊的硬件安全保护。它们仅仅是基于不公开编程算法来保护。这可能有伪装回读功能,或用校验功能来代替。一般这些MCU不会提供非常好的保护能力。实际上,在一些智能卡中,适当使用校验功能能够起到很强的保护作用。

下一步增强安全保护的措施就是增加一个硬件安全熔丝(security fuse——安全熔丝就是寄存器)来禁止访问数据。这很容易做到,不需要完全重新设计MCU架构,仅利用熔丝来控制编程接口的回读功能。缺点是熔丝位很容易被定位并进行入侵攻击。例如:熔丝的状态可以通过直接把熔丝位的输出连到电源或地线上来进行修改。有些例子中仅仅用激光或聚焦离子束来切断熔丝的感应电路就可以了。用非侵入式攻击也一样可以成功。

因为一个分离的熔丝版图异于正常的存储阵列。可以用组合外部信号来使熔丝位处与不能被正确读出的状态,那样就可以访问存在内部芯片上的信息了。用半侵入式攻击可以使破解者快速取得成功但需要打开芯片的封装来接近晶粒。一个众所周知的方法就是用紫外线来擦掉安全熔丝。

怎样防住那些想破解MCU的人
图4:PIC12C508微控制器的安全熔丝位于程序存储器阵列的外部。

再下一步就是将安全熔丝做成存储器阵列的一部分,如果已设好熔丝,可禁止外部读写数据。一般的熔丝与主存储器离得很近,或干脆与主存储器共享一些控制线。因为晶圆厂使用与主存储器相同的工艺来制造,熔丝很难被定位和复位。非侵入式攻击仍然可用,但需要时间去寻找。同样,半侵入式攻击也可用。当然破解者需要更多的时间去寻找安全熔丝或控制电路负责安全监视的部分,但这些可以自动完成的。进行侵入式攻击将是很困难的,需要手工操作,那将花费更多的成本来破解。
怎样防住那些想破解MCU的人
图5:MC68HC705C9A微控制器在200倍显微镜下可见安全熔丝是存储器读写控制逻辑的一部分

更进一步的是用主存储器的一部分来控制外部对数据的访问。这可以用上电时锁定特定区域地址的信息,将它作为安全熔丝。或用密码来控制对存储器的访问。例如德仪的MSP430F112,只有输入正确的32字节密码后才能进行回读操作。如果没输入密码,只有擦掉芯片后才能操作。尽管这个保护方法看上去比先前的更有效,它有一些缺点可以用低成本的非侵入式攻击如时序分析和功耗分析来破解。如果安全熔丝的状态是上电或复位后的存储器的一部分,这就给破解者用电源噪声来破解的机会,强制电路进入存储器中的错误状态。
怎样防住那些想破解MCU的人
图6:PIC16F648A伪顶层金属层图案使得对芯片进行微探测攻击更困难,200倍放大

别的一些使入侵攻击开销更多的措施包括使用顶层金属网格。所有的网格都用来监控短路和开路,一旦触发,会导致存储器复位或清零。普通的MCU不会使用这种保护方法,因为设计较难,且在异常运行条件下也会触发,如:高强度电磁场噪声,低温或高温,异常的时钟信号或供电不良。故有些普通的MCU使用更廉价的伪顶层金属网格,但这也有非常高效的光学分析进行微探测攻击的方法。在智能卡中,电源和地之间铺了一些这样的网格线。在这些方法中发现一些设计缺陷使得可以进行微探测攻击。同样,这些网格不能保护非侵入式攻击。因为导线之间有电容,并且光线可以通过导线抵达电路的有效区域,半侵入式攻击仍然可能。

可编程的智能卡制造商走得更远,干脆砍掉标准的编程接口。取而代之的是启动模块,可以在代码载入后擦掉或屏蔽掉自己。这些卡只能在初始化时被编程一次,之后只能响应使用者的嵌入软件所支持的读写存在卡里的数据或程序。

怎样防住那些想破解MCU的人
图7:ST16系列智能卡芯片表面金属层的敏感网格

近期的一些智能卡使用存储器总线编码(Bus encryption)技术来防止微探测攻击。即使破解者获得数据总线的数据也不可能知道密码或别的敏感信息。这种保护措施直指侵入式和半侵入式攻击。但非侵入式攻击仍然可以像正常的CPU一样访问控制非编码信息。事实上,几年前就发现廉价地破解编码信息的方法。
怎样防住那些想破解MCU的人
图8:100倍显微镜下的SLE66系列的智能卡芯片上的硬件总线编码模块,保护存储器免受微探测攻击。

另外一些需要提及的改进是将标准的模块结构如解码器,寄存器文件,ALU和I/O电路用类似ASIC逻辑来设计。这些设计称为混合逻辑(Glue logic),广泛用于智能卡。混合逻辑使得实际上不可能通过手工寻找信号或节点来获得卡的信息进行物理攻击。这种技术广泛用于盗版,并可提升常见CPU内核的性能和安全性。例如,SX28微控制器的引脚和程序都兼容于微芯的PIC16C57,但它使用了混合逻辑设计,闪存,大容量RAM使它的性能获得大幅提升。在PIC微控制器中,破解者很容易跟踪内存到CPU的数据总线,但在SX微控制器中,几乎不可能知道总线的物理位置,反向工程和微探测攻击将是非常困难且耗费时间。
怎样防住那些想破解MCU的人
图9 SX28微控制器引入混合逻辑设计,提升了性能和安全性。

更常用的是芯片由不同模块组成,但每个模块使用混合逻辑设计。如CY7C63001A微控制器。在这种情况下,破解者更容易跟踪模块之间的总线和控制线,并对芯片进行侵入式和半侵入式攻击。混合逻辑设计不能防止非侵入式攻击,但需要更快更昂贵的设备。半侵入式攻击面临伪设计模块的问题。当然破解者可以自动操作来进行穷举搜索并尝试攻击所有可能区域。结果很可能是花了很长时间并没有取得成功。另一方面,破解者可以直接攻击存储器器或它的控制电路。
怎样防住那些想破解MCU的人
图10的CY7C63001A微控制器使用部分混合逻辑设计,但内部总线很容易被访问。

技术的进步增加了入侵攻击的成本。十年前很容易使用激光切割器和简单的探针台就可以读写芯片表面的任何点,但对于现代的深亚微米半导体芯片就需要用到不一般的且昂贵的技术,这难倒了很多潜在的破解者。如PIC16F877很容易在显微镜下观察并进行反向工程,藏在顶层金属下的第二层金属和多晶硅层仍然可见。但在PIC16F887A微控制器中使用了平坦化工艺,使得不会显示更深的层。唯一的方法是用物理或化学的方法除去顶层金属。
怎样防住那些想破解MCU的人
图11 500倍显微镜下,通过PIC16F877的顶层看到第二层金属和多晶硅层。

怎样防住那些想破解MCU的人
图12 500倍显微镜下,看不到PIC16F877A的顶层金属下有什么特别的。

安全保护的类型

通过编程接口对片上存储器进行写,校验,读和擦除操作,这可以用硬件(JTAG)或软件(bootloader)来实现。在硬件接口方面,安全保护通常是使用安全熔丝来控制接口的操作,如,阻止存储器中的数据发送到输出缓冲器里。至于软件接口,一般使用密码保护,但通常软件会检测某个硬件安全熔丝的状态。一些微控制器使用了这两种方法,软件启动载入模块控制系统的编程,另一个快速的硬件接口用来大批量生产的编程。每一种都有它的优势和劣势。通过软件,有更好的灵活性和更好的编程控制能力,但会在时间延迟和功耗方面泄漏一些信息。硬件的执行速度更快,对噪声攻击不敏感,不会通过功耗泄漏信息。在硅芯片的资源上,两者都占用类似大小的空间,对于现代的微控制器,与其它较大的部分如程序存储器,处理器和模拟接口相比,这部分几乎可以忽略不计。制造商就可以在同一个芯片上放置两种或更多的编程接口。如通过异步接口进行在线串行编程,标准的并行编程,软件启动模块通过异步接口编程。

一些制造商故意不提供它们的微控制器的编程规格。这对它本身并没有提供很好的保护,只是给破解稍稍增加成本而已。这些信息可以通过在开发板上或通用编程器对芯片进行编程而获得。

很明显,对于最高等级的安全,系统没有任何编程接口,并且不能读写所存储的数据。这通常用于掩模ROM微控制器和智能卡。对这种保护,实用破解方法是用微探针接触数据总线来恢复信息或使用功耗分析和噪声攻击来利用软件的缺陷。当微控制器进行编程但不提供任何返回信息,只有校验和写检查,这可以提供相对高的安全等级。当然,这需要完全执行以避免破解者强制系统一次只校验一个字节。

大部分现代的微控制器有一个或多个安全熔丝来控制片上存储器的读写。这些熔丝可以用软件或硬件来实现。软件的方法就是密码存储在存储器中或一个特定的存储器位置当作一个安全熔丝。例如,在MC68HC908系列,使用了密码保护。

MC68HC705B系列的熔丝位于数据EEPROM存储器的第一个字节。两种方法的安全性都较高,因为很难从物理上找到熔丝和密码的位置并复位它们。同时,破解者会尝试使用噪声攻击来跳过安全检查,或使用功耗分析来观察猜测的密码正确与否。

硬件执行方面,安全熔丝物理上位于芯片上。这可以是主存储器阵列边上的分离的单个单元,甚至更远。所有的PIC和AVR微控制器都这样。这两者的安全性能并不高,熔丝很容易被找到并被屏蔽。

安全熔丝在主存储器中可以提供提供更好的保护,这很难找到并屏蔽它们。主存储器和熔丝可以通过位线(Bit line)接在一起。如Z86E33微控制器,或通过字线(Word line)接在一起,如意法的ST62T60。有趣的是MC68HC705C9A使用了多种安全措施。熔丝单元放在主存储器单元之间,合用位线。如果熔丝被紫外线擦除了,主存储器也会被擦掉。对存储器进行反向工程,发现很难分辨哪部分属于存储器,哪部分属于熔丝。但同时,半侵入式攻击可以很好工作,因为熔丝有分开的控制电路,这很容易被破解而不影响主存储器。

怎样防住那些想破解MCU的人
图13:200倍显微镜下,Z86E33微控制器的熔丝沿位线紧挨着主存储器

怎样防住那些想破解MCU的人
图14:200倍显微镜下,ST62T60微控制器的熔丝沿字线紧挨着主存储器

硬件安全保护方面的新进展是将熔丝区域嵌入到主存储器阵列中,共享控制或数据线,这样的安全性能更好,熔丝已经成为存储器的一部分,很难进行定位。 将某一部分存储器作为安全熔丝可以达到更高的安全性能。这种情况下,不扰乱其它部分存储器的内容,找到位置并复位是异常困难的。这并不意味着别的破解方法不能凑效。但可以减少成功的机会。

安全熔丝可以通过多种方法来监控。最简单的方法就是在上电时;复位时;进入编程模式时检查熔丝的状态。使用电源噪声或激光脉冲,可以用很短的时间就改变熔丝地状态。熔丝状态保存在触发器或寄存器中并不好,因为触发器的状态可以通过缺陷注入攻击来改变。

本文内容来自于网络,仅为传递有价值信息,版权归原作者所有。
转自:
21ic电子网

围观 452

页面

订阅 RSS - MCU