德思特技术 | Skydel 如何使用 USRP 完成 GNSS 信号仿真?

Skydel 与NI USRP    

软件定义架构(Software Defined Architecture)是一种新型的架构模式,它是一种基于软件的架构,通过软件来定义系统的功能,从而提高系统的运行效率和能量效率。软件定义架构可以将硬件资源抽象化,从而使得应用程序可以更好地利用硬件资源,提高系统的性能和可靠性

Skydel GNSS仿真引擎是创新型的软件定义GNSS模拟仿真引擎,它利用PC的GPU的计算能力并借助Nvidia GPU极快的数学计算能力处理星座、频率与轨迹信息,并生成IQ信号,使用SDR进行IQ信号的处理与RF信号的输出兼具两全其美的优势:顶级GNSS模拟器获得的高端性能,以及使用其GNSS软件架构的硬件所带来的规模经济性和灵活性。

NI(National Instruments,美国国家仪器公司)是一家总部位于美国的跨国公司,成立于1976年,专注于测试、测量和自动化领域的产品和服务,是测试测量行业的世界级龙头企业。

NI的核心产品之一USRP(Universal Software Radio Peripheral,通用软件无线电外设)系列,是一套开源的软件定义无线电(SDR)设备。USRP允许研究人员、工程师和爱好者通过软件编程来定义和重新定义无线电的通信协议,而无需更改硬件。这使得USRP非常适合于无线通信研究、原型设计、教育和业余无线电活动。

Ettus Research是USRP(Universal Software Radio Peripheral)产品的原始开发商,这是一家专注于软件定义无线电(SDR)技术的公司。2010年,Ettus Research被National Instruments(NI)收购。这次收购使得NI能够扩大其在无线通信和软件定义无线电领域的影响力。

Skydel允许用户使用NI USRP294xR/295xR系列以及同级别的Ettus Reserch的X300/X310/N310系列进行GNSS信号的仿真模拟,为各个行业的技术工程师带来直观、高效的GNSS仿真与测试方法。

硬件部署

Skydel可以在NI USRP-294xR/USRP-295xR部署环境下实现单一场景与多场景的仿真。

使用一个USRP

在使用一个USRP的情况下,允许仿真单个场景,实现单频双频GNSS信号输出。

skydel usrp21

