如何以最低功耗實作 LoRa 空中韌體 (FOTA)

作者:Bill Giovino

資料提供者:DigiKey 北美編輯群

2018 年 10 月,LoRa 聯盟宣布使用統一的規格來執行 IoT 端點的空中韌體 (FOTA) 更新。雖然這是 LoRa 網路的一大福音,但對使用快閃記憶體微控制器來設計低功率 IoT LoRa 端點的人員來說,卻是一項挑戰。

與讀取相比,暫時性大量寫入微控制器的快閃記憶體,將會增加微控制器的功耗。此外還需要使用更大的穩壓器,以處理增加的功率。

這兩種情況都不是我們所樂見的,因此本文將描述如何同時使用微控制器和 FRAM,以低功率的方式來寫入韌體。當微控制器和 FRAM 組合搭配上新的 LoRa 收發器,FOTA 的功率會比傳統的快閃記憶體微控制器方法更低。

什麼是 LoRa?

物聯網 (IoT) 的目標之一,在於使用最少的功率進行數據無線傳輸。電池供電式感測器應用的設計人員,特別考量如何以最低的電池耗電量,將低速率感測器數據無線傳送好幾英里。在目前現有的解決方案中,藍牙和 Zigbee 專為短程應用所設計,而手機數據則相對耗電。LoRa 已成為這個問題的熱門解決方案。

LoRa 為 Long Range (遠程) 的簡寫。LoRa 無線網路專為低數據傳輸率、低功率、遠程傳輸非即時性數據所開發。數據傳輸率介於 0.3 kbit/s 和 5.5 kbit/s 之間,適合用於定期性的感測器數據傳輸。雖然 LoRa 規格描述網路的調變和電氣特性,但 LoRaWAN (廣域網路) 則描述 LoRa 網路的協定和數據格式。

LoRa 訊號功能是透過改變頻率來調變訊號,這與 FM 類似。然而,當經過適當調變的 FM 訊號瞬間改變頻率時,LoRa 調變訊號會在一段時間內慢慢增加或減少頻率。這種頻率逐漸增加或減少的現象稱為啁啾 (chirp),該方法稱為啁啾調變。頻率隨時間變化的速率稱為「啁啾率」(chirpiness)。

LoRaWAN 網路總是採星形拓撲的形式,而訊號和存取協定在設計上為使用最小功率,並將多個端點的訊號衝突最小化。每個 LoRaWAN 端點都會將數據傳送到閘道,藉此將數據傳輸到另一個網路,例如乙太網路或 Wi-Fi。通常閘道會接收所有的 LoRaWAN 數據,並透過網路將數據傳輸至中央電腦,以進行儲存或進一步的處理。

任何無線通訊的傳輸距離都取決於環境。在都市城鎮內,LoRaWAN 的預期傳輸距離為 1 至 3 英里,鄉下地區為 3 至 9 英里,直視性數據傳輸距離則可達到 131 英里。舉例而言,氣象探測氣球中的 LoRaWAN 端點曾經只使用 25 mW 的傳輸功率,就將數據傳送到 436 英里外的地上閘道。

每個 LoRa 端點都分成三個部分:

  1. 一或多個用於收集數據的感測器
  2. 一個微控制器
  3. 一個 Semtech 的 LoRa 無線電晶片

感測器是端點存在的原因。LoRa 感測器應用包括溫度和濕度監測、水和燃料的液位監測,以及空氣和液體壓力。這幾種感測器收集的是靜態數據,不會隨時間快速變化,因此能只以 5.5 kbits/s 的速度進行無線傳輸,而不會對該應用產生任何影響。

無線電晶片和天線可直接透過 LoRa 網路進行通訊。Semtech 公司擁有 LoRa 傳輸方案的專利。目前所有 LoRa 無線電都使用 Semtech 公司的無線電晶片,或使用其中含有這種晶片的無線電模組。

Semtech 的 SX1262IMLTRT LoRa 無線電收發器專為電池供電式 LoRa 應用所設計,符合 LoRaWAN 無線電傳輸標準 (圖 1)。在收發數據時,此產品只消耗 4.2 mA 的電流,RF 輸出功率為 +22 dBm。SX1261 型號功率更低,RF 輸出功率為 +15 dBm。兩者皆為半雙工收發器,都在 Sub-GHz 範圍內運作,並處理固定包封調變方案 (例如 LoRa) 以及頻移鍵控 (FSK)。板件上均提供 DC-DC 降壓轉換器和線性 LDO 穩壓能力。

Semtech 的 SX1262IMLTRT 和 SX1261 一體式半雙工無線電示意圖

圖 1:Semtech 的 SX1262IMLTRT 和 SX1261 是用於 LoRa 應用的一體式半雙工無線電,板件上均提供 DC-DC 降壓轉換器和線性 LDO 穩壓能力。(圖片來源:Semtech)

為 LoRaWAN 端點選擇微控制器

LoRaWAN 端點中的微控制器可讀取並處理感測器數據,並連接至 SX1262,經由網路傳輸數據。微控制器必須有足夠的記憶體,以用於滿足 SX1262 驅動器、感測器驅動器和應用程式碼的需要。表 1 列出在使用 Semtech 的 SX1262 無線電晶片時,對 LoRaWAN 端點中微控制器的要求。

LoRaWAN 微控制器要求 最低要求 建議要求
快閃記憶體 128 KB 256 KB 或以上
RAM 8 KB 16 KB 或以上
AES-128 加密 韌體常式 硬體區塊 (需要用於多點傳播下行鏈路)
即時時脈 (RTC) 及 1 ms 解析度 若將內部計時器當作時基使用,則無此要求 如此才能進行韌體更新 OTA、多點傳播和網路時脈同步
針對 SX126x 造成的中斷使用外接中斷引腳 兩個 IRQ 引腳:BUSY 和一個可編程的 IRQ (DIO1) 四個 IRQ 引腳:BUSY 和三個可編程的 IRQ (DIO1:3)
連接至 SX126x 的 SPI 介面 需要:SCK、MOSI、MISO、CS 需要:SCK、MOSI、MISO、CS
產生 IEEE 64 位元 EUI 需要,韌體常式 需要,韌體常式或硬體區塊
微控制器 CPU 8 位元 16 位元或 32 位元

表 1:表中顯示一個簡單 LoRaWAN 端點的微控制器最低要求,此端點以最少量的處理工作來收集和傳輸感測器數據。對於更複雜的端點,如果遵循建議要求,系統將會更為穩固。(表格來源:Semtech)

根據表格來看,可以在 8 位元的微控制器上,實作基本獨立式 LoRaWAN 端點的最低要求。此端點可以是簡單的低功率 LoRaWAN 端點,只需偶爾將感測器原始數據傳回至閘道。

但如果端點要處理大量的流量,或必須對感測器數據進行某些處理,則應遵循表 1 中的建議要求。當然,隨著 LoRaWAN 端點中的記憶體和處理能力增加,端點的功耗也會增加,進而需要使用容量更大的電池。這與 LoRaWAN 原先設計低功率 IoT 端點的目標有所矛盾。

在設計 LoRaWAN 端點時,必須持續留意這是低功率系統,系統不能因功能延伸而變得更複雜,最後白白消耗更多功率。在為 LoRaWAN 端點選擇微控制器時,應注意儘量降低時脈速度和記憶體大小,因為這些也會影響功耗。

更新 LoRaWAN 端點中的微控制器韌體

2018 年 10 月,LoRa 聯盟規定所有 LoRa 網路都要以統一的方式,來執行 LoRa 端點的空中韌體更新 (FUOTA)。新的標準規定必須進行全網路時脈同步,而這能大幅減少數據封包遺失的數量。同時也對多點傳播傳輸進行了標準化,而這種傳輸技術必須用於將同一個韌體更新傳輸至多個端點的情形。時脈同步和多點傳播傳輸都需要準確的時基,這代表所有 LoRa 端點都必須具備 RTC 準確度達 1 ms 的微控制器。

雖然更新 LoRaWAN 端點中的韌體是個很重要的功能,但新問題也隨之而來。要在現場更新韌體,需要將微控制器的程式記憶體進行重新編程,此記憶體通常是非揮發性快閃記憶體。而要對快閃記憶體進行編程,需要對記憶體單元施加 10 V 或更高的電壓。這需要使用更大的穩壓器和相關電路,才能對快閃記憶體進行編程。由於某些連網系統一年可能只更新韌體幾次,因此這項投資會增加成本,而且也會低效率地佔用額外的板空間。

除了搭載快閃記憶體的微控制器,另一個替代方案是搭載鐵電隨機存取記憶體 (FRAM) 的微控制器。FRAM 記憶體只需要 1.5 V 電壓,即可對記憶體單元進行編程。Texas Instruments 的 16 位元 MSP430FR6047 FRAM 型微控制器,就是一個符合 LoRaWAN 節點建議要求的產品。此產品具有 256 KB 的 FRAM 程式記憶體,以及提供日曆和警報功能的 RTC。而加密組塊可支援 AES-128 和 AES-256。此微控制器可支援高達四個 SPI 連接埠,並具有足夠的外部中斷輸入,以支援 Semtech SX1262 所需要的四個輸入,進而輕鬆接合兩個裝置。此外,在韌體中能輕易產生 IEEE 64 位元延伸唯一識別碼 (EUI) (圖 2)。

Texas Instruments 的 MSP430FR6047 示意圖 (按此放大)

圖 2:MSP430FR6047 具有 256 KB FRAM、8 KB SRAM,以及各種用於感測器型應用的周邊裝置。(圖片來源:Texas Instruments)

MSP430FR6047 專為以電池供電的智慧型儀表所設計,具有整合式超音波感測周邊裝置,因而能十分準確地進行水流偵測和液位感測。這些進階功能可輕鬆適應許多不同的感測器應用。

雖然 MSP430FR6047 只有 8 KB 的 RAM,而不是建議的 16 KB,但如果不需要進行複雜的感測器融合處理,這並不會在 LoRaWAN 感測器端點中造成什麼問題。此外,MSP430FR6047 的整合度高,既能改善效能,也能節省記憶體和板空間。超音波感測應用中的類比前端包含可編程脈衝產生器、12 位元類比數位轉換器 (ADC) 和可編程增益放大器。在從類比感測器收集數據時,所有這些裝置都非常有用。

MSP430FR6047 具有 32 位元硬體乘法器,以及低能量加速器 (LEA) 訊號處理核心,此核心能獨立於 MSP430 核心之外,自行執行 256 點 FFT 運算。LEA 可加速低功率應用的訊號處理速度,延長電池的續航力。

MSP430FR6047 的功率極低,即使在 8 位元和 16 位元微控制器的環境中也是如此,而這些微控制器的功率已經很低。在 MSP430 16 位元核心和周邊裝置運行的情況下,MSP430FR6047 每 MHz 僅汲取 120 μA 電流。在 RTC 運行的情況下,待機模式僅汲取 450 nA 電流。此微控制器具有僅汲取 30 nA 電流的關閉模式,但使用後也會關閉即時時脈 (RTC),因此不建議對 LoRaWAN 端點使用關閉模式。

使用 FRAM 進行 FUOTA 設計

要開發 MSP430FR6047 韌體,可使用 EVM430-FR6047 評估板來進行。此板件以 USB 供電,並提供評估應用中 MSP430 所需具備的所有硬體。此評估板具有 BoosterPack™ 模組的連接器,可為該板件增添其他功能。板件上還有用於連接感測器的其他引腳。

Texas Instruments 的 EVM430-FR6047 評估板圖片

圖 3:用於 MSP430FR6047 的 Texas Instruments EVM430-FR6047 評估板具有 LCD 顯示器,並能讓您取用 MSP430FR6047 上的所有引腳。(圖片來源:Texas Instruments)

針對 SX1262 的評估和開發,Semtech 提供 SX1262MB2CAS LoRa MBED 擴充板 (圖 4)。

用於 SX1262 的 Semtech MBED 擴充板示意圖

圖 4:用於 SX1262 的 Semtech MBED 擴充板是一種含有 SX1262 RF 收發器的簡易評估板。(圖片來源:Semtech)

MSP430 BoosterPack 連接器提供所有必要的訊號,能將 MSP430 連接到 Semtech 的 SX1262 MBED 擴充板。BoosterPack 連接器具有四個必要的 SPI 引腳,以及三個額外的 GPIO 引腳,可配置為 MSP430 的輪詢輸入,或配置為外接中斷引腳。如果需要額外使用一個外接中斷引腳,可將 BoosterPack 連接器上的四個引腳連接到 MSP430 UART 的其中一個。這些 UART 引腳可配置為 GPIO 或 MBED 擴充板的外接中斷引腳。雖然 BoosterPack 和 MBED 擴充板在實體上與引腳並不相容,但可以輕鬆跳接,在 MSP430 和 SX1262 之間提供必要的連接。

此外,Texas Instruments 還提供 Code Composer Studio™,這種 IDE 能讓您編寫 MSP430 程式碼並進行除錯。

結論

LoRa 已成為傳輸 IoT 感測器數據的常用標準。此標準已經擴展到包含 FUOTA 功能,這在長效電池續航力方面帶來新挑戰。透過選擇 FRAM 型微控制器而不是快閃記憶體,設計人員可以大幅降低將這些更新寫入裝置記憶體所需的功率。

而且,如上所示,要徹底降低電池耗電並為應用提供足夠的處理能力,微控制器的選擇已變得更加重要。

 
DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Bill Giovino

Bill Giovino

Bill Giovino 是電子工程師,擁有美國雪城大學的電機工程學士學位,也是少數從設計工程師跨足現場應用工程師,再到技術行銷領域的成功典範之一。

Bill 過去 25 年來熱衷於向科技和非科技業的對象推廣新技術,包括 STMicroelectronics、Intel 和 Maxim Integrated 等多家企業。Bill 在 STMicroelectronics 任職期間,曾協助領導該公司順利進軍微控制器領域。在 Infineon 任職時,則策劃出該公司首款在美國汽車業大受歡迎的微控制器設計。Bill 目前是他個人公司 CPU Technologies 的行銷顧問,曾協助諸多企業讓表現不佳的產品重獲市場青睞。

Bill 更是採用物聯網的先驅,包括在微控制器中首次納入完整的 TCP/IP 堆疊。Bill 致力於推廣「用教育促成銷售」的理念,也認可在線上推銷產品時有清楚完整文字說明的重要性。他在 LikedIn 熱門的半導體銷售和行銷群組中擔任管理員,也擁有深厚的 B2E 知識。

關於出版者

DigiKey 北美編輯群