一种基于路由表的CAN报文发送方法及系统与流程

文档序号:31796569发布日期:2022-10-14 17:39阅读:284来源:国知局
一种基于路由表的CAN报文发送方法及系统与流程
一种基于路由表的can报文发送方法及系统
技术领域
1.本技术涉及汽车网关技术领域,特别是涉及一种基于路由表的can报文发送方法及系统。


背景技术:

2.汽车电子电气架构快速发展,网关成为车内众多ecu(electronic control unit,电子控制单元)通信的必备模块;不同车型网关需求也大相径庭。面对这种情况,针对不同项目的不同can(controller area network,控制器域网)网络负载情况,为了降低丢帧概率,需要针对每个项目调整软件策略,优化网关处理能力。
3.汽车can网关需要在给定的网络负载(比如每路can 90%负载)情况下,不丢帧。鉴于can协议中的帧仲裁机制,低优先级帧需要等待高优先级帧发送完成之后,才能被发送出去。汽车ecu软件架构,越来越注重软件复用性,期望可以尽量少的修改代码,覆盖尽量多的项目,提高软件开发效率及ecu稳定性。
4.目前的汽车ecu,包括网关,广泛使用autosar(automotive open system architecture,汽车开放系统架构)作为软件架构及标准。autosar里的网关路由数据流在专门的上位机工具中配置,由配置工具生成c代码,然后参与编译生成最终的镜像。使用autosar工具配置路由流程的做法,在改变路由表时,或者调整帧与硬件发送单元的对应关系时,需要重新编译生成镜像,效率较低。


技术实现要素:

5.为了解决现有技术存在的不足,本技术的目的在于提供一种基于路由表的can报文发送方法及系统,可以提高了软件的通用性,只需烧写不同的路由表,一套软件即可覆盖多数的路由场景。
6.为实现上述目的,本技术提供的基于路由表的can报文发送方法,包括,接收报文,并将所述报文的各自帧的信息写入路由表,其中,所述路由表包括分组信息,以使多个所述报文分成多组;接收发帧请求,并基于所述路由表确定与帧对应的所述分组信息;根据所述分组信息将同一分组的帧写入与所述分组信息对应的硬件发送单元所属的软件队列;所述软件队列基于调度算法将各个所述队列中的多个帧依次写入所述硬件发送单元。
7.进一步地,所述路由表还包括:源总线信息、源帧id、目的总线信息和目的帧id。
8.进一步地,所述接收报文,并将所述报文的各自帧的信息写入路由表的步骤,还包括:使目的总线的分组数量小于或等于所述硬件发送单元的数量;根据所述报文的周期,将所述周期相差较大的不同的所述报文分到不同的所述
组。
9.进一步地,所述根据所述分组信息将同一分组的帧写入与所述分组信息对应的硬件发送单元所属的软件队列的步骤之前,还包括:从所述路由表确定每个帧的所述分组信息,建立各个分组与所述硬件发送单元之间的映射关系。
10.进一步地,所述根据所述分组信息将同一分组的帧写入与所述分组信息对应的硬件发送单元所属的软件队列的步骤,还包括:在所述分组信息与所述硬件发送单元之间不具有映射关系时,判断是否能找到空闲的所述硬件发送单元,在判断为具有空闲的硬件发送单元时,建立该分组信息与所述空闲的硬件发送单元之间的映射关系;在判断为无所述空闲的硬件发送单元时,随机找一个所述硬件发送单元,并建立该分组信息与所述硬件发送单元之间的映射关系;在所述分组信息与所述硬件发送单元之间具有映射关系时,将同一分组的帧写入与所述分组信息对应的硬件发送单元所属的软件队列。
11.进一步地,所述调度算法包括:向所述软件队列第一次写入帧时,直接将第一帧移入所述硬件发送单元,之后由发送完成中断触发下一帧移入所述硬件发送单元,直到所述软件队列为空;或者依次轮询各个所述软件队列,在相应的所述硬件发送单元可以接受新的帧时,将在所述软件队列头部的帧写入所述硬件发送单元。
12.更进一步地,网关闪存划分为多个分区,网关功能镜像和所述路由表分别存放在不同的所述分区。
13.为实现上述目的,本技术还提供一种基于路由表的can报文发送系统,包括:路由器,其包括:报文接收模块,其接收报文;网关闪存模块,其存储有包含分组信息的路由表;输入模块,其用于将所述报文的各自帧的信息写入所述路由表,以使多个所述报文分成多组;和发帧请求接收模块,其接收发帧请求,并基于所述路由表确定与帧对应的所述分组信息;以及can控制器,其包括多个硬件发送单元,多个所述硬件发送单元通过与各所述硬件发送单元对应的软件队列和调度算法,将同一分组的帧写入与所述分组信息对应的硬件发送单元。
14.进一步地,所述路由表还包括:源总线信息、源帧id、目的总线信息和目的帧id。
15.进一步地,所述路由表中,目的总线的分组数量小于或等于所述硬件发送单元的数量,所述基于路由表的can报文发送系统还包括输入模块,其根据所述报文的周期,将所述周期相差较大的不同的所述报文分到不同的所述组。
16.进一步地,所述路由器从所述路由表确定每个帧的所述分组信息,建立各个分组与所述硬件发送单元之间的映射关系。
17.更进一步地,所述网关闪存划分为多个分区,网关功能镜像和所述路由表分别存放在不同的所述分区。
18.为实现上述目的,本技术提供的计算机可读存储介质,其上存储有计算机指令,当
计算机指令运行时执行如上所述的基于路由表的can报文发送方法的步骤。
19.本技术的基于路由表的can报文发送方法及系统,通过将报文的各自帧的信息写入路由表,并进行分组,以使同一组的帧写入相同的硬件发送单元,可以提高了软件的通用性,只需烧写不同的路由表,一套软件即可覆盖多数的路由场景,既能够无需修改软件代码,只需修改路由表,即可针对can控制器不同数量的硬件发送单元配置。
20.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
附图说明
21.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,并与本技术的实施例一起,用于解释本技术,并不构成对本技术的限制。在附图中:图1为根据本技术的基于路由表的can报文发送方法流程图;图2为根据本技术的发送报文的帧的流程图;图3为根据本技术的基于路由表的can报文发送系统结构示意图;图4为表示本技术的路由表的示意图。
具体实施方式
22.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
23.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
24.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。其他术语的相关定义将在下文描述中给出。
25.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
26.下面,将参考附图详细地说明本技术的实施例。
27.实施例1(基于路由表的can报文发送方法)图1为根据本技术的基于路由表的can报文发送方法流程图,下面将参考图1,对本技术的基于路由表的can报文发送方法进行详细描述。
28.在步骤110,接收报文,并将报文的各自帧的信息写入路由表,其中,路由表包括分组信息,以使多个报文分成多组。在步骤101中,接收报文,并将每个所接收到的报文的帧的、包括信息源总线信息、源帧id(识别码)、目的总线信息、目的帧id和分组信息写入路由表。其中,使目的总线的分组数量小于或等于硬件发送单元的数量,并根据报文的周期,将周期相差较大的不同的报文分到不同的组。
29.之后,从路由表确定每个帧的分组信息,建立各个分组与硬件发送单元之间的映射关系。
30.在步骤120,接收发帧请求,并基于路由表确定与帧对应的分组信息。图2为根据本技术的发送报文的帧的流程图。如图2所示,步骤120包括:步骤121,接收发帧请求;步骤122,基于路由表确定与该帧对应的分组信息。
31.在步骤130,根据分组信息将同一分组的帧写入与分组信息对应的硬件发送单元所属的软件队列。如图2所示,步骤130包括,步骤131,判断分组信息与硬件发送单元之间是否具有映射关系,在判断为具有映射映射关系时,执行步骤135,否则执行步骤132;步骤132,判断是否能找到空闲的硬件发送单元,在判断为有空闲的硬件发送单元时,执行步骤134,否则执行步骤133;步骤133,随机找一个硬件发送单元,并建立该分组信息与该硬件发送单元之间的映射关系;在步骤134,建立该分组信息与空闲的硬件发送单元之间的映射关系;在步骤135,将同一分组的多个帧写入与分组信息对应的硬件发送单元所属的软件队列。
32.在步骤140,软件队列基于调度算法将各个队列中的多个帧依次写入硬件发送单元。
33.另外,在本实施例中,网关闪存划分为多个分区,网关功能镜像和路由表分别存放在不同的分区。
34.根据本实施例的基于路由表的can报文发送方法,通过将报文的各自帧的信息写入路由表,并进行分组,以使同一组的帧写入相同的硬件发送单元,能够无需修改软件代码,只需修改路由表,即可针对can控制器不同数量的硬件发送单元配置。
35.根据本实施例的基于路由表的can报文发送方法,通过使目的总线的分组数量小于或等于硬件发送单元的数量,并根据周期分组,能够使报文平均分布到不同的硬件发送单元,进而实现负载均衡且提高传输效率,同时能够对不同负载的can报文进行路由性能优化,降低丢帧概率。
36.根据本实施例的基于路由表的can报文发送方法,通过使路由表中的分组信息和硬件发送单元建立映射关系,能够迅速查找到所要写入的硬件发送单元,进而提高传输效率。
37.根据本实施例的基于路由表的can报文发送方法,通过基于调度算法将各帧写入硬件发送单元,能够提高传输效率。
38.根据本实施例的基于路由表的can报文发送方法,通过使网关功能镜像和路由表分别存放在不同分区,只需修改路由表,即可针对can控制器不同数量的硬件发送单元配置。
39.实施例2(基于路由表的can报文发送系统)图3为根据本技术的基于路由表的can报文发送系统结构示意图,如图3所示,本实施例中,基于路由表的can报文发送系统1,包括:路由器10和can控制器20。
40.路由器10包括:报文接收模块11,其接收报文;网关闪存模块12,其存储有包含分组信息(tx group)的路由表;输入模块13,其用于将报文的各自帧的信息写入路由表,以使多个报文分成多组;和发帧请求接收模块14,其接收发帧请求,并基于路由表确定与帧对应
的分组信息。图4为表示本技术的路由表的示意图,如图4所示路由表还包括:源总线信息(source bus)、源帧id(source frame id)、目的总线信息(target bus)和目的帧id(target frame id)。其中,目的总线的分组数量小于或等于硬件发送单元的数量,这样每个硬件发送单元21只会发送某个特定组里的报文,调整特定组里的报文数即可调整软件队列上的负载。另外,由输入模块13根据报文的周期,将周期相差较大的不同的报文分到不同的组。假设,can控制器20只有2个硬件发送单元21,并配置两个分组,且现有5ms周期的报文a、10ms周期的报文b、10ms周期的报文c需要发送。那么在100ms的时间窗口内,报文a有20个帧发送请求,报文b和c分别有10个帧发送请求。此时,例如出现如下分组方式:方式(1),报文a、b为一个组,报文c为单独一个组,在方式(1)的情况下,100ms内两个组上的负载量分别是30、10;方式(2),报文a为单独一个组,报文b、c为一个组,在方式(2)的情况下,100ms内两个组上的负载量分别是20、20;方式(3),报文a、c为一个组,报文b为单独一个组,在方式(3)的情况下,与负载量与方式(1)相同。并且假设每个软件队列深度为25,考虑极端情况,因为总线繁忙,报文a、b、c报文均被阻塞100ms,显然只有分组方式(2)可以做到不丢帧。
41.can控制器20包括多个硬件发送单元21,多个硬件发送单元21通过与各硬件发送单元21对应的软件队列和调度算法,将同一分组的帧写入与其分组信息对应的硬件发送单元21。
42.路由器10还可以包括映射关系模块(未图示),其从路由表确定每个帧的分组信息,建立各个分组与硬件发送单元之间的映射关系。
43.另外,在分组信息与硬件发送单元之间具有映射关系时,路由器10将同一分组的多个帧写入与分组信息对应的硬件发送单元21所属的软件队列。在分组信息与硬件发送单元之间不具有映射关系时,映射关系模块判断是否能找到空闲的硬件发送单元,在判断为有空闲的硬件发送单元时,建立该分组信息与空闲的硬件发送单元21之间的映射关系。在映射关系模块判断为无空闲的硬件发送单元时,随机找一个硬件发送单元21,并建立该分组信息与该硬件发送单元21之间的映射关系。
44.另外,在本实施例中,网关闪存划分为多个分区,网关功能镜像和路由表分别存放在不同的分区。
45.根据本实施例的基于路由表的can报文发送系统,通过将报文的各自帧的信息写入路由表,并进行分组,以使同一组的帧写入相同的硬件发送单元,能够无需修改软件代码,只需修改路由表,即可针对can控制器不同数量的硬件发送单元配置。
46.根据本实施例的基于路由表的can报文发送系统,通过使目的总线的分组数量小于或等于硬件发送单元的数量,并根据周期分组,能够使报文平均分布到不同的硬件发送单元,进而实现负载均衡且提高传输效率,同时能够对不同负载的can报文进行路由性能优化,降低丢帧概率。
47.根据本实施例的基于路由表的can报文发送系统,通过使路由表中的分组信息和硬件发送单元建立映射关系,能够迅速查找到所要写入的硬件发送单元,进而提高传输效率。
48.根据本实施例的基于路由表的can报文发送系统,通过基于调度算法将各帧写入硬件发送单元,能够提高传输效率。
49.根据本实施例的基于路由表的can报文发送系统,通过使网关功能镜像和路由表
分别存放在不同分区,只需修改路由表,即可针对can控制器不同数量的硬件发送单元配置。
50.实施例3本实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行上述实施例的基于路由表的can报文发送方法的步骤。
51.本领域普通技术人员可以理解:以上所述仅为本技术的优选实施例而已,并不用于限制本技术,尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1