stringtranslate.com

Arquitectura de depuración MIPI

La arquitectura de depuración de MIPI Alliance proporciona una infraestructura estandarizada para depurar sistemas profundamente integrados en el espacio móvil y con influencia móvil. El grupo de trabajo de depuración de MIPI Alliance ha publicado una cartera de especificaciones; su objetivo es proporcionar protocolos de depuración estándar e interfaces estándar desde un sistema en un chip (SoC) a la herramienta de depuración. El documento técnico Descripción general de la arquitectura para la depuración resume todos los esfuerzos. En los últimos años, el grupo se centró en especificar protocolos que mejoren la visibilidad de las operaciones internas de sistemas profundamente integrados, estandarizar soluciones de depuración a través de las interfaces funcionales de dispositivos de formato y especificar el uso de I3C como bus de depuración. [1] [2]

El término "depurar"

El término "depuración" abarca los distintos métodos que se utilizan para detectar, clasificar, rastrear y, potencialmente, eliminar errores o fallas en hardware y software. La depuración incluye métodos de control/configuración, depuración en modo de parada/paso a paso y diversas formas de rastreo .

Métodos de control/configuración

La depuración se puede utilizar para controlar y configurar componentes, incluidos los sistemas integrados, de un sistema de destino determinado. Las funciones estándar incluyen la configuración de puntos de interrupción de hardware , la preparación y configuración del sistema de seguimiento y el examen de los estados del sistema .

Depuración en modo de parada/paso a paso

En la depuración en modo de parada/paso, el núcleo/microcontrolador se detiene mediante el uso de puntos de interrupción y luego se ejecuta el código paso a paso ejecutando las instrucciones una a una. Si los demás núcleos/microcontroladores del SoC han finalizado de manera sincronizada, se puede examinar el estado general del sistema. La depuración en modo de parada/paso incluye técnicas de control/configuración, control de ejecución de un núcleo/microcontrolador, sincronización de inicio/parada con otros núcleos, acceso a la memoria y a los registros, y funciones de depuración adicionales, como el contador de rendimiento y el acceso a la memoria en tiempo de ejecución.

Rastreo

Los rastros permiten un análisis profundo del comportamiento y las características de tiempo de un sistema embebido. Los rastros siguientes son típicos:

Visibilidad de las operaciones internas del SoC

Superposición de las especificaciones de traza

El rastreo es la herramienta preferida para monitorear y analizar lo que sucede en un SoC complejo. Existen varios estándares de rastreo de bus y de núcleo que no son MIPI bien establecidos para el mercado de sistemas integrados. Por lo tanto, no hubo necesidad de que el Grupo de trabajo de depuración de MIPI especificara otros nuevos. Pero no existía ningún estándar para un "rastreo de sistema" cuando el Grupo de trabajo de depuración publicó su primera versión del Protocolo de rastreo de sistema MIPI (MIPI STP) en 2006.

Rastreo de software del sistema MIPI (MIPI SyS-T)

La generación de datos de seguimiento del sistema a partir del software se realiza normalmente insertando llamadas de función adicionales, que producen información de diagnóstico valiosa para el proceso de depuración. Esta técnica de depuración se denomina instrumentación. Algunos ejemplos son: funciones de generación de cadenas de estilo printf, información de valores, afirmaciones, etc. El propósito de MIPI System Software Trace (MIPI SyS-T) es definir un protocolo de datos reutilizable y de uso general y una API de instrumentación para la depuración. La especificación define formatos de mensajes que permiten que una herramienta de análisis de seguimiento decodifique los mensajes de depuración, ya sea en texto legible para humanos o en señales optimizadas para el análisis automatizado.

Dado que los mensajes de texto con muchos detalles exigen un ancho de banda limitado para la depuración, se proporcionan los denominados "mensajes de catálogo". Los mensajes de catálogo son mensajes binarios compactos que sustituyen las cadenas por valores numéricos. La traducción del valor numérico a una cadena de mensajes la realiza la herramienta de análisis de trazas, con la ayuda de información XML adicional . Esta información se proporciona durante el proceso de creación del software mediante un esquema XML que también forma parte de la especificación.

El protocolo de datos SyS-T está diseñado para funcionar de manera eficiente sobre enlaces de transporte de nivel inferior, como los definidos por el Protocolo de seguimiento del sistema MIPI . Las funciones del protocolo SyS-T, como el sellado de tiempo o las sumas de comprobación de integridad de datos, se pueden deshabilitar si el enlace de transporte ya ofrece dichas capacidades. También es posible el uso de otros enlaces de transporte, como UART , USB o TCP/IP .

El grupo de trabajo de depuración de MIPI proporcionará una implementación de referencia de código abierto para la API de instrumentación SyS-T, una impresora de mensajes SyS-T y una herramienta para generar datos colaterales XML tan pronto como se apruebe la Especificación para el Rastreo de Software del Sistema (SyS-T). [3]

Protocolo de seguimiento del sistema MIPI (MIPI STP)

Topología maestro/canal del módulo de seguimiento del sistema

El protocolo de rastreo del sistema MIPI (MIPI STP) especifica un protocolo genérico que permite la fusión de flujos de rastreo originados desde cualquier parte del SoC en un flujo de rastreo de tramas de 4 bits. Fue diseñado intencionalmente para fusionar información de rastreo del sistema. El protocolo de rastreo del sistema MIPI utiliza una topología de canal/maestro que permite que la herramienta de análisis de recepción de rastreo recopile los flujos de rastreo individuales para su análisis y visualización. El protocolo proporciona además las siguientes funciones: sincronización y alineación de flujo, marcadores de activación, marca de tiempo global y sincronización de tiempo de múltiples flujos.

El flujo de paquetes STP producido por el módulo de seguimiento del sistema se puede guardar directamente en la memoria RAM de seguimiento, exportar directamente fuera del chip o se puede enrutar a un módulo de protocolo de envoltura de seguimiento (TWP) para fusionarlo con otros flujos de seguimiento. La macrocelda de seguimiento del sistema CoreSight de ARM [4] , que es compatible con MIPI STP, es hoy una parte integral de la mayoría de los chips multinúcleo utilizados en el espacio móvil.

La última versión de la Especificación para el Protocolo de Rastreo del Sistema (STP SM ) adoptada por la placa MIPI es la versión 2.2 (febrero de 2016). [5]

Protocolo de envoltura de seguimiento MIPI (MIPI TWP)

El protocolo MIPI Trace Wrapper permite fusionar varios flujos de seguimiento en un único flujo de seguimiento (flujos de bytes). Un protocolo de envoltura asigna una identificación única a cada flujo de seguimiento. La detección de límites de bytes/palabras es posible incluso si los datos se transmiten como un flujo de bits. Se utilizan paquetes inertes si se requiere una exportación continua de datos de seguimiento. El protocolo MIPI Trace Wrapper se basa en el protocolo Trace Formatter de ARM especificado para ARM CoreSight.

La última versión de la Especificación para el Protocolo Trace Wrapper (TWP SM ) adoptada por la placa MIPI es la versión 1.1 (diciembre de 2014). [6]

Desde interfaces dedicadas a funcionales

Desde interfaces dedicadas a funcionales

Interfaces de depuración dedicadas

Las dos tecnologías de depuración del modo de detención más comunes

En las primeras etapas del desarrollo de un producto, es habitual utilizar placas de desarrollo con interfaces de depuración dedicadas y de fácil acceso para conectar las herramientas de depuración. Los SoC empleados en el mercado de dispositivos móviles se basan en dos tecnologías de depuración: depuración en modo de parada mediante una cadena de escaneo y depuración en modo de parada mediante registros de depuración asignados a la memoria.

Los siguientes estándares de depuración no MIPI están bien establecidos en el mercado de dispositivos integrados: IEEE 1149.1 JTAG (5 pines) y ARM Serial Wire Debug (2 pines), ambos utilizan pines de un solo extremo. Por lo tanto, no hubo necesidad de que el grupo de trabajo de depuración MIPI especificara un protocolo de depuración en modo de detención ni una interfaz de depuración.

Los datos de seguimiento generados y fusionados en un flujo de seguimiento dentro del SoC se pueden transmitir, a través de una interfaz de seguimiento unidireccional dedicada, fuera del chip a una herramienta de análisis de seguimiento. La arquitectura de depuración MIPI proporciona especificaciones para puertos de seguimiento tanto paralelos como seriales.

La interfaz de seguimiento paralelo MIPI (MIPI PTI) especifica cómo pasar los datos de seguimiento a varios pines de datos y a un pin de reloj (de un solo extremo). La especificación incluye nombres y funciones de señales, temporización y restricciones eléctricas. La última versión de la especificación para la interfaz de seguimiento paralelo adoptada por la placa MIPI es la versión 2.0 (octubre de 2011). [7]

