一种软硬件协同防止GNSS欺骗攻击芯片及系统
【技术领域】
本发明涉及汽车电子技术领域,具体涉及一种软硬件协同防止GNSS欺骗攻击芯片及系统。
【背景技术】
GNSS:全球卫星导航系统;Global Navigation Satellite System。全球导航卫星系统(GNSS)是在全球或区域基础上提供定位、导航和授时服务的系统。
PPS:秒脉冲;Pulse per Second。为GNSS接收器发出的秒脉冲,在整秒时刻发出。
GNSS欺骗:攻击者使用强信号干扰、回放已录制的GNSS信号、生成虚假GNSS信号等形式对GNSS使用者进行攻击。
在自动驾驶领域中,GNSS作为重要的传感器,提供位置、时间等信息。自动驾驶功能使用时间信息同步本地时间,供各个传感器使用;自动驾驶功能使用位置信息进行定位,通过地图获取当前路网结构等,确定驾驶策略等。GNSS接收器通常使用UART/SPI及GPIO与自动驾驶SoC芯片连接,其中UART/SPI等接口输出位置、速度、时间等信息,而GPIO则输出PPS(Pulse per Second)信号至自动驾驶SoC芯片。PPS信号在SoC芯片内部通常用作其他模块的触发等。
当前存在各种GNSS欺骗的手段,如信号压制、回放干扰、以及欺骗攻击等。因为当前自动驾驶SoC芯片并未对GNSS攻击进行特定设计,仅依靠软件诊断并不能有效对抗GNSS的干扰,则可能出现定位偏差,时间偏差,导致错误的决策,对行驶中的车辆以及交通参与者造成影响。
常见GNSS Receiver的标称误差精度在几十ns级别。在该标称精度的条件下,PPS信号能够满足自动驾驶功能的需求。但在实践中,因为各种原因可以观察到PPS信号的误差从ns级到ms级不等,无法满足自动驾驶系统所需。现有自动驾驶的SoC芯片并未对GNSS PPS的信号做特定的处理,如PPS信号的频率不稳、脉冲宽度不稳等,则造成不可预期的影响。
本发明针对自动驾驶领域的GNSS防欺骗芯片及系统进行了技术改进。
【发明内容】
本发明的目的是,提供一种软硬件协同、鲁棒性好的防止GNSS欺骗攻击芯片。
为实现上述目的,本发明采取的技术方案是一种软硬件协同防止GNSS欺骗攻击芯片,包括用于时间抖动识别与处理的PPS抖动识别与调整模块,所述PPS抖动识别与调整模块用于判定GNSS PPS信号抖动输出PPS抖动中断信号以及调整后的PPS信号;还包括处理器,所述处理器用于执行对GNSS时间/位置信息识别与处理的驱动程序、以及对PPS抖动中断信号进行处理的中断服务程序,所述中断服务程序用于暂停时间/位置数据的传输使用、并输出PPS中断事件给所述驱动程序,所述驱动程序用于接收和解码GNSS接收器信息获得时间/位置数据、并在接收到PPS中断事件时对位置数据/时间数据处理确认是否遭受GNSS欺骗攻击。
优选地,所述PPS抖动识别与调整模块包括寄存器组、PPS抖动识别子模块和PPS调整子模块,所述寄存器组用于存储GNSS配置参数,所述PPS抖动识别子模块用于接收GNSSPPS信号、根据所述寄存器组的配置参数进行GNSS PPS信号抖动检查、判定GNSS接收器所接收的GNSS PPS信号发生抖动并产生PPS抖动中断信号,所述PPS调整子模块用于所述PPS抖动识别子模块判定GNSS接收器所接收的GNSS PPS信号发生抖动时根据所述寄存器组的配置参数和本地时钟信号生成调整后的PPS信号。
优选地,所述PPS抖动识别子模块进行PPS抖动检查时GNSS PPS信号抖动超过GNSS配置参数配置的区间范围、或者GNSS PPS信号抖动超过一秒,则判定GNSS接收器所接收的GNSS PPS信号发生抖动并产生PPS抖动中断信号。
优选地,所述GNSS配置参数配置的区间范围是GNSS接收器标称的区间范围或者经过大量道路测试获取的区间范围。
优选地,所述的一种软硬件协同防止GNSS欺骗攻击芯片,所述处理器执行所述驱动程序时包括以下步骤:
S1、接收GNSS接收器信息;
S2、解码GNSS接收器信息;
S3、得到位置/时间数据,如果接收到PPS中断事件则暂停时间/位置数据的传输使用;
S4、通过对位置数据/时间数据处理确认是否遭受GNSS欺骗攻击,如否执行S1;
S5、报告GNSS错误,结束。
优选地,所述的一种软硬件协同防止GNSS欺骗攻击芯片,所述处理器执行所述中断服务程序时包括以下步骤:
Z1、读取中断请求状态寄存器;
Z2、是否是PPS抖动中断信号中断?如否执行其他中断操作、执行Z4;
Z3、暂停传送位置/时间数据到应用层,发送PPS中断事件;
Z4、取消中断屏蔽,结束。
优选地,所述芯片是自动驾驶芯片。
优选地,所述的一种软硬件协同防止GNSS欺骗攻击芯片,步骤S4:
持续维护本车的位置数据,每收到新的一帧位置信息,根据轮速、航向检查本车运动状态是否符合车身最大速度的设定范围,如果连续三次超出最大速度的设定范围,则判定遭受GNSS欺骗攻击;
或者持续维护时间数据,每收到新的一帧时间则检查两帧之间的时差,如果时差不为设定的周期,则判定遭受GNSS欺骗攻击。
本发明的又一目的是,提供一种软硬件协同、鲁棒性好的防止GNSS欺骗攻击系统。
为实现上述又一目的,本发明采取的技术方案是一种软硬件协同防止GNSS欺骗攻击系统,包括上述的一种软硬件协同防止GNSS欺骗攻击芯片、GNSS天线和GNSS接收器,所述GNSS天线连接GNSS接收器,所述GNSS接收器输出GNSS PPS信号到所述芯片GPIO接口,所述GNSS接收器输出GNSS位置、速度、时间信息到所述芯片UART/SPI接口。
本发明一种软硬件协同防止GNSS欺骗攻击芯片及系统有益效果如下:以芯片内部的PPS识别模块,协同软件的位置、时间信息识别模块,确认遭受GNSS欺骗;以芯片内部的PPS调整模块,生成可靠的PPS信号,协同软件切换位置与时间信息的使用策略,保证达成GNSS防欺骗的目的,保证整个系统的鲁棒性。
【附图说明】
图1是一种软硬件协同防止GNSS欺骗攻击系统PPS抖动识别与调整模块结构图。
图2是一种软硬件协同防止GNSS欺骗攻击系统框架图。
图3是一种软硬件协同防止GNSS欺骗攻击系统驱动软件流程图。
图4是一种软硬件协同防止GNSS欺骗攻击系统PPS中断服务程序流程图。
【具体实施方式】
下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明构思的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
实施例
本实施例实现一种软硬件协同防止GNSS欺骗攻击系统。
本实施例在自动驾驶SoC芯片内部设计一个芯片模块,协同软件共同完成GNSS防欺骗攻击的设计,包括时间抖动识别与处理的芯片模块设计,以及软件对定位信息的识别与处理。本实施例以芯片内部的PPS识别模块,协同软件的位置、时间信息识别模块,确认遭受GNSS欺骗;以芯片内部的PPS调整模块,生成可靠的PPS信号,协同软件切换位置与时间信息的使用策略。本实施例保证达成GNSS防欺骗的目的,保证整个系统的鲁棒性。
本实施例构思描述:
图1是一种软硬件协同防止GNSS欺骗攻击系统PPS抖动识别与调整模块结构图。如附图1所示,本实施例硬件PPS抖动识别与调整模块包括:
寄存器组:存储GNSS配置参数
PPS抖动识别子模块:接收GNSS PPS信号,根据Register Set中配置的参数进行检查,判断GNSS接收器所接收的信号是否有可能受到欺骗攻击。检查的主要机制为PPS的抖动检查,如果PPS的抖动超过了配置的区间范围,则认为可能受到了欺骗攻击。
现实中曾经发生过的欺骗攻击,导致GNSS PPS超过一秒,因此需要检查大于一秒的抖动;
小于一秒的欺骗攻击中,如果PPS的抖动在GNSS接收器标称的误差范围内,则无法进行区分。因此需要在寄存器组中配置GNSS接收器标称的区间范围。该区间范围的默认值由GNSS接收器供应商提供;同时需要经过大量道路测试,以获取更为准确的区间范围,配置在寄存器组中。
当PPS的抖动超过区间范围,使能中断信号,以便使软件尽快进行位置信息、时间信息的检查,用于确认是否遭受欺骗攻击。
PPS调整子模块:无论软件确认已经遭受欺骗攻击,只要PPS抖动识别子模块(Identifier)检查到PPS的抖动已经超过设定的区间范围,PPS调整子模块(Adjustment)应根据设定的参数,本地clock的周期等信息,生成调整后的PPS信号。该调整后的PPS信号周期应在设定的区间范围内。
本实施例软件:位置时间检查与PPS中断服务程序(PPS ISR)。
图2是一种软硬件协同防止GNSS欺骗攻击系统框架图。如附图2所示,在系统架构层面,GNSS接收器通常使用UART/SPI等接口输出位置、速度、时间等信息,使用RTCM,NMEA,或者自定义的协议等;而PPS则由GPIO输出到自动驾驶芯片。
图3是一种软硬件协同防止GNSS欺骗攻击系统驱动软件流程图。如附图3所示,本实施例驱动软件通过检查GNSS接收器提供的位置信息,时间信息等确认是否遭受攻击。
位置信息:软件持续维护本车的位置信息。每收到新的一帧位置信息,根据轮速,航向等检查自车运动状态是否符合车身最大速度的设定。如果连续三次超出范围,则认为遭受到欺骗攻击。
时间信息:软件持续维护GNSS提供的时间信息。每收到新的一帧时间则检查两帧之间的时差,如果时间差不为设定的周期,则认为遭受到欺骗攻击。
在PPS抖动识别与调整模块的中断信号发出后,驱动软件应暂停GNSS接收器数据往应用层的传输。在确认未经欺骗攻击后方可继续提供数据到应用层。同时,软件检查位置信息,只要随之出现一次位置偏差超出设定的范围,或者出现一次时间偏差超出设定范围,则认为遭受到欺骗攻击。
图4是一种软硬件协同防止GNSS欺骗攻击系统PPS中断服务程序流程图。如附图4所示,本实施例PPS ISR,进入PPS中断后暂停传送位置/时间数据到应用层,并发送PPS中断事件通知驱动程序软件。
本实施例:
1)在自动驾驶SoC芯片中,通过对GNSS PPS信号抖动的检查,确认是否遭受到GNSS欺骗攻击;并利用本地时钟生成新的稳定可靠的PPS,从而避免将错误传播到其他模块。
2)在软件设计中,GNSS驱动层检查GNSS报文内的位置与时间信息,如不符合运动学及时间上的客观规律,则认为遭受到欺骗攻击,从而更早地避免错误的传播。
3)协同硬件的PPS抖动中断与软件检查机制,形成更为可靠的GNSS欺骗判断,提供整体的GNSS防欺骗攻击的整体解决方案。
本领域普通技术人员可以理解,实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。