快捷搜索:

基于传感器系统的微控制器设计

小序

本日的便携式设备经由过程持续的活动监测和情境感知来懂得周围情况。为了实现这个功能,设备集成了越来越多的传感器和外设,由此孕育发生大年夜量数据。这反过来使得集成更强大年夜的CPU变得很有需要,以便履行越来越多的谋略。同时,必须缩小设计尺寸,低落资源和功耗,但又不就义终极产品赓续提升的功能要求。

传感器中枢(Sensor hub)的观点被越来越多地采纳到当今的SoC设计中,以满意“始终运行”的传感器/外设造访和节制(以致以高速度)的要求,而且不会增添功耗和设计资源。传感器中枢可所以小型CPU内核,与传感器/外设连接,并经由过程履行后台操作并仅在必要时“唤醒”主处置惩罚器,充当功耗较大年夜的主处置惩罚器的卸载引擎的角色。

用于传感器采集的基于处置惩罚器的范例架构

利用在集成多个传感器的系统中的范例基于微节制器的架构包括以下组件[1]:

a) 一个微节制器单元(MCU) - 也称为处置惩罚子系统,MCU节制系统内所有构成部分的运行并处置惩罚数据。它包括一个处置惩罚器、一个内部或外部存储器、以及本地数据处置惩罚所需的所有外设和子系统。在范例的基于MCU的架构中,节制器履行所有传感器数据网络、处置惩罚和存储

b) 传感器元件(或传感子系统) - 一组传感器,可所以无源或有源,数字或模拟的随意率性组合。这些传感器将来自外部情况的输入信息转换成电旌旗灯号。在大年夜多半利用中,传感器用于监测运动、光、气压、振动、流速、温度、透风、电等。平日来说,传感器元件在其输出端天生电压或电流旌旗灯号。在数据被处置惩罚、存储和传输之前,这些旌旗灯号一样平常会被放大年夜,并经由过程模数转换器转换成数字旌旗灯号。

c) 无线电 - 一种短间隔收发器,供给与主机的无线通信

d) 电源子系统 - 平日连接到电池或能量采集器。该子系统充当可控单元,可零丁打开和关闭系统构建块的电源。它平日是MCU软件中的一个软件块。电源子系统认真为每个零丁的硬件组件供给相宜的电源电压。

在具有多个传感器的更繁杂的基于微节制器的架构中,在硬件中集成了智能,用来节制各类子系统。 例如,从传感器到存储器传输数据耗时又耗电,这一部分事情着实可以从处置惩罚器转移到直接内存存取(DMA)单元。电源治理单元(PMU)还可以被编程为对特定事故做出反映并关闭各类子系统,例如外设、传感器和无线电。

图1. 基于微节制器的范例架构

这种先辈架构的目的是尽可能削减主MCU生动的光阴。原本必要MCU干预的义务,现在可以由智能子系统履行。然而,还存在一个问题,便是每次有来自传感器、无线电或各类子系统的事故时,MCU都必要被唤醒,由于它是独一可以支配逻辑来处置惩罚这些事故的元件。

优化功率的技巧 - 添加传感器节点节制器

为了延长具有多个传感器的系统的续航光阴,已经提出了很多种低落功耗的技巧[2],[3]。有些技巧在媒体造访节制层面进行节能[4],[5],有些技巧从数据聚合或交融动手[6],[7],有的则采纳芯片设计优化技巧,如片上功率门控[ 8]或动态电压调节[9]。

本文先容了一种不合的技巧,来优化多传感器系统中的电源应用,同时将主处置惩罚器用于数据采集的唤醒光阴节制到最短。该技巧基于集成繁杂的硬件状态机,可以接收主处置惩罚器上的重复性义务,如传感器轮询和读取,从而实现集成的低功耗传感器中枢观点。专用硬件状态机可以更快地唤醒,并应用更少的模块来将数据从传感器/外设传输到内存,以及反向传输,而主处置惩罚器维持休眠状态。此外,传感器中枢可以对数据履行简单操作,是以主处置惩罚器只必要在要求繁杂数据操作时唤醒。

这种措施的一个很好的例子,是集成在Dialog半导体公司的DA1469x蓝牙低功耗SoC办理规划中的传感器节点节制器(SNC)硬件模块[10]。SNC是一种微型硬件状态机,能运行由有限的指令集组成的微码(μcode),有助于开拓职员操控通信节制器(即SPII2C等)、传感器和外设。它可以经由过程应用其最小指令集自动运行,无需唤醒系统的另外部分。这容许它履行浩繁操作 - 例如:轮询传感器状态位、对照寄存器与内存地址内容(值)、将数据从通信接口传输到系统RAM以及对照分支 - 同时耗损最低电流。

图2. 具有传感器节点节制器外设的利用场置惩罚器架构

SNC的主要特点如下(图3):

 传感器节点指令集(SeNIS),包孕10条微码天生指令,适用于:

o 轻松创建指向内存缓冲区的指针

o 轮询串行接口状态位

o 对照阈值

 系统RAM用于微码存储和数据

 DMA功能,用于将数据直接从通信接口传输到系统RAM

 直接造访所有外设和寄存器

 经由过程PMU在中断触发和域上电(例如准时器、GPIO)后急速履行

 SNC到主处置惩罚器看护,以及反向看护

SNC与所有通信接口(SPI、I2C和UART)位于相同的电源域,SNC还可以节制其他电源域。它履行驻留在系统RAM中的微码,此中SNC具有直接内存连接;以系统时钟速率运行;并且可以天生中断以看护PMU所有操作都已完成,从而可以关闭全部系统的电源。

图3. 传感器节点节制器框图

应用此类专用硬件履行传感器和外设数据操作的架构的主要优点是:

 主CPU就寝光阴更长,从而可以节省功耗

 节省MIPS,由于CPU不必造访慢速外设或履行简单的数据操作

不过它有一些毛病。SNC编程模型的异常简单的指令集仅容许基础操作。别的,编程SNC必要应用汇编说话。着末,因为SNC是一个异常简单的模块,调试会变得繁杂。

节省功耗和MIPS

我们已经进行了一系列丈量,证清楚明了应用SNC可以实现的功耗和MIPS节省。这些丈量是在Dialog的基于ARM Cortex-M33的DA1469x SoC长进行的,并对照了只应用主CPU和在SNC支持下履行的相同义务。 第一组丈量集中在造访平日用于传感器读数的慢速外设(如I2C和SPI)时节省的功耗/MIPS。第二组丈量着眼于应用DA1469x中包孕的蓝牙低功耗(BLE)通信模块的实际利用案例。

表1描述了传输小型SPI或I2C数据事务(如写/读16/128字节)时的能耗。

表1:传输小型数据事务时的能耗(数字为1.8 V,8-bit传输)

与CPU(CM33)比拟,SNC履行事务所需的光阴要短很多,如表2所示。因为CPU可能必要履行忙等待,是以节省了光阴相称于节省了MIPS。

表2:SNC写/读8 bit数据所需的光阴以及CPU响应所需的光阴

对现实生活中的应用案例,我们对照了每隔1500毫秒(表3)和500毫秒(表4)进行广播时所耗损的功率,同时应用SPI每100毫秒读取加速计传感器一次。

表3:每1500毫秒进行广播时的能耗,应用SPI每100毫秒进行一次传感器读取

表4:每500毫秒进行广播时的能耗,应用SPI每100毫秒进行一次传感器读取

在繁杂的利用中,假如必要造访多个传感器,斟酌到缓存未射中和义务切换等问题,对MCU的占用会更大年夜。

低落编程繁杂度

上面提到过,应用集成的传感器节点节制器时面临的最大年夜寻衅之一,是确保根基系统功能的编程、调试和充分使用与采纳通用MCU的规整洁样简单。寻衅的主要方面有:

 供给对开拓职员友好的抽象编程,以有效节制驱动与连接的传感器/外设的通信接口,以及与主CPU通信相对应的基础功能。

 使用10指令汇编式编程,并供给更高档其余编程布局,以简化和加速软件开拓。

 支持完备的系统整体调试 - 而不是零丁调试每个CPU内核,由于可能无法检测到当内核并交运行时的系统行径差错。

为了办理这些寻衅,我们必要一个完备、易于应用的编程框架。它必须包括抽象和法度榜样,将并发操作系统义务的典型扩展到在SNC上履行的响应(并行)处置惩罚。我们已经为Dialog DA1469x办理规划开拓了这样的编程框架(图4)。它具有以下特征:

 简化的SNC微码开拓

o 经由过程定义基于SeNIS的类C编程说话,可以同时支持汇编和类C编程。

 用于编程的“混杂”编码模型

o 在相同的源和头文件中同时包孕针对SNC和主处置惩罚器情境(context)的代码开拓 - 应用了一个C预处置惩罚器来定义基于SeNIS的说话布局,方便开拓职员。

 与驱动主处置惩罚器通信接口、互换SNC看护、和操作系统资本相关的根基机制和功能的抽象,作为一组完备且易于应用的API法度榜样/类C函数。

 可察看性和高档调试机制同时利用于SNC和主处置惩罚器履行情境。

图4. SNC编程框架

SNC编程模型的特性可归纳如下:

 DA1469x利用包括由OS义务和SNC 微码并行履行的进程。

 SNC适配器向DA1469x系统注册或注销SNC微码,从而创建一列SNC微码,每个微码由特定PMU事故触发。

 SNC适配器采纳特殊的SNC微码,根据响应的微码列表实现注册的SNC微码履行的调整,并经由过程其初级驱动器节制SNC硬件模块。

 定义了一组基于SeNIS的布局预处置惩罚器宏,从而天生一组汇编和类C说话布局用于SNC微码开拓。

 供给一组初级驱动器SNC微码,可用于驱动SPI、I2C等通信外设。

 为操作系统义务和SNC微码供给了一种机制,进行互换:

o 看护

o 数据(即:SNC 行列步队)

除了上述实现轻松编程SNC函数的布局之外,还供给以下内容以支持调试:

 应用SNC断点和慢慢调试区域来调试SNC微码的机制。

 SNC仿真器,而不是SNC硬件模块,用于改进和简化SNC微码调试历程。

总结

本文先容了一种新的架构,可最大年夜限度地低落集成了多个传感器和外设的便携式系统的功耗。该架构应用繁杂的硬件状态机来卸载主处置惩罚器上的一些重复性义务,例如传感器/外设轮询和读取。与其他架构比拟,这种新架构在功耗和MIPS优化方面具有很大年夜的上风,不过会使编程模型变的更繁杂。是以,我们还先容了一种对开拓职员友好的编程框架来降服该问题。

滥觞:EEFOCUS

您可能还会对下面的文章感兴趣: