大量的研究表明,智能家居和可穿戴設備是目前最流行的物聯網應用。嵌入式的MCU是這些物聯網應用程序的核心。 然而,為了在這個快速而有競爭力的市場上成為一個有效的基礎,嵌入式的MCU需要能夠支持不斷增長的創新速度。為了加快開發速度和降低制造成本,物聯網設計師們正在尋找單片機的MCU,這種單片機集成了安全性、 I/O功能以及與超低功耗系統設計的無線連接,以及一個靈活的架構,以便使設計與不斷變化的標準保持最新的設計。
本文將介紹物聯網市場的趨勢以及智能家居和可穿戴應用的相關性,然后舉例說明智能門鎖控制器的實現,將討論可穿戴應用程序以及實現,并說明如何利用可穿戴設備實現與智能家庭網絡互動。
物聯網技術使工作和生活變得更加實惠、便捷、舒適和智能。正如物聯網分析的一項研究顯示,智能家居和可穿戴設備是人們尋找的最流行的物聯網應用程序(見圖1)。
圖1 | 物聯網市場趨勢
智能家居的概念包括設備在家中的互動和用戶有限參與。例如,早上6點,鬧鐘會以最喜歡的播放列表中的音樂聲吵醒你。 與此同時,臥室的燈光慢慢亮起,讓你在自己的時間里醒來。當樓下的入侵警報系統被關閉時,廚房里的咖啡機就會打開,所以當你準備享用的時候它已經準備好了。客廳的窗簾和百葉窗開著,浴室里的毛巾加熱器溫暖了毛巾,你甚至還沒起床呢。 這真是一個智能的家。
這些物聯網設備的核心是安全性、可靠性、成本效益和無線連接。 安全保證敏感的個人信息保持私密,并且保護整個系統免受惡意黑客的侵害。可靠性對于系統的無縫、無誤控制至關重要。 連通性使無線信息交換成為能夠進行高級分析的互聯網,系統可以自學提供更加個性化的服務。 通過額外的數據,如上下文(即誰進入了房子)可以用來提高智力。例如,房間設置可以調整,以配合一個人進入家庭時的喜好。語音命令功能使得電器更容易使用,比如告訴前門為朋友和家人解鎖。最后,該系統需要降低成本,使物聯網技術能夠負擔得起大眾市場的采用。 圖2展示了一個智能家居的例子。
圖2 | 智能家居示例
智能門鎖控制器實現
為了了解開發基于IoT應用程序的復雜性,來實現一個智能的家庭門鎖控制器(見圖3)。該控制器實現門運行的指紋安全性; 兩個控制室內燈光、恒溫器和電器的房間控制節點; 溫度監測節點; 以及對所有這些節點的安全網絡(基于BLE 4.2)。要實現所有這些功能,需要進行大量的處理。今天的許多嵌入式單片機,包括本示例中使用的PSoC 6 BLE,在滿足低功耗操作要求的同時提供了足夠的處理性能。就 PSoC 6 BLE 而言,這是通過雙核體系結構實現的: Arm Cortex-M4可用于高性能任務,而 Arm Cortex-M0 + 處理低功耗任務。綜合的安全能力維護總控制器的安全性。
圖3 | 基于嵌入式單片機的智能家居示例
基于指紋的門鎖
安全是必要的,以確保未經授權的人無法通過房門進入住宅。 一個安全的系統可以使用指紋驗證來建立。 設計一個門鎖,存儲授權用戶的指紋,可以防止未經授權的人進門。 對于這個應用程序,指紋傳感器感知人的手指,嵌入式控制器對該人進行認證,然后門鎖被關閉。 更先進的功能也可以實現,如果未經授權的人試圖進入住宅,可以觸發警報或發送通知給房屋所有者。
一個基于指紋的典型認證系統包括一個指紋傳感器/模塊,該指紋傳感器和處理器運行各種高級算法,如用戶注冊和身份驗證。嵌入式MCU的高性能核心可以執行這些功能,并通過 SPI等接口管理與指紋模塊的通信。指紋技術相當成熟,指紋模塊可以從MCU制造商那里獲得,該模塊提供了一個通過模塊捕捉和驗證指紋的整個軟件框架。 例如,指紋框架負責向指紋模塊生成低級指令,并提供可以調用的封裝函數,以執行更復雜的任務,例如"獲取指紋圖像"或"注冊指紋圖像" 與模塊的SPI通信遵循一種基于中斷的方法,即主機發送一個命令并等待模塊處理命令。該模塊的響應方式是生成一個中斷,在這個中斷中,主機將讀取由模塊準備的數據。該模塊還可以配置為中斷處理器的手指觸摸傳感器。 這使得處理器能夠在低功耗狀態下運行,同時等待模塊在手指觸摸時喚醒它。
數據存儲
指紋數據可以存儲在內部Flash中。 然而,由于每個指紋圖像的大小和指紋的數量控制器可能需要支持在一般的家庭人數,Flash的成本將會增加。由于內部 Flash 是一種高級資源,特別是當設計復雜的應用程序如智能家庭控制器時,將指紋數據存儲器卸載到外部存儲,這通常是這個用例更好的方法。
外部存儲通過一個類似quad-SPI的接口進行交互,提供了一種存儲指紋數據的有效方法。 支持XIP (eXecute-In-Place)模式的 Quad-SPI 接口允許CPU將外部存儲視為內部 Flash的一部分。這使得外部存儲的訪問類似于內部的Flash訪問,從而簡化設計和操作。 此外,quad-SPI接口支持硬件中的即時軟件加密和解密(128位 AES) ,確保指紋數據安全地存儲在外部存儲中。
網絡連接
為了將門鎖控制器集成到一個智能家庭網絡中,使用了BLE。不僅將門鎖控制器與智能家居網絡相連接,而且提供了一種安全的指紋編碼方式。 這是通過將門鎖控制器與授權手機配對來實現的。 除了為用戶提供配置門鎖的接口外,還允許用戶控制注冊過程(見圖4)。
圖4 | 智能門鎖的安全方案工作流
房間控制和監控
房間控制節點允許用戶控制室內的照明、恒溫器和其他設備。它們還可以監測溫度、濕度等環境參數。 這些節點可以通過智能手機和/或本地控件來控制。 例如,圖3所示的系統包括兩個光控制節點和一個溫度監測節點。 此外,光控節點支持基于用戶識別的智能控制。例如,當使用經過身份驗證的指紋打開房門時,節點可以配置為打開燈。 同樣,當有人離開時,門是鎖著的時候,燈可以關掉(見圖5)。
圖5 | 室內控制實現示例
建立安全網絡
在通過智能手機進行配置和初始化之后,節點使用BLE安全連接建立基于集群的網絡。每個集群的中心節點都支持一個獨特的16位標記。在節點配置過程中,每個節點都提供其集群中心節點的令牌和詳細信息。這些節點將群集中心添加到一個白名單中,并僅根據請求將標記發送給被白名單的集群中心,以建立連接。 一旦連接建立起來,節點通過通知向中心節點發送數據,中心節點將數據包轉發,然后在網絡上分發。 數據包可以傳遞給另一個節點或廣播包。 例如,當用戶解鎖門時,這個信息(即用戶1已經進入了房子)可以從門鎖節點發送到其集群的中心節點。 然后數據被轉發到房間控制節點,最后,房間控制節點打開燈。
圖6 | 房間節點控制示例流
基于集群的網絡通過啟用選擇設備(集群中心節點)來處理路由和附加處理,從而消除了通過所有節點路由數據包的需要。這節省了從節點的能量和對處理能力要求,其中許多節點可能在電池上運行。 可以根據所掌握的功力選擇中心節點。 該網絡類似于低功耗無線個人區域網(6LoWPAN)上的IPv6,其中路由器(中心節點)和主機(邊緣節點)。 擁有基于集群的網絡還可以簡化通過網關(邊緣路由器)訪問互聯網的途徑,如果需要的話,可以通過互聯網遠程控制節點。
圖7 | 互聯網對房間節點的控制示例
智能家用電器可能相當復雜。以可靠和符合成本效益的方式提供安全所需要的芯片加密能力、集成的安全無線連接以及在內部和外部存儲中獲取個人數據(即捕獲的指紋)的機制。 由于物聯網的標準正在迅速變化,因此需要安全啟動過程來保證電器的更新特性。 此外,固件可配置外設和可編程模塊的可用性確保了設備可以集成物聯網系統運行所需的許多組件。
對于許多物聯網設備來說,電是至關重要的,尤其是那些使用電池的設備。低功耗設計允許設備始終保持并提供即時響應。具有動態電壓和主頻縮放的雙核體系結構允許電器支持高性能的功能,如指紋認證和功率敏感的關鍵過程,如尾跡觸摸。
可穿戴應用程序的實現
智能手表不再只是為了顯示時間。智能手表通過發送短信、電話和健康監控手段將我們的手腕變成了智能手機套件。可穿戴設備是用戶"幾乎總是"佩戴的無線設備。例如,健身監測器是一種可穿戴設備,可以通過監測心率、鍛煉、睡眠習慣、體溫、出汗等參數來跟蹤人的健康狀況。這些設備有多個傳感器,通常像智能手機或個人電腦一樣可以與互聯網連接的設備進行通信。 這些設備有三個主要特征:
始終運行: 因為健身監視器是持續運行的,所以這些設備需要長時間的電池壽命。當設計可穿戴設備時,最大的挑戰之一就是他們對電力的渴求,而且他們所能容納的電池尺寸往往有限。 監控活動: 一個健身器械監測感官、過程、日志和報告用戶活動。這包括監測多個傳感器和執行"傳感器融合",其中多個傳感器的數據通過類似DSP的引擎相互關聯,以分析更復雜的行為,并以用戶可以理解和使用的方式跟蹤它們。 交換數據: 這包括將收集和分析的信息傳遞給其他設備的能力,例如向智能手機發送通知和告警。
圖8: 可穿戴設備的特征
圖9: 使用嵌入式MCU的可穿戴健康監測設備的實現
活動監測
計步器和卡路里計數器計算一個人行走的步數,并計算出燃燒的卡路里數量。為了檢測步數,需要一個加速度傳感器。壓力傳感器也用來測量步行/跑步時海拔的變化。大多數傳感器都有一個數字接口,通常是I2C,SPI或UART。需要對已獲得的數據進行額外的過濾和處理,以計算步數、高度、燃燒的卡路里等等。這些傳感器也用于實現低功耗的系統功能,比如在檢測到運動時喚醒整個系統,以便進行實時分析。為了支持多傳感器,嵌入式MCU將需要幾個數字接口。理想情況下,這些接口可以在I2C、SPI和UART之間進行配置,以使開發人員在傳感器選擇和實現方面擁有最大的靈活性。此外,嵌入式單片機需要支持一個雙核體系結構,它具有一個能夠執行傳感器融合和復雜分析的單片機,以及一個低功耗的單片機來執行系統任務,如在運動中喚醒。
傳感器也可能需要收集環境數據,例如紫外線照射量、環境溫度、大氣壓力、指南針方向等。
GPS
全球定位系統傳感器通常是帶有UART接口的數字傳感器。 GPS傳感器提供位置(經緯度)、速度和高度信息。
在無線鏈路傳輸音頻數據之前,數字域的音頻信號處理是任何音頻系統的重要組成部分。 數據通常采用基于麥克風來收集數據,然后測量、過濾和/或壓縮。 具有集成DSP功能和音頻功能的嵌入式單片機,可以大大簡化高質量、不間斷的聲音音頻子系統的設計。
安全性
可穿戴設備需要能夠跟上不斷變化的安全協議和措施。帶有安全引導功能的嵌入式單片機確保可穿戴設備只執行經過身份驗證的代碼。此外,設備可以支持在線 OTA (OTA)更新,使更新對用戶是透明的。
用戶界面
今天的用戶已經習慣于使用按鈕、滑塊和近距離感應來觸摸顯示器。一個嵌入式的單片機也可以支持不同的輸出類型,可以支持各種顯示技術,如 Eink,OLED等。
無線連接
設備需要支持可穿戴設備操作的必要服務——無線連接,例如與低耗電藍牙的連接。
支持所有這些功能需要一個完整的固件流(見圖10)。支持可穿戴應用的制造商可以提供完整的庫,可以加速開發和降低整體設計的成本。
圖10 可穿戴設備的固件流示例
任務架構
在任何可穿戴設計中,有三個關鍵任務:
獲取數據
處理數據
與用戶的輸入和輸出(顯示)進行通信
傳感器采集通常需要比其他任務更高的處理器操作頻率,因為這種處理包括在大樣本基礎上運行的過濾器。因此,使用像Arm Cortex-M0 + 這樣的低功耗核心來進行傳感器數據的獲取效率更高。處理傳感器數據取決于所使用的算法的復雜性,開發人員必須在功率效率和處理速度之間權衡。 對于光處理,可以使用用于獲取傳感器數據的相同低功耗核心。然而,對于更多的實時操作,需要更高性能的處理器,如ARM Cortex M3/M4核心。 用戶界面,通常是一個輕量級的過程,當涉及到簡單的可穿戴顯示和輸入時,可以由任何一個核心處理,但理想的是在低功耗核心上實現。因此,為了在低功耗的可穿戴設備中實現最佳性能,需要一個雙核結構。需要注意的是,可以利用雙核架構來做固件框架管道化,通過加速任務完成來提高響應性能,并通過在核心之間共享時鐘、RAM、Flash等資源,減少資源和功耗。
低功耗處理器,如Cortex M0 +,運行一個簡單的任務調度器來處理頻繁的、低帶寬的任務,比如:
傳感器數據采集
電容式感應掃描及處理
BLE鏈路層控制器維護BLE的連接和通告
系統管理,包括安全任務和傳感器控制
高性能處理器,如 Cortex M4,作為運行 RTOS 的應用程序處理器,并處理處理器密集的應用程序級任務,如: 傳感器數據處理(如定向計算、高度計算等) 顯示圖形,如繪制文字、圖像、形狀等 完整的指紋處理,包括匹配和注冊算法 主機層任務,包括所有服務、配置文件和連接身份驗證
在共享內存和快速的處理器間通信(IPC)是核心之間的橋梁,通信延遲幾乎不存在,相比之下,兩個設備在外部進行通信幾乎是不可比的。
低功耗核心任務架構
在高級別上,低功耗核心執行兩種類型的任務: 第1級: 在每個周期執行的周期性任務和二級任務: 周期性時間檔任務,但在每個循環中執行一次(任務/周期的n個周期)。 一個計時器可以用來產生一個中斷來表示一個周期的開始,比如每10毫秒(100hz)。 1級任務在中斷事件中執行一次。時隙變量可以在每個中斷時遞增,并傳遞給二級任務管理器。根據插槽編號,執行適當的二級任務。表1提供了可在低功耗核心中執行的各種任務的例子。
任務類型BLE控制器Level 1電容式感應掃描和手勢檢測Level 1獲取和處理GPSLevel 1壓力 / 溫度數據的獲取Level 2紫外線數據的獲取Level 2電池數據采集Level 2
在完成數據采集任務或任何需要通過高性能核心運行的任務(如已經檢測到一個手勢) ,就會形成一個消息包,并通過IPC發送到高性能核心。對高性能核心發出中斷,處理消息包,并將數據適當傳遞給在高性能核心上執行的預期任務。
高性能核心任務架構
高性能核心使用一個RTOS來管理諸如BLE、運動感應、顯示更新、GPS、壓力/溫度、紫外線和指紋檢測等任務。 除了BLE、運動感應和指紋檢測外,其他任務都需要等待來自低功耗核心的數據。
可以周期性地運行 BLE 任務(每次連接間隔一次)。 完成后,任務暫停,直到下一次喚醒。
運動感應任務可以是一個非周期性的任務,只要運動傳感器本身提出一個中斷,它就會運行。 像 Invensense MPU9255這樣的運動傳感器包括一個數字運動處理器(DMP),它收集芯片上的FIFO數據,并以預先配置的速率中斷高性能核心。 在中斷時,運動傳感器任務通過SPI接口讀取運動傳感器中的FIFO,并處理數據以計算方向,步驟,卡路里燃燒等等。
指紋檢測任務可以是一個非周期性的任務,當用戶在滾動、驗證或者刪除指紋時都會運行。當用戶指紋被注冊并且顯示被鎖定時,這個任務也會運行。一個注冊用戶的指紋可以用來解鎖和保護可穿戴設備。
顯示任務也可以是一個非周期性的任務,只要數據需要在屏幕上進行更新(即傳感器數據、時間、電池和來自其他任務的 BLE 通知) ,或者如果一個電容式感應的手勢事件是從低功耗核心報告的。
GPS、壓力/溫度和紫外線任務可以是偽周期任務,因為它們不會周期性地停止和喚醒。相反,在從各自的傳感器收集數據之后,任務喚醒是從低功耗核心觸發的。由于低功耗核心的數據采集速率是周期性的,所以這些任務可以在高性能核心上定期執行。
表2顯示了高性能核心管理的任務示例。
任務優先級堆棧BLE9500運動傳感器8500顯示6500壓力傳感器8200GPS傳感器8100指紋傳感器75000
處理器間通信架構
兩個同時運行的核心需要一個保護共享數據和通信的機制,以便同步固件中的任務。 雙核體系結構需要支持多個IPC機制,如 IPC鎖、消息傳遞和中斷/通知。 任務代碼可以使用IPC鎖特性來保護共享數據和 IPC 消息傳遞到核心之間的通知和數據。
IPC鎖
當訪問共享數據進行修改時,訪問核心/任務就會嘗試獲取與數據相對應的鎖。 如果鎖是空閑的,那么核心/任務將被授予訪問數據的權限。 一旦更新/處理完成,該任務就可以釋放鎖來將數據訪問到其他待完成的任務。 這保護數據不會被多個試圖同時更新或使用數據的數據損壞。
IPC消息
除了保護共享數據外,還需要一種通信方式來同步核心之間的任務。 這可以通過在內核之間傳遞的"命令和參數"消息包來實現。 當一個核心希望對方執行一個動作時,它會將動作/命令ID包含任何需要的參數到消息中,并將消息傳遞給IPC。 一旦消息包準備好,核心會在另一個核心上觸發一個IPC中斷,在這個核心中,命令被解析,然后執行。
智能家居配備可穿戴設備
為了理解可穿戴設備與智能家居互動的一些方法,可以考察一些用例。
智能廚房
智能電器只有在家長在附近(即家長的健康監察器或電話在適當范圍內)時,才能使用危害兒童的器具(例如爐子、爐子、洗碗機) ,以防止發生意外。
圖11|使用可穿戴設備的智能廚房控制
智能車庫
一個自動車庫門可以做更多的開放。 當一個人走近車道或門,設置一個預先設定好的功能序列,例如打開車道、車庫、走廊和廚房的燈光,就可以觸發'我回家'功能。車庫的門也可以調整家庭的安全設置,打開車庫內部的入口門,調整房間的供暖到預設溫度,打開家庭音響系統開始播放音樂。
圖12|使用可穿戴設備的智能車庫控制
基于手勢的交互控制
一種包含9軸運動感應的可穿戴設備可以決定用戶手腕的方向。這種定向數據可以進一步處理,以檢測基于運動的手勢。 這樣的手勢可以用來控制節點。 例如,當一個人靠近前門時,他或她可以把手腕平放,指向門,并順時針旋轉手腕來打開門或者逆時針鎖上門(見圖13)。
圖13|使用可穿戴設備的智能門鎖控制
同樣,當一個人靠近房間控制節點時,圖14所示的手勢可以用來控制光強。 例如,旋轉手腕順時針方向增加光強度,而逆時針運動則會減弱光強(見圖15)。
圖14|手腕旋轉的例子
圖15|室內燈光控制示例
隨著可穿戴設備中存在多個靜態BLE節點和處理資源,可以在了用的準確性范圍內對家庭中使用可穿戴設備的用戶進行三角測量。 這個位置,連同從9軸傳感器融合算法得到的方向性數據,可以使用戶指向一個物體并與其進行交互。 圖16顯示了一個用戶在多節點智能家居環境中與燈泡互動的例子。 門鎖、燈泡和溫度節點,每個都有一個靜態位置,用來三角定位可穿戴設備在房子里的位置。數據表明用戶指向的方向。 手腕手勢可以用來發送控制命令或者與被指向的節點進行交互。
圖16|節點控制示例
為了能夠實現這樣的功能,智能家居和可穿戴設備可以互動,可穿戴設備需要一個嵌入式的MCU,具有靈活和綜合的架構。為了能夠與可穿戴設備中的許多傳感器進行接口,嵌入式單片機必須支持多個不同的標準數字和模擬接口。 MCU還可能需要多個ADC來獲取信號和集成運算放大器,以減少組件和可穿戴形式。 如果可穿戴設備支持一個電容式觸摸顯示器,它將需要傳感器和處理資源來實現各種觸摸元件,包括按鈕、滑塊和近距離傳感器。 圖17顯示了可穿戴設備可能需要的許多功能。
圖17|適合智能家居的可穿戴設備架構
此外,如前所述,雙核體系結構將使開發人員能夠提供足夠的處理能力,同時保持整體的低功耗操作。 圖18顯示了如何在一個低功耗核心(Cortex-M0 +)和一個高性能核心(Cortex-M4)之間的功能分區。
圖18|低功耗核心(M0 +)與高性能核心(M4)之間的功能劃分
低功耗運行及效率
低功耗對于使用電池的可穿戴設備來說是必不可少的。 嵌入式單片機需要支持多種操作模式,以使開發人員能夠優化電能效率。 除了極低的睡眠和休眠模式外,MCU應該能夠動態地測量核心的電壓和頻率。
為了理解動態電壓和頻率縮放如何能夠節省大量電力,可以考慮指紋傳感器的例子。 當指紋傳感器沒有使用時,系統可以記錄到較低的頻率和電壓,比如48兆赫和0.9v(ULP)核心操作。 當指紋被啟用和運行時,指紋傳感器的指紋中斷指示指紋,系統會被記錄到更高的頻率和電壓,以提供實時處理,按96mhz 和1.1v的核心操作進行實時處理。 由于指紋操作不是那么頻繁,設備大部分時間都是在ULP 模式下運行,從而大大降低了整體功耗(見圖19)。
圖10|PSoC 6 BLE的電源管理示例
另一個優化功率效率的例子是通過管理PMIC控制器。 例如,嵌入PSoC 6的 MCU 可以關閉向其自身提供VDD的PMIC。 可以通過開關機啟用PMIC。 這就消除了對外部控制PMIC 的專用邏輯需要。 在這種功率下降模式下,單片機幾乎沒有任何電流,仍能保持時間存活。 當需要的時候,它也可以被喚醒。
安全性
可穿戴設備和智能家庭網絡之間的安全通信非常重要。安全性可以在嵌入式單片機內實現多層次的安全性:
BLE安全性
嵌入式單片機需要支持最新的安全更新到 BLE 規范,其中包括BLE安全連接和私密的鏈路層。鏈接層隱私提供一個可解析的私人地址,使黑客難以嗅到設備。
OTA安全性
安全引導確保MCU只執行信任代碼。 與OTA結合使無線應用程序能夠更新,并且只允許在設備中執行可信代碼。
加密處理器
在硬件中處理加密方法大大簡化和加速復雜的安全算法,減少開發難度并最小化CPU的干預。
外部存儲的實時解密
除了加密處理器外,嵌入式處理器還可以在串行存儲器接口上提供實時的加密/解密。 這種能力極大地簡化了外部存儲中加密代碼和數據的存儲,并提供了一個強大的實現。
評論
查看更多