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
- Application/SW-C genera un mensaje de registro.
- El mensaje de registro se envía al módulo Dlt.
- El módulo Dlt envía mensajes de registro al bus de comunicación
- Mensajes de registro de registros de clientes Dlt externos
Seguimiento de VFB
- RTE llama a la macro proporcionada por Dlt y Dlt llama a la interfaz API de Dlt para generar mensajes rastreados.
- El módulo Dlt envía los mensajes de seguimiento generados a la interfaz implementada por el módulo de comunicación Dlt.
- El módulo de comunicación Dlt reenvía mensajes de seguimiento a la red.
- 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)
- Los clientes Dlt externos establecen niveles de registro y seguimiento y envían cambios a los módulos Dlt.
- El módulo Dlt ajusta la configuración de sus ajustes de filtro en consecuencia.
- 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.
- Llame al módulo Dlt para transmitir mensajes Dlt en modo no detallado.
- El módulo Dlt filtra y genera mensajes Dlt.
- El módulo Dlt envía mensajes Dlt al bus de comunicación.
- Los clientes Dlt externos obtienen metainformación de archivos FIBEX externos.
- 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取得。
参考
- ^ Especificación del protocolo DLT (PRS_DLTProtocol.pdf) https://www.autosar.org/fileadmin/user_upload/standards/foundation/1-0/AUTOSAR_PRS_DiagnosticLogAndTraceProtocol.pdf