Encaminha I-PDUs inalteradas entre módulos de comunicação superiores e inferiores por meio de tabela de roteamento estática.
GERADO POR IAnão revisadoModelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 3a20c4ee9a26ProcedênciaPerguntas em aberto (1)
Âncora causal: R20-11Válido a partir de R20-11Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Encaminha I-PDUs inalteradas entre módulos de comunicação superiores e inferiores por meio de tabela de roteamento estática.
O PDU Router encaminha I-PDUs entre módulos superiores, como Com e DCM, Communication Interfaces e protocolos de transporte. Ao fazer isso, ele apenas converte os IDs de I-PDU ao longo de caminhos de roteamento configurados e não altera o conteúdo [SWS_PduR_00160]. Suas tarefas incluem transmissão, recepção, TriggerTransmit, transmissões TP segmentadas e gateways com buffer FIFO opcional. O roteamento ocorre exclusivamente no estado PDUR_ONLINE após PduR_Init bem-sucedido [SWS_PduR_00328]. Em tempo de execução, grupos de caminhos de roteamento podem ser comutados via PduR_EnableRouting e PduR_DisableRouting.
O PDU Router encaminha I-PDUs entre módulos superiores, como Com e DCM, Communication Interfaces, como CanIf, FrIf e LinIf, bem como protocolos de transporte. Ao fazer isso, ele não altera as I-PDUs [SWS_PduR_00160] e roteia apenas ao longo de caminhos de roteamento configurados [SWS_PduR_00162]. Sua função essencial é a conversão dos IDs de I-PDU no caminho de envio, bem como no caminho de confirmação e indicação [SWS_PduR_00766]. As interfaces são genéricas; os placeholders <Up>, <Lo> e <LoTp> resultam da configuração PduRBswModules[SWS_PduR_00504].
Diagrama de contexto: o PduR fica situado entre módulos superiores e módulos IF ou TP; BswM comuta grupos de caminhos, erros vão para o DET. Fontes: [SWS_PduR_00504], SWS PDU Router p. 16
O PduR reconhece apenas os estados PDUR_UNINIT e PDUR_ONLINE[SWS_PduR_00324]. O roteamento ocorre exclusivamente em PDUR_ONLINE[SWS_PduR_00328]. Ele chega até lá através de PduR_Init(ConfigPtr)[SWS_PduR_00334]. Antes disso, todas as funções, exceto PduR_Init e PduR_GetVersionInfo, reportam o erro PDUR_E_UNINIT, desde que a detecção de erros esteja ativa [SWS_PduR_00119].
Como gateway, ele armazena em buffer em uma FIFO sob demanda [SWS_PduR_00785]. Ele pode retransmitir I-PDUs de TP on-the-fly a partir de um limiar para exatamente um destino [SWS_PduR_00317][SWS_PduR_00708].
Em tempo de execução, PduR_EnableRouting e PduR_DisableRouting comutam grupos inteiros de caminhos de roteamento [SWS_PduR_00615][SWS_PduR_00617], tipicamente controlados pelo BswM. Chamadas em um caminho desativado terminam com E_NOT_OK[SWS_PduR_00717]. Erros de desenvolvimento como PDUR_E_PDU_ID_INVALID são reportados pelo PduR ao DET [SWS_PduR_00100]. Perdas na FIFO são reportadas como PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00670]. Não há tratamento de erros próprio em caminhos de interface; valores de retorno vão para a origem SWS PDU Router p. 46.
Papel e fronteira do sistema: encaminhamento de I-PDUs entre módulos superiores, interfaces e protocolos de transporte
O PDU Router (PduR) é o nó central de encaminhamento da pilha de comunicação clássica. Ele recebe I-PDUs de um módulo de origem e as transfere de forma inalterada e consistente para um ou mais módulos de destino [SWS_PduR_00160]. O roteamento é realizado exclusivamente ao longo dos caminhos de roteamento configurados [SWS_PduR_00162]. Um caminho é definido de forma unívoca por duas informações: o ID de I-PDU de origem da configuração do PduR e os IDs de I-PDU de destino das configurações dos módulos de destino chamados [SWS_PduR_00161]. A função essencial do PduR é, portanto, a conversão de IDs de I-PDU. Ela se aplica tanto ao caminho de envio quanto ao caminho de confirmação e indicação [SWS_PduR_00766]. Cada módulo escolhe seus Handle-IDs por conta própria; a configuração os vincula através da Pdu «global» ECU Configuration Fig. 3.13 p. 192.
Acima do PduR situam-se módulos como Com e DCM. Abaixo situam-se Communication Interfaces como CanIf, FrIf e LinIf, bem como protocolos de transporte como CanTp, FrTp e LinTp SWS PDU Router p. 24. As interfaces são definidas de forma genérica. Os marcadores de posição <Up>, <Lo> e <LoTp> são substituídos por meio da configuração de módulo referenciada em PduRBswModules, e em CDDs por meio de seu apiServicePrefix[SWS_PduR_00504]SWS PDU Router Fig. 10.2 p. 95. Se um módulo inferior suportar tanto TP quanto IF, são adicionados os infixos Tp e If[SWS_PduR_00800].
Se PduRZeroCostOperation estiver definido e todas as rotas de roteamento forem pré-compilação, os módulos vizinhos podem chamar um ao outro diretamente [SWS_PduR_00287]. Se pelo menos uma rota não for de pré-compilação, o gerador deve reportar um erro [SWS_PduR_00619]SWS PDU Router p. 56. O gerador deve otimizar recursos não utilizados, ou seja, TP, IF, gateway e FIFO [SWS_PduR_00764].
Ciclo de vida: de PDUR_UNINIT via PduR_Init para PDUR_ONLINE
Define os valores padrão configurados dos buffers de transmissão [SWS_PduR_00308].
Ativa os grupos de rotas de roteamento de acordo com o parâmetro enable-at-start [SWS_PduR_00709]. Versões posteriores denominam este parâmetro PduRIsEnabledAtInitSWS PDU Router p. 131.
Antes da inicialização, todas as funções, exceto PduR_Init e PduR_GetVersionInfo, reportam o erro PDUR_E_UNINIT, desde que PduRDevErrorDetect esteja ativo [SWS_PduR_00119]. PduR_GetVersionInfo[SWS_PduR_00338] é habilitado via PduRVersionInfoApiSystem Template p. 656.
Os dados de post-build localizam-se em PduR_PBConfigType e são implementados em PduR_PBcfg.c [SWS_PduR_00241][SWS_PduR_00743]. Eles são identificados exclusivamente através de PduRConfigurationId[SWS_PduR_00281]. Este identificador é fornecido por PduR_GetConfigurationId[SWS_PduR_00341][SWS_PduR_00280] como um PduR_PBConfigIdType baseado em uint16; uma ECU pode conter várias configurações selecionáveis [SWS_PduR_00771]. Tabelas de roteamento podem ser atualizadas no momento do post-build [SWS_PduR_00295], contudo apenas no estado não inicializado [SWS_PduR_00296]. A necessidade de memória pode crescer com uma nova configuração e deve, portanto, ser planejada no momento do projeto SWS PDU Router p. 160.
Rotas de Communication Interface: Transmit, TriggerTransmit e confirmações
Se um módulo superior chamar PduR_<User:Up>Transmit[SWS_PduR_00406], o PduR chama <Lo>_Transmit para cada destino [SWS_PduR_00625]. Ao fazer isso, ele não armazena em buffer [SWS_PduR_00629]. Para o valor de retorno aplica-se:
No multicast, a camada superior deve fornecer os mesmos dados várias vezes. A solicitação do primeiro destino vai para a camada superior com TP_CONFPENDING[SWS_PduR_00631], todas as demais com TP_DATARETRY[SWS_PduR_00632]. A camada superior recebe uma única <Up>_TpTxConfirmation após a última confirmação. Esta reporta E_OK se pelo menos um destino tiver reportado E_OK[SWS_PduR_00765]SWS PDU Router Fig. 9.10 p. 83.
A recepção TP inicia com PduR_<User:LoTp>StartOfReception[SWS_PduR_00507]. O PduR o encaminha para <Up>_StartOfReception[SWS_PduR_00549] e retorna o seu retorno inalterado [SWS_PduR_00623]. Depois seguem dois encaminhamentos:
Operação de gateway: encaminhamento imediato, buffer FIFO e TP on-the-fly
Entre Communication Interfaces, o PduR roteia 1:n [SWS_PduR_00436] e com encaminhamento imediato, ou seja, sem formação de taxa própria [SWS_PduR_00437]. O roteamento por gateway ocorre apenas IF↔IF ou TP↔TP [SWS_PduR_00638]. Para o comprimento repassado aplica-se:
Sem armazenamento em buffer, o PduR repassa o mínimo entre o comprimento recebido e o comprimento de destino configurado [SWS_PduR_00783].
Com armazenamento em buffer, ele copia no máximo PduRPduMaxLength e descarta o restante [SWS_PduR_00746].
Uma I-PDU pode ir simultaneamente de forma local para Com e ser encaminhada para um segundo CAN SWS PDU Router Fig. 9.14 p. 114.
A forma como o destino obtém os dados é definida por PduRDestPduDataProvision:
Com PDUR_DIRECT, o próprio destino copia os dados no transmit [SWS_PduR_00303].
Para gateways TP existem dois métodos. No Direct Gatewaying, <DstLoTp>_Transmit inicia na RxIndication com E_OK[SWS_PduR_00551]. No On-the-fly-Gatewaying, o reenvio já inicia assim que PduRTpThreshold for atingido [SWS_PduR_00317]. Nesse caso, apenas um destino é permitido [SWS_PduR_00708], e dados já enviados não são repetidos [SWS_PduR_00707]SWS PDU Router p. 58. O PduR seleciona o buffer de acordo com o tamanho:
Se a mensagem couber em PduRPduMaxLength, ele utiliza o buffer dedicado [SWS_PduR_00797].
Caso contrário, ele obtém dinamicamente um buffer a partir de PduRTxBuffer[SWS_PduR_00798].
Com a TxConfirmation, ele libera o buffer [SWS_PduR_00637]. Se a I-PDU também tiver de ser recebida localmente, o PduR chama <UpTp>_StartOfReception, <UpTp>_CopyRxData e <UpTp>_RxIndication nesta ordem [SWS_PduR_00789]. Para isso, ele precisa armazenar em buffer, pois o DCM nada sabe sobre o gateway SWS PDU Router p. 112.
Grupos de rotas de roteamento: comutar o roteamento em tempo de execução
Grupos de rotas de roteamento agrupam rotas por rede ou tipo de PDU. Eles são comutados tipicamente pelo BswM SWS PDU Router p. 69. Para isso servem PduR_EnableRouting(id)[SWS_PduR_00615] e PduR_DisableRouting(id, initialize)[SWS_PduR_00617]; o identificador é do tipo uint16[SWS_PduR_00654]. A ativação tem efeito imediato [SWS_PduR_00715]. Ao desativar, aplicam-se as seguintes regras:
initialize decide se buffers individuais são redefinidos para o valor padrão [SWS_PduR_00617].
FIFOs das rotas interrompidas são esvaziados, e o PduR reporta PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00663].
O Mode Management Guide recomenda os grupos de rotas para I-PDUs sem grupo de I-PDU de Com, como por exemplo para LdCom. A comutação ocorre através de regras do BswM, por exemplo dependendo do estado de partial network Mode Management Guide p. 50. Para isso, a ação do BswM BswMPduRouterControl chama PduR_EnableRouting ou PduR_DisableRoutingSWS BSW Mode Manager p. 145. No roteamento n:1 para um módulo local, no máximo uma rota pode estar ativa em tempo de execução System Template p. 736[SWS_PduR_00615].
Os seguintes trechos fundamentam as afirmações deste guia. As sequências no capítulo 9 da especificação as ilustram, como SWS PDU Router Fig. 9.5 p. 100.
Guia gerado por IA com base nos requisitos do SWS PDU Router (R20-11) e trechos de documentos associados; normativos são exclusivamente os requisitos vinculados. Declarações marcadas como interpretação devem ser verificadas com base na especificação.
PDU Router (PduR)
The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8eca52c90f1cProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função síncrona e não reentrante PduR_Init inicializa o roteador de PDU [SWS_PduR_00334]. Como parâmetro, ela recebe com ConfigPtr um ponteiro para a configuração pós-compilação do módulo (PduR_PBConfigType) e não fornece valor de retorno [SWS_PduR_00334]. No âmbito da inicialização, PduR_Init pré-aloca todos os buffers de transmissão de PDU com os valores padrão configurados [SWS_PduR_00308].
Interação e condições de ordenação
Após a inicialização (power-on), o módulo se encontra inicialmente no estado PDUR_UNINIT[SWS_PduR_00325]. PduR_Init deve ser chamada antes de todas as outras funções do módulo, já que outras interfaces — com exceção de PduR_GetVersionInfo — reportam o erro PDUR_E_UNINIT por meio do DET no estado não inicializado, desde que PduRDevErrorDetect esteja ativado [SWS_PduR_00119].
Tratamento de erros e simultaneidade
Se PduR_Init for chamada em um estado diferente de PDUR_UNINIT, isso será considerado como PDUR_E_UNINIT[SWS_PduR_00100]. No caso de um ponteiro de configuração inválido ou da passagem de um ponteiro nulo, aplicam-se os códigos de erro PDUR_E_INIT_FAILED ou PDUR_E_PARAM_POINTER, respectivamente [SWS_PduR_00100]. Devido à falta de reentrância, não pode ocorrer nenhuma chamada paralela da rotina de inicialização [SWS_PduR_00334].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e3aad02fdb37ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função síncrona PduR_EnableRouting (ID de serviço 0xf3) serve para a ativação direcionada de um grupo de caminhos de roteamento definido no roteador de PDU ([SWS_PduR_00615]). Como único parâmetro, aceita o identificador de grupo id do tipo PduR_RoutingPathGroupIdType, o qual endereça o respetivo grupo de caminhos de roteamento na configuração do roteador de PDU ([SWS_PduR_00615]). A chamada não possui valor de retorno e está disponível através do ficheiro de cabeçalho PduR.h ([SWS_PduR_00615]).
Para uma utilização isenta de erros, os estados do sistema e os limites dos parâmetros são determinantes: antes da chamada, o módulo PduR deve estar completamente inicializado, uma vez que a execução no estado não inicializado desencadeia o erro PDUR_E_UNINIT ([SWS_PduR_00100]). Caso seja passado à função PduR_EnableRouting um identificador de tabela de roteamento ou de grupo de caminhos inválido, isso resulta no erro PDUR_E_ROUTING_PATH_GROUP_ID_INVALID com o valor de erro 0x08 ([SWS_PduR_00100]).
No que diz respeito à concorrência, a interface está declarada como reentrante ([SWS_PduR_00615]), pelo que chamadas paralelas para o controlo de grupos de caminhos são, por princípio, admissíveis. No sistema global, a função serve para a ativação dinâmica de relações de comunicação; presume-se que o serviço seja tipicamente acionado por instâncias superiores, como o gestor de modos, para ativar caminhos de roteamento em tempo de execução consoante os estados do sistema ou da rede. Pergunta Q-365f4b81f59f3511 (aberta)
Nota de utilização gerada automaticamente com base na especificação AUTOSAR Classic (Release R20-11).
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 79b319e1f13bProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função síncrona PduR_DisableRouting serve para desativar um grupo de caminhos de roteamento configurado ([SWS_PduR_00617]). Foi concebida como reentrante e não possui valor de retorno ([SWS_PduR_00617]).
Parâmetros e comportamento
id (PduR_RoutingPathGroupIdType): identificação do grupo de caminhos de roteamento a desativar, conforme definido na configuração do roteador de PDU ([SWS_PduR_00617]).
initialize (boolean): controla o comportamento do buffer aquando da desativação. Ao passar true, os buffers únicos são inicializados para o respetivo valor padrão; com false, os buffers únicos mantêm o seu valor atual ([SWS_PduR_00617]).
Tratamento de erros e condições de contorno
Em caso de erro, de acordo com a tabela de erros, estão definidos códigos de erro específicos ([SWS_PduR_00100]):
Se a função for chamada sem que o módulo esteja inicializado, está previsto o código de erro PDUR_E_UNINIT (0x01) ([SWS_PduR_00100]).
Se for passada a PduR_DisableRouting uma tabela de roteamento ou um ID de grupo inválido, está especificado o erro PDUR_E_ROUTING_PATH_GROUP_ID_INVALID (0x08) ([SWS_PduR_00100]).
A função está disponível por meio do cabeçalho PduR.h ([SWS_PduR_00617]).
Esta nota de uso foi gerada automaticamente com base nos requisitos da especificação.
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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9763b14fa079Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O tipo de enumeração PduR_StateType especifica os estados do roteador de PDU de acordo com [SWS_PduR_00742]. O tipo de dados é disponibilizado por meio do arquivo de cabeçalho PduR.h e serve no roteador de PDU como base tipificada formal para a representação do respectivo estado de inicialização dentro do módulo, bem como para componentes chamadores.
De acordo com o requisito [SWS_PduR_00324], o módulo roteador de PDU é composto por exatamente dois estados operacionais, que são definidos pelos valores de enumeração de PduR_StateType. A faixa de valores definida segundo [SWS_PduR_00742] compreende os seguintes valores:
PDUR_UNINIT: indica o estado no qual o roteador de PDU não está inicializado ([SWS_PduR_00742]).
PDUR_ONLINE: sinaliza que o roteador de PDU foi inicializado com sucesso e está operacional ([SWS_PduR_00742]).
No âmbito da interação dos requisitos de especificação, PduR_StateType atua como uma definição vinculativa para o modelo de estados interno e externo do roteador de PDU ([SWS_PduR_00324]). Como a faixa de valores segundo [SWS_PduR_00742] é restrita exclusivamente a PDUR_UNINIT e PDUR_ONLINE, a especificação distingue estritamente entre o estado inicial não inicializado e o estado após a inicialização bem-sucedida. Estágios intermediários adicionais, modos operacionais parciais ou estados de erro específicos não estão previstos na faixa de valores de PduR_StateType.
Nota de utilização gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade 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 em alemão