--> ENGLISH
0755-23080616

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(三):終端節(jié)點固件與應(yīng)用程序部署

2025-09-17 11:50

分享到:

部署終端節(jié)點的軟件是一個分為兩個階段的精確過程。必須嚴格按照順序執(zhí)行,因為上層應(yīng)用程序的運行依賴于底層收發(fā)器固件的正確版本。這種分層架構(gòu)是LoRa Edge™平臺設(shè)計的核心,將射頻物理層和協(xié)議棧的復(fù)雜性與用戶應(yīng)用邏輯解耦。

 

 第一階段:更新LR1120收發(fā)器固件

LR1120是通過SPI接口進行控制的,內(nèi)置了微處理器的協(xié)處理器。它運行著自己的固件,負責處理底層的射頻控制、信號掃描和加密等任務(wù)。主控MCU(STM32)上的LoRa Basics™ Modem應(yīng)用程序正是通過SPI接口,調(diào)用一套預(yù)定義的API與LR1120進行交互。如果LBM應(yīng)用所期望的API版本與LR1120內(nèi)部固件所提供的API版本不匹配,將導(dǎo)致通信失敗或產(chǎn)生無法預(yù)期的行為。因此,在燒錄主應(yīng)用程序之前,必須先確保LR1120的固件是最新且兼容的版本。

  • 目標固件:我們需要為LR1120燒寫版本為lr1120_trx_0x0201的收發(fā)器固件。

 

  • 固件獲取:預(yù)編譯好的固件二進制文件(.bin)可以在Lora-net/radio_firmware_images倉庫中找到。具體文件為lr1120_trx_0x0201.bin。

 

  • 燒錄流程:
    1. 編譯更新工具:在Cygwin終端中,進入先前克隆的SWTL001目錄。執(zhí)行make命令編譯固件更新工具。
      Bash
      cd /path/to/your/SWTL001
      make

      編譯成功后,會在build目錄下生成一個名為lr11xx-updater-tool.bin的文件。
    2. 準備更新器:將Lora-net/radio_firmware_images倉庫中下載的lr1120_trx_0x0201.bin文件,重命名為image.bin,并將其復(fù)制到SWTL001項目的根目錄下。更新工具默認會加載名為image.bin的固件文件。
    3. 燒錄更新工具到Nucleo板:將第一步中編譯生成的lr11xx-updater-tool.bin文件拖拽或復(fù)制到這個U盤中。ST-LINK會自動將此程序燒錄到STM32 MCU中,并重啟。此時,Nucleo板就變成了一個專門用于更新LR1120固件的工具。
      將固件更新工具的.bin文件拖拽到 U盤中進行燒錄
      (將固件更新工具的.bin文件拖拽到 U盤中進行燒錄)
    4. 執(zhí)行更新并監(jiān)控:打開一個串口終端工具(如PuTTY, Tera Term),連接到Nucleo板對應(yīng)的虛擬串口。注意,此處的波特率非常高,必須設(shè)置為921600 bps。連接后,按下Nucleo板上的黑色復(fù)位按鈕。您將在串口終端中看到固件更新過程的詳細日志,包括擦除、寫入和驗證。當看到更新成功的提示信息后,表示LR1120的內(nèi)部固件已成功更新。 LR1120固件成功更新至0x0201版本的過程

      (串口終端日志,顯示LR1120固件成功更新至0x0201版本的過程。)

 

第二階段:配置與編譯地理定位應(yīng)用程序

在收發(fā)器固件更新完畢后,我們現(xiàn)在可以配置并編譯運行在主控MCU上的地理定位應(yīng)用程序了。所有相關(guān)的配置都集中在SWL2001-master\lbm_applications\3_geolocation_on_lora_edge\main_geolocation/example_options.h文件中。

 

核心參數(shù)配置:設(shè)備身份與區(qū)域設(shè)置

LoRaWAN網(wǎng)絡(luò)通過一組唯一的標識符來識別和驗證每一個設(shè)備。這些參數(shù)的正確性是設(shè)備能否成功入網(wǎng)的先決條件,必須與騰訊云平臺上的配置嚴格一致。

 

設(shè)備身份與區(qū)域設(shè)置代碼

 

  • USER_LORAWAN_DEVICE_EUI: 設(shè)備的全球唯一標識符(Device EUI),一個64位的十六進制數(shù),類似于網(wǎng)絡(luò)設(shè)備的MAC地址,必須保證全球唯一。
  • USER_LORAWAN_JOIN_EUI: 應(yīng)用的全球唯一標識符(Join EUI),它標識了處理入網(wǎng)請求的Join Server。
  • USER_LORAWAN_APP_KEY: 這是一個128位的AES密鑰,是設(shè)備安全性的核心,用于在入網(wǎng)(OTAA)過程中生成會話密鑰。
  • MODEM_EXAMPLE_REGION: LoRaWAN區(qū)域參數(shù)。此處設(shè)置為SMTC_MODEM_REGION_CN_470_RP_1_0,以符合中國470MHz頻段的法規(guī)要求。

 

 通信信道配置:為測試設(shè)置單信道模式

