В этой главе:
Driver Toolkit предназначен для
эффективной разработки подсистемы
интерфейса с оборудованием в
рамках САCSD RTWin . Это достигается
путем предоставления готовых
драйверов для широкого спектра
оборудования , способных , помимо
получения данных , реализовать
стандартные алгоритмы первичной
обработки данных.
Наличие редактора ресурсов
позволяет легко
переконфигурировать драйвера , а
библиотеки стандарных блок-функций
максимально упрощают получение
данных от драйверов любым
стандартным объектом RTWin.
Пакет Driver Toolkit состоит из 2- х частей :
1. Среда выполнения :
- готовые драйвера наиболее распространенных плат УСО ;
- универсальный графический эмулятор драйверов drvemul;
2. Среда разработки :
- Редактор ресурсов драйверов - drvedit;
- библиотека блок - функций , реализующих интерфейс с драйверами модулей RTWin;
- редактор - построитель драйверов - drvbuilder.
Общую схема СКУ , разработанную с использованием средств Driver Toolkit , можно представить в следующем виде:
При этом модули RTWin , отвечающие за интерфейс с драйверами, должны включать в себя интерфейсные блок- функции из специальной библиотеки drivers.lib , поставляемой в составе Driver Toolkit . Схематично такой объект можно представить в следующем виде:
Для включения драйверов в проект - необходимо , чтобы требуемые драйвера были инсталлированы и находились в каталоге /usr/rtwin/drv вместе с соответствующими конфигурационными файлами
Используя редактор drvedit , можно для текущего проекта из существующего перечня драйверов выбрать необходимое количество запускаемых копий драйверов (одна копия на УСО) , присвоить им уникальные имена , определить требуемые значения параметров , как типовых ( базовый адрес , номер IRQ , типы используемый каналов и их количество и т. д . ) , так и уникальных для каждого драйвера . В результате будет сформирован соответствующий файл запуска процессов дополнительно к стандартным модулям RTWin .
Какие же преимущества дает использование готовых драйверов совместно с редактором ресурсов drvedit.
Так как устройства связи с объектом в основном являются многофункциональными , то для разных каналов одного и того же устройства возможны разные способы получения данным .
Эти способы можно выбрать через конфигурирование драйверов и возможны следующие варианты :
Чаще всего возможны смешанные варианты :
Прерывание обычно связано с каким-либо типом каналов , т.е. по прерыванию считывается только определенный тип каналов , остальные типы каналов опрашиваются либо по таймеру драйвера , либо по запросу клиента .
Если для драйвера выбрать режим DMA для каналов аналогового ввода , то необходимо установить обработку через прерывание , т.к. механизм DMA реализуется только через прерывание .
Таймер установим неактивным .
В этом варианте преобразование по аналоговым каналам будет выполнятся в режиме DMA и помещаться в буфер памяти с разделяемым доступом . Получить доступ к этим данным можно через блок-функцию библиотеки drivers - GetDMAbuffer , которая возвращаем указатель на буфер данных.
Опрос дискретных каналов будет осуществляться только по запросу программы клиента .
Если опрос по таймеру установлен , то дискретные каналы будут опрашиваться по таймеру и помещать эти данные во внутренний буфер драйвера и по запросу клиента --отдавать результаты последнего опроса .
Ниже приведена блок - схема работы драйвера .