发布网友 发布时间: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模块介绍,对车载嵌入式软件开发领域的读者具有参考价值。