Ethernet Driver (Eth)
Provides uniform hardware access to Ethernet controller interfaces.
Funktionen — Übersicht
void Eth_Init (const Eth_ConfigType* CfgPtr);Initializes the Ethernet DriverStd_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);Enables / disables the indexed controller Tags: atp.Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);Obtains the state of the indexed controller Tags: atp.Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);Obtains the communication state of the indexed controller Tags: atp.void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);Obtains the physical source address used by the indexed controllervoid Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);Sets the physical source address used by the indexed controllerStd_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);Update the physica l source address to/ from the indexed controller filter.Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);Configures a transceiver register or triggers a function offered by the receiverStd_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);Reads a transceiver registerStd_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);Reads a list with drop counter values of the corresponding controller.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.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...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...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.void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);Activat es egress time stamping on a dedicated message object.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.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.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 priorityStd_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 buffervoid Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);Receive a frame from the related fifo.void Eth_TxConfirmation (uint8 CtrlIdx);Triggers frame transmission confirmationvoid Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Returns the version information of this modulevoid Eth_MainFunction (void);The function checks for controller errors and lost frames.
Typen — Übersicht
struct Eth_ConfigTypeImplementation specific structure of the post build configurationenum Eth_ModeTypeThis is an generic type and used in the layers of the Ethernet communication stack (e.enum Eth_ModeTypeThis is an generic type and used in the layers of the Ethernet commun ication stack (e.enum Eth_StateTypeStatus supervision used for Development Error Detection.Eth_FrameTypeThis type defines the Ethernet frame type used in the Ethernet frame headerEth_DataTypeThis type defines the Ethernet data type used for data transmission.Eth_BufIdxTypeEthernet buffer identifier type.enum Eth_RxStatusTypeUsed as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are...enum Eth_FilterActionTypeThe Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.Eth_TimeStampQualTypeDepending on the HW, quality information regarding the evaluated time stamp might be supported.Eth_TimeStampTypeVariables of this type are used for expressing time stamps including relative time and absolute calendar time.Eth_TimeIntDiffTypeVariables of this type are used to express time differences.Eth_RateRatioTypeVariables of this type are used to express frequency ratios.struct Eth_MacVlanTypeThis type is used to read out addresses from the address resolution logic (A RL) table of the switch.Eth_CounterTypeType Eth_CounterType.Eth_RxStatsTypeType Eth_RxStatsType.Eth_TxStatsTypeStatistic counter for diag nostics.Eth_TxErrorCounterValuesTypeType Eth_TxErrorCounterValuesType.
Funktionen & Typen — Detailansicht
функция Eth_Init [SWS_Eth_00027] 📄 PDF
void Eth_Init (const Eth_ConfigType* CfgPtr);
Initializes the Ethernet Driver
Функция 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
Функция 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
Функция 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_GetControllerMode [SWS_Eth_00046] 📄 PDF
Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);
Obtains the state of the indexed controller Tags: atp.Status=obsolete
функция Eth_GetControllerMode [SWS_Eth_91010] 📄 PDF
Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);
Obtains the communication state of the indexed controller Tags: atp.Status=draft
функция 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.
Синхронный интерфейс 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
Функция 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]:
E_OK: запрос на запись успешно принят [SWS_Eth_00058].E_NOT_OK: служба отклонена [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
Использование и параметры
Функция 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_GetCounterValues [SWS_Eth_00226] 📄 PDF
Std_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);
Reads a list with drop counter values of the corresponding controller. The meaning of these values is described at Eth_ Counter Type.
функция 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.
Синхронная функция 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
Использование
Синхронная функция 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
Использование и контекст вызова
Синхронный интерфейс 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.
Синхронная функция 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
Использование и контекст вызова
Доступная через заголовочный файл 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_GetVersionInfo [SWS_Eth_00106] 📄 PDF
void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Returns the version information of this module
функция 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.
Использование и контекст вызова
Функция 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_ConfigType [SWS_Eth_00156] 📄 PDF
Implementation specific structure of the post build configuration
тип 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
Универсальный перечисляемый тип 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
Перечисляемый тип 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.
Перечислимый тип 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_BufIdxType [SWS_Eth_00175] 📄 PDF
Ethernet buffer identifier type.
тип 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.
Использование и диапазон значений
Перечисляемый тип 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_TimeIntDiffType [SWS_Eth_00179] 📄 PDF
Variables of this type are used to express time differences.
тип Eth_RateRatioType [SWS_Eth_00180] 📄 PDF
Variables of this type are used to express frequency ratios.
тип 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_CounterType [SWS_Eth_91007] 📄 PDF
Type Eth_CounterType.
тип Eth_RxStatsType [SWS_Eth_91002] 📄 PDF
Type Eth_RxStatsType.
тип Eth_TxStatsType [SWS_Eth_91003] 📄 PDF
Statistic counter for diag nostics.
тип Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF
Type Eth_TxErrorCounterValuesType.
Использование и назначение
Тип данных Eth_TxErrorCounterValuesType согласно [SWS_Eth_91004] специфицирован как структура для статистических счетчиков в целях диагностики в драйвере Ethernet. Определение доступно через заголовочный файл Eth_GeneralTypes.h. Структура объединяет несколько 32-битных счетчиков (uint32), которые отражают специфические состояния передачи и препятствия отправке на уровне интерфейса.
Компоненты структуры и семантика
Отдельные счетчики согласно [SWS_Eth_91004] ориентируются на стандартизированные определения сетевых MIB:
Tx Dropped No Error Pkts: количество исходящих пакетов, которые были отброшены, несмотря на безошибочное состояние, например для освобождения буферной памяти (RFC1213ifOutDiscards).Tx Dropped Error Pkts: количество пакетов, которые не удалось передать из-за возникших ошибок (RFC1213ifOutErrors).Tx Deferred Trans: количество кадров, первая попытка передачи которых была задержана из-за занятости среды передачи (RFC1643dot3StatsDeferredTransmissions).Tx Single CollisionиTx Multiple Collision: успешно переданные кадры, отправка которых была задержана ровно одной или несколькими коллизиями соответственно (RFC1643).Tx Late Collision: коллизии, обнаруженные позже чем через 512 битовых интервалов после начала передачи пакета (RFC1643dot3StatsLateCollisions).Tx Excessive Collison: количество передач, окончательно завершившихся сбоем вследствие чрезмерного количества коллизий (RFC1643dot3StatsExcessiveCollisions).
Контекст вызова и ограничения
Интерпретация: поскольку в выдержке из спецификации не приведена соответствующая функция 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
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал