|
ELIOT1 HAL
|
Интерфейс драйвера модуля ввода-вывода по интерфейсу CAN. Подробнее...
#include "hal_common.h"Структуры данных | |
| struct | _can_tx_buffer_frame |
| Структура буфера передачи кадра CAN. Подробнее... | |
| struct | _can_rx_buffer_frame |
| Структура буфера приема кадра CAN. Подробнее... | |
| struct | _can_frame_filter |
| Фильтр принятых кадров CAN. Подробнее... | |
| struct | _can_frame_filter_config |
| Конфигурация фильтрации принятых кадров CAN. Подробнее... | |
| struct | _ttcan_config |
| Временные параметры передачи битов CAN. Подробнее... | |
| struct | _can_timing_config |
| Временные параметры передачи битов CAN. Подробнее... | |
| struct | _can_ptb_config |
| Параметры высокоприоритетного буфера выдачи Подробнее... | |
| struct | _can_stb_config |
| Параметры низкоприоритетного буфера выдачи Подробнее... | |
| struct | _can_rxb_config |
| Параметры буфера приема Подробнее... | |
| struct | _can_config |
| Структура конфигурации контроллера CAN. Подробнее... | |
| struct | _can_tx_transfer |
| Структура для передачи кадра CAN в неблокирующем режиме (по прерыванию) Подробнее... | |
| struct | _can_rx_transfer |
| Структура для приема кадра CAN в неблокирующем режиме (по прерыванию) Подробнее... | |
| struct | _can_handle |
| Структура дескриптора драйвера CAN. Подробнее... | |
Макросы | |
| #define | HAL_CAN_DRIVER_VERSION (MAKE_VERSION(1, 1, 0)) |
| Версия драйвера CAN. | |
| #define | CAN_NB_OF_FILTERS 4 |
| Количество входных фильтров CAN. | |
Определения типов | |
| typedef enum _can_status | can_status_t |
| Коды возврата функций драйвера CAN. | |
| typedef enum _can_kind_of_error | can_kind_of_error_t |
| Виды ошибок на линии CAN. | |
| typedef enum _can_flag | can_flag_t |
| Флаги прерываний и состояний CAN. | |
| typedef enum _canfd_mode | canfd_mode_t |
| Режимы работы по протоколу CAN FD (есть отличия в расчете контрольной суммы и формировании битов стаффинга | |
| typedef enum _can_stb_discipline | can_stb_discipline_t |
| Дисциплина выдачи из низкоприоритетного буфера | |
| typedef enum _can_bytes_in_datafield | can_bytes_in_datafield_t |
| Размер данных кадра CAN, указываемый в поле DLC. | |
| typedef struct _can_tx_buffer_frame | can_tx_buffer_frame_t |
| Структура буфера передачи кадра CAN. | |
| typedef struct _can_rx_buffer_frame | can_rx_buffer_frame_t |
| Структура буфера приема кадра CAN. | |
| typedef struct _can_frame_filter | can_frame_filter_t |
| Фильтр принятых кадров CAN. | |
| typedef struct _can_frame_filter_config | can_frame_filter_config_t |
| Конфигурация фильтрации принятых кадров CAN. | |
| typedef enum _ttcan_timer_prescaler | ttcan_timer_prescaler_t |
| Символьные константы значений делителя блока TTCAN. | |
| typedef enum _ttcan_trigger_type | ttcan_trigger_type_t |
| Тип триггера TTCAN. | |
| typedef struct _ttcan_config | ttcan_config_t |
| Временные параметры передачи битов CAN. | |
| typedef struct _can_timing_config | can_timing_config_t |
| Временные параметры передачи битов CAN. | |
| typedef struct _can_ptb_config | can_ptb_config_t |
| Параметры высокоприоритетного буфера выдачи | |
| typedef struct _can_stb_config | can_stb_config_t |
| Параметры низкоприоритетного буфера выдачи | |
| typedef struct _can_rxb_config | can_rxb_config_t |
| Параметры буфера приема | |
| typedef struct _can_config | can_config_t |
| Структура конфигурации контроллера CAN. | |
| typedef struct _can_tx_transfer | can_tx_transfer_t |
| Структура для передачи кадра CAN в неблокирующем режиме (по прерыванию) | |
| typedef struct _can_rx_transfer | can_rx_transfer_t |
| Структура для приема кадра CAN в неблокирующем режиме (по прерыванию) | |
| typedef struct _can_handle | can_handle_t |
| Декларация типа дескриптора драйвера CAN. | |
| typedef void(* | can_transfer_callback_t) (CAN_Type *base, can_handle_t *handle, can_status_t status, can_flag_t interrupt_flag, void *user_data) |
| Функция обратного вызова CAN. | |
Перечисления | |
| enum | _can_status |
| Коды возврата функций драйвера CAN. Подробнее... | |
| enum | _can_kind_of_error |
| Виды ошибок на линии CAN. Подробнее... | |
| enum | _can_flag |
| Флаги прерываний и состояний CAN. Подробнее... | |
| enum | _canfd_mode |
| Режимы работы по протоколу CAN FD (есть отличия в расчете контрольной суммы и формировании битов стаффинга Подробнее... | |
| enum | _can_stb_discipline |
| Дисциплина выдачи из низкоприоритетного буфера Подробнее... | |
| enum | _can_bytes_in_datafield |
| Размер данных кадра CAN, указываемый в поле DLC. Подробнее... | |
| enum | _ttcan_timer_prescaler |
| Символьные константы значений делителя блока TTCAN. Подробнее... | |
| enum | _ttcan_trigger_type |
| Тип триггера TTCAN. Подробнее... | |
Функции | |
Инициализация и деинициализация | |
| can_status_t | CAN_Init (CAN_Type *base, const can_config_t *config) |
| Инициализация драйвера CAN. | |
| void | CAN_Deinit (CAN_Type *base) |
| Деинициализация драйвера CAN. | |
| void | CAN_GetDefaultConfig (can_config_t *config, uint32_t source_clock_hz) |
| Получение параметров драйвера CAN по умолчанию | |
| void | CAN_EnterNormalMode (CAN_Type *base) |
| Переключение контроллера CAN в рабочий режим | |
| void | CAN_EnterStandbyMode (CAN_Type *base) |
| Переключение контроллера CAN в режим ожидания | |
Конфигурирование настроек приемопередачи | |
| bool | CAN_CalculateImprovedTimingValues (uint32_t baudrate, uint32_t baudrate_data, uint32_t source_clock_hz, can_timing_config_t *pconfig) |
| Расчет рекомендуемых временных параметров (битовых таймингов) для указанных скоростей обмена в сегменте управления и данных | |
| void | CAN_SetArbitrationTimingConfig (CAN_Type *base, const can_timing_config_t *config) |
| Установка временных параметров (битовых таймингов) CAN. | |
| void | CAN_SetPrimaryTxBufferConfig (CAN_Type *base, const can_ptb_config_t *config) |
| Установка параметров высокоприоритетного буфера выдачи | |
| void | CAN_SetSecondaryTxBufferConfig (CAN_Type *base, const can_stb_config_t *config) |
| Установка параметров низкоприоритетного буфера выдачи | |
| void | CAN_SetRxBufferConfig (CAN_Type *base, const can_rxb_config_t *config) |
| Установка параметров буфера приема | |
| void | CAN_SetFilterConfig (CAN_Type *base, const can_frame_filter_config_t *config) |
| Установка параметров фильтрации кадров при приеме | |
| void | CAN_SetTTCANConfig (CAN_Type *base, const ttcan_config_t *config) |
| Установка параметров работы контроллера в режиме TTCAN. | |
Флаги статусов и прерываний | |
| bool | CAN_GetStatusFlag (CAN_Type *base, can_flag_t idx, can_status_t *status) |
| Получение состояния флага состояния/прерывания | |
| uint32_t | CAN_GetStatusFlagMask (CAN_Type *base) |
| Получение маски активных прерываний | |
| can_status_t | CAN_ClearStatusFlag (CAN_Type *base, can_flag_t idx) |
| Сброс флага состояния/прерывания | |
| void | CAN_ClearStatusFlagMask (CAN_Type *base, uint32_t mask) |
| Сброс флагов прерываний по маске | |
Управление прерываниями | |
| can_status_t | CAN_EnableInterrupt (CAN_Type *base, can_flag_t idx) |
| Разрешение прерывания | |
| void | CAN_EnableInterruptMask (CAN_Type *base, uint32_t mask) |
| Разрешение прерываний по маске | |
| bool | CAN_IsInterruptEnabled (CAN_Type *base, can_flag_t idx, can_status_t *status) |
| Запрос - разрешено ли прерывание CAN. | |
| uint32_t | CAN_GetEnabledInterruptMask (CAN_Type *base) |
| Запрос маски разрешенных прерываний CAN. | |
| can_status_t | CAN_DisableInterrupt (CAN_Type *base, can_flag_t idx) |
| Запрет прерывания | |
| void | CAN_DisableInterruptMask (CAN_Type *base, uint32_t mask) |
| Запрет прерываний по маске | |
Прямое управление выдачей и приемом | |
| bool | CAN_IsPrimaryTransmitRequestPending (CAN_Type *base) |
| Получение признака требования выдачи для высокоприоритетного буфера | |
| bool | CAN_IsSecondaryTransmitRequestPending (CAN_Type *base) |
| Получение признака требования выдачи для низкоприоритетного буфера | |
| bool | CAN_IsSecondaryTxBufferEmpty (CAN_Type *base) |
| Получение признака опустошения низкоприоритетного буфера | |
| bool | CAN_IsSecondaryTxBufferMoreThanHalfFull (CAN_Type *base) |
| Получение признака заполнения низкоприоритетного буфера выше середины | |
| bool | CAN_IsSecondaryTxBufferFull (CAN_Type *base) |
| Получение признака заполнения низкоприоритетного буфера. | |
| can_status_t | CAN_WritePrimaryTxBuffer (CAN_Type *base, const can_tx_buffer_frame_t *ptxframe) |
| Запись кадра в высокоприоритетный буфер передачи. | |
| can_status_t | CAN_WriteSecondaryTxBuffer (CAN_Type *base, const can_tx_buffer_frame_t *ptxframe) |
| Запись кадра в низкоприоритетный буфер передачи | |
| void | CAN_AbortPrimaryTxBuffer (CAN_Type *base) |
| Отмена выдачи кадра из высокоприоритетного буфера | |
| void | CAN_AbortSecondaryTxBuffer (CAN_Type *base) |
| Отмена выдачи кадров из низкоприоритетного буфера | |
| bool | CAN_IsRxBufferEmpty (CAN_Type *base) |
| Получение признака опустошения буфера приема | |
| bool | CAN_IsRxBufferAlmostFull (CAN_Type *base) |
| Получение признака заполнения буфера приема до границы "почти полный". | |
| bool | CAN_IsRxBufferFull (CAN_Type *base) |
| Получение признака заполнения буфера приема | |
| can_status_t | CAN_ReadRxBuffer (CAN_Type *base, can_rx_buffer_frame_t *prxframe) |
| Чтение принятого кадра из приемной очереди | |
Транзакционные передача и прием | |
| can_status_t | CAN_TransferSendPrimaryBlocking (CAN_Type *base, can_tx_buffer_frame_t *ptxframe, size_t nb_frames) |
| Блокирующая выдача кадра через высокоприоритетный буфер выдачи | |
| can_status_t | CAN_TransferSendSecondaryBlocking (CAN_Type *base, can_tx_buffer_frame_t *ptxframe, size_t nb_frames) |
| Блокирующая выдача кадра через низкоприоритетный буфер выдачи | |
| can_status_t | CAN_TransferReceiveFifoBlocking (CAN_Type *base, can_rx_buffer_frame_t *prxframe, size_t nb_frames) |
| Блокирующий прием кадра | |
| can_status_t | CAN_TransferCreateHandle (CAN_Type *base, can_handle_t *handle, can_transfer_callback_t callback, void *user_data) |
| Инициализация обработчика событий CAN. | |
| can_status_t | CAN_TransferSendPrimaryNonBlocking (CAN_Type *base, can_handle_t *handle, can_tx_transfer_t *xfer) |
| Неблокирующая выдача через высокоприоритетный буфер | |
| can_status_t | CAN_TransferGetSentPrimaryCount (CAN_Type *base, can_handle_t *handle, uint32_t *nb_frames) |
| Возвращает количество кадров, отправленных в шину данных через высокоприоритетный буфер | |
| void | CAN_TransferAbortSendPrimary (CAN_Type *base, can_handle_t *handle) |
| Отмена выдачи из высокоприоритетного буфера | |
| can_status_t | CAN_TransferSendSecondaryNonBlocking (CAN_Type *base, can_handle_t *handle, can_tx_transfer_t *xfer) |
| Неблокирующая выдача через низкоприоритетный буфер | |
| can_status_t | CAN_TransferGetSentSecondaryCount (CAN_Type *base, can_handle_t *handle, uint32_t *nb_frames) |
| Возвращает количество кадров, отправленных в шину данных через низкоприоритетный буфер | |
| void | CAN_TransferAbortSendSecondary (CAN_Type *base, can_handle_t *handle) |
| Отмена выдачи из низкоприоритетного буфера | |
| can_status_t | CAN_TransferReceiveFifoNonBlocking (CAN_Type *base, can_handle_t *handle, can_rx_transfer_t *xfer) |
| Неблокирующий прием | |
| can_status_t | CAN_TransferGetReceivedCount (CAN_Type *base, can_handle_t *handle, uint32_t *nb_frames) |
| Возвращает количество принятых кадров по прерыванию | |
| void | CAN_TransferAbortReceive (CAN_Type *base, can_handle_t *handle) |
| Отмена приема | |
| void | CAN_TransferHandleIRQ (CAN_Type *base, can_handle_t *handle) |
| Установка обработчика на прерывания от CAN, не связанные с приемом/выдачей | |
Интерфейс драйвера модуля ввода-вывода по интерфейсу CAN.