DEENESPTFRRUARHIKOZHNL

AUTOSAR Classic LIN

Das LIN-Cluster umfasst Low-Cost-Subbus-Kommunikation für Karosserie- und Komfortfunktionen inklusive Treiber, LinIf-Schedule-Tabellen-Handling, Transceiver-Steuerung und State-Management.

विषय मानचित्र

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

Lin

Lin_CheckWakeup फ़ंक्शन

This function checks if a wakeup has occurred on the addressed LIN channel.

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GetStatus फ़ंक्शन

Service Lin_GetStatus.

Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);
Lin_GetVersionInfo फ़ंक्शन

Returns the version information of this module.

void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Lin_GoToSleep फ़ंक्शन

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

Std_ReturnType Lin_GoToSleep (uint8 Channel);
Lin_GoToSleepInternal फ़ंक्शन

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);
Lin_Init फ़ंक्शन

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);
Lin_SendFrame फ़ंक्शन

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Lin_Wakeup फ़ंक्शन

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

Std_ReturnType Lin_Wakeup (uint8 Channel);
Lin_WakeupInternal फ़ंक्शन

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

Std_ReturnType Lin_WakeupInternal (uint8 Channel);
Lin_ConfigType टाइप

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

This type is used to specify the Checksum model to be used for the LIN Frame.

Lin_FrameDlType टाइप

This type is used to specify the number of SDU data bytes to copy.

Lin_FramePidType टाइप

Represents all valid protected identifier used by Lin_ Send Frame().

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

Lin_PduType टाइप

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

Lin_SlaveErrorType टाइप

This type represents the slave error types that are detected during header reception and response transmission / reception.

Lin_StatusType टाइप

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().

LinIf

<User_ResponseErrorSignalChanged> फ़ंक्शन

Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);
<User_RxIndication> फ़ंक्शन

Indication of a received PDU from a lower layer communication interface module.

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
<User_SaveConfigurationRequest> फ़ंक्शन

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);
<User_TriggerTransmit> फ़ंक्शन

Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);
<User_TxConfirmation> फ़ंक्शन

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);
LinIf_CheckWakeup फ़ंक्शन

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);
LinIf_EnableBusMirroring फ़ंक्शन

Enables or disables mirroring for a LIN channel.

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);
LinIf_GetConfiguredNAD फ़ंक्शन

Reports the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);
LinIf_GetPIDTable फ़ंक्शन

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);
LinIf_GetTrcvMode फ़ंक्शन

Returns the actual sta te of a LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);
LinIf_GetTrcvWakeupReason फ़ंक्शन

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);
LinIf_GetVersionInfo फ़ंक्शन

Returns the version information of this module.

void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinIf_GotoSleep फ़ंक्शन

Initiates a transition into the Sleep Mode on the selected channel.

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);
LinIf_HeaderIndication फ़ंक्शन

The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);
LinIf_Init फ़ंक्शन

Initializes the LIN Interface.

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);
LinIf_LinErrorIndication फ़ंक्शन

The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);
LinIf_RxIndication फ़ंक्शन

The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);
LinIf_ScheduleRequest फ़ंक्शन

Requests a schedule table to be executed. Only used for LIN master nodes.

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);
LinIf_SetConfiguredNAD फ़ंक्शन

Sets the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);
LinIf_SetPIDTable फ़ंक्शन

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);
LinIf_SetTrcvMode फ़ंक्शन

Set the given LIN transceiver to the given mode.

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);
LinIf_SetTrcvWakeupMode फ़ंक्शन

This API enables, disables and cl ears the notification for wakeup events on the addressed network

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);
LinIf_Transmit फ़ंक्शन

Re quests transmission of a PDU.

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
LinIf_TxConfirmation फ़ंक्शन

The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_TxConfirmation (NetworkHandleType Channel);
LinIf_Wakeup फ़ंक्शन

Initiates the wake up process.

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);
LinIf_WakeupConfirmation फ़ंक्शन

The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);
LinTp_ChangeParameter फ़ंक्शन

Request to change a specific transport protocol parameter (e.g. block size).

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
LinTp_GetVersionInfo फ़ंक्शन

Returns the version information of this module.

void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTp_Init फ़ंक्शन

Initializes the LIN Transport Layer.

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);
LinTp_Shutdown फ़ंक्शन

Shutdowns the LIN TP.

void LinTp_Shutdown (void);
LinTp_Transmit फ़ंक्शन

