Библиотека LUFA (раннее название MyUSB) версия 101122
Драйвер режима USB-хоста для CDC Class

Data Structures

struct  USB_ClassInfo_CDC_Host_t
 Структура конфигурации и состояния CDC Class режима хоста. More...

Enumerations

enum  CDC_Host_EnumerationFailure_ErrorCodes_t {
  CDC_ENUMERROR_NoError = 0,
  CDC_ENUMERROR_InvalidConfigDescriptor = 1,
  CDC_ENUMERROR_NoCompatibleInterfaceFound = 2
}

Functions

void CDC_Host_USBTask (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t CDC_Host_ConfigurePipes (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
uint8_t CDC_Host_SetLineEncoding (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t CDC_Host_SendControlLineStateChange (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t CDC_Host_SendBreak (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const uint8_t Duration) ATTR_NON_NULL_PTR_ARG(1)
uint8_t CDC_Host_SendString (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const char *const Data, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t CDC_Host_SendByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1)
uint16_t CDC_Host_BytesReceived (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
int16_t CDC_Host_ReceiveByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t CDC_Host_Flush (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void CDC_Host_CreateStream (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, FILE *const Stream)
void CDC_Host_CreateBlockingStream (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, FILE *const Stream)
void EVENT_CDC_Host_ControLineStateChanged (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

зависимости для исходного кода модуля

Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:

модуля

Фреймворк-интерфейс драйвера режима USB-хоста для CDC USB Class.


Enumeration Type Documentation

Перечисление для возможных кодов ошибок, возвращаемых функцией CDC_Host_ConfigurePipes().

Enumerator:
CDC_ENUMERROR_NoError 

дескриптор конфигурации обработан успешно.

CDC_ENUMERROR_InvalidConfigDescriptor 

устройство возвратило неверный дескриптор конфигурации.

CDC_ENUMERROR_NoCompatibleInterfaceFound 

В дескрипторе конфигурации устройства не найден совместимый интерфейс CDC.


Function Documentation

uint16_t CDC_Host_BytesReceived ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Определяет количество байт, принятых интерфейсом CDC от устройства, которые ожидают своего чтения. Показывает количество байт только в банке канала IN, и следовательно количество вызовов CDC_Host_ReceiveByte(), которые немедленно гарантированно завершатся с успехом. Если принимаются несколько байт, то они должны буферизироваться в приложении пользователя, так как банк приема контроллера USB не освободится, пока не из него не будут прочитаны все байты.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
Returns:
общее количество забуферизированных, принятых от устройства данных в банке.
uint8_t CDC_Host_ConfigurePipes ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
uint16_t  ConfigDescriptorSize,
void *  DeviceConfigDescriptor 
)

Подпрограмма конфигрирования интерфейса хоста, для конфигурирования указанного экземпляра интерфейса CDC хоста с использованием дескриптора конфигурации, прочитанного от подключенного устройства USB. Эта функция автоматически обновляет переменные состояния указанного экземпляра хоста CDC и конфигурирует каналы, необходимые для коммуникации с интерфейсом, если он найден в устройстве. Должна быть вызвана один раз после энумерации стеком подключенного устройства, пока машина состояния хоста находится в состоянии Addressed (адресовано).

Note:
Индексы канала, как дано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, или произойдет повреждение банка канала. Разрывы в выделенных числах канала или непоследовательных индексах в пределах единственного интерфейса позволены, но никакие два интерфейса любого типа не могут чередовать индексы канала.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние хоста CDC Class.
[in]ConfigDescriptorSizeдлина дескриптора конфигурации подключенного устройства.
[in]DeviceConfigDescriptorуказатель на буфер, содержащий дескриптор конфигурации подключенного устройства.
Returns:
значение из перечисления CDC_Host_EnumerationFailure_ErrorCodes_t.
void CDC_Host_CreateBlockingStream ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
FILE *const  Stream 
)

Идентично Identical to CDC_Host_CreateStream(), за исключением того, что делается блокирующее чтение, пока вызывающая функция потока не прервет передачу. Во время блокировки задачи обслуживания USB и CDC продолжают постоянно вызываться, чтобы поддержать коммуникации USB.

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class.
[in,out]Streamуказатель на структуру FILE, где должен быть размещен создаваемый поток.
void CDC_Host_CreateStream ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
FILE *const  Stream 
)

Создает стандартный символьный поток для указанного экземпляра CDC Device, после чего его можно использовать со всеми стандартными функциями библиотеки avr-libc <stdio.h>, которые принимают поток FILE в качестве точки назначения (например fprintf). Созданный поток является двунаправленным, и может использоваться и для функций ввода, и для функций вывода.

Note:
Созданный поток, если нужно, может быть предоставлен как stdout для направления стандартного вывода из всех функций <stdio.h> в указанный интерфейс CDC.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class.
[in,out]Streamуказатель на структуру FILE, где должен быть размещен создаваемый поток.
uint8_t CDC_Host_Flush ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Сбрасывает все данные, ожидающие отправки, что обеспечивает очистку буфера отправки.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
Returns:
значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t.
int16_t CDC_Host_ReceiveByte ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Читает байт данных от устройства. Если нет данных, ожидающих чтения, или если устройство USB не соединено, то функция вернет отрицательное значение. Предварительно может быть опрошена функция CDC_Host_BytesReceived() для определения количества забуферизированных в настоящий момент принятых данных канала интерфейса CDC.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
Returns:
следующий принятый байт из устройства, или отрицательное значение, если нет принятых данных.
uint8_t CDC_Host_SendBreak ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
const uint8_t  Duration 
)

Отправляет в устройство запрос Send Break (посылка перерыва). Обычно используется для разделения данных или индикации специального события для принимающего устройства.

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
[in]Durationдлительность break (перерыва) в милисекундах.
Returns:
значение из перечисления USB_Host_SendControlErrorCodes_t.
uint8_t CDC_Host_SendByte ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
const uint8_t  Data 
)

Посылает в подключенное устройство USB указанный байт, если устройство соединено. Если при вызове функции устройство не соединено, то байт игнорируется. Байты строки ставятся в очередь для передачи в устройство, пока либо банк канала не заполнится, либо не будет вызвана функция CDC_Host_Flush() для сброса в хост данных из очереди. Это позволяет упаковывать несколько байт в один канальный пакет, что повышает пропускную способность данных.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
[in]Dataбайт данных для отправки в устройство.
Returns:
значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t.
uint8_t CDC_Host_SendControlLineStateChange ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Отправляет в устройство оповещение об изменении состояния линии управления. Должна вызываться, когда меняют состояние виртуальные линии управления (DTR, RTS, и т. д.). Состояния линии сохраняются до их очистки следующим оповещением. Должна вызываться каждый раз, как только поменялось значение ControlLineStates.HostToDevice драйвера CDC class для проталкивания новых состояний в устройство USB.

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
Returns:
значение из перечисления USB_Host_SendControlErrorCodes_t.
uint8_t CDC_Host_SendString ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo,
const char *const  Data,
const uint16_t  Length 
)

Посылает указанную строку в подключенное устройство USB, если оно соединено. Если устройство не соединено при вызове функции, то строка отбрасывается. Байты строки ставятся в очередь для передачи в устройство, пока либо банк канала не заполнится, либо не будет вызвана функция CDC_Host_Flush() для сброса в хост данных из очереди. Это позволяет упаковывать несколько байт в один канальный пакет, что повышает пропускную способность данных.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
[in]Dataуказатель на строку для отправки в устройство.
[in]Lengthразмер в байтах строки для отправки в устройство.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t CDC_Host_SetLineEncoding ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Устанавливает кодирование линии для виртуального последовательного порта подключенного устройства. Должна вызываться, когда изменяются значения LineEncoding интерфейса, для проталкивания новых установок в устройство USB.

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
Returns:
значение из перечисления USB_Host_SendControlErrorCodes_t.
void CDC_Host_USBTask ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Главная задача для поддержки указанного интерфейса CDC хоста, необходимая для корректной работы интерфейса. Должна часто вызываться в главном цикле программы, перед главной задачей поддержки USB USB_USBTask().

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние хоста CDC Class.
void EVENT_CDC_Host_ControLineStateChanged ( USB_ClassInfo_CDC_Host_t *const  CDCInterfaceInfo)

Событие драйвера CDC class для изменения состояния линии управления интерфейса хоста CDC. Это событие запускается каждый раз, когда устройство уведомляет хост об изменении состояния линии управления (которые содаержат виртуальные линии управления, такие как DCD), это событие может быть перехвачено программой пользователя, если определить функцию обработчика с тем же именем и параметрами, которые перечислены здесь. Новые состояния линии управления доступны в значении ControlLineStates.DeviceToHost внутри структуры интерфейса хоста CDC, переданной как параметр, в виде набора масок CDC_CONTROL_LINE_IN_*.

Parameters:
[in,out]CDCInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние CDC Class хоста.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines