DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

ModulLin (LIN Driver)
BSW-Modul-ID82
Standard-Header#include "Lin.h"
SWS-SpezifikationAUTOSAR_SWS_LINDriver.pdf
ClusterLIN

मॉड्यूल गाइडएआई जनित

LIN हार्डवेयर को नियंत्रित करता है और LIN Interface को प्रति चैनल फ़्रेम, स्लीप स्थिति और वेक-अप के लिए सेवाएँ प्रदान करता है।
एआई-जनित असत्यापित मॉडल: claude-opus-5-5 · प्रयास: high · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: ea366bb8619c उद्गम खुले प्रश्न (1)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

LIN हार्डवेयर को नियंत्रित करता है और LIN Interface को प्रति चैनल फ़्रेम, स्लीप स्थिति और वेक-अप के लिए सेवाएँ प्रदान करता है।

LIN ड्राइवर माइक्रोकंट्रोलर के LIN हार्डवेयर को एनकैप्सुलेट करता है और LIN Interface को फ़्रेम, स्लीप स्थिति और वेक-अप के लिए चैनल-विशिष्ट सेवाएँ प्रदान करता है। मास्टर चैनल एसिंक्रोनस रूप से Lin_SendFrame के साथ फ़्रेम आरंभ करते हैं और Lin_GetStatus के माध्यम से उनका मूल्यांकन करते हैं। स्लेव चैनल प्राप्त प्रत्येक हेडर पर LIN Interface को एक इंडिकेशन के साथ प्रतिक्रिया देते हैं और फिर रिस्पॉन्स भेजते हैं, प्राप्त करते हैं या अनदेखा करते हैं ([SWS_Lin_00280])। कौन सी सेवाएँ उपलब्ध हैं यह कॉन्फ़िगर किए गए नोड प्रकार पर निर्भर करता है; मास्टर सेवाएँ केवल तभी उपलब्ध होती हैं जब कम से कम एक मास्टर चैनल हो ([SWS_Lin_00287])।

LIN ड्राइवर Lin LIN स्टैक का हार्डवेयर ड्राइवर है। यह LIN कंट्रोलर्स या SCI/UARTs (SWS LIN Driver पृ. 9) को एनकैप्सुलेट करता है और LIN Interface को फ़्रेम, स्लीप स्थिति और वेक-अप के लिए चैनल-विशिष्ट सेवाएँ प्रदान करता है। इसे अनिवार्य रूप से Dem_SetEventStatus, EcuM_SetWakeupEvent और LinIf_WakeupConfirmation ([SWS_Lin_00234]) की आवश्यकता होती है। वैकल्पिक रूप से यह DET, Icu और LinIf के स्लेव कॉलबैक का उपयोग करता है ([SWS_Lin_00235])।

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

कॉन्टेक्स्ट डायग्राम: Lin, LinIf और LIN हार्डवेयर के बीच स्थित है और EcuM, LinIf, DEM और DET को वेक-अप और त्रुटियों की रिपोर्ट करता है। स्रोत: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init मॉड्यूल को LIN_UNINIT से LIN_INIT में स्थानांतरित करता है ([SWS_Lin_00006], SWS LIN Driver पृ. 24)। उसके बाद प्रत्येक चैनल LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (केवल मास्टर) और LIN_CH_SLEEP के बीच बदलता है। इसके लिए Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup और Lin_WakeupInternal उपलब्ध हैं ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256])।

LinZustaende cluster_kanal प्रति चैनल चैनल स्थितियाँ (केवल LIN_INIT में) Reset Reset LIN_UNINIT LIN_UNINIT (उपयोग योग्य नहीं) Reset->LIN_UNINIT रीसेट के बाद LIN_INIT LIN_INIT (चैनल सेवा के लिए तैयार) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (क्लस्टर में भाग लेता है) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (केवल मास्टर) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (वेक-अप पल्स के साथ) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (बिना वेक-अप पल्स के)

स्टेट डायग्राम: मॉड्यूल स्थितियाँ और चैनल स्थितियाँ उनके बदलावों के साथ। यह तथ्य कि Lin_GetStatus, LIN_CH_SLEEP के चरण को पूरा करता है, आरेख की एक व्याख्या है। स्रोत: SWS LIN Driver पृ. 24, [SWS_Lin_00166]

मास्टर और स्लेव चैनल पूरी तरह से अलग तरह से कार्य करते हैं। एक मास्टर Lin_SendFrame के साथ एसिंक्रोनस रूप से फ़्रेम आरंभ करता है और बाद में Lin_GetStatus के साथ परिणाम को पोल करता है ([SWS_Lin_00191], [SWS_Lin_00168])। ये सेवाएँ केवल तभी उपलब्ध होती हैं जब कम से कम एक चैनल मास्टर के रूप में कॉन्फ़िगर किया गया हो ([SWS_Lin_00287])। एक स्लेव LinIf_HeaderIndication ([SWS_Lin_00280]) के माध्यम से प्रत्येक हेडर की रिपोर्ट करता है। Drc के आधार पर, यह फिर रिस्पॉन्स भेजता है, प्राप्त करता है या अनदेखा करता है और इसे LinIf_TxConfirmation या LinIf_RxIndication के साथ पूरा करता है ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275])।

बस से आने वाले वेक-अप की Lin_CheckWakeup जाँच करता है और उनकी रिपोर्ट EcuM और LinIf को देता है ([SWS_Lin_00160])। त्रुटि के मामले में, गलत उपयोग DET को भेजे जाते हैं, उदाहरण के लिए LIN_E_UNINIT ([SWS_Lin_00258])। हार्डवेयर टाइमआउट की रिपोर्ट DEM को LIN_E_TIMEOUT के रूप में दी जाती है ([SWS_Lin_00290])। एक मास्टर चैनल स्थिति के रूप में बस त्रुटियों को वापस करता है, एक स्लेव चैनल LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]) के माध्यम से उनकी रिपोर्ट करता है।

LIN ड्राइवर की भूमिका, सिस्टम सीमा और इंस्टेंस संदर्भ

LIN ड्राइवर Lin माइक्रोकंट्रोलर के LIN हार्डवेयर को एनकैप्सुलेट करता है। यह LIN Interface (LinIf) को चैनल-विशिष्ट सेवाएँ प्रदान करता है: फ़्रेम भेजना और प्राप्त करना, चैनलों को स्लीप में डालना और जगाना, साथ ही वेक-अप की जाँच करना। सभी सेवाएँ Lin.h के माध्यम से उपलब्ध हैं ([SWS_Lin_00191], [SWS_Lin_00160])। हार्डवेयर के रूप में विनिर्देश तीन प्रकार की LIN हार्डवेयर इकाइयों का उल्लेख करता है: पूर्ण LIN कंट्रोलर्स, साधारण SCI/UARTs और उन्नत SCI/UARTs। वे प्रत्येक ट्रांसीवर ICs के माध्यम से एक LIN क्लस्टर से जुड़े होते हैं (SWS LIN Driver पृ. 9)। ड्राइवर स्वयं कोई कॉलबैक फ़ंक्शन प्रदान नहीं करता है (SWS LIN Driver पृ. 49)। इसके बजाय यह अपने परिवेश के फ़ंक्शंस को कॉल करता है।

बाहरी अनिवार्य इंटरफ़ेस Dem_SetEventStatus, EcuM_SetWakeupEvent और LinIf_WakeupConfirmation ([SWS_Lin_00234]) हैं। वैकल्पिक रूप से ड्राइवर अन्य बातों के अलावा उपयोग करता है:

  • Det_ReportError और EcuM_CheckWakeup,
  • Icu_EnableNotification और Icu_DisableNotification,
  • स्लेव चैनलों के लिए कॉलबैक LinIf_HeaderIndication, LinIf_RxIndication और LinIf_LinErrorIndication ([SWS_Lin_00235])।

आयातित प्रकार जैसे कि NetworkHandleType, EcuM_WakeupSourceType या Std_ReturnType, [SWS_Lin_00226] में सूचीबद्ध हैं।

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

कॉन्टेक्स्ट डायग्राम: Lin, LinIf और LIN हार्डवेयर इकाई के बीच स्थित है। ड्राइवर EcuM और LinIf को वेक-अप की रिपोर्ट करता है, त्रुटियों की DEM और DET को। स्रोत: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver पृ. 9

ड्राइवर विभाजन योग्य है। यह प्रत्येक विभाजन में एक स्वतंत्र इंस्टेंस के रूप में कार्य करता है, और एक API कॉल केवल उसी विभाजन को प्रभावित करता है जिसमें यह किया जाता है ([SWS_Lin_CONSTR_00270])। यदि LinEcucPartitionRef विभाजनों को संदर्भित करता है, तो LinChannelEcucPartitionRef को उनमें से ठीक एक को संदर्भित करना होगा ([SWS_Lin_CONSTR_00291])। एक संचार चैनल के LinChannel और LinTrcvChannel को एक ही विभाजन को संदर्भित करना होगा ([SWS_Lin_CONSTR_00279])। मॉड्यूल उन विभाजन असाइनमेंट्स को अस्वीकार करता है जो कार्यान्वयन द्वारा समर्थित नहीं हैं ([SWS_Lin_00269])। प्रति चैनल बॉड दर, चैनल ID, LinChannelWakeupSupport और नोड प्रकार LinNodeType अन्य बातों के अलावा कॉन्फ़िगर किए जाते हैं। यह कंटेनर विवरण बाद के रिलीज़ से आता है (SWS LIN Driver पृ. 60)।

Lin_Init से स्लीप स्थिति तक मॉड्यूल और चैनल स्थितियाँ

रीसेट के बाद मॉड्यूल LIN_UNINIT स्थिति में होता है और उपयोग करने योग्य नहीं होता है। Lin_Init इसे LIN_INIT में ले जाता है; वहाँ प्रत्येक उपलब्ध चैनल सेवा के लिए तैयार होता है (SWS LIN Driver पृ. 24)। Lin_Init को एक Lin_ConfigType संरचना का पॉइंटर प्राप्त होता है। इसकी सामग्री हार्डवेयर-विशिष्ट है; इसमें ड्राइवर, हार्डवेयर इकाई और चैनलों के लिए इनिशियलाइज़ेशन डेटा शामिल होता है ([SWS_Lin_00006], [SWS_Lin_00227])। परिवेश को रनटाइम के दौरान Lin_Init को केवल एक बार कॉल करना चाहिए (SWS LIN Driver पृ. 24)।

LIN_INIT के भीतर प्रत्येक चैनल की अपनी स्थिति होती है:

  • LIN_CH_OPERATIONAL: चैनल क्लस्टर में भाग लेता है।
  • LIN_CH_SLEEP: वेक-अप डिटेक्शन सक्रिय है, हार्डवेयर संभवतः लो-पावर मोड में है।
  • LIN_CH_SLEEP_PENDING: केवल मास्टर चैनलों के लिए, Lin_GoToSleep के बाद।

प्रमाण: SWS LIN Driver पृ. 24, [SWS_Lin_00166]। Lin_GoToSleepInternal चैनल को सीधे LIN_CH_SLEEP पर सेट करता है ([SWS_Lin_00167])। Lin_Wakeup वेक-अप पल्स के साथ वापस LIN_CH_OPERATIONAL पर ले जाता है, Lin_WakeupInternal बिना पल्स के ([SWS_Lin_00169], [SWS_Lin_00256])।

व्याख्या: LIN_CH_SLEEP_PENDING से LIN_CH_SLEEP में ट्रांज़िशन को संभवतः Lin_GetStatus पूरा करता है। प्रश्न Q-bb592e1d2ab668f0 (खुला) आरेख Lin_GetStatus को मास्टर भाग में एक ट्रांज़िशन के रूप में दिखाता है, और LIN Interface गो-टू-स्लीप कमांड की जांच के दौरान रिटर्न मान LIN_CH_SLEEP की अपेक्षा करता है (SWS LIN Interface पृ. 56)।

LinZustaende cluster_kanal प्रति चैनल चैनल स्थितियाँ (केवल LIN_INIT में) Reset Reset LIN_UNINIT LIN_UNINIT (उपयोग योग्य नहीं) Reset->LIN_UNINIT रीसेट के बाद LIN_INIT LIN_INIT (चैनल सेवा के लिए तैयार) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (क्लस्टर में भाग लेता है) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (केवल मास्टर) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (वेक-अप पल्स के साथ) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (बिना वेक-अप पल्स के)

स्टेट आरेख: Lin_Init मॉड्यूल को LIN_UNINIT से LIN_INIT में ले जाता है। इसमें प्रत्येक चैनल स्लीप और वेक-अप सेवाओं के माध्यम से संचालन और स्लीप के बीच स्विच करता है; Lin_GetStatus के माध्यम से ट्रांज़िशन एक व्याख्या है। स्रोत: SWS LIN Driver पृ. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Lin_PduType और डेटा मैपिंग के माध्यम से फ्रेम विवरण

LinIf और ड्राइवर के बीच, Lin_PduType एक फ्रेम का वर्णन करता है। संरचना में Pid, चेकसम मॉडल Cs, रिस्पॉन्स दिशा Drc, डेटा लंबाई Dl और डेटा पॉइंटर SduPtr शामिल हैं ([SWS_Lin_00232])। तत्व प्रकार:

  • Lin_FramePidType: दो पैरिटी बिट्स के साथ आइडेंटिफायर 0…0x3F, मान सीमा 0…0xFE ([SWS_Lin_00228])।
  • Lin_FrameDlType: 1…8 डेटा बाइट्स ([SWS_Lin_00231])।
  • Lin_FrameCsModelType: LIN_ENHANCED_CS या LIN_CLASSIC_CS ([SWS_Lin_00229])। ड्राइवर को दोनों चेकसम की गणना करने में सक्षम होना चाहिए ([SWS_Lin_00019])।

Lin_FrameResponseType यह निर्धारित करता है कि नोड रिस्पॉन्स को कैसे संभालता है ([SWS_Lin_00230]): वह इसे स्वयं भेजता है (LIN_FRAMERESPONSE_TX), एक प्रासंगिक बाहरी रिस्पॉन्स प्राप्त करता है (LIN_FRAMERESPONSE_RX) या इसे अनदेखा करता है (LIN_FRAMERESPONSE_IGNORE)। मेमोरी में, पहले ट्रांसमिट किया गया बाइट तत्व 0 में होता है, अंतिम ट्रांसमिट किया गया तत्व n-1 में होता है (SWS LIN Driver पृ. 30)। यदि हार्डवेयर बाइट्स को बफर नहीं कर सकता है, जैसे कि एक साधारण UART के मामले में, तो ड्राइवर एक अस्थायी बफर प्रदान करता है। रीड-बैक चेक के साथ ट्रांसमिशन और रिसेप्शन नॉन-ब्लॉकिंग रूप से चलते हैं (SWS LIN Driver पृ. 28)।

मास्टर चैनल: Lin_SendFrame और स्थिति क्वेरी

मास्टर चैनलों पर LinIf प्रत्येक फ्रेम को एसिंक्रोनस Lin_SendFrame के साथ ट्रिगर करता है। सेवा LIN-हेडर और यदि लागू हो तो रिस्पॉन्स भेजती है ([SWS_Lin_00191])। यह शेड्यूल की रिसीव, सेंड और स्लेव-टू-स्लेव प्रविष्टियों पर लागू होता है (SWS LIN Interface पृ. 34, SWS LIN Interface पृ. 37, SWS LIN Interface पृ. 40)।

LinIf परिणाम को सिंक्रोनस Lin_GetStatus के साथ क्वेरी करता है: जल्द से जल्द अधिकतम फ्रेम लंबाई के बाद, नवीनतम अगली देय शेड्यूल प्रविष्टि पर (SWS LIN Interface पृ. 35, [SWS_Lin_00168])। सेवा एक Lin_StatusType लौटाती है, जैसे कि LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY या LIN_RX_NO_RESPONSE। Lin_SduPtr के माध्यम से वह अतिरिक्त रूप से शैडो या हार्डवेयर रिसीव बफर के लिए एक पॉइंटर लौटाती है ([SWS_Lin_00233])।

प्राप्त डेटा तब तक सुसंगत रहता है जब तक कि अगला फ्रेम सफलतापूर्वक प्राप्त न हो जाए या चैनल की स्थिति बदल न जाए। संपूर्ण रिसेप्शन प्रोसेसिंग Lin_GetStatus में स्थित हो सकती है (SWS LIN Driver पृ. 30)। इवेंट-ट्रिगर्ड फ्रेम्स के लिए लागू होता है (SWS LIN Interface पृ. 127, SWS LIN Interface पृ. 129):

  • LIN_RX_NO_RESPONSE LinIf को त्रुटि नहीं मानता है।
  • LIN_RX_ERROR को टकराव माना जाता है और यह टकराव समाधान शेड्यूल पर स्विच करने की ओर ले जाता है।

Lin_SendFrame, Lin_GoToSleep और Lin_GetStatus केवल तभी उपलब्ध होते हैं जब कम से कम एक चैनल LinNodeType के माध्यम से मास्टर के रूप में कॉन्फ़िगर किया गया हो ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289])। R20-11 में इन सेवाओं को नॉन-रीएंट्रेंट के रूप में निर्दिष्ट किया गया है ([SWS_Lin_00168])। बाद के संस्करण विभिन्न चैनलों के लिए रीएंट्रेंसी की अनुमति देते हैं (SWS LIN Driver पृ. 48); R20-11 के लिए आवश्यकता लागू होती है।

एक मास्टर चैनल पर फ़्रेम निष्पादनBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: शेड्यूल प्रविष्टि देयLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKअतुल्यकालिक: हेडर और रिस्पॉन्सगैर-अवरोधक चलते हैंUse Case: अधिकतम फ़्रेम लंबाई से स्थिति जाँचloopप्रति MainFunction कॉल, जब तक फ़्रेम चल रहा होLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKLin_SduPtr के माध्यम से डेटा स्वीकार करना (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,कोई कार्रवाई नहींLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

अनुक्रम आरेख: मास्टर Lin_SendFrame के साथ एसिंक्रोनस रूप से एक फ्रेम ट्रिगर करता है और बाद के MainFunction कॉल्स में Lin_GetStatus के माध्यम से परिणाम का मूल्यांकन करता है। स्रोत: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface पृ. 128, SWS LIN Interface पृ. 129, SWS LIN Interface पृ. 40

स्लेव चैनल: हेडर-चालित रिस्पॉन्स प्रोसेसिंग

एक स्लेव चैनल को LIN_CH_OPERATIONAL में किसी भी समय हेडर प्राप्त करने में सक्षम होना चाहिए ([SWS_Lin_00272])। प्रत्येक हेडर के लिए ड्राइवर LinIf_HeaderIndication को कॉल करता है। इसमें PduPtr->Pid प्राप्त PID रखता है, और PduPtr->SduPtr उसके हार्डवेयर या शैडो बफर को इंगित करता है ([SWS_Lin_00280])। यदि हार्डवेयर अमान्य PIDs का पता नहीं लगाता है, तो ड्राइवर PID को बिना जांचे आगे भेज देता है ([SWS_Lin_00271])। E_OK की वापसी के बाद वह PduPtr->Drc का मूल्यांकन करता है ([SWS_Lin_00282]):

  • LIN_FRAMERESPONSE_TX के मामले में वह रिस्पॉन्स भेजने के लिए Cs, Dl और SduPtr का उपयोग करता है ([SWS_Lin_00283])।
  • LIN_FRAMERESPONSE_RX के मामले में वह रिसेप्शन को Cs और Dl के साथ कॉन्फ़िगर करता है ([SWS_Lin_00284])।

यदि LinIf_HeaderIndication E_NOT_OK लौटाता है या Drc LIN_FRAMERESPONSE_IGNORE के बराबर है, तो ड्राइवर रिस्पॉन्स को अनदेखा कर देता है ([SWS_Lin_00286])। अगले हेडर तक वह कुछ भी रिपोर्ट नहीं करता है ([SWS_Lin_00276])। सफलतापूर्वक प्राप्त रिस्पॉन्स को वह सीधे LinIf_RxIndication के माध्यम से आगे भेजता है, भेजे गए रिस्पॉन्स की वह LinIf_TxConfirmation के माध्यम से पुष्टि करता है ([SWS_Lin_00274], [SWS_Lin_00275])। अगला हेडर रिपोर्ट किए जाने से पहले प्रत्येक प्रासंगिक रिस्पॉन्स को इनमें से किसी एक कॉलबैक या LinIf_LinErrorIndication के साथ पूरा किया जाना चाहिए ([SWS_Lin_00285])। रिसेप्शन आरेख दो हार्डवेयर वेरिएंट में अंतर करता है: हार्डवेयर LIN-कंट्रोलर और साधारण UART, जिसमें ड्राइवर इंटरप्ट द्वारा प्रत्येक बाइट को बफर में कॉपी करता है (SWS LIN Driver पृ. 57)।

एक स्लेव चैनल पर हेडर और रिस्पॉन्स प्रोसेसिंगLinController/UARTLinLinIfObere SchichtUse Case: Header-Empfang in LIN_CH_OPERATIONALInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)PduPtr->Pid, PduPtr->SduPtr gesetztEvaluatePID()optSende-FrameTriggerTransmit (Daten in SduPtr-Puffer)SetPduPtrValues() (Drc, Cs, Dl)E_OK / E_NOT_OKPduPtr->Drc auswertenaltE_OK और Drc = LIN_FRAMERESPONSE_TXCs, Dl, SduPtr के साथ रिस्पॉन्स भेजनाInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK और Drc = LIN_FRAMERESPONSE_RXCs, Dl के साथ रिसेप्शन कॉन्फ़िगर करनाInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK या Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;अगले हेडर तक कोई संदेश नहींभेजने/प्राप्त करने में बस त्रुटि: निरस्तीकरण औरLinIf_LinErrorIndication(Channel, ErrorStatus)

अनुक्रम आरेख: स्लेव चैनल पर प्रत्येक हेडर LinIf को एक इंडिकेशन ट्रिगर करता है। Drc के आधार पर, ड्राइवर रिस्पॉन्स भेजता है, प्राप्त करता है या अनदेखा करता है। स्रोत: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface पृ. 121, SWS LIN Interface पृ. 132

स्लीप, वेक-अप और वेक-अप डिटेक्शन

केवल एक मास्टर ही गो-टू-स्लीप कमांड भेज सकता है। Lin_GoToSleep इसे LIN 2.1 के अनुसार एसिंक्रोनस रूप से भेजता है और दोषपूर्ण ट्रांसमिशन के मामले में भी चैनल को LIN_CH_SLEEP_PENDING पर सेट करता है। यदि LinChannelWakeupSupport कॉन्फ़िगर किया गया है, तो सेवा बस मॉनिटरिंग को भी सक्रिय करती है ([SWS_Lin_00166], SWS LIN Driver पृ. 43)। स्लेव्स के लिए Lin_GoToSleep लागू नहीं है; वे Lin_GoToSleepInternal का उपयोग करते हैं (SWS LIN Driver पृ. 31)। यह सेवा सिंक्रोनस रूप से LIN_CH_SLEEP सेट करती है, वेक-अप डिटेक्शन सक्रिय करती है और वैकल्पिक रूप से हार्डवेयर को पावर-सेविंग मोड में रखती है ([SWS_Lin_00167], SWS LIN Driver पृ. 44)। प्रत्येक चैनल बाकी से स्वतंत्र रूप से स्लीप अनुरोध स्वीकार करता है (SWS LIN Driver पृ. 31)।

वेक-अप के लिए दो सेवाएं उपलब्ध हैं। Lin_Wakeup बस पर एक वेक-अप पल्स भेजता है, Lin_WakeupInternal बिना पल्स के चैनल को संचालन में सेट करता है ([SWS_Lin_00169], [SWS_Lin_00262])। बस से वेक-अप की जांच Lin_CheckWakeup करता है। यदि सेवा किसी घटना का पता लगाती है, जैसे कि लगातार कम RxD स्तर, तो वह तुरंत EcuM_SetWakeupEvent के माध्यम से EcuM को और LinIf_WakeupConfirmation के माध्यम से LinIf को इसकी रिपोर्ट करती है ([SWS_Lin_00160], SWS LIN Driver पृ. 42)। LinIf_CheckWakeup वेक-अप स्रोत के आधार पर तय करता है कि Lin_CheckWakeup या LinTrcv_CheckWakeup को कॉल किया जाए (SWS LIN Interface पृ. 112)। LIN को वेक-अप सत्यापन की आवश्यकता नहीं होती है (SWS EcuM पृ. 173)।

LIN बस से वेक-अप का परीक्षणLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,बस मॉनिटरिंग सक्रिय (LinChannelWakeupSupport)वेक-अप इवेंट (इंटरप्ट या पोलिंग)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(स्रोत LIN नियंत्रक; अन्यथा LinTrcv_CheckWakeup)Wake-up auswerten(z. B. RxD dauerhaft low)optWake-up erkanntEcuM_SetWakeupEvent()LinIf_WakeupConfirmation()E_OK / E_NOT_OKE_OK / E_NOT_OKLIN को किसी वेक-अप सत्यापन की आवश्यकता नहीं है

अनुक्रम आरेख: बस से एक वेक-अप EcuM और LinIf_CheckWakeup के माध्यम से Lin_CheckWakeup को अग्रेषित किया जाता है। ड्राइवर खोजी गई घटना की रिपोर्ट EcuM और LinIf को करता है। स्रोत: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver पृ. 42, SWS LIN Interface पृ. 112, SWS EcuM पृ. 147

त्रुटि की स्थिति में व्यवहार

सक्रिय डेवलपमेंट त्रुटि पहचान के साथ, सेवाएं DET को गलत उपयोग की रिपोर्ट करती हैं ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; Lin_Wakeup के लिए समान रूप से SWS LIN Driver पृ. 45):

  • आरंभीकरण से पहले कॉल किए जाने पर LIN_E_UNINIT,
  • अमान्य या निष्क्रिय चैनल पर LIN_E_INVALID_CHANNEL,
  • LIN_CH_SLEEP के बाहर वेक-अप पर LIN_E_STATE_TRANSITION।

Lin_GetVersionInfo एक NULL पॉइंटर की रिपोर्ट LIN_E_PARAM_POINTER के साथ करता है ([SWS_Lin_00161], SWS LIN Driver पृ. 41)। DET अक्षम होने पर, Lin_CheckWakeup एक अमान्य चैनल के लिए E_NOT_OK लौटाता है (SWS LIN Driver पृ. 42)। सामान्य तौर पर, E_NOT_OK और LIN_NOT_OK इंगित करते हैं कि कोई डेवलपमेंट या प्रोडक्शन त्रुटि हुई है ([SWS_Lin_00191], [SWS_Lin_00233])।

प्रोडक्शन त्रुटि के रूप में LIN_E_TIMEOUT निर्दिष्ट है। यदि हार्डवेयर नियंत्रण रजिस्टरों में परिवर्तन के बाद स्थिति परिवर्तन की प्रतीक्षा करनी हो, तो एक कॉन्फ़िगर करने योग्य टाइमआउट इस प्रतीक्षा को सुरक्षित करता है। यदि यह समाप्त हो जाता है, तो त्रुटि की रिपोर्ट की जाती है ([SWS_Lin_00290])। रिपोर्ट Dem_SetEventStatus ([SWS_Lin_00234]) के माध्यम से LinDemEventParameterRefs में संदर्भित घटना को जाती है (SWS LIN Driver पृ. 65)।

नोड प्रकार के आधार पर ड्राइवर संचार त्रुटियों की रिपोर्ट अलग-अलग तरीके से करता है। मास्टर चैनल उन्हें Lin_GetStatus की स्थिति के रूप में प्रदान करते हैं ([SWS_Lin_00233]):

  • हेडर में रीड-बैक, पैरिटी या बस त्रुटियों पर LIN_TX_HEADER_ERROR,
  • त्रुटिपूर्ण रिस्पॉन्स ट्रांसमिशन पर LIN_TX_ERROR,
  • फ़्रेमिंग, ओवररन या चेकसम त्रुटियों के साथ-साथ बहुत छोटे रिस्पॉन्स पर LIN_RX_ERROR।

स्लेव चैनल फ्रेम प्रोसेसिंग को निरस्त करते हैं और Lin_SlaveErrorType के साथ LinIf_LinErrorIndication को कॉल करते हैं ([SWS_Lin_00277], [SWS_Lin_91140])। हेडर की प्रतीक्षा के दौरान अमान्य बस घटनाओं की वे LIN_ERR_HEADER के रूप में रिपोर्ट करते हैं ([SWS_Lin_00281])।

LinFehlerpfade start LIN ड्राइवर में त्रुटि इवेंट art त्रुटि का प्रकार? start->art dev विकास त्रुटि (केवल सक्रिय DET डिटेक्शन के साथ) art->dev API का गलत उपयोग hw हार्डवेयर नियंत्रण रजिस्टरों के परिवर्तन के बाद प्रतीक्षा करते समय टाइमआउट art->hw Hardwarefehler com बस पर संचार त्रुटि art->com Busfehler det Det_ReportError: LIN_E_UNINIT / LIN_E_INVALID_CHANNEL / LIN_E_STATE_TRANSITION / LIN_E_PARAM_POINTER dev->det ret E_NOT_OK अथवा LIN_NOT_OK की वापसी det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ चैनल का नोड प्रकार? com->typ master मास्टर: Lin_GetStatus पर त्रुटि स्थिति (LIN_TX_HEADER_ERROR, LIN_TX_ERROR, LIN_RX_ERROR) typ->master Master slave Slave: aktuelle Frame-Bearbeitung abbrechen typ->slave Slave sind LinIf_LinErrorIndication(Channel, Lin_SlaveErrorType) z. B. LIN_ERR_HEADER, LIN_ERR_RESP_CHKSUM, LIN_ERR_NO_RESP slave->sind

गतिविधि आरेख: डेवलपमेंट त्रुटियां DET को जाती हैं, हार्डवेयर टाइमआउट DEM को जाता है। एक मास्टर चैनल बस संचार त्रुटियों को स्थिति के रूप में रिपोर्ट करता है, एक स्लेव चैनल त्रुटि संकेत के रूप में। स्रोत: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

आगे विस्तृत साक्ष्य

एआई-जनित गाइड। यह विशेष रूप से प्रदान किए गए साक्ष्यों पर आधारित है; व्यक्तिगत दस्तावेज़ अंश बाद के रिलीज़ से आते हैं। R20-11 की आवश्यकताएं प्रामाणिक हैं। व्याख्या के रूप में चिह्नित कथन सीधे तौर पर प्रमाणित नहीं हैं।

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 2e00d30976de उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन Lin_Init विनिर्देश [SWS_Lin_00006] के अनुसार AUTOSAR क्लासिक प्लेटफ़ॉर्म के LIN ड्राइवर मॉड्यूल को प्रारंभ करने का कार्य करता है। इंटरफ़ेस हेडर Lin.h के माध्यम से प्रदान किया जाता है और आंतरिक रूप से सेवा ID 0x00 के माध्यम से संबोधित किया जाता है [SWS_Lin_00006]।

फ़ंक्शन के उपयोग और कॉल के लिए निम्नलिखित पैरामीटर और इंटरफ़ेस शर्तें लागू होती हैं:

  • इनपुट पैरामीटर: एकमात्र पासिंग पैरामीटर के रूप में Config की अपेक्षा की जाती है [SWS_Lin_00006]। यह प्रकार const Lin_ConfigType* के LIN ड्राइवर के कॉन्फ़िगरेशन डेटा सेट का एक पॉइंटर है [SWS_Lin_00006]। इस इंटरफ़ेस के लिए न तो इनपुट/आउटपुट पैरामीटर और न ही शुद्ध आउटपुट पैरामीटर प्रदान किए गए हैं [SWS_Lin_00006]।
  • रिटर्न मान: फ़ंक्शन कोई रिटर्न मान नहीं देता है (void) [SWS_Lin_00006]।
  • निष्पादन सिमेंटिक्स: प्रसंस्करण पूरी तरह से सिंक्रोनस रूप से (Synchronous) होता है, जिससे कि ड्राइवर के आरंभीकरण चरण सीधे फ़ंक्शन कॉल के दौरान संसाधित होते हैं [SWS_Lin_00006]।

कॉल संदर्भ और समवर्तीता के संबंध में, यह निर्धारित किया गया है कि Lin_Init गैर-पुनःप्रवेशी (Non Reentrant) है [SWS_Lin_00006]। Interpretation: चूँकि यह फ़ंक्शन LIN ड्राइवर मॉड्यूल को बुनियादी रूप से प्रारंभ करता है और गैर-पुनःप्रवेशी रूप में डिज़ाइन किया गया है, यह आमतौर पर समग्र सिस्टम के स्टार्टअप चरण के दौरान कॉल किया जाना चाहिए, इससे पहले कि LIN ड्राइवर की अन्य सेवाओं का उपयोग किया जाए। प्रश्न Q-d535602a0d4708ce (खुला) विभिन्न निष्पादन संदर्भों से एक साथ या बार-बार कॉल करना संभवतः अस्वीकार्य है।

यह पाठ AUTOSAR R20-11 विनिर्देश के आधार पर एक AI द्वारा तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 706d1bc705a9 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन Lin_CheckWakeup यह जाँचने के लिए कार्य करता है कि क्या किसी एड्रेस किए गए LIN चैनल पर कोई वेकअप ईवेंट हुआ है [SWS_Lin_00160]। इंटरफ़ेस हेडर फ़ाइल Lin.h के माध्यम से उपलब्ध है और इसकी सेवा ID 0x0a है [SWS_Lin_00160]। चैनल की पहचान के लिए फ़ंक्शन डेटा प्रकार uint8 का पैरामीटर Channel स्वीकार करता है [SWS_Lin_00160]। इस इंटरफ़ेस के लिए कोई अन्य इनपुट या आउटपुट पैरामीटर प्रदान नहीं किए गए हैं [SWS_Lin_00160]।

निष्पादन का परिणाम रिटर्न प्रकार Std_ReturnType के माध्यम से सिंक्रोनस रूप से वापस रिपोर्ट किया जाता है [SWS_Lin_00160]। स्थिति मान E_OK यह बताता है कि API कॉल के निष्पादन के दौरान कोई त्रुटि नहीं हुई [SWS_Lin_00160]। इसके विपरीत, यदि निष्पादन के दौरान कोई त्रुटि होती है, तो सेवा रिटर्न मान E_NOT_OK प्रदान करती है [SWS_Lin_00160]। स्रोतों में इस तत्व के लिए विशिष्ट त्रुटि कोड और DET या DEM को सूचनाएँ निर्दिष्ट नहीं हैं।