Requests transmission of a PDU.

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
LinIf_ConfigType टाइप

A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.

LinIf_SchHandleType टाइप

Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255

LinTp_ConfigType टाइप

This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification

LinTp_Mode टाइप

This type denotes which Schedule table can be requested by LIN TP during diagnostic session

LinSM

LinSM_GetCurrentComMode फ़ंक्शन

Function to query the current communication mode.

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);
LinSM_GetVersionInfo फ़ंक्शन

-

void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinSM_GotoSleepConfirmation फ़ंक्शन

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);
LinSM_GotoSleepIndication फ़ंक्शन

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

void LinSM_GotoSleepIndication (NetworkHandleType Channel);
LinSM_Init फ़ंक्शन

This function initializes the Lin SM.

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);
LinSM_MainFunction फ़ंक्शन

Periodic function that runs the timers of different request timeouts

void LinSM_MainFunction (void);
LinSM_RequestComMode फ़ंक्शन

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);
LinSM_ScheduleRequest फ़ंक्शन

The upper layer requests a schedule table to be changed on one LIN network.

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);
LinSM_ScheduleRequestConfirmation फ़ंक्शन

The Lin If module will call this callback when the new requested schedule table is active.

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);
LinSM_WakeupConfirmation फ़ंक्शन

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);
LinSM_ConfigType टाइप

Data structure type for the post - build configuration parameters.

LinSM_ModeType टाइप

Type used to report the current mode to the Bsw M

LinTrcv

LinTrcv_CheckWakeup फ़ंक्शन

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);
LinTrcv_GetBusWuReason फ़ंक्शन

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);
LinTrcv_GetOpMode फ़ंक्शन

API detects the actual software state of LIN transceiver driv er.

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);
LinTrcv_GetVersionInfo फ़ंक्शन

This service provides the version information of this module through the parameter "versioninfo".

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTrcv_Init फ़ंक्शन

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);
LinTrcv_SetOpMode फ़ंक्शन

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);
LinTrcv_SetWakeupMode फ़ंक्शन

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);
LinTrcv_ConfigType टाइप

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

This type denotes the wake up reason detected by the LIN transceiver in detail.

क्लस्टर गाइडएआई जनित

वाहन में Local Interconnect Network के माध्यम से सेंसरों और एक्चुएटर्स की लागत-कुशल नेटवर्किंग को सक्षम बनाता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 01a9cd8d631b उद्गम खुले प्रश्न (2)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

वाहन में Local Interconnect Network के माध्यम से सेंसरों और एक्चुएटर्स की लागत-कुशल नेटवर्किंग को सक्षम बनाता है।

मॉड्यूल क्लस्टर LIN Communication मॉड्यूल LinSM, LinIf, LinTrcv और Lin (SWS COMManager पृ. 19) के माध्यम से LIN सब-बस प्रणालियों के मानकीकृत कनेक्शन को कार्यान्वित करता है। यह मास्टर्स में फ़्रेमों के शेड्यूल-आधारित ट्रांसमिशन तथा स्लेव्स में प्रतिक्रियाशील हेडर मूल्यांकन और डेटा ट्रांसमिशन को नियंत्रित करता है ([SWS_LinIf_91004], [SWS_Lin_00168])। साथ ही, क्लस्टर पूर्ण संचार और स्लीप मोड के बीच व्यवस्थित परिवर्तन तथा response_error सिग्नल ([SWS_LinIf_00763]) के माध्यम से स्वायत्त एरर हैंडलिंग का समन्वय करता है।

मॉड्यूल क्लस्टर LIN Communication LIN प्रोटोकॉल का संपूर्ण AUTOSAR कार्यान्वयन प्रदान करता है और इसमें स्टेट मैनेजर LinSM, इंटरफ़ेस LinIf (ट्रांसपोर्ट प्रोटोकॉल LinTp सहित), ट्रांसीवर ड्राइवर LinTrcv तथा MCAL ड्राइवर Lin (SWS COMManager पृ. 19) शामिल हैं। यह सब-नेटवर्क, सेंसरों और एक्चुएटर्स को AUTOSAR संचार मैट्रिक्स से जोड़ता है और स्वायत्त शेड्यूल निष्पादन वाले मास्टर नोड्स और केवल प्रतिक्रियाशील रूप से उत्तर देने वाले स्लेव नोड्स के बीच कड़ाई से अंतर करता है ([SWS_LinIf_00197], [SWS_Lin_00272])।

