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 خدمات متعلقة بالقناة للإطارات وحالة السكون والاستيقاظ. تبدأ القنوات الرئيسية (Master) الإطارات بشكل غير متزامن باستخدام Lin_SendFrame وتقيّمها عبر Lin_GetStatus. تستجيب القنوات التابعة (Slave) لكل رأس (header) يتم استقباله بإشارة إلى LIN Interface، ثم ترسل الاستجابة أو تستقبلها أو تتجاهلها ([SWS_Lin_00280]). يعتمد تحديد الخدمات المتاحة على نوع العقدة المكوّن؛ وتتوفر خدمات Master فقط في حالة وجود قناة Master واحدة على الأقل ([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 وعمليات استدعاء Slave الخاصة بـ 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 (Master فقط) و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]

تعمل قنوات Master وقنوات Slave بشكل مختلف تمامًا. تبدأ وحدة Master الإطارات بشكل غير متزامن باستخدام Lin_SendFrame وتستعلم عن النتيجة لاحقًا باستخدام Lin_GetStatus ([SWS_Lin_00191]، [SWS_Lin_00168]). لا تتوفر هذه الخدمات إلا إذا تم تكوين قناة واحدة على الأقل كوحدة Master ([SWS_Lin_00287]). تبلغ وحدة Slave عن كل رأس عبر 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]). يتم الإبلاغ عن مهلة الأجهزة (hardware timeout) كـ LIN_E_TIMEOUT إلى DEM ([SWS_Lin_00290]). تُرجع قناة Master أخطاء الناقل كحالة، بينما تبلغ قناة Slave عنها عبر 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 متقدمة. كل منها متصل بكتلة 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،
  • لقنوات Slave، عمليات الاستدعاء LinIf_HeaderIndication وLinIf_RxIndication وLinIf_LinErrorIndication ([SWS_Lin_00235]).

يسرد [SWS_Lin_00226] الأنواع المستوردة مثل NetworkHandleType أو EcuM_WakeupSourceType أو Std_ReturnType.

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]). ويتم تكوين معدل البود، ومعرف القناة (channel 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: لقنوات Master فقط، بعد 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_GetStatus الانتقال من LIN_CH_SLEEP_PENDING إلى LIN_CH_SLEEP. سؤال Q-bb592e1d2ab668f0 (مفتوح) يورد الرسم التوضيحي Lin_GetStatus كانتقال في جزء Master، وتتوقع LIN Interface القيمة المرجعة LIN_CH_SLEEP عند التحقق من أمر الانتقال إلى السكون (Go-to-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).

قنوات Master: Lin_SendFrame والاستعلام عن الحالة

في قنوات Master، تبدأ LinIf كل إطار باستخدام Lin_SendFrame غير المتزامنة. ترسل الخدمة رأس LIN والاستجابة إذا لزم الأمر ([SWS_Lin_00191]). ينطبق هذا على مدخلات الاستقبال والإرسال والمدخلات من تابع إلى تابع (Slave-to-Slave) في الجدول الزمني (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). وفي حالة الإطارات التي يتم تشغيلها بواسطة الأحداث (Event-triggered frames)، يسري ما يلي (SWS LIN Interface ص. 127، SWS LIN Interface ص. 129):

  • لا تعتبر LIN_RX_NO_RESPONSE LinIf خطأً.
  • تُعتبر LIN_RX_ERROR تصادمًا وتؤدي إلى التبديل إلى جدول حل التصادم.

لا تتوفر Lin_SendFrame وLin_GoToSleep وLin_GetStatus إلا إذا تم تكوين قناة واحدة على الأقل كـ Master عبر LinNodeType ([SWS_Lin_00287]، [SWS_Lin_00288]، [SWS_Lin_00289]). في R20-11، تم تحديد هذه الخدمات على أنها غير قابلة لإعادة الدخول (non-reentrant) ([SWS_Lin_00168]). وتسمح الإصدارات اللاحقة بإعادة الدخول لقنوات مختلفة (SWS LIN Driver ص. 48)؛ وبالنسبة لـ R20-11، يسري المتطلب.

تنفيذ الإطار على قناة رئيسية (Master)BSW-Task (zyklisch)LinIfLinObere SchichtUse Case: استحقاق إدخال الجدول الزمني (Schedule)LinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKغير متزامن: الرأس (Header) والاستجابة (Response)يعملان بشكل غير حاجبUse Case: فحص الحالة بدءًا من الحد الأقصى لطول الإطارloopلكل استدعاء لـ MainFunction، طالما أن الإطار ما زال جاريًاLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKاستلام البيانات عبر Lin_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()

مخطط تسلسلي: تبدأ وحدة Master إطارًا بشكل غير متزامن باستخدام Lin_SendFrame وتقيّم النتيجة في استدعاءات MainFunction اللاحقة عبر Lin_GetStatus. المصادر: [SWS_Lin_00191]، [SWS_Lin_00168]، SWS LIN Interface ص. 128، SWS LIN Interface ص. 129، SWS LIN Interface ص. 40

قنوات Slave: معالجة الاستجابة الموجهة بالرأس

يجب أن تكون قناة Slave قادرة على استقبال رأس في أي وقت في LIN_CH_OPERATIONAL ([SWS_Lin_00272]). ولكل رأس، يستدعي برنامج التشغيل LinIf_HeaderIndication. في هذه الحالة، يحتوي PduPtr->Pid على PID المستلم، ويشير PduPtr->SduPtr إلى المخزن المؤقت للأجهزة أو المخزن المؤقت الظلي الخاص به ([SWS_Lin_00280]). وإذا لم تكتشف الأجهزة قيم PID غير الصالحة، يمرر برنامج التشغيل 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).

معالجة الرأس والاستجابة على قناة تابعة (Slave)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 auswertenalt‏E_OK و Drc = LIN_FRAMERESPONSE_TXإرسال الاستجابة مع Cs وDl وSduPtrInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-Confirmation‏E_OK و Drc = LIN_FRAMERESPONSE_RXتهيئة الاستقبال مع Cs وDlInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)‏E_NOT_OK أو Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;لا توجد رسالة حتى الرأس التاليخطأ في الناقل أثناء الإرسال/الاستقبال: إلغاء وLinIf_LinErrorIndication(Channel, ErrorStatus)

مخطط تسلسلي: في قناة Slave، يطلق كل رأس إشارة إلى 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

السكون والاستيقاظ واكتشاف الاستيقاظ

يمكن لـ Master فقط إرسال أمر الانتقال إلى السكون (Go-to-sleep). ترسله Lin_GoToSleep بشكل غير متزامن وفقًا لـ LIN 2.1 وتضبط القناة على LIN_CH_SLEEP_PENDING حتى في حالة الإرسال الخاطئ. وإذا تم تكوين LinChannelWakeupSupport، تقوم الخدمة أيضًا بتنشيط مراقبة الناقل ([SWS_Lin_00166]، SWS LIN Driver ص. 43). بالنسبة لوحدات Slave، لا تنطبق 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).

فحص إيقاظ وارد من ناقل LINLIN-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_OKلا يتطلب LIN التحقق من صحة الإيقاظ

مخطط تسلسلي: يتم تمرير الاستيقاظ من الناقل عبر 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_E_STATE_TRANSITION عند حدوث استيقاظ خارج LIN_CH_SLEEP.

يُبلّغ 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).

يُبلّغ برنامج التشغيل عن أخطاء الاتصال بشكل مختلف اعتمادًا على نوع العقدة؛ حيث تُوفرها قنوات Master كحالة لـ Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR عند حدوث أخطاء في إعادة القراءة أو التكافؤ أو الناقل في الترويسة،
  • LIN_TX_ERROR عند حدوث نقل خاطئ للاستجابة،
  • LIN_RX_ERROR عند حدوث أخطاء في التأطير، أو التجاوز، أو المجموع الاختباري، أو عند قصر الاستجابة بشكل مفرط.

تُقاطع قنوات Slave معالجة الإطار وتستدعي LinIf_LinErrorIndication باستخدام Lin_SlaveErrorType ([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 الرئيسي (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. وتُبلّغ قناة Master عن أخطاء اتصال الناقل كحالة، بينما تُبلّغ عنها قناة Slave كمؤشر خطأ. المصادر: [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 لتهيئة وحدة برنامج تشغيل LIN لمنصة AUTOSAR Classic وفقاً للمواصفة [SWS_Lin_00006]. ويتم توفير الواجهة عبر ملف الرأس Lin.h وتتم عنونتها داخلياً عبر معرف الخدمة (Service ID) 0x00 [SWS_Lin_00006].

تنطبق شروط المعلمات والواجهة التالية على استخدام الدالة واستدعائها:

  • معلمات الإدخال: يُتوقع تمرير Config كمعلمة إدخال وحيدة [SWS_Lin_00006]. وهذا عبارة عن مؤشر إلى مجموعة بيانات تكوين برنامج تشغيل LIN من النوع const Lin_ConfigType* [SWS_Lin_00006]. لا توجد معلمات إدخال/إخراج أو معلمات إخراج فقط مخصصة لهذه الواجهة [SWS_Lin_00006].
  • القيمة المعادة: لا ترجع الدالة أي قيمة (void) [SWS_Lin_00006].
  • دلالات التنفيذ: تتم المعالجة بشكل متزامن تماماً (Synchronous)، بحيث تُنفذ خطوات تهيئة برنامج التشغيل مباشرة أثناء استدعاء الدالة [SWS_Lin_00006].

فيما يتعلق بسياق الاستدعاء والتزامن، تم تحديد أن Lin_Init ليست قابلة لإعادة الدخول (Non Reentrant) [SWS_Lin_00006]. تفسير: نظراً لأن الدالة تقوم بتهيئة وحدة برنامج تشغيل LIN بشكل أساسي وليست مصممة لإعادة الدخول، فمن المرجح أن يتم استدعاؤها عادةً أثناء مرحلة بدء تشغيل النظام بالكامل، قبل استخدام خدمات أخرى لبرنامج تشغيل LIN. سؤال Q-d535602a0d4708ce (مفتوح) ومن المحتمل أن يكون الاستدعاء المتزامن أو المتعدد من سياقات تنفيذ مختلفة غير مسموح به.

تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد 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 ولها Service ID 0x0a [SWS_Lin_00160]. ولتحديد القناة، تقبل الدالة المعلمة Channel من نوع البيانات uint8 [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 (مفتوح)

تم إنشاء هذا النص بواسطة ذكاء اصطناعي؛ وتستند جميع البيانات إلى متطلبات معيار 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، والذي يمكن أن يمثل استجابة رئيسية (Master Response) أو استجابة تابعة (Slave Response) أو اتصالاً من تابع إلى تابع (Slave-to-Slave) [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]. تمتلك الدالة معرف الخدمة 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 لإرسال أمر الانتقال إلى وضع السكون (Go-to-Sleep) على قناة LIN المعنونة [SWS_Lin_00166]. تمتلك خدمة المشغل هذه معرف الخدمة 0x06 وتتوفر عبر ملف الرأس Lin.h [SWS_Lin_00166]. يتم تنفيذ الخدمة بشكل غير متزامن بالنسبة إلى الجهة المستدعية [SWS_Lin_00166]. تصريح الدالة هو Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

المعلمات وقيم الإرجاع

يُمرَّر Channel من النوع uint8 كمعلمة تمرير وحيدة، وهو يحدد قناة LIN المراد مخاطبتها [SWS_Lin_00166]. ولا توجد معلمات إدخال أو إخراج إضافية [SWS_Lin_00166].

توفر القيمة المرجعة من النوع Std_ReturnType معلومات حول قبول الطلب [SWS_Lin_00166]:

  • E_OK: قَبِل المشغل أمر الانتقال إلى وضع السكون بنجاح [SWS_Lin_00166].
  • E_NOT_OK: لم يُقبل الأمر بسبب حدوث خطأ تطوير أو خطأ إنتاج [SWS_Lin_00166].

القيود والتزامن

فيما يتعلق بالتزامن، صُرِّح عن الدالة بأنها غير قابلة لإعادة الدخول (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 المطلوبة عبر معلمة الإدخال Channel من النوع uint8، في حين لا تتوفر أي معلمات إدخال أو إخراج أخرى [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]. لذلك، يجب على وحدات البرمجيات المستدعية ضمان إجراء الاستدعاءات بشكل تسلسلي وعدم تراكبها تزامنياً. الدالة معرّفة تحت معرف الخدمة 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 إلى وحدة المشغل Lin لمنصة AUTOSAR Classic [SWS_Lin_00169]. ويتمثل غرضها في توليد نبضة تنبيه (Wake-up Pulse) على قناة الناقل المعنونة ونقل حالة القناة مباشرةً إلى LIN_CH_OPERATIONAL [SWS_Lin_00169]. وتُتاح الواجهة عبر ملف الرأس Lin.h بمعرف الخدمة 0x07 والتوقيع Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

تستقبل الدالة Channel من النوع uint8 كمعلمة إدخال، والتي تحدد قناة 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_WakeupInternal المتوفرة عبر ملف الرأس Lin.h بوضع قناة LIN في حالة التشغيل بشكل غير متزامن LIN_CH_OPERATIONAL، دون إرسال نبضة إيقاظ على ناقل LIN المادي [SWS_Lin_00256]. وهي تعالج طلبات الإيقاظ الداخلية لواجهة LIN الأعلى، حيث لا يُسمح بإرسال إشارة إيقاظ على الناقل [SWS_Lin_00262]. ويتم الاستدعاء عبر المعلمة Channel من النوع uint8. تعيد الدالة 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 (تفسير)، وذلك لإعلام برنامج التشغيل بالخوارزمية التي يتم من خلالها التحقق من المجموع الاختباري للإطار أثناء الإرسال أو الاستقبال. سؤال Q-6d3354059d0641df (مفتوح) وبالتالي، يجب معالجة أخطاء القيم غير الصالحة على مستوى واجهات برمجة التطبيقات لبرنامج التشغيل المعالج أو تكوين الوحدة (تفسير). سؤال Q-06e26f4bcff1e520 (مفتوح)

تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد 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_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 حالة السكون للقناة، حيث يكون التعرف على التنبيه مفعلاً للعقد التابعة [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. سؤال 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#0feddb79
Content hash
0feddb79
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);

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

الخدمات

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

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

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

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

الأنواع

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.

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

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.

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

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

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