天天看點

LoRa Gateway 筆記 3.1.3 幫助程式 util_pkt_logger 進行 LoRa 空口抓包

文章目錄
  • 前言
  • 1 對 LoRaWAN 節點進行抓包
  • 2 監聽其他 LoRa 網關的下行包
  • 3 監聽 未使能CRC 的資料包
  • END

前言

以前小能手使用 SX1276 做過一個 LoRa抓包工具,最大的局限是不能抓多個頻點的資料。而 LoRaGateway 的幫助程式 util_pkt_logger 就提供了這個現成的功能,使用 SX1301 可以同時監聽至少8路信道。

本文在 Semtech AE 的幫助下,成功完成了對網關下行空口的監聽,于是做個記錄,可能會幫助到有需要的朋友。

小能手整理了 LoRa Gateway 的開發筆記系列,詳細可點此檢視。

1 對 LoRaWAN 節點進行抓包

進入 \lora_gateway\util_pkt_logger 目錄,直接 make clean all,即可完成編譯操作。

在調整完 global_conf.json 的頻點配置之後即可進行抓包,資料包會被寫入到日志檔案中。預設可抓取 LoRaWAN 節點的上行資料包。

pi@ttn-gateway:/opt/ttn-gateway/lora_gateway $ cd util_pkt_logger/
pi@ttn-gateway:/opt/ttn-gateway/lora_gateway/util_pkt_logger $ ./util_pkt_logger 
loragw_pkt_logger: INFO: found global configuration file global_conf.json, trying to parse it
loragw_pkt_logger: INFO: global_conf.json does contain a JSON object named SX1301_conf, parsing SX1301 parameters
loragw_pkt_logger: INFO: lorawan_public 1, clksrc 1
loragw_pkt_logger: INFO: radio 0 enabled (type SX1255), center frequency 500700000, RSSI offset -176.000000, tx enabled 0, tx_notch_freq 0
loragw_pkt_logger: INFO: radio 1 enabled (type SX1255), center frequency 501500000, RSSI offset -176.000000, tx enabled 0, tx_notch_freq 0
loragw_pkt_logger: INFO: LoRa multi-SF channel 0 enabled, radio 0 selected, IF -400000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 1 enabled, radio 0 selected, IF -200000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 2 enabled, radio 0 selected, IF 0 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 3 enabled, radio 0 selected, IF 200000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 4 enabled, radio 1 selected, IF -400000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 5 enabled, radio 1 selected, IF -200000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 6 enabled, radio 1 selected, IF 0 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa multi-SF channel 7 enabled, radio 1 selected, IF 200000 Hz, 125 kHz bandwidth, SF 7 to 12
loragw_pkt_logger: INFO: LoRa standard channel 8 disabled
loragw_pkt_logger: INFO: FSK channel 8 disabled
loragw_pkt_logger: INFO: global_conf.json does contain a JSON object named gateway_conf, parsing gateway parameters
loragw_pkt_logger: INFO: gateway MAC address is configured to AA555A0000000000
loragw_pkt_logger: INFO: found local configuration file local_conf.json, trying to parse it
loragw_pkt_logger: INFO: local_conf.json does not contain a JSON object named SX1301_conf
loragw_pkt_logger: INFO: local_conf.json does contain a JSON object named gateway_conf, parsing gateway parameters
loragw_pkt_logger: INFO: gateway MAC address is configured to AA555A0000000101
loragw_pkt_logger: INFO: concentrator started, packet can now be received
loragw_pkt_logger: INFO: Now writing to log file pktlog_AA555A0000000101_20190513T092441Z.csv           

複制

2 監聽其他 LoRa 網關的下行包

預設情況 util_pkt_logger 運作時 RX I/Q invert 是關閉的,我們要接收其他網關的資料包的就要打開它。

源檔案為:\lora_gateway\libloragw\src\loragw_hal.c

void lgw_constant_adjust(void) {

    /* I/Q path setup */
    lgw_reg_w(LGW_MODEM_INVERT_IQ,0); /* default 1 */ 0-enable Rx I/Q invert
}           

複制

重新編譯後,即可使用。

注意:既要編譯 \lora_gateway\libloragw,也要編譯 \lora_gateway\util_pkt_logger,以保證能使用到最新的庫檔案。

抓包日志如下:

pi@ttn-gateway:/opt/ttn-gateway/lora_gateway/util_pkt_logger $ tail -f pktlog_AA555A0000000101_20190513T094616Z.csv 
"gateway ID","node MAC","UTC timestamp","us count","frequency","RF chain","RX chain","status","size","modulation","bandwidth","datarate","coderate","RSSI","SNR","payload"
"AA555A0000000101","","2019-05-13 09:46:22.262Z",   8233788, 500500000,0, 1,"CRC_OK" , 12,"LORA",125000,"SF12"  ,"4/5",-130, +7.2,"60376200-02206701-93113387"
"AA555A0000000101","","2019-05-13 09:46:36.829Z",  22827267, 500500000,0, 1,"CRC_OK" , 43,"LORA",125000,"SF7"   ,"4/5",-133, +3.2,"60C3AA68-E0A00E02-009EA175-EA08A56F-E2BB4581-4AFD453A-17DCA68A-41C729D6-EBBC84A2-724BB81B-717740"
"AA555A0000000101","","2019-05-13 09:46:42.261Z",  28233732, 501500000,1, 6,"CRC_OK" , 12,"LORA",125000,"SF12"  ,"4/5",-133, +3.8,"60376200-02206901-16C1C4C6"
"AA555A0000000101","","2019-05-13 09:46:52.261Z",  38233700, 500900000,0, 3,"CRC_OK" , 12,"LORA",125000,"SF12"  ,"4/5",-125, +6.2,"60376200-02206A01-BE6B087E"
"AA555A0000000101","","2019-05-13 09:47:02.263Z",  48233676, 501700000,1, 7,"CRC_OK" , 12,"LORA",125000,"SF12"  ,"4/5",-136, +2.0,"60376200-02206B01-C7D12879"
"AA555A0000000101","","2019-05-13 09:47:12.263Z",  58234660, 501100000,1, 4,"CRC_OK" , 12,"LORA",125000,"SF12"  ,"4/5",-127, +4.0,"60376200-02206C01-A31BEA2E"           

複制

3 監聽 未使能CRC 的資料包

void lgw_constant_adjust(void) {
    lgw_reg_w(LGW_ONLY_CRC_EN,0);
    lgw_reg_w(LGW_MBWSSF_ONLY_CRC_EN,0);
}           

複制

END

iotisan 部落格專家

釋出了251 篇原創文章 · 獲贊 253 · 通路量 84萬+