吐血整理AutoSAR Com-Stack 的配置
2023-2-26 18:5:18 Author: 谈思实验室(查看原文) 阅读量:25 收藏

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

下图显示了基于 AUTOSAR 的 ECU SW 的结构。纵观BSW,大体分为三层。三层模块中,与通信相关的模块称为通信栈(Com-Stack)。在Com-Stack中与CAN相关的模块中,本项目设置的模块有COM、PDU Router(PduR)、CAN Interface(CanIf)、CAN Driver(CanDrv)。 

下图显示了构成 Com-Stack 的模块之间的关系。基于应用层发送的消息称为Tx消息,接收到的消息称为Rx消息。CAN 消息在多个模块之间传递。消息传递时,以Signal、PDU或Frame的形式传递给各个模块。在 Tx 消息的情况下,RTE 从应用层接收 SystemSignal 并将 ISignal 传递给 Com。相反,对于 RX 消息,ISignal 是从 COM 接收的,而 SystemSignal 是传递给 ASW 的。 

由于分层,应用层与Com-Stack的详细配置无关。在应用层,只设置从哪个软件组件(SWC)的哪个端口通过哪个接口传输哪些数据。

系统起到显示整体ECU SW的作用。RTE与COM模块之间交换的ISignal、COM模块与PDUR模块之间传输的PDU、PDUR模块与CanIf之间传输的PDU、CanIf与物理网络之间传输的Frame是根据各自的特点创建和设置的。

当创建系统的信号、PDU和帧时,必须相应地设置BSW层的com-stack。设置Com-Stacks间CAN通信相关模块。在工程中设置除CanTp之外的Com、PduR、CanIf和CanDrv。

在配置Com-Stack模块之前,除了属于Com-Stack的模块外,还需要配置一个模块。它是 EcuC 模块。EcuC模块是一个虚拟模块,不属于BSW中的任何层。EcuC 模块可以创建全局 PDU。这用于连接每个模块的本地 PDU。通过将全局 PDU 作为局部 PDU 的内部参数来进行连接。COM模块创建与RTE交换的ComSignal和与PduR交换的PDU并设置内部参数。

PduR模块对PDU进行路由,此时为PDU创建路由路径,并设置内部参数。在 Tx 消息的情况下,将源设置为从 COM 模块接收到的 PDU,并将目标设置为要发送到路由路径中的 CanIf 的 PDU。在Rx消息的情况下,将Source设置为从CanIf模块接收到的PDU和Routing Path中要发送给COM的PDU。

CanIf 模块创建一个与 PduR 模块交换的 PDU,以及一个与 CanDrv 交换的硬件对象处理程序 (HOH)。它设置创建的 PDU 和 HOH 的内部参数。

最后,我们还配置了 CanDrv 模块。CanDrv 模块需要设置与 CanIf 交换的 HOH,并且有 CAN Hardware Object。通过将 CAN ID 插入到硬件对象中,可以为 CAN 报文分配一个唯一的 ID。

设置 BSW 后,下一步是映射系统数据。将之前创建的Signal、PDU、Frame、COM模块信号分别设置到SWC的端口。因此,ASW、RTE 和 BSW 层相互连接以执行称为 CAN 通信的功能。

创建 ECU 软件所需的代码是 RTE、ASW、BSW、MCAL 和 OS。使用 ISOLAR-A 的 RTE 生成功能,可以为 RTE 中设置的项目自动生成 RTE 代码。由于添加了SWC、Port、Signal,所以在执行相关的RTE Generation时,会根据AUTOSAR规则自动创建相应的API。

通过ISOLAR-A的SWC的Code Frame自动生成功能,您可以使用之前创建的API创建一个基本的code frame。通过稍微修改它,我编写了一个应用程序代码,将进入 RPort 的 Signal 数据传输到 PPort,并将其传输到 Signal。

BSW 代码也可以在 ISOLAR-A 中创建。使用 BSW 代码生成功能生成不包括 MCAL 的 BSW 代码。MCAL 代码生成由 TresosStudio 完成。打开英飞凌 TC264D MCU 的 MCAL 项目并导入 ISOLAR-A 中设置的 CAN 驱动程序设置。MCAL 代码是使用代码生成功能自动生成的。使用 RTA-OS 设置操作系统代码并生成代码。添加CAN报文时,OS部分不需要修改,所以使用已有的OS代码。

至此,创建可上传到开发板的可执行ECU文件的所有准备工作就完成了。需要最终编译来创建可执行 ECU 文件,并且使用 HighTec Compiler 作为编译器。当 App、RTE、BSW、MCAL 和 OS 代码都准备好后,使用编译器创建一个可执行的 ECU 文件。

使用劳德巴赫T32 将生成的可执行 ECU 文件上传到英飞凌 TC264D EVB。使用 ETAS ES581(USB CAN 总线接口)和 BUSMASTER,确认 CAN 消息正在正确传输。下图是BUSMASTER检查的Tx、Rx报文窗口。由于连接的计算机是标准的,因此与Rx和Tx设计的ECU相反。Tx 消息的 ID 0x64 和 Rx 消息的 ID 0xC8 分配给 ECU 软件。如果向0xC8号发送值07,则将值发送给0xC8报文,即Rx,写应用代码通过0x64号Tx报文发出接收到的值,所以0x64号Tx报文传输传输的 07 值。

码上报名

2023第六届无人驾驶及智能驾舱中国峰会,5月11-12日,上海

码上报名

AutoSec 7周年年会暨中国汽车网络安全与数据安全合规峰会,5月11-12日,上海

更多文章

智能网联汽车信息安全综述

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员

END

微信入群

谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。

每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全功能安全自动驾驶TARA渗透测试SOTIFWP.29以太网物联网安全等,现专题社群仍然开放,入满即止。

扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。

谈思实验室,为汽车科技赋能,推动产业创新发展!


文章来源: http://mp.weixin.qq.com/s?__biz=MzIzOTc2OTAxMg==&mid=2247519087&idx=1&sn=567e9a5e4a6c88e7ee783454108537c9&chksm=e927cfb4de5046a22930c6e5181c02722c517a00cd9d145092bd0029a781c5801934df5da9c7#rd
如有侵权请联系:admin#unsafe.sh