[Classic AUTOSAR学习] DLT模块(Log&Trace)

发布网友 发布时间:2024-11-28 13:09

我来回答

1个回答

热心网友 时间:2024-12-04 01:11

为了实现对AutoSAR程序(包括Bsw和Swc)运行数据和状态的监控与掌握,DLT模块扮演着关键角色,负责连接需要输出日志和跟踪信息的模块,并通过DLT将这些信息传递给PR模块,最终由通信协议栈发送出去。

本文基于AutoSAR规范的4.3版本进行介绍。

DLT模块的用途广泛,能够为DET, DEM, SWC以及RTE提供日志和跟踪能力。

从层次结构上看,DLT位于PR之上、RTE之下。如果Swc需要使用DLT功能,它需要通过RTE,利用port接口调用DLT的函数。

DLT提供了一系列功能,主要帮助用户获得所需信息。

DLT基于DLT协议以标准格式经由PR,通过不同的通信协议栈向外发送。

DLT协议包括标准头部、扩展头部和payload。

标准头部和扩展头部均采用大端字节序。

标准头部包含基础信息,扩展头部则提供了额外的定制选项。

DLT消息根据需要,设定了多个日志级别。

用户可以通过通信协议栈请求并设置日志级别,或者在NvM中存储过滤设置,实现自动应用。

DLT命令支持Swc与DLT的交互,Swc主要通过Application ID和Contect ID识别日志信息来源,并通过Session ID进行区分,以适应Swc的多实例情况。

Application ID、Context ID和Session ID是识别Swc发来的日志信息的关键元素。

Application ID简要识别Swc,由四个8位ASCII字符组成。

Context ID在同一个Swc产生的日志信息中进行分组识别,通常也由四个8位ASCII字符表示。

Session ID用于区分同一Application ID和Context ID下的多个Swc实例。

DLT支持注册与注销功能,Swc在运行时需通过DLTService调用Dlt_RegisterContext完成注册,并提供Session ID作为参数。

当Swc停止运行,应在停止前完成unregister操作。

在实际操作中,日志信息的Message ID用于标识与代码发送相关的部分。

DLT与RTE/VFB追踪功能集成,允许从RTE获取VFB追踪信息,包括Swc与Rte之间的数据交换。

NvM的利用允许在程序运行状态更改配置,确保重启后能使用更新后的设置。

DLT消息发送流程清晰,步骤包括注册、消息生成、发送和接收。

生成时间戳功能可选,以EB Tresos为例,可通过配置实现。

消息过滤机制帮助判断是否允许发送特定日志或跟踪信息。

Verbose模式允许发送完整描述信息的日志和跟踪消息,并要求扩展头部。

在AutoSAR 4.4版本及以后,不再强制DLT提供直接接口给DEM,需用户实现CDD或Swc以传递相关数据。

本文旨在提供详尽的AutoSAR DLT模块介绍,对车载嵌入式软件开发领域的读者具有参考价值。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com