一种车载以太网的时间同步和调度方法与流程

文档序号:14717615发布日期:2018-06-16 01:52阅读:390来源:国知局
一种车载以太网的时间同步和调度方法与流程
本发明涉及通信网络
技术领域
,尤其是涉及一种车载以太网的时间同步和调度方法。
背景技术
:随着汽车的智能化快速发展,车载以太网正在快速发展,其网络协议为时间敏感网络TSN(Time-SensitiveNetworking)协议,它要求网络进行分时调度,并可应用于车载以太网网络,具有较好的实时性,适用于对实时性要求高的系统;TSN协议不依赖上层协议,对应用层透明。作为实时调度的时基,TSN协议在时间同步中发挥着重要的作用。其中使用最为广泛的协议为IEEE802.1as,即精准时间同步协议(PrecisionTimeProtocol,PTP)和更新的草稿版。该协议的优势在于支持多种域、不对称延迟测量和路径冗余。然而这份协议并非针对车用环境,因此需要进一步更改和优化,使其可以在车载网络中进行时间同步和分时调度通信。时间同步的首要步骤即为时钟初始化,时钟初始化必须在车辆功能启动前完成,而IEEE802.1as不能保证快速同步启动,其中一个原因是对等链路延迟测量。如图1所示,节点必须通过计算对等链路延迟才可完成快速同步启动。图1中,t1、t2分别为发送报文时,时针硬件对同一个报文位置,即以太网报文数据帧开始标志直接借宿后第一个位数据处而产生的高精度时间戳;假设链路延迟为d,理论上d=t2-t1;由于两个节点本地时钟存在时钟偏差e,则d=t2-t1-e。为了消除未知的时钟偏差e,采用反向发送报文的形式得到发送方本地时间戳t3和接收方本地时间戳t4,则有d=t4-t3+e,进而可得到链路延迟的计算公式为:d=((t2-t1-e)+(t4-t3+e))/2=((t2-t1)+(t4-t3))/2,该公式中不存在不确定的时钟偏差e,因此可以用于计算链路延迟。在进行实际本地时钟矫正时,如图2所示,此时需要计算时钟误差e。图中,ts,i-1、ts,i分别为发送方打的时间戳和接收方打的时间戳(s表示Sync同步报文,i与同步报文通过的交换机数量有关,每通过一级交换机其值加1,i的取值范围为1,2,3,…),二者与t1、t2打时间戳的方式相对应,因此可知e=ts,i-ts,i-1-d。其中,d已经通过复用测量值的办法获取,因此e也可获取并用于修正本地时钟。对于实际车载网络,在实际应用程序运行之前网络必须做好通信准备,这包括链路启动和协议启动等步骤。所有启动步骤必须在可预测的时间内尽快完成以便于车辆状态的快速启动。然而同步协议需要节点之间相互测量延迟后才能开始同步过程,其标准的1秒周期会导致整网同步时间超过实际需求,因此必须对其进行启动优化以保证整车响应速度。除了启动时间外,同步网络至少需要一个主时钟。传统网络采用主时钟通过广播时钟精度信息仲裁的方法进行选取,该方法较为繁琐,进一步导致同步启动或者恢复时间增加。同时,在环型冗余拓扑下,时间同步变得比之前更复杂,如图3所示,同样的同步消息在从节点的两个方向被接收,这个问题总是出现在冗余网络中。常规来说,随着时钟源和目标之间的交换机数量增加同步精度降低。时钟节点可以通过报文经过的交换机数量决定最优主时钟。然而实际同步报文中没有链路上交换机数量的信息。因此无法进行更优链路判断,导致同步精度下降。对于时间窗口规划,802.1Qbv只是给出了原理性质的方法,对实际规划方案并没有太大约束。然而网络运行过程中链路延迟,交换机转发延迟,时钟抖动等均可能导致调度出现偏差甚至失败,导致调度通信的方法性能下降,无法满足设计要求。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种保障实时调度、提高时间同步稳定性的车载以太网的时间同步和调度方法。本发明的目的可以通过以下技术方案来实现:一种车载以太网的时间同步和调度方法,包括以下步骤:S1:时间同步启动优化:调用本地保存的链路延迟进行本地时钟偏差校正,同时缩短节点同步报文周期,加速同步过程;S2:静态主时钟选取:将所有节点同步消息,确定最高优先级时钟作为主时钟;S3:同步冗余路径选择:采用同步消息中的时钟修正消息段进行冗余路径选择,并对延迟时间进行过滤;S4:双窗口实时调度:将发送节点发送的报文分配为三种优先级队列,并将时间窗分为两个周期,使所有发送节点的报文同步发出。优选地,所述的步骤S1的具体内容为:保存节点之间反复发送报文产生的链路延迟,在启动时钟时调用链路延迟直接计算时钟偏差;利用车载网络静态特性,根据时钟偏差的计算结果对本地时钟进行偏差校正;同时,将接收节点的计算过程和接收过程合并,缩短节点同步报文周期,加速同步过程。优选地,所述的步骤S2具体包括以下步骤:21)将所有节点通过同步消息ID判断同步信息的优先级;22)通过优先级信息进行静态判断,确定最高优先级时钟作为主时钟,当节点接收到更高优先级主时钟信息时,自动变为从节点状态;若节点超过一定时间没有接收到更高优先级主时钟信息,则自动变为主时钟发送自身时钟信息;23)链路出现故障时,若为单点故障,则判定整个网络仍处于联通状态,此时按照步骤22)的同步过程执行;若为多点故障,则每个子网选择各自的主时钟进行工作。优选地,所述的步骤S3中,时钟修正消息段包括从主节点发出到从时钟路径上的所有延迟。优选地,所述的步骤S3中,对延迟时间进行过滤的方法为判断死区法。优选地,所述的步骤S4具体包括以下步骤:41)根据802.1Qbv协议,将发送报文分配为高优先级队列、中优先级队列和低优先级队列,高优先级队列存放关键性的控制报文,中优先级队列存放软实时报文,低优先级队列存放非实时性报文;42)将时间窗分为两个周期,令所有节点的报文同步发出,获取调度表,其中,所有高优先级报文在第一周期,中等和低优先级报文在第二周期,43)设计网络时对步骤42)中的调度表进行预先判断,通过限制最大报文长度的办法避免调度表切换时报文延迟导致调度失败。与现有技术相比,本发明具有以下优点:一、本发明通过调用本地保存的链路延迟来计算时钟偏差,简化了时钟偏差的计算过程,缩短了本地时钟偏差校正的时间;同时,本发明采用计算过程和接收过程并行的方法来缩短节点同步报文周期,并在接收到上一级的同步信息后立即向下一级转发的方式来加速同步效果;本地时钟偏差校正与加速过程同时进行,达到了快速的同步效果;二、本发明采用将所有节点同步消息ID进行优先级判断,可以保证车载网络能够快速、可靠地完成同步过程,即使网络出现故障,所有节点也能尽可能同步到新的主节点,从而保障实时调度功能;三、本发明方法在同步冗余路径选择中,依据链路总延迟的值表征网络距离,便于节点判断时钟源;同时,对延迟时间采用判断死区的方式进行了过滤,避免了时钟抖动的现象,提高了同步稳定性;四、本发明将系统中所有的发送报文设计了三种优先级队列,并将时间窗分为两个周期,实现了双窗口实时调度;同时,依据网络最长报文传输时间来规划时间窗口的办法,保证最差情况下也能完成实时调度功能,提高了实时性。附图说明图1为传统时间同步算法中链路延迟计算方法原理图;图2为传统时间同步算法中本地时钟校正计算方法原理图;图3为本发明方法流程图;图4为本发明方法中优先级节点发生故障时的时间同步状态示意图;图5为本发明方法中链路发生故障时的时间同步状态示意图;图6为本发明方法中同步冗余路径选择中的报文传输第一路径图;图7为本发明方法中同步冗余路径选择中的报文传输第二路径图;图8为本发明方法中发送报文分配为三种优先级队列示意图;图9为本发明方法中双窗口实时调度示意图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。实施例本发明涉及一种车载以太网的时间同步和调度方法,如图3所示,该方法包括以下步骤:步骤一、时间同步启动优化:同步启动优化主要通过两方面完成,包括同时进行的:(一)本地保存同步信息,校准本地时钟:实际网络运行过程中车载以太网网络是静态的,如ECU节点,交换机特性和电缆长度等在运行过程中不发生改变。因此每一次链路延迟计算结果可以通过存储在闪存驱动器保存并在启动时复用以前的测量值,用于在启动时钟时进行偏差校正。以实际运行实例为例,在不采用本地保存方法时,为了获得时钟偏差e,需先通过高精度时间戳t1、t2和发送方本地时间戳t3、接收方本地时间戳t4计算链路延迟d,再通过链路延迟d、发送方打的时间戳ts,i-1和接收方打的时间戳ts,i获得时钟偏差e,而实际工作过程中d几乎是不变的。因此可以在车辆出厂或者设计阶段首先通过标定预设d的值。这样在车辆启动过程中无需预先计算d值的过程,即可直接通过ts,i-1和ts,i获取时钟偏差e,以用于对本地时钟进行校准。同时,为了避免元件老化或者更换等情况导致的参数变化,网络控制器可以为较低周期(例如1s)进行d值更新并在进入睡眠或者下电状态前保存在本地非易失性存储器中,从而在获得更短启动时间的同时也具有应对环境变化的能力。(二)缩短节点同步报文周期,加速同步过程:标准规范中节点同步报文周期较长,例如1秒,这意味着所有节点时钟的初始化需要更多时间。对于车载网络,所有通信都是事先计算和规划完成的,因此可以实现更快的节点同步报文周期。实测后发现,在缩短节点同步报文周期后,网络流量并不会明显上升,主要的限制因素为微控制器计算和调整时钟的速度。参考实际情况,常规网络控制器开发过程中的系统时基为5ms。其中,发送节点需发送两帧报文用于同步,具体步骤为:1)发送节点发送第一帧报文;2)发送完成后获取第一帧报文的发送时间戳;3)发送节点将第一帧报文的发送时间戳嵌入到第二帧报文中后发送报文;4)确认第二帧报文发送完成。该过程需要4个时间片来发送调度,那么对于接收节点来说,需要在第三步接收完成时开始计算和校准过程。本发明采用计算过程和接收过程并行的方法来缩短节点同步报文周期,即在接收本组同步报文的同时计算上一组同步报文的相关计算并执行校准动作。接收节点在第3时间片完成接收后,在第4时间片和接下来的第1、2时间片均可进行计算和校准过程。尽管下一个第1时间片会接收到新的同步报文,但是该接收并不影响当前计算,因此可以并发操作,从而缩短了同步报文周期。根据本方法的原理,采用20ms的周期进行同步。从节点同步完成后,立即向下一从节点转发同步信息,从而保证每一级同步过程在20ms内完成。在六节点的环形网络中,本发明方法可以保障100ms内完成同步,满足通信需求。缩短节点同步报文周期和校准本地时钟可以同时进行以达到最快完成同步的效果。步骤二、静态主时钟选取:采用静态车内网进行静态多主时钟选取。在静态车内网中,所有节点都可获知主时钟位置,因此无需动态选取过程。静态主时钟选取的具体选取过程包括:21)将所有节点同步消息ID;同步的消息ID为八字节数组,表1为各个节点ID示例,ID的数值越小表明优先级越高。表1各个节点的ID优先级ID10xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0120xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0230xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0340xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0450xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0560xac,0xde,0x48,0xff,0xfe,0x12,0x34,0x0622)确定最高优先级时钟作为主时钟:在正常工作模式下,优先级1节点向优先级2和4节点发送同步信息,优先级2节点和优先级4节点通过同步信息中的ID发现本地优先级较低,因此二者向优先级1的节点同步。同步完成后向相邻(优先级节点3、5)转发优先级1的同步信息,使下一级同步能够一次进行,从而完成整个网络同步过程。如图4所示,在优先级1节点故障时,所有节点接收同步信息超时,均恢复到默认状态;此时优先级节点2的优先级最高,因此可以依次同步优先级节点3、6、5、4,从而完成网络同步过程。23)链路故障处理:在链路出现故障时,如果为单点故障,则整个网络仍处于联通状态,此时按照之前的同步过程执行。如果出现多点故障,如图5所示,导致网络被切割为多个子网,则每个子网可以选择各自的主时钟进行工作,此时对于优先级节点1、2、3,其同步过程没有变化,依然由优先级节点1为主时钟;对于优先级节点4、5、6,由于优先级节点1的信息丢失,则重新开始主时钟选取过程,由于优先级节点4优先级最高,则变为当前子网主时钟。当链路故障恢复时,优先级节点4、5、6重新同步到更高的优先级,即优先级节点1。步骤三、冗余路径选择:在时钟同步过程中,不可避免会产生误差,而每一级的误差均会传递到下一级,导致误差进一步被放大。例如第一级同步误差为200ns,下一级为400ns,再下一级为600ns。因此对于冗余网络,应当选择最短路径的时钟信息最为时钟源。然而同步信息中并未包含路径中的交换机级数,因此,本发明方法采用同步消息中的“时钟修正”消息段进行冗余路径选择,该消息段包括从主节点发出到从时钟路径上的所有延迟。“时钟修正”消息段随着路径上交换机数量的增多而增长,近似可认为延迟越多的链路上交换机数量越多,因此可以用于路径选择。“时钟修正”消息段的使用方法为:假定每一级延迟为4ms,实际延迟与网络环境、节点转发逻辑等条件相关,但依然是递增上涨的。如图6所示,目标节点从两个方向上接收到同步信息,其中一条由主节点直接发出,因此“时钟修正”为0;另外一条经过了4级转发,“时钟修正”为4×4ms=16ms,此时有延迟更低的同步信息,因此采用“时钟修正”为0的链路信息作为同步信息来源。对于图7中的节点,目标节点为网络中点,两条链路延迟理论上一致,“时钟修正”消息段的值相差不大,因此可以采用任意一个方向信息用于同步。但是同步过程中不应当反复切换时钟源方向,以避免时钟反复切换路径导致其精度下降,同时也为了避免偶发性的转发延迟导致最优路径被其他路径覆盖。为避免出现时钟抖动,本发明提出对延迟时间过滤。由于网络延迟不可避免存在波动,如果每次直接以延迟的值作为比较,则会导致被同步节点在不同链路上反复切换,导致同步精度下降。如图7所示,假设第一次同步时顺时针和逆时针两个方向延迟(即“时钟修正”的值)为7ms、9ms,那么第一次同步以顺时针方向同步信息为准;第二次两个方向延迟(即“时钟修正”的值)为8.5ms、7.2ms,那么第二次同步以逆时针方向同步信息为准。如果每次同步的时钟来源都发生切换,那么同步过程受到影响。为了避免过度切换,本发明采用判断死区的方法进行过滤。例如,死区为3ms(死区时间与实际网络条件有关,一般使用常规节点延迟的3/4作为判断依据),那么当第一次采用顺时针方向同步信息后,逆时针方向的信息必须比顺时针方向连续4次少3ms才会发生切换行为,这样第二次即使顺时针方向延迟更多,也不会发生切换。否则,说明网络状态发生了变化,可以切换时钟源。步骤四、双窗口实时调度:41)将发送报文分配为三种优先级队列:车载系统中所有的发送报文包括三种:关键性的控制报文、视频报文以及其他传输要求不高的报文。本发明根据802.1Qbv协议,为系统中所有的发送报文设计三种优先级队列,分别为高优先级队列、中优先级队列和低优先级队列,高优先级队列存放关键性的控制报文,其实时性要求最高;中优先级队列存放视频等软实时报文,低优先级队列则存放非实时性报文,如管理报文等,如图8所示。42)将时间窗分为两个周期:将时间窗分为两个周期,周期长度应根据网络流量调整,且必须保证能在周期内传输完成预定义流量。如图9所示,将一个PTP时钟周期划出三个时刻,第一个时钟T0为PTP时钟上升沿,周期持续时间为60us,此时高优先级队列对应的窗口打开,而中优先级队列和低优先级队列对应的窗口关闭,关键性控制报文内容已经准备好,并且能够准时发出,不会受到其他报文的影响。第二个时刻T1在T0结束后,周期持续时间为190us,此时,高优先级队列对应的窗口关闭,而其他队列对应的窗口打开,使得所有节点的视频相关的报文能够同步发出,达到良好的视频界面同步显示的效果。表2为当前使用调度表。表2时间调度表报文类型约束逻辑开启时间控制报文时间窗口0-60us影音报文信用值整形和时间窗口60-250us其他报文信用值整形和时间窗口60-250us43)调度表切换:由于网络存在两个调度表在依次循环运行,因此会存在调度表切换行为。如在60us时,需停发所有的控制报文,开始发送影音和其他报文;而在250us时需停发影音和其他报文,开始发送控制报文。在调度表切换时,通常使用报文抢占技术来避免报文延迟,但该技术对硬件的要求较高,而当前尚未有可支持的实际硬件。本发明采用限制最大报文长度来解决。由于车内网设计过程中最大报文长度是已知的,所有控制器根据预定义的代码工作并且交换机可以选择抛弃过长的报文,因此最大的报文长度也是已知的。网络中最大帧长度为300字节,因此最大延迟是常量(24us@100Mbps)。控制时间窗剩余60-24=36us。同时,网络包括六个节点,每个节点发送控制报文长度为64字节。所有控制帧的时间使用64×8÷100×6=30.72us,控制帧的时间小于控制时间窗剩余时间,使得网络仍有足够的时间来传输控制报文。对于时间窗内的报文,其竞争机制可以采用传统的优先级或者信用值控制,其内容不在本方法中描述。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1