本公开涉及轨道通信,特别涉及一种用于列车自动运行系统的can数据接收方法及装置。
背景技术:
1、在现有的列车自动运行系统中,仍然使用can总线通信方式进行板卡间、设备间的数据传输。现有技术中,采用两条can总线进行冗余通信,相比一条can总线通信,可有效提高数据可靠性。接收时,收到两条can总线中的冗余数据,比较两条can总线中包数多少,如果收取包数多的那条can总线数据,如若发生发送端重复发送同一包的异常情况,则会将重复包收入,造成后续逻辑问题;如果收取包数少的那条can总线数据,如若发生总线数据丢包的异常情况,则会少收入数据,也会造成后续逻辑问题;如果两条can总线中包数相等收入,任意一条总线数据异常都会导致无法收入,从而数据缓存满后,导致数据主动扔掉。
2、对于以上这种接收方式带来的问题,则需要一种更加有效的冗余通道接收方式。
技术实现思路
1、针对上述问题,本公开提供一种用于列车自动运行系统的can数据接收方法及装置,用于提高冗余can通信的可靠性。
2、第一方面,一种用于列车自动运行系统的can数据接收方法,所述方法包括:
3、当can0或can1通道任何一个数据包数大于0,通过比较can0包数与can1包数检测can通道通信,并收取数据;
4、对收取的数据识别can id流水号,并与想要收取流水号进行比较;
5、根据流水号比较结果进行数据包接收。
6、具体的,收取流水号为递增收取,例如上一包收取数据的流水号是3,那么下一包就是4。
7、进一步的,can0或can1通道任何一个数据包数大于0,包括:
8、对can0和can1接收的数据分类,根据所属总线和数据类型将数据存入不同fifo(fifo即first in first out,是一种先进先出数据存储、缓冲器);
9、获取can0和can1的同一类型数据fifo包数,当can0或can1包数大于0,通过比较can0包数与can1包数检测can通道通信。
10、进一步的,对can0和can1接收的数据分类,根据所属总线和数据类型将数据存入不同fifo,包括:
11、列车自动运行系统采用冗余can总线通信,即can0和can1,总线中包含各种类型通信数据,识别每包数据can id中数据类型信息,进行数据分类;
12、将can0和can1总线中不同数据类型的数据分别存入不同fifo。
13、进一步的,将can0和can1总线中不同数据类型的数据分别存入不同fifo,包括:
14、通过通信端口周期收取到can0、can1通道内的数据包,读取各自通道中的包数,以包数为循环,读取每一包数据can id中代表数据类型的信息,通过类型信息的不同,确定每包数据的类型;
15、将can0总线中不同数据类型的数据存入不同fifo:第一种类型数据存入can0-1fifo,第二种数据类型存入can0-2 fifo......第x种数据类型存入can0-x fifo;
16、将can1总线中不同数据类型的数据存入不同fifo:第一种类型数据存入can1-1fifo,第二种数据类型存入can1-2 fifo......第x种数据类型存入can1-x fifo。
17、进一步的,获取can0和can1的同一类型数据fifo包数,当can0或can1包数大于0,通过比较can0包数与can1包数检测can通道通信,包括:
18、读取can0和can1同一类型数据所存储的两个fifo中的数据包数,并比较两个包数是否大于0;
19、当任何一个数据包大于0,通过比较can0包数与can1包数检测can通道通信。
20、进一步的,通过比较can0包数与can1包数检测can通道通信,并收取数据,包括:
21、比较同一类型数据的can0 fifo和can1 fifo包数,具体包括:
22、当can0包数大于can1包数,且差值超过允许阈值,判定为can1通道异常;can0通道作为唯一可信任通道,全部数据收取进来;
23、当can1包数大于can0包数,且差值超过允许阈值,判定为can0通道异常;can1通道作为唯一可信任通道,全部数据收取进来;
24、当can0包数和can1包数相差小于允许阈值,或包数相同,按最小包数进行后续收包循环。
25、允许阈值根据实际通信情况设置或调整。
26、进一步的,对收取的数据识别can id流水号,并与想要收取流水号进行比较,包括:
27、can id流水号,与想要收取流水号进行比较,确定数据情况,具体包括:
28、当数据can id流水号等于想收流水号,定义为正确;
29、当数据can id流水号小于想收流水号,定义为重复包,作扔包处理;
30、当数据can id流水号大于想收流水号,定义为丢包,保留到下一个周期,再与想收流水号进行比较。
31、进一步的,根据流水号进行比较结果进行数据包接收,包括:
32、当can0数据包定义为正确,can1数据包无论任何情况,都作不收入处理,收入正确的can0包;
33、当can0数据包定义为丢包或者重复包,can1数据包定义为正确,收入can1数据包;
34、当can0数据包定义为丢包,can1数据包也定义为丢包,则本轮轮空,将想收流水号自增一次,进入下一轮流水号比较流程。
35、第二方面,一种用于列车自动运行系统的can数据接收装置,包括:通道检测单元、流水号比较单元和数据包接收单元;
36、通道检测单元,用于当can0或can1通道任何一个数据包数大于0,通过比较can0包数与can1包数检测can通道通信,并收取数据;
37、流水号比较单元,用于对收取的数据识别can id流水号,并与想要收取流水号进行比较;
38、数据包接收单元,用于根据流水号进行比较结果进行数据包接收。
39、第三方面,一种用于列车自动运行系统的can数据传输方法,包括:
40、在列车自动运行系统中,采用双can总线进行数据传输;
41、双can总线,包括:can0和can1;
42、发送端,相同数据通过can0发送一次,再通过can1发送一次;
43、当接收端从can0和can1通道上接收数据包时,采用上述的一种用于列车自动运行系统的can数据接收方法,以接收数据。
44、第四方面,一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
45、存储器,存储有计算机程序;
46、处理器,用于执行存储器上所存储的计算机程序时,实现上述的一种用于列车自动运行系统的can数据接收方法。
47、第五方面,一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种用于列车自动运行系统的can数据接收方法。
48、本公开至少具备以下有益效果:
49、本公开设计充分利用了两条can通道通信的冗余作用,分别识别冗余通道中同一种数据的can id流水号,与想要收取该种数据流水号进行比较,正确则收入,判断异常作扔包或保留处理。充分利用了冗余传输的作用,保证收入的每一包数据都是对两条通信通道里的数据进行过类型、流水号的核查,确保数据的准确和连续。
50、本公开的其它特征和优点将在随后的说明书中阐述,或者部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书以及附图中所指出的结构来实现和获得。
1.一种用于列车自动运行系统的can数据接收方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
3.根据权利要求2所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
4.根据权利要求3所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
5.根据权利要求2所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
6.根据权利要求1所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
7.根据权利要求1所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
8.根据权利要求1所述的一种用于列车自动运行系统的can数据接收方法,其特征在于,
9.一种用于列车自动运行系统的can数据接收装置,其特征在于,包括:通道检测单元、流水号比较单元和数据包接收单元;
10.一种用于列车自动运行系统的can数据传输方法,其特征在于,包括:
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的一种用于列车自动运行系统的can数据接收方法。
