|
ZAdc - библиотека работы с модулями АЦП и ЦАП

Пользователь может работать с устройствами фирмы ZET с помощью вызовов функций библиотеки Zadc.dll.
Библиотека написана на С++ и имеет интерфейс WINAPI (Microsoft® Windows® application programming interface (API)).
Все объявления в настоящем руководстве приведены на языке С/С++. Все функции библиотеки Zadc.dll возвращают код ошибки.
Значение 0 – говорит о выполнении функции без ошибок.
Функции библиотеки Zadc.dll имеют вид ZXXX(...). Если функция влияет на работу только АЦП, то она заканчивается на ADC,
если функция влияет на работу только ЦАП – она заканчивается на DAC. Общие функции не имеют специфичных обозначений.
Функции делятся на две категории: информационные и управляющие. Информационные функции, возвращают в программу пользователя
различные параметры и не меняют режим работы драйвера, сигнального процессора и модулей АЦП и ЦАП. Управляющие программы меняют
режим работы драйвера и устройств, подключенных к драйверу. При этом в драйвере устанавливается признак изменения режима работы
(modify). Если несколько программ одновременно работают с одним драйвером, то каждая программа должна при каждом обращении к
драйверу считывать этот признак и должна менять свой режим работы: обработки сигналов, отображения и пр.
Структурная схема управления устройством на примере KADSP/PCI представлена на рисунке выше.
Сигнальный процессор выполняет следующие функции:
устанавливает коэффициенты усиления на модуле АЦП и коэффициент затухания на модуле ЦАП;
устанавливает частоту дискретизации на модулях АЦП и ЦАП;
обеспечивает синхронизацию нескольких сигнальных процессоров;
по завершению преобразования производит опрос выбранных каналов АЦП и формирует массив данных во внутренней памяти сигнального процессора;
проводит первичную цифровую фильтрацию и прореживание оцифрованных входных сигналов;
проводит каскадную декадную фильтрацию и прореживание;
устанавливает и снимает сигнал прерывания для центрального процессора при заполнении внутреннего буфера памяти;
обеспечивает перекачку данных из внутренней памяти в память центрального процессора порции данных, определяемой драйвером как размер буфера для перекачки.
Драйвер на уровне ядра обеспечивает обмен управляющими данными с сигнальным процессором. Программа обработчика прерываний от
сигнального процессора обеспечивает прием оцифрованных сигналов и размещение их в буфере памяти. Для каждого сигнального процессора
создается свой буфер данных.
На уровне пользователя функционирует библиотека подпрограмм для связи пользовательских программ с частью драйвера,
расположенного на уровне ядра. Драйвер поддерживается операционными системами Windows 2000 и Windows XP, Windows 2003.
Индексы контроллеров PCI, как правило, распределяются последовательно в направлении от разъема AGP к краю системной платы.
Индексы контроллеров USB зависят от порядка подключения и от номера порта USB.
В системе может быть установлено несколько контроллеров KADSP/PCI или
KADSP/PDP, к каждому сигнальному процессору модуля может быть
подключен только один модуль АЦП или ЦАП. Дополнительно, к любому из сигнальных процессоров, управляющих модулем АЦП, можно подключить
усилитель заряда ПУ 8/10 и управлять его программируемым коэффициентом усиления. Два сигнальных процессора на плате KADSP/PCI соединены
по схеме ведущий/ведомый. Оба процессора работают на одной тактовой частоте от одного тактового генератора. Ведущим процессором на плате
является процессор, расположенный справа и ближе к краю платы. Соответственно справа расположен и 50-контактный разъем для подключения
модулей АЦП и ЦАП. Ведомым процессором на плате является процессор, расположенный слева и ближе к разъемам «лемо». Соответственно слева
расположен и 50-контактный разъем для подключения модулей АЦП и ЦАП.
Для удобства программирования реализована сквозная адресация сигнальных процессоров и подключенных к ним модулей. Ключевым параметром во всех
функциях является номер сигнального процессора (numberDSP).
Все программы, которые используют функции библиотеки Zadc.dll, должны начинаться и заканчиваться процедурами подключения к драйверу и отключения от драйвера.
При этом никаких действий связанных с модулями АЦП, ЦАП и сигнальными процессорами не происходит. Это позволяет подключаться одновременно
нескольким программам к одним модулям и сигнальным процессорам. Все текущие настройки сигнального процессора и модулей АЦП и ЦАП
сохраняются во внутренних структурах драйвера. Для того чтобы определить, сколько установлено сигнальных процессоров в системе, необходимо
выполнить 10 попыток подключения к драйверу с номерами сигнальных процессоров от 0 до 9 для соответствующего типа устройства.
Количество удачных попыток подключения будет информировать о количестве установленных сигнальных процессоров в системе.
Оцифрованные данные от аналого-цифрового преобразователя, вернее, от его контроллера поступают в память центрального процессора порциями
с размером, равным размеру буфера перекачки. Эти порции данных перекачиваются в процедуре обработки прерываний. Буфер для перекачки, как
правило, намного меньше буфера памяти центрального процессора для хранения данных. Такая структура построения обеспечивает непрерывный
(без пропусков) ввод оцифрованных данных в буфер памяти центрального процессора и последующую обработку данных программой пользователя.
|