DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

ModulLin (LIN Driver)
BSW-Modul-ID82
Standard-Header#include "Lin.h"
SWS-SpezifikationAUTOSAR_SWS_LINDriver.pdf
ClusterLIN

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

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

Управляет аппаратной частью LIN и предоставляет LIN Interface службы для фреймов, состояния сна и пробуждения для каждого канала.

Драйвер LIN инкапсулирует аппаратную часть LIN микроконтроллера и предоставляет LIN Interface привязанные к каналу службы для фреймов, состояния сна и пробуждения. Master-каналы инициируют фреймы асинхронно с помощью Lin_SendFrame и анализируют их через Lin_GetStatus. Slave-каналы реагируют на каждый принятый заголовок индикацией для LIN Interface и затем отправляют, принимают или игнорируют отклик ([SWS_Lin_00280]). Доступность служб зависит от сконфигурированного типа узла; Master-службы доступны только при наличии хотя бы одного Master-канала ([SWS_Lin_00287]).

Драйвер LIN Lin является аппаратным драйвером стека LIN. Он инкапсулирует LIN-контроллеры или SCI/UART (SWS LIN Driver с. 9) и предоставляет LIN Interface привязанные к каналу службы для фреймов, состояния сна и пробуждения. В обязательном порядке ему требуются Dem_SetEventStatus, EcuM_SetWakeupEvent и LinIf_WakeupConfirmation ([SWS_Lin_00234]). Опционально он использует DET, Icu и Slave-колбэки LinIf ([SWS_Lin_00235]).

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Контекстная диаграмма: Lin расположен между LinIf и аппаратной частью LIN и сообщает о пробуждениях и ошибках в EcuM, LinIf, DEM и DET. Источники: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init переводит модуль из LIN_UNINIT в LIN_INIT ([SWS_Lin_00006], SWS LIN Driver с. 24). После этого каждый канал переключается между LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (только Master) и LIN_CH_SLEEP. Для этого предусмотрены Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup и Lin_WakeupInternal ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal Состояния для каждого канала (только в LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (не доступен для использования) Reset->LIN_UNINIT после сброса LIN_INIT LIN_INIT (каналы готовы к работе) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (участвует в кластере) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (только Master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (с импульсом пробуждения) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (без импульса пробуждения)

Диаграмма состояний: состояния модуля и состояния каналов с их переходами. То, что Lin_GetStatus завершает переход в LIN_CH_SLEEP, является интерпретацией диаграммы. Источники: SWS LIN Driver с. 24, [SWS_Lin_00166]

Master- и Slave-каналы работают принципиально по-разному. Master асинхронно запускает фреймы с помощью Lin_SendFrame и позже опрашивает результат через Lin_GetStatus ([SWS_Lin_00191], [SWS_Lin_00168]). Эти службы доступны только в том случае, если хотя бы один канал сконфигурирован как Master ([SWS_Lin_00287]). Slave сообщает о каждом заголовке через LinIf_HeaderIndication ([SWS_Lin_00280]). В зависимости от Drc он затем отправляет, принимает или игнорирует отклик и завершает его с помощью LinIf_TxConfirmation или LinIf_RxIndication ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Пробуждения со стороны шины проверяет Lin_CheckWakeup и сообщает о них в EcuM и LinIf ([SWS_Lin_00160]). В случае ошибки случаи некорректного использования передаются в DET, например LIN_E_UNINIT ([SWS_Lin_00258]). Аппаратный таймаут передается как LIN_E_TIMEOUT в DEM ([SWS_Lin_00290]). Ошибки шины Master-канал возвращает в виде статуса, а Slave-канал сообщает о них через LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Роль, границы системы и привязка к экземпляру драйвера LIN

Драйвер LIN Lin инкапсулирует аппаратную часть LIN микроконтроллера. LIN Interface (LinIf) он предоставляет привязанные к каналу службы: отправку и прием фреймов, перевод каналов в спящий режим и пробуждение, а также проверку пробуждений. Все службы доступны через Lin.h ([SWS_Lin_00191], [SWS_Lin_00160]). В качестве аппаратной части спецификация называет три типа аппаратных блоков LIN (Hardware Units): полнофункциональные контроллеры LIN, простые SCI/UART и расширенные SCI/UART. Каждый из них подключен к кластеру LIN через микросхемы трансиверов (SWS LIN Driver с. 9). Сам драйвер не предоставляет функций обратного вызова (SWS LIN Driver с. 49). Вместо этого он вызывает функции своего окружения.

Обязательными внешними интерфейсами являются Dem_SetEventStatus, EcuM_SetWakeupEvent и LinIf_WakeupConfirmation ([SWS_Lin_00234]). Опционально драйвер использует, среди прочего:

  • Det_ReportError и EcuM_CheckWakeup,
  • Icu_EnableNotification и Icu_DisableNotification,
  • для Slave-каналов — колбэки LinIf_HeaderIndication, LinIf_RxIndication и LinIf_LinErrorIndication ([SWS_Lin_00235]).

Импортируемые типы, такие как NetworkHandleType, EcuM_WakeupSourceType или Std_ReturnType, перечислены в [SWS_Lin_00226].

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Контекстная диаграмма: Lin находится между LinIf и аппаратным блоком LIN. О пробуждениях драйвер сообщает в EcuM и LinIf, об ошибках — в DEM и DET. Источники: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver с. 9

Драйвер поддерживает секционирование. Он работает в каждом разделе как независимый экземпляр, и вызов API влияет только на тот раздел, в котором он выполняется ([SWS_Lin_CONSTR_00270]). Если LinEcucPartitionRef ссылается на разделы, LinChannelEcucPartitionRef должен ссылаться ровно на один из них ([SWS_Lin_CONSTR_00291]). LinChannel и LinTrcvChannel коммуникационного канала должны ссылаться на один и тот же раздел ([SWS_Lin_CONSTR_00279]). Назначения разделов, которые реализация не поддерживает, отклоняются модулем ([SWS_Lin_00269]). Для каждого канала конфигурируются, в частности, скорость передачи данных (baud rate), ID канала, LinChannelWakeupSupport и тип узла LinNodeType. Это описание контейнера взято из более позднего релиза (SWS LIN Driver с. 60).

Состояния модуля и каналов от Lin_Init до состояния сна

После сброса модуль находится в состоянии LIN_UNINIT и не может использоваться. Lin_Init переводит его в LIN_INIT; там каждый доступный канал готов к работе (SWS LIN Driver с. 24). Lin_Init получает указатель на структуру Lin_ConfigType. Ее содержимое специфично для аппаратного обеспечения; она содержит данные инициализации для драйвера, аппаратного блока и каналов ([SWS_Lin_00006], [SWS_Lin_00227]). Окружение должно вызывать Lin_Init во время выполнения только один раз (SWS LIN Driver с. 24).

Внутри LIN_INIT каждый канал имеет собственное состояние:

  • LIN_CH_OPERATIONAL: канал участвует в работе кластера.
  • LIN_CH_SLEEP: распознавание пробуждения активно, аппаратная часть при необходимости находится в режиме низкого энергопотребления.
  • LIN_CH_SLEEP_PENDING: только для Master-каналов, после Lin_GoToSleep.

Свидетельства: SWS LIN Driver с. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal переводит канал напрямую в LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup возвращает с импульсом пробуждения обратно в LIN_CH_OPERATIONAL, Lin_WakeupInternal — без импульса ([SWS_Lin_00169], [SWS_Lin_00256]).

Интерпретация: переход из LIN_CH_SLEEP_PENDING в LIN_CH_SLEEP, вероятно, завершает Lin_GetStatus. Вопрос Q-bb592e1d2ab668f0 (открытый) На диаграмме Lin_GetStatus указан как переход в части Master, и LIN Interface при проверке команды перехода в спящий режим ожидает возвращаемое значение LIN_CH_SLEEP (SWS LIN Interface с. 56).

LinZustaende cluster_kanal Состояния для каждого канала (только в LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (не доступен для использования) Reset->LIN_UNINIT после сброса LIN_INIT LIN_INIT (каналы готовы к работе) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (участвует в кластере) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (только Master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (с импульсом пробуждения) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (без импульса пробуждения)

Диаграмма состояний: Lin_Init переводит модуль из LIN_UNINIT в LIN_INIT. В нем каждый канал переключается между рабочим состоянием и сном с помощью служб сна и пробуждения; переход через Lin_GetStatus является интерпретацией. Источники: SWS LIN Driver с. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Описание фрейма через Lin_PduType и отображение данных

Между LinIf и драйвером Lin_PduType описывает фрейм. Структура содержит Pid, модель контрольной суммы Cs, направление отклика Drc, длину данных Dl и указатель на данные SduPtr ([SWS_Lin_00232]). Типы элементов:

  • Lin_FramePidType: идентификатор 0…0x3F с двумя битами четности, диапазон значений 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: 1…8 байтов данных ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS или LIN_CLASSIC_CS ([SWS_Lin_00229]). Драйвер должен уметь рассчитывать обе контрольные суммы ([SWS_Lin_00019]).

Lin_FrameResponseType определяет, как узел обрабатывает отклик ([SWS_Lin_00230]): он отправляет его сам (LIN_FRAMERESPONSE_TX), принимает релевантный сторонний отклик (LIN_FRAMERESPONSE_RX) или игнорирует его (LIN_FRAMERESPONSE_IGNORE). В памяти байт, передаваемый первым, находится в элементе 0, а передаваемый последним — в элементе n-1 (SWS LIN Driver с. 30). Если аппаратное обеспечение не может буферизовать байты, например в случае простого UART, драйвер предоставляет временный буфер. Передача с проверкой обратного считывания и прием выполняются неблокирующим образом (SWS LIN Driver с. 28).

Master-каналы: Lin_SendFrame и опрос статуса

На Master-каналах LinIf инициирует каждый фрейм с помощью асинхронной Lin_SendFrame. Служба передает заголовок LIN и при необходимости отклик ([SWS_Lin_00191]). Это относится к записям расписания для приема, передачи и обмена Slave-to-Slave (SWS LIN Interface с. 34, SWS LIN Interface с. 37, SWS LIN Interface с. 40).

Результат LinIf опрашивает с помощью синхронной Lin_GetStatus: не ранее чем через максимальную длительность фрейма и не позднее следующей наступившей записи расписания (SWS LIN Interface с. 35, [SWS_Lin_00168]). Служба возвращает Lin_StatusType, например LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY или LIN_RX_NO_RESPONSE. Через Lin_SduPtr она дополнительно возвращает указатель на теневой или аппаратный буфер приема ([SWS_Lin_00233]).

Принятые данные остаются консистентными до тех пор, пока следующий фрейм не будет успешно принят или пока не изменится состояние канала. Вся обработка приема может находиться в Lin_GetStatus (SWS LIN Driver с. 30). Для фреймов, инициируемых событиями (event-triggered), действует следующее (SWS LIN Interface с. 127, SWS LIN Interface с. 129):

  • LIN_RX_NO_RESPONSE не рассматривает LinIf как ошибку.
  • LIN_RX_ERROR считается коллизией и приводит к переходу на расписание разрешения коллизий.

Lin_SendFrame, Lin_GoToSleep и Lin_GetStatus существуют только тогда, когда хотя бы один канал сконфигурирован через LinNodeType как Master ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). В R20-11 эти службы специфицированы как non-reentrant ([SWS_Lin_00168]). Более поздние версии допускают реэнтрантность для различных каналов (SWS LIN Driver с. 48); для R20-11 действует данное требование.

Обработка фрейма на Master-каналеBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: Срок выполнения записи расписания наступилLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKасинхронно: заголовок и ответвыполняются неблокирующим образомUse Case: Проверка статуса начиная с максимальной длины фреймаloopна каждый вызов MainFunction, пока фрейм все еще выполняетсяLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKПринять данные через Lin_SduPtr (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,нет действийLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Диаграмма последовательности: Master асинхронно инициирует фрейм с помощью Lin_SendFrame и анализирует результат в последующих вызовах MainFunction через Lin_GetStatus. Источники: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface с. 128, SWS LIN Interface с. 129, SWS LIN Interface с. 40

Slave-каналы: обработка отклика, управляемая заголовком

Slave-канал должен иметь возможность принять заголовок в LIN_CH_OPERATIONAL в любое время ([SWS_Lin_00272]). Для каждого заголовка драйвер вызывает LinIf_HeaderIndication. При этом PduPtr->Pid содержит принятый PID, а PduPtr->SduPtr указывает на его аппаратный или теневой буфер ([SWS_Lin_00280]). Если аппаратное обеспечение не распознает недопустимые PID, драйвер передает PID дальше без проверки ([SWS_Lin_00271]). После возврата E_OK он анализирует PduPtr->Drc ([SWS_Lin_00282]):

  • При LIN_FRAMERESPONSE_TX он использует Cs, Dl и SduPtr для отправки отклика ([SWS_Lin_00283]).
  • При LIN_FRAMERESPONSE_RX он конфигурирует прием с помощью Cs и Dl ([SWS_Lin_00284]).

Если LinIf_HeaderIndication возвращает E_NOT_OK или Drc равно LIN_FRAMERESPONSE_IGNORE, драйвер игнорирует отклик ([SWS_Lin_00286]). До следующего заголовка он ничего не сообщает ([SWS_Lin_00276]). Успешно принятый отклик он передает напрямую через LinIf_RxIndication, а отправленный подтверждает через LinIf_TxConfirmation ([SWS_Lin_00274], [SWS_Lin_00275]). Каждый релевантный отклик должен быть завершен одним из этих колбэков или с помощью LinIf_LinErrorIndication до того, как будет сообщено о следующем заголовке ([SWS_Lin_00285]). Диаграмма приема различает два аппаратных варианта: аппаратный LIN-контроллер и простой UART, при котором драйвер копирует каждый байт в буфер по прерыванию (SWS LIN Driver с. 57).

Обработка заголовка и ответа на Slave-каналеLinController/UARTLinLinIfObere SchichtUse Case: Header-Empfang in LIN_CH_OPERATIONALInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)PduPtr->Pid, PduPtr->SduPtr gesetztEvaluatePID()optSende-FrameTriggerTransmit (Daten in SduPtr-Puffer)SetPduPtrValues() (Drc, Cs, Dl)E_OK / E_NOT_OKPduPtr->Drc auswertenaltE_OK и Drc = LIN_FRAMERESPONSE_TXОтправить ответ с Cs, Dl, SduPtrInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK и Drc = LIN_FRAMERESPONSE_RXСконфигурировать прием с Cs, DlInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK или Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;нет сообщений до следующего заголовкаОшибка шины при передаче/приеме: прерывание иLinIf_LinErrorIndication(Channel, ErrorStatus)

Диаграмма последовательности: на Slave-канале каждый заголовок вызывает индикацию в LinIf. В зависимости от Drc драйвер отправляет, принимает или игнорирует отклик. Источники: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface с. 121, SWS LIN Interface с. 132

Переход в спящий режим, пробуждение и распознавание пробуждения

Только Master может отправлять команду перехода в спящий режим (Go-to-sleep). Lin_GoToSleep передает ее асинхронно в соответствии с LIN 2.1 и переводит канал в LIN_CH_SLEEP_PENDING даже при ошибочной передаче. Если сконфигурирован LinChannelWakeupSupport, служба также активирует мониторинг шины ([SWS_Lin_00166], SWS LIN Driver с. 43). Для Slave-узлов Lin_GoToSleep неприменима; они используют Lin_GoToSleepInternal (SWS LIN Driver с. 31). Эта служба синхронно устанавливает LIN_CH_SLEEP, активирует распознавание пробуждения и опционально переводит аппаратную часть в режим пониженного энергопотребления ([SWS_Lin_00167], SWS LIN Driver с. 44). Каждый канал принимает запросы на переход в спящий режим независимо от остальных (SWS LIN Driver с. 31).

Для пробуждения предусмотрены две службы. Lin_Wakeup отправляет импульс пробуждения на шину, а Lin_WakeupInternal вводит канал в эксплуатацию без импульса ([SWS_Lin_00169], [SWS_Lin_00262]). Пробуждение от шины проверяет Lin_CheckWakeup. Если служба обнаруживает событие, например постоянный низкий уровень RxD, она немедленно сообщает о нем через EcuM_SetWakeupEvent в EcuM и через LinIf_WakeupConfirmation в LinIf ([SWS_Lin_00160], SWS LIN Driver с. 42). LinIf_CheckWakeup на основе источника пробуждения определяет, вызывается ли Lin_CheckWakeup или LinTrcv_CheckWakeup (SWS LIN Interface с. 112). Валидация пробуждения для LIN не требуется (SWS EcuM с. 173).

Проверка пробуждения от шины LINLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,Мониторинг шины активен (LinChannelWakeupSupport)Событие пробуждения (прерывание или опрос)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(источник LIN-контроллер; иначе LinTrcv_CheckWakeup)Wake-up auswerten(z. B. RxD dauerhaft low)optWake-up erkanntEcuM_SetWakeupEvent()LinIf_WakeupConfirmation()E_OK / E_NOT_OKE_OK / E_NOT_OKLIN не требует валидации пробуждения

Диаграмма последовательности: пробуждение от шины передается через EcuM и LinIf_CheckWakeup в Lin_CheckWakeup. Драйвер сообщает об обнаруженном событии в EcuM и LinIf. Источники: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver с. 42, SWS LIN Interface с. 112, SWS EcuM с. 147

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

При активном обнаружении ошибок разработки службы сообщают о некорректном использовании в DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; для Lin_Wakeup аналогично SWS LIN Driver с. 45):

  • LIN_E_UNINIT при вызове до инициализации,
  • LIN_E_INVALID_CHANNEL при недопустимом или неактивном канале,
  • LIN_E_STATE_TRANSITION при пробуждении вне LIN_CH_SLEEP.

Lin_GetVersionInfo сообщает об указателе NULL с LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver с. 41). При отключенном DET Lin_CheckWakeup возвращает для недопустимого канала E_NOT_OK (SWS LIN Driver с. 42). В общем случае E_NOT_OK и LIN_NOT_OK указывают на возникновение ошибки разработки или производственной ошибки ([SWS_Lin_00191], [SWS_Lin_00233]).

В качестве производственной ошибки специфицирован LIN_E_TIMEOUT. Если после изменения аппаратных регистров управления необходимо ожидать смены состояния, это ожидание страхуется конфигурируемым таймаутом. Если он истекает, регистрируется ошибка ([SWS_Lin_00290]). Сообщение передается через Dem_SetEventStatus ([SWS_Lin_00234]) событию, на которое ссылается LinDemEventParameterRefs (SWS LIN Driver с. 65).

Ошибки коммуникации драйвер сообщает по-разному в зависимости от типа узла. Master-каналы возвращают их в виде статуса Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR при ошибках обратного считывания, четности или шины в заголовке,
  • LIN_TX_ERROR при ошибочной передаче ответа,
  • LIN_RX_ERROR при ошибках кадрирования, переполнения или контрольной суммы, а также при слишком коротком ответе.

Slave-каналы прерывают обработку кадра и вызывают LinIf_LinErrorIndication с Lin_SlaveErrorType ([SWS_Lin_00277], [SWS_Lin_91140]). О недопустимых событиях шины во время ожидания заголовка они сообщают как LIN_ERR_HEADER ([SWS_Lin_00281]).

LinFehlerpfade start Событие ошибки в драйвере LIN art Тип ошибки? start->art dev Ошибка разработки (только при активированном обнаружении DET) art->dev Некорректное использование API hw Таймаут ожидания после изменения регистров управления аппаратной частью art->hw Hardwarefehler com Ошибка связи на шине art->com Busfehler det Det_ReportError: LIN_E_UNINIT / LIN_E_INVALID_CHANNEL / LIN_E_STATE_TRANSITION / LIN_E_PARAM_POINTER dev->det ret Возврат E_NOT_OK или LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ Тип узла канала? com->typ master Master: статус ошибки при Lin_GetStatus (LIN_TX_HEADER_ERROR, LIN_TX_ERROR, LIN_RX_ERROR) typ->master Master slave Slave: aktuelle Frame-Bearbeitung abbrechen typ->slave Slave sind LinIf_LinErrorIndication(Channel, Lin_SlaveErrorType) z. B. LIN_ERR_HEADER, LIN_ERR_RESP_CHKSUM, LIN_ERR_NO_RESP slave->sind

Диаграмма деятельности: ошибки разработки направляются в DET, аппаратный таймаут — в DEM. Ошибки коммуникации по шине Master-канал сообщает в виде статуса, а Slave-канал — в виде индикации ошибки. Источники: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

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

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

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

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

Синхронная функция Lin_Init служит для инициализации модуля драйвера LIN платформы AUTOSAR Classic согласно спецификации [SWS_Lin_00006]. Интерфейс предоставляется через заголовочный файл Lin.h и внутренне адресуется через Service ID 0x00 [SWS_Lin_00006].

Для использования и вызова функции действуют следующие условия на параметры и интерфейс:

  • Входные параметры: в качестве единственного входного параметра ожидается Config [SWS_Lin_00006]. Он представляет собой указатель на набор конфигурационных данных драйвера LIN типа const Lin_ConfigType* [SWS_Lin_00006]. Для этого интерфейса не предусмотрены ни входные/выходные параметры, ни чисто выходные параметры [SWS_Lin_00006].
  • Возвращаемое значение: функция не возвращает значения (void) [SWS_Lin_00006].
  • Семантика выполнения: обработка выполняется полностью синхронно (Synchronous), поэтому шаги инициализации драйвера отрабатываются непосредственно во время вызова функции [SWS_Lin_00006].

В отношении контекста вызова и параллелизма определено, что Lin_Init не является реентерабельной (Non Reentrant) [SWS_Lin_00006]. Интерпретация: поскольку функция выполняет базовую инициализацию модуля драйвера LIN и не рассчитана на реентерабельность, она, вероятно, обычно вызывается на этапе запуска всей системы до использования других сервисов драйвера LIN. Вопрос Q-d535602a0d4708ce (открытый) При этом одновременный или многократный вызов из различных контекстов выполнения, по-видимому, недопустим.

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

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

функция Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

This function checks if a wakeup has occurred on the addressed LIN channel.

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

Синхронная функция Lin_CheckWakeup служит для проверки того, произошло ли событие пробуждения на адресуемом канале LIN [SWS_Lin_00160]. Интерфейс доступен через заголовочный файл Lin.h и имеет Service ID 0x0a [SWS_Lin_00160]. Для идентификации канала функция принимает параметр Channel типа данных uint8 [SWS_Lin_00160]. Другие входные или выходные параметры для этого интерфейса не предусмотрены [SWS_Lin_00160].

Результат выполнения возвращается синхронно через тип возвращаемого значения Std_ReturnType [SWS_Lin_00160]. Значение статуса E_OK указывает на то, что во время выполнения вызова API ошибки не возникло [SWS_Lin_00160]. Если же во время выполнения возникает ошибка, сервис возвращает значение E_NOT_OK [SWS_Lin_00160]. Специфические коды ошибок, а также уведомления в DET или DEM для этого элемента в источниках не специфицированы.

В отношении параллелизма Lin_CheckWakeup определена как нереентерабельная (Non Reentrant) [SWS_Lin_00160]. Поэтому вызывающие компоненты должны гарантировать последовательное выполнение вызовов и отсутствие одновременного выполнения. Поскольку точный контекст вызова в спецификации подробно не определён, вызов, вероятно, инициируется вышележащими уровнями, такими как управление пробуждением или ECU State Manager. Вопрос Q-40221056a2e2c042 (открытый)

Этот текст создан ИИ; все утверждения основаны на требованиях стандарта AUTOSAR.

функция Lin_SendFrame [SWS_Lin_00191] 📄 PDF

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

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

Функция Lin_SendFrame служит для отправки заголовка LIN, а также при необходимости соответствующего ответа LIN и предназначена исключительно для master-узлов LIN [SWS_Lin_00191]. Через указатель PduInfoPtr задаётся направление передачи ответа кадра, которое может соответствовать ответу master-узла, ответу slave-узла или обмену данными между slave-узлами [SWS_Lin_00191].

Вызов и параметры: выполнение функции происходит асинхронно [SWS_Lin_00191]. При вызове передаются следующие входные параметры:

  • Channel: определяет адресуемый канал LIN как uint8 [SWS_Lin_00191].
  • PduInfoPtr: указатель на структуру типа Lin_PduType, которая содержит защищённый идентификатор (PID), модель контрольной суммы (Checksum Model), тип ответа, длину данных (Dl), а также указатель на данные SDU [SWS_Lin_00191].

Возвращаемые значения и обработка ошибок: функция возвращает значение типа Std_ReturnType [SWS_Lin_00191]:

  • E_OK: запрос на отправку успешно принят и утверждён к асинхронному выполнению [SWS_Lin_00191].
  • E_NOT_OK: запрос на отправку отклонён из-за наличия ошибки разработки (Development Error) или производственной ошибки (Production Error) [SWS_Lin_00191].

Параллелизм и интеграция: интерфейс специфицирован как нереентерабельный (Non Reentrant), в связи с чем необходимо избегать параллельных вызовов для одного и того же канала [SWS_Lin_00191]. Функция имеет Service ID 0x04 и подключается через заголовочный файл Lin.h [SWS_Lin_00191].

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

функция Lin_GoToSleep [SWS_Lin_00166] 📄 PDF

Std_ReturnType Lin_GoToSleep (uint8 Channel);

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

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

Функция и контекст вызова

Функция Lin_GoToSleep дает указание LIN-драйверу отправить команду Go-to-Sleep на адресованном LIN-канале [SWS_Lin_00166]. Эта служба драйвера имеет Service-ID 0x06 и предоставляется через заголовочный файл Lin.h [SWS_Lin_00166]. Выполнение службы происходит асинхронно для вызывающей стороны [SWS_Lin_00166]. Объявление функции выглядит как Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Параметры и возвращаемые значения

В качестве единственного входного параметра передается Channel типа uint8, который идентифицирует адресуемый LIN-канал [SWS_Lin_00166]. Дополнительные входные или выходные параметры отсутствуют [SWS_Lin_00166].

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

  • E_OK: команда Go-to-Sleep была успешно принята драйвером [SWS_Lin_00166].
  • E_NOT_OK: команда не была принята из-за возникновения ошибки разработки или ошибки производства [SWS_Lin_00166].

Ограничения и параллелизм

В отношении параллелизма функция объявлена как нереентерабельная (Non Reentrant) [SWS_Lin_00166]. В качестве важного функционального ограничения Lin_GoToSleep предусмотрена исключительно для master-узлов LIN [SWS_Lin_00166].

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

функция Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

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

Синхронная функция Lin_GoToSleepInternal устанавливает состояние адресуемого LIN-канала в LIN_CH_SLEEP, активирует распознавание Wake-up и опционально переводит аппаратный блок LIN в режим пониженного энергопотребления, если это поддерживается аппаратным обеспечением [SWS_Lin_00167]. Адресация требуемого LIN-канала осуществляется через входной параметр Channel типа uint8, тогда как другие входные или выходные параметры отсутствуют [SWS_Lin_00167].

Результат выполнения синхронно сигнализируется через возвращаемое значение типа Std_ReturnType [SWS_Lin_00167]:

  • E_OK: команда перехода в спящий режим была успешно принята [SWS_Lin_00167].
  • E_NOT_OK: команда была отклонена, так как возникла ошибка разработки или ошибка производства [SWS_Lin_00167].

Касательно параллелизма и контекста вызова функция Lin_GoToSleepInternal специфицирована как нереентерабельная (Non Reentrant) [SWS_Lin_00167]. Вызывающие программные модули должны гарантировать, что вызовы выполняются последовательно и не накладываются друг на друга параллельно. Функция определена под Service-ID 0x09 и доступна через заголовочный файл Lin.h [SWS_Lin_00167].

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

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

функция Lin_Wakeup [SWS_Lin_00169] 📄 PDF

Std_ReturnType Lin_Wakeup (uint8 Channel);

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

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

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

Функция Lin_Wakeup относится к модулю драйвера Lin платформы AUTOSAR Classic [SWS_Lin_00169]. Её назначение заключается в том, чтобы генерировать импульс пробуждения (Wake-up Pulse) на адресуемом канале шины и непосредственно переводить состояние канала в LIN_CH_OPERATIONAL [SWS_Lin_00169]. Интерфейс предоставляется через заголовочный файл Lin.h с идентификатором сервиса (Service ID) 0x07 и сигнатурой Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

В качестве входного параметра функция принимает Channel типа uint8, с помощью которого задаётся управляемый LIN-канал [SWS_Lin_00169]. Входные/выходные параметры или чисто выходные параметры отсутствуют [SWS_Lin_00169]. Поведение при выполнении является асинхронным (Asynchronous); таким образом, возврат из функции лишь подтверждает принятие запроса, тогда как физический импульс пробуждения формируется на шине позже [SWS_Lin_00169].

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

Через тип возвращаемого значения Std_ReturnType передаётся результат принятия запроса [SWS_Lin_00169]:

  • E_OK: запрос на пробуждение был принят драйвером LIN и обрабатывается [SWS_Lin_00169].
  • E_NOT_OK: запрос был отклонён из-за возникновения ошибки разработки или производственной ошибки [SWS_Lin_00169].

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

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

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

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

функция Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

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

Предоставляемая через заголовочный файл Lin.h функция Lin_WakeupInternal асинхронно переводит канал LIN в рабочее состояние LIN_CH_OPERATIONAL без выдачи импульса пробуждения на физическую шину LIN [SWS_Lin_00256]. Она обрабатывает внутренние запросы пробуждения от вышележащего интерфейса LIN, при которых передача сигнала пробуждения по шине запрещена [SWS_Lin_00262]. Вызов выполняется через параметр Channel типа uint8. Функция возвращает E_OK, если запрос пробуждения был принят, или E_NOT_OK, если запрос был отклонён либо присутствует ошибка разработки или производственная ошибка [SWS_Lin_00256].

В отношении контекста вызова и параллелизма действует правило, что Lin_WakeupInternal не является реентерабельной (Non Reentrant) [SWS_Lin_00256]. В качестве строгого условия очерёдности конечный автомат адресуемого канала в момент вызова должен находиться в состоянии покоя LIN_CH_SLEEP [SWS_Lin_00260].

При включённом обнаружении ошибок разработки модуль контролирует следующие ошибочные условия и сообщает о соответствующих ошибках разработки:

  • LIN_E_UNINIT: вызов функции до инициализации модуля драйвера LIN [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: переданный параметр канала недействителен или адресуемый канал неактивен [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: имеет место недопустимый переход состояния, так как канал LIN не находится в состоянии LIN_CH_SLEEP [SWS_Lin_00260].

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

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

тип Lin_ConfigType [SWS_Lin_00227] 📄 PDF

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

тип Lin_FramePidType [SWS_Lin_00228] 📄 PDF

Represents all valid protected identifier used by Lin_ Send Frame().

тип Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

This type is used to specify the Checksum model to be used for the LIN Frame.

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

Тип перечисления Lin_FrameCsModelType согласно [SWS_Lin_00229] служит для задания модели контрольной суммы, используемой для отдельного кадра LIN. Определение типа стандартно доступно через заголовочный файл Lin_GeneralTypes.h [SWS_Lin_00229].

Для конфигурации согласно [SWS_Lin_00229] доступны два значения:

  • LIN_ENHANCED_CS: выбирает расширенную модель контрольной суммы (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS: выбирает классическую модель контрольной суммы (Classic checksum model) [SWS_Lin_00229].

Будучи чистым типом данных, Lin_FrameCsModelType сам по себе не определяет функциональных интерфейсов, возвращаемых значений или сообщений об ошибках DET/DEM [SWS_Lin_00229]. Использование, вероятно, происходит преимущественно в качестве параметра или элемента внутри дескрипторов конфигурации и кадров в модуле Lin (интерпретация), чтобы сообщить драйверу, по какому алгоритму проверяется контрольная сумма кадра при передаче или приёме. Вопрос Q-6d3354059d0641df (открытый) Поэтому обработка ошибок для недопустимых значений должна, по-видимому, перехватываться на уровне обрабатывающих API драйвера или конфигурации модуля (интерпретация). Вопрос Q-06e26f4bcff1e520 (открытый)

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

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

тип Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

тип Lin_PduType [SWS_Lin_00232] 📄 PDF

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

тип Lin_StatusType [SWS_Lin_00233] 📄 PDF

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().

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

Перечислимый тип Lin_StatusType предоставляется через Lin_GeneralTypes.h и определяет рабочие состояния и состояния передачи для LIN-каналов и LIN-кадров, возвращаемые в качестве значения API-сервиса Lin_GetStatus() [SWS_Lin_00233].

Значения состояния подразделяются на состояния канала и операционные значения кадров [SWS_Lin_00233]:

  • Статус канала: LIN_OPERATIONAL представляет собой штатный режим работы, при котором LIN-канал готов к передаче следующего заголовка (Header) и данные предыдущего кадра отсутствуют (например, после инициализации). В противоположность этому LIN_CH_SLEEP обозначает состояние покоя канала, в котором для slave-узлов активировано распознавание пробуждения [SWS_Lin_00233].
  • Текущие передачи: LIN_TX_BUSY обозначает выполняющуюся передачу заголовка или ответа (Response). LIN_RX_BUSY сигнализирует о текущем процессе приёма, при котором поступил уже по меньшей мере один байт ответа, однако ещё не получен завершающий байт контрольной суммы [SWS_Lin_00233].
  • Успешное завершение: LIN_TX_OK подтверждает успешную передачу, тогда как LIN_RX_OK указывает на безошибочный приём полного ответа [SWS_Lin_00233].
  • Состояния ошибок и тайм-ауты: LIN_NOT_OK указывает на ошибки разработки или производственные ошибки. При операциях передачи тип различает LIN_TX_HEADER_ERROR (ошибка при отправке заголовка из-за несовпадения данных, ошибки чётности идентификатора или физических ошибок шины) и LIN_TX_ERROR (ошибка при передаче ответа из-за несовпадения данных или ошибок шины). На стороне приёма LIN_RX_ERROR обозначает ошибки приёма, такие как ошибки кадрирования (Framing), переполнения (Overrun), контрольной суммы или неполные ответы; LIN_RX_NO_RESPONSE сообщает о полном отсутствии байтов ответа [SWS_Lin_00233].

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

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

тип Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

This type represents the slave error types that are detected during header reception and response transmission / reception.

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

Перечислимый тип Lin_SlaveErrorType представляет специфические типы ошибок LIN-slave-узла, обнаруживаемые во время приёма заголовка, а также во время передачи или приёма ответа [SWS_Lin_91140]. Определение типа предоставляется через заголовочный файл Lin_GeneralTypes.h [SWS_Lin_91140].

Состояния ошибок и диапазон значений

Перечисление охватывает ошибки во время различных фаз LIN-коммуникации [SWS_Lin_91140]:

  • LIN_ERR_HEADER: сигнализирует об ошибке при приёме заголовка LIN [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: указывает на ошибку кадрирования (Framing) или ошибку стоп-бита в ответе [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: обозначает ошибку контрольной суммы принятого ответа [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: сообщает об ошибке мониторинга битов (Bit Monitoring) переданного бита данных в ответе [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: указывает на то, что ответ на заголовок не был получен [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: возникает, если был принят или передан неполный ответ [SWS_Lin_91140].

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

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

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

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

Record
AUTOSAR/AP/record/CP_MOD_Lin
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#624ae8ee
Content hash
624ae8ee
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

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

Lin_GetStatus функция

Service Lin_GetStatus.

Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);
Lin_GetVersionInfo функция

Returns the version information of this module.

void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Lin_Init функция

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Сервисы

Lin_CheckWakeup функция

This function checks if a wakeup has occurred on the addressed LIN channel.

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GoToSleep функция

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

Std_ReturnType Lin_GoToSleep (uint8 Channel);
Lin_GoToSleepInternal функция

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);
Lin_SendFrame функция

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Lin_Wakeup функция

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

Std_ReturnType Lin_Wakeup (uint8 Channel);
Lin_WakeupInternal функция

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Типы

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

This type is used to specify the Checksum model to be used for the LIN Frame.

This type is used to specify the number of SDU data bytes to copy.

Represents all valid protected identifier used by Lin_ Send Frame().

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

This type represents the slave error types that are detected during header reception and response transmission / reception.

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().