आर्किटेक्चर डायग्राम: संचार सेवाओं, एब्स्ट्रैक्शन लेयर और MCAL के बीच LIN क्लस्टर की लेयर्ड आर्किटेक्चर और इंटरफ़ेस संबंध। स्रोत: SWS COMManager पृ. 19, AUTOSAR SWS LINInterface पृ. 133।

डेटा ट्रांसमिशन मास्टर ECUs पर Lin_SendFrame के माध्यम से ड्राइवर के आवधिक नियंत्रण और Lin_GetStatus के माध्यम से बाद के स्टेटस पोलिंग द्वारा होता है ([SWS_Lin_00168])। दूसरी ओर, स्लेव पर, ड्राइवर में हेडर का पता चलने पर सिंक्रोनस कॉलबैक LinIf_HeaderIndication ट्रिगर होता है ([SWS_LinIf_91004])। इंटरफ़ेस PID के आधार पर रिसेप्शन, रिस्पॉन्स या अनदेखा करने का निर्णय लेता है और क्रमशः LinIf_RxIndication या LinIf_TxConfirmation ([SWS_LinIf_91005], [SWS_LinIf_91006]) के माध्यम से समाप्ति की पावती देता है। एकीकृत LinTp शेड्यूल टेबल के स्वचालित स्विचिंग के माध्यम से डायग्नोस्टिक संदेशों को संभालता है ([SWS_LinIf_00641])।

ऑपरेटिंग चक्र में, LinSM LINSM_NO_COM और LINSM_FULL_COM ([SWS_LinSM_00026], [SWS_LinSM_00032]) के बीच स्टेट ट्रांज़िशन का समन्वय करता है। वेक-अप Lin_Wakeup ([SWS_Lin_00169]) के माध्यम से बस पल्स द्वारा होता है। स्लीप मोड में संक्रमण मास्टर पर स्लीप फ़्रेम के सक्रिय ट्रांसमिशन द्वारा, स्लेव पर स्लीप कमांड प्राप्त होने के बाद या LinIf_GotoSleep, Lin_GoToSleepInternal और ट्रांसीवर स्लीप कंट्रोल ([SWS_LinSM_00231], [SWS_LinIf_00757]) के माध्यम से बस-आइडल होने पर होता है।

LIN स्लेव पर गो-टू-स्लीप अनुक्रमComMLinSMLinIfLin DriverLinTrcvBswMLinSM_RequestComMode(COMM_NO_COMMUNICATION)E_OK (Modus vorgemerkt)Use Case: बस स्लीप घटना (स्लीप फ़्रेम या बस निष्क्रिय)LinSM_GotoSleepIndication(Channel)LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)E_OK (LIN_CH_SLEEP aktiv)optTransceiver Driver konfiguriertLinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)E_OKLinSM_GotoSleepConfirmation(Channel, success=TRUE)State = LINSM_NO_COMComM_BusSM_ModeIndication(COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(LINSM_NO_COM)

सीक्वेंस डायग्राम: बस-स्लीप सिग्नल के बाद LIN स्लेव के स्लीप स्टेट में प्रवेश करने पर BSW मॉड्यूल का इंटरैक्शन। स्रोत: [SWS_LinSM_91000], [SWS_LinSM_00231], [SWS_LinIf_00757], AUTOSAR SWS LINStateManager पृ. 48।

संचार त्रुटियों को स्लेव्स पर LinIf_LinErrorIndication के माध्यम से कैप्चर किया जाता है और स्वायत्त रूप से मास्टर को response_error सिग्नल में रिपोर्ट किया जाता है ([SWS_LinIf_91007], [SWS_LinIf_00763])। क्रॉस-चैनल सिंक्रोनाइज़ेशन क्षेत्र और चक्रीय कार्यों (LinIf_MainFunction) तथा ड्राइवर ISRs के बीच सख्त अलगाव सिस्टम स्थिरता सुनिश्चित करते हैं ([SWS_LinIf_00384])।

सिस्टम आर्किटेक्चर & मॉड्यूल क्लस्टर की भूमिका

मॉड्यूल क्लस्टर LIN Communication AUTOSAR Classic Basic Software स्टैक में ISO 17987 के अनुसार Local Interconnect Network (LIN) पर मानकीकृत संचार प्रदान करता है। यह मुख्य रूप से वाहन नेटवर्क (AUTOSAR FO Features पृ. 58) में सेंसरों और एक्चुएटर्स को जोड़ने के लिए एक लागत-कुशल सब-बस सिस्टम के रूप में कार्य करता है। क्लस्टर AUTOSAR आर्किटेक्चर की कई परतों में फैला हुआ है: LIN State Manager (LinSM) Communication Services के स्तर पर काम करता है, LIN Interface (LinIf) एकीकृत ट्रांसपोर्ट प्रोटोकॉल (LinTp) सहित Communication Abstraction बनाता है, LIN Transceiver Driver (LinTrcv) ECU Abstraction का हिस्सा है और LIN Driver (Lin) Microcontroller Abstraction Layer (MCAL) (SWS COMManager पृ. 19) में हार्डवेयर-निकट मॉड्यूल के रूप में रहता है।

आर्किटेक्चर की दृष्टि से, क्लस्टर मास्टर और स्लेव नोड्स के बीच कड़ाई से अंतर करता है। एक LIN मास्टर शेड्यूल टेबल के माध्यम से बस ट्रैफ़िक को स्वायत्त रूप से नियंत्रित करता है और सभी हेडर उत्पन्न करता है, जबकि LIN स्लेव प्राप्त हेडर पर पूरी तरह से प्रतिक्रियाशील प्रतिक्रिया देते हैं या संकेतों का मूल्यांकन करते हैं ([SWS_LinIf_00197], [SWS_Lin_00272])। ISO 14229 के अनुसार डायग्नोस्टिक और ट्रांसपोर्ट कार्यों के लिए, LIN Interface TP कार्यक्षमता को समाहित करता है, जो PduR और DCM के माध्यम से खंडित डायग्नोस्टिक संदेशों (Master Request Frame MRF और Slave Response Frame SRF) को संसाधित करता है ([SWS_LinIf_00351], [SWS_LinIf_00629])। बाह्य रूप से, क्लस्टर Communication Manager (ComM), Basic Software Mode Manager (BswM), PDU Router (PduR) और ECU State Manager (EcuM) (SWS COMManager पृ. 19) के साथ गहन रूप से इंटरैक्ट करता है।

आर्किटेक्चर डायग्राम: संचार सेवाओं, एब्स्ट्रैक्शन लेयर और MCAL के बीच LIN क्लस्टर की लेयर्ड आर्किटेक्चर और इंटरफ़ेस संबंध। स्रोत: SWS COMManager पृ. 19, AUTOSAR SWS LINInterface पृ. 133।

मॉड्यूल के बीच परस्पर क्रिया और इंटरैक्शन पथ

क्लस्टर में इंटरैक्शन पथ नोड की भूमिका के आधार पर मौलिक रूप से भिन्न होते हैं। LIN मास्टर में, LIN Interface अपने आवधिक टास्क के माध्यम से सक्रिय शेड्यूल टेबल के निष्पादन की शुरुआत करता है। देय सेंड-फ़्रेमों के लिए, LinIf ऊपरी परत के ट्रिगर-ट्रांसमिट तंत्र के माध्यम से पेलोड प्राप्त करता है और Lin_PduType संरचना को Lin_SendFrame ([SWS_Lin_00232], SWS LINInterface पृ. 37) के माध्यम से LIN ड्राइवर को सौंपता है। ड्राइवर हेडर और डेटा को नॉन-ब्लॉकिंग रूप से प्रसारित करता है ([SWS_Lin_00027])। अधिकतम फ़्रेम रनटाइम की समाप्ति के बाद, LinIf Lin_GetStatus ([SWS_Lin_00168], SWS LINInterface पृ. 35) के माध्यम से ट्रांसमिशन परिणाम निर्धारित करता है। रिसेप्शन स्लॉट के मामले में, LinIf ड्राइवर द्वारा बफ़र में संग्रहीत डेटा प्राप्त करता है और इसे ऊपरी परतों पर अग्रेषित करता है ([SWS_Lin_00233])।

एक LIN स्लेव पर, डेटा पथ इवेंट-संचालित तरीके से निष्पादित होता है: यदि MCAL ड्राइवर Lin हार्डवेयर पर एक वैध ब्रेक, सिंक और PID हेडर का पता लगाता है, तो यह सिंक्रोनस रूप से कॉलबैक LinIf_HeaderIndication ([SWS_Lin_00280], [SWS_LinIf_91004]) को कॉल करता है। इंटरफ़ेस आंतरिक PID तालिका ([SWS_LinIf_00816], [SWS_LinIf_00823]) के आधार पर संरक्षित पहचानकर्ता (PID) की जाँच करता है। यदि यह एक ट्रांसमिट फ़्रेम है, तो LinIf पेलोड प्राप्त करता है, रिस्पॉन्स प्रकार को LIN_FRAMERESPONSE_TX पर कॉन्फ़िगर करता है और ड्राइवर को बफ़र में डेटा उपलब्ध कराता है ([SWS_Lin_00230])। यदि फ़्रेम को रिसेप्शन के रूप में कॉन्फ़िगर किया गया है, तो ड्राइवर पूर्ण बाइट रिसेप्शन के बाद LinIf_RxIndication ([SWS_LinIf_91005]) के माध्यम से सफलता की रिपोर्ट करता है, जिसके बाद LinIf डेटा को PDU Router पर अग्रेषित करता है। प्रेषित स्लेव प्रतिक्रियाओं की पावती LinIf_TxConfirmation ([SWS_LinIf_91006]) के माध्यम से होती है।

LIN इंटरफ़ेस के माध्यम से ट्रांसीवर नियंत्रण भी पारदर्शी रूप से समाहित होता है: LinIf_SetTrcvMode जैसे मोड अनुरोधों को इंटरफ़ेस द्वारा सिंक्रोनस रूप से LinTrcv_SetOpMode ([SWS_LinIf_00544], [SWS_LinTrcv_00002]) पर अग्रेषित किया जाता है। ट्रांसपोर्ट प्रोटोकॉल लेनदेन में, LinTp BswM_LinTp_RequestMode के माध्यम से एप्लिकेशन मोड (LINTP_APPLICATIVE_SCHEDULE), डायग्नोस्टिक रिक्वेस्ट (LINTP_DIAG_REQUEST) और डायग्नोस्टिक रिस्पॉन्स (LINTP_DIAG_RESPONSE) ([SWS_LinIf_00641], [SWS_LinIf_00642], [SWS_LinIf_00643]) के बीच मास्टर की शेड्यूल टेबल के लक्षित स्विचिंग को नियंत्रित करता है।

LIN-Slave Frame-Verarbeitung (Rx / Tx)LinController UARTLin DriverLinIfPduR LSduRInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)EvaluatePID(PduPtr->Pid)altप्रतिक्रिया ट्रांसमिट डेटा (TX) हैLSduR_LinIfTriggerTransmit(PduInfoPtr)E_OK (Sendedaten bereitgestellt)PduPtr->Drc = LIN_FRAMERESPONSE_TXE_OK (PduPtr konfiguriert)Transmit Response BytesInterrupt (Tx Complete)LinIf_TxConfirmation(Channel)प्रतिक्रिया प्राप्त डेटा (RX) हैPduPtr->Drc = LIN_FRAMERESPONSE_RXE_OK (प्राप्ति के लिए तैयार)Interrupt (Rx Complete)LinIf_RxIndication(Channel, SduPtr)LSduR_LinIfRxIndication(Channel, PduInfoPtr)

सीक्वेंस डायग्राम: एक LIN स्लेव पर हेडर इंडिकेशन, ट्रांसमिट ट्रिगरिंग और रिसेप्शन पावती के दौरान डायनेमिक कंट्रोल और डेटा फ़्लो। स्रोत: [SWS_Lin_00280], [SWS_LinIf_91004], [SWS_LinIf_91005], AUTOSAR SWS LINInterface पृ. 133।

सिंक्रोनाइज़ेशन, री-एंट्रेंसी और टास्क संदर्भ

मॉड्यूल क्लस्टर के भीतर निष्पादन चक्रीय टास्क संदर्भों और हार्डवेयर-निकट इंटरप्ट स्तरों में विभाजित है। LIN Interface में चक्रीय प्रवाह नियंत्रण का मूल शेड्यूल्ड फ़ंक्शन LinIf_MainFunction_<LinIfChannel.ShortName> है, जिसे प्रत्येक कॉन्फ़िगर किए गए LIN चैनल के लिए अलग से इन्स्टेंसिएट किया जाना अनिवार्य है ([SWS_LinIf_00384], [SWS_LinIf_00725])। यह शेड्यूल स्लॉट को आगे बढ़ाने, ड्राइवर से स्थिति पूछताछ करने और ट्रांसपोर्ट प्रोटोकॉल के टाइमआउट हैंडलिंग का कार्य करता है ([SWS_LinIf_00800], SWS LINInterface पृ. 119)। इसके समानांतर, LinSM_MainFunction एसिंक्रोनस चैनल और वेक-अप अनुरोधों के लिए काउंटडाउन और कन्फ़र्मेशन टाइमर का प्रबंधन करता है ([SWS_LinSM_00162], [SWS_LinSM_00159])।

टास्क स्तर के विपरीत, MCAL मॉड्यूल Lin के ड्राइवर रूटीन इंटरप्ट-नियंत्रित नियंत्रक या UART इंटरफ़ेस की उपस्थिति में इंटरप्ट संदर्भ (ISR) में निष्पादित होते हैं (AUTOSAR CP SWS LINDriver पृ. 53)। कॉलबैक LinIf_HeaderIndication, LinIf_RxIndication और LinIf_TxConfirmation सीधे इस ISR संदर्भ से सिंक्रोनस रूप से ट्रिगर होते हैं ([SWS_Lin_00280], [SWS_LinIf_91005], [SWS_LinIf_91006])। इसके लिए LIN Interface में क्रिटिकल सेक्शन (Exclusive Areas) के सख्त संरक्षण की आवश्यकता होती है: LinIf_Transmit, LinIf_GotoSleep, LinIf_ScheduleRequest या LinIf_Wakeup जैसे कंट्रोल कॉल आंतरिक चैनल संरचनाओं को केवल LinIf_MainFunction या ISR कॉलबैक से समानांतर पहुँच से सुरक्षित होने पर ही संशोधित कर सकते हैं (SWS LINInterface पृ. 119)।

रीएंट्रेंसी के संबंध में, मॉड्यूल LinIf और LinSM के API फ़ंक्शन मुख्य रूप से विभिन्न चैनलों या नेटवर्क के लिए रीएंट्रेंट हैं, लेकिन समान चैनल के लिए नॉन-रीएंट्रेंट डिज़ाइन किए गए हैं ([SWS_LinSM_00126], [SWS_LinIf_00201], [SWS_LinIf_00204])। Lin में ड्राइवर सेवाएँ (उदा. Lin_Wakeup, Lin_GoToSleepInternal) भी इसी तरह व्यवहार करती हैं, जिन्हें प्रति भौतिक चैनल कड़ाई से सिंक्रोनाइज़ किया जाना चाहिए ([SWS_Lin_00167], [SWS_Lin_00169])। मल्टी-बाइट FIFO के बिना सरल UART हार्डवेयर के मामले में, LIN ड्राइवर बाइट्स को अस्थायी रूप से सॉफ़्टवेयर में बफ़र करता है ([SWS_Lin_00026]), जिससे Interpretation: उच्च बस लोड के तहत स्लेव नोड्स पर CPU इंटरप्ट लोड में वृद्धि होने की संभावना है। प्रश्न Q-0d07d89d1ade6a01 (खुला)

विशिष्ट जीवन चक्र और परिचालन मोड

सिस्टम स्टार्टअप के दौरान BswM BSW मॉड्यूल को एक पूर्व-निर्धारित श्रृंखला में आरंभ (initialize) करता है: सबसे पहले बेस ड्राइवर Lin_Init और LinTrcv_Init को इनिशियलाइज़ किया जाता है, जिसके बाद LinIf_Init, LinTp_Init और अंत में LinSM_Init (ModemanagementGuide पृ. 54) आते हैं। LinIf_Init सभी मास्टर चैनलों के शेड्यूल को डिफ़ॉल्ट रूप से NULL_SCHEDULE ([SWS_LinIf_00233]) पर सेट करता है और स्लेव्स के लिए पूर्व-कॉन्फ़िगर की गई NAD और PID तालिकाओं को लोड करता है ([SWS_LinIf_00767], [SWS_LinIf_00768])। LinSM स्थिति LINSM_NO_COM में शुरू होता है, बिना इनिशियलाइज़ेशन के समय ComM या BswM को कॉलबैक भेजे ([SWS_LinSM_00026], [SWS_LinSM_00166])।

यदि ComM LinSM_RequestComMode(COMM_FULL_COMMUNICATION) के माध्यम से संचार रिलीज़ का अनुरोध करता है, तो LinSM सीधे LinIf_Wakeup को ट्रिगर करता है और एक मॉनिटरिंग टाइमर शुरू करता है ([SWS_LinSM_00047], [SWS_LinSM_00100])। LinIf Lin_Wakeup के माध्यम से बस पर भौतिक वेकअप पल्स भेजता है ([SWS_LinIf_00205], [SWS_Lin_00043])। यदि LinIf LinSM_WakeupConfirmation(success=TRUE) के ज़रिए सफल वेकअप प्रक्रिया की रिपोर्ट करता है, तो स्थिति LINSM_FULL_COM में बदल जाती है ([SWS_LinSM_00049], [SWS_LinSM_00132])। यह ComM को ComM_BusSM_ModeIndication के माध्यम से और BswM को BswM_LinSM_CurrentState के माध्यम से संकेतित किया जाता है ([SWS_LinSM_00033], [SWS_LinSM_00192])। स्लेव्स के मामले में, बस को केवल तभी सफलतापूर्वक वेकअप माना जाता है जब मास्टर पहला LIN हेडर भेजता है और वह प्राप्त हो जाता है ([SWS_LinIf_00761], SWS LINStateManager पृ. 28)।

स्लीप मोड में शटडाउन (Go-to-Sleep) काफी भिन्न होता है: मास्टर पर, अनुरोध COMM_NO_COMMUNICATION के कारण LinIf_GotoSleep का कॉल होता है ([SWS_LinSM_00036], [SWS_LinSM_10208])। LinIf ड्राइवर को Lin_GoToSleep के ज़रिए बस पर एक मानकीकृत Go-to-Sleep फ़्रेम भेजने का निर्देश देता है ([SWS_Lin_00166], [SWS_Lin_00089])। इसके विपरीत, स्लेव पर, इंटरफ़ेस Go-to-Sleep कमांड प्राप्त करता है या बस-आइडल टाइमआउट का पता लगाता है और LinSM_GotoSleepIndication के ज़रिए LinSM को सूचित करता है ([SWS_LinSM_91000])। इसके बाद LinSM समकालिक रूप से LinIf_GotoSleep को कॉल करता है ([SWS_LinSM_00231])। इंटरफ़ेस ड्राइवर को Lin_GoToSleepInternal के माध्यम से स्थानीय रूप से स्थिति LIN_CH_SLEEP में स्विच करता है ([SWS_LinIf_00757], [SWS_Lin_00095]) और ट्रांसीवर को LinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP) के माध्यम से स्लीप स्थिति में ले जाता है ([SWS_LinIf_00544], AUTOSAR CP SWS LINInterface पृ. 137)। पुष्टिकरण LinSM_GotoSleepConfirmation के बाद, LinSM अंततः LINSM_NO_COM में बदल जाता है ([SWS_LinSM_00046], [SWS_LinSM_00233])।

