想要在物聯(lián)網(wǎng)(IoT)市場(chǎng)占據(jù)一席之地,原始設(shè)備制造商(OEM)必須加快創(chuàng)新的步伐。物聯(lián)網(wǎng)的應(yīng)用讓一切變得無(wú)限可能,成功的企業(yè)會(huì)敦促其開發(fā)人員不斷拓展和采取新的、更實(shí)用的方法來(lái)發(fā)揮傳感器的功能,監(jiān)測(cè)不同類型的數(shù)據(jù),掌控整個(gè)設(shè)備的生態(tài)系統(tǒng)。
物聯(lián)網(wǎng)應(yīng)用覆蓋廣泛,包括可穿戴設(shè)備、汽車、住宅、工業(yè)、乃至城市等眾多領(lǐng)域。這些應(yīng)用需要更加高效節(jié)能的、創(chuàng)新的、安全的體系作為支持。應(yīng)用程序十分重要,旨在實(shí)現(xiàn)軟件開發(fā)的直觀性和易用性。
微控制器(MCU)作為物聯(lián)網(wǎng)產(chǎn)品的核心,選擇合適的 MCU 是滿足客戶當(dāng)前和未來(lái)需求的關(guān)鍵。本文將探討當(dāng)今不斷增強(qiáng)的嵌入式 MCU 的豐富功能,MCU 在加速設(shè)計(jì)的同時(shí)還可實(shí)現(xiàn)創(chuàng)新應(yīng)用。在第一部分,我們會(huì)介紹到先進(jìn)的工藝技術(shù)、低功耗設(shè)計(jì)技術(shù)、多核系統(tǒng)的功耗問題、多核間的通訊、串行存儲(chǔ)器接口以及系統(tǒng)安全性。
物聯(lián)網(wǎng)市場(chǎng)(增長(zhǎng)最快的引擎):
物聯(lián)網(wǎng)技術(shù)不斷改變我們的日常工作和生活方式,使我們的生活更加經(jīng)濟(jì)、便捷、舒適和智能化。物聯(lián)網(wǎng)市場(chǎng)可以大致分為兩大類:消費(fèi)型物聯(lián)網(wǎng)和企業(yè)物聯(lián)網(wǎng)。
消費(fèi)型物聯(lián)網(wǎng)包括住宅、生活方式、健康和出行。個(gè)人用戶可以通過(guò)這些物聯(lián)網(wǎng)設(shè)備產(chǎn)品提高其生產(chǎn)力、安全性和生活質(zhì)量。從智能住宅到聯(lián)網(wǎng)汽車,消費(fèi)者市場(chǎng)正在為下一波浪潮做好準(zhǔn)備。
圖1:消費(fèi)型物聯(lián)網(wǎng)市場(chǎng)細(xì)分
企業(yè)物聯(lián)網(wǎng)的覆蓋范圍巨大,包括零售、醫(yī)療、能源、出行、城市、制造業(yè)和公共服務(wù)。企業(yè)物聯(lián)網(wǎng)細(xì)分市場(chǎng)會(huì)改變組織和社區(qū),從而創(chuàng)造一個(gè)實(shí)現(xiàn)經(jīng)濟(jì)增長(zhǎng)的新時(shí)代。物聯(lián)網(wǎng)通過(guò)連接數(shù)據(jù)、人員和機(jī)器來(lái)提高生產(chǎn)力、生產(chǎn)效率以及日常運(yùn)營(yíng)水平。企業(yè)物聯(lián)網(wǎng)也可以作為幫助企業(yè)識(shí)別未開發(fā)領(lǐng)域新增長(zhǎng)機(jī)會(huì)的工具。
工藝技術(shù)(尺寸 — 十分重要):
制造 MCU 的工藝技術(shù)對(duì)于其本身的性能、低功耗和成本而言至關(guān)重要。物聯(lián)網(wǎng)應(yīng)用需要高效的有源功耗和低功耗模式消耗來(lái)提高系統(tǒng)的整體功效。隨著制造技術(shù)的不斷進(jìn)步,促使硅核心面積不斷縮小。同一塊硅片上可以制造出更多的 MCU,從而降低了芯片的整體成本,性能和功耗也因此直接受到影響。尺寸的縮小減少了開啟/關(guān)閉每個(gè)晶體管所需的電流,同時(shí)保證了時(shí)鐘頻率不變。因此,更小的芯片意味著具備更高的的最大時(shí)鐘頻率,可以在較低的功耗下實(shí)現(xiàn)更高的性能。
例如,用于制造賽普拉斯半導(dǎo)體 PSoC 6 BLE 系列 MCU 的 40 納米工藝技術(shù),為各種物聯(lián)網(wǎng)應(yīng)用提供了高性能,且高效節(jié)能的解決方案。深度睡眠時(shí)的電流僅為幾微安,且能夠完全保留RAM數(shù)據(jù)。運(yùn)行、睡眠、低功耗運(yùn)行和低功耗睡眠等其他功耗模式,助力開發(fā)人員能夠在靈活地優(yōu)化系統(tǒng)功耗的同時(shí)根據(jù)需求保持應(yīng)用的高性能。
圖3:用于物聯(lián)網(wǎng)應(yīng)用的低功耗 MCU 框圖
功率(至關(guān)重要):
設(shè)計(jì)物聯(lián)網(wǎng)設(shè)備時(shí)所面臨的一大挑戰(zhàn)是高能耗。大多數(shù)物聯(lián)網(wǎng)設(shè)備處于實(shí)時(shí)在線、小體積,這意味著自身電池容量非常有限。MCU 供應(yīng)商在優(yōu)化其在物聯(lián)網(wǎng)應(yīng)用時(shí)需要考慮諸多因素,比如:
• 改進(jìn)工藝技術(shù)
• 提供高度靈活的功耗模式
• 實(shí)現(xiàn)功耗優(yōu)化過(guò)的硬件 IP 模塊
• 更高的集成度以減少組件數(shù)量
• 優(yōu)化閃存頻率
• 啟用高速緩存
• 支持更大范圍的工作電壓
然而,在工藝技術(shù)縮小體積、提高性能、改進(jìn)功耗和集成度的同時(shí),也出現(xiàn)了電流泄漏的管理問題,尤其是在低功耗模式下。為了應(yīng)對(duì)電流泄漏問題的挑戰(zhàn),MCU 供應(yīng)商采用了特殊的晶體管工藝技術(shù),如多柵器件、高壓晶體管/邏輯/電路、專門設(shè)計(jì)的存儲(chǔ)單元以及其多方面的技術(shù)。
靈活的功耗模式能夠促使開發(fā)人員安排獨(dú)立系統(tǒng)活動(dòng),從而優(yōu)化整體功耗。提供多種可以在低功耗模式下運(yùn)行且可以在不喚醒 CPU 的情況下被喚醒執(zhí)行其功能的外設(shè),是這方面的關(guān)鍵技術(shù)。一些 MCU還提供外圍設(shè)備,只能執(zhí)行有限功能的特殊低功耗工作模式(例如較低的工作頻率和電壓)以進(jìn)一步優(yōu)化應(yīng)用功耗,甚至可以設(shè)計(jì)優(yōu)化功耗的特定外設(shè),即BLE 無(wú)線電可以采用支持低功率無(wú)線通訊的設(shè)計(jì)。
影響功耗的另一個(gè)因素是非易失性(NV)內(nèi)存訪問,尤其是使用閃存(NV存儲(chǔ)器)存儲(chǔ)固件代碼的 MCU。閃存訪問的任何優(yōu)化都會(huì)大大降低功耗,其目標(biāo)是盡量減少閃存訪問的頻率。這里使用了兩種常用的技術(shù),其中一種是提供一個(gè)高速緩沖存儲(chǔ)器。這樣,實(shí)際的代碼存儲(chǔ)器(閃存)就無(wú)需在每個(gè)執(zhí)行周期都被訪問。另一種方法是增加一個(gè)周期內(nèi)獲取的數(shù)據(jù)量,通過(guò)使用范圍更廣的閃存訪問降低閃存的訪問頻率。
基于物聯(lián)網(wǎng)的 MCU 也可以提供靈活的電源系統(tǒng)。在支持寬電源電壓范圍的情況下,MCU 可以由多個(gè)電源供電。例如像健身跟蹤器這類簡(jiǎn)單的物聯(lián)網(wǎng)應(yīng)用,可以由紐扣電池來(lái)供電,而智能手表這類復(fù)雜的物聯(lián)網(wǎng)應(yīng)用則需要由 PMIC (電源管理集成電路)供電。另外,一些 MCU 通過(guò)其內(nèi)部的降壓轉(zhuǎn)換器來(lái)有效地調(diào)節(jié)自身電源。
在考慮 MCU 的功耗模式時(shí),超越其基本架構(gòu)十分重要。例如,標(biāo)準(zhǔn) ARM CPU 內(nèi)核支持運(yùn)行、睡眠和深度睡眠。附加功耗模式通常由特定的 MCU 供應(yīng)商添加。例如,賽普拉斯的 PSoC 6 BLE MCU可執(zhí)行包括,低功耗運(yùn)行、低功耗睡眠和休眠狀態(tài)在內(nèi)的六種工作功耗模式。
多處理器 MCU(加快并行應(yīng)用程序任務(wù)的運(yùn)行速度):
基于物聯(lián)網(wǎng)系統(tǒng)功能特性的增長(zhǎng),其復(fù)雜性也隨之增加,而實(shí)際尺寸則越來(lái)越小。MCU 制造商的目標(biāo)是提高系統(tǒng)的性能,同時(shí)盡可能降低尺寸和減少功耗。多核 MCU 和片上系統(tǒng)(SoC)通過(guò)在單個(gè)芯片中集成更多功能和最大限度地減少芯片面積提供更高的性能。多核處理器是包含兩個(gè)或更多個(gè)獨(dú)立核心(或 CPU)的 MCU 或 SoC。這些內(nèi)核通常集成在單個(gè)芯片上,它們也可以作為一個(gè)封裝中的多個(gè)芯片。
多核 MCU 有助于提供高性能并保持小尺寸??纱┐髟O(shè)備等典型的物聯(lián)網(wǎng)設(shè)計(jì)需要多個(gè)MCU,包括:一個(gè)用于無(wú)線通信的 BLE 控制器、用于執(zhí)行用戶界面的 Touch MCU 和一個(gè)用來(lái)實(shí)現(xiàn)該應(yīng)用程序運(yùn)行的主要的 MCU。這三種 MCU 的功能可以由一個(gè)高度集成的多核 MCU 提供。
多核 MCU 可帶來(lái)許多其他益處。例如,它可以集成足夠的資源使 CPU 能夠并行處理密集型任務(wù),從而充分發(fā)揮多任務(wù)處理的效率。這也使開發(fā)人員可以有效地將系統(tǒng)事件分配給特定的內(nèi)核,從而達(dá)到功耗和性能目標(biāo)。再比如,在雙核可穿戴設(shè)計(jì)中,可以將需要較少 CPU 干預(yù)的周期性功能(例如無(wú)線廣播和觸摸感應(yīng))分配給一個(gè)內(nèi)核。其他“頻繁接觸”的功能,如需要 CPU 頻繁干預(yù)的傳感器融合等,可以分配給另一個(gè)內(nèi)核。當(dāng)在系統(tǒng)中運(yùn)行多個(gè)應(yīng)用程序時(shí),這種分區(qū)縮短了延遲時(shí)間。通過(guò)整合協(xié)議棧和程序存儲(chǔ)器的集成還可以提高效率。
圖5:物聯(lián)網(wǎng)多核 MCU 示例
圖6表示的是一個(gè)多核 MCU — 賽普拉斯 MCU PSoC 6 BLE。該雙核 MCU 具有兩個(gè)32位 ARM Cortex CPU — Cortex-M4 和 Cortex-M0+。這兩個(gè) CPU 都是具備一個(gè)32位的數(shù)據(jù)路徑、寄存器和存儲(chǔ)器接口的32位處理器。Cortex-M4是專為實(shí)現(xiàn)短中斷響應(yīng)時(shí)間、高代碼密度和高32位吞吐量同時(shí)保證嚴(yán)格的成本和功耗預(yù)算而設(shè)計(jì)的主 CPU。Cortex-M0+ 作為輔助 CPU,用于提供網(wǎng)絡(luò)安全、物理安全和保護(hù)功能。Cortex CPU 執(zhí)行 Thumb指令集的一個(gè)子集,并具有兩種被稱為線程模式和處理者模式的操作模式。這些 CPU 在退出復(fù)位并執(zhí)行應(yīng)用程序軟件時(shí)會(huì)進(jìn)入線程模式。為了處理異常情況,CPU 會(huì)進(jìn)入處理者模式。當(dāng)所有異常處理完成后,CPU 返回到線程模式。
圖6:多核嵌入式 MCU 示例(PSoC 6 BLE)
處理器間通訊(實(shí)現(xiàn)外設(shè)共享和信息交換):
多核 MCU 通過(guò)需要處理器間通訊(IPC)來(lái)協(xié)調(diào)內(nèi)核之間的運(yùn)行。IPC 充當(dāng)分配處理器間消息的通信管理器?,F(xiàn)代 CPU 架構(gòu)(如 ARM Cortex)支持硬件和固件中的多核通信,比如 SEV(發(fā)送事件)指令在執(zhí)行時(shí)會(huì)提示設(shè)備中的所有核心。MCU 供應(yīng)商采用多種方法來(lái)實(shí)現(xiàn) IPC:
中斷法:這種方法讓一個(gè)內(nèi)核向另一個(gè)內(nèi)核發(fā)送一個(gè)中斷來(lái)指示一個(gè)應(yīng)用程序事件。通常中斷程序非常緊湊,不會(huì)占用太多的代碼存儲(chǔ)空間。與任何中斷機(jī)制一樣,每個(gè)中斷都有自己的 ISR(中斷服務(wù)程序),通過(guò)它可以讓相應(yīng)的內(nèi)核執(zhí)行特定的任務(wù)。在實(shí)際的數(shù)據(jù)傳遞中,有一個(gè)可以被多個(gè)內(nèi)核訪問的共享內(nèi)存。除了共享數(shù)據(jù)之外,它還提供了請(qǐng)求和確認(rèn)消息的機(jī)制。
郵箱:郵箱是 RAM 中的專用存儲(chǔ)空間,用于讓每個(gè) CPU 相互發(fā)送和接收消息。每個(gè)內(nèi)核都要維護(hù)自己的 RAM 內(nèi)存(郵箱)并將消息發(fā)送到其他內(nèi)核的郵箱。
消息隊(duì)列:消息隊(duì)列使用共享內(nèi)存的兩個(gè)區(qū)域來(lái)存儲(chǔ)每個(gè)核心發(fā)送給另一個(gè)核心的消息。第一個(gè)區(qū)域是被稱為命令緩沖器的專用存儲(chǔ)器,用于存儲(chǔ)從主機(jī)發(fā)送到從機(jī)的命令。另一個(gè)專用存儲(chǔ)器被稱為消息緩沖器,它使從機(jī)能夠響應(yīng)主機(jī)。
圖7:處理器間通訊(IPC)的各種模式
信號(hào)量:信號(hào)量是一種防止多個(gè)源同時(shí)訪問共享資源的機(jī)制。在多核處理器中,共享硬件位置作為信號(hào)量指示特定內(nèi)核是否正在使用特定的共享外設(shè)等。在訪問外設(shè)之前,系統(tǒng)中的其他內(nèi)核會(huì)讀取信號(hào)量狀態(tài)以查看是否可用。
串行存儲(chǔ)器接口(IoT 內(nèi)存的選擇):
內(nèi)存是任何物聯(lián)網(wǎng)系統(tǒng)不可缺少的組成部分。其功能主要是代碼和數(shù)據(jù)存儲(chǔ)。現(xiàn)代物聯(lián)網(wǎng)設(shè)備不斷增長(zhǎng)的智能化需求帶動(dòng)了對(duì)更大代碼和數(shù)據(jù)存儲(chǔ)器的需求。但是將所有這些內(nèi)存作為內(nèi)部存儲(chǔ)器集成到設(shè)備中會(huì)增加 MCU 的芯片尺寸和成本。另一種方法是根據(jù)需要提供外部擴(kuò)展內(nèi)存。這樣開發(fā)人員就能夠根據(jù)最終應(yīng)用程序的需要添加內(nèi)存。另外,如果在開發(fā)過(guò)程中內(nèi)部存儲(chǔ)空間預(yù)算不足,則可以增加外部存儲(chǔ)器而不必重新設(shè)計(jì)整個(gè)系統(tǒng)。
了解外部存儲(chǔ)器接口的速度和安全性以及使用方法也很重要。通常情況下,在節(jié)省 MCU上有限的 IO 引腳方面,串行存儲(chǔ)器比并行存儲(chǔ)器更好。基于 SPI 的串行存儲(chǔ)器為數(shù)據(jù)記錄提供了理想的接口速度,而直接執(zhí)行外部代碼則需要更高的速度。這些要求使 MCU 制造商必須提供 SPI 的替代品。以下是不同方案的數(shù)據(jù)吞吐量速度比較。
• SPI:支持1位/循環(huán)的吞吐量
• 雙路SPI:支持2位/循環(huán)的吞吐量
• 四路SPI:支持4位/循環(huán)的吞吐量
• 雙四路SPI:支持1字節(jié)/循環(huán)的吞吐量
通常情況下,MCU 同時(shí)支持多種類型的存儲(chǔ)器,為開發(fā)人員提供了最大的靈活性。
由于許多物聯(lián)網(wǎng)系統(tǒng)會(huì)處理用戶的個(gè)人數(shù)據(jù),因此確保數(shù)據(jù)的安全尤為重要。代碼存儲(chǔ)器也同樣需要保護(hù),以防止設(shè)備被非法入侵。外部存儲(chǔ)器在安全性方面更加脆弱,因此需要特殊的機(jī)制來(lái)保護(hù)外部存儲(chǔ)的數(shù)據(jù)。為此,MCU 使用各種加密技術(shù)(例如 AES、DES、RSA)來(lái)保護(hù)數(shù)據(jù)和代碼免受非法訪問。例如,賽普拉斯半導(dǎo)體的 PSoC 6 BLE MCU 提供了一個(gè)特殊的串行存儲(chǔ)器接口(SMIF)外設(shè),該外設(shè)支持直接執(zhí)行外部代碼的 XIP(現(xiàn)場(chǎng)執(zhí)行)模式和記錄數(shù)據(jù)的 MMIO(內(nèi)存映射 IO)模式。它使用特殊命令進(jìn)行控制,比如閃存的編程/擦除、存儲(chǔ)器設(shè)備的睡眠模式輸入等。
圖8:串行存儲(chǔ)接口(SMIF)示例
SMIF 允許用戶配置多個(gè)相同或不同類型和大小的存儲(chǔ)設(shè)備。在內(nèi)存(XIP)模式下,多個(gè)內(nèi)存設(shè)備被映射到不同的地址。它們可以是不同類型和用途的存儲(chǔ)器,也可以是在連續(xù)地址空間中配置以模擬連續(xù)大存儲(chǔ)器的相同存儲(chǔ)器設(shè)備。SMIF 外設(shè)和 SPI 閃存的組合使用可以替代外部 NAND 和 NOR 閃存,并且可以節(jié)省電路板空間。由于串行閃存直接映射到處理器的內(nèi)存空間數(shù)據(jù)存儲(chǔ)中并且支持 XIP 的執(zhí)行,所以其易用性高于 NAND 內(nèi)存。
系統(tǒng)的網(wǎng)絡(luò)安全、隱私和設(shè)備安全(信任根源):
設(shè)備一旦連網(wǎng)就存在被黑客入侵的可能性。因此,無(wú)論設(shè)備是運(yùn)動(dòng)手環(huán)還是聯(lián)網(wǎng)汽車,物聯(lián)網(wǎng)設(shè)備的安全性都是一個(gè)不容忽視的因素。所有層面都需要數(shù)據(jù)保護(hù),包括存儲(chǔ)、處理和通訊期間,從而確保系統(tǒng)的可靠性。另外,任何處理數(shù)據(jù)的軟件或固件都應(yīng)得到保護(hù)??梢栽趦蓚€(gè)層面上實(shí)現(xiàn)這種安全性。第一個(gè)層面是軟件安全,第二個(gè)層面是硬件安全,即通過(guò)硬件保護(hù)軟件。
通常,安全軟件使用存儲(chǔ)在代碼空間內(nèi)的密鑰。雖然這在技術(shù)上可以實(shí)現(xiàn)加密和解密,但這個(gè)過(guò)程仍然容易受到黑客攻擊。這是因?yàn)樗且粋€(gè)存儲(chǔ)代碼,當(dāng)代碼被解碼的那一刻,安全性就蕩然無(wú)存了。
安全硬件則使用集成電路來(lái)保護(hù)系統(tǒng),比如代碼和數(shù)據(jù)的加密和解密。安全硬件是獨(dú)立的,不需要任何額外的軟件來(lái)操作,這杜絕了惡意代碼、感染、污染或其他漏洞破壞系統(tǒng)、客戶數(shù)據(jù)和服務(wù)的可能性。因此,在保護(hù)敏感數(shù)據(jù)或代碼時(shí),安全硬件是首選方法。所以用于物聯(lián)網(wǎng)的 MCU 具有復(fù)雜的集成硬件安全特性,如密碼塊、代碼保護(hù) IP 和其他基于硬件的機(jī)制。
與固件相比,安全硬件還具有提供更快性能和更低功耗的優(yōu)勢(shì)。比如,賽普拉斯 PSoC 6 BLE MCU 中的專用加密模塊可加速加密功能。此外,該模塊提供了真隨機(jī)數(shù)生成功能、對(duì)稱密鑰加密和解密、哈希、消息認(rèn)證、隨機(jī)數(shù)生成(偽隨機(jī)和真隨機(jī))、循環(huán)冗余校驗(yàn)以及諸如啟用/禁用、中斷設(shè)置和標(biāo)記等實(shí)用功能。該 MCU 組件還配備了安全啟動(dòng)功能。該功能使用 ROM 程序在閃存中驗(yàn)證用戶數(shù)據(jù)。安全啟動(dòng)是一項(xiàng)包含加密技術(shù)的過(guò)程,它使物聯(lián)網(wǎng)設(shè)備開始執(zhí)行已認(rèn)證的可信軟件。因此,系統(tǒng)可以從一個(gè)已知、可信的狀態(tài)開啟。
在第一部分中,我們介紹了先進(jìn)的工藝技術(shù)、低功耗設(shè)計(jì)技術(shù)、多核系統(tǒng)的功耗、內(nèi)核間通訊、串行存儲(chǔ)器接口以及系統(tǒng)安全性。第二部分將介紹高級(jí) BLE 無(wú)線鏈路、模擬前端、智能觸摸界面以及其他重要的物聯(lián)網(wǎng)設(shè)計(jì)技術(shù)。
推薦閱讀:
一款非常實(shí)用的MCU的智能照明平臺(tái)設(shè)計(jì)
電源模塊在嵌入式系統(tǒng)設(shè)計(jì)中如何選型?
有想了解車載電子系統(tǒng)電源保護(hù)和端口設(shè)計(jì)方案的嗎?
共享單車中的智能鎖,技術(shù)亮點(diǎn)全在這!