端口
·2 min read
在LoRaWAN协议中,**端口(FPort)**是一个数字字段,表示下行数据包或上行数据包的逻辑应用层端口。该端口用于指示数据的具体用途,帮助网络服务器和终端设备进行数据解析和分类。FPort的值范围为1到223,用于应用层的不同数据类型和服务。
FPort的作用和使用场景
-
指示数据用途:
- 不同的FPort值可以指示不同的数据类别。例如,一个端口可能用于传感器数据,另一个端口用于远程控制指令。这样做可以帮助终端设备识别数据的用途,从而采取相应的操作。
-
区分应用数据和管理数据:
- LoRaWAN协议通常将端口1到223用于应用数据,将224到255保留用于LoRaWAN协议的内部管理和调试数据。
-
应用层协议的识别:
- 设备制造商可以规定特定FPort值表示特定应用协议,例如:
- 端口1可以表示温度传感器数据;
- 端口2可以表示湿度数据;
- 端口10可能用于传送控制设备的指令。
- 设备制造商可以规定特定FPort值表示特定应用协议,例如:
常见的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决定如何处理接收到的数据。