美文网首页
解析一帧空中捕获的lorawan下行数据

解析一帧空中捕获的lorawan下行数据

作者: lissettecarlr | 来源:发表于2020-01-06 10:06 被阅读0次

    1 下行样例数据

    使用平台对CLASS-C模式的设备574a001600000001(deveui)下发两个字节0X00 0X1C,包类型为CONFIRMED。
    使用SX1278来接收空中数据,射频参数必须匹配才行,C模式下默认使用505.3Mhz,速率、编码率、带宽、同步字、IQ极性都需要修改为相同的。
    然后我们便能收到一帧数据

    A0 EB055700 85 0900 0306FFFF01 02 BD80 EFEFB5A4
    

    然后根据lorawan协议来分析

    2 解析

    F.png

    上图为一帧完整的通讯数据,但我们使用SX1278来接收时头尾都被硬件处理了,实际得到的数据是PHYPayload这块儿。
    首先第一个字节是MHDR(0XA0),二进制表示为 1010 0000,则MType=101,RFU=000,Major=00。包类型101代表Confirmed Data Down。
    接下来的4个字节是设备地址(0XEB 0X05 0X57 0X00),因为是小端存储所有设备地址为0X005705EB
    下一个字节是FCtrl(0X85),二进制表示为1000 0101,ADR=1,RFU=0,ACK=0,FPending=0,FOptsLen=0101表示FOpts的长度
    下两个字节是Fcnt(0X09,0X00),也因为是小端,所有实际计数值就是9
    由FOptsLen可知接下来的5个字节都MAC命令,则FOpts(0X0306FFFF01),命令的第一个字节0X03表示CID=LinkADRReq,也就是请求终端改变数据率、传输功率、接收率或者信道。剩下四个字节类似参数,这里不说明了。
    下一个字节是FPort(0x02)
    余下的数据就是负载和MIC了,负载肯定是被加密了的(0XBD 0X80),因为FPort不等于0,则密匙便是APPSkey。MIC为(0XEF 0XEF 0XB5 0XA4)
    至此便分析完成了该帧数据

    3 工具解析

    针对LORAWAN的协议解析在github上有个挺不错的工程lorawan-parser,虽然他的README有使用说明,我这里还是针对上面数据示例一下用该工具进行解析。
    下载完成后,进入该目录,执行下列

    sudo apt-get install autoconf libtool
    
    cd lorawan-parser
    autoreconf -i
    ./configure
    make
    

    然后在进入该文件加下的util/parser/目录,执行解析命令

    ./lwp --parse "A0 EB 05 57 00 85 09 00 03 06 FF FF 01 02 BD 80 EF EF B5 A4" --nwkskey c0be53e02476d2710d41709e4094915a --appskey 4702fbd8b09d9ef8a89061e314acf5a2 --appkey 1ead1ac44a9e01dd065513142e576698
    

    得到解析结果


    image.png

    相关文章

      网友评论

          本文标题:解析一帧空中捕获的lorawan下行数据

          本文链接:https://www.haomeiwen.com/subject/uzudyctx.html