当前位置:   article > 正文

通过USRP B200软件无线电SDR方式解码无人机坐标飞手坐标,实现无人机探测侦测监控,继而实现反制压制

usrp b200

实验平台

环境详情
电脑联想
系统Windows
gnuradiognuradio-3.7.5
uhdUHD-Mirror-release_003_009_002
USRP 型号USRP-B200-mini 

一、摘要

        无人机的应用领域越来越广泛,但是其目前大范围广泛使用给安全、安保和隐私带来了许多风险。例如,攻击方可能会使用无人机进行监视、运输非法物品,或通过侵入机场上方的封闭空域造成经济损失。为了防止恶意使用,无人机制造商采用多种对策来强制安全可靠地使用无人机,例如对速度和高度施加软件限制,或使用地理围栏实施禁飞区。

       但对应临时的重要会议,临时的考试会场,重要的安保现场,隆重的体育赛事等则无法使用有效的手段对无人机进行监管侦测。

        有没有一种有效的办法可以对无人机的位置可以直接的获取呢?我们研究了目前市场上占用率最高的大疆无人机。大疆无人机和遥控器之间使用了一种类似于WIFI协议的通信技术进行数据回传。既然有数据发出,遥控器能正常接收,那么我们可以用一种无线电接收设备来接收这些数据。

        本次使用的无线电接收机是网上购买的 USRP-B200-mini,它是一种通用的无线电接收设备也叫通用软件定义无线电简称SDR。  

二、无人机相关原理和基础及数据图传相关技术研究

本次主要研究了目前主流的航拍机器

• DJI Mini 2,RC:RC231

• Mavic Air 2,RC:RC231

• Mavic 2 Pro / Zoom, RC: RC1B

      通过研究他们的遥控器发现,通过 C2 链路控制无人机和相机。来自控制器和智能手机的用户输入被发送到收发器,收发器调制信号并通过 OcuSync 协议传输。此外,RC 接收无人机的下行链路数据,其中包括遥测数据和视频馈送,然后将其传递给智能手机。RC231 也使用 S1 SoC 作为收发器,支持最新的 DJI 无人机,如 DJI Mini 2、Mavic Air 2、Mavic Air 2s 和 Mavic 3。这些无人机使用 OcuSync 传输协议进行 C2 和下行链路。选择的OcuSync版本以实际无人机机型为准 - 可以是 OcuSync 2.0、3.0 或 3+。收发器结合了用于无线电通信的发射器和接收器,是无人机的重要组成部分。它通过专有协议或无线标准(如蓝牙或 WiFi)工作。一些最新的 DJI 无人机使用所谓的 Sparrow S1 收发器进行 OcuSync 传输。该收发器是基于 ARM Cortex-M CPU 的专有 SoC,可以在 Mini 2 和 Mavic Air 2 中找到。Mavic Air 2s 和 Mavic 3 使用所谓的 P1(Pigeon)SoC 作为收发器。

三、无人机频谱分析

         无人机的图传一般使用WIFI或者LTE协议。目前无人机的图传协议远比WIFI协议和LTE协议距离远,大疆也使用过wifi图传协议,例如精灵系列。后来大疆推出了自有的图传协议Lightbridge,例如精灵4,Lightbridge传输距离超过了wifi,但是最大只能到5km。之后大疆所有机型都采用最先进的Ocusync图传协议,现在已经演进到了Ocusync3.0版本,距离达到10公里以上。

        根据分析,很明显Ocusync这些协议使用与 LTE/WIFI 类似的调制技术和参数。逐步对所有后续参数进行逆向工程。下图显示了单个 DroneID 无线电帧的频谱。一个数据包包含九个标志,包括两个 Zadoff-Chu (ZC) 同步标志(列 4 和 6)。其他标志是 OFDM 数据标志,具有 601 个子载波(600 个数据和 1 个 DC),子载波间隔为 15 kHz。载波被填充到2的下一个幂次数,以在下一步中应用快速傅立叶变换 (FFT);这给出了总共 1024 个子载波,总带宽为 15.36 MHz(包括保护频带)。

