DEENESPTFRRUARHIKOZHNL

Ethernet Driver (Eth)

ModulEth (Ethernet Driver)
BSW-Modul-ID88
Standard-Header#include "Eth.h"
SWS-SpezifikationAUTOSAR_SWS_EthernetDriver.pdf
ClusterEthernet Services

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

Подключает контроллеры Ethernet к стеку AUTOSAR: инициализация, режимы, передача, приём и диагностика.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 7ed698a8fca3 Происхождение Открытые вопросы (3)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Подключает контроллеры Ethernet к стеку AUTOSAR: инициализация, режимы, передача, приём и диагностика.

Драйвер Ethernet подключает контроллеры Ethernet к интерфейсу Ethernet Interface. Он инициализирует контроллеры, асинхронно переключает их коммуникацию Rx/Tx между ETH_MODE_DOWN и ETH_MODE_ACTIVE и сообщает о смене режима с помощью индикации ([SWS_Eth_00276]). Передача выполняется в два этапа: запрос буфера, затем передача. Каждую отправку драйвер квитирует с помощью E_OK или E_NOT_OK ([SWS_Eth_00243]). Кроме того, он обеспечивает приём с фильтрацией адресов, доступ к MII, временные метки и диагностические счётчики. При отключении заблокированные буферы передачи должны быть освобождены.

Драйвер Ethernet Eth абстрагирует один или несколько контроллеров Ethernet для интерфейса Ethernet Interface (EthIf). При этом EthIf может объединять несколько драйверов от различных производителей (SWS Eth с. 17). Результаты Eth передаёт через EthIf_RxIndication, EthIf_TxConfirmation и EthIf_CtrlModeIndication ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]). Другими смежными модулями являются EthTrcv, EthSwt, DET и DEM ([SWS_Eth_00241], [SWS_Eth_00120]).

kontext EcuM EcuM Eth Eth (Ethernet-Treiber) EcuM->Eth Eth_Init EthIf EthIf (Ethernet Interface) EthIf->Eth Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit, Eth_Receive, Eth_TxConfirmation, Eth_WriteMii / Eth_ReadMii Eth->EthIf EthIf_RxIndication, EthIf_TxConfirmation, EthIf_CtrlModeIndication EthTrcv EthTrcv (Transceiver-Treiber) Eth->EthTrcv EthTrcv_WriteMiiIndication, EthTrcv_ReadMiiIndication EthSwt EthSwt (Switch-Treiber) Eth->EthSwt EthSwt_EthRxProcessFrame, EthSwt_EthTxPrepareFrame u. a. Det Det Eth->Det Det_ReportError Dem Dem Eth->Dem Dem_SetEventStatus HW Ethernet-Controller (Hardware) Eth->HW Доступ к регистрам и буферам

Контекстная диаграмма: вызывающие компоненты и получатели callback драйвера Ethernet. Источники: [SWS_Eth_00119], [SWS_Eth_00120], SWS Eth с. 17

Eth_Init деактивирует коммуникацию Rx/Tx всех сконфигурированных контроллеров, конфигурирует их и отменяет ожидающие запросы ([SWS_Eth_00027], [SWS_Eth_00275]). Асинхронная Eth_SetControllerMode переключает между ETH_MODE_DOWN и ETH_MODE_ACTIVE ([SWS_Eth_91009], [SWS_Eth_00276]). При отключении драйвер освобождает заблокированные буферы передачи ([SWS_Eth_00280]). Результат возвращается через EthIf_CtrlModeIndication, в режиме опроса — из Eth_MainFunction ([SWS_Eth_00240]).

Для передачи вышележащий уровень запрашивает буфер с помощью Eth_ProvideTxBuffer и передаёт его с помощью Eth_Transmit ([SWS_Eth_00077], [SWS_Eth_00087]). Подтверждением служит E_OK или E_NOT_OK ([SWS_Eth_00243], [SWS_Eth_00256]). Eth_Receive считывает кадры из FIFO и сообщает, имеются ли ещё кадры ([SWS_Eth_00095], [SWS_Eth_00162]). Кадры с несоответствующим адресом назначения Eth отбрасывает ([SWS_Eth_00245], [SWS_Eth_00246]).

Отправка кадра в режиме опроса (polling)Obere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, предоставленная длинаBUFREQ_OK, PufferСкопировать полезные данные в буферEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Инициировать отправкуE_OKE_OKUse Case: zyklisch in EthIf_MainFunctionTx()Eth_TxConfirmation(CtrlIdx)altSenden erfolgreichEthIf_TxConfirmation(..., E_OK)Senden fehlgeschlagenEthIf_TxConfirmation(..., E_NOT_OK)UL_TxConfirmation(CtrlIdx, BufIdx)

Диаграмма последовательности: запрос буфера, передача и подтверждение в режиме опроса. Источники: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], SWS EthIf с. 87

Дополнительные функции включают доступ к MII, который в R20-11 является асинхронным ([SWS_Eth_00058]), аппаратные временные метки ([SWS_Eth_00190]), службы статистики ([SWS_Eth_00233]) и опциональный Credit Based Shaper (DRAFT, [SWS_Eth_00263]). Об ошибках Eth сообщает в DET как об ошибках разработки ([SWS_Eth_00016]). Производственные ошибки, такие как ETH_E_ACCESS или ETH_E_RX_FRAMES_LOST, направляются в DEM ([SWS_Eth_00173], [SWS_Eth_00174]).

Роль в стеке Ethernet и границы системы

Драйвер Ethernet Eth расположен как низкоуровневый аппаратный модуль под интерфейсом Ethernet Interface (EthIf). Согласно схеме базовой структуры стека, EthIf объединяет один или несколько драйверов Eth различных производителей, каждый из которых имеет собственные типы контроллеров (SWS Eth с. 17). Вверх Eth предоставляет такие службы, как Eth_Init, Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit и Eth_Receive ([SWS_Eth_00027], [SWS_Eth_91009], [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00095]). Результаты он возвращает через callbacks EthIf_RxIndication, EthIf_TxConfirmation и EthIf_CtrlModeIndication ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]).

Другими смежными модулями являются следующие компоненты:

Если несколько контроллеров совместно используют периферийные ресурсы, Eth эмулирует независимые контроллеры для вышележащих уровней. Координацию в таком случае берут на себя вышележащие уровни ([SWS_Eth_00258]).

kontext EcuM EcuM Eth Eth (Ethernet-Treiber) EcuM->Eth Eth_Init EthIf EthIf (Ethernet Interface) EthIf->Eth Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit, Eth_Receive, Eth_TxConfirmation, Eth_WriteMii / Eth_ReadMii Eth->EthIf EthIf_RxIndication, EthIf_TxConfirmation, EthIf_CtrlModeIndication EthTrcv EthTrcv (Transceiver-Treiber) Eth->EthTrcv EthTrcv_WriteMiiIndication, EthTrcv_ReadMiiIndication EthSwt EthSwt (Switch-Treiber) Eth->EthSwt EthSwt_EthRxProcessFrame, EthSwt_EthTxPrepareFrame u. a. Det Det Eth->Det Det_ReportError Dem Dem Eth->Dem Dem_SetEventStatus HW Ethernet-Controller (Hardware) Eth->HW Доступ к регистрам и буферам

Контекстная диаграмма: Eth вызывается из EthIf и EcuM и передаёт сообщения в EthIf, EthTrcv, EthSwt, DET и DEM. Источники: [SWS_Eth_00119], [SWS_Eth_00120], [SWS_Eth_00241], SWS Eth с. 17

От Eth_Init до ETH_MODE_ACTIVE: запуск и режимы контроллера

Eth_Init получает указатель на структуру post-build Eth_ConfigType ([SWS_Eth_00027], [SWS_Eth_00156]). Для каждого контроллера текущей EthConfigSet функция выполняет следующие шаги ([SWS_Eth_00275], DRAFT; более старая редакция [SWS_Eth_00034] устарела):

  • деактивировать коммуникацию Rx/Tx,
  • сбросить ожидающие прерывания,
  • сконфигурировать параметры контроллера и ресурсы приёма/передачи,
  • отменить ожидающие запросы.

Eth_StateType различает ETH_STATE_UNINIT и ETH_STATE_INIT и служит для Development Error Detection ([SWS_Eth_00159]). Более свежие редакции обобщают правило вызова: за исключением Eth_GetVersionInfo и запланированных функций, таких как Eth_MainFunction, службы разрешены только после инициализации (SWS Eth с. 27). В R20-11 это регулируется для каждой службы через проверку на ETH_E_UNINIT, например в [SWS_Eth_00066].

Запуск драйвера Ethernet с первым обращением к MIIEcuMEthIfEthEthTrcvИнтерпретация: порядок вызовов EcuM;Eth_Init должен выполняться до обращений к MIIEth_Init(CfgPtr)Rx/Tx aller Controller deaktivieren,Очистить прерывания, параметры и буферысконфигурировать, сбросить заданияEthTrcv_Init(...)EthIf_WriteMii(...)Eth_WriteMii(CtrlIdx, TrcvIdx, RegIdx, RegVal)E_OK (Dienst angenommen)E_OKОбращение к MII выполняется асинхронно в R20-11EthTrcv_WriteMiiIndication(...)EthIf_Init(...)

Диаграмма последовательности: запуск с Eth_Init и первым асинхронно квитированным доступом к MII со стороны драйвера трансивера. Источники: [SWS_Eth_00275], [SWS_Eth_00058], [SWS_Eth_00241], SWS EthIf с. 84

В R20-11 действует Eth_SetControllerMode в асинхронной, нереентерабельной версии [SWS_Eth_91009]; она заменяет [SWS_Eth_00041]. Оба режима действуют следующим образом ([SWS_Eth_00276]):

  • ETH_MODE_DOWN: драйвер деактивирует Rx/Tx и сбрасывает все буферы. Заблокированные и ожидающие буферы передачи освобождаются ([SWS_Eth_00280], [SWS_Eth_00281]).
  • ETH_MODE_ACTIVE: драйвер активирует все буферы и коммуникацию Rx/Tx.

Результат смены режима Eth сообщает асинхронно через EthIf_CtrlModeIndication ([SWS_Eth_00119]). В режиме опроса Eth_MainFunction распознаёт изменение и вызывает этот callback ([SWS_Eth_00171], [SWS_Eth_00240]). Текущее состояние возвращает Eth_GetControllerMode ([SWS_Eth_91010], [SWS_Eth_00277]).

Eth_ModeType дополнительно поддерживает ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST. При ETH_MODE_DOWN аппаратное обеспечение может инициировать процедуру перехода в спящий режим (sleep), например, в случае аппаратного обеспечения OA-TC10 ([SWS_Eth_91008]). Однако описание параметров Eth_SetControllerMode указывает только ETH_MODE_DOWN и ETH_MODE_ACTIVE ([SWS_Eth_91009]).

zustand cluster_init ETH_STATE_INIT (je Controller) start Start UNINIT ETH_STATE_UNINIT start->UNINIT DOWN Rx/Tx deaktiviert (Interpretation: entspricht ETH_MODE_DOWN) UNINIT->DOWN Eth_Init: деактивировать Rx/Tx, сконфигурировать, сбросить задания ACTIVE ETH_MODE_ACTIVE Rx/Tx aktiv DOWN->ACTIVE Eth_SetControllerMode(ETH_MODE_ACTIVE): Puffer aktivieren, Rx/Tx aktivieren; danach EthIf_CtrlModeIndication ACTIVE->DOWN Eth_SetControllerMode(ETH_MODE_DOWN): деактивировать Rx/Tx, сбросить буферы, освободить заблокированные и ожидающие буферы передачи

Диаграмма состояний: состояние драйвера UNINIT/INIT и для каждого контроллера режимы DOWN и ACTIVE с обязанностями при переходе. Источники: [SWS_Eth_00159], [SWS_Eth_00275], [SWS_Eth_00276], [SWS_Eth_00280]

Активация контроллера EthernetEthSMEthIfEthEthIf_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)Eth_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)E_OKАктивировать буферы передачи и приема,Rx/Tx-Kommunikation aktivierenoptPolling-BetriebEth_MainFunction(): Moduswechsel erkanntEthIf_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)EthSM_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)

Диаграмма последовательности: активация через EthSM с синхронным приёмом и асинхронной индикацией режима. Источники: [SWS_Eth_91009], [SWS_Eth_00119], [SWS_Eth_00240], SWS EthIf с. 85

Тракт передачи: запрос буфера, передача, подтверждение

Передача происходит в два этапа. Сначала Eth_ProvideTxBuffer на основе Priority выбирает передающую FIFO. Служба возвращает индекс типа Eth_BufIdxType, указатель на буфер и через LenBytePtr предоставленную длину ([SWS_Eth_00077], [SWS_Eth_00175]). Возможные возвращаемые значения: BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY и BUFREQ_E_OVFL. Буфер остаётся заблокированным до тех пор, пока не последует Eth_Transmit с этим индексом (SWS Eth с. 91).

Затем Eth_Transmit с помощью FrameType, целевого MAC-адреса и флага TxConfirmation инициирует передачу ([SWS_Eth_00087], [SWS_Eth_00160]). При этом драйвер формирует заголовок Ethernet (SWS Eth с. 93). Eth_Transmit является реентерабельной для различных индексов буферов и контроллеров ([SWS_Eth_00087]).

Если запрошено подтверждение, Eth вызывает EthIf_TxConfirmation с E_OK. В режиме прерываний это происходит из подпрограммы обработки прерывания, а в режиме опроса — из Eth_TxConfirmation ([SWS_Eth_00243], [SWS_Eth_00100]). Если передача не удалась, результатом является E_NOT_OK ([SWS_Eth_00256]). Вышележащие уровни могут рассчитывать на то, что за каждым Eth_Transmit следует подтверждение (SWS Eth с. 32).

На диаграмме опроса EthIf_MainFunctionTx вызывает функцию Eth_TxConfirmation (SWS EthIf с. 87). В режиме прерываний эту задачу выполняет Eth_TxIrqHdlr_<CtrlIdx> (SWS EthIf с. 88). Время освобождения буфера драйвером остаётся на усмотрение реализации (SWS Eth с. 93).

Отправка кадра в режиме опроса (polling)Obere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, предоставленная длинаBUFREQ_OK, PufferСкопировать полезные данные в буферEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Инициировать отправкуE_OKE_OKUse Case: zyklisch in EthIf_MainFunctionTx()Eth_TxConfirmation(CtrlIdx)altSenden erfolgreichEthIf_TxConfirmation(..., E_OK)Senden fehlgeschlagenEthIf_TxConfirmation(..., E_NOT_OK)UL_TxConfirmation(CtrlIdx, BufIdx)

Диаграмма последовательности: запрос буфера, заполнение, передача и подтверждение в режиме опроса, с ветвями успешного выполнения и ошибки. Источники: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], [SWS_Eth_00256], SWS EthIf с. 87

Тракт приёма и фильтр адресов

Eth_Receive считывает кадр из FIFO, адресованной через FifoIdx. Служба является реентерабельной для различных FIFO, но не для одной и той же ([SWS_Eth_00095]). RxStatusPtr возвращает ETH_RECEIVED, ETH_NOT_RECEIVED или ETH_RECEIVED_MORE_DATA_AVAILABLE ([SWS_Eth_00162]). Интерпретация: опрашивающий вызывающий компонент, вероятно, может повторять Eth_Receive до тех пор, пока сообщается о наличии дальнейших кадров. Вопрос Q-8f1484413f850bda (открытый) Кто именно выполняет вызов в режиме опроса, не определено; предположительно, это EthIf.

О приёме Eth сообщает через EthIf_RxIndication, либо из прерывания, либо из Eth_Receive ([SWS_Eth_00244]). Широковещательные кадры (broadcast) при этом отображаются как таковые ([SWS_Eth_00153]). Более свежие редакции называют этот параметр QueueIdx (SWS Eth с. 110).

Собственный адрес источника устанавливает Eth_SetPhysAddr; Eth_GetPhysAddr считывает его ([SWS_Eth_00151], [SWS_Eth_00052]). Eth_UpdatePhysAddrFilter добавляет групповые адреса назначения (multicast) в фильтр приёма с помощью ETH_ADD_TO_FILTER и удаляет их с помощью ETH_REMOVE_FROM_FILTER ([SWS_Eth_00152], [SWS_Eth_00163], [SWS_Eth_00150]).

Если адрес назначения совпадает, Eth уведомляет вышележащий уровень; в противном случае он отбрасывает кадр ([SWS_Eth_00245], [SWS_Eth_00246]). Если аппаратное обеспечение не поддерживает фильтрацию, инициализация включает режим promiscuous ([SWS_Eth_00146]). Адрес 00:00:00:00:00:00 сужает фильтр до собственного адреса unicast и отключает promiscuous mode ([SWS_Eth_00147]; ср. SWS Eth с. 74).

Прием в режимах опроса (polling) и прерыванийEthIfEthUse Case: Polling-BetriebИнтерпретация: EthIf циклически вызывает Eth_ReceiveloopInterpretation: solange RxStatus == ETH_RECEIVED_MORE_DATA_AVAILABLEEth_Receive(CtrlIdx, FifoIdx, RxStatusPtr)Считать кадр из FIFO,проверить адрес назначения по фильтруaltRahmen empfangen, Adresse passtEthIf_RxIndication(...)Адрес не совпадаетRahmen verwerfenRxStatusUse Case: Interrupt-BetriebEmpfangs-InterruptEthIf_RxIndication(...)

Диаграмма последовательности: приём в режиме опроса и в режиме прерываний с проверкой адреса перед индикацией. Источники: [SWS_Eth_00095], [SWS_Eth_00162], [SWS_Eth_00244], [SWS_Eth_00246]

filter a Eth_UpdatePhysAddrFilter(CtrlIdx, PhysAddrPtr, Action) z PhysAddrPtr = 00:00:00:00:00:00? a->z reset Ограничить фильтр собственным индивидуальным адресом (unicast), завершить Promiscuous Mode z->reset да act Action? z->act нет rx Кадр поступает reset->rx add ETH_ADD_TO_FILTER: разрешить прием для адреса act->add добавить rem ETH_REMOVE_FROM_FILTER: Empfang blockieren act->rem entfernen hw Контроллер поддерживает фильтрацию? add->hw rem->hw hwf Hardware-Filter nutzen hw->hwf да swf Filterung in Software (Promiscuous Mode seit Initialisierung) hw->swf нет hwf->rx swf->rx m Адрес назначения соответствует фильтру? rx->m ind EthIf_RxIndication m->ind да drop Rahmen verwerfen m->drop нет

Диаграмма деятельности: обновление фильтра с особым случаем нулевого адреса, аппаратная или программная фильтрация и приём либо отбрасывание при получении. Источники: [SWS_Eth_00146], [SWS_Eth_00147], [SWS_Eth_00163], [SWS_Eth_00245], [SWS_Eth_00246]

Доступ к трансиверу, аппаратные временные метки и диагностические счётчики

Eth_WriteMii и Eth_ReadMii в R20-11 являются асинхронными и нереентерабельными ([SWS_Eth_00058], [SWS_Eth_00064]). О завершении Eth сообщает через EthTrcv_WriteMiiIndication или EthTrcv_ReadMiiIndication соответственно ([SWS_Eth_00241], [SWS_Eth_00242]). Доступ к регистрам Clause 45 осуществляется через регистры 13 и 14 согласно Annex 22D ([SWS_Eth_00273], [SWS_Eth_00274]). Доступ активируется через EthCtrlEnableMii ([SWS_Eth_00069]). R24-11, напротив, описывает Eth_WriteMii как синхронный (SWS Eth с. 95); для R20-11 действует асинхронное определение.

Функции временных меток активируются через EthGlobalTimeSupport ([SWS_Eth_00210], [SWS_Eth_00211]). В частности, действует следующее:

  • Eth_GetCurrentTime считывает аппаратное время как Eth_TimeStampType с 48 битами секунд плюс наносекунды ([SWS_Eth_00181], [SWS_Eth_00178]).
  • Eth_EnableEgressTimeStamp активирует формирование временных меток для каждого буфера; отключение не предусмотрено ([SWS_Eth_00186]; SWS Eth с. 111).
  • Eth_GetEgressTimeStamp и Eth_GetIngressTimeStamp считывают временные метки в контексте TxConfirmation или RxIndication соответственно ([SWS_Eth_00190], [SWS_Eth_00195]; SWS Eth с. 89).

Временные метки качества ETH_UNCERTAIN или ETH_INVALID отбрасываются вышележащим уровнем ([SWS_Eth_00177]). Начиная с R23-11 Eth_GetCurrentTime устарела (SWS Eth с. 82); в R20-11 эта служба является нормативной.

Метка времени отправки через драйвер EthernetEthTSynEthIfEth[EthTSynHardwareTimestampSupport == TRUE]EthIf_EnableEgressTimeStamp(CtrlIdx, BufIdx)Eth_EnableEgressTimeStamp(CtrlIdx, BufIdx)EthIf_Transmit(...)Eth_Transmit(...)EthIf_TxConfirmation(CtrlIdx, BufIdx, Result)EthTSyn_TxConfirmation(CtrlIdx, BufIdx, Result)Запрос в контексте TxConfirmationEthIf_GetEgressTimeStamp(CtrlIdx, BufIdx, ...)Eth_GetEgressTimeStamp(CtrlIdx, BufIdx,timeQualPtr, timeStampPtr)E_OK, качество, метка времениE_OK, качество, метка времениaltКачество == ETH_VALIDZeitstempel verwendenETH_UNCERTAIN или ETH_INVALIDZeitstempel verwerfen

Диаграмма последовательности: активация временной метки передачи, отправка и считывание в контексте подтверждения с проверкой качества. Источники: [SWS_Eth_00186], [SWS_Eth_00190], [SWS_Eth_00177], SWS EthTSyn с. 70, SWS EthTSyn с. 55

Четыре диагностические службы могут включаться по отдельности:

Для служб статистики максимальное значение обозначает недоступный счетчик (SWS Eth с. 98).

Конфигурация, разделение на разделы и программное управление буферами (CBS)

С помощью EthCtrlEnableOffloadChecksumIPv4, EthCtrlEnableOffloadChecksumICMP, EthCtrlEnableOffloadChecksumTCP и EthCtrlEnableOffloadChecksumUDP контроллер вычисляет контрольные суммы аппаратно. При приеме он отбрасывает кадры с неверной контрольной суммой ([SWS_Eth_00216], [SWS_Eth_00217]). Базовые адреса буферов должны удовлетворять выравниванию всех типов данных AUTOSAR ([SWS_Eth_00218]). Неподдерживаемые назначения разделов должны отклоняться. Разделы в EthCtrlEcucPartitionRef должны являться подмножеством EthEcucPartitionRef ([SWS_Eth_00257], [SWS_Eth_00260], [SWS_Eth_CONSTR_00001]).

Если справедливое планирование в аппаратной части отсутствует, программно доступен Credit Based Shaper (SWS Eth с. 38). В R20-11 все соответствующие требования имеют статус DRAFT. Механизм работает следующим образом:

  • Включение осуществляется с помощью EthCtrlConfigSwBufferHandling ([SWS_Eth_00263]).
  • Каждый программный FIFO принадлежит ровно одному приоритету ([SWS_Eth_00265]).
  • Eth_ProvideTxBuffer запоминает приоритет, Eth_Transmit сопоставляет буфер с подходящим FIFO ([SWS_Eth_00267], [SWS_Eth_00268]).
  • Eth_MainFunction обновляет кредиты и перемещает сообщения в аппаратный FIFO ([SWS_Eth_00270], [SWS_Eth_00266], [SWS_Eth_00271]).
  • EthTrcvPhysLayerPLCAMaxBurstCount ограничивает пакетную передачу (bursts) ([SWS_Eth_00272]; SWS Eth с. 56).
cbs mf Eth_MainFunction() (EthCtrlConfigSwBufferHandling = TRUE) c1 SW-FIFO по убыванию приоритета: увеличить кредиты на EthCtrlConfigShaperIdleSlope (только непустые FIFO) mf->c1 c2 Следующая SW-FIFO (наивысший приоритет первым) c1->c2 q Сообщение присутствует и кредиты >= EthCtrlConfigShaperMinCredit? c2->q mv Переместить первое сообщение в HW-FIFO, вычесть размер сообщения из кредитов q->mv да more Weitere SW-FIFO? q->more нет b EthTrcvPhysLayerPLCAMaxBurstCount = 0? mv->b stop Iteration beenden b->stop да burst Переместить последующие сообщения до границы пакета (Burst), вычитая кредиты за каждое сообщение b->burst нет ende Ende stop->ende burst->more Интерпретация: перейти к следующей FIFO more->c2 да more->ende нет

Диаграмма деятельности: прогон CBS в Eth_MainFunction с обновлением кредитов, проверкой минимального кредита и ветвлением для всплесков PLCA. Источники: [SWS_Eth_00266], [SWS_Eth_00270], [SWS_Eth_00271], [SWS_Eth_00272], SWS Eth с. 56

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

Об ошибках разработки Eth сообщает в DET ([SWS_Eth_00120]). Кодами являются ETH_E_INV_CTRL_IDX, ETH_E_UNINIT, ETH_E_PARAM_POINTER, ETH_E_INV_PARAM и ETH_E_INV_MODE ([SWS_Eth_00016]). Типичные проверки касаются инициализации, CtrlIdx и указателей ([SWS_Eth_00066], [SWS_Eth_00067], [SWS_Eth_00068]). Если DET отключен, службы статистики в этих случаях возвращают E_NOT_OK ([SWS_Eth_00228], [SWS_Eth_00236], [SWS_Eth_00248], [SWS_Eth_00254]).

Производственные ошибки передаются через Dem_SetEventStatus в DEM ([SWS_Eth_00119]). Неудавшийся доступ к контроллеру приводит к ETH_E_ACCESS с DEM_EVENT_STATUS_PREFAILED; Eth_SetControllerMode затем возвращает E_NOT_OK ([SWS_Eth_00039], [SWS_Eth_00173], [SWS_Eth_00168]). Eth_MainFunction сообщает о следующих расширенных производственных ошибках ([SWS_Eth_00169], [SWS_Eth_00172]):

Во время работы ошибки также проявляются через возвращаемые значения. К ним относятся BUFREQ_E_BUSY и BUFREQ_E_OVFL (SWS Eth с. 91), а также отрицательное подтверждение передачи ([SWS_Eth_00256]). Поведение Eth_Receive при неактивном контроллере зависит от релиза. R23-11 и R24-11 требуют ETH_E_INV_MODE (SWS Eth с. 94, SWS Eth с. 116), R25-11 — немедленного возврата (SWS Eth с. 110). Для R20-11 из-за [SWS_Eth_00016], вероятно, применим вариант с DET. Вопрос (открытый)

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

Руководство, сгенерированное ИИ на основе выдержек из спецификаций в полезной нагрузке. Определяющими являются связанные требования R20-11; фрагменты документов из других релизов отмечены соответствующим образом.

Ethernet Driver (Eth)

Provides uniform hardware access to Ethernet controller interfaces.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция Eth_Init [SWS_Eth_00027] 📄 PDF

void Eth_Init (const Eth_ConfigType* CfgPtr);

Initializes the Ethernet Driver

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

Функция Eth_Init служит для инициализации драйвера Ethernet [SWS_Eth_00027]. Она объявляется в заголовочном файле Eth.h, имеет Service ID 0x01 и не возвращает значения (void) [SWS_Eth_00027]. В качестве входного параметра она ожидает CfgPtr, указывающий на структуру конфигурации типа Eth_ConfigType, зависящую от реализации [SWS_Eth_00027]. Вызов выполняется синхронно и определен как нереентерабельный (Non Reentrant) [SWS_Eth_00027].

В процессе работы Eth_Init является фундаментальным предварительным условием для взаимодействия с модулем. Все остальные функции обязательно требуют предварительной инициализации контроллера с помощью Eth_Init [SWS_Eth_00070], [SWS_Eth_00167], [SWS_Eth_00185]. Данная зависимость строго предписана для различных служб контроллера драйвера [SWS_Eth_00189], [SWS_Eth_00194], [SWS_Eth_00199], [SWS_Eth_00232].

На случай неинициализированного доступа предусмотрена специальная обработка ошибок: при включенном механизме обнаружения ошибок разработки (Development Error Detection, DET) функции драйвера проверяют, была ли служба Eth_Init предварительно вызвана надлежащим образом [SWS_Eth_00066]. Если эта проверка завершается неудачно, они генерируют ошибку разработки ETH_E_UNINIT [SWS_Eth_00164], [SWS_Eth_00182], [SWS_Eth_00187], [SWS_Eth_00196]. Если же DET отключен, затронутые функции отклоняют выполнение и сигнализируют о недопустимом состоянии возвратом статуса E_NOT_OK [SWS_Eth_00228], [SWS_Eth_00235], [SWS_Eth_00248], [SWS_Eth_00252].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Eth_SetControllerMode [SWS_Eth_00041] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / disables the indexed controller Tags: atp.Status=obsolete

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

Функция Eth_SetControllerMode служит для активации (ETH_MODE_ACTIVE) или деактивации (ETH_MODE_DOWN) Ethernet-контроллера, адресуемого через параметр CtrlIdx [SWS_Eth_00041]. В AUTOSAR Classic R20-11 этот сервис классифицирован как устаревший (obsolete) [SWS_Eth_00041].

Выполнение сервиса является асинхронным и нереентрабельным (Non Reentrant) [SWS_Eth_00041]. В качестве возвращаемого значения функция возвращает E_OK при успешной инициации или E_NOT_OK, если режим работы не удалось переключить [SWS_Eth_00041]. Интерпретация: поскольку вызов специфицирован как асинхронный, но в полезной нагрузке не определен callback, фактическое переключение состояния, вероятно, завершается на аппаратном уровне в фоновом режиме драйвера после возврата из функции. Вопрос Q-d7ec04578e921eb9 (открытый)

Если контроллер или его коммуникация на прием и передачу деактивируется через Eth_SetControllerMode, действуют обязательные правила очистки буферов:

  • Все заблокированные буферы передачи (locked transmit buffers) должны быть освобождены [SWS_Eth_00137] [SWS_Eth_00280].
  • Все ожидающие буферы передачи (pending transmit buffers) также должны быть освобождены [SWS_Eth_00138] [SWS_Eth_00281].

В связи со свойством Non Reentrant функция не должна выполняться параллельно для того же самого или других экземпляров контроллера [SWS_Eth_00041]. Специфические сообщения об ошибках DET или DEM не указаны; состояния ошибок сообщаются вызывающей стороне через возвращаемое значение E_NOT_OK [SWS_Eth_00041].

Данное указание по использованию было автоматически сгенерировано на основе данных спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Eth_SetControllerMode [SWS_Eth_91009] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Status=draft

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

Функция Eth_SetControllerMode (Service-ID 0x03, предоставляемая через Eth.h) служит для активации и деактивации коммуникации на прием и передачу (Rx/Tx) определенного Ethernet-контроллера [SWS_Eth_91009].

Использование и условия вызова

Выполнение функции происходит асинхронно и специфицировано как нереентрабельное (Non Reentrant) [SWS_Eth_91009]. При вызове передаются два параметра:

  • CtrlIdx: индекс соответствующего контроллера в контексте Ethernet-драйвера [SWS_Eth_91009].
  • CtrlMode: целевой режим для контроллера, либо ETH_MODE_ACTIVE для активации коммуникации Rx/Tx, либо ETH_MODE_DOWN для ее деактивации [SWS_Eth_91009].

В качестве возвращаемого значения функция возвращает статус Std_ReturnType: E_OK сигнализирует об успешном выполнении, тогда как E_NOT_OK указывает на то, что режим контроллера не удалось переключить [SWS_Eth_91009].

Взаимодействие и управление буферами

Если коммуникация Rx/Tx индексированного контроллера деактивируется через Eth_SetControllerMode (режим ETH_MODE_DOWN), в обязательном порядке должны быть выполнены действия по очистке буферов передачи:

  • Все заблокированные буферы передачи (locked transmit buffers) должны быть освобождены [SWS_Eth_00280].
  • Все ожидающие буферы передачи (pending transmit buffers) также должны быть освобождены [SWS_Eth_00281].

Текущие положения по освобождению заблокированных и ожидающих буферов, а также само определение функции имеют статус «draft» [SWS_Eth_91009], [SWS_Eth_00280], [SWS_Eth_00281]. Они заменяют исторически предшествовавшие требования [SWS_Eth_00137] и [SWS_Eth_00138], которые классифицированы как устаревшие.

Этот текст был создан ИИ на основе спецификаций AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция Eth_GetPhysAddr [SWS_Eth_00052] 📄 PDF

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);

Obtains the physical source address used by the indexed controller

функция Eth_SetPhysAddr [SWS_Eth_00151] 📄 PDF

void Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);

Sets the physical source address used by the indexed controller

функция Eth_UpdatePhysAddrFilter [SWS_Eth_00152] 📄 PDF

Std_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);

Update the physica l source address to/ from the indexed controller filter. If the Ethernet Controller is not capable to do the filtering, the software has to do this.

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

Синхронный интерфейс Eth_UpdatePhysAddrFilter предоставляется через заголовочный файл Eth.h и имеет Service ID 0x12 [SWS_Eth_00152]. Функция служит для добавления физического адреса в фильтр индексированного контроллера Ethernet или удаления его из него [SWS_Eth_00152].

Параметры функции включают три входных значения [SWS_Eth_00152]:

  • CtrlIdx: определяет индекс соответствующего контроллера Ethernet в контексте драйвера [SWS_Eth_00152].
  • PhysAddrPtr: указатель на область памяти с физическим целевым адресом (MAC-адресом) в сетевом порядке байтов; это целевой адрес групповой рассылки (multicast) пакета Ethernet уровня 2 [SWS_Eth_00152].
  • Action: задает через перечисляемый тип Eth_FilterActionType, добавляется ли указанный адрес в фильтр контроллера или удаляется из него [SWS_Eth_00152].

Функция возвращает статус типа Std_ReturnType: E_OK подтверждает успешное изменение фильтра, тогда как E_NOT_OK сообщает, что изменить фильтр не удалось [SWS_Eth_00152]. Если контроллер Ethernet на аппаратном уровне не способен выполнять фильтрацию самостоятельно, задача фильтрации должна быть реализована программно [SWS_Eth_00152].

Для выполнения действует строгое ограничение реентерабельности: функция не является реентерабельной для одного и того же индекса контроллера (CtrlIdx), однако может вызываться параллельно и реентерабельно для отличающихся индексов контроллеров [SWS_Eth_00152].

Это указание по использованию сгенерировано системой ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_WriteMii [SWS_Eth_00058] 📄 PDF

Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);

Configures a transceiver register or triggers a function offered by the receiver

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

Функция Eth_WriteMii служит для настройки регистра трансивера Ethernet через интерфейс MII или для запуска функции, предоставляемой трансивером [SWS_Eth_00058]. Объявление доступно в заголовочном файле Eth.h [SWS_Eth_00058].

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

Вызов выполняется с Service ID 0x05 и обрабатывает четыре входных параметра [SWS_Eth_00058]:

  • CtrlIdx: индекс контроллера Ethernet в контексте драйвера Ethernet [SWS_Eth_00058].
  • TrcvIdx: индекс трансивера на интерфейсе MII [SWS_Eth_00058].
  • RegIdx: индекс записываемого регистра трансивера на MII [SWS_Eth_00058].
  • RegVal: 16-битное значение, которое должно быть записано в адресуемый регистр [SWS_Eth_00058].

Выполнение службы специфицировано как асинхронное [SWS_Eth_00058]. Это означает, что сам процесс записи через аппаратный интерфейс обычно должен выполняться в фоновом режиме, тогда как функция возвращает управление сразу после принятия запроса. Вопрос Q-0f9a9e682985d796 (открытый)

Возвращаемые значения и ограничения

В качестве возвращаемого значения функция возвращает тип Std_ReturnType [SWS_Eth_00058]:

С точки зрения параллелизма Eth_WriteMii специфицирована как нереентерабельная (Non Reentrant) [SWS_Eth_00058]. Поэтому вызовы не должны выполняться параллельно без соответствующей синхронизации со стороны вызывающей стороны.

Это указание по использованию сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_ReadMii [SWS_Eth_00064] 📄 PDF

Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);

Reads a transceiver register

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

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

Функция Eth_ReadMii (Service-ID 0x06) служит для считывания регистра трансивера через интерфейс MII и предоставляется через заголовочный файл Eth.h [SWS_Eth_00064]. При вызове CtrlIdx идентифицирует соответствующий Ethernet-контроллер в контексте драйвера, TrcvIdx — опрашиваемый трансивер на MII, а RegIdx — конкретный регистр трансивера [SWS_Eth_00064]. Определенное значение регистра записывается в область памяти, на которую указывает указатель RegValPtr [SWS_Eth_00064].

Выполнение и параллелизм

Выполнение происходит асинхронно (Asynchronous) [SWS_Eth_00064]. Возвращаемое значение E_OK при этом лишь подтверждает, что сервис или запрос на чтение был успешно принят (Service accepted), тогда как E_NOT_OK сигнализирует об отклонении запроса (Service denied) [SWS_Eth_00064]. Из-за асинхронного характера область памяти, переданная для RegValPtr, по всей видимости, должна оставаться действительной до окончательного завершения операции чтения. Вопрос Q-04a94624b96bf51f (открытый) Поскольку функция дополнительно классифицирована как нереентрабельная (Non Reentrant) [SWS_Eth_00064], вызывающие стороны не должны осуществлять одновременные обращения из разных задач или контекстов прерываний без внешней синхронизации.

Обработка ошибок

Если драйвер не может принять запрос на чтение, вызов напрямую квитируется значением E_NOT_OK [SWS_Eth_00064]. Специфические коды ошибок, проверки DET во время выполнения или диагностические события DEM для этой функции в спецификационных данных элемента не указаны.

Этот использование указание было создано ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_GetRxStats [SWS_Eth_00233] 📄 PDF

Std_ReturnType Eth_GetRxStats (uint8 CtrlIdx, Eth_RxStatsType* RxStats);

Returns the following list according to IETF RFC281 9, where the maximal possible value shall denote an invalid value, e.g. if this counter is not available: 1. ether Stats Drop Events 2. ether Stats Octets 3. ether Stats Pkts 4. ether Stats Broadcast Pkts 5. ether Stats Multicast Pkts 6. ether Stats Crc Al ign Errors 7. ether Stats Undersize Pkts 8. ether Stats Oversize Pkts 9. ether Stats Fragments 10. ether Stats Jabbers 11. ether Stats Collisions 12. ether Stats Pkts64Octets 13. ether Stats Pkts65to127Octets 14. ether Stats Pkts128to255Octets 15. ether St ats Pkts256to511Octets 16. ether Stats Pkts512to1023Octets 17. ether

функция Eth_GetTxStats [SWS_Eth_91005] 📄 PDF

Std_ReturnType Eth_GetTxStats (uint8 CtrlIdx, Eth_TxStatsType* TxStats);

Returns the list of Transmission Statistics out of IETF RFC1213 defined with Eth_ Tx Stats Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

функция Eth_GetTxErrorCounterValues [SWS_Eth_91006] 📄 PDF

Std_ReturnType Eth_GetTxErrorCounterValues (uint8 CtrlIdx, Eth_TxErrorCounterValuesType* TxErrorCounterValues);

Returns the list of Transmission Error Counters out of IETF RFC1213 and RFC1643 defined with Eth_ Tx Error Counter Values Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

функция Eth_GetCurrentTime [SWS_Eth_00181] 📄 PDF

Std_ReturnType Eth_GetCurrentTime (uint8 CtrlIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, than an the remainin g bits will be filled with 0. Important Note: Eth_ Get Current Time may be called within an exclusive area.

функция Eth_EnableEgressTimeStamp [SWS_Eth_00186] 📄 PDF

void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);

Activat es egress time stamping on a dedicated message object. Some HW does store once the egress time stamp marker and some HW needs it always before transmission. There will be no "disable" functionality, due to the fact, that the message type is always "time st amped" by network design.

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

Синхронная функция Eth_EnableEgressTimeStamp активирует фиксацию меток времени передачи (Egress Time Stamping) для выделенного объекта сообщения драйвера Ethernet [SWS_Eth_00186]. Вызов осуществляется через заголовочный файл Eth.h с Service ID 0x17 и не возвращает значения [SWS_Eth_00186].

При вызове необходимо передать следующие входные параметры [SWS_Eth_00186]:

  • CtrlIdx: индекс адресуемого контроллера Ethernet [SWS_Eth_00186].
  • BufIdx: индекс буфера сообщений, для которого вышестоящее приложение ожидает генерацию метки времени исходящей передачи (egress) [SWS_Eth_00186].

С точки зрения параллелизма функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Eth_00186]. Поэтому параллельный вызов для того же самого или других буферов должен быть синхронизирован либо исключен на стороне вызывающего компонента.

Поведение аппаратуры варьируется в зависимости от реализации контроллера: некоторые аппаратные средства сохраняют отметку для метки времени передачи постоянно, тогда как другие контроллеры обязательно требуют активации перед каждой передачей [SWS_Eth_00186]. Интерпретация: для аппаратно-независимого управления, вероятно, целесообразно вызывать функцию перед каждой операцией отправки требуемого буфера. Вопрос Q-c2b8d2db03e9d13b (открытый) Интерфейс деактивации отсутствует, поскольку в соответствии с архитектурой сети сообщения данного типа всегда передаются с метками времени [SWS_Eth_00186].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция Eth_GetEgressTimeStamp [SWS_Eth_00190] 📄 PDF

Std_ReturnType Eth_GetEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the egress time stamp on a dedicated message object. It must be called within the Tx Confirmation() function.

функция Eth_GetIngressTimeStamp [SWS_Eth_00195] 📄 PDF

Std_ReturnType Eth_GetIngressTimeStamp (uint8 CtrlIdx, const Eth_DataType* DataPtr, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the ingress time stamp on a dedicated message object. It must be called within the Rx Indication() function.

функция Eth_ProvideTxBuffer [SWS_Eth_00077] 📄 PDF

BufReq_ReturnType Eth_ProvideTxBuffer (uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType* BufIdxPtr, uint8* * BufPtr, uint16* LenBytePtr);

Provides access to a transmit buffer of the FIFO related to the specified priority

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

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

Синхронная функция Eth_ProvideTxBuffer предоставляет доступ к буферу передачи Ethernet из FIFO, назначенного переданному приоритету [SWS_Eth_00077]. Она предоставляется через заголовочный файл Eth.h и специфицирована как реентерабельная [SWS_Eth_00077]. Через входные параметры передаются индекс контроллера CtrlIdx, а также приоритет кадра Priority для выбора FIFO [SWS_Eth_00077]. Входной/выходной параметр LenBytePtr передает желаемый размер буфера и после вызова возвращает фактически предоставленный размер в байтах [SWS_Eth_00077]. Выходные параметры BufIdxPtr (индекс ресурса для последующих запросов) и BufPtr (указатель на буфер) предоставляют ссылки на область памяти [SWS_Eth_00077].

Обработка ошибок и возвращаемые значения

Функция сообщает о результате с помощью возвращаемых значений типа BufReq_ReturnType [SWS_Eth_00077]:

  • BUFREQ_OK: буфер передачи успешно предоставлен [SWS_Eth_00077].
  • BUFREQ_E_BUSY: все ресурсы буфера в данный момент заняты [SWS_Eth_00077].
  • BUFREQ_E_OVFL: запрошенный буфер слишком велик [SWS_Eth_00077].
  • BUFREQ_E_NOT_OK: обнаружена ошибка разработки [SWS_Eth_00077].

Взаимодействие

Если EthCtrlConfigSwBufferHandling сконфигурирован в TRUE, внутри сохраняется кортеж, состоящий из переданного в BufIdxPtr индекса буфера пула программных буферов и указанного приоритета Priority [SWS_Eth_00267].

При последующем вызове Eth_Transmit() данный индекс буфера назначается тому программному FIFO, конфигурация которого EthCtrlConfigEgressFifoPriorityAssignment совпадает с приоритетом, ранее переданным в Eth_ProvideTxBuffer() [SWS_Eth_00268].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_Transmit [SWS_Eth_00087] 📄 PDF

Std_ReturnType Eth_Transmit (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, const uint8* PhysAddrPtr);

Triggers transmission of a previously filled transmit buffer

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

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

Синхронный интерфейс Eth_Transmit инициирует процесс отправки для ранее предоставленного и заполненного буфера передачи Ethernet [SWS_Eth_00087]. Он принимает следующие параметры:

  • CtrlIdx: индекс контроллера Ethernet в контексте драйвера [SWS_Eth_00087].
  • BufIdx: индекс передаваемого ресурса буфера [SWS_Eth_00087].
  • FrameType: специфический тип кадра Ethernet [SWS_Eth_00087].
  • TxConfirmation: переключатель для активации подтверждения передачи [SWS_Eth_00087].
  • LenByte: длина полезной нагрузки в байтах [SWS_Eth_00087].
  • PhysAddrPtr: указатель на физический целевой адрес (MAC-адрес) в сетевом порядке байтов [SWS_Eth_00087].

Возвращаемое значение типа Std_ReturnType сигнализирует с помощью E_OK об успешном запуске передачи, а с помощью E_NOT_OK — о сбое [SWS_Eth_00087].

Взаимодействие и обработка буферов

В рамках процесса отправки Eth_Transmit назначает указатель буфера BufIdx программному FIFO, элемент конфигурации которого EthCtrlConfigEgressFifoPriorityAssignment совпадает с приоритетом, ранее определенным в Eth_ProvideTxBuffer() [SWS_Eth_00268]. Посредством вызова соответствующие сообщения переводятся из программных FIFO в аппаратный FIFO [SWS_Eth_00269].

Параллелизм

Функция является реентерабельной для вызовов с различными индексами буферов (BufIdx), а также различными индексами контроллеров (CtrlIdx) [SWS_Eth_00087].

Данное указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Eth_Receive [SWS_Eth_00095] 📄 PDF

void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);

Receive a frame from the related fifo.

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

Синхронная функция Eth_Receive служит для приема кадра Ethernet из определенного буфера FIFO контроллера Ethernet [SWS_Eth_00095]. Она не имеет возвращаемого значения, однако возвращает результат опроса вызывающей стороне через указатель RxStatusPtr типа Eth_RxStatusType [SWS_Eth_00095]. Этот выходной параметр показывает, был ли успешно принят кадр и готовы ли к получению дополнительные кадры для соответствующего буфера FIFO [SWS_Eth_00095].

Параметры и контекст вызова

В качестве входных параметров функция требует индекс контроллера CtrlIdx в пределах драйвера Ethernet, а также индекс FifoIdx считываемого FIFO [SWS_Eth_00095]. Функция объявлена в заголовочном файле Eth.h [SWS_Eth_00095]. Вызов обычно должен выполняться периодически в рамках механизма опроса (polling) вышестоящими уровнями драйверов или интерфейсов. Вопрос Q-f5ec0693a5887bcf (открытый)

Параллелизм и ограничения

С точки зрения параллелизма Eth_Receive реализована как реентерабельная для разных FIFO, но нереентерабельная для одного и того же FIFO [SWS_Eth_00095]. Одновременные вызовы, опрашивающие один и тот же FIFO одного и того же контроллера, недопустимы и должны быть исключены вызывающим программным обеспечением.

Взаимодействие с Ethernet-интерфейсом

В режиме опроса драйвер Ethernet обязан при успешном приеме вызывать непосредственно из подпрограммы Eth_Receive функцию EthIf_RxIndication, чтобы передать принятый кадр верхнему уровню для дальнейшей обработки [SWS_Eth_00244].

Этот текст сгенерирован ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_TxConfirmation [SWS_Eth_00100] 📄 PDF

void Eth_TxConfirmation (uint8 CtrlIdx);

Triggers frame transmission confirmation

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

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

Доступная через заголовочный файл Eth.h функция Eth_TxConfirmation служит для целенаправленного запуска подтверждения передачи для отправленных кадров Ethernet [SWS_Eth_00100]. Она имеет Service-ID 0x0C и выполняется синхронно [SWS_Eth_00100]. В качестве единственного входного параметра функция ожидает CtrlIdx, который определяет логический индекс адресуемого контроллера внутри экземпляра Ethernet-драйвера [SWS_Eth_00100]. Возвращаемое значение отсутствует (void), и выходные параметры не передаются [SWS_Eth_00100].

Взаимодействие в процессе передачи

При межсетевом взаимодействии уровней Eth_TxConfirmation берет на себя передачу статуса отправки вышестоящему Ethernet-интерфейсу. Если соответствующее уведомление было активировано, драйвер Ethernet обязан вызвать EthIf_TxConfirmation со значением результата E_OK, чтобы просигнализировать об успешной передаче [SWS_Eth_00243]. В режиме поллинга этот вызов выполняется явно из контекста подпрограммы Eth_TxConfirmation, тогда как в режиме с управлением по прерываниям он альтернативно отправляется напрямую из подпрограммы обработки прерывания [SWS_Eth_00243].

Параллелизм и условия выполнения

Для выполнения действует ограничение, заключающееся в том, что Eth_TxConfirmation определена как нереентрабельная (Non Reentrant) [SWS_Eth_00100]. Поэтому одновременные вызовы для одного и того же контроллера должны предотвращаться вызывающей стороной. В режиме поллинга вызов, как правило, должен производиться циклически вышестоящей системой управления выполнением. Вопрос Q-c19295838459b689 (открытый) Специфические коды ошибок, а также предписания по сообщениям DET или DEM в спецификации функции не приведены, поэтому отдельная обработка ошибок отсутствует.

Этот текст был создан ИИ; определяющей является упомянутая спецификация.

Руководство разработчика реализации в подготовке (сложность I1)

функция Eth_MainFunction [SWS_Eth_00171] 📄 PDF

void Eth_MainFunction (void);

The function checks for controller errors and lost frames. Used for polling state changes. Calls Eth If_ Ctrl Mode Indication when the controller mode changed.

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

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

Функция Eth_MainFunction имеет сигнатуру void Eth_MainFunction(void) и предоставляется через заголовочный файл SchM_Eth.h [SWS_Eth_00171]. Из этого можно сделать вывод: вызов, вероятно, должен производиться циклически менеджером расписания (SchM) в контексте на основе задач, так как входные параметры или возвращаемые значения не определены. Вопрос Q-690a2dc372d49c6a (открытый)

Функциональный объем и поллинг

Основная задача функции заключается в поллинге изменений состояния, а также в проверке на наличие ошибок контроллера и потерянных кадров Ethernet [SWS_Eth_00171]. Если функция определяет, что режим Ethernet-контроллера изменился, она вызывает функцию EthIf_CtrlModeIndication, чтобы проинформировать вышестоящий уровень о смене состояния [SWS_Eth_00171].

Порядок обработки в тракте передачи

В контексте Eth_MainFunction() задан фиксированный порядок обработки программных FIFO [SWS_Eth_00270]:

  • Сначала перебираются все программные FIFO (SW-FIFO) и обновляются их кредитные счета (Credits Account) [SWS_Eth_00270].
  • Затем все SW-FIFO перебираются снова и проверяются на наличие готовых к отправке сообщений [SWS_Eth_00270].
  • После этого для каждого перебранного SW-FIFO предпринимается передача [SWS_Eth_00270].

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

тип Eth_ModeType [SWS_Eth_00158] 📄 PDF

This is an generic type and used in the layers of the Ethernet communication stack (e.g. EthIf, Eth, EthSwt, EthTrcv) to enable and disable, resp ectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and power on mode, respectively. Tags: atp.Status=obsolete

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

Универсальный перечисляемый тип Eth_ModeType служит на уровнях коммуникационного стека Ethernet (таких как EthIf, Eth, EthSwt и EthTrcv) для активации или деактивации коммуникационного канала Ethernet, а также для перевода соответствующего аппаратного обеспечения (такого как Ethernet-контроллер, порт Ethernet-коммутатора или Ethernet-трансивер) в энергосберегающий спящий режим или активный режим [SWS_Eth_00158].

Тип доступен через заголовочный файл Eth_GeneralTypes.h и определяет следующие диапазоны значений [SWS_Eth_00158]:

  • ETH_MODE_DOWN (0x00): деактивирует коммуникационный канал Ethernet и переводит соответствующее аппаратное обеспечение в энергосберегающий спящий режим (Low-Power Sleep Mode) [SWS_Eth_00158].
  • ETH_MODE_ACTIVE (0x01): активирует коммуникационный канал Ethernet и переводит аппаратное обеспечение в рабочий режим (Power-On Mode) [SWS_Eth_00158].

Что касается жизненного цикла и использования, следует учитывать, что в релизе R20-11 тип Eth_ModeType помечен статусом obsolete [SWS_Eth_00158]. Поэтому в новых разработках следует избегать использования этого типа, поскольку устаревшие типы интерфейсов в будущих стандартах, как правило, заменяются более современными структурами управления.

Это указание по использованию было создано автоматически. Ссылки на спецификацию относятся исключительно к предоставленному контексту требований.

Руководство разработчика реализации в подготовке (сложность I1)

тип Eth_ModeType [SWS_Eth_91008] 📄 PDF

This is an generic type and used in the layers of the Ethernet commun ication stack (e.g. Eth If, Eth, Eth Swt, Eth Trcv) to enable and disable, respectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and po wer on mode, respectively. The type also support to transfer a wake - up request from the services layer (Com M) to the communication drivers (Eth Trcv). This could be used e.g. for Ethernet hardware that has the capability to wake - up and sleep on data line (see OA TC10) Tags: atp.Status=draft

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

Перечисляемый тип Eth_ModeType объявляется через Eth_GeneralTypes.h и служит межсетевым типом режима в коммуникационном стеке AUTOSAR Ethernet ([SWS_Eth_91008]). Он используется в таких модулях, как EthIf, Eth, EthSwt и EthTrcv, для целевой активации или деактивации каналов связи и переключения соответствующего аппаратного компонента (контроллера Ethernet, портов коммутатора или трансиверов) между энергосберегающим режимом сна и активным рабочим режимом ([SWS_Eth_91008]).

Тип включает три состояния для управления режимом ([SWS_Eth_91008]):

  • ETH_MODE_DOWN (0x00): деактивирует обмен данными Rx и Tx и переводит соответствующее оборудование в режим сна с низким энергопотреблением (Low-Power-Sleep). Если оборудование поддерживает это, одновременно запускается процесс перехода в спящий режим (например, запрос Sleep на линии передачи данных согласно OPEN Alliance TC10).
  • ETH_MODE_ACTIVE (0x01): активирует обмен данными Rx и Tx и переключает соответствующее оборудование в обычный рабочий режим (Power-on).
  • ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST (0x02): активирует обмен данными Rx и Tx, переводит оборудование в рабочий режим и дополнительно инициирует запрос на пробуждение в сети, если оборудование поддерживает функции пробуждения (например, Wake-up на линии передачи данных согласно OPEN Alliance TC10).

При взаимодействии в стеке Eth_ModeType в частности поддерживает передачу запросов на пробуждение с сервисного уровня (ComM) через промежуточные уровни вниз к коммуникационным драйверам (EthTrcv), благодаря чему оборудование с функциональностью Wake-up и Sleep на линии передачи данных управляется по мере необходимости ([SWS_Eth_91008]).

Это указание по использованию было сгенерировано автоматически на основе спецификации SWS_Eth_91008.

Руководство разработчика реализации в подготовке (сложность I1)

тип Eth_StateType [SWS_Eth_00159] 📄 PDF

Status supervision used for Development Error Detection. The state shall be available for debugging.

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

Перечислимый тип Eth_StateType предоставляется через заголовочный файл Eth_GeneralTypes.h и согласно [SWS_Eth_00159] служит для мониторинга состояния Ethernet-драйвера. Его назначение состоит в поддержке обнаружения ошибок разработки (Development Error Detection), при этом текущее состояние согласно спецификации должно быть доступно для целей отладки ([SWS_Eth_00159]).

Для управления состоянием Eth_StateType определяет два дискретных значения перечисления ([SWS_Eth_00159]):

  • ETH_STATE_UNINIT (значение 0x00): указывает на то, что Ethernet-драйвер еще не сконфигурирован ([SWS_Eth_00159]).
  • ETH_STATE_INIT (значение 0x01): указывает на то, что Ethernet-драйвер успешно сконфигурирован ([SWS_Eth_00159]).

Что касается обработки ошибок и взаимодействия, этот тип состояния формирует основу для внутреннего обнаружения ошибок. Следует исходить из того, что API драйвера опрашивают это состояние и отклоняют вызовы до тех пор, пока драйвер находится в неинициализированном состоянии ETH_STATE_UNINIT ([SWS_Eth_00159]). Вопрос Q-35a17e3267274d70 (открытый) Только после того как драйвер перешел в состояние ETH_STATE_INIT, он считается сконфигурированным и готовым к работе ([SWS_Eth_00159]). Поскольку определение типа находится в Eth_GeneralTypes.h, оно доступно на уровне всех драйверов ([SWS_Eth_00159]).

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Eth_FrameType [SWS_Eth_00160] 📄 PDF

This type defines the Ethernet frame type used in the Ethernet frame header

тип Eth_DataType [SWS_Eth_00161] 📄 PDF

This type defines the Ethernet data type used for data transmission. Its definition depends on the used CPU.

тип Eth_RxStatusType [SWS_Eth_00162] 📄 PDF

Used as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are available or frames go t lost.

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

Использование и диапазон значений

Перечисляемый тип Eth_RxStatusType определяется в соответствии с [SWS_Eth_00162] в заголовочном файле Eth_GeneralTypes.h. Он служит в качестве выходного параметра (out parameter) в функции Eth_Receive(), с помощью которого драйвер Ethernet сообщает, был ли получен кадр Ethernet, присутствуют ли в буфере последующие кадры или же данные были потеряны [SWS_Eth_00162].

Спецификация определяет для этого типа три дискретных значения перечисления [SWS_Eth_00162]:

  • ETH_RECEIVED (0x00): кадр Ethernet был принят; в контроллере больше нет доступных кадров.
  • ETH_NOT_RECEIVED (0x01): кадр Ethernet не был принят; другие кадры отсутствуют.
  • ETH_RECEIVED_MORE_DATA_AVAILABLE (0x02): кадр Ethernet был принят, и доступны дополнительные кадры для считывания.

Взаимодействие при обработке кадров

При вызове Eth_Receive() вызывающий уровень передает указатель на переменную типа Eth_RxStatusType. Оценка этого выходного параметра управляет дальнейшим ходом цикла приема: возвращаемое значение ETH_RECEIVED_MORE_DATA_AVAILABLE, вероятно, должно служить для вызывающей стороны критерием для немедленного повторного вызова Eth_Receive(), чтобы оперативно обработать оставшиеся кадры из буфера приема [SWS_Eth_00162]. Вопрос Q-4ed309522aa004f8 (открытый) Состояния ETH_RECEIVED и ETH_NOT_RECEIVED, напротив, сигнализируют о том, что буфер исчерпан и данных для обработки больше нет. Предоставление через Eth_GeneralTypes.h при этом гарантирует единообразное использование типов между модулями [SWS_Eth_00162].

Этот текст сгенерирован ИИ и основан исключительно на данных спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Eth_FilterActionType [SWS_Eth_00163] 📄 PDF

The Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.

тип Eth_TimeStampQualType [SWS_Eth_00177] 📄 PDF

Depending on the HW, quality information regarding the evaluated time stamp might be supported. If not supported, the value shall be always Valid. For Uncertain and Invalid values, the upper layer shall discard the time stamp.

тип Eth_TimeStampType [SWS_Eth_00178] 📄 PDF

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts at 1970 - - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0

тип Eth_MacVlanType [SWS_Eth_91001] 📄 PDF

This type is used to read out addresses from the address resolution logic (A RL) table of the switch. typedef struct { uint8 Mac Addr[6U]; uint16 Vlan Id; uint32 Switch Port; } Eth_ Mac Vlan Type; In case of Macaddr contains a Multicast Address Mac Vlan Type.Switch Port shall be handled as Bitmask, each bit represents a Switch Port , Bit 0 represents Eth Swicht Port Idx = 0 , Bit 1 represents Eth Swicht Port Idx = 1 and so on. In case of Macaddr contains not a Multicast Address Mac Vlan Type.Switch Port shall be handled as a value representing the Eth Switch Port Idx.

тип Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF

Type Eth_TxErrorCounterValuesType.

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

Использование и назначение

Тип данных Eth_TxErrorCounterValuesType согласно [SWS_Eth_91004] специфицирован как структура для статистических счетчиков в целях диагностики в драйвере Ethernet. Определение доступно через заголовочный файл Eth_GeneralTypes.h. Структура объединяет несколько 32-битных счетчиков (uint32), которые отражают специфические состояния передачи и препятствия отправке на уровне интерфейса.

Компоненты структуры и семантика

Отдельные счетчики согласно [SWS_Eth_91004] ориентируются на стандартизированные определения сетевых MIB:

  • Tx Dropped No Error Pkts: количество исходящих пакетов, которые были отброшены, несмотря на безошибочное состояние, например для освобождения буферной памяти (RFC1213 ifOutDiscards).
  • Tx Dropped Error Pkts: количество пакетов, которые не удалось передать из-за возникших ошибок (RFC1213 ifOutErrors).
  • Tx Deferred Trans: количество кадров, первая попытка передачи которых была задержана из-за занятости среды передачи (RFC1643 dot3StatsDeferredTransmissions).
  • Tx Single Collision и Tx Multiple Collision: успешно переданные кадры, отправка которых была задержана ровно одной или несколькими коллизиями соответственно (RFC1643).
  • Tx Late Collision: коллизии, обнаруженные позже чем через 512 битовых интервалов после начала передачи пакета (RFC1643 dot3StatsLateCollisions).
  • Tx Excessive Collison: количество передач, окончательно завершившихся сбоем вследствие чрезмерного количества коллизий (RFC1643 dot3StatsExcessiveCollisions).

Контекст вызова и ограничения

Интерпретация: поскольку в выдержке из спецификации не приведена соответствующая функция API, этот диагностический тип, предположительно, передается по указателю в качестве выходного параметра соответствующим функциям драйвера для опроса счетчиков. Вопрос Q-2bfbe59d1fb81938 (открытый) Специфические требования к обработке ошибок, сообщениям DET или параллельности для этой чисто информационной структуры данных в источниках не определены.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

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

Record
AUTOSAR/AP/record/CP_MOD_Eth
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Eth@rel:R20-11#32b7039a
Content hash
32b7039a
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EthernetDriver.pdf#nameddest=SWS_Eth_00027

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

Eth_GetVersionInfo функция

Returns the version information of this module

void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Eth_Init функция

Initializes the Ethernet Driver

void Eth_Init (const Eth_ConfigType* CfgPtr);

Сервисы · Get…

Eth_GetControllerMode функция

Obtains the state of the indexed controller Tags: atp.Status=obsolete

Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);

Obtains the communication state of the indexed controller Tags: atp.Status=draft

Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);
Eth_GetCounterValues функция

Reads a list with drop counter values of the corresponding controller. The meaning of these values is described at Eth_ Counter Type.

Std_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);
Eth_GetCurrentTime функция

Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, than an the remainin g bits will be filled with 0. Important Note: Eth_ Get Current Time may be called within an exclusive area.

Std_ReturnType Eth_GetCurrentTime (uint8 CtrlIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);
Eth_GetEgressTimeStamp функция

Reads back the egress time stamp on a dedicated message object. It must be called within the Tx Confirmation() function.

Std_ReturnType Eth_GetEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the ingress time stamp on a dedicated message object. It must be called within the Rx Indication() function.

Std_ReturnType Eth_GetIngressTimeStamp (uint8 CtrlIdx, const Eth_DataType* DataPtr, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);
Eth_GetPhysAddr функция

Obtains the physical source address used by the indexed controller

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);
Eth_GetRxStats функция

Returns the following list according to IETF RFC281 9, where the maximal possible value shall denote an invalid value, e.g. if this counter is not available: 1. ether Stats Drop Events 2. ether Stats Octets 3. ether Stats Pkts 4. ether Stats Broadcast Pkts 5. ether Stats Multicast Pkts 6. ether Stats Crc Al ign Errors 7. ether Stats Undersize Pkts 8. ether Stats Oversize Pkts 9. ether Stats Fragments 10. ether Stats Jabbers 11. ether Stats Collisions 12. ether Stats Pkts64Octets 13. ether Stats Pkts65to127Octets 14. ether Stats Pkts128to255Octets 15. ether St ats Pkts256to511Octets 16. ether Stats Pkts512to1023Octets 17. ether

Std_ReturnType Eth_GetRxStats (uint8 CtrlIdx, Eth_RxStatsType* RxStats);

Returns the list of Transmission Error Counters out of IETF RFC1213 and RFC1643 defined with Eth_ Tx Error Counter Values Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

Std_ReturnType Eth_GetTxErrorCounterValues (uint8 CtrlIdx, Eth_TxErrorCounterValuesType* TxErrorCounterValues);
Eth_GetTxStats функция

Returns the list of Transmission Statistics out of IETF RFC1213 defined with Eth_ Tx Stats Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

Std_ReturnType Eth_GetTxStats (uint8 CtrlIdx, Eth_TxStatsType* TxStats);

Сервисы · Set…

Eth_SetControllerMode функция

Enables / disables the indexed controller Tags: atp.Status=obsolete

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Status=draft

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);
Eth_SetPhysAddr функция

Sets the physical source address used by the indexed controller

void Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);

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

Activat es egress time stamping on a dedicated message object. Some HW does store once the egress time stamp marker and some HW needs it always before transmission. There will be no "disable" functionality, due to the fact, that the message type is always "time st amped" by network design.

void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);
Eth_ProvideTxBuffer функция

Provides access to a transmit buffer of the FIFO related to the specified priority

BufReq_ReturnType Eth_ProvideTxBuffer (uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType* BufIdxPtr, uint8* * BufPtr, uint16* LenBytePtr);
Eth_ReadMii функция

Reads a transceiver register

Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);
Eth_Receive функция

Receive a frame from the related fifo.

void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);
Eth_Transmit функция

Triggers transmission of a previously filled transmit buffer

Std_ReturnType Eth_Transmit (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, const uint8* PhysAddrPtr);

Update the physica l source address to/ from the indexed controller filter. If the Ethernet Controller is not capable to do the filtering, the software has to do this.

Std_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);
Eth_WriteMii функция

Configures a transceiver register or triggers a function offered by the receiver

Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);

Обратные вызовы

Eth_TxConfirmation функция

Triggers frame transmission confirmation

void Eth_TxConfirmation (uint8 CtrlIdx);

Циклические

Eth_MainFunction функция

The function checks for controller errors and lost frames. Used for polling state changes. Calls Eth If_ Ctrl Mode Indication when the controller mode changed.

void Eth_MainFunction (void);

Типы

Ethernet buffer identifier type.

Implementation specific structure of the post build configuration

Type Eth_CounterType.

This type defines the Ethernet data type used for data transmission. Its definition depends on the used CPU.

The Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.

This type defines the Ethernet frame type used in the Ethernet frame header

This type is used to read out addresses from the address resolution logic (A RL) table of the switch. typedef struct { uint8 Mac Addr[6U]; uint16 Vlan Id; uint32 Switch Port; } Eth_ Mac Vlan Type; In case of Macaddr contains a Multicast Address Mac Vlan Type.Switch Port shall be handled as Bitmask, each bit represents a Switch Port , Bit 0 represents Eth Swicht Port Idx = 0 , Bit 1 represents Eth Swicht Port Idx = 1 and so on. In case of Macaddr contains not a Multicast Address Mac Vlan Type.Switch Port shall be handled as a value representing the Eth Switch Port Idx.

This is an generic type and used in the layers of the Ethernet communication stack (e.g. EthIf, Eth, EthSwt, EthTrcv) to enable and disable, resp ectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and power on mode, respectively. Tags: atp.Status=obsolete

This is an generic type and used in the layers of the Ethernet commun ication stack (e.g. Eth If, Eth, Eth Swt, Eth Trcv) to enable and disable, respectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and po wer on mode, respectively. The type also support to transfer a wake - up request from the services layer (Com M) to the communication drivers (Eth Trcv). This could be used e.g. for Ethernet hardware that has the capability to wake - up and sleep on data line (see OA TC10) Tags: atp.Status=draft

Variables of this type are used to express frequency ratios.

Type Eth_RxStatsType.

Used as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are available or frames go t lost.

Status supervision used for Development Error Detection. The state shall be available for debugging.

Variables of this type are used to express time differences.

Depending on the HW, quality information regarding the evaluated time stamp might be supported. If not supported, the value shall be always Valid. For Uncertain and Invalid values, the upper layer shall discard the time stamp.

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts at 1970 - - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0

Type Eth_TxErrorCounterValuesType.

Statistic counter for diag nostics.