端口

·2 min read

在LoRaWAN协议中,**端口(FPort)**是一个数字字段,表示下行数据包或上行数据包的逻辑应用层端口。该端口用于指示数据的具体用途,帮助网络服务器和终端设备进行数据解析和分类。FPort的值范围为1到223,用于应用层的不同数据类型和服务。

FPort的作用和使用场景

  1. 指示数据用途

    • 不同的FPort值可以指示不同的数据类别。例如,一个端口可能用于传感器数据,另一个端口用于远程控制指令。这样做可以帮助终端设备识别数据的用途,从而采取相应的操作。
  2. 区分应用数据和管理数据

    • LoRaWAN协议通常将端口1到223用于应用数据,将224到255保留用于LoRaWAN协议的内部管理和调试数据。
  3. 应用层协议的识别

    • 设备制造商可以规定特定FPort值表示特定应用协议,例如:
      • 端口1可以表示温度传感器数据;
      • 端口2可以表示湿度数据;
      • 端口10可能用于传送控制设备的指令。

常见的FPort设置

  • FPort = 1-223:用户和应用层自由使用,具体的数值通常根据应用的协议定义来选择。例如:

    • 端口1-10可能用于不同的传感器类型的数据。
    • 端口100-200可以用于设备控制命令。
  • FPort = 224-255:保留端口,用于LoRaWAN的管理、调试等协议内的用途,普通应用数据通常不使用这些端口。

FPort在下行信息中的典型应用

在下行消息中,网络服务器会指定FPort,以指明数据的用途或数据将要控制的功能。例如:

  • FPort=2:用于发送LED开关控制指令,终端设备可以解析收到的数据以控制开关。
  • FPort=5:可能用于配置数据传输频率,终端设备接收后可以更改数据上报的频率。

示例

例如,ChirpStack发送一个下行消息控制设备重启时可能会使用以下结构:

{
  "devEUI": "0123456789abcdef",
  "fPort": 10,             // 端口10表示控制指令
  "data": "AA=="           // Base64编码的数据负载,比如重启指令
}

在此例中,端口10用于指示该数据是一个控制指令。设备收到后,可以根据FPort解析数据,并执行重启操作。

总结

FPort在LoRaWAN中用于帮助设备识别数据用途。下行消息通过FPort指示不同的操作或命令类型,终端设备依据FPort决定如何处理接收到的数据。