LIN स्लेव पर गो-टू-स्लीप अनुक्रमComMLinSMLinIfLin DriverLinTrcvBswMLinSM_RequestComMode(COMM_NO_COMMUNICATION)E_OK (Modus vorgemerkt)Use Case: बस स्लीप घटना (स्लीप फ़्रेम या बस निष्क्रिय)LinSM_GotoSleepIndication(Channel)LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)E_OK (LIN_CH_SLEEP aktiv)optTransceiver Driver konfiguriertLinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)E_OKLinSM_GotoSleepConfirmation(Channel, success=TRUE)State = LINSM_NO_COMComM_BusSM_ModeIndication(COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(LINSM_NO_COM)

सीक्वेंस डायग्राम: बस-स्लीप सिग्नल के बाद LIN स्लेव के स्लीप स्टेट में प्रवेश करने पर BSW मॉड्यूल का इंटरैक्शन। स्रोत: [SWS_LinSM_91000], [SWS_LinSM_00231], [SWS_LinIf_00757], AUTOSAR SWS LINStateManager पृ. 48।

त्रुटि प्रबंधन, DET-ट्रेसिंग और डिग्रेडेशन

क्लस्टर में एक बहु-स्तरीय त्रुटि पहचान और डायग्नोसिस अवधारणा है। विकास त्रुटियों (development errors) को Default Error Tracer (Det) के माध्यम से कैप्चर किया जाता है: अमान्य चैनल या नेटवर्क पैरामीटर LIN_E_INVALID_CHANNEL ([SWS_Lin_00259]), LINIF_E_NONEXISTENT_CHANNEL ([SWS_LinIf_00539]) या LINSM_E_NONEXISTENT_NETWORK ([SWS_LinSM_00127]) रिपोर्ट करते हैं। गैर-आरंभीकृत (uninitialized) मॉड्यूल के कॉल के परिणामस्वरूप LIN_E_UNINIT, LINIF_E_UNINIT या LINSM_E_UNINIT होते हैं ([SWS_Lin_00258], [SWS_LinSM_00128])। ट्रांसीवर त्रुटियाँ जैसे कि अमान्य नेटवर्क नंबर DET को LINTRCV_E_INVALID_LIN_NETWORK रिपोर्ट करते हैं ([SWS_LinTrcv_00145])।

रनटाइम संचालन के दौरान होने वाले संचार व्यवधानों को रनटाइम त्रुटियों के रूप में वर्गीकृत किया जाता है: इंटरफ़ेस त्रुटिपूर्ण फ़्रेमों के मामले में LINIF_E_RESPONSE को तथा नोड-कॉन्फ़िगरेशन अनुरोधों के अनुपलब्ध उत्तरों के मामले में LINIF_E_NC_NO_RESPONSE को परिभाषित करता है ([SWS_LinIf_00729])। भौतिक बस और प्रोटोकॉल त्रुटियों (फ़्रेमिंग त्रुटियाँ, चेकसम त्रुटियाँ, बिट-मॉनिटरिंग त्रुटियाँ) की रिपोर्ट स्लेव पर MCAL ड्राइवर द्वारा LinIf_LinErrorIndication के माध्यम से स्थिति Lin_SlaveErrorType के साथ की जाती है ([SWS_LinIf_91007], [SWS_Lin_91140])। मास्टर नोड्स पर, Lin_GetStatus इंटरफ़ेस को LIN_TX_HEADER_ERROR, LIN_TX_ERROR या LIN_RX_ERROR जैसे विस्तृत त्रुटि कोड प्रदान करता है ([SWS_Lin_00168], [SWS_Lin_00233])।

LIN स्लेव्स के लिए एक केंद्रीय त्रुटि तंत्र मानकीकृत response_error सिग्नल है। LIN इंटरफ़ेस इस 1-बिट सिग्नल को स्वायत्त रूप से प्रबंधित करता है: यदि कोई ट्रांसमिशन त्रुटि होती है, तो LinIf उस बिट को सेट करता है, जिसे अगले अनकंडीशन्ड ट्रांसमिट फ़्रेम में मास्टर को प्रेषित किया जाता है ([SWS_LinIf_00763], SWS LINInterface पृ. 58)। सफल फ़्रेम ट्रांसमिशन के बाद, LinIf फ़्लैग को स्वचालित रूप से साफ़ कर देता है ([SWS_LinIf_00747])। डायग्नोस्टिक चैनल में, LinTp सख्त प्रोटोकॉल टाइम विंडो की निगरानी करता है: N-PDU की अनुपस्थिति में, टाइमर $N_{As}$ और $N_{Cr}$ लेन-देन को परिभाषित तरीके से निरस्त करते हैं और PDU राउटर को E_NOT_OK रिपोर्ट करते हैं ([SWS_LinIf_00799], [SWS_LinIf_00804], [SWS_LinIf_00806])। यदि PDU राउटर पर बफ़र क्षमता का अभाव है, तो इंटरफ़ेस रिसेप्शन को निरस्त कर देता है और मास्टर की शेड्यूल तालिका को वापस एप्लिकेशन संचालन पर स्विच कर देता है ([SWS_LinIf_00676], [SWS_LinIf_00792])।

यह दिशानिर्देश Lin, LinIf, LinSM और LinTrcv मॉड्यूल के रिलीज़ R20-11 के लिए AUTOSAR विनिर्देशों पर आधारित है। सभी मानक संदर्भ संदर्भित दस्तावेज़ों और आवश्यकता प्रविष्टियों से लिए गए हैं।

Module im Cluster

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

BSW ID 82 17 APIs (9 Funktionen, 8 Typen) #include "Lin.h"

LIN Interface (LinIf)

Abstracts LIN hardware and manages schedule tables and frame transmission.

BSW ID 62 35 APIs (31 Funktionen, 4 Typen) #include "LinIf.h"

LIN Network Management (LinNm)

AUTOSAR Classic Communication Services-Modul LIN Network Management (LinNm, Spezifikation: AUTOSAR_SWS_LINNetworkManagement.pdf).

BSW ID 63 Keine C-API · 0 Records #include "LinNm.h"

LIN State Manager (LinSM)

Manages state transitions of LIN networks.

BSW ID 141 12 APIs (10 Funktionen, 2 Typen) #include "LinSM.h"

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

BSW ID 64 11 APIs (7 Funktionen, 4 Typen) #include "LinTrcv.h"