记录显示数据包每 640 毫秒重复广播一次。注意到一些无人机(Mavic 2 和更早的 OcuSync 无人机)不发送第一个标志(标志 1),这导致更短的帧持续时间为 576 µs。其他参数保持不变。

四、无人机信号解调

将无线电信号转换为比特和字节需要多个步骤:

a) 时间同步以找到 OFDM 标志的边界和频率同步以与承载有效载荷的 OFDM 子载波对齐;

b) 信道估计考虑无线电传输期间的失真;

c) 子载波的解调制(即,将 OFDM 子载波映射到位)。

通过循环前缀的时间同步:Symbol 不能一个接一个直接追加,而是需要在它们之间进行填充以减少标志间干扰。对于 DroneID,标志之间的间隙由循环前缀 (CP) 填充:每个标志末尾的副本附加在相应标志的开头。这能够应用 Schmidl-Cox 时间同步 - 将移动一个标志长度并具有循环前缀宽度的两个块相关联。原理如下图所示。循环前缀长度为72个样本,标志1和9除外,它们具有80个样本的扩展循环前缀。下图中相关性的峰值显示时域中的标志开始。有了关于确切标志开始的信息,可以使用 FFT 将标志转移到频域 - 来自时域的 1024 个样本导致频域中的 1024 个子载波。同步后,循环前缀不再需要并被丢弃。

通过 Zadoff-Chu 序列进行频率偏移校正:发现标志 4 和 6 总是包含根为 600 和 147 的 ZC 序列。将本地生成的 ZC 序列与实际标志相关联,产生任何载波频率偏移,并应用 用于校正的频移。

副载波解调和比特分配:OFDM 副载波是正交相移键控 (QPSK) 调制的。即,载波信号相移四个可能角度之一,以将信号的消息调制为两位。下图显示了四种不同的相移,产生了四个簇(如果绘制为复数表示)及其各自的位表示。同步和纠错越好,分组越清晰。以下解码步骤将显示位分配是否正确。

五、无人机信号解码

前面的步骤将无线电信号转换为比特流,可以对其进行解码以检索实际的 DroneID 有效载荷。通过分析 S1 固件,发现数据 用Gold序列加扰,确定了底层线性反馈移位寄存器 (LFSR) 的种子。此外,它使用与 LTE 规范中相同的子块交织置换表使用turbo编码器进行编码。

使用比特流的解扰和涡轮解码,并将生成的数据映射到如上的DroneID 结构,通过逆向工程在无人机的固件中找到了它。每个数据包中包含的 CRC 校验和与计算相匹配,表明正确恢复了数据。下图显示了成功恢复 DroneID 负载的示例。

解码出来的无人机数据结构

typedef struct {
    int          index;
    uint16_t packet_type;
    uint16_t seq_num;
    uint16_t state_info;
    uint8_t drone_serial_num[17]; // 唯一序列号
    double drone_longitude; //无人机经度
    double drone_latitude; //无人机纬度
    float altitude;
    float height; //barometric mearsure
    float north_speed;
    float east_speed;
    float up_speed;
    int16_t pitch_angle; // only for ver1
    int16_t roll_angle; // only for ver1
    int16_t yaw_angle;
    uint64_t gpstime; //GPS时间
    double pilot_longitude;  //飞手经度
    double pilot_latitude;  //飞手纬度
    double home_longitude;//返航点经度
    double home_latitude; //返航点纬度
    uint8_t product_type;//产品型号数字代号
    char product_type_str[32]; //产品型号字符串
    uint8_t uuid_length;
    uint8_t uuid[18];
    uint8_t license[10];
    SYSTEMTIME detect_time;
    double detect_freq;
    double uav_distance;
    double pilot_distance;
    double home_distance;
}PlaneInfo;

六、测试结果

通过实测 DJI Mini 2,Mavic Air 2, Mavic 2 Pro等型号,都可以实时解码出无人机唯一序列号。无人机精确的经纬度,返航点经纬度和飞手经纬度。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/741547
推荐阅读
相关标签
  

闽ICP备14008679号