AUTOSAR_SWS_LINInterface
FIG-c74fb632674d4982
544 × 954 px
1 Release(s)
Figure 6: LIN Transport Protocol state-machine
SHA-256 Inhalts-Fingerabdruck:
c74fb632674d49820d193d96fc7fbd9b37cba80ae893842afd6bbbfed9e893d9
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: UML-Zustandsautomat (State Machine Diagram) mit hierarchischer Zustandsschachtelung (Composite State).
- Architektur-Kontext: Spezifiziert den Lebenszyklus und die Kanalabwicklung des LIN Transport Protocol (LinTp), eingebettet im Communication Stack (ComStack) der AUTOSAR Classic Platform (SWS LIN Interface / LinTp).
- Funktionaler Zweck: Abwicklung segmentierter Diagnosenachrichten (UDS on LIN via MasterReq- / SlaveResp-Frames gem. ISO 17987 bzw. LIN 2.1). Vermittelt zwischen dem PDU Router (PduR) und der LIN-Treiber-/Interface-Schicht (LinIf / Lin).
2. Komponenten, Entitäten & Schnittstellen
- Modulzustände (Global Lifecycle):
LINTP_UNINIT: Modul ist nicht initialisiert; Speicher/Deskriptoren sind uninitialisiert.LINTP_INIT: Zusammengesetzter Zustand (Composite State), repräsentiert das betriebsbereite Modul.
- Kanal-/Transaktionszustände (Sub-States innerhalb
LINTP_INIT):LINTP_CHANNEL_IDLE: Kanal ist betriebsbereit, wartet auf Sendeanforderungen oder eingehende Diagnose-Frames.LINTP_CHANNEL_BUSY: Kanal wickelt eine aktive TP-Übertragung (Tx oder Rx) ab (Single FrameSF, First FrameFFoder Consecutive FramesCF).
- Schnittstellen & Transitionstrigger:
LinTp_Init: Synchroner Lebenszyklus-Aufruf (durch BSW Mode Manager / EcuM) zur Initialisierung der Steuerstrukturen.LinTp_Shutdown: Synchroner Deinitialisierungs-Aufruf; führt zurück nachLINTP_UNINIT.LIN TP message start: Interner Event-Trigger, initiiert viaLinTp_Transmit()(Tx) oder Empfang einesSF/FFinLinIf_LinTpRxIndication()(Rx).LIN TP message end: Interner Event-Trigger, ausgelöst durch erfolgreiche Übertragung/Empfang des letzten Frames, Fehlerabbruch oder Timer-Ablauf.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase:
- Nach Systemstart verharrt LinTp in
LINTP_UNINIT. - Der Aufruf von
LinTp_Init()versetzt das Modul inLINTP_INITund nimmt den initialen SubzustandLINTP_CHANNEL_IDLEein.
- Nach Systemstart verharrt LinTp in
- Kompression auf Kanalebene (Transaktionsbetrieb):
- Start (
LINTP_CHANNEL_IDLE→LINTP_CHANNEL_BUSY):- Tx-Pfad: Aufruf von
LinTp_Transmit()durch den PduR. Sofern der Kanal IDLE ist, schaltet der Zustand auf BUSY;LinIfwird zur Bereitstellung der Diagnose-Schedule-Tabelle getriggert. - Rx-Pfad:
LinIfsignalisiert einen MasterReq- oder SlaveResp-Header; ein gültiger PCI-Header (SFoderFF) schaltet den Kanal auf BUSY.
- Tx-Pfad: Aufruf von
- Abwicklung im BUSY-Zustand:
- Blockierende Segmentierung/Reassemblierung.
- Iteratives Kopieren der Nutzdaten via PduR-Schnittstellen (
PduR_LinTpCopyTxData/PduR_LinTpCopyRxData). - Überwachung der Protokoll-Timer (N_As, N_Ar, N_Cs, N_Cr).
- Start (
- Abschluss & Fehlerbehandlung (
LINTP_CHANNEL_BUSY→LINTP_CHANNEL_IDLE):- Erfolg: Empfang/Versand des letzten
CFquittiert viaPduR_LinTpRxIndication(NTFRSLT_OK)bzw.PduR_LinTpTxConfirmation(NTFRSLT_OK). - Abbruchbedingungen: Timeout (N_Ax / N_Cx Expiry), falsche Sequence Number (
SN), Pufferüberlauf (BUFREQ_E_NOT_OK) oder Abbruch überLinTp_CancelTransmit(). - Alle Pfade emittieren
LIN TP message endund setzen den Kanal zurück aufLINTP_CHANNEL_IDLE.
- Erfolg: Empfang/Versand des letzten
- Terminierung:
- Ausführung von
LinTp_Shutdown()überführt das Modul unverzüglich zurück nachLINTP_UNINIT; laufende Sessions werden hart abgebrochen.
- Ausführung von
4. Normative Relevanz & Entwickler-Hinweise
- DET-Überwachung (
LINTP_E_UNINIT):- Sämtliche API-Aufrufe (z. B.
LinTp_Transmit,LinTp_GetVersionInfo) im ZustandLINTP_UNINITmüssen bei aktiviertem Development Error Detection (LINTP_DEV_ERROR_DETECT == STD_ON) mit dem FehlercodeLINTP_E_UNINITan das DET gemeldet werden undE_NOT_OKzurückgeben.
- Sämtliche API-Aufrufe (z. B.
- Single-Channel-Exklusivität & Reentrancy:
- Auf einem LIN-Cluster existiert genau ein logischer TP-Kanal (Master-Slave-Bus). Im Zustand
LINTP_CHANNEL_BUSYist der Kanal nicht reentrant für neue Transaktionen. - Ein erneuter Aufruf von
LinTp_Transmit()währendBUSYmuss synchron mitE_NOT_OKabgewiesen werden (BUFREQ_E_BUSY).
- Auf einem LIN-Cluster existiert genau ein logischer TP-Kanal (Master-Slave-Bus). Im Zustand
- Schedule-Synchronisation mit LinIf:
- Der Übergang nach
LINTP_CHANNEL_BUSYerfordert die koordinierte Umschaltung der LIN-Schedule-Tabelle imLinIfauf die Diagnose-Slots (0x3C/0x3D). Erst bei Rückkehr inLINTP_CHANNEL_IDLEkann die Applikations-Schedule wieder aktiviert werden.
- Der Übergang nach
- Versionsspezifische Normierung (R3.x / R4.0 vs. R4.2+):
- Die gezeigte Schnittstelle
LinTp_Shutdown()ist spezifisch für die frühen AUTOSAR-Releases (R3.0–R4.0). In späteren Releases (ab R4.1/R4.2) wurde die Shutdown-Sequenz im Zuge der BSW-Lifecycle-Harmonisierung weitgehend durchLinTp_DeInit()ersetzt bzw. direkt im LinIf gekapselt.
- Die gezeigte Schnittstelle
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.