La interfaz de seguimiento de alta velocidad MIPI (MIPI HTI) especifica cómo transmitir datos de seguimiento a través de la capa física de interfaces estándar, como PCI Express , DisplayPort , HDMI o USB. La versión actual de la especificación permite de uno a seis carriles. La especificación incluye:

Conector de nivel de placa de 34 pines

La HTI es un subconjunto de la especificación del puerto de seguimiento serial de alta velocidad (HSSTP) definida por ARM. [8] La última versión de la Especificación para la interfaz de seguimiento de alta velocidad adoptada por la placa MIPI es la versión 1.0 (julio de 2016). [9]

Los desarrolladores de placas y los proveedores de herramientas de depuración se benefician de los conectores de depuración estándar y las asignaciones de pines estándar. La Recomendación MIPI para conectores de depuración y rastreo recomienda conectores de 1,27 milímetros (0,050 pulgadas) a nivel de placa de 10, 20 y 34 pines (MIPI10/20/34). Se han especificado siete asignaciones de pines diferentes que abordan una amplia variedad de escenarios de depuración. Incluyen JTAG estándar (IEEE 1149.1), cJTAG (IEEE 1149.7) e interfaces de rastreo paralelas de 4 bits (utilizadas principalmente para rastreos del sistema), complementadas con el estándar de depuración por cable serie (SWD) específico de ARM. [10] Los conectores de depuración MIPI10/20/34 se convirtieron en el estándar para los diseños integrados basados ​​en ARM.

Muchos diseños integrados en el espacio móvil utilizan puertos de seguimiento paralelos de alta velocidad (hasta 600 megabits por segundo por pin). MIPI recomienda un conector Samtec QSH/QTH de 60 pines llamado MIPI60, que permite JTAG/cJTAG para el control de ejecución, hasta 40 señales de datos de seguimiento y hasta 4 relojes de seguimiento. Para minimizar la complejidad, la recomendación define cuatro configuraciones estándar con uno, dos, tres o cuatro canales de seguimiento de ancho variable.

La última versión de la Recomendación de la Alianza MIPI para conectores de depuración y seguimiento adoptada por la junta MIPI es la versión 1.1 (marzo de 2011). [11]

Interfaces superpuestas de pines y PHY

USB tipo C , pines USB2 utilizados para depuración SWD
El multiplexor USB tipo C cambia los pines USB2 a pines SWD

En el formato final del producto no se dispone de interfaces de depuración de fácil acceso, lo que dificulta la identificación de errores y la optimización del rendimiento en el producto final. Dado que la lógica de depuración sigue estando presente en el producto final, se necesita una ruta de acceso alternativa. Una forma eficaz es equipar la interfaz estándar de un terminal móvil con un multiplexor que permita acceder a la lógica de depuración. La conmutación entre la función esencial de la interfaz y la función de depuración puede iniciarse mediante la herramienta de depuración conectada o mediante el software del terminal móvil. Las herramientas de depuración estándar se pueden utilizar en las siguientes condiciones:

La interfaz estrecha MIPI para depuración y prueba (MIPI NIDnT) cubre la depuración a través de las siguientes interfaces estándar: microSD , receptáculo USB 2.0 Micro-B/-AB, receptáculo USB tipo C y DisplayPort. La última versión de la especificación para interfaz estrecha para depuración y prueba (NIDnT SM ) adoptada por la placa MIPI es la versión 1.2 (diciembre de 2017). [12]

Interfaces de red

Protocolo SneakPeek de MIPI (MIPI SPP)

En lugar de reutilizar los pines, la depuración también se puede realizar a través de la pila de protocolos de una interfaz o red estándar. En este caso, el tráfico de depuración coexiste con el tráfico de otras aplicaciones que utilizan el mismo enlace de comunicación. El grupo de trabajo de depuración de MIPI denominó este enfoque GigaBit Debug . Dado que no existía ningún protocolo de depuración para este enfoque, el grupo de trabajo de depuración de MIPI especificó su protocolo de depuración SneakPeak.

El protocolo MIPI SneakPeek (MIPI SPP) pasó de ser una interfaz dedicada a la depuración básica a una interfaz basada en protocolo:

La Especificación para el Protocolo SneakPeek de la MIPI Alliance describe los conceptos básicos, la infraestructura requerida, los paquetes y el flujo de datos. La última versión de la Especificación para el Protocolo SneakPeek (SPP SM ) adoptada por la junta directiva de MIPI es la versión 1.0 (agosto de 2015). [13]

La familia de especificaciones de depuración Gigabit MIPI proporciona detalles para la asignación de protocolos de depuración y seguimiento a E/S o redes estándar disponibles en terminales móviles. Estos detalles incluyen: direccionamiento de puntos finales, inicialización y gestión de enlaces, empaquetado de datos, gestión de flujo de datos y detección y recuperación de errores. La última versión de la especificación para depuración Gigabit para USB (MIPI GbD USB) adoptada por la placa MIPI es la versión 1.1 (marzo de 2018). [14] La última versión de la especificación para depuración Gigabit para sockets de protocolo de Internet (MIPI GbD IPS) adoptada por la placa MIPI es la versión 1.0 (julio de 2016). [15]

I3C como bus de depuración

Las soluciones de depuración actuales, como JTAG y ARM CoreSight , están estructuradas de forma estática, lo que limita la escalabilidad en lo que respecta a la accesibilidad de los componentes/dispositivos de depuración. MIPI Debug for I3C especifica una solución de depuración escalable, de 2 pines y de un solo extremo, que tiene la ventaja de estar disponible durante toda la vida útil del producto. El bus I3C se puede utilizar solo como bus de depuración, o se puede compartir el bus entre la depuración y su función esencial como bus de adquisición de datos para sensores. La depuración a través de I3C funciona en principio de la siguiente manera:

Referencias

  1. ^ "Grupo de trabajo de depuración". MIPI Alliance . 2019 . Consultado el 7 de junio de 2019 .
  2. ^ "Descripción general de la arquitectura para depuración" (PDF) . MIPI Alliance . Versión 1.2. 13 de julio de 2018 . Consultado el 7 de junio de 2019 .
  3. ^ "Software del sistema MIPI – Trace (MIPI SyS-T)". MIPI Alliance . Versión 1.0. Abril de 2018. Consultado el 7 de junio de 2019 .
  4. ^ "Macrocelda de seguimiento del sistema". ARM Developer . 2019 . Consultado el 7 de junio de 2019 .
  5. ^ "MIPI System Trace Protocol (MIPI STP)". MIPI Alliance . Versión 2.2. Febrero de 2016. Consultado el 7 de junio de 2019 .
  6. ^ "MIPI Trace Wrapper Protocol (MIPI TWP)". MIPI Alliance . Versión 1.1. Diciembre de 2014 . Consultado el 7 de junio de 2019 .
  7. ^ "MIPI Parallel Trace Interface (MIPI PTI)". MIPI Alliance . Versión 2.0. Octubre de 2011. Consultado el 8 de junio de 2019 .
  8. ^ "Descripción general de la arquitectura de CoreSight: puerto de seguimiento serial de alta velocidad (HSSPT)". ARM Developer . 2019 . Consultado el 8 de junio de 2019 .
  9. ^ "MIPI High-Speed ​​Trace Interface (MIPI HTI)". MIPI Alliance . Versión 1.0. Julio de 2016 . Consultado el 8 de junio de 2019 .
  10. ^ "Depuración de cable serial". ARM Developer . 2019 . Consultado el 8 de junio de 2019 .
  11. ^ "Recomendación de la MIPI Alliance para conectores de depuración y seguimiento" . MIPI Alliance .
  12. ^ "MIPI Narrow Interface for Debug and Test (MIPI NIDnT)". MIPI Alliance . Versión 1.2. Diciembre de 2017. Consultado el 9 de junio de 2019 .
  13. ^ ab "MIPI SneakPeek Protocol (MIPI SPP)". MIPI Alliance . Versión 1.0. Agosto de 2015 . Consultado el 9 de junio de 2019 .
  14. ^ "MIPI Gigabit Debug for USB (MIPI GbD USB)". MIPI Alliance . Versión 1.1. Marzo de 2018. Consultado el 9 de junio de 2019 .
  15. ^ "MIPI Gigabit Debug for IP Sockets (MIPI GbD IPS)". MIPI Alliance . Versión 1.0. Julio de 2016 . Consultado el 9 de junio de 2019 .

Enlaces externos