《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > MEMS|傳感技術(shù) > 解決方案 > 傳感器節(jié)點控制器 – 助力未來連網(wǎng)傳感器

傳感器節(jié)點控制器 – 助力未來連網(wǎng)傳感器

2019-04-22
作者:Marios Iliopoulos, Fotios Kerasiotis, Nikolaos Moschopoulos

引言

今天的便攜式設(shè)備通過持續(xù)的活動監(jiān)測和情境感知來了解周圍環(huán)境。為了實現(xiàn)這個功能,設(shè)備集成了越來越多的傳感器和外設(shè),由此產(chǎn)生大量數(shù)據(jù)。這反過來使得集成更強(qiáng)大的CPU變得很有必要,以便執(zhí)行越來越多的計算。同時,必須縮小設(shè)計尺寸,降低成本和功耗,但又不犧牲最終產(chǎn)品不斷提升的功能要求。

傳感器中樞(Sensor hub)的概念被越來越多地采用到當(dāng)今的SoC設(shè)計中,以滿足“始終運(yùn)行”的傳感器/外設(shè)訪問和控制(甚至以高速率)的要求,而且不會增加功耗和設(shè)計成本。傳感器中樞可以是小型CPU內(nèi)核,與傳感器/外設(shè)連接,并通過執(zhí)行后臺操作并僅在需要時“喚醒”主處理器,充當(dāng)功耗較大的主處理器的卸載引擎的角色。

用于傳感器采集的基于處理器的典型架構(gòu)

應(yīng)用在集成多個傳感器的系統(tǒng)中的典型基于微控制器的架構(gòu)包括以下組件[1]

a)一個微控制器單元(MCU) - 也稱為處理子系統(tǒng),MCU控制系統(tǒng)內(nèi)所有構(gòu)成部分的運(yùn)行并處理數(shù)據(jù)。它包括一個處理器、一個內(nèi)部或外部存儲器、以及本地數(shù)據(jù)處理所需的所有外設(shè)和子系統(tǒng)。在典型的基于MCU的架構(gòu)中,控制器執(zhí)行所有傳感器數(shù)據(jù)收集、處理和存儲。

b)傳感器元件(或傳感子系統(tǒng)) - 一組傳感器,可以是無源或有源,數(shù)字或模擬的任意組合。這些傳感器將來自外部環(huán)境的輸入信息轉(zhuǎn)換成電信號。在大多數(shù)應(yīng)用中,傳感器用于監(jiān)測運(yùn)動、光、氣壓、振動、流速、溫度、通風(fēng)、電等。通常來說,傳感器元件在其輸出端生成電壓或電流信號。在數(shù)據(jù)被處理、存儲和傳輸之前,這些信號一般會被放大,并通過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號。

c)無線電 - 一種短距離收發(fā)器,提供與主機(jī)的無線通信。

d)電源子系統(tǒng) - 通常連接到電池或能量采集器。該子系統(tǒng)充當(dāng)可控單元,可單獨打開和關(guān)閉系統(tǒng)構(gòu)建塊的電源。它通常是MCU軟件中的一個軟件塊。電源子系統(tǒng)負(fù)責(zé)為每個單獨的硬件組件提供合適的電源電壓。

在具有多個傳感器的更復(fù)雜的基于微控制器的架構(gòu)中,在硬件中集成了智能,用來控制各種子系統(tǒng)。 例如,從傳感器到存儲器傳輸數(shù)據(jù)耗時又耗電,這一部分工作其實可以從處理器轉(zhuǎn)移到直接內(nèi)存存?。―MA)單元。電源管理單元(PMU)還可以被編程為對特定事件做出反應(yīng)并關(guān)閉各種子系統(tǒng),例如外設(shè)、傳感器和無線電。

圖1.jpg                                             

圖1. 基于微控制器的典型架構(gòu)

這種先進(jìn)架構(gòu)的目的是盡可能減少主MCU活躍的時間。原來需要MCU干預(yù)的任務(wù),現(xiàn)在可以由智能子系統(tǒng)執(zhí)行。然而,還存在一個問題,就是每次有來自傳感器、無線電或各種子系統(tǒng)的事件時,MCU都需要被喚醒,因為它是唯一可以部署邏輯來處理這些事件的元件。

優(yōu)化功率的技術(shù) - 添加傳感器節(jié)點控制器

為了延長具有多個傳感器的系統(tǒng)的續(xù)航時間,已經(jīng)提出了很多種降低功耗的技術(shù)[2],[3]。有些技術(shù)在媒體訪問控制層面進(jìn)行節(jié)能[4],[5],有些技術(shù)從數(shù)據(jù)聚合或融合著手[6],[7],有的則采用芯片設(shè)計優(yōu)化技術(shù),如片上功率門控[8]或動態(tài)電壓調(diào)節(jié)[9]。

本文介紹了一種不同的技術(shù),來優(yōu)化多傳感器系統(tǒng)中的電源使用,同時將主處理器用于數(shù)據(jù)采集的喚醒時間控制到最短。該技術(shù)基于集成復(fù)雜的硬件狀態(tài)機(jī),可以接管主處理器上的重復(fù)性任務(wù),如傳感器輪詢和讀取,從而實現(xiàn)集成的低功耗傳感器中樞概念。專用硬件狀態(tài)機(jī)可以更快地喚醒,并使用更少的模塊來將數(shù)據(jù)從傳感器/外設(shè)傳輸?shù)絻?nèi)存,以及反向傳輸,而主處理器保持休眠狀態(tài)。此外,傳感器中樞可以對數(shù)據(jù)執(zhí)行簡單操作,因此主處理器只需要在要求復(fù)雜數(shù)據(jù)操作時喚醒。

這種方法的一個很好的例子,是集成在Dialog半導(dǎo)體公司的DA1469x藍(lán)牙低功耗SoC解決方案中的傳感器節(jié)點控制器(SNC)硬件模塊[10]。SNC是一種微型硬件狀態(tài)機(jī),能運(yùn)行由有限的指令集組成的微碼(μcode),有助于開發(fā)人員操控通信控制器(即SPI、I2C等)、傳感器和外設(shè)。它可以通過使用其最小指令集自動運(yùn)行,無需喚醒系統(tǒng)的其余部分。這允許它執(zhí)行眾多操作 - 例如:輪詢傳感器狀態(tài)位、比較寄存器與內(nèi)存地址內(nèi)容(值)、將數(shù)據(jù)從通信接口傳輸?shù)较到y(tǒng)RAM以及比較分支 - 同時消耗最低電流。

圖2.jpg

圖2. 具有傳感器節(jié)點控制器外設(shè)的應(yīng)用處理器架構(gòu)

SNC的主要特性如下(圖3):

· 傳感器節(jié)點指令集(SeNIS),包含10條微碼生成指令,適用于:

o   輕松創(chuàng)建指向內(nèi)存緩沖區(qū)的指針

o   輪詢串行接口狀態(tài)位

o   比較閾值

· 系統(tǒng)RAM用于微碼存儲和數(shù)據(jù)

· DMA功能,用于將數(shù)據(jù)直接從通信接口傳輸?shù)较到y(tǒng)RAM

· 直接訪問所有外設(shè)和寄存器

· 通過PMU在中斷觸發(fā)和域上電(例如定時器、GPIO)后立即執(zhí)行

· SNC到主處理器通知,以及反向通知

SNC與所有通信接口(SPI、I2C和UART)位于相同的電源域,SNC還可以控制其他電源域。它執(zhí)行駐留在系統(tǒng)RAM中的微碼,其中SNC具有直接內(nèi)存連接;以系統(tǒng)時鐘速度運(yùn)行;并且可以生成中斷以通知PMU所有操作都已完成,從而可以關(guān)閉整個系統(tǒng)的電源。

圖3.jpg

圖3. 傳感器節(jié)點控制器框圖

使用此類專用硬件執(zhí)行傳感器和外設(shè)數(shù)據(jù)操作的架構(gòu)的主要優(yōu)點是:

· 主CPU睡眠時間更長,從而可以節(jié)省功耗

· 節(jié)省MIPS,因為CPU不必訪問慢速外設(shè)或執(zhí)行簡單的數(shù)據(jù)操作

不過它有一些缺點。SNC編程模型的非常簡單的指令集僅允許基本操作。另外,編程SNC需要使用匯編語言。最后,由于SNC是一個非常簡單的模塊,調(diào)試會變得復(fù)雜。

節(jié)省功耗和MIPS

我們已經(jīng)進(jìn)行了一系列測量,證明了使用SNC可以實現(xiàn)的功耗和MIPS節(jié)省。這些測量是在Dialog的基于ARM Cortex-M33的DA1469x SoC上進(jìn)行的,并比較了只使用主CPU和在SNC支持下執(zhí)行的相同任務(wù)。 第一組測量集中在訪問通常用于傳感器讀數(shù)的慢速外設(shè)(如I2C和SPI)時節(jié)省的功耗/MIPS。第二組測量著眼于使用DA1469x中包含的藍(lán)牙低功耗(BLE)通信模塊的實際應(yīng)用案例。

表1描述了傳輸小型SPI或I2C數(shù)據(jù)事務(wù)(如寫/讀16/128字節(jié))時的能耗。

表1.jpg

表1:傳輸小型數(shù)據(jù)事務(wù)時的能耗(數(shù)字為1.8 V,8-bit傳輸)

與CPU(CM33)相比,SNC執(zhí)行事務(wù)所需的時間要短很多,如表2所示。由于CPU可能需要執(zhí)行忙等待,因此節(jié)省了時間相當(dāng)于節(jié)省了MIPS。

表2.jpg

表2:SNC寫/讀8 bit數(shù)據(jù)所需的時間以及CPU相應(yīng)所需的時間

對現(xiàn)實生活中的使用案例,我們比較了每隔1500毫秒(表3)和500毫秒(表4)進(jìn)行廣播時所消耗的功率,同時使用SPI每100毫秒讀取加速計傳感器一次。

表3.jpg  

表3:每1500毫秒進(jìn)行廣播時的能耗,使用SPI每100毫秒進(jìn)行一次傳感器讀取

表4.jpg

表4:每500毫秒進(jìn)行廣播時的能耗,使用SPI每100毫秒進(jìn)行一次傳感器讀取

在復(fù)雜的應(yīng)用中,如果需要訪問多個傳感器,考慮到緩存未命中和任務(wù)切換等問題,對MCU的占用會更大。

降低編程復(fù)雜度

上面提到過,使用集成的傳感器節(jié)點控制器時面臨的最大挑戰(zhàn)之一,是確?;A(chǔ)系統(tǒng)功能的編程、調(diào)試和充分利用與采用通用MCU的方案一樣簡單。挑戰(zhàn)的主要方面有:

·  提供對開發(fā)人員友好的抽象編程,以有效控制驅(qū)動與連接的傳感器/外設(shè)的通信接口,以及與主CPU通信相對應(yīng)的基本功能。

·  利用10指令匯編式編程,并提供更高級別的編程結(jié)構(gòu),以簡化和加速軟件開發(fā)。

·  支持完整的系統(tǒng)整體調(diào)試 - 而不是單獨調(diào)試每個CPU內(nèi)核,因為可能無法檢測到當(dāng)內(nèi)核并行運(yùn)行時的系統(tǒng)行為錯誤。

為了解決這些挑戰(zhàn),我們需要一個完整、易于使用的編程框架。它必須包括抽象和程序,將并發(fā)操作系統(tǒng)任務(wù)的范例擴(kuò)展到在SNC上執(zhí)行的相應(yīng)(并行)處理。我們已經(jīng)為Dialog DA1469x解決方案開發(fā)了這樣的編程框架(圖4)。它具有以下特點:

·  簡化的SNC微碼開發(fā)

o   通過定義基于SeNIS的類C編程語言,可以同時支持匯編和類C編程。

·  用于編程的“混合”編碼模型

o   在相同的源和頭文件中同時包含針對SNC和主處理器情境(context)的代碼開發(fā) -  使用了一個C預(yù)處理器來定義基于SeNIS的語言結(jié)構(gòu),方便開發(fā)人員。

·  與驅(qū)動主處理器通信接口、交換SNC通知、和操作系統(tǒng)資源相關(guān)的基礎(chǔ)機(jī)制和功能的抽象,作為一組完整且易于使用的API程序/類C函數(shù)。

·  可觀察性和高級調(diào)試機(jī)制同時應(yīng)用于SNC和主處理器執(zhí)行情境。

圖4.jpg 

圖4. SNC編程框架

SNC編程模型的特征可歸納如下:

· DA1469x應(yīng)用包括由OS任務(wù)和SNC 微碼并行執(zhí)行的進(jìn)程。

· SNC適配器向DA1469x系統(tǒng)注冊或注銷SNC微碼,從而創(chuàng)建一列SNC微碼,每個微碼由特定PMU事件觸發(fā)。

· SNC適配器采用特殊的SNC微碼,根據(jù)相應(yīng)的微碼列表實現(xiàn)注冊的SNC微碼執(zhí)行的調(diào)度,并通過其低級驅(qū)動器控制SNC硬件模塊。

· 定義了一組基于SeNIS的結(jié)構(gòu)預(yù)處理器宏,從而生成一組匯編和類C語言結(jié)構(gòu)用于SNC微碼開發(fā)。

· 提供一組低級驅(qū)動器SNC微碼,可用于驅(qū)動SPI、I2C等通信外設(shè)。

· 為操作系統(tǒng)任務(wù)和SNC微碼提供了一種機(jī)制,進(jìn)行交換:

o   通知

o   數(shù)據(jù)(即:SNC 隊列)

除了上述實現(xiàn)輕松編程SNC函數(shù)的結(jié)構(gòu)之外,還提供以下內(nèi)容以支持調(diào)試:

·  使用SNC斷點和逐步調(diào)試區(qū)域來調(diào)試SNC微碼的機(jī)制。

·  SNC仿真器,而不是SNC硬件模塊,用于改進(jìn)和簡化SNC微碼調(diào)試過程。

總結(jié)

本文介紹了一種新的架構(gòu),可最大限度地降低集成了多個傳感器和外設(shè)的便攜式系統(tǒng)的功耗。該架構(gòu)使用復(fù)雜的硬件狀態(tài)機(jī)來卸載主處理器上的一些重復(fù)性任務(wù),例如傳感器/外設(shè)輪詢和讀取。與其他架構(gòu)相比,這種新架構(gòu)在功耗和MIPS優(yōu)化方面具有很大的優(yōu)勢,不過會使編程模型變的更復(fù)雜。因此,我們還介紹了一種對開發(fā)人員友好的編程框架來克服該問題。

參考文獻(xiàn)

[1] Goran Nikoli?, Mile Stoj?ev, Zoran Stamenkovi?, Goran Pani?, Branislav Petrovi?, “Wireless Sensor Node with low power sensing”, Electronics and Energetics Vol. 27, No 3, September 2014, pp. 435 - 453

[2] V. Raghunathan, S. Ganerival, and M. Srivastava, "Emerging Techniques for Long Lived Wireless Sensor Networks", IEEE Communication Magazine, 2006, Vol.41, No. 4, (pp. 130-141)

[3] G. Anastasi, M. Conti, M. Di Francesco, and A. Passarella, "Energy Conservation in Wireless Sensor Networks: A survey", Ad Hoc Networks, 2009, Vol. 7, (pp. 537–568)

[4] W. Ye, J. Heidemann, and D. Estrin, "An Energy-Efficient Mac Protocol for Wireless Sensor Networks," Proc. IEEE Infocom, New York (USA) 2002, (pp. 1567-1576).

[5] M. Al Ameen, S.M. Riazul Islam, and K. Kwak, "Energy Saving Mechanisms for MAC Protocols in Wireless Sensor Networks", Hindawi Publishing Corporation International Journal of Distributed Sensor Networks, Volume 2010 (2010), Article ID 163413, (pp 1-16)

[6] M. Hempstead, N. Tripathi, P. Mauro, G.-Y. Wei, and D. Brooks, "An Ultra Low Power System Architecture for Sensor Network Applications," Proc. 32nd Annual International Symposium on Computer Architecture, Madison (USA) 2005, (pp. 208-219).

[7] A. Boulis, S. Ganeriwal, and M. Srivastava, "Aggregation in Sensor Networks: An Energy Accuracy Trade-Off", Ad Hoc Networks, Vol. 1, 2003, (pp. 317–331)

[8] G. Pani?, Z. Stamenkovi?, and R. Kraemer, "Power Gating in Wireless Sensor Networks", Wireless Pervasive Computing, 2008. ISWPC2008. 3rd International Symposium on Santorini, Greece, May 2008, (pp. 499-503)

[9] T. Burd, and R. Brodersen, "Energy Efficient Microprocessor Design", Kluwer Academic Publishers, Norwell MA, USA, 2002

[10] Dialog Semiconductor, “DA1469x Datasheet”

 


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。