基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法技术

技术编号:38503406 阅读:9 留言:0更新日期:2023-08-19 16:52
本发明专利技术公开了基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,包括步骤:根据AUTOSAR分层软件架构以及不同ECU平台,修改对应CAN Driver底层驱动;根据不同产品所需接收和发送报文进行配置,增添其PDUR属性,生成对应Config文件;上层通过调用CAN COM层提供的统一接收和发送接口函数;在PDUR模块的作用下,数据可在CAN COM模块和CAN IF模块之间进行传递;在底层驱动的仲裁下,可实现数据的发送与接收功能,并确保其有效性。本发明专利技术通过采用以AUTOSAR架构为标准的CAN通信驱动实现方法,能够更加灵活的支持产品的修改及更新换代,使得解决方案变得更有可扩展性。因驱动的分层架构,使得代码的可复用性大幅提高。使得代码的可复用性大幅提高。使得代码的可复用性大幅提高。

【技术实现步骤摘要】
基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法


[0001]本专利技术涉及汽车通信领域,具体为基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法。

技术介绍

[0002]在如今集成电路和自动驾驶技术的大力发展下,各类ECU层出不穷,所需装配自动驾驶技术的车型也越来越多,换用不同车型,对应的ECU或CAN通信报文会有所变化。因为汽车厂商所需收发的报文有所区别,开发人员每次都必须根据不同需求和功能重新进行CAN驱动配置,会使得工作变得极其繁琐。而且芯片厂商没有统一接口和封装,开发人员需要调用不同的底层驱动和接口函数,会导致代码风险程度大大增加。因此,急需一种跨平台的统一CAN通信驱动方法来解决此出现的问题。

技术实现思路

[0003]本专利技术的目的在于提供基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,以解决上述
技术介绍
中提出的问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,包括步骤:
[0005]S1:根据AUTOSAR分层软件架构以及不同ECU平台,修改对应CAN Driver底层驱动;
[0006]S2:根据不同产品所需接收和发送报文进行配置,增添其PDUR属性,生成对应Config文件;
[0007]S3:上层通过调用CAN COM层提供的统一接收和发送接口函数;
[0008]S4:在PDUR模块的作用下,数据可在CAN COM模块和CAN IF模块之间进行传递;
[0009]S5:在底层驱动的仲裁下,可实现数据的发送与接收功能,并确保其有效性。
[0010]优选的,S1中CAN Driver模块包含Module初始化配置、Node初始化配置、MO初始化配置、底层接口驱动设计四个部分。
[0011]优选的,S4中CAN IF模块包含报文接收处理函数、报文发送处理函数、报文发送缓冲区处理函数、报文中断接收处理函数四个部分。
[0012]优选的,S4中CAN COM模块包含报文接收超时处理函数、报文接收校验回调函数、报文发送时间管理函数、报文发送回调函数、报文发送校验函数、报文发送打包处理函数、报文接收解包处理函数、CAN TP发送处理函数、CAN TP接收处理函数九个部分。
[0013]优选的,S3

S5中CAN通信实现发送功能具体流程包括:
[0014]A:上层调用CAN COM模块发送功能主函数,CAN COM模块读取缓存器中需要发送的数据,并将要发送的数据进行打包;
[0015]B:CAN COM模块调用PDUR模块,将数据传给PDUR中的Buff;
[0016]C:PDUR模块通过路由将数据传到CAN IF模块;
[0017]D:CAN IF模块再调用底层驱动函数,将数据写入对应通道的寄存器中;
[0018]E:底层驱动将访问仲裁寄存器,将报文ID和数据发出,最终实现CAN通信发送功能
[0019]优选的,S3

S5中CAN通信实现接收功能具体流程包括:
[0020]A1:上层周期性调用CAN COM模块接收功能主函数;
[0021]A2:CAN Driver模块将访问仲裁寄存器,以确保读取数据的有效性;
[0022]A3:读取数据成功后,数据从CAN Driver模块传给上一层的CAN IF模块;
[0023]A4:CAN IF模块再调用PDUR模块,将数据传入PDUR中的Buff;
[0024]A5:PDUR模块将路由到CAN COM模块,对数据进行解包,存入其缓冲,供上层模块读取使用。
[0025]与现有技术相比,本专利技术的有益效果是:
[0026]本专利技术通过采用以AUTOSAR架构为标准的CAN通信驱动实现方法,能够更加灵活的支持产品的修改及更新换代,使得解决方案变得更有可扩展性。因驱动的分层架构,使得代码的可复用性大幅提高,减少开发人员手工代码量的同时,也减轻了其测试验证的负担,提高了软件的质量。随着开发效率的提升,产品的开发周期也随之缩短,最后实现产品的降本增效。
附图说明
[0027]图1为本专利技术实施例中CAN通信驱动功能流程;
[0028]图2为本专利技术实施例中报文发送和接收流程;
[0029]图3为本专利技术实施例中CAN通信驱动功能划分;
[0030]图4为本专利技术实施例中CAN模块设计结构体;
[0031]图5为本专利技术实施例中发送报文Busy处理;
[0032]图6为本专利技术实施例中报文收发具体实施方式。
具体实施方式
[0033]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]本专利技术提供一种技术方案:根据AUTOSAR分层软件架构,将微控制器的硬件层进行抽象化,形成微控制器抽象层,即将硬件接口打包成统一的接口函数,当更换不同的ECU平台时,仅需将微控制器抽象层进行修改,即可实现硬件与上层代码的通信,大大提高了上层代码的复用性和开发的效率,同时也减少了不必要的开发风险。
[0035]请参阅图1,通过将CAN通信划分为CAN Driver、CAN IF、CAN COM三个模块驱动,同时通过PDUR模块进行过渡兼容。CAN Driver模块为CAN通信协议栈的最底层驱动,直接硬件进行关联,当更换不同ECU平台时,仅需将此部分驱动进行修改,即可实现与CAN IF模块的关联。CAN IF模块即CAN Interface模块,位于CAN通信协议栈的中间层,主要是实现底层驱动与上层模块之间的数据流传递,为上层模块提供统一的接口函数来管理CAN硬件。CAN COM模块为CAN通信协议栈的顶层,主要是负责信号的接收与发送功能,同时对信号进行解包和打包,为上层提供统一的接收与发送接口函数,无需关心其通信过程。PDUR模块主要起
到网关路由的作用,所有的接收与发送报文都通过这一层进行统一管理。
[0036]请参阅图3,CAN Driver模块包含Module初始化配置、Node初始化配置、MO初始化配置、底层接口驱动设计四部分,CAN IF模块包含报文接收处理函数、报文发送处理函数、报文发送缓冲区处理函数、报文中断接收处理函数四部分、CAN COM模块包含报文接收超时处理函数、报文接收校验回调函数、报文发送时间管理函数、报文发送回调函数、报文发送校验函数、报文发送打包处理函数、报文接收解包处理函数、CAN TP发送处理函数、CAN TP接收处理函数九部分。
[0037]请参阅图4,本专利技术还将CAN通信报文划分为发送报文和接收报文两大类,对应上层发送、接收两大接口函数,对每一条报文配置的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,其特征在于,包括步骤:S1:根据AUTOSAR分层软件架构以及不同ECU平台,修改对应CAN Driver底层驱动;S2:根据不同产品所需接收和发送报文进行配置,增添其PDUR属性,生成对应Config文件;S3:上层通过调用CAN COM层提供的统一接收和发送接口函数;S4:在PDUR模块的作用下,数据可在CAN COM模块和CAN IF模块之间进行传递;S5:在底层驱动的仲裁下,可实现数据的发送与接收功能,并确保其有效性。2.根据权利要求1所述的基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,其特征在于:所述S1中CAN Driver模块包含Module初始化配置、Node初始化配置、MO初始化配置、底层接口驱动设计四个部分。3.根据权利要求1所述的基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,其特征在于:所述S4中CAN IF模块包含报文接收处理函数、报文发送处理函数、报文发送缓冲区处理函数、报文中断接收处理函数四个部分。4.根据权利要求1所述的基于AUTOSAR架构的跨平台CAN模块通信协议栈实现方法,其特征在于:所述S4中CAN COM模块包含报文接收超时处理函数、报文接收校验回调函数、报文发送时间管理函数、报文发送回调函数、报文发送校验函数、报文发送打包处理函数、报文接收解包处理...

【专利技术属性】
技术研发人员:孙中伟刘子郡薛青云高乐绅
申请(专利权)人:上海智驾汽车科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1