公开/公告号CN112737789A
专利类型发明专利
公开/公告日2021-04-30
原文格式PDF
申请/专利权人 上海芯钛信息科技有限公司;
申请/专利号CN202011547849.2
发明设计人 何家桢;
申请日2020-12-23
分类号H04L9/32(20060101);H04L29/08(20060101);H04L29/06(20060101);G06F13/42(20060101);
代理机构43225 长沙国科天河知识产权代理有限公司;
代理人邱轶
地址 200040 上海市静安区江场西路199号B座503室
入库时间 2023-06-19 10:48:02
技术领域
本申请涉及车联网技术领域,特别是涉及一种基于双路SPI并发实现车载通信网关高速密码运算的方法。
背景技术
车用无线通信技术(Vehicle to Everything,V2X)是将车辆与一切事物相连接的新一代信息通信技术,其中V代表车辆,X代表任何与车交互信息的对象。C-V2X(Cellular-V2X)是基于3G/4G/5G等蜂窝网通信技术演进形成的车用无线通信技术。
C-V2X技术在实现汽车联网获得更多服务的同时,也将汽车的控制系统暴露在网络虚拟环境当中,容易遭受外界的恶意攻击,带来了新的安全问题。为确保道路通行安全和事故责任认定,C-V2X信息交互时,应当进行完备的消息合法性/完整性验证,建立国家级的C-V2X通信认证鉴权体系。C-V2X需遵循《基于LTE的车联网无线通信技术安全证书管理系统技术要求》规范。
C-V2X消息验证使用中国商用密码算法SM2作为数字签名算法。在PC5/V5消息业务模型中,当车辆达到饱和数量200辆时,每个节点车辆消息发送速率为10条/秒,当前节点车辆消息到达速率将达到2000条/秒,考虑到通信以及业务报文等的处理损耗,需要预留20%的计算冗余能力,5G通信网关的设计性能目标应该不低于2400条/秒。
汽车领域综合考虑可靠性、性能、成本等因素,普遍采用SPI(串行外设接口SerialPeripheral Interface)作为芯片之间的通信接口。现有技术方案是5G通信网关的主处理器使用1路SPI访问加密芯片进行密码运算,经测试,单路SPI下的最大运算性能为1000000/473=2114次/秒。虽然满足2000次/秒的理论需求,但是达不到2400次/秒的设计需求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决5G场景下运算性能不符合要求的基于双路SPI并发实现车载通信网关高速密码运算的方法、装置、计算机设备和存储介质。
一种基于双路SPI并发实现车载通信网关高速密码运算的方法,上位机包括两路SPI接口,上位机通过两路SPI接口与加密芯片通讯,所述方法包括:
上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定;
上位机检查加密芯片的状态信息,当状态信息为预设值时,将所述请求报文发送给加密芯片;
加密芯片接收所述请求报文,并根据所述请求报文进行密码计算,得到结果报文;
上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁;
上位机解析所述结果报文得到运算结果。
在其中一个实施例中,还包括:加密芯片中启动两个线程分别监听所述两路SPI接口,并根据所述状态信息,接收通过SPI接口发送的报文请求。
在其中一个实施例中,还包括:设置所述两路SPI接口的优先级相同。
在其中一个实施例中,还包括:上位机检查加密芯片中GPIO引脚的状态信息,确定状态信息;当状态信息为预设值时,将所述请求报文发送给加密芯片。
在其中一个实施例中,还包括:设置GPIO引脚的状态信息为运算完成状态;所述运算完成状态下上位机接收加密芯片反馈的结果报文。
在其中一个实施例中,还包括:加密芯片在接收到上位机发送的请求报文时;解析所述请求报文,并开启所述两路SPI接口对应的并发锁;根据所述请求报文进行密码计算,得到计算结果,关闭所述两路SPI接口对应的并发锁;对所述计算结果进行组装,得到结果报文。
一种基于双路SPI并发实现车载通信网关高速密码运算的装置,上位机包括两路SPI接口,上位机通过两路SPI接口与加密芯片通讯,所述装置包括:
请求生成模块,用于上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定;
第一状态检测模块,用于上位机检查加密芯片的状态信息,当状态信息为预设值时,将所述请求报文发送给加密芯片;
加密计算模块,用于加密芯片接收所述请求报文,并根据所述请求报文进行密码计算,得到结果报文;
第二状态检测模块,用于上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁;
结果解析模块,用于上位机解析所述结果报文得到运算结果。
在其中一个实施例中,还包括:监听模块,用于加密芯片中启动两个线程分别监听所述两路SPI接口,并根据所述状态信息,接收通过SPI接口发送的报文请求。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定;
上位机检查加密芯片的状态信息,当状态信息为预设值时,将所述请求报文发送给加密芯片;
加密芯片接收所述请求报文,并根据所述请求报文进行密码计算,得到结果报文;
上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁;
上位机解析所述结果报文得到运算结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定;
上位机检查加密芯片的状态信息,当状态信息为预设值时,将所述请求报文发送给加密芯片;
加密芯片接收所述请求报文,并根据所述请求报文进行密码计算,得到结果报文;
上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁;
上位机解析所述结果报文得到运算结果。
上述基于双路SPI并发实现车载通信网关高速密码运算的方法、装置、计算机设备和存储介质,通过设置双路SPI,并采用并发机制,可以缩短两次密码计算的通信时间,从而提高运算次数,满足5G场景下的设计需求。
附图说明
图1为一个实施例中基于双路SPI并发实现车载通信网关高速密码运算的方法的流程示意图;
图2为一个实施例中上位机中执行步骤的示意性流程图;
图3为一个实施例中加密芯片中执行步骤的示意性流程图;
图4为一个实施例中基于双路SPI并发实现车载通信网关高速密码运算的方法的时序图;
图5为一个实施例中基于双路SPI并发实现车载通信网关高速密码运算的装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于双路SPI并发实现车载通信网关高速密码运算的方法,上位机包括两路SPI接口,上位机通过两路SPI接口与加密芯片通讯,包括以下步骤:
步骤102,上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定。
上位机中生成请求报文,并且通过并发机制,每次通讯选择其中一路SPI接口,并将该通道通过通道锁锁定,保证运算安全。
步骤104,上位机检查加密芯片的状态信息,当状态信息为预设值时,将请求报文发送给加密芯片。
状态值可以自行设置,例如设置状态值为0表示加密芯片准备就绪,状态值为1表示加密芯片运算完成。本实施例中,状态值为0时,将请求报文发送给加密芯片。
步骤106,加密芯片接收请求报文,并根据请求报文进行密码计算,得到结果报文。
加密芯片中通过预设的加密算法进行密码计算,得到计算结果,封装后得到结果报文。
步骤108,上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁。
本步骤中,状态信息为1时,接收加密芯片发送的结果报文。
步骤110,上位机解析结果报文得到运算结果。
上述基于双路SPI并发实现车载通信网关高速密码运算的方法中,通过设置双路SPI,并采用并发机制,可以缩短两次密码计算的通信时间,从而提高运算次数,满足5G场景下的设计需求。
在其中一个实施例中,加密芯片中启动两个线程分别监听两路SPI接口,并根据状态信息,接收通过SPI接口发送的报文请求。具体的,加密芯片内部需要运行一个RTOS系统,负责调度和管理2路SPI收发及调度线程并发,本方法采用RTX5实时操作系统。
在其中一个实施例中,设置所述两路SPI接口的优先级相同。启动2个线程分别执行第一SPI接口和第二SPI接口下的消息处理,为了保证2个接口通道并发运行,两个线程优先级需要设置为相同优先级。
在其中一个实施例中,上位机检查加密芯片中GPIO引脚的状态信息,确定状态信息;当状态信息为预设值时,将所述请求报文发送给加密芯片。
具体的,加密芯片每一路SPI需要使用1个GPIO引脚用于状态通知。
0-加密芯片就绪。
1-加密芯片运算完成。
表1是物理接口对应的状态查询接口关系表:
表1状态查询接口关系表
其中,SPI-0连接上位机中的第一SPI接口,SPI-1连接上位机中的第二SPI接口,GPIO-6和GPIO-7为加密芯片上的两个GPIO引脚。
具体的,上位机通过GPIO接口,读取芯片状态,当芯片就绪时(GPIO值=0),才可以发送运算请求报文,直到检测到芯片状态为运算完成(GPIO值=1),才可以读取消息的返回。
在其中一个实施例中,设置GPIO引脚的状态信息为运算完成状态;运算完成状态下上位机接收加密芯片反馈的结果报文。
在其中一个实施例中,加密芯片在接收到上位机发送的请求报文时;解析所述请求报文,并开启两路SPI接口对应的并发锁;根据请求报文进行密码计算,得到计算结果,关闭两路SPI接口对应的并发锁;对计算结果进行组装,得到结果报文。
在一个具体实施例中,如图2所示,上位机中的方法流程如下:
1、组装密码运算报文。
2、使用轮询算法选择一路SPI。
3、开启通道锁。
4、检查芯片状态。
5、发送报文给加密芯片。
6、检查芯片状态,等待芯片返回。
7、接收芯片返回报文。
8、关闭通道锁。
9、解析报文。
如图3所示,在加密芯片中的方法流程如下:
1、监听SPI通道,并接收请求。
2、判断是否有请求报文,若是,则转3,若否,则转1.
3、解析报文。
4、开启并发锁。
5、调用密码运算单元计算。
6、释放并发锁。
7、组装返回报文,并设置GPIO状态为运算完成。
8、通过SPI发送返回报文。
9、判断是否继续,若是,则转10,若否,则结束。
10、设置GPIO状态为就绪,并跳转到1执行后续处理。
在其中一个实施例中,设置请求报文的长度为168字节,基于双路SPI并发实现车载通信网关高速密码运算的方法的时序图如图4所示。
应该理解的是,虽然图1至4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种基于双路SPI并发实现车载通信网关高速密码运算的装置,上位机包括两路SPI接口,上位机通过两路SPI接口与加密芯片通讯,包括:请求生成模块502、第一状态检测模块504、加密计算模块506、第二状态检测模块508和结果解析模块510,其中:
请求生成模块502,用于上位机生成请求报文,通过轮询方式选择其中一路SPI接口,对选中的SPI接口通过通道锁锁定;
第一状态检测模块504,用于上位机检查加密芯片的状态信息,当状态信息为预设值时,将所述请求报文发送给加密芯片;
加密计算模块506,用于加密芯片接收所述请求报文,并根据所述请求报文进行密码计算,得到结果报文;
第二状态检测模块508,用于上位机检查加密芯片的状态信息,当状态信息为预设值时,接收加密芯片发送的结果报文,并关闭选中的SPI接口的通道锁;
结果解析模块510,用于上位机解析所述结果报文得到运算结果。
在其中一个实施例中,还包括:监听模块,用于加密芯片中启动两个线程分别监听所述两路SPI接口,并根据所述状态信息,接收通过SPI接口发送的报文请求。
在其中一个实施例中,监听模块还用于设置所述两路SPI接口的优先级相同。
在其中一个实施例中,第一状态检测模块504还用于上位机检查加密芯片中GPIO引脚的状态信息,确定状态信息;当状态信息为预设值时,将所述请求报文发送给加密芯片。
在其中一个实施例中,加密计算模块506还用于设置GPIO引脚的状态信息为运算完成状态;所述运算完成状态下上位机接收加密芯片反馈的结果报文。
加密计算模块506还用于加密芯片在接收到上位机发送的请求报文时;解析所述请求报文,并开启所述两路SPI接口对应的并发锁;根据所述请求报文进行密码计算,得到计算结果,关闭所述两路SPI接口对应的并发锁;对所述计算结果进行组装,得到结果报文。
关于基于双路SPI并发实现车载通信网关高速密码运算的装置的具体限定可以参见上文中对于基于双路SPI并发实现车载通信网关高速密码运算的方法的限定,在此不再赘述。上述基于双路SPI并发实现车载通信网关高速密码运算的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于双路SPI并发实现车载通信网关高速密码运算的方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
机译: 利用SPI通信的基于网络的高速传感器监测系统及其方法,能够对传感器模块进行故障监测和常规校正
机译: 使用基于专用道路交通通信的路边单元(rsu)和车载单元(obu)提供道路工作区交通信息的系统及其方法
机译: 在行驶中的收费系统中收取费用的方法基于具有车载单元的车辆,该车载单元可以通过短距离无线电接口与信标路(BI)进行通信,其中车载单元由一个帐户存储的第一存储器组成电子收费,用于信息交易的第二个内存和可变因数的第三个内存,以及发送请求以将借记金额加载到收费账户帐户的信标的信标