Intermedia I-PDU sin modificaciones entre módulos de comunicación superiores e inferiores mediante una tabla de enrutamiento estática.
GENERADO POR IAno revisadoModelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 3a20c4ee9a26ProcedenciaPreguntas abiertas (1)
Ancla causal: R20-11Válido desde R20-11Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Intermedia I-PDU sin modificaciones entre módulos de comunicación superiores e inferiores mediante una tabla de enrutamiento estática.
El PDU Router transmite I-PDUs entre módulos superiores como Com y DCM, Communication Interfaces y protocolos de transporte. Al hacerlo, solo traduce los ID de I-PDU a lo largo de rutas de enrutamiento configuradas y no modifica el contenido [SWS_PduR_00160]. Entre sus funciones se encuentran la transmisión, la recepción, TriggerTransmit, transmisiones TP segmentadas y pasarelas con búfer FIFO opcional. El enrutamiento se realiza exclusivamente en el estado PDUR_ONLINE tras un PduR_Init exitoso [SWS_PduR_00328]. En tiempo de ejecución, los grupos de rutas de enrutamiento pueden conmutarse mediante PduR_EnableRouting y PduR_DisableRouting.
El PDU Router transmite I-PDUs entre módulos superiores como Com y DCM, Communication Interfaces como CanIf, FrIf y LinIf, así como protocolos de transporte. Para ello, no modifica las I-PDUs [SWS_PduR_00160] y solo enruta a lo largo de rutas de enrutamiento configuradas [SWS_PduR_00162]. Su función principal es la traducción de los ID de I-PDU tanto en la ruta de transmisión como en las rutas de confirmación e indicación [SWS_PduR_00766]. Las interfaces son genéricas; los marcadores de posición <Up>, <Lo> y <LoTp> se derivan de la configuración PduRBswModules[SWS_PduR_00504].
Diagrama de contexto: El PduR se sitúa entre los módulos superiores y los módulos IF o TP; BswM conmuta grupos de rutas, los errores se envían al DET. Fuentes: [SWS_PduR_00504], SWS PDU Router p. 16
El PduR solo conoce los estados PDUR_UNINIT y PDUR_ONLINE[SWS_PduR_00324]. El enrutamiento se realiza exclusivamente en PDUR_ONLINE[SWS_PduR_00328]. Llega allí mediante PduR_Init(ConfigPtr)[SWS_PduR_00334]. Antes de esto, todas las funciones excepto PduR_Init y PduR_GetVersionInfo notifican el error PDUR_E_UNINIT, siempre que la detección de errores esté activa [SWS_PduR_00119].
Durante el funcionamiento, el PduR asume los siguientes procesos:
Transmite las solicitudes de transmisión a cada destino de interfaz [SWS_PduR_00625].
Reenvía las solicitudes de TriggerTransmit a la capa superior [SWS_PduR_00430].
En caso de multidifusión TP, consulta los mismos datos para cada destino con TP_CONFPENDING o TP_DATARETRY[SWS_PduR_00631][SWS_PduR_00632] y notifica una confirmación agregada [SWS_PduR_00765].
Como pasarela, almacena en búfer según se requiera en una FIFO [SWS_PduR_00785]. Puede retransmitir I-PDUs de TP sobre la marcha a partir de un umbral hacia exactamente un destino [SWS_PduR_00317][SWS_PduR_00708].
En tiempo de ejecución, PduR_EnableRouting y PduR_DisableRouting conmutan grupos completos de rutas de enrutamiento [SWS_PduR_00615][SWS_PduR_00617], controlados habitualmente por el BswM. Las llamadas en una ruta desactivada terminan con E_NOT_OK[SWS_PduR_00717]. El PduR notifica los errores de desarrollo como PDUR_E_PDU_ID_INVALID al DET [SWS_PduR_00100]. Notifica las pérdidas de FIFO como PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00670]. No existe un tratamiento de errores propio en las rutas de interfaz; los valores de retorno van a la fuente SWS PDU Router p. 46.
Rol y límite del sistema: Transmisión de I-PDUs entre módulos superiores, interfaces y protocolos de transporte
El PDU Router (PduR) es el intermediario central de la pila de comunicación clásica. Recibe I-PDUs de un módulo de origen y las transmite sin cambios y de forma coherente a uno o más módulos de destino [SWS_PduR_00160]. El enrutamiento se realiza exclusivamente a lo largo de las rutas de enrutamiento configuradas [SWS_PduR_00162]. Una ruta se determina inequívocamente mediante dos datos: el ID de I-PDU de origen de la configuración del PduR y los ID de I-PDU de destino de las configuraciones de los módulos de destino invocados [SWS_PduR_00161]. Por lo tanto, la función principal del PduR es la traducción de los ID de I-PDU. Esta aplica tanto a la ruta de transmisión como a las rutas de confirmación e indicación [SWS_PduR_00766]. Cada módulo selecciona sus propios identificadores de manejador; la configuración los vincula mediante la Pdu «global» ECU Configuration Fig. 3.13 p. 192.
Por encima del PduR se encuentran módulos como Com y DCM. Por debajo se sitúan Communication Interfaces como CanIf, FrIf y LinIf, así como protocolos de transporte como CanTp, FrTp y LinTp SWS PDU Router p. 24. Las interfaces están definidas de forma genérica. Los marcadores de posición <Up>, <Lo> y <LoTp> se sustituyen mediante la configuración de módulo referenciada en PduRBswModules, y en el caso de los CDD mediante su apiServicePrefix[SWS_PduR_00504]SWS PDU Router Fig. 10.2 p. 95. Si un módulo inferior admite tanto TP como IF, se añaden los infijos Tp y If[SWS_PduR_00800].
Si PduRZeroCostOperation está configurado y todas las rutas de enrutamiento son de precompilación, los módulos adyacentes pueden llamarse directamente entre sí [SWS_PduR_00287]. Si al menos una ruta no es de precompilación, el generador debe notificar un error [SWS_PduR_00619]SWS PDU Router p. 56. El generador debe optimizar eliminando las características no utilizadas, es decir, TP, IF, pasarela y FIFO [SWS_PduR_00764].
Ciclo de vida: de PDUR_UNINIT a PDUR_ONLINE a través de PduR_Init
Establece los valores por defecto configurados de los búferes de transmisión [SWS_PduR_00308].
Activa los grupos de rutas de enrutamiento según el parámetro Enable-at-start [SWS_PduR_00709]. Versiones posteriores denominan a este parámetro PduRIsEnabledAtInitSWS PDU Router p. 131.
Antes de la inicialización, todas las funciones excepto PduR_Init y PduR_GetVersionInfo notifican el error PDUR_E_UNINIT, siempre que PduRDevErrorDetect esté activo [SWS_PduR_00119]. PduR_GetVersionInfo[SWS_PduR_00338] se habilita mediante PduRVersionInfoApiSystem Template p. 656.
Los datos post-build se encuentran en PduR_PBConfigType y están implementados en PduR_PBcfg.c [SWS_PduR_00241][SWS_PduR_00743]. Se identifican unívocamente mediante PduRConfigurationId[SWS_PduR_00281]. Esta identificación la proporciona PduR_GetConfigurationId[SWS_PduR_00341][SWS_PduR_00280] como PduR_PBConfigIdType basado en uint16; una unidad de control puede contener varias configuraciones seleccionables [SWS_PduR_00771]. Las tablas de enrutamiento pueden actualizarse en tiempo de post-build [SWS_PduR_00295], aunque solo en estado no inicializado [SWS_PduR_00296]. El consumo de memoria puede aumentar con una nueva configuración y, por tanto, debe planificarse en el momento del diseño SWS PDU Router p. 160.
Rutas de Communication Interface: Transmit, TriggerTransmit y confirmaciones
Si un módulo superior llama a PduR_<User:Up>Transmit[SWS_PduR_00406], el PduR llama a <Lo>_Transmit para cada destino [SWS_PduR_00625]. Para ello, no almacena en búfer [SWS_PduR_00629]. Para el valor de retorno aplica:
En multidifusión, la capa superior debe suministrar los mismos datos varias veces. La solicitud del primer destino va con TP_CONFPENDING a la capa superior [SWS_PduR_00631], y todas las posteriores con TP_DATARETRY[SWS_PduR_00632]. La capa superior recibe una única <Up>_TpTxConfirmation tras la última confirmación. Esta notifica E_OK si al menos un destino ha notificado E_OK[SWS_PduR_00765]SWS PDU Router Fig. 9.10 p. 83.
La recepción TP comienza con PduR_<User:LoTp>StartOfReception[SWS_PduR_00507]. El PduR la reenvía a <Up>_StartOfReception[SWS_PduR_00549] y devuelve su valor de retorno sin cambios [SWS_PduR_00623]. A continuación siguen dos reenvíos:
Modo pasarela: reenvío inmediato, búfer FIFO y TP sobre la marcha
Entre Communication Interfaces, el PduR enruta 1:n [SWS_PduR_00436] y con reenvío inmediato, es decir, sin generación propia de tasas [SWS_PduR_00437]. La función de pasarela solo se realiza IF↔IF o TP↔TP [SWS_PduR_00638]. Para la longitud transmitida aplica:
Sin almacenamiento en búfer, el PduR transmite el mínimo entre la longitud recibida y la longitud de destino configurada [SWS_PduR_00783].
Con almacenamiento en búfer, copia como máximo PduRPduMaxLength y descarta el resto [SWS_PduR_00746].
Una I-PDU puede enviarse simultáneamente de forma local a Com y reenviarse a un segundo CAN SWS PDU Router Fig. 9.14 p. 114.
El modo en que el destino obtiene los datos lo determina PduRDestPduDataProvision:
Con PDUR_DIRECT, el destino copia él mismo los datos durante la transmisión [SWS_PduR_00303].
Se puede configurar una FIFO por cada I-PDU de destino [SWS_PduR_00307]. El comportamiento FIFO se aplica a partir de PduRQueueDepth mayor que 1 [SWS_PduR_00785]. El diagrama de actividades resume las reglas de entrada y salida [SWS_PduR_00665][SWS_PduR_00666].
Para las pasarelas TP existen dos procedimientos. En la pasarela directa, <DstLoTp>_Transmit se inicia en la RxIndication con E_OK[SWS_PduR_00551]. En la pasarela sobre la marcha, la retransmisión ya se inicia en cuanto se alcanza PduRTpThreshold[SWS_PduR_00317]. En ese caso solo se permite un destino [SWS_PduR_00708], y los datos ya enviados no se repiten [SWS_PduR_00707]SWS PDU Router p. 58. El PduR selecciona el búfer según el tamaño:
Si el mensaje cabe en PduRPduMaxLength, utiliza el búfer dedicado [SWS_PduR_00797].
En caso contrario, obtiene dinámicamente un búfer de PduRTxBuffer[SWS_PduR_00798].
Con la TxConfirmation libera el búfer [SWS_PduR_00637]. Si la I-PDU debe recibirse adicionalmente de forma local, el PduR llama a <UpTp>_StartOfReception, <UpTp>_CopyRxData y <UpTp>_RxIndication en este orden [SWS_PduR_00789]. Para ello debe almacenar en búfer, ya que el DCM no tiene conocimiento de la pasarela SWS PDU Router p. 112.
Grupos de rutas de enrutamiento: conmutar el enrutamiento en tiempo de ejecución
Los grupos de rutas de enrutamiento agrupan rutas por red o por tipo de PDU. Habitualmente los conmuta el BswM SWS PDU Router p. 69. Para ello sirven PduR_EnableRouting(id)[SWS_PduR_00615] y PduR_DisableRouting(id, initialize)[SWS_PduR_00617]; el identificador es de tipo uint16[SWS_PduR_00654]. La activación tiene efecto inmediato [SWS_PduR_00715]. Al desactivar se aplican las siguientes reglas:
initialize decide si los búferes individuales se restablecen al valor por defecto [SWS_PduR_00617].
Las FIFOs de las rutas detenidas se vacían y el PduR notifica PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00663].
La Mode Management Guide recomienda los grupos de rutas para I-PDUs sin grupo de I-PDU de Com, por ejemplo para LdCom. La conmutación se realiza mediante reglas de BswM, por ejemplo en función del estado de red parcial Mode Management Guide p. 50. La acción de BswM BswMPduRouterControl llama para ello a PduR_EnableRouting o PduR_DisableRoutingSWS BSW Mode Manager p. 145. En el enrutamiento n:1 a un módulo local, solo puede estar activa como máximo una ruta en tiempo de ejecución System Template p. 736[SWS_PduR_00615].
Los siguientes pasajes sustentan las afirmaciones de esta guía. Las secuencias del capítulo 9 de la especificación las ilustran, por ejemplo SWS PDU Router Fig. 9.5 p. 100.
Guía generada por IA sobre la base de los requisitos del SWS PDU Router (R20-11) y pasajes de documentos asociados; solo los requisitos enlazados son normativos. Por favor, compruebe en la especificación las afirmaciones marcadas como interpretación.
PDU Router (PduR)
The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8eca52c90f1cProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función síncrona y no reentrante PduR_Init inicializa el router de PDU [SWS_PduR_00334]. Como parámetro asume con ConfigPtr un puntero a la configuración post-build del módulo (PduR_PBConfigType) y no devuelve ningún valor [SWS_PduR_00334]. En el marco de la inicialización, PduR_Init inicializa previamente todos los búferes de transmisión de PDU con los valores predeterminados configurados [SWS_PduR_00308].
Interacción y condiciones de orden
Tras el encendido, el módulo se encuentra inicialmente en el estado PDUR_UNINIT[SWS_PduR_00325]. PduR_Init debe llamarse antes que todas las demás funciones del módulo, ya que otras interfaces —a excepción de PduR_GetVersionInfo— notifican el error PDUR_E_UNINIT a través del DET en estado no inicializado, siempre que PduRDevErrorDetect esté activado [SWS_PduR_00119].
Tratamiento de errores y concurrencia
Si se llama a PduR_Init en un estado distinto de PDUR_UNINIT, esto se considera como PDUR_E_UNINIT[SWS_PduR_00100]. En caso de un puntero de configuración no válido o de que se pase un puntero nulo, se aplican los códigos de error PDUR_E_INIT_FAILED y PDUR_E_PARAM_POINTER respectivamente [SWS_PduR_00100]. Debido a la falta de reentrancia, no debe producirse ninguna llamada paralela a la rutina de inicialización [SWS_PduR_00334].
Este texto fue generado por una IA basándose en la especificación AUTOSAR R20-11.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e3aad02fdb37ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función síncrona PduR_EnableRouting (Service-ID 0xf3) sirve para la activación selectiva de un grupo de rutas de enrutamiento definido en el PDU Router ([SWS_PduR_00615]). Como único parámetro toma el identificador de grupo id de tipo PduR_RoutingPathGroupIdType, que direcciona el grupo de rutas de enrutamiento correspondiente en la configuración del PDU Router ([SWS_PduR_00615]). La invocación no tiene valor de retorno y está disponible a través del archivo de cabecera PduR.h ([SWS_PduR_00615]).
Para un uso sin errores, los estados del sistema y los límites de los parámetros son determinantes: antes de la invocación, el módulo PduR debe estar completamente inicializado, ya que la ejecución en estado no inicializado desencadena el error PDUR_E_UNINIT ([SWS_PduR_00100]). Si se transfiere a la función PduR_EnableRouting un identificador de tabla de enrutamiento o de grupo de rutas no válido, esto provoca el error PDUR_E_ROUTING_PATH_GROUP_ID_INVALID con el valor de error 0x08 ([SWS_PduR_00100]).
En cuanto a la concurrencia, la interfaz está declarada como reentrante ([SWS_PduR_00615]), por lo que las invocaciones paralelas para el control de grupos de rutas son admisibles por principio. En el sistema global, la función sirve para la habilitación dinámica de relaciones de comunicación; presumiblemente, el servicio es activado típicamente por instancias superiores como el gestor de modos para activar rutas de enrutamiento en tiempo de ejecución en función de los estados del sistema o de la red. Pregunta Q-365f4b81f59f3511 (abierta)
Nota de uso generada automáticamente a partir de la especificación AUTOSAR Classic (Release R20-11).
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 79b319e1f13bProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función síncrona PduR_DisableRouting sirve para desactivar un grupo de rutas de enrutamiento configurado ([SWS_PduR_00617]). Está diseñada como reentrante y no posee valor de retorno ([SWS_PduR_00617]).
Parámetros y comportamiento
id (PduR_RoutingPathGroupIdType): Identificación del grupo de rutas de enrutamiento que se va a desactivar, tal como está definido en la configuración del PDU Router ([SWS_PduR_00617]).
initialize (boolean): Controla el comportamiento del búfer al desactivar. Si se transfiere true, los búferes individuales (single-buffers) se inicializan a su valor predeterminado; con false, los búferes individuales mantienen su valor actual ([SWS_PduR_00617]).
Tratamiento de errores y condiciones límite
En caso de error, según la tabla de errores se definen códigos de error específicos ([SWS_PduR_00100]):
Si se invoca la función sin que el módulo esté inicializado, está previsto el código de error PDUR_E_UNINIT (0x01) ([SWS_PduR_00100]).
Si se transfiere a PduR_DisableRouting una tabla de enrutamiento o una ID de grupo no válida, se especifica el error PDUR_E_ROUTING_PATH_GROUP_ID_INVALID (0x08) ([SWS_PduR_00100]).
La función está disponible a través del encabezado PduR.h ([SWS_PduR_00617]).
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9763b14fa079Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El tipo de enumeración PduR_StateType especifica según [SWS_PduR_00742] los estados del router de PDU. El tipo de datos se pone a disposición a través del archivo de cabecera PduR.h y sirve en el router de PDU como base formal tipada para representar el estado de inicialización correspondiente dentro del módulo, así como para los componentes llamadores.
Según el requisito [SWS_PduR_00324], el módulo del router de PDU consta exactamente de dos estados de funcionamiento, que quedan determinados por los valores de enumeración de PduR_StateType. El rango de valores definido según [SWS_PduR_00742] comprende los siguientes valores:
PDUR_UNINIT: Identifica el estado en el que el router de PDU no está inicializado ([SWS_PduR_00742]).
PDUR_ONLINE: Señaliza que el router de PDU se ha inicializado con éxito y está listo para el servicio ([SWS_PduR_00742]).
En el marco de la interacción de los requisitos de especificación, PduR_StateType actúa como definición vinculante para el modelo de estados interno y externo del router de PDU ([SWS_PduR_00324]). Dado que el rango de valores según [SWS_PduR_00742] está limitado exclusivamente a PDUR_UNINIT y PDUR_ONLINE, la especificación distingue aquí estrictamente entre el estado inicial no inicializado y el estado tras una inicialización correcta. No se prevén fases intermedias adicionales, modos de funcionamiento parciales ni estados de error específicos en el rango de valores de PduR_StateType.
Nota de uso generada automáticamente a partir de la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
Request a governed re-review of this record. The record is not changed immediately.
Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán