DEENESPTFRRUARHIKOZHNL

CAN Transceiver Driver (CanTrcv)

ModulCanTrcv (CAN Transceiver Driver)
BSW-Modul-ID70
Standard-Header#include "CanTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_CANTransceiverDriver.pdf
ClusterCAN

Руководство по модулюСОЗДАНО ИИ

Управляет внешними CAN-трансиверами: рабочие режимы, обнаружение пробуждения и селективное пробуждение с помощью Wake-up-фреймов.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 61900c5cf397 Происхождение Открытые вопросы (4)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Управляет внешними CAN-трансиверами: рабочие режимы, обнаружение пробуждения и селективное пробуждение с помощью Wake-up-фреймов.

CanTrcv управляет внешними CAN-трансиверами и отображает их на обобщенную модель режимов с NORMAL, STANDBY и SLEEP. CanIf запрашивает смену режима асинхронно; о достигнутых режимах драйвер сообщает через индикацию [SWS_CanTrcv_00158]. Дополнительно он обнаруживает пробуждения, передает информацию о них в EcuM и при наличии соответствующего аппаратного обеспечения поддерживает селективное пробуждение с помощью Wake-up-фреймов. Главное граничное условие: режим SLEEP достижим только из STANDBY [SWS_CanTrcv_00104], и при заблокированных уведомлениях события пробуждения не должны теряться.

Драйвер CAN-трансивера (CanTrcv) инкапсулирует внешние CAN-трансиверы за обобщенной моделью режимов. За счет этого ComM и EcuM остаются отвязанными от конкретного аппаратного обеспечения (SWS CanTrcv с. 19). Для каждого типа аппаратного трансивера существует отдельный экземпляр драйвера [SWS_CanTrcv_00016]. Обращение к драйверу осуществляется через CanIf, а аппаратурой он управляет через Dio и Spi, которые должны быть инициализированы до CanTrcv_Init [SWS_CanTrcv_00099]. После Init каждый трансивер, в зависимости от конфигурации канала, находится в состоянии STANDBY или SLEEP [SWS_CanTrcv_00148]. CanTrcv_DeInit переводит в NOT_ACTIVE [SWS_CanTrcv_91003].

CanTrcv_SetOpMode переключает между NORMAL, STANDBY и SLEEP [SWS_CanTrcv_00102]. Переход в SLEEP разрешен только из STANDBY [SWS_CanTrcv_00104]. Переход в текущий режим не является ошибкой [SWS_CanTrcv_00161]. Функция работает асинхронно: как только целевой режим достигнут, CanTrcv сообщает об этом через CanIf_TrcvModeIndication [SWS_CanTrcv_00158].

zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

Диаграмма состояний: Init приводит к STANDBY или SLEEP, SLEEP достижим только через STANDBY, DeInit приводит к NOT_ACTIVE. Источники: SWS CanTrcv с. 19, [SWS_CanTrcv_00148]

CanIf проверяет пробуждения с помощью CanTrcv_CheckWakeup. Эта функция сообщает об обнаруженных пробуждениях через EcuM_SetWakeupEvent [SWS_CanTrcv_00146]. CanTrcv_MainFunction опрашивает шины в STANDBY и SLEEP [SWS_CanTrcv_00112]. CanTrcv_SetWakeupMode может блокировать или разрешать уведомления, а также удалять сохраненные события пробуждения. При этом ни одно пробуждение не должно быть потеряно [SWS_CanTrcv_00095].

Трансиверы с поддержкой PN (CanTrcvHwPnSupport) дополнительно пробуждаются по сконфигурированным Wake-up-фреймам [SWS_CanTrcv_00175]. При завершении работы (Shutdown) CanSM сначала сбрасывает флаг WUF, а затем переключает в STANDBY [SWS_CanTrcv_00194]. После этого CanSM асинхронно инициирует проверку флага Wake [SWS_CanTrcv_00224].

В случае ошибки действует следующее:

  • При включенном DET регистрируются ошибки разработки, при отключенном DET API возвращают E_NOT_OK [SWS_CanTrcv_00050].
  • О нарушениях связи с аппаратным обеспечением драйвер сообщает как об ошибке времени выполнения CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006].
  • Об ошибках шины CanTrcv_MainFunctionDiagnostics сообщает как CANTRCV_E_BUS_ERROR в DEM [SWS_CanTrcv_00206].
