CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
دالة CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
الاستخدام والدلالات
تُستخدم الدالة CanTrcv_Init للتهيئة الأساسية للوحدة النمطية CanTrcv وكذلك لجميع أجهزة إرسال واستقبال CAN المتصلة [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. ويتم التنفيذ بشكل متزامن ومحدد على أنه غير قابل لإعادة الدخول [SWS_CanTrcv_00001]. وتتوقع عبر ConfigPtr مؤشرًا إلى تكوين المشغّل كمعامل تمرير، ولا تمتلك قيمة إرجاع [SWS_CanTrcv_00001].
التفاعل وفحص العتاد
أثناء التنفيذ، تقوم الدالة بتنفيذ تسلسلات التهيئة المرتبطة بالعتاد لجميع أجهزة الإرسال والاستقبال المتصلة وفقًا للتكوين، وتدعم بذلك تسلسل تهيئة حزمة AUTOSAR [SWS_CanTrcv_00180]. ومن خلال الاستدعاء، ينتقل كل جهاز إرسال واستقبال بشكل منفصل إما إلى الوضع CANTRCV_TRCVMODE_SLEEP أو إلى CANTRCV_TRCVMODE_STANDBY بناءً على تكوينه المعني [SWS_CanTrcv_00148]. وإذا كان مدعومًا من جانب العتاد، تتحقق CanTrcv_Init أيضًا مما إذا كان هناك حدث استيقاظ مسبق ناتج عن نشاط جهاز الإرسال والاستقبال، وتبلغ عنه عبر EcuM_SetWakeupEvent بالمصدر المحدد عبر CanTrcvWakeupSourceRef إلى EcuM [SWS_CanTrcv_00167].
معالجة الأخطاء
في حالة وجود اتصال غير صحيح أو مفقود مع العتاد (على سبيل المثال عبر دبابيس المنفذ أو SPI)، تبلغ الدالة عن خطأ وقت التشغيل CANTRCV_E_NO_TRCV_CONTROL إلى Default Error Tracer [SWS_CanTrcv_00113]. وإذا كان اكتشاف أخطاء التطوير نشطًا، فسيتم الإبلاغ أيضًا عن CANTRCV_E_BAUDRATE_NOT_SUPPORTED في حال كان معدل الباود المكوّن غير مدعوم بواسطة جهاز الإرسال والاستقبال المعني [SWS_CanTrcv_00168].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_SetOpMode [SWS_CanTrcv_00002] 📄 PDF
Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);
Sets the mode of the Transceiver to the value Op Mode.
تُستخدم الدالة CanTrcv_SetOpMode للتبديل غير المتزامن لنمط تشغيل جهاز إرسال واستقبال CAN [SWS_CanTrcv_00002]. وتأخذ رقم جهاز الإرسال والاستقبال (Transceiver) بالإضافة إلى النمط الهدف المطلوب (OpMode)، والذي يمكن أن يأخذ القيم CANTRCV_TRCVMODE_NORMAL أو CANTRCV_TRCVMODE_STANDBY أو CANTRCV_TRCVMODE_SLEEP [SWS_CanTrcv_00102]. الدالة قابلة لإعادة الدخول لأجهزة إرسال واستقبال مختلفة [SWS_CanTrcv_00002]. تؤكد قيمة الإرجاع E_OK قبول أمر التبديل؛ وتشير E_NOT_OK إلى رفض الطلب، أو وجود خطأ في المعلَمات، أو عدم دعم النمط بواسطة العتاد [SWS_CanTrcv_00002]، [SWS_CanTrcv_00105].
يجب الالتزام بالانتقالات المحددة للحالة عند الاستدعاء:
- إذا كان جهاز الإرسال والاستقبال في النمط
CANTRCV_TRCVMODE_NORMAL، فلا يجوز تمرير سوىCANTRCV_TRCVMODE_STANDBYأوCANTRCV_TRCVMODE_NORMALكنمط هدف [SWS_CanTrcv_00103]. - إذا كان جهاز الإرسال والاستقبال في
CANTRCV_TRCVMODE_STANDBY، فلا يجوز استدعاء الدالة إلا بـCANTRCV_TRCVMODE_SLEEPأوCANTRCV_TRCVMODE_STANDBY[SWS_CanTrcv_00104].
عند تفعيل ميزة اكتشاف أخطاء التطوير (DET)، تُبلّغ الدالة عن الاستدعاءات قبل التهيئة كـ CANTRCV_E_UNINIT [SWS_CanTrcv_00122]، وعن أرقام أجهزة الإرسال والاستقبال غير الصالحة كـ CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123]، وعن أنماط التشغيل غير المسموح بها كـ CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. وإذا طُلب نمط Standby دون أن يكون جهاز الإرسال والاستقبال في Normal أو Standby، يتم إطلاق CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_00120]؛ وعند طلب Sleep خارج Standby أو Sleep يتم إصدار البلاغ CANTRCV_E_TRCV_NOT_STANDBY [SWS_CanTrcv_00121]. وإذا كان DET معطلاً، يتم إرجاع E_NOT_OK في هذه الحالات. وفي حالة انعدام الاتصال بجهاز الإرسال والاستقبال أو حدوث خطأ فيه، يتم الإبلاغ عن خطأ وقت التشغيل CANTRCV_E_NO_TRCV_CONTROL إلى DET وإرجاع E_NOT_OK [SWS_CanTrcv_00114].
إذا كان Selective Wakeup مدعومًا من جانب العتاد، تتحقق الـ API من رايتي الحالة POR وSYSERR [SWS_CanTrcv_00186]. وبمجرد وصول جهاز الإرسال والاستقبال إلى النمط المطلوب، يُخطر الموديول الطبقة الأعلى عبر دالة الرد CanIf_TrcvModeIndication [SWS_CanTrcv_00158].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على متطلبات المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CanTrcv_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
دالة CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] 📄 PDF
Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
Gets the wakeup reason for the Transceiver and returns it in parameter Reason.
دالة CanTrcv_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
دالة CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] 📄 PDF
Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);
En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.
الاستخدام والدلالات
تُستخدم الدالة المتزامنة CanTrcv_SetWakeupMode لتفعيل أحداث الإيقاظ أو تعطيلها أو مسحها لجهاز إرسال واستقبال محدد [SWS_CanTrcv_00009]. ويتم تمرير جهاز الإرسال والاستقبال الهدف إليها عبر المعلَمة Transceiver بالإضافة إلى النمط المطلوب عبر TrcvWakeupMode. عند نجاح تغيير الحالة، تُرجع الدالة E_OK. وإذا تعذر تغيير الحالة أو كانت إحدى المعلَمات غير صالحة، يتم إرجاع E_NOT_OK وتظل الحالة السابقة دون تغيير [SWS_CanTrcv_00009].
أنماط التشغيل والتفاعل
إذا تم استدعاء TrcvWakeupMode بالقيمة CANTRCV_WUMODE_CLEAR، تمسح الدالة حدث إيقاظ مخزن لجهاز الإرسال والاستقبال المعنون [SWS_CanTrcv_00094]. وعند الاستدعاء بـ CANTRCV_WUMODE_ENABLE، يُحدث الموديول حدث الإيقاظ إلى الحالة ”present“، شريطة وجود حدث إيقاظ مخزن ومعلق للناقل المعني بالفعل [SWS_CanTrcv_00111]. تفسير: لتعطيل أحداث الإيقاظ، من المرجح أن توجد قيمة نمط مطابقة بالمثل، حتى لو لم تكن مفصلة بشكل منفصل في مقتطف المتطلبات الحالي. سؤال Q-e0f15d1d0855db81 (مفتوح)
معالجة الأخطاء والتزامن
الدالة قابلة لإعادة الدخول لمثيلات مختلفة من أجهزة الإرسال والاستقبال [SWS_CanTrcv_00009]. ويجب أن يكون مشغّل جهاز الإرسال والاستقبال مهيأ بالكامل قبل الاستدعاء: يؤدي الاستدعاء في حالة غير مهيأة، عند تفعيل اكتشاف أخطاء التطوير (DET)، إلى إطلاق الخطأ CANTRCV_E_UNINIT، وإلا يتم إرجاع E_NOT_OK [SWS_CanTrcv_00127]. ويؤدي الفهرس غير الصالح في Transceiver إلى CANTRCV_E_INVALID_TRANSCEIVER (أو E_NOT_OK) [SWS_CanTrcv_00131]، بينما يُبلّغ وجود قيمة نمط غير مسموح بها في TrcvWakeupMode عن CANTRCV_E_PARAM_TRCV_WAKEUP_MODE أو يُرجع E_NOT_OK [SWS_CanTrcv_00089]. وفي حال عدم وجود اتصال بجهاز الإرسال والاستقبال أو وجود اتصال معيب، يُبلّغ عن خطأ وقت التشغيل CANTRCV_E_NO_TRCV_CONTROL إلى Default Error Tracer ويُرجع E_NOT_OK [SWS_CanTrcv_00117].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] 📄 PDF
Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);
Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
دالة CanTrcv_ClearTrcvWufFlag [SWS_CanTrcv_00214] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);
Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
تمسح الدالة المتزامنة CanTrcv_ClearTrcvWufFlag علامة إطار الاستيقاظ (WUF) في عتاد جهاز إرسال واستقبال CAN المعنون، وتكون متاحة فقط إذا تم تكوين دعم Selective Wakeup (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214]، [SWS_CanTrcv_00175]. في حالة المسح الناجح، يتم إرجاع E_OK، وإلا يتم إرجاع E_NOT_OK [SWS_CanTrcv_00214]، [SWS_CanTrcv_00194].
التفاعل والتسلسل
تُستخدم واجهة برمجة التطبيقات API بواسطة الوحدة CanSM عند الدخول في وضع الطاقة المنخفضة، لضمان عدم فقدان أي حدث استيقاظ بالإطار أثناء انتقال الحالة [SWS_CanTrcv_00194]. وبعد إعادة تعيين علامة WUF، يجب وضع جهاز إرسال واستقبال CAN في وضع الاستعداد (CANTRCV_STANDBY) [SWS_CanTrcv_00194].
التزامن وسياق الاستدعاء
استدعاءات CanTrcv_ClearTrcvWufFlag قابلة لإعادة الدخول لمثيلات جهاز الإرسال والاستقبال المختلفة (Transceiver) [SWS_CanTrcv_00214].
معالجة الأخطاء
- خطأ التطوير (DET): إذا كان اكتشاف الأخطاء نشطًا، تبلغ الدالة عن الخطأ
CANTRCV_E_UNINIT[SWS_CanTrcv_00197] في حالة عدم تهيئة برنامج التشغيل، وتبلغ عن الخطأCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198] في حالة وجود معلمة غير صالحةTransceiver. وإذا كان DET معطلاً، يتم إرجاعE_NOT_OKمباشرة في هذه الحالات [SWS_CanTrcv_00197]، [SWS_CanTrcv_00198]. - خطأ وقت التشغيل: إذا فشل الاتصال بجهاز الإرسال والاستقبال أو كان معيبًا، تبلغ الدالة Default Error Tracer بخطأ وقت التشغيل
CANTRCV_E_NO_TRCV_CONTROLوتُرجعE_NOT_OK[SWS_CanTrcv_00196].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the tim eout flag from the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
تقرأ الدالة المتزامنة CanTrcv_ReadTrcvTimeoutFlag حالة راية المهلة الزمنية مباشرة من عتاد جهاز إرسال واستقبال CAN [SWS_CanTrcv_00215]. وتُستخدم Transceiver كمعلَمة إدخال لتحديد جهاز الإرسال والاستقبال المراد مخاطبته، بينما تُرجع حالة الراية عبر معلَمة الإخراج FlagState من النوع CanTrcv_TrcvFlagStateType* [SWS_CanTrcv_00215]. وتشير قيمة الإرجاع بـ E_OK إلى نجاح القراءة، وبـ E_NOT_OK إلى تعذر تحديد حالة راية المهلة الزمنية [SWS_CanTrcv_00215].
تنطبق الشروط الحدية التالية على الاستخدام والتكامل في مشغّل جهاز الإرسال والاستقبال:
-
التهيئة: تتوفر الـ API حصرًا عند تفعيل دعم العتاد للشبكات الجزئية (
CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. كما أن حاوية التهيئة المرتبطةCanTrcvPartialNetworkلا توجد إلا في ظل هذا الشرط [SWS_CanTrcv_00175]. -
التزامن: تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (
Non Reentrant) [SWS_CanTrcv_00215].
تميز معالجة الأخطاء بحسب حالة ميزة اكتشاف أخطاء التطوير (Development Error Detection, DET):
-
إذا تم تمرير معرّف جهاز إرسال واستقبال غير صالح، تُنشئ الوحدة الخطأ
CANTRCV_E_INVALID_TRANSCEIVERعند تفعيل DET؛ وإذا كان DET معطلاً، يتم إرجاعE_NOT_OKبدلاً من ذلك [SWS_CanTrcv_00199]. -
إذا تم تمرير مؤشر فارغ للمعامل
FlagState(FlagState = NULL)، تُبلّغ الوحدة عن الخطأCANTRCV_E_PARAM_POINTERعند تفعيل DET؛ وإذا كان DET مطفأً، يُرجع الاستدعاءE_NOT_OK[SWS_CanTrcv_00200].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً استناداً إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);
Clears the status of the timeout flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
تُستخدم الدالة المتزامنة CanTrcv_ClearTrcvTimeoutFlag لإعادة تعيين راية انتهاء المهلة في عتاد جهاز الإرسال والاستقبال [SWS_CanTrcv_00216]. وهي متاحة حصرياً إذا كان دعم العتاد لـ Partial Networking مفعلاً عبر معامل التكوين CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175]، [SWS_CanTrcv_00216].
الاستخدام والواجهة
يتم الاستدعاء بشكل متزامن عبر الواجهة في CanTrcv.h مع تحديد جهاز الإرسال والاستقبال المستهدف:
- المعاملات: يُحدد
Transceiverكقيمة إدخال (uint8) قناة جهاز الإرسال والاستقبال المراد مخاطبتها [SWS_CanTrcv_00216]. - قيمة الإرجاع: يشير
Std_ReturnTypeبالقيمةE_OKإلى نجاح مسح راية العتاد، أو بالقيمةE_NOT_OKإلى فشل العملية [SWS_CanTrcv_00216].
معالجة الأخطاء
إذا مُرِّر للدالة معرّف غير صالح للمعامل Transceiver، يُطبَّق تعامل تمايزي مع الأخطاء:
- عند تفعيل اكتشاف أخطاء التطوير (Development Error Detection)، يتم الإبلاغ عن الخطأ
CANTRCV_E_INVALID_TRANSCEIVERإلى DET [SWS_CanTrcv_00201]. - إذا كان اكتشاف أخطاء التطوير معطلاً، يتوقف الاستدعاء ويُرجع
E_NOT_OKإلى المستدعي [SWS_CanTrcv_00201].
التزامن وتكامل النظام
صُنِّفت الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CanTrcv_00216]. لذلك، يجب على الطبقة المستدعية تجنب الاستدعاءات المتوازية لنفس وحدة العتاد أو مزامنتها. بالإضافة إلى ذلك، تُعد الدالة جزءاً من نطاق وظائف الإيقاظ الانتقائي (Partial Networking)؛ كما أن هياكل التكوين المرتبطة بها في الحاوية CanTrcvPartialNetwork لا توجد إلا عند ضبط CanTrcvHwPnSupport [SWS_CanTrcv_00175].
تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.
تُستخدم الدالة المتزامنة وغير القابلة لإعادة الدخول CanTrcv_ReadTrcvSilenceFlag (معرّف الخدمة 0x0d) لقراءة حالة راية الصمت مباشرةً من عتاد جهاز إرسال واستقبال CAN [SWS_CanTrcv_00217]. ويتم توفيرها عبر ملف الرأس CanTrcv.h ولا يجوز تنفيذها بشكل تزامني نظراً لعدم قابليتها لإعادة الدخول [SWS_CanTrcv_00217].
المعلمات وقيم الإرجاع
Transceiver: معامل إدخال (uint8) لمخاطبة نسخة جهاز الإرسال والاستقبال المعنية عبر معرّفها [SWS_CanTrcv_00217].FlagState: معامل إخراج كمؤشر إلىCanTrcv_TrcvFlagStateType، يتم من خلاله إرجاع الحالة المقروءة لراية الصمت [SWS_CanTrcv_00217].- قيمة الإرجاع (
Std_ReturnType): تُرجعE_OKإذا أمكن قراءة حالة العتاد لراية الصمت بنجاح، وإلاE_NOT_OK[SWS_CanTrcv_00217].
معالجة الأخطاء
إذا مُرِّر مؤشر فارغ لمعامل الإخراج الخاص بالدالة (FlagState == NULL)، فإن معالجة الخطأ تعتمد على فحص التطوير: عند تفعيل DET، يُبلّغ مشغّل جهاز إرسال واستقبال CAN عن خطأ التطوير CANTRCV_E_PARAM_POINTER؛ وإذا كان DET معطلاً، يتم إنهاء الاستدعاء فوراً بالقيمة E_NOT_OK [SWS_CanTrcv_00203].
التكوين والتفاعل
توجد الدالة في سياق الإيقاظ الانتقائي (Selective Wakeup). ولا تتوفر حاوية التكوين المقترنة CanTrcvPartialNetwork بالإضافة إلى الواجهة CanTrcv_ReadTrcvSilenceFlag في المشغّل إلا إذا كان دعم العتاد لـ Partial Networking مهيأً عبر CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175]، [SWS_CanTrcv_00217].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);
Service is called by underlying CANIF in case a wake up interrupt is detected.
يتم استدعاء الوظيفة المتزامنة والقابلة لإعادة الدخول CanTrcv_CheckWakeup من قِبل الواجهة التابعة CanIf بمجرد اكتشاف مقاطعة تنبيه [SWS_CanTrcv_00143]. يتم تحديد جهاز إرسال واستقبال CAN المراد فحصه عبر المعامل Transceiver [SWS_CanTrcv_00143]. تشير القيمة المرجعة E_OK إلى قبول الاستدعاء، بينما تشير E_NOT_OK إلى عدم القبول [SWS_CanTrcv_00143].
إذا كان مدعومًا من جانب العتاد، تتحقق الوظيفة مما إذا كان هناك بالفعل حدث تنبيه ناتج عن نشاط على جهاز الإرسال والاستقبال [SWS_CanTrcv_00146]. وإذا كان الأمر كذلك، يتم إرسال إشعار التنبيه إلى EcuM عبر API EcuM_SetWakeupEvent مع مصدر التنبيه المشار إليه في CanTrcvWakeupSourceRef [SWS_CanTrcv_00146].
بالنسبة لمعالجة الأخطاء عند تفعيل اكتشاف أخطاء التطوير (DET)، تنطبق القواعد التالية:
- إذا تم استدعاء الوظيفة قبل تهيئة الوحدة CanTrcv، يتم الإبلاغ عن خطأ التطوير
CANTRCV_E_UNINIT؛ وفي حال إلغاء تفعيل DET، يعيد الاستدعاء بدلاً من ذلكE_NOT_OK[SWS_CanTrcv_00144]. - عند تمرير رقم غير صالح لجهاز الإرسال والاستقبال، تبلغ الوظيفة عن
CANTRCV_E_INVALID_TRANSCEIVER؛ وإذا كان DET غير مفعل، يتم إرجاعE_NOT_OK[SWS_CanTrcv_00145].
تستند ملاحظة الاستخدام هذه حصرياً إلى متطلبات مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] 📄 PDF
Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a remote wake - up pattern (standard CAN wake - up) or by the configured remote wake - up frame.
تهيئ الدالة المتزامنة CanTrcv_SetPNActivationState سلوك الإيقاظ لجهاز إرسال واستقبال CAN لنمطي الاستعداد والسكون ([SWS_CanTrcv_00219]). وهي تحدد ما إذا كان سيتم إيقاظ جهاز الإرسال والاستقبال عبر نمط إيقاظ قياسي (Standard-Wake-up-Pattern) أو بشكل مستهدف عبر إطار إيقاظ عن بُعد مهيأ في إطار Partial Networking ([SWS_CanTrcv_00219]).
الاستخدام والمعلمات
تتوفر الدالة عبر CanTrcv.h بمعرّف الخدمة 0x0f وتُنفَّذ بشكل متزامن ([SWS_CanTrcv_00219]). ويتحكم معامل التمرير الخاص بها ActivationState من النوع CanTrcv_PNActivationType في وضع التشغيل:
PN_ENABLED: يُفعِّل وظيفة إيقاظ PN في جهاز إرسال واستقبال CAN ([SWS_CanTrcv_00219]).PN_DIABLED: يُعطِّل وظيفة إيقاظ PN ([SWS_CanTrcv_00219]).
كقيمة إرجاع، تُرجع الدالة E_OK إذا تم تحويل جهاز الإرسال والاستقبال بنجاح إلى تكوين PN المطلوب. وإذا فشل التحويل، يتم إرجاع E_NOT_OK؛ وفي هذه الحالة يظل التكوين السابق قائماً دون تغيير ([SWS_CanTrcv_00219]).
القيود ومعالجة الأخطاء
الدالة غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_CanTrcv_00219]). وكشرط مسبق إلزامي، يجب تهيئة الوحدة CanTrcv بالكامل قبل الاستدعاء: إذا تم الاستدعاء قبل التهيئة، تُبلّغ الدالة عن الخطأ CANTRCV_E_UNINIT إلى DET عند تفعيل اكتشاف أخطاء التطوير؛ وإذا كان DET معطلاً، يُرفض الاستدعاء فوراً بقيمة الإرجاع E_NOT_OK ([SWS_CanTrcv_00220]).
تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
Requests to check the status of the wakeup flag from the transceiver hardware.
تطلب الدالة CanTrcv_CheckWakeFlag فحص حالة راية الإيقاظ مباشرةً من عتاد جهاز الإرسال والاستقبال ([SWS_CanTrcv_00223]). ويتم الاستدعاء بشكل غير متزامن ويشير عبر معامل الإدخال Transceiver إلى المعرّف المعني لجهاز إرسال واستقبال CAN المراد مخاطبته ([SWS_CanTrcv_00223]).
كقيمة إرجاع، تُقدم الدالة الحالة Std_ReturnType ([SWS_CanTrcv_00223]):
E_OK: تم قبول طلب فحص راية الإيقاظ بنجاح ([SWS_CanTrcv_00223]).E_NOT_OK: تم رفض الطلب ([SWS_CanTrcv_00223]).
فيما يتعلق بالتزامن، تم تحديد أن الدالة غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_CanTrcv_00223]). ونظراً لتحديد الخدمة على أنها غير متزامنة، فإن قيمة الإرجاع تعكس فقط قبول أمر الفحص؛ ومن المرجح أن تتم القراءة الفعلية للعتاد لاحقاً ([SWS_CanTrcv_00223]). سؤال Q-f09b7ff49c24cea8 (مفتوح) لا توجد رموز أخطاء محددة أو بلاغات DET أو DEM مسرودة لهذه الخدمة.
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF
void CanTrcv_DeInit (void);
De - initializes the Can Trcv module.
تُستخدم الوظيفة المتزامنة CanTrcv_DeInit لإلغاء تهيئة برنامج تشغيل جهاز إرسال واستقبال CAN [SWS_CanTrcv_91001]. وهي لا تقبل معاملات، ولا تعيد أي قيمة، ومحددة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CanTrcv_91001]. يتم توفير الواجهة عبر الترويسة CanTrcv.h بمعرف الخدمة 0x10 [SWS_CanTrcv_91001].
عند التنفيذ، تنقل الوظيفة عتاد جهاز إرسال واستقبال CAN إلى الحالة NOT_ACTIVE [SWS_CanTrcv_91003]. وبما أن CanTrcv_DeInit غير قابلة لإعادة الدخول، يجب ألا تتم الاستدعاءات بشكل مقاطِع أو متزامن مع بعضها البعض [SWS_CanTrcv_91001].
فيما يتعلق بمعالجة الأخطاء وشروط التسلسل، ينطبق ما يلي:
- إذا كان اكتشاف أخطاء التطوير (Development Error Detection) مفعلًا للوحدة، تتحقق الوظيفة من وضع تشغيل جهاز الإرسال والاستقبال. إذا لم يكن جهاز الإرسال والاستقبال في الوضع
CANTRCV_TRCVMODE_NORMALعند الاستدعاء، يبلغCanTrcv_DeInitعن خطأ التطويرCANTRCV_E_TRCV_NOT_NORMAL[SWS_CanTrcv_91005]. - ينتج عن ذلك شرط مسبق وظيفي للمُستدعي، وهو تشغيل جهاز الإرسال والاستقبال في الحالة
CANTRCV_TRCVMODE_NORMALقبل إلغاء التهيئة، لتفادي الإبلاغ عن خطأ في وضع التطوير [SWS_CanTrcv_91005].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دالة CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF
void CanTrcv_MainFunction (void);
Service to scan all busses for wake up events and perform these event.
تُستخدم الدالة CanTrcv_MainFunction كخدمة مشغّل مركزية لمشغّل جهاز إرسال واستقبال CAN لمراقبة جميع قنوات الناقل المتصلة بحثًا عن أحداث الاستيقاظ التي حدثت ولتنفيذ هذه الأحداث [SWS_CanTrcv_00013]. وهي تمتلك بنية C void CanTrcv_MainFunction(void)، ومحددة تحت معرّف الخدمة الست عشري 0x06 وتعمل بشكل متزامن بدون معاملات تمرير أو قيم إرجاع [SWS_CanTrcv_00013].
للمراقبة الدورية، تفحص الوظيفة بشكل مستهدف جميع النواقل الموجودة في حالتي الخمول STANDBY أو SLEEP [SWS_CanTrcv_00112]. إذا اكتشف برنامج التشغيل حدث تنبيه على أحد النواقل المراقبة، يضبط CanTrcv_MainFunction راية حدث تنبيه داخلية، وذلك لبدء التنفيذ والمعالجة اللاحقين لهذه الأحداث في النظام [SWS_CanTrcv_00112].
فيما يتعلق بسياق الاستدعاء، يتم توفير الواجهة عبر ملف الترويسة SchM_CanTrcv.h [SWS_CanTrcv_00013]. تفسير: يشير توفيرها عبر ترويسة SchM هذه إلى أنه من المحتمل أن يتم استدعاء الوظيفة دوريًا بواسطة مجدول BSW في سياق مهمة دورية، لمسح قنوات الناقل بانتظام في الحالات غير النشطة. سؤال Q-588109b1111a0f43 (مفتوح) لا يذكر مقتطف المواصفة الحالي أي رموز أخطاء محددة، أو رسائل إلى DET أو DEM، أو متطلبات تتعلق بقابلية إعادة الدخول (Reentrancy).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF
void CanTrcv_MainFunctionDiagnostics (void);
Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
تقرأ الوظيفة CanTrcv_MainFunctionDiagnostics (معرف الخدمة 0x08) دوريًا حالة تشخيص جهاز الإرسال والاستقبال وتضبط أخطاء الإنتاج والتطوير المقابلة [SWS_CanTrcv_00218]. الوظيفة بدون معاملات، وليس لها قيمة مرجعة (void CanTrcv_MainFunctionDiagnostics(void))، وتُوفر عبر الترويسة SchM_CanTrcv.h [SWS_CanTrcv_00218].
سياق الاستدعاء والتزامن
نظرًا لتوفيرها عبر SchM_CanTrcv.h، يُفترض أن الوظيفة الرئيسية تُستدعى دوريًا بواسطة مجدول BSW (SchM) في سياق مهمة (تفسير). سؤال Q-ab1f6c55abcb8d4b (مفتوح) وبما أن المواصفة لا تشير إلى قابلية إعادة الدخول، فيجب افتراض تنفيذ غير قابل لإعادة الدخول.
معالجة الأخطاء والتفاعل مع DEM
يتم تقييم التشخيص وفقًا للتكوين ودعم العتاد:
- إذا كانت الراية
BUSERRالمُبلّغ عنها من BSW مضبوطة، تستدعي الوظيفة APIDem_SetEventStatusباستخدام المعاملEventIdكـCANTRCV_E_BUS_ERRORوEventStatusكـDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - إذا أُعيد ضبط الراية
BUSERR، يستدعيCanTrcv_MainFunctionDiagnosticsAPIDem_SetEventStatusبنفسEventId(CANTRCV_E_BUS_ERROR) والحالةDEM_EVENT_STATUS_PASSED[SWS_CanTrcv_00227].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. وهو لا يغني عن دراسة مواصفات AUTOSAR ذات الصلة.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع CanTrcv_ConfigType [SWS_CanTrcv_00209] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and settings affecting all transceivers. Furthermore it contains pointers to transceiver configuration structures. The con tents of the initialization data structure are CAN transceiver hardware specific.
نوع CanTrcv_PNActivationType [SWS_CanTrcv_00210] 📄 PDF
Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.
نوع CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211] 📄 PDF
Provides the state of a flag in the transceiver hardware.
يمثل نوع التعداد CanTrcv_TrcvFlagStateType حالة راية مفردة في عتاد جهاز الإرسال والاستقبال [SWS_CanTrcv_00211]. ويتم توفير التصريح لموديولات البرمجيات والمشغّلات المستخدمة عبر ملف الرأس CanTrcv.h [SWS_CanTrcv_00211].
نطاق القيم ثنائي التكوين ويميز بين حالتين منفصلتين وفقًا لـ [SWS_CanTrcv_00211]:
CANTRCV_FLAG_SET: يشير إلى أن الراية المعنية معيّنة في عتاد جهاز الإرسال والاستقبال [SWS_CanTrcv_00211].CANTRCV_FLAG_CLEARED: يشير إلى أن الراية في عتاد جهاز الإرسال والاستقبال ممسوحة أو غير معيّنة [SWS_CanTrcv_00211].
فيما يخص الاستخدام العملي، تجدر الإشارة إلى أن النوع يُستخدم بشكل أساسي للتمثيل القياسي لحالات السجلات القريبة من العتاد [SWS_CanTrcv_00211]. تفسير: من المرجح أن تقرأ الطبقات المستدعية مثل مشغّل واجهة CAN أو موديولات التشخيص هذا النوع عادةً عبر دوال استعلام من خلال معلَمات مؤشر أو قيمة إرجاع لتقييم أي رايات للأخطاء أو الإيقاظ. سؤال Q-1b75b4baf2f4c6e3 (مفتوح) وبما أن النوع نفسه لا يتضمن منطق دوال أو قيود إعادة دخول أو بلاغات DET، فإن التحقق من نطاقات القيم الصالحة يقع على عاتق الواجهات المعالجة.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو بمثابة دليل توجيهي. وتظل مواصفات AUTOSAR هي المرجع الملزم.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF
Operating modes of the CAN Transceiver Driver.
يُعرّف نوع التعداد CanTrcv_TrcvModeType وفقًا لـ [SWS_CanTrcv_00163] أنماط التشغيل القياسية لمشغّل جهاز إرسال واستقبال CAN (CanTrcv). ويتم توفير التصريح عبر ملف الرأس Can_GeneralTypes.h للواجهات المشتركة بين البرمجيات في مكدس اتصالات AUTOSAR.
نطاق القيم والمعاني
تتوفر ثلاث قيم للتعداد وفقًا لـ [SWS_CanTrcv_00163]:
CANTRCV_TRCVMODE_NORMAL(القيمة0x00): يميّز نمط تشغيل جهاز الإرسال والاستقبال الاعتيادي لإرسال واستقبال رسائل CAN.CANTRCV_TRCVMODE_STANDBY: يمثل نمط الاستعداد (Standby) لجهاز الإرسال والاستقبال، حيث يتوقف الاتصال ويكون استهلاك الطاقة منخفضًا.CANTRCV_TRCVMODE_SLEEP: يمثل نمط النوم (Sleep) لجهاز الإرسال والاستقبال لتحقيق أقصى توفير للطاقة.
الاستخدام والقيود
يُستخدم التعداد كتمثيل موحد لنوع البيانات لحالة العتاد لجهاز إرسال واستقبال CAN [SWS_CanTrcv_00163]. تفسير: من المرجح أن يُستخدم النوع أساسًا لتمرير المعلَمات في واجهات التحكم والاستعلام الخاصة بمشغّل جهاز الإرسال والاستقبال، والتي من خلالها تحث الطبقات الأعلى مثل واجهة CAN على تغيير النمط أو قراءة الحالة الحالية. سؤال Q-95fceb6988818621 (مفتوح) وبما أن مقتطف المواصفة الحالي لا يحتوي على أخطاء وقت التشغيل (DET/DEM) أو بيانات إعادة الدخول أو توقيعات محددة للدوال، فيجب أخذ سياقات الاستدعاء وقواعد التزامن من دوال المشغّل المستخدمة في كل حالة.
يستند إشعار الاستخدام هذا حصرًا إلى بيانات المواصفة من AUTOSAR R20-11 الخاصة بـ [SWS_CanTrcv_00163].
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] 📄 PDF
This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.
يُستخدم نوع التعداد CanTrcv_TrcvWakeupModeType للتحكم في جهاز إرسال واستقبال CAN فيما يتعلق بأحداث الإيقاظ وإشعارات الإيقاظ [SWS_CanTrcv_00164]. ويتم توفير تعريف النوع عبر ملف الرأس Can_GeneralTypes.h ليكون متاحًا على مستوى المكدس بأكمله [SWS_CanTrcv_00164].
يشمل نطاق القيم ثلاثة أنماط تحكم لجهاز الإرسال والاستقبال المعنون في كل حالة [SWS_CanTrcv_00164]:
CANTRCV_WUMODE_ENABLE(القيمة0x00): يُفعل الإشعار بأحداث الإيقاظ على جهاز الإرسال والاستقبال المعنون [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(القيمة0x01): يُعطل الإشعار بأحداث الإيقاظ على جهاز الإرسال والاستقبال المعنون [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(القيمة0x02): يمسح حدث إيقاظ مخزن في جهاز الإرسال والاستقبال المعنون [SWS_CanTrcv_00164].
تفسير: من المرجح عمليًا أن يُستخدم النوع أساسًا كمعلَمة تمرير في دوال التحكم الخاصة بمشغّل جهاز الإرسال والاستقبال، وذلك لتشغيل إشعارات الإيقاظ أو إيقاف تشغيلها ديناميكيًا وكذلك لإعادة ضبط أحداث الإيقاظ المكتشفة. سؤال Q-c53d60cdad0442ca (مفتوح) وبما أن المواصفة، بوصفها نوع تعداد مجرد، لا تحدد توقيعات دوال أو دلالات تنفيذ أو رموز أخطاء أو قواعد تزامن، فإن هذه الجوانب تتحدد بالكامل بواسطة واجهات المشغّل المستدعية والمعالجة [SWS_CanTrcv_00164].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي؛ ولا يمكن ضمان صحته.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع CanTrcv_TrcvWakeupReasonType [SWS_CanTrcv_00165] 📄 PDF
This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTrcv- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTrcv@rel:R20-11#9d48a7d4- Content hash
9d48a7d4- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني