Информационные технологииStfw.Ru 🔍
🕛

Работа программы (или драйвера) с шиной FireWire

Взаимодействие ПО с шиной происходит как на уровне транзакций (Transaction layer) так и на уровне связи (Link layer) для чего определены понятия программных интерфейсов FireWire: интерфейс а
Взаимодействие ПО с шиной происходит как на уровне транзакций (Transaction layer) так и на уровне связи (Link layer) для чего определены понятия программных интерфейсов FireWire: интерфейс асинхронных транзакций, интерфейс изохронной передачи, минующий уровень транзакций и обращающийся напрямую к Link layer, а так же интерфейс управления шиной (Bus management interface). Каждый из этих программных интерфейсов как правило обеспечивается отдельным драйверов ядре ОС. Эти интерфейсы используют прикладные драйверы устройств, например таких как внешний накопитель FireWire.
Написание собственных драйверов устройств для Windows может оказаться задачей не из легких, а кроме того ошибки допущенные при написании драйвера с легкостью могут привести к порче данных на диске компьютера и к подвисанию системы. Поэтому во всяком случае для того, чтобы начать писать программы, работающие напрямую с устройствами FireWire разумно использовать специальные системные библиотеки, позволяющие пользовательскому процессу, находящимуся вне ядра ОС использовать соответствующие API. Одной из операционных систем, предоставляющих такую возможность является Linux, где с помощью системной библиотеки Hbrawl394 можно без риска нарушить целостность ядра во время работы использовать все доступные функции шины FireWire.

Фактичекси работа программы с устройствами сводится к следующему: 1 .получение через интерфейс управления шиной необходимой информации об устройствах (тип устройств, максимальная скорость передачи, топология подключения к шине, нахождение менеджера изохронных ресурсов, проверка наличия достаточных по мощности источников питания и.т.п.)
2. через интерфейс управления шиной выделяются каналы и настраиваются для изохронной передачи, предоставляются сервисы доступные другим устройствам и выполняются
прочие действия по настройке шины. 3. происходит обмен данными с выбранным устройством при помощи асинхронных операций чтения/записи по виртуальным адресам, находящимся в устройстве, а так же получение и прием данных через выделенные ранее изохронные каналы.
Каждое устройство представлено областью памяти 256Т6 в конце которой по адресу OxFFFF'FOOO'0000 находится область занимающая 256 мегабайт и называемая CSR-регистрами, при помощи операций асинхронного чтения записи в эти регистры происходит вся процедура управления каждым из устройств. Структура CSR определена специальным стандартом ISO/IEC-13213, нас будет интересовать группа регистров, являющихся обязательными для Fire Wire устройств. Стандарт ШЕЕ 1394 определяет лишь часть этих регистров.
рисунок "карты памяти" устройства

Также по теме:
Новые программы для Windows, Linux и Android.