समवर्तीता व्यवहार के संदर्भ में, Lin_CheckWakeup को गैर-पुनःप्रवेशी (Non Reentrant) के रूप में परिभाषित किया गया है [SWS_Lin_00160]। इसलिए कॉल करने वालों को यह सुनिश्चित करना चाहिए कि कॉल क्रमिक रूप से हों और कोई समवर्ती निष्पादन न हो। चूँकि विनिर्देश में सटीक कॉल संदर्भ अधिक विस्तार से परिभाषित नहीं है, इसलिए कॉल संभवतः वेकअप प्रबंधन या ECU State Manager जैसी उच्च-स्तरीय परतों द्वारा शुरू किया जाना चाहिए। प्रश्न Q-40221056a2e2c042 (खुला)

यह पाठ एक AI द्वारा तैयार किया गया था; सभी कथन AUTOSAR मानक के विनिर्देशों से लिए गए हैं।

फ़ंक्शन Lin_SendFrame [SWS_Lin_00191] 📄 PDF

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);

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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: fb92456f64e2 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन Lin_SendFrame LIN हेडर और आवश्यकतानुसार संबद्ध LIN रिस्पॉन्स भेजने का काम करता है और विशेष रूप से LIN मास्टर नोड्स के लिए अभिप्रेत है [SWS_Lin_00191]। पॉइंटर PduInfoPtr के माध्यम से फ़्रेम रिस्पॉन्स की ट्रांसमिशन दिशा निर्धारित की जाती है, जो मास्टर रिस्पॉन्स, स्लेव रिस्पॉन्स या स्लेव-टू-स्लेव संचार को मैप कर सकती है [SWS_Lin_00191]।

कॉल और पैरामीटर: फ़ंक्शन का निष्पादन एसिंक्रोनस रूप से होता है [SWS_Lin_00191]। कॉल करते समय निम्नलिखित इनपुट पैरामीटर पास किए जाते हैं:

  • Channel: संबोधित किए जाने वाले LIN चैनल को uint8 के रूप में निर्धारित करता है [SWS_Lin_00191]।
  • PduInfoPtr: प्रकार Lin_PduType की संरचना का पॉइंटर, जिसमें संरक्षित पहचानकर्ता (PID), चेकसम मॉडल (Checksum Model), रिस्पॉन्स प्रकार, डेटा लंबाई (Dl) और SDU का डेटा पॉइंटर शामिल है [SWS_Lin_00191]।

रिटर्न मान और त्रुटि व्यवहार: फ़ंक्शन रिटर्न प्रकार Std_ReturnType प्रदान करता है [SWS_Lin_00191]:

  • E_OK: ट्रांसमिशन अनुरोध सफलतापूर्वक प्राप्त किया गया और एसिंक्रोनस निष्पादन के लिए स्वीकार किया गया [SWS_Lin_00191]।
  • E_NOT_OK: ट्रांसमिशन अनुरोध अस्वीकार कर दिया गया क्योंकि एक डेवलपमेंट त्रुटि (Development Error) या प्रोडक्शन त्रुटि (Production Error) मौजूद है [SWS_Lin_00191]।

समवर्तीता और एकीकरण: इंटरफ़ेस को गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है, जिसके कारण समान चैनल पर समानांतर कॉलों से बचा जाना चाहिए [SWS_Lin_00191]। फ़ंक्शन की सेवा ID 0x04 है और इसे हेडर फ़ाइल Lin.h के माध्यम से शामिल किया गया है [SWS_Lin_00191]।

यह उपयोग संबंधी निर्देश AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से तैयार किया गया था।

फ़ंक्शन Lin_GoToSleep [SWS_Lin_00166] 📄 PDF

Std_ReturnType Lin_GoToSleep (uint8 Channel);

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e15a8b1ff51c उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन और कॉल संदर्भ

फ़ंक्शन Lin_GoToSleep LIN ड्राइवर को संबोधित LIN चैनल पर गो-टू-स्लीप कमांड भेजने का निर्देश देता है [SWS_Lin_00166]। इस ड्राइवर सेवा की सर्विस ID 0x06 है और यह हेडर फ़ाइल Lin.h के माध्यम से उपलब्ध कराई जाती है [SWS_Lin_00166]। कॉलर के लिए सेवा का निष्पादन एसिंक्रोनस होता है [SWS_Lin_00166]। फ़ंक्शन डिक्लेरेशन Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166] है।

पैरामीटर और रिटर्न मान

एकमात्र इनपुट पैरामीटर के रूप में प्रकार uint8 का Channel पास किया जाता है, जो संबोधित किए जाने वाले LIN चैनल की पहचान करता है [SWS_Lin_00166]। कोई अतिरिक्त इनपुट या आउटपुट पैरामीटर मौजूद नहीं हैं [SWS_Lin_00166]।

प्रकार Std_ReturnType का रिटर्न मान अनुरोध की स्वीकृति के बारे में जानकारी प्रदान करता है [SWS_Lin_00166]:

  • E_OK: ड्राइवर द्वारा गो-टू-स्लीप कमांड सफलतापूर्वक स्वीकार कर लिया गया [SWS_Lin_00166]।
  • E_NOT_OK: कमांड स्वीकार नहीं किया गया, क्योंकि एक डेवलपमेंट त्रुटि या प्रोडक्शन त्रुटि उत्पन्न हुई है [SWS_Lin_00166]।

सीमाएँ और समवर्तीता (concurrency)

समवर्तीता के संबंध में, फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) घोषित किया गया है [SWS_Lin_00166]। एक आवश्यक कार्यात्मक प्रतिबंध के रूप में, Lin_GoToSleep विशेष रूप से LIN मास्टर नोड्स के लिए अभीष्ट है [SWS_Lin_00166]।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से तैयार किया गया था।

फ़ंक्शन Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

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).

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: dd333dd75b58 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन Lin_GoToSleepInternal संबोधित LIN चैनल की स्थिति को LIN_CH_SLEEP पर सेट करता है, वेक-अप डिटेक्शन को सक्रिय करता है और LIN हार्डवेयर इकाई को वैकल्पिक रूप से कम बिजली खपत मोड में रखता है, यदि यह हार्डवेयर द्वारा समर्थित हो [SWS_Lin_00167]। वांछित LIN चैनल का संबोधन प्रकार uint8 के इनपुट पैरामीटर Channel के माध्यम से किया जाता है, जबकि कोई अन्य इनपुट या आउटपुट पैरामीटर मौजूद नहीं हैं [SWS_Lin_00167]।

निष्पादन का परिणाम प्रकार Std_ReturnType के रिटर्न मान के माध्यम से सिंक्रोनस रूप से सिग्नल किया जाता है [SWS_Lin_00167]:

  • E_OK: स्लीप मोड में डालने का कमांड सफलतापूर्वक स्वीकार कर लिया गया [SWS_Lin_00167]।
  • E_NOT_OK: कमांड अस्वीकार कर दिया गया, क्योंकि एक डेवलपमेंट या प्रोडक्शन त्रुटि उत्पन्न हुई है [SWS_Lin_00167]।

समवर्तीता और कॉल संदर्भ के संबंध में, Lin_GoToSleepInternal को गैर-रीएंट्रेंट (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_Lin_00167]। इसलिए कॉलिंग सॉफ़्टवेयर इकाइयों को यह सुनिश्चित करना चाहिए कि कॉल अनुक्रमिक रूप से किए जाएं और समवर्ती रूप से ओवरलैप न हों। फ़ंक्शन को सर्विस ID 0x09 के तहत परिभाषित किया गया है और यह हेडर फ़ाइल Lin.h के माध्यम से उपलब्ध है [SWS_Lin_00167]।

यह उपयोग नोट विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Lin_Wakeup [SWS_Lin_00169] 📄 PDF

Std_ReturnType Lin_Wakeup (uint8 Channel);

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 6a03f55b81c5 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल संदर्भ

फ़ंक्शन Lin_Wakeup AUTOSAR क्लासिक प्लेटफ़ॉर्म के ड्राइवर मॉड्यूल Lin से संबंधित है [SWS_Lin_00169]। इसका उद्देश्य संबोधित बस चैनल पर एक वेकअप पल्स (Wake-up Pulse) उत्पन्न करना और चैनल की स्थिति को तुरंत LIN_CH_OPERATIONAL में स्थानांतरित करना है [SWS_Lin_00169]। यह इंटरफ़ेस सर्विस ID 0x07 और हस्ताक्षर Std_ReturnType Lin_Wakeup (uint8 Channel) के साथ हेडर फ़ाइल Lin.h के माध्यम से प्रदान किया जाता है [SWS_Lin_00169]।

एक इनपुट पैरामीटर के रूप में, फ़ंक्शन प्रकार uint8 के Channel को स्वीकार करता है, जिसके द्वारा नियंत्रित किए जाने वाले LIN चैनल को निर्दिष्ट किया जाता है [SWS_Lin_00169]। कोई इनपुट/आउटपुट पैरामीटर या केवल आउटपुट पैरामीटर मौजूद नहीं हैं [SWS_Lin_00169]। निष्पादन व्यवहार एसिंक्रोनस (Asynchronous) है; इसलिए फ़ंक्शन से वापसी केवल कार्य की स्वीकृति की पुष्टि करती है, जबकि भौतिक वेकअप पल्स बाद में बस पर उत्पन्न होता है [SWS_Lin_00169]।

रिटर्न मान और त्रुटि प्रबंधन

कार्य स्वीकृति का परिणाम रिटर्न प्रकार Std_ReturnType के माध्यम से रिपोर्ट किया जाता है [SWS_Lin_00169]:

  • E_OK: वेकअप अनुरोध LIN ड्राइवर द्वारा स्वीकार कर लिया गया है और इसे संसाधित किया जा रहा है [SWS_Lin_00169]।
  • E_NOT_OK: अनुरोध को अस्वीकार कर दिया गया, क्योंकि एक डेवलपमेंट या प्रोडक्शन त्रुटि उत्पन्न हुई है [SWS_Lin_00169]।

समवर्तीता और प्रतिबंध

विनिर्देश के अनुसार फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) के रूप में वर्गीकृत किया गया है [SWS_Lin_00169]। इसलिए, समान ड्राइवर इंस्टेंस के लिए विभिन्न निष्पादन संदर्भों से बिना किसी रुकावट या समवर्ती रूप से कॉल नहीं किए जाने चाहिए। कॉलिंग घटकों को उपयुक्त सिंक्रोनाइज़ेशन सुनिश्चित करना चाहिए।

यह उपयोग नोट AUTOSAR Classic R20-11 विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5812acd7bb93 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

हेडर Lin.h के माध्यम से प्रदान किया गया फ़ंक्शन Lin_WakeupInternal भौतिक LIN बस पर वेकअप पल्स जारी किए बिना [SWS_Lin_00256], एक LIN चैनल को एसिंक्रोनस रूप से ऑपरेटिंग स्थिति LIN_CH_OPERATIONAL में लाता है। यह उच्च-स्तरीय LIN इंटरफ़ेस के आंतरिक वेकअप अनुरोधों को संसाधित करता है, जहाँ कोई बस वेकअप सिग्नल नहीं भेजा जाना चाहिए [SWS_Lin_00262]। कॉल प्रकार uint8 के पैरामीटर Channel के माध्यम से होता है। फ़ंक्शन E_OK लौटाता है यदि वेकअप अनुरोध स्वीकार कर लिया गया था, या E_NOT_OK लौटाता है यदि अनुरोध अस्वीकार कर दिया गया था या कोई डेवलपमेंट अथवा प्रोडक्शन त्रुटि मौजूद है [SWS_Lin_00256]।

कॉल संदर्भ और समवर्तीता के लिए, यह लागू होता है कि Lin_WakeupInternal गैर-पुनःप्रवेशी (Non Reentrant) है [SWS_Lin_00256]। एक सख्त अनुक्रम शर्त के रूप में, कॉल के समय एड्रेस किए गए चैनल की स्थिति मशीन स्लीप स्थिति LIN_CH_SLEEP में होनी चाहिए [SWS_Lin_00260]।

सक्रिय डेवलपमेंट त्रुटि पहचान के साथ, मॉड्यूल निम्नलिखित त्रुटि स्थितियों की निगरानी करता है और संगत डेवलपमेंट त्रुटियों की रिपोर्ट करता है:

  • LIN_E_UNINIT: LIN ड्राइवर मॉड्यूल के आरंभीकरण से पहले फ़ंक्शन का कॉल [SWS_Lin_00258]।
  • LIN_E_INVALID_CHANNEL: पास किया गया चैनल पैरामीटर अमान्य है या एड्रेस किया गया चैनल निष्क्रिय है [SWS_Lin_00259]।
  • LIN_E_STATE_TRANSITION: एक अमान्य स्थिति संक्रमण मौजूद है, क्योंकि LIN चैनल स्थिति LIN_CH_SLEEP में नहीं है [SWS_Lin_00260]।

यह उपयोग नोट विनिर्देश आवश्यकताओं के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप Lin_ConfigType [SWS_Lin_00227] 📄 PDF

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.

टाइप Lin_FramePidType [SWS_Lin_00228] 📄 PDF

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

टाइप Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e48ff51e4fe8 उद्गम खुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

प्रगणना प्रकार Lin_FrameCsModelType [SWS_Lin_00229] के अनुसार उस चेकसम मॉडल को परिभाषित करने का कार्य करता है जिसका उपयोग किसी एकल LIN फ़्रेम के लिए किया जाता है। प्रकार परिभाषा डिफ़ॉल्ट रूप से हेडर Lin_GeneralTypes.h के माध्यम से उपलब्ध है [SWS_Lin_00229]।

कॉन्फ़िगरेशन के लिए [SWS_Lin_00229] के अनुसार दो मान उपलब्ध हैं:

  • LIN_ENHANCED_CS: उन्नत चेकसम मॉडल (Enhanced checksum model) का चयन करता है [SWS_Lin_00229]।
  • LIN_CLASSIC_CS: क्लासिक चेकसम मॉडल (Classic checksum model) का चयन करता है [SWS_Lin_00229]।

एक शुद्ध डेटा प्रकार के रूप में, Lin_FrameCsModelType स्वयं किसी भी फ़ंक्शन इंटरफ़ेस, रिटर्न मान या DET/DEM त्रुटि संदेशों को परिभाषित नहीं करता है [SWS_Lin_00229]। उपयोग मुख्य रूप से मॉड्यूल Lin में कॉन्फ़िगरेशन और फ़्रेम डिस्क्रिप्टर के भीतर एक पैरामीटर या तत्व के रूप में होना चाहिए (Interpretation), ताकि ड्राइवर को सूचित किया जा सके कि ट्रांसमिशन या रिसेप्शन के समय फ़्रेम चेकसम को किस एल्गोरिदम के अनुसार सत्यापित किया जाना है। प्रश्न Q-6d3354059d0641df (खुला) इसलिए अमान्य मानों के लिए त्रुटि प्रबंधन संभवतः प्रसंस्करण ड्राइवर API या मॉड्यूल कॉन्फ़िगरेशन के स्तर पर रोका जाना चाहिए (Interpretation)। प्रश्न Q-06e26f4bcff1e520 (खुला)

यह पाठ AUTOSAR विनिर्देश R20-11 के आधार पर AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF

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

टाइप Lin_FrameDlType [SWS_Lin_00231] 📄 PDF

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

टाइप Lin_PduType [SWS_Lin_00232] 📄 PDF

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

टाइप Lin_StatusType [SWS_Lin_00233] 📄 PDF

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7c3f3f6172fb उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

एन्यूमिरेशन प्रकार Lin_StatusType Lin_GeneralTypes.h के माध्यम से प्रदान किया जाता है और LIN चैनलों और LIN फ़्रेमों के लिए ऑपरेटिंग और ट्रांसमिशन स्थितियों को परिभाषित करता है, जिन्हें API सेवा Lin_GetStatus() के रिटर्न मान के रूप में रिपोर्ट किया जाता है [SWS_Lin_00233]।

स्थिति मानों को चैनल स्थितियों और फ़्रेम संचालन मानों में विभाजित किया गया है [SWS_Lin_00233]:

  • चैनल स्थिति: LIN_OPERATIONAL सामान्य संचालन का प्रतिनिधित्व करता है, जिसमें LIN चैनल अगले हेडर को प्रसारित करने के लिए तैयार है और पिछले फ़्रेम का कोई डेटा मौजूद नहीं है (उदा. इनिशियलाइज़ेशन के बाद)। इसके विपरीत, LIN_CH_SLEEP चैनल की निष्क्रिय स्थिति (idle state) के लिए है, जिसमें स्लेव नोड्स के लिए वेक-अप डिटेक्शन सक्रिय होता है [SWS_Lin_00233]।
  • चल रहे ट्रांसमिशन: LIN_TX_BUSY हेडर या रिस्पॉन्स के चल रहे ट्रांसमिशन को दर्शाता है। LIN_RX_BUSY एक चल रही रिसेप्शन प्रक्रिया को इंगित करता है, जिसमें कम से कम एक रिस्पॉन्स बाइट पहले ही आ चुका है, लेकिन अंतिम चेकसम बाइट अभी तक नहीं आया है [SWS_Lin_00233]।
  • सफल समापन: LIN_TX_OK सफल ट्रांसमिशन की पुष्टि करता है, जबकि LIN_RX_OK पूर्ण रिस्पॉन्स के त्रुटि-रहित रिसेप्शन को इंगित करता है [SWS_Lin_00233]।
  • त्रुटि स्थितियाँ और टाइमआउट: LIN_NOT_OK डेवलपमेंट या प्रोडक्शन त्रुटियों को दर्शाता है। ट्रांसमिशन ऑपरेशनों में, यह प्रकार LIN_TX_HEADER_ERROR (डेटा बेमेल, पहचानकर्ता पैरिटी त्रुटियों या भौतिक बस त्रुटियों के कारण हेडर ट्रांसमिशन विफलता) और LIN_TX_ERROR (डेटा बेमेल या बस त्रुटियों के कारण रिस्पॉन्स ट्रांसमिशन विफलता) के बीच अंतर करता है। रिसेप्शन पक्ष पर, LIN_RX_ERROR फ़्रेमिंग, ओवररन, चेकसम त्रुटियों या अपूर्ण रिस्पॉन्स जैसी रिसेप्शन त्रुटियों को इंगित करता है; LIN_RX_NO_RESPONSE रिस्पॉन्स बाइट्स के पूर्ण अभाव की रिपोर्ट करता है [SWS_Lin_00233]।

यह उपयोग नोट विनिर्देश AUTOSAR CP R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 34669dffb4d6 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

एन्यूमिरेशन प्रकार Lin_SlaveErrorType एक LIN स्लेव के विशिष्ट त्रुटि प्रकारों का प्रतिनिधित्व करता है, जो हेडर के रिसेप्शन के दौरान और रिस्पॉन्स के ट्रांसमिशन या रिसेप्शन के दौरान पहचाने जाते हैं [SWS_Lin_91140]। प्रकार परिभाषा हेडर फ़ाइल Lin_GeneralTypes.h के माध्यम से उपलब्ध कराई जाती है [SWS_Lin_91140]।

त्रुटि स्थितियाँ और मान श्रेणी

एन्यूमिरेशन LIN संचार के विभिन्न चरणों के दौरान त्रुटियों को कवर करता है [SWS_Lin_91140]:

  • LIN_ERR_HEADER: LIN हेडर प्राप्त करने में त्रुटि का संकेत देता है [SWS_Lin_91140]।
  • LIN_ERR_RESP_STOPBIT: रिस्पॉन्स में फ़्रेमिंग त्रुटि या स्टॉपबिट त्रुटि को इंगित करता है [SWS_Lin_91140]।
  • LIN_ERR_RESP_CHKSUM: प्राप्त रिस्पॉन्स की चेकसम त्रुटि को इंगित करता है [SWS_Lin_91140]।
  • LIN_ERR_RESP_DATABIT: रिस्पॉन्स में प्रेषित डेटा बिट की बिट-मॉनिटरिंग त्रुटि की रिपोर्ट करता है [SWS_Lin_91140]।
  • LIN_ERR_NO_RESP: यह इंगित करता है कि हेडर के लिए कोई उत्तर प्राप्त नहीं हुआ [SWS_Lin_91140]।
  • LIN_ERR_INC_RESP: तब घटित होता है जब कोई अपूर्ण रिस्पॉन्स प्राप्त या प्रेषित किया गया हो [SWS_Lin_91140]।

उपयोग और सीमाएँ

व्याख्या: चूँकि वर्तमान विनिर्देश अंश में कोई ठोस फ़ंक्शन हस्ताक्षर शामिल नहीं हैं, इसलिए यह प्रकार LIN-Interface जैसे उच्च-स्तरीय मॉड्यूल को सूचनाओं में रिटर्न मान या स्थिति पैरामीटर के रूप में काम कर सकता है। प्रश्न Q-6a9c54976345ca2b (खुला) रीएंट्रेंसी, कॉल संदर्भों या सिंक्रोनस या एसिंक्रोनस निष्पादन के बारे में अधिक विवरण अंश में शामिल नहीं हैं।

यह उपयोग संबंधी निर्देश AUTOSAR R20-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Lin
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#f31be93b
Content hash
f31be93b
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

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

विवरण दृश्य

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

आरंभीकरण और स्थिति

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_Init फ़ंक्शन

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

सेवाएँ

Lin_CheckWakeup फ़ंक्शन

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

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
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_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().