技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于SJA1105交换机支持多片级联gPTP授时的方法与流程  >  正文

一种基于SJA1105交换机支持多片级联gPTP授时的方法与流程

  • 国知局
  • 2024-08-02 15:00:32

本发明属于通信,具体涉及一种基于sja1105交换机支持多片级联gptp授时的方法。

背景技术:

1、随着自动驾驶的发展,需要采用多激光雷达、多毫米波雷达、多摄像头等各类传感器,这类传感器从采集数据、处理以及发送到域控制器内部,通常存在延时并且延时的时长不稳定的问题。为了提高自动驾驶的传感器融合、决策规划和融合定位等性能,自动驾驶hpc(高级域控制器)与其关联的传感器均需要做时间同步。目前,主流的时间同步方式是通过网络gptp(广义时钟同步协议)协议,同步精度可以达到在±500ns以内。

2、随着汽车上各种传感器设备的增加,需要支持gptp时间同步的设备越来越多。基于sja1105交换机单片(最大支持4个从设备授时)授时的方案显然已经无法满足要求。现有技术中,linux sja1105交换机驱动是由nxp官方提供的,通过对sja1105进行参数配置可以让交换机识别并且接收gptp报文,交换机抓获并且转发gptp报文到cpu端口交给上层驱动软件处理。但是,回复gptp报文的过程需要交换机驱动通过spi管理接口在交换机内部构建临时的路由表信息,从而实现将回复报文转发到对应的端口。目前,基于nxpsja1105交换机的linux驱动只能支持单片sja1105 gptp授时的方案,无法支持多片级联拓展的方案,而单片sja1105最多只能支持4个以太网网口。

3、因此,需要研发出基于sja1105交换机支持多片级联gptp授时的方法,通过重构linux交换机底层驱动程序,以来解决上述技术问题,在自动驾驶通信方面具有广阔的应用前景。

技术实现思路

1、发明目的:为了克服以上不足,本发明的目的是提供一种基于sja1105交换机支持多片级联gptp授时的方法,设计合理,解决了现有技术中sja1105交换机不支持多片交换机级联的缺点,提供了一种可以跨越sja1105交换机动态构建gptp管理帧路由表的算法,从而实现多片级联授时的方案,应用前景广泛。

2、本发明的目的是通过以下技术方案实现的:

3、一种基于sja1105交换机支持多片级联gptp授时的方法,包括如下步骤:

4、s1:为每个交换机端口构建路由信息;

5、s2:根据构建的交换机端口路由信息,在对应的交换机安装管理帧路由表;

6、s3:当需要在某个交换机端口发送gptp管理帧报文时,根据管理帧路由表,实现将gptp管理帧报文转发到目标交换机的目标端口。

7、本发明所述基于sja1105交换机支持多片级联gptp授时的方法, 设计合理,解除了现有技术中的交换机驱动sja1105单片最大支持4个端口gptp授时的限制,理论上可以不断地级联扩展gptp授时端口。

8、其中,在驱动初始化的时候,就为每个交换机端口构建好路由信息,就像是地图一样为每个端口的后续gptp管理帧的发送指明了方向。根据构建的交换机端口路由信息,可以很容易的为经过的交换机安装管理临时帧路由表,从而实现将gptp管理帧报文转发到目标交换机的目标端口。

9、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述方法是基于sja1105交换机的linux驱动进行重构。

10、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s1,具体包括如下内容:通过解析交换机的设备树dts配置文件,每个交换机端口获取到对端直连级联口的端口信息(如果存在的话),把上述端口信息记录在端口的成员link_port中,从任意一个交换机端口出发不断引用link_port端口跳转直到最终指向cpu端口,然后把跳转的过程记录到mgmt_route结构当中。

11、本发明所述基于sja1105交换机支持多片级联gptp授时的方法,基于现有技术中的nxp sja1105交换机的linux驱动,进行了重构,主要是增加了记录每个交换机端口到cpu端口之间的转发路径记录表mgmt_route,在初始化的过程中驱动会根据实际的网络拓扑结构动态生成每个端口的转发路径记录表mgmt_route,然后在需要发送gptp管理帧报文的过程中,根据mgmt_route给每个参与转发的交换机安装临时的管理帧路由表,从而实现将gptp管理帧报文转发到目标交换机的目标端口的目的。

12、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s1中,如果要从cpu端口发出管理帧报文,上述mgmt_route同时也管理帧报文的路由信息。

13、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s3,当需要在某个交换机端口发送gptp管理帧报文时,分如下三步进行:

14、第一步:逐级交换机构建路由表;

15、第二步:从cpu端口发送gptp管理帧;

16、第三步:逐级交换机轮询等待管理帧路由完成。

17、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s3中的逐级交换机构建路由表,具体包括如下内容:根据每个交换机端口的mgmt_route结构,遍历mgmt_route中存储的路由信息,即级联口port,在级联口port对应的交换机上通过spi下发管理帧的临时路由表信息。

18、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s3中的从cpu端口发送gptp管理帧,具体包括如下内容:所有的管理帧报文的发起都是从cpu端口开始的,通过不断跨越交换机路由,最后到达目标交换机的目标端口。

19、进一步的,上述的基于sja1105交换机支持多片级联gptp授时的方法,所述步骤s3中的逐级交换机轮询等待管理帧路由完成,具体包括如下内容: sja1105交换机在用户构建路由表的时候有一个是否路由被使用的标志位,从而可以不断去轮询各个交换机的完成标志位,直到整个管理帧路由过程的完成。

20、与现有技术相比,本发明具有如下的有益效果:

21、(1)本发明所述的基于sja1105交换机支持多片级联gptp授时的方法,设计合理,解除了现有技术中的交换机驱动sja1105单片最大支持4个端口gptp授时的限制,理论上可以不断地级联扩展gptp授时端口,在自动驾驶通信方面具有广阔的应用前景;

22、(2)本发明所述的基于sja1105交换机支持多片级联gptp授时的方法,通过增加记录每个交换机端口到cpu端口之间的转发路径记录表mgmt_route,在初始化的过程中驱动根据实际的网络拓扑结构动态生成每个端口的转发路径记录表mgmt_route,然后在需要发送gptp管理帧报文的过程中,根据mgmt_route给每个参与转发的交换机安装临时的管理帧路由表,从而实现将gptp管理帧报文转发到目标交换机的目标端口的目的;

23、(3)本发明所述的基于sja1105交换机支持多片级联gptp授时的方法,通过扩展sja1105交换机的linux驱动的数据结构,增加记录级联口的link_dp成员,绕开了传统的通过调用dsa_routing_port()方法间接获取级联口,避免了无法直接访问对端级联交换机端口的困难,让驱动的跨交换机访问变得简单,使跨交换机安装路由表的流程大大简化。

本文地址:https://www.jishuxx.com/zhuanli/20240801/244631.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。