AUTOSAR DLT (Registro y rastreo de diagnóstico)

Introducción

El módulo AUTOSAR Dlt (Registro de diagnóstico y seguimiento) se utiliza principalmente para recibir información de registro (información de registro) de DET, DEM, SW-C o información de seguimiento (información de seguimiento) de RTE. El módulo Dlt transmite estos datos a través del bus de comunicación, haciendo que esta información de registro y rastreo sea visible fuera de la ECU.

Con este fin, el módulo Dlt define las API sobre cómo enviar y recibir estos mensajes de registro/rastreo especializados en el bus de comunicación.

Además, la configuración del filtro de actualización del módulo Dlt también se puede guardar de forma permanente a través del módulo NvM. Esto permite que la ECU transmita información de registro/rastreo al nivel deseado sin requerir una solicitud de configuración explícita del bus de comunicación (a través de la función de registro) cada vez que se inicia la ECU.

El módulo Dlt se encuentra entre el módulo PduR y el módulo RTE.

Tenga en cuenta:

El formato del mensaje Dlt, los comandos Dlt disponibles y el protocolo Dlt (para comunicarse con herramientas externas de registro y rastreo) se definen en un documento separado [1] . Para obtener más información, consulte la especificación del protocolo Dlt .

Términos y definiciones

el término describir
Mensaje de registro y rastreo (mensaje de registro y rastreo) Los mensajes de registro y rastreo contienen todos los datos y opciones que describen eventos de registro y rastreo en el software. Los mensajes de registro y seguimiento constan de un encabezado y una carga útil.
Usuario DLT Un usuario Dlt representa el origen de los mensajes Dlt generados. Los posibles usuarios son SW-C, RTE (para seguimiento VFB), DEM o DET.
Mensaje de registro Los mensajes de registro (mensaje de registro) contienen información de depuración, como cambios de estado o cambios de valor.
Mensaje de seguimiento Los mensajes de rastreo contienen información pasada a través del VFB.
ID de la ECU ECU id es el nombre de la ECU, que consta de 4 caracteres ASCII de 8 bits (como ab0 o COMB).
Sesión Una sesión es una entidad lógica que registra o rastrea una fuente de mensajes. Si se crea una instancia de una aplicación/SW-C varias veces, cada instancia obtendrá una ID de sesión global única en relación con la ID de aplicación/contexto. Si una aplicación/SWC tiene varios puertos abiertos para Dlt, entonces puede tener varias sesiones de seguimiento o registro simultáneas. Dado que no hay una ID de sesión especial especificada para SW-C en AUTOSAR, se puede realizar a través del valor del parámetro de definición de puerto.
ID de sesión Un ID de sesión es un número de identificación para una sesión de registro o rastreo.
Application ID es una abreviatura de Application/SW-C. Identifica el origen de los mensajes de registro y rastreo. El ID de la aplicación consta de cuatro caracteres ASCII de 8 bits.
ID de contexto (ID de contexto) El ID de contexto es un identificador definido por el usuario que se utiliza para agrupar los mensajes de registro y seguimiento generados por la aplicación/SW-C. El ID de contexto consta de cuatro caracteres ASCII de 8 bits.
Se deben cumplir las siguientes reglas: 1. Cada ID de aplicación puede tener múltiples ID de contexto. 2. El ID de contexto se agrupa según el ID de la aplicación. 3. El ID de contexto debe ser único en el ID de la aplicación. 4. El origen de los mensajes de registro y seguimiento se identifica mediante el "ID de aplicación" y el "Id de contexto" de la metainformación.
ID de mensaje Un ID de mensaje es un identificador que caracteriza un mensaje y se transmite a través del propio mensaje. Un ID de mensaje se utiliza para identificar de forma exclusiva un mensaje de registro o seguimiento. Se puede usar para identificar la fuente de un mensaje (en el código fuente) y se puede usar para describir la carga útil de un mensaje. Los ID de mensaje se fijan estáticamente durante el desarrollo o la configuración.
Nivel de registro (nivel de registro) Los niveles de registro definen la clasificación de nivel de los mensajes de registro.
Estado de rastreo El estado de seguimiento proporciona información sobre si se deben enviar mensajes de seguimiento.
Canal de registro Un bus de comunicación físico utilizado para transmitir mensajes Dlt.
Cliente externo (cliente externo) El cliente externo es una herramienta para controlar, monitorear y almacenar mensajes de registro/traza proporcionados por la ECU usando el módulo Dlt.

Escenas a utilizar

El siguiente contenido describirá cómo la ECU usa la escena Dlt para clasificar

Aunque el protocolo Dlt es independiente del bus, se recomienda utilizar un bus con un mayor ancho de banda para la comunicación, como Ethernet. Sin embargo, el protocolo de Dlt no se limita al uso de Ethernet.

Registro general con Dlt

  1. Application/SW-C genera un mensaje de registro.
  2. El mensaje de registro se envía al módulo Dlt.
  3. El módulo Dlt envía mensajes de registro al bus de comunicación
  4. Mensajes de registro de registros de clientes Dlt externos

Seguimiento de VFB

  1. RTE llama a la macro proporcionada por Dlt y Dlt llama a la interfaz API de Dlt para generar mensajes rastreados.
  2. El módulo Dlt envía los mensajes de seguimiento generados a la interfaz implementada por el módulo de comunicación Dlt.
  3. El módulo de comunicación Dlt reenvía mensajes de seguimiento a la red.
  4. Los clientes externos reciben y almacenan mensajes de seguimiento.

Configuración de tiempo de ejecución Dlt (Configuración de tiempo de ejecución de Dlt)

  1. Los clientes Dlt externos establecen niveles de registro y seguimiento y envían cambios a los módulos Dlt.
  2. El módulo Dlt ajusta la configuración de sus ajustes de filtro en consecuencia.
  3. El módulo Dlt notifica a la aplicación el nuevo nivel de registro.

Modo no detallado

El tráfico en el bus se puede reducir al no enviar metadatos para variables en el bus de comunicación. En este punto, se puede usar un archivo FIBEX externo para almacenar información sobre cómo analizar el contenido de la carga útil. Los clientes Dlt externos fusionan y guardan los metadatos definidos en estos archivos FIBEX con los datos recibidos.

  1. Llame al módulo Dlt para transmitir mensajes Dlt en modo no detallado.
  2. El módulo Dlt filtra y genera mensajes Dlt.
  3. El módulo Dlt envía mensajes Dlt al bus de comunicación.
  4. Los clientes Dlt externos obtienen metainformación de archivos FIBEX externos.
  5. La información combinada es almacenada por el cliente Dlt externo.

Especificación de protocolo

formato de mensaje

Para obtener datos de depuración e información de control, solo use el mismo formato de mensaje Dlt. Consta de un encabezado estándar, un encabezado de extensión opcional y una sección compleja válida.

Encabezado estándar

El encabezado estándar Dlt constará de los siguientes campos, en el siguiente orden:

Ubicación describir
byte 0 HTYP (tipo de encabezado)
byte 1 MCNT (contador de mensajes)
bytes 2-3 LARGO (longitud)
Bytes 4-7 ECU (identificación de la ECU)
Bytes 8-11 SEID (ID de sesión)
Bytes 12-15 TMSP (marca de tiempo)

Encabezado extendido

Si el bit UEH del encabezado estándar se establece en '1', se transmite la información adicional definida en el formato de encabezado extendido Dlt. El encabezado de la extensión Dlt se agrega directamente después de los campos del encabezado estándar Dlt.

El formato del encabezado de la extensión DLT constará de los siguientes campos en el siguiente orden:

Ubicación describir
byte 0 MSIN (información del mensaje)
byte 1 NOAR (número de argumentos)
bytes 2-5 APID (ID de la aplicación)
Bytes 6-9 CTID (ID de contexto)

Formato de cuerpo/carga útil

Los datos del cuerpo Dlt siguen al encabezado Dlt o al encabezado de extensión Dlt (si se usa). Los datos del cuerpo de Dlt contienen parámetros para ser Log o Trace, o contienen información de control.

módulos dependientes

RTE

RTE (incluido el programador VFB y BSW) se usa principalmente para interactuar con SW-C, generar registros y rastrear mensajes, y llamar a la función Tx del módulo Dlt en un bucle.

Enrutador PDU

Para transmitir mensajes Dlt en el bus de comunicación, el módulo Dlt interactúa con el enrutador PDU.

NvM

Para cargar y almacenar configuraciones relacionadas, como configuraciones de filtros y asignaciones de canales de registro. El módulo NvM no es necesario, sino opcional.

GPT

Para obtener una marca de tiempo, se puede utilizar el módulo GPT para este fin.

StbM

Para obtener valores de tiempo síncronos en formato estándar/extendido. La base de tiempo local se deriva de la base de tiempo global y el módulo StbM se puede utilizar para este fin.

EL

Para poder informar errores predeterminados y reenviar errores DET al bus de comunicación, el módulo Dlt tiene que interactuar con el módulo DET. Sin embargo, la interacción con DET no es obligatoria y es opcional.

DEM

Para poder informar errores de desarrollo y transmitir eventos DEM en el bus de comunicación, el módulo Dlt debe interactuar con el módulo DEM. Sin embargo, la interacción con el DEM no es obligatoria y es opcional.

estructura de archivos

definición de función

El siguiente contenido describirá los datos específicos de AUTOSAR y las rutas de control requeridas por el módulo Dlt al interactuar con SW-C, PduR y dispositivos de registro externos (cliente externo).

Comandos Dlt (comandos Dlt)

Dlt协议指定由唯一的Service id标识的各种Dlt命令。Dlt命令用于在运行时修改Dlt模块的行为,例如,获取关于当前Dlt配置的信息或更改过滤器设置。(PRS_Dlt_00635)

Service ID Dlt Command Description
0x01 SetLogLevel 设置日志级别
0x02 SetTraceStatus 启用/禁用跟踪消息
0x03 GetLogInfo 返回已注册SW-C的LogLevel
0x04 GetDefaultLogLevel 返回通配符的日志级别
0x05 StoreConfiguration 存储当前配置非易失性
0x06 ResetToFactoryDefault 将配置设置回默认值
0x0A SetMessageFiltering 启用/禁用Dlt过滤器
0x11 SetDefaultLogLevel 设置通配符的日志级别
0x12 SetDefaultTraceStatus 启用/禁用通配符的跟踪消息
0x15 GetDefaultTraceStatus 获取通配符的当前TraceLevel
0x17 GetLogChannelNames 返回LogChannel的名称
0x1F GetTraceStatus 获取当前跟踪状态(开启/关闭)
0x20 SetLogChannelAssignment 添加/删除给定的LogChannel作为输出路径
0x21 SetLogChannelThreshold 为给定的LogChannel设置过滤阈值
0x22 GetLogChannelThreshold 获取给定LogChannel的筛选器阈值
0x23 BufferOverflowNotification DLT模块内缓冲区溢出的指示

Dlt与软件组件的交互

Dlt模块为SW-C提供了可用于发送日志和跟踪消息的接口。

可选地,SW-C可以为日志级别阈值(log level threshold)和跟踪状态变更通知提供一个Port口。这些端口由Dlt模块提供,分别为了不同ApplicationId / ContextId的每个元组而定义。这些通知可以用来避免影响SW-C已经生成的日志和跟踪消息,而不是让它们稍后被Dlt模块过滤掉。

由于Dlt模块支持SW-C的多个实例,它们使用相同的ApplicationId/ContextId元组,一个额外的SessionId参数允许区分来自相同SW-C的不同实例的日志/跟踪消息。

分离那些互相SW-Cs技术,避免SW-Cs必须使用独特的SessionId调用SendLogMessage / SendTraceMessage(细节,见下一章节),Dlt模块提供了一个专用P-Port每SW-C配置(参见配置参数DltSwc) SessionId作为port-defined-argument管理。

如果已配置的SW-C被标记为对日志级别的通知和跟踪状态更改感兴趣,Dlt模块还提供相应的R-Port来通知相应的SW-C。

由SW-C负责ApplicationId/ContextId元组的信息,在运行时分别通过调用RegisterContext和UnregisterContext为SW-C配置和/或更新。

Dlt模块会为每个配置的SW-C提供一个接口DltService类型的P-Port。P-Port接口包含SessionId作为端口定义的参数。Dlt模块也会为每个配置的SW-C提供一个R-Port类型的接口LogTraceSessionControl(见第8章),其中配置参数DltSwcSupportLogLevelChangeNotification会被设置为TRUE。SW-C需要负责的ApplicationId / ContextId元组,因此在日志级别或跟踪状态更改时需要通知该元组,可以从配置参数DltSwcContext取得。

参考

  1. ^ Especificación del protocolo DLT (PRS_DLTProtocol.pdf)  https://www.autosar.org/fileadmin/user_upload/standards/foundation/1-0/AUTOSAR_PRS_DiagnosticLogAndTraceProtocol.pdf

Supongo que te gusta

Origin blog.csdn.net/usstmiracle/article/details/132237938
Recomendado
Clasificación