手表不再只是用來講述時間。智能手表通過啟用短信,電話和健康監控,將我們的手腕變成了智能手機皮套。可穿戴設備是用戶“幾乎總是”佩戴的無線設備。例如,健身監測器是一種可穿戴設備,可以通過監測心率,運動,睡眠習慣,體溫,汗水等參數來跟蹤一個人的健康狀況。這些設備具有多個傳感器,通常可以與連接到互聯網的設備(如智能手機或PC)進行通信。這些設備有三個主要功能:
始終開啟:由于健身監視器持續運行,因此這些設備需要較長的電池壽命。設計可穿戴設備時的一大挑戰是它們耗電量大,并且通常可以容納的電池尺寸有限。
監控活動:健身監控器感知、處理、記錄和報告用戶活動。這包括監控多個傳感器和執行“傳感器融合”,其中來自多個傳感器的數據使用類似DSP的引擎進行關聯,以分析更復雜的行為,并以用戶可以理解和使用的方式跟蹤它們。
交換數據:這包括將收集和分析的信息傳達給其他設備的能力,例如向/從智能手機發送通知和警報。
圖2顯示了使用嵌入式MCU(如PSoC 6 BLE)實現可穿戴健身監測器的情況。
活動監控:計步器和卡路里計數器計算一個人走的步數,并計算燃燒的卡路里數。要檢測步驟,需要加速度計傳感器。壓力傳感器還用于測量步行/跑步時的海拔變化。大多數傳感器都有一個數字接口,通常是 I2C、SPI 或 UART。需要對采集的數據進行額外的過濾和處理,以計算步數、海拔、燃燒的卡路里等值。這些傳感器還用于實現低功耗系統功能,例如在檢測到運動時喚醒整個系統,以便執行實時分析。為了支持可穿戴設備可能需要的多個傳感器,嵌入式MCU將需要幾個數字接口。理想情況下,這些接口可以在 I2C、SPI 和 UART 之間進行配置,為開發人員提供最大的傳感器選擇和實現靈活性。此外,嵌入式MCU需要支持雙核架構,其中MCU能夠執行傳感器融合和復雜分析,低功耗MCU用于執行運動喚醒等系統任務。
環境監測:監視器可能還需要收集環境數據,例如紫外線暴露測量值、環境溫度、大氣壓力、指南針航向等。
全球定位系統: GPS傳感器通常是帶有UART接口的數字傳感器。GPS 傳感器提供位置(緯度和經度)、速度和高度信息。
音頻:在通過無線鏈路傳輸音頻數據之前,數字域中的音頻信號處理是任何音頻系統的重要組成部分。數據通常使用基于 PDM 麥克風的聲音計收集,然后對其進行測量、過濾和/或壓縮。具有集成DSP功能和音頻功能的嵌入式MCU可以大大簡化高質量、不間斷聲學音頻子系統的設計。
安全:可穿戴設備需要能夠跟上不斷變化的安全協議和措施。具有安全啟動功能的嵌入式MCU可確保可穿戴設備僅執行經過身份驗證的代碼。此外,設備可以支持無線 (OTA) 更新,以使更新對用戶透明。
用戶界面:今天的用戶已經習慣了使用按鈕、滑塊和接近感應的觸摸顯示器。嵌入式MCU還可以支持不同的輸出類型,可以支持各種顯示技術,如Eink,OLED等。
無線連接:設備需要支持低功耗藍牙 (BLE) 連接,并為可穿戴設備操作提供必要的服務。
支持所有這些功能需要全面的固件流程(請參閱圖 3)。支持可穿戴設備應用的制造商可以提供完整的庫,以加速開發并降低整體設計投資。
任務架構
在任何可穿戴設計中,都有三個關鍵任務:
獲取數據
處理數據
與用戶通信 – 輸入和輸出(顯示)
通常,傳感器采集需要比其他任務更高的處理器操作速率,因為此類處理包括運行在大樣本基底上的濾波器。因此,使用低功耗內核(如 Arm Cortex-M0+)執行傳感器數據采集更具能效。處理傳感器數據取決于所用算法的復雜性,開發人員必須在功耗效率和處理速度之間做出權衡。對于光處理,可以使用用于采集傳感器數據的相同低功耗內核。但是,為了獲得更多的實時操作,需要更高性能的處理器,例如Arm Cortex M3 / M4內核。當涉及到簡單的可穿戴顯示器和輸入時,用戶界面通常是一個輕量級的過程,可以由任一內核處理,但理想情況下是在低功耗內核上實現的。因此,為了在低功耗可穿戴設備中實現最佳性能,需要雙核架構。請注意,可以利用雙核架構來流水線化固件框架,通過加快任務完成速度來提高響應能力,并通過在內核之間共享資源(如時鐘、RAM、Flash 等)來減少資源和功耗。
低功耗處理器(如 Cortex M0+)運行一個簡單的任務調度程序,用于處理頻繁的低帶寬任務,例如:
傳感器數據采集
電容感應掃描和處理
BLE 鏈路層控制器,用于維護 BLE 連接和通告
系統管理,包括安全任務和傳感器控制
高性能處理器(如 Cortex M4)可用作運行 RTOS 的應用處理器,并處理處理器密集型應用級任務,例如:
傳感器數據處理(即方向計算、高度計算等)
顯示圖形,如繪圖文本、圖像、形狀等。
完整的指紋處理,包括匹配和注冊算法
BLE 主機層任務,包括所有服務、配置文件和連接身份驗證
由于共享內存和內核之間的快速處理器間通信(IPC)通道橋接,與讓兩個設備進行外部通信相比,通信延遲幾乎不存在。
低功耗核心任務架構
在高級別上,低功耗內核執行兩種類型的任務 - 級別 1:在每個周期中執行的定期任務和級別 2:周期性但每 ‘n’ 個周期(n = 任務周期/每個周期持續時間)執行一次的時隙任務。定時器可用于產生中斷以指示周期的開始,例如每10 ms(100 Hz)。級別 1 任務在中斷事件上逐個執行。時隙變量可以每次中斷遞增并傳遞到2級任務管理器。根據插槽號,將執行相應的 2 級任務。
表 1 提供了可在低功耗內核中實現的各種任務的示例。
桌子 1. 低功耗核心任務
在完成數據采集任務或需要與高性能內核上運行的其他任務通信的任何事件(如檢測到手勢)時,將形成消息數據包并通過IPC發送到高性能內核。在高性能內核上引發中斷,處理消息數據包,并將數據適當地傳遞給在高性能內核上執行的預期任務。
高性能核心任務架構
高性能內核使用實時操作系統來管理 BLE、運動感應、顯示更新、GPS、壓力/溫度、紫外線和指紋檢測等任務。除了BLE、運動感應和指紋檢測之外,其他任務都在等待來自低功耗內核的數據。
BLE 任務可以定期運行(每個連接間隔運行一次)。完成后,任務將自行掛起,直到下一次所需的喚醒。
運動感應任務可以是非周期性任務,每當運動傳感器本身引起中斷時就會運行。像Invensense MPU9255這樣的運動傳感器包括一個數字運動處理器(DMP),該處理器在片上FIFO上收集數據,并以預配置的速率中斷高性能內核。中斷時,運動傳感器任務通過SPI接口讀取運動傳感器中的FIFO,并處理數據以計算方向,步數,燃燒的卡路里等。
指紋檢測任務可以是非周期性任務,每當用戶注冊、驗證或刪除指紋時都會運行。當注冊用戶指紋且顯示屏鎖定時,此任務也會運行。已注冊的用戶指紋可用于解鎖和保護可穿戴設備。
顯示任務也可以是非周期性任務,每當需要在屏幕上更新數據(即傳感器數據、時間、電池和其他任務的BLE通知)或從低功耗內核報告電容感應手勢事件時,都會運行。
GPS、壓力/溫度和 UV 任務可以是偽周期性任務,因為它們不會定期掛起和喚醒。相反,任務喚醒是在低功耗內核從相應的傳感器收集數據后觸發的。由于低功耗內核中的數據收集速率是周期性的,因此這些任務可以在高性能內核上定期執行。
表 2 顯示了高性能內核管理的任務示例。
桌子 2. 高性能核心任務
處理器間通信架構
同時運行的兩個內核需要一種機制來保護共享數據和通信,以同步固件中的任務。雙核架構需要支持多種IPC機制,如IPC鎖定、消息傳遞和中斷/通知。任務代碼可以使用 IPC 鎖定功能來保護共享數據和 IPC 消息傳遞,以便在內核之間交換通知和數據。
IPC鎖:每當訪問共享數據進行修改時,訪問核心/任務都會嘗試獲取與數據相對應的鎖。如果鎖是空閑的,則向核心/任務授予對數據的訪問權限。更新/處理完成后,任務可以釋放鎖,以將數據的訪問權限授予其他掛起的任務。這可以保護數據不被多個嘗試同時更新/使用數據的源損壞。
IPC 消息:除了保護共享數據外,還需要一種通信方式來同步內核之間的任務。這可以通過在內核之間傳遞的“命令和參數”消息包來實現。每當一個內核希望另一個內核執行操作時,它就會將具有任何必需參數的操作/命令 ID 打包到消息中,并通過 IPC 傳遞消息。消息數據包準備就緒后,內核會在另一個內核上觸發 IPC 中斷,在該內核中解析命令,然后對其執行操作。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19286瀏覽量
229817 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305151 -
可穿戴設備
+關注
關注
55文章
3815瀏覽量
167036
發布評論請先 登錄
相關推薦
評論