Interested Article - V-USB
- 2021-11-07
- 1
V-USB — название программной библиотеки , позволяющей получить поддержку протокола USB на микроконтроллерах AVR (семейств Classic, Tiny и Mega компании Atmel ), которые не имеют аппаратной поддержки USB. Авторство библиотеки принадлежит компании Objective Development , которая распространяет и продвигает V-USB по лицензии GNU GPL и коммерческой лицензии (исходные коды библиотеки свободно доступны, см. ссылки).
Старое название библиотеки было AVR-USB, но после того как библиотека обрела популярность, название пришлось сменить, чтобы не вступать в конфликт с существующими именами Atmel . Протокол USB реализован программно, и быстродействия ядра AVR хватает только на реализацию стандарта USB 1.1 на низкой скорости (low-speed). По этой причине библиотека V-USB хорошо подходит только для низкоскоростных устройств ввода-вывода (например USB HID ). Поскольку требования к быстродействию при обработке сигналов USB (D+ и D-), очень жесткие, то низкоуровневый код написан на ассемблере , и поддерживается только определенный ряд тактовых частот ядра. Сначала тактовая частота была только 12 МГц, но потом стало возможно использовать кварцевые резонаторы на 12, 15, 16, 16.5 и 20 МГц. Микроконтроллеры, которые имеют PLL (ФАПЧ, фазовую автоподстройку частоты) для генерации тактовой частоты, могут использовать внутренний RC-генератор (то есть работать без кварца ), при условии калибровки частоты RC-генератора по сигналу SOF (Start Of Frame) протокола USB. Высокоуровневые процедуры и функции библиотеки написаны на языке C. Требования к микроконтроллеру AVR невысоки — необходимо как минимум 2 кбайта памяти программ ( flash ) и 128 байт ОЗУ (RAM). Из аппаратных ресурсов используется только прерывание по изменению сигнала на выводе (обычно INT0 , подсоединенный к сигналу D+ шины USB). Таким системным требованиям удовлетворяют большинство микроконтроллеров семейства AVR.
Благодаря тому, что вместе с библиотекой поставляются хорошие примеры firmware для USB-устройств (пользовательский класс USB, класс USB HID, мышь USB, управление портами микроконтроллера, чтение и запись его EEPROM), появилось много полезных разработок, использующих библиотеку V-USB — USB-программаторы, устройства ввода и вывода, макетные платы, преобразователи интерфейсов (например, USB- RS232 ) и многое другое (см. ссылки). Вместе с библиотекой поставляются также примеры программ для компьютера (ПО хоста), которые работают с устройствами на библиотеке V-USB. Примеры ПО хоста используют другую свободную библиотеку — libusb .
Таким образом, библиотека V-USB позволяет непрофессионалам в программировании интерфейса USB быстро начать создавать USB-устройства и писать для них компьютерные программы. Кроме того, отсутствуют затраты на используемое в разработке программное обеспечение — оно доступно по лицензии GNU . Код комментариев библиотеки и примеров firmware и ПО хоста переведены на русский язык (см. ссылки).
Ссылки
- .
- .
- .
- . Пошаговое руководство, как быстро начать создавать свои собственные устройства USB.
- .
- . Другая программная реализация протокола USB.
- . Реализованная на микроконтроллере ATmega32 программная поддержка хоста USB.
- . Программная реализация протокола USB в среде BASCOM AVR (бейсик).
- 2021-11-07
- 1