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 сбрасывает флаг Wake-up Frame (WUF) в аппаратной части адресуемого приемопередатчика CAN и доступна только в том случае, если сконфигурирована поддержка селективного пробуждения (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]. - Ошибки времени выполнения: если связь с приемопередатчиком завершается сбоем или содержит ошибки, функция сообщает об ошибке времени выполнения
CANTRCV_E_NO_TRCV_CONTROLв Default Error Tracer и возвращает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):
-
Если передан недопустимый идентификатор трансивера, модуль при активном DET формирует ошибку
CANTRCV_E_INVALID_TRANSCEIVER; при отключённом DET вместо этого возвращаетсяE_NOT_OK[SWS_CanTrcv_00199]. -
Если для
FlagStateпередан нулевой указатель (FlagState = NULL), модуль при активном DET сообщает об ошибкеCANTRCV_E_PARAM_POINTER; если 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 (Service-ID 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]. Через параметр Transceiver адресуется проверяемый CAN-трансивер [SWS_CanTrcv_00143]. Возвращаемое значение E_OK сигнализирует о принятии вызова, тогда как E_NOT_OK указывает на непринятие [SWS_CanTrcv_00143].
Если это поддерживается аппаратно, функция проверяет, действительно ли имеет место событие пробуждения из-за активности на трансивере [SWS_CanTrcv_00146]. Если это так, сообщение о пробуждении передается в EcuM через API EcuM_SetWakeupEvent с источником Wakeup, на который ссылается 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-трансивера для режимов Standby и Sleep ([SWS_CanTrcv_00219]). Она определяет, пробуждается ли трансивер по стандартному шаблону пробуждения (Wake-up Pattern) или целенаправленно по сконфигурированному кадру удаленного пробуждения (Remote Wake-up Frame) в рамках Partial Networking ([SWS_CanTrcv_00219]).
Использование и параметры
Функция предоставляется через CanTrcv.h с Service-ID 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 с Service-ID 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-трансивера для мониторинга всех подключенных каналов шины на предмет возникших событий Wake-up, а также для выполнения этих событий [SWS_CanTrcv_00013]. Она имеет C-сигнатуру void CanTrcv_MainFunction(void), определена под шестнадцатеричным Service-ID 0x06 и работает синхронно без входных параметров или возвращаемых значений [SWS_CanTrcv_00013].
Для циклического мониторинга функция целенаправленно сканирует все шины, находящиеся в состояниях покоя STANDBY или SLEEP [SWS_CanTrcv_00112]. Если драйвер обнаруживает событие пробуждения на одной из отслеживаемых шин, CanTrcv_MainFunction устанавливает внутренний флаг Wake-up-Event-Flag, чтобы инициировать последующее выполнение и обработку этих событий в системе [SWS_CanTrcv_00112].
Что касается контекста вызова, интерфейс предоставляется через заголовочный файл SchM_CanTrcv.h [SWS_CanTrcv_00013]. Интерпретация: предоставление через этот SchM-заголовок указывает на то, что функция, предположительно, периодически вызывается планировщиком BSW в контексте циклической задачи для регулярного опроса каналов шины в неактивных состояниях. Вопрос Q-588109b1111a0f43 (открытый) Специфические коды ошибок, сообщения в DET или DEM, а также требования к реентерабельности в данном фрагменте спецификации не упоминаются.
Этот текст был сгенерирован ИИ на основе спецификации 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 (Service-ID 0x08) периодически считывает статус диагностики трансивера и устанавливает соответствующие производственные ошибки и ошибки разработки [SWS_CanTrcv_00218]. Функция не имеет параметров, не имеет возвращаемого значения (void CanTrcv_MainFunctionDiagnostics(void)) и предоставляется через заголовок SchM_CanTrcv.h [SWS_CanTrcv_00218].
Контекст вызова и параллелизм
Вследствие предоставления через SchM_CanTrcv.h основная функция, предположительно, циклически вызывается планировщиком BSW (SchM) в контексте задачи (интерпретация). Вопрос Q-ab1f6c55abcb8d4b (открытый) Поскольку спецификация не указывает на реентерабельность, следует исходить из нереентерабельного выполнения.
Обработка ошибок и взаимодействие с DEM
Анализ диагностики выполняется в зависимости от конфигурации и аппаратной поддержки:
- Если сообщенный BSW флаг
BUSERRустановлен, функция вызывает APIDem_SetEventStatusс параметромEventIdв качествеCANTRCV_E_BUS_ERRORиEventStatusв качествеDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - Если флаг
BUSERRсброшен,CanTrcv_MainFunctionDiagnosticsвызывает APIDem_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#5339e92c- Content hash
5339e92c- 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 · Немецкий оригинал