Shutdown с Partial Networking (SPI асинхронно)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Часть I: сброс флага WUF, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: Часть II: Sleep контроллера, проверка флага WakeCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Диаграмма последовательности: при PN-Shutdown сбрасывается флаг WUF, трансивер переключается в STANDBY и асинхронно проверяется флаг Wake. Источники: SWS CanTrcv с. 55, [SWS_CanTrcv_00194]

Роль: драйвер для внешних CAN-трансиверов под CanIf

Драйвер CAN-трансивера (CanTrcv) управляет внешними компонентами CAN-трансиверов. Он отображает их аппаратные состояния на обобщенную модель рабочих режимов. Эта модель призвана единообразно охватывать множество доступных трансиверов. Согласно спецификации, ради этого допускается наличие одного или двух лишних состояний для конкретного чипа, однако тем самым ComM и EcuM изолируются от аппаратного обеспечения (SWS CanTrcv с. 19). Для этого аппаратура трансивера должна предоставлять интерфейс, который можно отобразить на данную модель [SWS_CanTrcv_00098].

На верхнем уровне непосредственным партнером является CanIf:

Обратная связь осуществляется через CanIf_TrcvModeIndication, который относится к обязательным интерфейсам [SWS_CanTrcv_00085]. Для индикаций PN перечислены дополнительные коллбеки CanIf [SWS_CanTrcv_00086]. На нижнем уровне CanTrcv использует Dio и Spi для управления аппаратурой, а также типы Icu, DEM и EcuM, как показывает список импорта [SWS_CanTrcv_00084]. Время ожидания при смене состояний драйвер реализует с помощью Tm_BusyWait1us16bit [SWS_CanTrcv_00230]. CanTrcv_MainFunction и CanTrcv_MainFunctionDiagnostics вызываются планировщиком BSW (SWS CanTrcv с. 47).

kontext EcuM EcuM / Integrationscode CanTrcv CanTrcv EcuM->CanTrcv CanTrcv_Init SchM BSW-Scheduler (SchM) SchM->CanTrcv CanTrcv_MainFunction CanTrcv_MainFunctionDiagnostics CanSM CanSM CanIf CanIf CanSM->CanIf CanIf_SetTrcvMode CanIf_ClearTrcvWufFlag CanIf_CheckTrcvWakeFlag CanIf->CanSM CanSM_TransceiverModeIndication CanIf->CanTrcv SetOpMode, GetOpMode, GetBusWuReason, SetWakeupMode, CheckWakeup, ClearTrcvWufFlag, CheckWakeFlag CanTrcv->EcuM EcuM_SetWakeupEvent CanTrcv->CanIf CanIf_TrcvModeIndication CanIf_ClearTrcvWufFlagIndication CanIf_CheckTrcvWakeFlagIndication Dio Dio CanTrcv->Dio Dio_WriteChannel Spi Spi CanTrcv->Spi SPI-Sequenzen Icu Icu CanTrcv->Icu Icu_EnableNotification Icu_DisableNotification Tm Tm CanTrcv->Tm Tm_BusyWait1us16bit Det Det CanTrcv->Det Ошибки разработки и времени выполнения Dem Dem CanTrcv->Dem Dem_SetEventStatus (CANTRCV_E_BUS_ERROR) HW CAN-Transceiver-Hardware Dio->HW Pins Spi->HW Register

Контекстная диаграмма: CanTrcv обслуживается CanIf, EcuM и планировщиком, а также обращается к аппаратуре через Dio, Spi и Icu. Об ошибках он сообщает в DET и DEM. Источники: [SWS_CanTrcv_00084], [SWS_CanTrcv_00085], [SWS_CanTrcv_00146], SWS EcuM с. 35.

Инициализация, жизненный цикл и деинициализация

Перед вызовом CanTrcv_Init [SWS_CanTrcv_00001] окружение должно инициализировать все используемые драйверы, в частности Spi и Dio [SWS_CanTrcv_00099]. Раздел документа дополняет это двумя требованиями по времени: инициализация должна выполняться вскоре после подачи питания (Power-up), а нижележащие службы должны быть быстрыми и синхронными (SWS CanTrcv с. 26).

CanTrcv_Init инициализирует все подключенные трансиверы в соответствии с их последовательностями инициализации и конфигурацией из ConfigPtr [SWS_CanTrcv_00180]. Содержимое CanTrcv_ConfigType зависит от аппаратного обеспечения [SWS_CanTrcv_00209]. После этого каждый трансивер находится в CANTRCV_TRCVMODE_SLEEP или CANTRCV_TRCVMODE_STANDBY; это настраивается для каждого трансивера индивидуально [SWS_CanTrcv_00148].

Инициализация одновременно проверяет наличие событий пробуждения:

  • Если аппаратура поддерживает это, CanTrcv_Init проверяет, вызвала ли активность трансивера пробуждение. О результате она сообщает через EcuM_SetWakeupEvent с указанием источника из CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
  • Для трансиверов с поддержкой PN конфигурационная последовательность выполняется повторно, если установлен флаг POR или SYSERR. В противном случае сохраненная в трансивере конфигурация остается в силе [SWS_CanTrcv_00182].
  • Установленный флаг POR, кроме того, передается через CanTrcvPorWakeupSourceRef как событие пробуждения [SWS_CanTrcv_00183].

Сообщение POR характерно для трансиверов со встроенным источником питания. Для них пассивное пробуждение выглядит для ECU как сброс по включению питания (Power-on-Reset) (SWS EcuM с. 70).

init start vor Окружение инициализировало Spi и Dio start->vor init CanTrcv_Init(ConfigPtr) vor->init komm Связь с трансивером корректна? init->komm noctrl Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL komm->noctrl нет baud Скорость передачи поддерживается? komm->baud да baudErr DET: CANTRCV_E_BAUDRATE_NOT_SUPPORTED baud->baudErr нет seq Выполнить последовательности инициализации согласно конфигурации baud->seq да porsys Аппаратная часть PN: установлен POR или SYSERR? seq->porsys rekonf Повторно выполнить последовательность конфигурации porsys->rekonf да wu Пробуждение вследствие активности трансивера? porsys->wu Нет / нет аппаратной части PN por POR-Flag gesetzt? rekonf->por porWu EcuM_SetWakeupEvent (CanTrcvPorWakeupSourceRef) por->porWu да por->wu нет porWu->wu wuMeld EcuM_SetWakeupEvent (CanTrcvWakeupSourceRef) wu->wuMeld да ziel Сконфигурированное для канала состояние: CANTRCV_TRCVMODE_STANDBY или CANTRCV_TRCVMODE_SLEEP wu->ziel нет wuMeld->ziel ende ziel->ende

Диаграмма деятельности: инициализация проверяет доступность аппаратуры, обрабатывает POR/SYSERR, передает информацию о пробуждениях в EcuM и завершается для каждого канала в состоянии STANDBY или SLEEP. Порядок проверок является интерпретацией. Источники: [SWS_CanTrcv_00180], [SWS_CanTrcv_00182], [SWS_CanTrcv_00183], [SWS_CanTrcv_00167], [SWS_CanTrcv_00148].

CanTrcv_DeInit [SWS_CanTrcv_91001] переводит аппаратуру трансивера в состояние NOT_ACTIVE [SWS_CanTrcv_91003]. В этом состоянии ее можно настроить с помощью новой последовательности конфигурации (SWS CanTrcv с. 49). Ожидаемым исходным состоянием является CANTRCV_TRCVMODE_NORMAL; в противном случае проверка ошибок разработки сообщает о CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].

Рабочие режимы NORMAL, STANDBY и SLEEP

