物聯(lián)網(wǎng),尤其是工業(yè)物聯(lián)網(wǎng) (IIoT),不僅要在很多業(yè)務(wù)部門之間產(chǎn)生變革性的影響,還要為嵌入式 IIoT 解決方案的開發(fā)帶來根本性的轉(zhuǎn)變。很多負(fù)責(zé)此類項目的工程師選擇市售的單板計算機 (SBC) 作為設(shè)計的基礎(chǔ)。盡管這種方法可以快速產(chǎn)生結(jié)果,但也會讓開發(fā)人員難以輕松地將最終的設(shè)計付諸大批量生產(chǎn)。當(dāng)選擇原型開發(fā)平臺時,一定要仔細(xì)檢查作為設(shè)計基礎(chǔ)的 MCU 以及各種支持元件,以了解它們是否可以單獨購買并能夠從頭集成到新的設(shè)計中。
本文將重點介紹用于物聯(lián)網(wǎng)設(shè)計的簡單溫度傳感器平臺的設(shè)計,還將重點說明所使用的個別元件。此外,此平臺不僅用于驗證設(shè)計理念,還將展示如何利用功耗調(diào)查對開發(fā)進行微調(diào)以及如何優(yōu)化功耗。
圖 1: IIoT 溫度傳感器的基本功能要求
考慮圖 1 中所示的簡單溫度傳感器設(shè)計。此圖突出顯示了需要為將自身的數(shù)據(jù)存儲在云平臺上的電池供電型溫度傳感器設(shè)計的基本功能塊。微控制器 (MCU) 會按預(yù)設(shè)的時間間隔輪詢溫度傳感器,然后使用無線設(shè)備建立通信鏈路并向負(fù)責(zé)接收數(shù)據(jù)的云應(yīng)用程序發(fā)送數(shù)據(jù)。對設(shè)計工程師而言,在選擇要使用的元件時需要做出很多個人決定,這些決定會影響物料清單成本。例如,溫度傳感器可能包括專用的溫度傳感器(例如Analog Devices 推出的暢銷 TMP36 系列),或者更加全面的溫度、濕度和氣壓組合傳感器(例如 Bosch Sensortec BME280),或者 Epcos-TDK 推出的普通表面貼裝 PTC 熱敏電阻器。成本只是其中一個考慮因素,還需要考慮精度、容差和接口方法。選擇的傳感器還會決定 MCU 規(guī)格。如果使用經(jīng)濟實惠的熱敏電阻器,在所需的溫度范圍可能無法與溫度呈線性關(guān)系,因此需要通過軟件執(zhí)行某種程度的斜率計算。盡管實現(xiàn)此目的所需的 MCU 資源數(shù)量是最少的,但仍需要加以考慮。從另一個極端來看,BME280 需要與主機 MCU 進行 SPI 或 I2C 通信,因此需要使用一個具有這些接口功能并能夠控制傳感器和處理更多數(shù)據(jù)的設(shè)備。對于通信方法,也同樣需要做出很多關(guān)鍵決定。最重要的決定或許是要使用的無線協(xié)議,最常用的協(xié)議是藍(lán)牙和 Wi-Fi。藍(lán)牙可進行短距離的通信,適合傳輸相對較少的數(shù)據(jù),通常與網(wǎng)關(guān)設(shè)備進行通信,網(wǎng)關(guān)設(shè)備可能會首先將數(shù)據(jù)整合,然后再使用長距離通信協(xié)議(例如 Wi-Fi)進一步傳輸這些數(shù)據(jù)。利用傳感器進行 Wi-Fi 通信時,無需使用中間網(wǎng)關(guān),因此可進行長距離通信,適合傳輸更多的數(shù)據(jù),但功耗會更高。
決定使用無線通信之后,還需要決定是選擇使用分立方法還是預(yù)認(rèn)證的無線模塊。除非您的公司擁有自己的射頻專家設(shè)計團隊且預(yù)期的產(chǎn)量非常高,否則很可能會使用模塊方法。
這種設(shè)計的最終功能是電源管理。為傳感器供電的其中一種方法是從可更換的鈕扣電池供電,但也可以使用具有無線能量收集技術(shù)或小型太陽能板的充電電池。此外,如果能夠?qū)?MCU 和無線模塊置于多種不同的休眠模式,則會非常有利于降低功耗以延長電池壽命。通常使用軟件來以這種方式實現(xiàn)對設(shè)備的控制。這種設(shè)計的其他考慮因素還包括預(yù)期的產(chǎn)量,以及此傳感器是否有可能是公司希望開發(fā)并推出的眾多傳感器產(chǎn)品之一。如果是后一種情況,則開發(fā)基于平臺的方案可獲得更多的優(yōu)勢,在該方案中,MCU 和無線功能在整個系列內(nèi)都是通用的,每種型號只有傳感器特定的電路有所不同。
當(dāng)原型開發(fā)考慮采用傳感器設(shè)計(例如前面重點介紹的設(shè)計)時,設(shè)計工程師可以通過多種不同的方式搭建設(shè)計。過去,制造商的開發(fā)套件和評估板提供了構(gòu)建設(shè)計基礎(chǔ)的理想學(xué)習(xí)平臺,不過在很多情況下集成各種功能時,需要執(zhí)行一些設(shè)計工作和嵌入式開發(fā)。但完全集成的新款緊湊型單板計算機 (SBC) 正日益受到希望最大限度縮短原型開發(fā)時間的工程師的歡迎,這種設(shè)計足夠開源,因此工程師能夠以此 SBC 為中心構(gòu)建最終設(shè)計的基礎(chǔ)。在這種情況下,必須能夠買到 SBC 的所有核心元件,并且知識共享許可證必須涵蓋所有的器件庫。
完全集成的緊湊型 SBC 的一個很好的例子是 Adafruit Feather M0 Wi-Fi(圖 2)。
圖 2: Adafruit Feather M0 Wi-Fi 單板計算機。
Adafruit Feather M0 Wi-Fi 的重量僅為 6.1 克,尺寸僅為 2.1 x 0.9 x 0.3 英寸,配有采用 QFN 封裝并以 48 MHz 頻率運行的 Microchip ATSAMD21G18 MCU 以及 256 kB 閃存和 32 kB SRAM。這款采用 Arm? Cortex?-M0 的設(shè)備提供了 20 個可用的 GPIO 引腳、8 個 PWM 端口、10 個 12 位的模擬輸入和 1 個 DAC。外設(shè)的串行通信接口包括 SPI、I2C 和 UART。板載 Diodes Inc. AP2112K-3.3 3.3 VDC 穩(wěn)壓器的峰值電流能力為 600 mA,允許整個開發(fā)板通過微型 USB 連接器供電。邏輯電平保持在 3.3 VDC,因此如果連接到任何 5 VDC 設(shè)備,需要使用電平位移器。此外,該板也可以通過 3.7 VDC LiPo 電池和微芯片 MCP7331T-2ACI/OT 充電器 IC 結(jié)合供電。已通過類型審批的 FCC 認(rèn)證微芯片 ATWINC1500 模塊配有集成天線,可進行 2.4 GHz、802.11 b/g/n Wi-Fi 通信。在正常工作條件下,MCU 的板功耗約為 10 mA,無線模塊傳輸期間的板峰值功耗為 300 mA。
Adafruit Feather M0 Wi-Fi 示意圖如圖 3 所示。
圖 3: Adafruit Feather M0 Wi-Fi 示意圖。
該板的 BOM 包括一個 32.768 kHz 的晶體、四個 LED 以及幾個電阻器和電容器。
具有 USB 引導(dǎo)程序的 MCU 允許使用暢銷的 Arduino IDE,為 Feather 產(chǎn)品的軟件開發(fā)提供了便利。使用這種方法可以快速開發(fā)應(yīng)用程序,而緊湊的 Feather 板可輕松集成到早期小批量生產(chǎn)的測試版新產(chǎn)品中。專業(yè)開發(fā)人員無需使用 Feather 的 Arduino USB 串行程序和調(diào)試功能,相反,他們可以選擇使用 Atmel 軟件框架 (ASF),此框架使用位于板下側(cè)的 SWDIO/SWCLK 引腳。正如前文所述,成功使用 SBC 為您的設(shè)計開發(fā)原型的關(guān)鍵在于能夠基于 SBC 的核心元件搭建您自己的設(shè)計。Adafruit Feather M0 無疑也支持這種方法。MCU 和無線模塊可在市面上直接夠得,提供多種開發(fā)工具和資源??梢栽诖颂幷业?Microchip SAMD21G18 微控制器規(guī)格書,此規(guī)格書詳細(xì)說明了可用的器件選項和封裝尺寸。硬件資源包括 ATSAMD21 XPRO 評估板、內(nèi)容全面的用戶指南,以及在在線仿真器、編程器和調(diào)試器 (Atmel-ICE),還包括一系列擴展板,例如裝有多種傳感器的 ATIO1-XPRO。WINC1500 也受到開發(fā)資源的良好支持,包括可與 ATSAMD21 XPRO 配合使用的 XPRO 擴展板 ATWINC1500-XPRO。
Feather 提供了一個可用于驗證設(shè)計理念并開發(fā)原型的理想開發(fā)平臺,不僅如此,它所基于的所有元件都是現(xiàn)成的,這意味著您也可以信心百倍地將原型設(shè)計投入到生產(chǎn)設(shè)計階段。
為了展示為 IoT 應(yīng)用開發(fā)原型的便利性,本文引用了一個示例,此示例將 Feather M0 Wi-Fi 連接到 Microsoft 的 IoT 服務(wù) Azure。
Microsoft Azure 是企業(yè)級彈性 IIoT 平臺的一個很好的例子,它不僅能夠與傳感器和致動器設(shè)備建立連接,還為所收集的數(shù)據(jù)提供了全套的存儲和分析應(yīng)用程序。使用此平臺的免費試用版可輕松訪問您所需的全部功能。
此應(yīng)用程序展示了 Bosch BME280 溫度、濕度和壓力傳感器的使用,但在此示例中,您無需將傳感器連接到 Feather 即可仿真要發(fā)送的數(shù)據(jù)。
圖 4: 設(shè)置新的 Azure IoT 中心實例。
點擊儀表板頁面頂部的 + New(+ 新建)按鈕并選擇 Internet of Things(物聯(lián)網(wǎng)),然后選擇 IoT Hub(物聯(lián)網(wǎng)中心)。隨后即可指定您的 IoT 中心參數(shù)(名稱和資源組),如圖 5 中所示。
圖 5: 在 Microsoft Azure 中設(shè)置 IoT 中心功能。
此設(shè)置過程的最后一個階段是在 IoT 中心內(nèi)創(chuàng)建一個設(shè)備。如圖 6 中所示,添加 Device ID(設(shè)備 ID)為 TempSensor1 的設(shè)備。勾選方框并保存后,會自動生成設(shè)備密鑰。當(dāng)運行 Feather 草圖之后,您將需要此設(shè)備的主密鑰。在這一點上可能會產(chǎn)生混淆,因為 IoT 中心和每個設(shè)備都有自己的主密鑰。主密鑰是在系統(tǒng)提示輸入連接字符串時需要輸入的密鑰(圖 8)。
圖 6: 將 Feather 溫度傳感器作為設(shè)備添加到 IoT 中心。
現(xiàn)在即可運行所提供的演示草圖。
假設(shè)您已擁有 Arduino IDE,您只需添加用于 Feather M0 板的支持文件。Adafruit 教程會指導(dǎo)您完成此過程。
使用 Blink 示例草圖測試您的 Feather M0 Wi-Fi 板是一種很好的做法。在繼續(xù)操作之前,確保您能夠編譯和上傳草圖,并且板載引腳 13 LED(位于微型 USB 連接器的旁邊)正確閃爍。
要使用演示草圖,您必須將庫清單添加到您的 Arduino IDE 環(huán)境中。請注意,對于 Azure 庫 AzureIoTHub、AzureIoTUtility 和 AzureIoTProtocol_HTTP,您需要安裝 1.0.21 版,否則草圖會出現(xiàn)編譯錯誤而無法運行。此外,如果您決定不使用 BME280 傳感器但使用仿真的數(shù)據(jù),您仍需要包含該傳感器的庫。不僅如此,默認(rèn)情況下,草圖還會假設(shè)您要使用的是物理傳感器。如果希望仿真數(shù)據(jù),您需要將 config.h 文件中的標(biāo)題行更改為“#define SIMULATED_DATA true”。
圖 7 突出顯示了完整的庫清單,屏幕的底部表明成功編譯了草圖并已將其上傳到目標(biāo) Feather M0 板。
圖 7: 顯示了庫清單并表明已成功上傳的 Arduino IDE。
上傳了草圖之后,您需要切換到 IDE 的串行監(jiān)視器。當(dāng)寫入草圖時,需要通過串行監(jiān)視器輸入 Wi-Fi 訪問詳細(xì)信息和 Azure 連接字符串(圖 8)。
圖 8: 輸入 Wi-Fi 和設(shè)備連接信息。
在輸入上述詳細(xì)信息之后不久,您應(yīng)當(dāng)會在串行監(jiān)視器上看到確認(rèn)信息,表明已建立 Wi-Fi 連接。隨后,F(xiàn)eather 應(yīng)當(dāng)開始向 Azure IoT 中心發(fā)送數(shù)據(jù),如圖 9 中所示。在本例中,我們一直在使用仿真的數(shù)據(jù)。
圖 9: 顯示正在從 Feather M0 Wi-Fi 發(fā)送消息的串行監(jiān)視器。
當(dāng) Azure 物聯(lián)網(wǎng)中心開始接受消息之后,您可以檢查以確保正在接收消息。圖 10 顯示了物聯(lián)網(wǎng)設(shè)備總結(jié),其中顯示了接收到的消息的數(shù)量。
圖 10: 顯示消息總結(jié)的 Microsoft Azure IoT 中心。
當(dāng) Azure 平臺開始接收傳感器數(shù)據(jù)之后,您即可使用某些數(shù)據(jù)存儲和分析功能進行調(diào)查,在 Microsoft Azure 網(wǎng)站上可以找到這些功能的詳細(xì)信息。
正如本文中的前文所述,當(dāng)使用電池作為電源時,節(jié)省功耗至關(guān)重要。Wi-Fi 是一種特別耗能的協(xié)議,但正如人們已經(jīng)認(rèn)識到的那樣,與其他方法相比,這種協(xié)議具有很多優(yōu)勢。因此,必須注意優(yōu)化傳感器設(shè)計的運行,以便在不影響傳感器性能的情況下實現(xiàn)低功耗。MCU 和 Wi-Fi 模塊都能夠被置于休眠模式,這樣可以顯著延長電池壽命。
可以在 SAM-D21 規(guī)格書中找到有關(guān)各種 MCU 節(jié)能模式以及設(shè)備的電源管理功能如何控制這些模式的詳細(xì)信息。也可以在此處找到一條應(yīng)用說明,此說明研究了可以從 MCU 的外設(shè)接口和功能實現(xiàn)的節(jié)能方法。ATWINC1500 也提供了幾乎同樣多的節(jié)能資源,包括此應(yīng)用說明中的一節(jié)專門介紹。在 Feather M0 Wi-Fi 教程中,Adafruit 展示了電源監(jiān)視器的使用方法,以說明 Wi-Fi 模塊的功耗差異(圖 11)。
圖 11: Feather M0 Wi-Fi 板功耗。
圖 11 中的橙色線代表 Feather M0 Wi-Fi 板的整體功耗。紫色線表示 LiPo 電池的電源電壓。請注意無線電的運行產(chǎn)生的尖峰,第一個尖峰包含接入點的鏈路設(shè)置。在所進行的通信的范圍以外,靜態(tài)電流約為 22 mA,表明 MCU 的電流約為 10 mA、Wi-Fi 模塊的電流約為 12 mA。了解預(yù)期的最終產(chǎn)品的潛在用途有助于確定可實現(xiàn)的節(jié)能水平。例如,如果每分鐘只需測量一次溫度,并且執(zhí)行溫度測量和與云應(yīng)用通信需要 5 秒鐘時間,則可據(jù)此將設(shè)備的休眠時長設(shè)置為至少 55 秒鐘,從而讓設(shè)備在 91% 的時間內(nèi)處于深度休眠模式。其他節(jié)能方法可能需要執(zhí)行多次溫度測量才能通過 Wi-Fi 發(fā)送測量結(jié)果,也可能只在溫度讀數(shù)不同于上一次的測量結(jié)果時發(fā)送測量結(jié)果。
總結(jié)
現(xiàn)成的 SBC 提供了一個用于驗證產(chǎn)品概念和構(gòu)建初始原型設(shè)計的理想平臺。精心選擇使用市售的暢銷 MCU 和無線元件的 SBC 可以確保在驗證原型之后,可以充分利用此類板通常具有的上市時間優(yōu)勢、開源資源和社區(qū)支持,快速將原型轉(zhuǎn)換為最終設(shè)計。
評論