在開發(fā)和測試階段,為了快速驗證設(shè)備與網(wǎng)關(guān)之間的基本通信,將設(shè)備配置為僅在網(wǎng)關(guān)監(jiān)聽的單個信道上發(fā)送數(shù)據(jù)是一種高效的策略。

 

// 為了測試方便,可以調(diào)整為單信道模式
#define HYBRID_CN470_MONO_CHANNEL
#if defined( HYBRID_CN470_MONO_CHANNEL )
uint32_t freq_tx_cn470_mono_channel_mhz = 471100000;
#endif

 

通過定義HYBRID_CN470_MONO_CHANNEL宏,并設(shè)置freq_tx_cn470_mono_channel_mhz變量,可以將節(jié)點的發(fā)射頻率固定在471.1MHz。這極大地簡化了初始的網(wǎng)絡(luò)連接調(diào)試,因為您只需確保網(wǎng)關(guān)也正在監(jiān)聽此頻率即可。

 

注意: 在最終的生產(chǎn)環(huán)境中,應(yīng)注釋掉此宏定義,以恢復(fù)所有默認信道,從而利用LoRaWAN的跳頻特性,增強網(wǎng)絡(luò)的魯棒性和容量。

 

射頻天線開關(guān)配置

LR1120芯片需要通過外部射頻(RF)開關(guān)來選擇正確的天線路徑(如Sub-GHz、GNSS等)。協(xié)議棧必須被告知如何控制這個開關(guān)。

 

射頻天線開關(guān)配置代碼

 

這段代碼定義了一個lr11xx_system_rfswitch_cfg_t類型的結(jié)構(gòu)體,用于精確配置RF開關(guān)在不同工作模式(如待機、接收、發(fā)射、GNSS掃描)下的狀態(tài)。隨后,通過調(diào)用lr11xx_system_set_dio_as_rf_switch函數(shù)將此配置應(yīng)用到系統(tǒng)中。這個配置是高度硬件相關(guān)的,必須與您所使用的模塊(如NiceRF LoRa1120)的內(nèi)部電路設(shè)計相匹配,否則將導(dǎo)致通信失敗。

 

編譯并燒錄最終應(yīng)用程序

完成所有配置修改后,即可編譯并燒錄最終的應(yīng)用程序。

  1. 編譯:在Cygwin終端中,確保當前路徑為SWL2001/lbm_applications/3_geolocation_on_lora_edge。執(zhí)行以下命令進行編譯:
    Bash
    make full_lr1120

    (在Cygwin終端中執(zhí)行'make full_lr1120'命令來編譯地理定位應(yīng)用程序)
    該命令會調(diào)用ARM交叉編譯器,將源代碼編譯鏈接成一個可執(zhí)行的二進制文件app_lr1120.bin,并存放于build子目錄中。編譯成功后在build目錄中生成的app_lr1120.bin文件
    (編譯成功后在build目錄中生成的app_lr1120.bin文件。)
  2. 燒錄:再次將Nucleo開發(fā)板連接到電腦,找到NODE_L476RG U盤。將剛剛生成的app_lr1120.bin文件拖拽或復(fù)制到該U盤中。ST-LINK會自動完成燒錄并重啟設(shè)備。
  3. 驗證:打開串口終端工具,這次將波特率設(shè)置為115200 bps。按下Nucleo板的復(fù)位按鈕,您應(yīng)該能看到應(yīng)用程序啟動的日志信息。這些信息會顯示設(shè)備的DevEUI、AppEUI以及嘗試加入LoRaWAN網(wǎng)絡(luò)的日志。如果看到“JOINING”或類似的打印,說明設(shè)備端軟件已正常工作。
    顯示調(diào)制解調(diào)器初始化和區(qū)域參數(shù)信息

    (應(yīng)用程序啟動后的串口日志,顯示調(diào)制解調(diào)器初始化和區(qū)域參數(shù)信息。)

 

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位系列

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(一):系統(tǒng)架構(gòu)與硬件準備

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(二):開發(fā)環(huán)境與源代碼設(shè)置

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(三):終端節(jié)點固件與應(yīng)用程序部署

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(四):騰訊云物聯(lián)網(wǎng)平臺配置

基于LR1120與騰訊云物聯(lián)網(wǎng)平臺實現(xiàn)地理定位(五):端到端數(shù)據(jù)驗證與應(yīng)用

三门峡市| 凤台县| 原阳县| 开封县| 黄平县| 濉溪县| 揭阳市| 昌吉市| 吴川市| 乌拉特后旗| 当雄县| 淮北市| 原阳县| 武安市| 五原县| 绵竹市| 栾川县| 星座| 永昌县| 武汉市| 诏安县| 阿克| 焦作市| 新河县| 辉县市| 砀山县| 冷水江市| 滕州市| 富裕县| 福泉市| 仁怀市| 石景山区| 舟曲县| 油尖旺区| 馆陶县| 昭通市|