CanTrcv_TrcvModeType определяет три режима [SWS_CanTrcv_00163]. CanTrcv_SetOpMode [SWS_CanTrcv_00002] переключает внутреннее состояние адресуемого трансивера в один из этих режимов [SWS_CanTrcv_00102]. Для переходов действует следующее:

  • Из NORMAL пользователь запрашивает только STANDBY или NORMAL [SWS_CanTrcv_00103].
  • Из STANDBY он запрашивает только SLEEP или STANDBY [SWS_CanTrcv_00104].
  • Согласно схеме, режим NORMAL достижим из всех трех режимов (SWS CanTrcv с. 19).
  • Переход в текущий режим разрешен и не является ошибкой [SWS_CanTrcv_00161].
  • Если аппаратура не поддерживает запрошенный режим, функция возвращает E_NOT_OK [SWS_CanTrcv_00105].
zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

Диаграмма состояний: после Init трансивер находится в STANDBY или SLEEP. SLEEP достижим только через STANDBY, NORMAL — из всех режимов. DeInit переводит в NOT_ACTIVE. Источники: SWS CanTrcv с. 19, [SWS_CanTrcv_00148], [SWS_CanTrcv_00103], [SWS_CanTrcv_00104], [SWS_CanTrcv_91003]

CanTrcv_SetOpMode работает асинхронно: E_OK означает лишь то, что запрос был принят (SWS CanTrcv с. 33). Только когда целевой режим достигнут, CanTrcv вызывает CanIf_TrcvModeIndication с абстрактным CanIf-TransceiverId [SWS_CanTrcv_00158]. CanSM игнорирует такое сообщение для SLEEP, поскольку SLEEP запрашивается только интеграционным кодом (SWS CanSM с. 94).

В аппаратном обеспечении с поддержкой PN CanTrcv_SetOpMode дополнительно проверяет флаги POR и SYSERR [SWS_CanTrcv_00186]. После POR он повторно инициализирует трансивер [SWS_CanTrcv_00187]. CanTrcv_GetOpMode [SWS_CanTrcv_00005] синхронно возвращает текущее состояние [SWS_CanTrcv_00106].

Смена режима трансивераCanSMCanIfCanTrcvDio / SpiCanIf_SetTrcvMode(TransceiverId, TransceiverMode)CanTrcv_SetOpMode(Transceiver, OpMode)optPN-Hardware (CanTrcvHwPnSupport = TRUE)Проверить флаги POR/SYSERR,повторно инициализировать после PORDio_WriteChannel или SPI-последовательностьE_OK (Anforderung angenommen)E_OKасинхронно: целевой режим будетдостигнут позжеCanIf_TrcvModeIndication(TransceiverId, TransceiverMode)CanSM_TransceiverModeIndication(TransceiverId, TransceiverMode)Сообщение для SLEEP игнорируется CanSM

Диаграмма последовательности: смена режима принимается синхронно и позже подтверждается индикацией через CanIf в CanSM. Источники: SWS CanTrcv с. 52, [SWS_CanTrcv_00158], [SWS_CanTrcv_00186]

Пробуждение: обнаружение, причина и управление уведомлениями

Пробуждение обнаруживается по прерыванию или по опросу (SWS EcuM с. 179). При этом CanIf опрашивает функцию CanTrcv_CheckWakeup [SWS_CanTrcv_00143] через CanIf_CheckWakeup (SWS CanIf с. 56). Если аппаратное обеспечение поддерживает это, данная функция валидирует пробуждение по активности трансивера и сообщает о нем через EcuM_SetWakeupEvent [SWS_CanTrcv_00146].

CanTrcv_MainFunction [SWS_CanTrcv_00013] выполняет поиск пробуждений на всех шинах в состояниях STANDBY и SLEEP и устанавливает флаг пробуждения [SWS_CanTrcv_00112]. Предположительно, она релевантна прежде всего при конфигурации с опросом; конфигурационная схема предусматривает для этого значение CanTrcvWakeUpByPolling (ECUC-Parameter с. 185). Вопрос Q-6144fdedb98cea44 (открытый)

CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] возвращает обнаруженную трансивером причину пробуждения [SWS_CanTrcv_00107]. Возможными значениями являются, например, CANTRCV_WU_BY_BUS, CANTRCV_WU_INTERNALLY или CANTRCV_WU_RESET [SWS_CanTrcv_00165]. То, насколько детально можно различить причины, сильно зависит от аппаратного обеспечения (SWS CanTrcv с. 35).

Для прерываний пробуждения драйвер использует каналы ICU. Icu_EnableNotification и Icu_DisableNotification он вызывает только в том случае, если сконфигурирован CanTrcvIcuChannelRef [SWS_CanTrcv_00171]. При переходе в STANDBY он активирует каналы [SWS_CanTrcv_00172]. Место в документе из R24-11 дополнительно называет деактивацию при переходе в NORMAL (SWS CanTrcv с. 23).

Распознавание пробуждения через трансиверTransceiver-HardwareEcuM / IntegrationscodeCanIfCanTrcvaltWake-up per InterruptWake-up-Interrupt (ICU-Kanal)CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)Wake-up durch Transceiver-Валидировать активностьEcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Wake-up per PollingCanTrcv_MainFunction: Busse inПроверить STANDBY/SLEEP, установить флагCanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)EcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Use Case: Ursache abfragenCanIf_GetTrcvWakeupReason(TransceiverId, TrcvWuReasonPtr)CanTrcv_GetBusWuReason(Transceiver, reason)E_OK, reason = z. B. CANTRCV_WU_BY_BUSE_OK

Диаграмма последовательности: пробуждение проверяется в трансивере по прерыванию или опросу через CanIf, сообщается в EcuM и позже запрашивается по его причине. Источники: SWS EcuM с. 179, SWS EcuM с. 138, SWS EcuM с. 140, [SWS_CanTrcv_00146], [SWS_CanTrcv_00112]

CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] управляет уведомлением о пробуждении через CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164]:

  • CANTRCV_WUMODE_DISABLE: пробуждения не сообщаются, но сохраняются внутренне [SWS_CanTrcv_00093].
  • CANTRCV_WUMODE_ENABLE: сохраненное пробуждение сообщается как «present» [SWS_CanTrcv_00111].
  • CANTRCV_WUMODE_CLEAR: сохраненное пробуждение удаляется [SWS_CanTrcv_00094].

В заблокированной фазе ни одно пробуждение не должно быть потеряно [SWS_CanTrcv_00095]. Удаление служит для того, чтобы отбрасывать сохраненные пробуждения при заблокированном уведомлении под контролем вышележащего уровня [SWS_CanTrcv_00150]. CanIf передает запрос через CanIf_SetTrcvWakeupMode дальше в CanTrcv (SWS CanIf с. 100).

Селективное пробуждение (Partial Networking)

При Partial Networking узлы остаются в режиме пониженного энергопотребления до тех пор, пока их не разбудят предварительно определенные кадры пробуждения (WUF). Таким образом, трансиверы с поддержкой PN реагируют не только на паттерн пробуждения (WUP), но и на эти кадры (SWS CanTrcv с. 27). Поддерживает ли это аппаратное обеспечение, показывает CanTrcvHwPnSupport [SWS_CanTrcv_00174]. Только если этот параметр равен TRUE, существуют контейнер CanTrcvPartialNetwork и пять API: CanTrcv_GetTrcvSystemData, CanTrcv_ClearTrcvWufFlag, CanTrcv_ReadTrcvTimeoutFlag, CanTrcv_ClearTrcvTimeoutFlag и CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00175].

То, на какие кадры реагирует трансивер, определяют CanTrcvPnFrameCanId, CanTrcvPnFrameCanIdMask и CanTrcvPnFrameDataMask [SWS_CanTrcv_00177]. CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] включает функцию пробуждения PN с помощью PN_ENABLED [SWS_CanTrcv_00221] и выключает ее с помощью PN_DISABLED [SWS_CanTrcv_00222].

Ключевым является процесс завершения работы (Shutdown):

  1. CanSM сбрасывает флаг WUF через CanTrcv_ClearTrcvWufFlag, чтобы при переходе в режим пониженного энергопотребления не было потеряно пробуждение по кадру. Затем трансивер переходит в STANDBY [SWS_CanTrcv_00194].
  2. CanTrcv подтверждает удаление с помощью CanIf_ClearTrcvWufFlagIndication [SWS_CanTrcv_00195].
  3. В завершение CanSM запрашивает асинхронную проверку CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223]. Результат CanTrcv сообщает через CanIf_CheckTrcvWakeFlagIndication [SWS_CanTrcv_00224].

Для подключения по SPI спецификация описывает асинхронный (SWS CanTrcv с. 55) и синхронный вариант (SWS CanTrcv с. 57).

Shutdown с Partial Networking (SPI асинхронно)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Часть I: сброс флага WUF, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: Часть II: Sleep контроллера, проверка флага WakeCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Диаграмма последовательности: при PN-Shutdown очищается флаг WUF, трансивер переключается в STANDBY, и после перехода контроллера в режим сна асинхронно проверяется флаг пробуждения. Источники: SWS CanTrcv с. 55, SWS CanTrcv с. 56, SWS CanSM с. 36, [SWS_CanTrcv_00194], [SWS_CanTrcv_00224]

Для диагностики CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] считывает конфигурацию и статус трансивера как uint32 [SWS_CanTrcv_00189]. Флаг таймаута и флаг тишины (Silence) считываются и сбрасываются через CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215], CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] и CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217]. Их состояние указывает CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211].

Конфигурация и привязка к экземплярам

Для каждого аппаратного типа трансивера существует экземпляр драйвера, обслуживающий все компоненты этого типа [SWS_CanTrcv_00016]. Схема CanIf показывает случай одинаковых контроллеров с разными типами трансиверов, что в таком случае требует двух драйверов трансиверов (SWS CanIf с. 34). Каждый канал описывается контейнером CanTrcvChannel (кратность 1..*). Он содержит, помимо прочего, CanTrcvHwPnSupport, CanTrcvInitState, CanTrcvWakeupByBusUsed и ссылки на источники пробуждения (SWS CanTrcv с. 70).

Одно отличие между источниками касается состояния после инициализации (Init). Конфигурационная схема называет CanTrcvOpModeNormal значением по умолчанию для CanTrcvInitState (ECUC-Parameter с. 187). Однако нормативным для R20-11 является [SWS_CanTrcv_00148], предусматривающее после Init только SLEEP или STANDBY. Конфигурации с неподдерживаемыми назначениями разделов драйвер должен отклонять [SWS_CanTrcv_00231].

Поведение при ошибке

Ошибки разработки из [SWS_CanTrcv_00050] следуют единому шаблону. При включенном DET API сообщают:

Если DET отключен, API возвращают в этих случаях E_NOT_OK.

Если связь с трансивером нарушена, драйвер сообщает об ошибке времени выполнения CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006] через Det_ReportRuntimeError [SWS_CanTrcv_00085]. Это применимо, например, в Init [SWS_CanTrcv_00113], SetOpMode [SWS_CanTrcv_00114], GetOpMode [SWS_CanTrcv_00115], SetWakeupMode [SWS_CanTrcv_00117], GetTrcvSystemData [SWS_CanTrcv_00190] и ClearTrcvWufFlag [SWS_CanTrcv_00196]. Исключением является CanTrcv_GetBusWuReason: в этом случае согласно [SWS_CanTrcv_00116] оно возвращает E_OK. О неподдерживаемой скорости передачи данных Init сообщает как о CANTRCV_E_BAUDRATE_NOT_SUPPORTED [SWS_CanTrcv_00168].

fehler start aufruf API-Aufruf, z. B. CanTrcv_SetOpMode start->aufruf init Modul initialisiert? aufruf->init eUninit DET: CANTRCV_E_UNINIT (DET aus: E_NOT_OK) init->eUninit нет id ID трансивера действителен? init->id да eId DET: CANTRCV_E_INVALID_TRANSCEIVER (DET aus: E_NOT_OK) id->eId нет ptr Zeigerparameter != NULL? id->ptr да ePtr DET: CANTRCV_E_PARAM_POINTER (DET aus: E_NOT_OK) ptr->ePtr нет modus Режим / переход допустим? ptr->modus ja / kein Zeiger eModus DET: CANTRCV_E_PARAM_TRCV_OPMODE, CANTRCV_E_TRCV_NOT_NORMAL или CANTRCV_E_TRCV_NOT_STANDBY (DET отключен: E_NOT_OK) modus->eModus нет hw Аппаратный доступ через Dio / Spi modus->hw да komm Kommunikation korrekt? hw->komm eKomm Det_ReportRuntimeError: CANTRCV_E_NO_TRCV_CONTROL Возврат E_NOT_OK (GetBusWuReason: E_OK) komm->eKomm нет ok E_OK komm->ok да

Диаграмма деятельности: вызовы API проходят проверки на ошибки разработки, а затем обращение к аппаратному обеспечению с обработкой ошибок времени выполнения. Порядок проверок является интерпретацией. Источники: [SWS_CanTrcv_00050], [SWS_CanTrcv_00122], [SWS_CanTrcv_00123], [SWS_CanTrcv_00132], [SWS_CanTrcv_00114], [SWS_CanTrcv_00116]

Ошибки шины обрабатываются как производственные ошибки. Необходимым условием является то, чтобы аппаратное обеспечение могло отличать ошибки шины от других ошибок [SWS_CanTrcv_00178] и чтобы CanTrcvBusErrFlag = TRUE [SWS_CanTrcv_00205]. В таком случае CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] циклически считывает флаг BUSERR. Она сообщает о CANTRCV_E_BUS_ERROR как о DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206] или DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227] в DEM [SWS_CanTrcv_00228] [SWS_CanTrcv_00229]. Событие DEM соотносится через CanTrcvDemEventParameterRefs (SWS CanTrcv с. 78).

Дальнейшие подробные доказательства

Сгенерированное ИИ руководство на основе требований и фрагментов документов для CanTrcv (Classic, R20-11), содержащихся в полезной нагрузке. Фрагменты документов из других релизов использованы в качестве дополнения; места их расхождения указаны. Утверждения, помеченные как интерпретация, не являются нормативными.

CAN Transceiver Driver (CanTrcv)

Controls physical bus transceiver states and wakeup detection on CAN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Initializes the Can Trcv module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 69eb894dc0d7 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 62862d69beb4 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция 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_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_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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7ddf69d5a7ae Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 10eca0b578cb Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a58e25cc2696 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 58509e1d0c7c Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: be15c667bc30 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и нереентерабельная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3bcebb868332 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ed5e02955479 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3347f44cb215 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f6b7395c6c6d Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8f993661c2b3 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 958c670ba046 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция 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 установлен, функция вызывает API Dem_SetEventStatus с параметром EventId в качестве CANTRCV_E_BUS_ERROR и EventStatus в качестве DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206].
  • Если флаг BUSERR сброшен, CanTrcv_MainFunctionDiagnostics вызывает API Dem_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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4ef0e0487226 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b8ef2e8c5d35 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ceecd083c1cd Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип 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

Инициализация и состояние

CanTrcv_DeInit функция

De - initializes the Can Trcv module.

void CanTrcv_DeInit (void);
CanTrcv_GetVersionInfo функция

Gets the version of the module and returns it in Version Info.

void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
CanTrcv_Init функция

Initializes the Can Trcv module.

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Сервисы · Get…

CanTrcv_GetBusWuReason функция

Gets the wakeup reason for the Transceiver and returns it in parameter Reason.

Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
CanTrcv_GetOpMode функция

Gets the mode of the Transceiver and returns it in Op Mode.

Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);

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.

Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);

Сервисы · Set…

CanTrcv_SetOpMode функция

Sets the mode of the Transceiver to the value Op Mode.

Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);

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.

Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
CanTrcv_SetWakeupMode функция

En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.

Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);

Сервисы · Прочее

CanTrcv_CheckWakeFlag функция

Requests to check the status of the wakeup flag from the transceiver hardware.

Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
CanTrcv_CheckWakeup функция

Service is called by underlying CANIF in case a wake up interrupt is detected.

Std_ReturnType CanTrcv_CheckWakeup (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.

Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);

Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);

Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (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.

Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);

Циклические

CanTrcv_MainFunction функция

Service to scan all busses for wake up events and perform these event.

void CanTrcv_MainFunction (void);

Reads the transceiver diagnostic status periodically and sets product/ development accordingly.

void CanTrcv_MainFunctionDiagnostics (void);

Типы

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.

Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.

Provides the state of a flag in the transceiver hardware.

Operating modes of the CAN Transceiver Driver.

This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.

This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver