LoRaWAN介绍17 Server接口
“这样,我的约就立在你们肉体上,作永远的约。”–《圣经.创世纪》
LoRaWAN规定Server和Gateway的协议为 JSON / GWMP / UDP / IP,底下的2层协议属于IP协议栈,而GWMP和JSON融入LoRaWAN的特点。
1 NS和GW协议栈
GWMP(LoRa Gateway Message Protocol)如下表所示,包括3个交互协议:
PUSH_DATA <–> PUSH_ACK:GW向NS提交上行RF数据包;
PULL_RESP <–> TX_ACK:NS向GW提交下行RF数据包;
PULL_DATA <–> PULL_ACK:GW向NS发送“心跳”以打开防火墙;
2 GWMP时序和格式
2.1 PUSH_DATA
PUSH_DATA:GW向NS发送上行RF数据包,EUI用于区分不同的GW(一个NS可以连接多个GW),tocken用于区分不同的数据包(一般为自加一)。
PUSH_ACK:NS回应GW—成功接收该DATA数据包。
PUSH_DATA帧格式如下表,它的总长度≤2408字节。
PUSH_ACK帐格式如下表
2.2 PULL_RESP
PULL_RESP:NS向GW发送下行RF数据包,tocken用于区分不同的数据包(一般为自加一)。
TX_ACK:GW回应NS—成功接收该RESP数据包。
PULL_RESP帧格式如下表,它的总长度≤1000字节。
TX_ACK帐格式如下表。特别注意:仅当V2版本才回应该帧。
2.3 PULL_DATA
PULL_DATA:GW向NS发送“心跳”数据包,EUI用于区分不同的GW(一个NS可以连接多个GW),tocken用于区分不同的数据包(一般为自加一)。
PULL_ACK:NS回应GW—成功接收该“心跳”数据包。
PULL_DATA帧格式如下表。特别注意:“心跳”数据包的内容为空。
PULL_ACK帧格式如下表。
3 JSON协议
LoRaWAN使用JSON作为通用数据交换格式,并且JSON仅包含ASCII字符。目前,JSON协议包括3部分定义:GW状态,上行数据,下行数据。
3.1 GW状态
Server可以取GW的状态,它的组织形式和定义如下例所示。
“stat”:
{
“time”:”2016-11-15 09:27:35 GMT”, /* UTC system time of the gateway */
“lati”:28.3100, /*latitude */
“long”:113.15130, /*longitude */
“alti”:134, /*altitude */
“rxnb”:20, /* numberof RF frames have received */
“rxok”:20, /* numberof RF frames with correct CRC */
“rxfw”:20, /* numberof RF frames forwarded to the NS */
“ackr”:100.0 /* 100%of RF frames ACKed by the NS */
“dwnb”:20, /* numberos RF frames RX from NS */
“txnb”:20 /* numberof RF frames TX by gateway */
}
3.2 上行数据
GW提交给NS的上行数据,基于JSON组织如下例所示。
“rxpk”
[
{
“time”:”2016-11-15T09:35:17.145359Z”, /* UTC time of receipt of the LoRa frame */
“tmst”:3526705714, /*gateway internal time counter */
“chan”:0, /* IFchannel=IF0 */
“rfch”:0, /* RFchain=Radio A */
“freq”:469.87500, /*centre frequency=469.875MHz */
“stat”:1, /* 1=CRCcorrect */
“modu”:”LORA”, /* modulation is LoRa */
“datr”:”SF9BW125″, /* SF=9, BW=125kHz */
“codr”:”4/5″, /* FEC code rate=4/5 */
“rssi”:-13, /*RSSI=-13dBm */
“lsnr”:5.6, /*SNR=5.6 */
“size”:12, /* numberof octets=12 */
“data”:”rqyo15LfOP4J” /* data that encoded into Base64 */
}
]
3.3 下行数据
NS提交给GW的下行数据,基于JSON组织如下例所示。
“txpk”
{
“imme”:true, /*transmit the frame immediately */
“freq”:470.125000, /*centre frequency=470.125MHz */
“rfch”:0, /* RFchain=Radio A */
“powe”:17, /* outputpower=17dBm */
“modu”:”LORA”, /* modulation is LoRa */
“datr”:”SF9BW125″, /* SF=9, BW=125kHz */
“codr”:”4/5″, /* FEC code rate=4/5 */
“ipol”:false, /* doNOT invert the polarity of the transmitted bits */
“size”:10, /* numberof octets=10 */
“data”:”1Jr8PdOdN5″ /* data that encoded into Base64 */
}
您的留言或需求: