掌桥专利:专业的专利平台
掌桥专利
首页

设备访问方法、装置、系统、自动驾驶车辆及电子设备

文献发布时间:2024-04-18 19:59:31


设备访问方法、装置、系统、自动驾驶车辆及电子设备

技术领域

本公开涉及通信技术领域,具体涉及传感器通信技术领域,尤其涉及设备访问方法、装置、系统、自动驾驶车辆、电子设备、存储介质及计算机程序产品。

背景技术

自动驾驶系统通常集成了多种类型的传感器(例如相机、激光雷达、超声波传感器等),以获取车辆周围环境的不同信息。当整个系统在运行时,自动驾驶系统的上层应用通常需要通过状态监控进程不断轮询各个相机传感器的多种状态信息。

发明内容

本公开提供了一种设备访问方法、装置、系统、自动驾驶车辆、电子设备、存储介质及计算机程序产品,用于实现待访问设备的参数数据的访问。

根据本公开的一方面,提供了一种设备访问方法,用于底层芯片,包括:获取上层应用传输的访问信息,访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址;根据设备标识和存储地址,获取待访问参数的参数数据;将参数数据进行存储,并通知上层应用参数数据获取成功。

根据本公开的另一方面,提供了一种用于访问设备的装置,包括:第一获取模块、第二获取模块和存储模块。其中,第一获取模块被配置为获取上层应用传输的访问信息,访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址;第二获取模块被配置为根据设备标识和存储地址,获取待访问参数的参数数据;存储模块被配置为将参数数据进行存储,并通知上层应用参数数据获取成功。

根据本公开的另一方面,提供了一种用于访问设备的系统,包括应用处理器和底层芯片。其中,应用处理器,被配置为将上层应用的访问信息写入底层芯片;访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址;底层芯片被配置为获取访问信息;根据设备标识和存储地址,获取待访问参数的参数数据;将参数数据进行存储,并通知上层应用参数数据获取成功。

根据本公开的另一方面,提供了一种自动驾驶车辆,包括上文提及的用于访问设备的系统。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器和存储器。其中,存储器与至少一个处理器通信连接,并存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施方式提及的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述实施方式提及的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述实施方式提及的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1示出了可以应用本公开的设备访问方法的示例性系统架构的示意性框图;

图2是根据本公开的第一实施例的设备访问方法的流程示意图;

图3是根据本公开的第二实施例的设备访问方法的流程示意图;

图4是根据本公开的第三实施例的访问设备的装置的示意性框图;

图5是根据本公开的第四实施例的用于访问设备的系统的示意性框图;

图6是根据本公开的第五实施例的自动驾驶系统的示意性框图;

图7是根据本公开的一些实施例的底层芯片和图像信号处理器的交互过程的示意图;

图8是根据本公开的一些实施例的自动驾驶系统的上层应用访问相机的过程的示意图;

图9示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是可以应用本公开的设备访问方法的示例性系统架构的示意性框图。如图1所示,系统100可包括应用处理器110、底层芯片120和待访问设备130。

系统100可使用应用处理器110的状态监控进程等程序,通过底层芯片120来访问待访问设备130。示例地,这里的应用处理器110可通过基于高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)的接口与底层芯片120进行数据交互,实现对底层芯片120的寄存器的读写操作。底层芯片120可与各个待访问设备130通信连接,进而查询各个待访问设备130的待访问参数。

在一些实施例中,应用处理器110可以是硬件,也可以是软件。当上层应用为硬件时,可以是具有处理能力的电子设备。当应用处理器110为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

在一些实施例中,底层芯片120可被实施为一现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)芯片。基于FPGA芯片的可编程特性,底层芯片120内可存储有预定义的用于访问待访问设备130的逻辑模块,以实现接收和整合来自这些待访问设备130的数据的功能。当整个系统100在运行时,底层芯片120可以和每个待访问设备130进行通信以获取其状态信息,例如,电压参数、温度参数和连接状态等。

在一些实施例中,底层芯片120和待访问设备130之间基于内部集成电路(Inter-Integrated Circuit,I2C)总线进行通信连接。

在一些实施例中,待访问设备130可例如为各类传感器器件。示例地,系统100可布设于自动驾驶系统,该待访问设备130可例如为自动驾驶系统集成的相机、激光雷达、超声波传感器等传感器。

在一些技术中,在各个传感器工作时,应用处理器110通过状态监控进程不断轮询各个传感器的多种状态信息。以相机为例,当应用处理器110想要查询相机的工作状态信息时,需要通过底层芯片使用规定格式的命令信息并进行特定的握手通信完成状态读取。然而,这个过程会产生大量的读写寄存器操作。当多个多种类型传感器同时运行且需要频繁访问时,该访问过程会偶发性的产生访问冲突或导致访问延时增大,尤其是对于传输周期敏感的操作,这可能会影响自动驾驶系统的性能和可靠性。

具体而言,上述访问过程由应用处理器110中的上层应用(例如监控应用程序)主导的发起对待访问设备130的访问。上层应用每次想要查询相机的状态信息时,通过读写寄存器的方式配置底层芯片120的通信控制器,以控制底层芯片120获取待访问设备130的状态信息。首先,上层应用需要先发送握手命令至底层芯片120的通信控制器。该握手命令可例如为一23字节API命令信息(API Command Message)。上层应用每次发送握手命令中的一个字节,且每次发送前查询底层芯片120的通信控制器的状态寄存器以确定通信控制器的发送缓存区是否为非满状态,若发送缓存区为非满状态,继续发送下一字节。发送完成后,上层应用通过查询底层芯片120的通信控制器的状态寄存器读回握手响应信息。上层应用判断握手响应信息中的校验位是否正常,若校验位正常,则再次发送查询命令,例如14字节查询命令消息(Query Command Message)。上层应用每次发送查询命令中的一个字节,且每次发送前查询底层芯片120的通信控制器的状态寄存器以确定通信控制器的发送缓存区是否为非满状态,若发送缓存区为非满状态,继续发送下一字节。发送完成后,上层应用通过查询底层芯片120的通信控制器的状态寄存器读回查询响应信息,例如一16字节查询响应消息(Query Response Message),至此完成单个相机某一种状态(例如温度)的查询。通过上述过程可以看出,上述访问方式存在大量的读写寄存器访问操作,占用大量访问带宽,进而导致多个多种类型传感器同时运行且需要频繁访问时偶发性的产生访问冲突或导致访问延时增大,影响自动驾驶系统的性能和可靠性。

图2是根据本公开的第一实施例的设备访问方法的流程示意图。该设备访问方法200可应用于底层芯片。如图2所示,该设备访问方法200可包括以下步骤:

步骤201,获取上层应用传输的访问信息。

在本实施例中,访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址。底层芯片从上层应用获取访问信息,以确定待访问设备的设备标识、以及待访问设备的待访问参数的存储地址,进而触发对待访问设备的访问操作。该过程中,上层应用传输访问信息至底层应用即可,无需进行握手命令、查询命令的读写操作,减少了上层应用对底层芯片的读写操作次数,从而占用的访问带宽。

作为一个示例,待访问设备的设备标识可包括待访问设备自身的标识,被用于确定需要访问的待访问设备。换言之,底层芯片根据待访问设备自身的标识部分,确定需要访问的待访问设备,与其建立通信。

可选择的,待访问设备的设备标识还可包括待访问设备内的某一器件的标识,被用于确定本次查询的是待访问设备中的哪个器件的参数。

应当理解的是,在未背离本公开教导的情况下,设备标识中包含的信息可根据需要设置。例如,若底层芯片通过通信切换芯片与待访问设备的信号处理器通信,待访问设备的设备标识可包括待访问设备中某一器件的标识。底层芯片通过待访问设备的配置信息控制通信切换芯片进行通信切换,建立底层芯片和待访问设备的信号处理器之间的通信通路。之后,底层芯片通过通信切换芯片发送包含需要访问的器件的标识和存储地址的查询指令至待访问设备的信号处理器,以使信号处理器从存储地址所指示的寄存器中获取该器件的参数数据,并将获取到的参数数据反馈给底层芯片。本公开对待访问设备的设备标识中含有的信息不做限制。

作为一个示例,待访问参数的存储地址可以是待访问设备的寄存器的地址。该寄存器用于存储待访问设备的各个器件的参数数据。示例地,待访问参数可以是待访问设备的部分或全部器件的参数,底层芯片可基于该存储地址,可对待访问设备的寄存器执行读操作,以获取待访问设备的部分或全部器件的参数。例如,底层芯片可基于寄存器的地址读取该寄存器中存储的所有器件的参数数据。又如,底层芯片可结合设备标识中指示的器件的标识和寄存器的地址,读取寄存器中存储的某一个器件的参数数据,本公开对此不做限制。

应当理解的是,在未背离本公开教导的情况下,待访问参数的存储地址还可以包括待访问参数在寄存器中的地址,使得底层芯片在进行读操作时,无需结合设备标识中的器件的标识确定待访问参数,本公开对存储地址不做限制。

作为一个示例,待访问参数可例如包括待访问设备的电压参数、温度参数和连接状态中的至少一个。其中,待访问设备的电压参数可包括待访问设备中各个器件的供电状态参数,也可以包括待访问设备的指定器件的供电状态参数。同理,温度参数可包括待访问设备中各个器件的温度参数,也可以包括待访问设备的指定器件的温度参数。连接状态可包括待访问设备中各个器件的连接状态,也可以包括待访问设备的指定器件的连接状态。换言之,上层应用需要访问的参数可以是待访问设备的部分或全部器件的参数。

以待访问设备为相机为例,相机包括并行化器、串行化器和图像传感器。待访问参数可包括以下至少之一:相机的图像传感器的电压参数、图像传感器的温度参数、相机的并行化器的电压参数、并行化器的连接状态、相机的串行化器的电压参数和串行化器的连接状态。

应当理解的是,在未背离本公开教导的情况下,待访问参数会根据待访问设备的设备类型、内置器件的器件类型等适应性调整,此处对待访问参数的具体参数类型不起限制作用。

作为一个示例,底层芯片包括第一寄存器,上层应用可通过第一寄存器将访问信息传输给底层芯片。示例地,上层应用可通过pcie接口将访问信息配置给第一寄存器。底层芯片可获取访问信息的过程可包括:周期地查询第一寄存器,并第一寄存器中存储有上层应用配置的访问信息后,从第一寄存器读取访问信息。其中,底层芯片在查询第一寄存器的过程中,可以查询第一寄存器的某一个比特(bit)位,并在检测到比特位变化后,可确定上层应用对第一寄存器进行了配置。该示例中,上层应用将访问信息写入第一寄存器即可,底层芯片通过查询第一寄存器自主确定是否触发访问操作,减少了触发访问操作过程中的读写操作。

应当理解的是,在未背离本公开教导的情况下,上层应用还可通过其他通信方式完成访问信息的传输,该通信方式可根据上层应用和底层芯片支持的访问方式确定,此处不做限制。

作为一个示例,访问信息还可包括待访问设备对应的配置信息,底层芯片可根据配置信息,与待访问设备建立通信通路。示例地,底层芯片通过通信切换芯片与待访问设备通信连接。其中,通信切换芯片可同时连接多个候选设备,并可通过切换开关等方式,将接收到的数据传输至不同的候选设备。因此,底层芯片在获取到访问信息后,将访问信息中的待访问设备的配置信息写入通信切换芯片,以使通信切换芯片进行通信切换,建立底层芯片和待访问设备之间的通信通路。通信切换后,通信切换芯片将后续接收到的数据传输至待访问设备。该示例中,多个设备通过通信切换芯片与底层芯片通信连接,使得底层芯片可通过有限的通信引脚与更多的设备进行数据通信,从而可访问更多地待访问设备。

应当理解的是,在未背离本公开教导的情况下,底层芯片还可通过其他数据通信方式与待访问设备建立通信通路,例如,底层芯片可与待访问设备直接连接,本公开对此不做限制。

步骤202,根据设备标识和存储地址,获取待访问参数的参数数据。

在本实施例中,底层芯片获取到访问信息后,触发对待访问芯片的访问操作,获取待访问设备的待访问参数。示例地,底层芯片可根据访问信息中的设备标识确定待访问设备。之后,底层芯片可根据访问信息中的存储地址,获取上层应用所需要的待访问参数的参数数据。

步骤203,将参数数据进行存储,并通知上层应用参数数据获取成功。

在本实施例中,底层芯片在基于访问信息触发对待访问设备的访问操作,并获取到待访问设备的参数数据后,将参数数据进行存储。底层芯片存储完参数数据后,可通知上层应用参数数据获取成功,以便上层应用及时从底层芯片获取待访问设备的参数数据。

作为一个示例,底层芯片包括第二寄存器,底层芯片通过更新第一寄存器的标志位来通知上层应用参数数据获取成功。示例地,底层芯片获取到参数数据后,将参数数据存储于第二寄存器,并更新第一寄存器的标志位以通知上层应用参数数据获取成功。示例地,上层应用和底层芯片通过第一寄存器进行数据交互。上层应用可在发送访问信息后,按照一定频率查询第一寄存器的标志位的状态。若第一寄存器的标志位指示参数数据获取成功,上层应用可通过pcie接口对第二寄存器进行读操作,以得到待访问设备的参数数据。该示例中,上层应用通过查询第一寄存器的标志位的状态即可确定待访问设备的参数数据是否获取成功,可减少上层应用在确定参数数据是否获取成功的过程所占用的访问带宽。

根据本公开的一些实施例,底层芯片在获取到上层应用传输的访问信息后,可自动触发针对待访问设备的访问操作,获取待访问设备的参数数据,无需上层应用和底层芯片之间进行多次读写操作即可实现对待访问设备的访问,使得数据传输更高效,降低了传输冲突的风险,使得上层应用和底层芯片构成的系统更适用于复杂的多传感器环境,提高了整个系统的可靠性和稳定性。

图3是根据本公开的第二实施例的设备访问方法的流程示意图。本公开的第二实施例与第一实施例大致相同,主要区别在于:示例性说明了根据设备标识和存储地址,获取待访问参数的参数数据的实施过程。如图3所示,该设备访问方法300可包括以下步骤:

步骤301,获取上层应用传输的访问信息。其中,访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址。

其中,步骤301与步骤201大致相同,此处不再赘述。

步骤302,向待访问设备发送握手命令。

本实施例中,底层芯片获取访问信息后,触发与待访问设备的握手操作。其中,握手命令的格式和内部携带的信息可根据底层芯片和待访问设备之间的握手协议确定,此处不做限制。

作为一个示例,待访问设备可设置有信号处理器,底层芯片可将握手指令直接发送至待访问设备的信号处理器,或者,底层芯片可将握手指令通过通信切换芯片发送至待访问设备的信号处理器,以完成与待访问设备的握手。完成握手操作后,底层芯片可访问待访问设备对应的信号处理器,从而通过信号处理器获取该待访问设备的待访问参数。

步骤303,响应于检测到握手成功,根据设备标识和存储地址生成查询命令。

在本实施例中,底层芯片在确定握手成功后,可根据设备标识和存储地址生成查询命令。该查询命令可指示查询待访问设备中的所有器件的参数数据,也可指示查询待访问设备中的某一器件的参数数据,其具体作用可根据待访问设备的设备标识中携带的标识信息确定。

步骤304,向待访问设备发送查询命令,并接收响应于查询命令的查询响应信息。

本实施例中,底层芯片将含有设备标识和存储地址的查询指令发送给待访问设备,以通知待访问设备返回待访问参数的参数数据。其中,待访问参数可以是待访问设备的部分器件的参数,也可以是待访问设备的全部器件的参数,此处不做限制。

步骤305,根据查询响应信息,确定待访问参数的参数数据。

本实施例中,底层芯片可将查询响应信息直接确定为待访问参数的参数数据,也可对查询响应信息进行归纳、转化等操作后,得到待访问参数的参数数据。

应当理解的是,在未背离本公开教导的情况下,底层芯片确定参数数据的过程可根据待访问设备的设备类型、参数数据类型等设置,此处不做限制。

步骤306,将参数数据进行存储,并通知上层应用参数数据获取成功。

其中,步骤306与步骤203大致相同,此处不再赘述。

应当理解的是,在未背离本公开教导的情况下,除了通过步骤302至步骤305所描述的步骤获取参数数据外,底层芯片还可通过其他方式获取待访问设备的参数数据。例如,底层芯片在本地存储空间维持一个或多个待访问设备的参数数据,并在接收到访问信息后,从本地读取相关数据至第一寄存器,并通知上层应用从第一寄存器读取需要的参数数据。本公开对底层芯片获取待访问设备的参数数据的方式不做限制。

根据本公开的一些实施例,底层芯片在获取到上层应用传输的访问信息后,可自动触发针对待访问设备的访问操作,获取待访问设备的参数数据,无需上层应用和底层芯片之间进行多次读写操作即可实现对待访问设备的访问,使得数据传输更高效,降低了传输冲突的风险,使得上层应用和底层芯片构成的系统更适用于复杂的多传感器环境,提高了整个系统的可靠性和稳定性。此外,底层芯片在确定上层应用存在查询待访问设备的参数的需求后,与待访问设备建立通信连接,以实时获取待访问设备的参数,相对于持续维护所有待访问设备的参数数据的资源损耗更小。

本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。

图4是根据本公开的第三实施例的用于访问设备的装置的示意性框图。如图4所示,该用于访问设备的装置400可包括第一获取模块401、第二获取模块402和存储模块403。其中,第一获取模块401被配置为获取上层应用传输的访问信息,访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址;第二获取模块402被配置为根据设备标识和存储地址,获取待访问参数的参数数据;存储模块403被配置为将参数数据进行存储,并通知上层应用参数数据获取成功。

在本公开的一些实施例中,第二获取模块402可包括发送单元、查询单元、传输单元和确定单元。其中,发送单元被配置为向待访问设备发送握手命令;查询单元被配置为响应于检测到握手成功,根据设备标识和存储地址生成查询命令;传输单元被配置为向待访问设备发送查询命令,并接收响应于查询命令的查询响应信息;确定单元被配置为根据查询响应信息,确定待访问参数的参数数据。

在本公开的一些实施例中,待访问参数包括待访问设备的电压参数、温度参数和连接状态中的至少一个。

在本公开的一些实施例中,访问信息还包括待访问设备的配置信息,装置400还包括:配置模块,被配置为根据配置信息,与待访问设备建立通信通路。

在本公开的一些实施例中,装置400还包括第一寄存器,第一获取模块401包括查询单元和获取单元。其中,查询单元被配置为周期地查询第一寄存器;获取单元被配置为响应于第一寄存器中存储有上层应用配置的访问信息,从第一寄存器读取访问信息。

在本公开的一些实施例中,装置400还包括第二寄存器,存储模块包括存储单元和更新单元。其中,存储单元被配置为将参数数据存储于第二寄存器;更新单元被配置为更新第一寄存器的标志位以通知上层应用参数数据获取成功。

不难发现,本实施例为与上述方法实施例相对应的装置实施例,本实施例可与上述方法实施例互相配合实施。上述方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

图5是根据本公开的第四实施例的用于访问设备的系统的示意性框图。如图5所示,该系统500可包括应用处理器501和底层芯片502。其中,应用处理器501被配置为将上层应用的访问信息写入底层芯片502。访问信息包括待访问设备的设备标识、以及待访问设备的待访问参数的存储地址。底层芯片502被配置为获取访问信息;根据设备标识和存储地址,获取待访问参数的参数数据;将参数数据进行存储,并通知上层应用参数数据获取成功。

在本公开的一些实施例中,系统500还包括待访问设备,待访问设备设置有信号处理器,底层芯片501包括命令生成器和通信控制器。其中,命令生成器可被配置为获取访问信息;发送握手命令至通信控制器;响应于从通信控制器读取的握手响应信息指示握手成功,根据设备标识和存储地址,生成并发送查询命令至通信控制器;根据从通信控制器读取的查询响应信息确定待访问参数的参数数据。通信控制器被配置为将握手命令转化为指定通信格式,并将指定通信格式的握手命令转发至信号处理器;接收信号处理器反馈的握手响应信息;将查询命令转化为指定通信格式,并将指定通信格式的查询命令转发至信号处理器;接收信号处理器反馈的查询响应信息。

在本公开的一些实施例中,底层芯片还包括第一寄存器,命令生成器进一步被配置为:周期地查询第一寄存器;响应于第一寄存器中存储有上层应用配置的访问信息,从第一寄存器读取访问信息。

在本公开的一些实施例中,待访问设备包括相机,信号处理器包括相机的图像信号处理器;待访问参数包括相机的图像传感器的电压参数、图像传感器的温度参数、相机的并行化器的电压参数、并行化器的连接状态、相机的串行化器的电压参数和串行化器的连接状态中的至少一个。

在本公开的一些实施例中,系统500还包括通信切换芯片,访问信息还包括待访问设备的配置信息;底层芯片还被配置为:根据配置信息,控制通信切换芯片在待访问设备和底层芯片之间建立通信连接。

在本公开的一些实施例中,底层芯片还包括第二寄存器,底层芯片进一步被配置为:将参数数据存储于第二寄存器;更新第一寄存器的标志位以通知上层应用参数数据获取成功。应用处理器还被配置为:周期地查询第一寄存器的标志位,响应于第一寄存器的标志位指示参数数据获取成功,从第二寄存器读取参数数据。

不难发现,本实施例为与上述方法实施例相对应的装置实施例,本实施例可与上述方法实施例互相配合实施。上述方法实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

本公开的第五实施例提供了一种自动驾驶车辆,该自动驾驶车辆可包括图5所示例的用于访问设备的系统。

在一些实施例中,自动驾驶车辆内的用于访问设备的系统可以是自动驾驶车辆的自动驾驶系统。换言之,自动驾驶车辆的自动驾驶系统内的应用处理器可基于本公开的实施例提及的设备访问方法,获取自动驾驶车辆上各个设备的参数数据。

为了便于理解,下面以待访问设备为相机,用于访问设备的系统为自动驾驶系统为例,对自动驾驶系统的工作过程进行示例性说明。

图6是根据本公开的第五实施例的自动驾驶系统的示意性框图。如图6所示,自动驾驶系统600可包括应用处理器601、底层芯片602、通信切换芯片603和多个相机604。

作为一个示例,应用处理器601可例如为16位微处理器,例如X86处理器。应用处理器601运行有上层应用,该上层应用可以是自动驾驶系统内的监控应用程序,也可以是其他应用程序,此处不做限制。

作为一个示例,底层芯片602可被实施为FPGA芯片,包括命令生成器6021和通信控制器6022。其中,命令生成器6021可以是FPGA芯片中用于存储触发访问操作的逻辑模块的器件。通信控制器6022可选用一些器件的具有通信控制功能的中间组件,例如,支持I2C通信控制的知识产权(Intellectual Property,IP)核,此处不做限制。

作为一个示例,通信切换芯片603可例如为switch芯片,用于控制底层芯片602输出的数据传输至指定的相机604。

作为一个示例,相机604可包括图像信号处理器(Image Sensor Processor,ISP)6041、并行化器(Deserilalizer)6042、串行化器(serilalizer)6043和图像传感器6044。在图6所示例的自动驾驶系统600中,底层芯片602可外接8路相机,上层应用可通过底层芯片602不断查询每路相机通路中各相机的器件的状态,例如,串行化器6043和并行化器6042的连接状态、串行化器6043和并行化器6042的供电是否正常、图像传感器的供电(1.1v供电、1.8v供电和3.3v供电)是否正常、以及图像传感器的温度参数。

作为一个示例,上层应用通过pcie接口6023可对底层芯片602的命令生成器6021进行配置,命令生成器6021自动产生访问外部图像信号处理器6041的握手指令,并通过通信控制器6022将数据按符合指定协议的通信格式后传输给外部指定的相机。其中,通信控制器6022可直接访问图像信号处理器6041,还可通过图像信号处理器6041间接访问串行化器、并行化器和图像传感器。

示例地,底层芯片710可按照图7所示例的通信方式实现通过图像信号处理器720间接访问串行化器、并行化器和图像传感器。如图7所示,底层芯片710和图像信号处理器720的交互过程可包括:

步骤701,底层芯片710发送握手指令至图像信号处理器720。其中,握手指令可例如是23字节的API命令信息(API Command Message)。

步骤702,图像信号处理器729返回握手响应信息。其中,握手响应信息可例如为6字节的确认响应消息(Acknowledge Response Message)。

步骤703,底层芯片710发送查询指令至图像信号处理器6041。其中,查询指令可例如为14字节查询命令消息(Query Command Message)。

步骤704,图像信号处理器720返回查询响应信息。其中,查询响应信息可例如为16字节查询响应消息(Query Response Message)。

基于图7所示的交互过程,下面以底层芯片为FPGA芯片,通信切换芯片为switch芯片,通信切换芯片和底层芯片基于I2C协议通信为例,对自动驾驶系统600的上层应用访问相机的过程进行示例性说明。参见图8,自动驾驶系统600的上层应用访问相机的过程可包括以下步骤:

步骤801,上层应用将访问信息配置给命令生成器的第一寄存器。其中,访问信息包括switch芯片的配置信息、待访问的相机的设备标识和待访问参数的存储地址。

示例地,上层应用通过pcie接口将该switch芯片的配置信息写入命令生成器,以使后续对I2C的操作能够访问到待访问的相机。例如,需要访问第一路相机,在命令生成器中写入能连接到第一路相机的switch配置信息,使后续操作能访问到第一路相机。

示例地,上层应用写入的设备标识可以是相机中的器件的标识(device id)。其中,device id用来区别本次需要访问的是相机中的何种器件,器件可包括上文提及的并行化器、串行化器和图像传感器。例如,本次查询的参数为图像传感器的电压,则本次的器件的标识为图像传感器的标识。

示例地,上层应用写入的待访问参数的存储地址可以是相机内部的寄存器地址。后续图像信号处理器可基于相机内部的寄存器地址和器件的标识,确定上层应用需要查询的参数的参数数据。

示例地,上层应用可将上述数据写入命令生成器内部的第一寄存器,例如,0x2090寄存器。

步骤802,命令生成器持续查询第一寄存器的某一个bit位的状态,以确定上层应用是否进行配置操作,在检测到上层应用进行配置后,开始启动后续逻辑。

步骤803,命令生成器发送23字节API命令信息给通信控制器。发送过程中,命令生成器每次发送一个字节,且每次发送前查询通信控制器的状态寄存器。命令生成器若确定通信控制器的发送缓存区为非满状态,则继续发送下一字节,直到23字节信息发送完毕。

步骤804,命令生成器发送完成后等待并通过查询通信控制器的状态寄存器,从通信控制器的接收缓存区中读取6字节确认响应消息。

步骤805,命令生成器判断确认响应消息中的校验位是否错误。若确定校验位错误,命令生成器重新执行步骤803,若校验位正确,命令生成器执行步骤806。

步骤806,命令生成器发送14字节查询命令消息给通信控制器。发送过程中,命令生成器每次发送一个字节,且每次发送前查询通信控制器的状态寄存器。命令生成器若确定通信控制器的发送缓存区为非满状态,则继续发送下一字节,直到14字节信息发送完毕

步骤807,命令生成器发送完成后等待并通过查询通信控制器的状态寄存器,从通信控制器的接收缓存区中读回16字节查询响应消息。

步骤808,命令生成器确定查询响应信息是否正常,若确定是,执行步骤809,若确定不是,重新执行步骤806。其中,检测查询响应信息是否正常的逻辑可根据相机的参数数据格式、数据长度等设置,此处不做限制。

步骤809,命令生成器将16字节查询响应消息写入第二寄存器中,并更新第一寄存器的标志位。其中,第二寄存器可以是一个寄存器,也可以是两个寄存器,例如,0x2094寄存器和0x2098寄存器。第二寄存器所含有的寄存器数量可根据查询响应信息的数据长度确定。命令生成器在完成上述访问操作后,可对第一寄存器的标志位(例如完成位)写1,以告知上层应用参数数据获取完成。

步骤810,上层应用若确定第一寄存器的标志位为1,读第二寄存器以获取参数数据。示例地,在配置完第一寄存器后,上层应用可周期性的查询第一寄存器的标志位。例如,第一寄存器为0x2090寄存器,第二寄存器为0x2094和0x2098寄存器。上层应用在配置完成后,延时100ms开始以100us的频率读0x2090寄存器的完成位,若完成位为1,则读0x2094和0x2098寄存器读取参数数据。

至此,上层应用完成单个相机的某一参数的参数数据(例如图像传感器的温度)的查询,如需查询其他相机或其它参数,可通过修改第一寄存器配置的switch芯片的配置信息,设备标识和地址配置来实现。

上述示例中,针对自动驾驶系统中针对相机的访问的问题,本公开的实施例中,通过采用专用硬件模块(底层芯片)的方式来改进通信方式,使得数据传输更高效,降低了传输冲突的风险,改进了自动驾驶系统的性能,使其更适用于复杂的多传感器环境,提高了整个系统的可靠性和稳定性。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如设备访问方法。例如,在一些实施例中,设备访问方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的设备访问方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行设备访问方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 一种断血流栽培用棉铃虫诱捕装置及诱捕方法
  • 一种福寿螺诱捕装置
  • 一种基于城市街道流浪猫的防盗诱捕装置
  • 一种福寿螺诱捕装置及诱捕方法
  • 一种福寿螺诱捕装置及方法
技术分类

06120116518434