使用USRP时,需要Skydel所在的计算机具有10GbE网卡,并使用10 GbE SFP光缆与SDR端口1连接,推荐的万兆网卡有:

      • Intel X710-BM2

      • Intel E810XXV-AM2

      • Intel XXV710-AM2

      • Intel E81oXXV-DA2

      • Intel XXV710-DA2

    *注意:一个 Skydel 实例只能与一个USRP通信,两个Skydel实例无法与一个USRP同时通信。

    使用多个USRP

    在使用一个USRP的情况下,允许仿真复数个场景,实现单频双频GNSS信号输出或反正一个场景,实现三频GNSS信号输出。

    与之前相同,使用USRP时,需要Skydel所在的计算机具有10GbE网卡,并使用10 GbE SFP光缆与SDR端口1连接。

    为了执行准确的GNSS模拟,SDR需要精确的参考时钟,每个 SDR都需要共享相同的10MHz参考时钟并具有共同的每秒脉冲 (PPS) 信号才能同步。

    需要注意的是,USRP本身具有80dB的增益,因此在使用线缆连接GNSS接收机时,一定要使用足够的衰减与隔直器以确保两端设备的安全使用。

     

    软件部署

    固件安装

    Skydel要正常使用,需要为USRP安装非常特定版本的FPGA映像,在首次将Skydel用于您的设备之前,您必须将此特定映像刻录到您的设备中。我们提供了简单可用的UHD驱动包(windows/Linux),直接安装应用即可,详细的固件安装方法请查阅Skydel使用手册。

    为什么Safran Skydel需要这个特定版本呢?——GNSS信号模拟有一个非常重要的要求:RF信号传输绝不能中断。缺少单个 I/Q样本会将误差引入载波相位,从而使整个模拟对于GNSS 接收器测试来说太不精确。为了实现不间断的RF信号,SDR 必须具有I/Q样本缓冲区。缓冲区必须足够大,以减轻软件和SDR之间I/Q样本传输的中断。为了确保I/Q样本流稳定,这个特殊的FPGA映像使用板载DDR RAM作为流缓冲区;这种 FPGA映像称为“HG”映像。

    软件配置

    本文将会介绍在WINDOW环境下如何快速实现NI USRP的部署并使用Skydel进行GNSS仿真,Ubuntu下的部署请咨询德思特相关技术工程师。

    Skydel 支持以下 Microsoft Windows 版本:

        • Windows 10 家庭版/专业版

        • Windows 11 家庭版/专业版

      BIOS设置

      我们强烈建议您在BIOS中修改以下设置:

          • 禁用Intel SpeedStep;

          • 禁用Intel Turbo Boost。

        需要禁用这些设置才能强制CPU始终以相同频率运行。否则,当CPU频率变化时,可能会导致计算机与SDR之间的通信链接不稳定。这反过来可能会导致GNSS信号传输中断。

        windows系统设置

        ① 电源计划

            • 打开控制面板、电源选项,然后单击“选择电源计划”。

            • 选择“高性能”电源计划。

            • 点击“更改计划设置”,将所有时间设置为“从不”。

          说明:在GNSS模拟期间始终保持显示器打开。Windows能够检测显示器是打开还是关闭,当显示器关闭时,Windows可能会降低GPU的性能,从而导致模拟错误(例如,流缓冲区不足)。

          ② 注册表项:FastSendDatagramThreshold

          仅在使用Ettus或NI SDR时需要设置。使用regedit工具打开Windows注册表:

              • 在HKEY_LOCAL_MACHINE\System\CurrentControlSet \Services\AFD\Parameters\下添加或修改DWORD注册表项 FastSendDatagramThreshold;

              • 确保该值为9000(十进制);

              • 重新启动PC使之生效。

            ③ 通知

            GNSS 模拟期间,强烈建议关闭所有 Windows 通知以避免中断。为此,请打开通知与操作,然后禁用通知。

            Nvidia GPU驱动程序

            安装的Nvidia显卡驱动程序必须支持CUDA Runtime API 11.8.0或更高版本。确保您的计算机使用的是最新的WHQL认证的Nvidia GPU驱动程序(520.06或更高版本)。您可以在 Nvidia网站下载最新版本。

            网卡设置

            ① 驱动程序

            仅在使用Ettus或NI SDR时需要设置,从英特尔网站下载并安装最新版本。

            ② 巨帧数据包

            打开控制面板、网络和共享中心,然后更改适配器设置。右键单击连接到 SDR 的适配器并选择属性。单击配置,然后在高级选项卡中查找“巨帧数据包”:

                • 启用巨帧数据包,并将大小设置为最大值。

                  • 在高级选项中,将传输缓冲区设置为最大值 (16384)

                ③ 静态 IP 地址

                打开控制面板、网络和共享中心、更改适配器设置。右键单击连接到 SDR 的适配器并选择属性。双击 Internet 协议版本 4 (TCP/IPv4):

                    • 选择单选按钮“使用以下 IP 地址”;

                    • IP地址:192.168.40.1

                    • 子网掩码:255.255.255.0

                  硬件连接

                  1.  软件配置完成后,关闭计算机,NI USRP连接电源

                  2.  黄色光纤连接到两台设备,听到“咔哒”一声就说明连接好了。如果需要拔出,拉住光纤头的塑料手柄平行拔除即可。

                  a.  USRP插“1”端口,PC插入对应设置静态IP为“192.168.40.1”的SFP端口。

                  b.  拔出塑料把手如图

                  3.  连接好之后,在命令行输入“ping 192.168.40.2”。如果没有ping通,尝试检查硬件后重启电脑。

                  启动Skydel

                  至此,您可以正常打开Skydel,并选择对应的SDR开始您的仿真。

                  打开Skydel,如果需要直接使用,可打开例程“usrp-testing.sdx”(usrp-testing.sdx),即可进行Skydel GUI的测试,如需要API控制,也需要打开Skydel。

                  警告:

                  一定要加隔直器单元,否则反向电流会打坏USRP!

                  一定要加衰减器,否则过大功率会损坏待测件!

                  •软件定义的GNSS仿真模拟引擎Skydel

                  Skydel 模拟引擎创新性的采用了软件定义架构,兼具两全其美的优势:顶级GNSS 模拟器获得的高端性能,以及使用其 GNSS 软件架构的硬件所带来的规模经济性和灵活性。斯凯德尔(Skydel)是为满足苛刻的模拟要求而设计的,它擅长在实验室中重现各种真实世界的场景。可以实现广泛的模拟器配置,从简单的桌面设置到多波段暗室。包含丰富的功能集,支持高达1000个通道(搜星数量)、具有1000 Hz模拟迭代率、用户定义脚本的远程控制