Украина, г. Киев, ул. Лебедева-Кумача 6, оф. 48; тел: (+38067) 442-33-89, (+38044) 496-29-60 E-mail: sales@akon.com.ua Internet: http://www.akon.com.ua =========================================================================== ТЕХНИЧЕСКОЕ ОПИСАНИЕ МОДУЛЯ WAD-ADC16-32 (WAD-ADC16(14)-32F) ( МНОГОФУНКЦИОНАЛЬНОГО МНОГОКАНАЛЬНОГО МНОГОПРЕДЕЛЬНОГО БЫСТРОДЕЙСТВУЮЩЕГО 16-РАЗРЯДНОГО АНАЛОГО-ЦИФРОВОГО ПРЕОБРАЗОВАТЕЛЯ С ГАЛЬВАНИЧЕСКОЙ ИЗОЛЯЦИЕЙ КАНАЛА ИЗМЕРЕНИЯ ОТ ШИНЫ ПИТАНИЯ КОМПЬЮТЕРА, ПРЕДНАЗНАЧЕНОГО ДЛЯ РАБОТЫ В ПЭВМ ТИПА IBM PC/AT на шине ISA, либо как выносная конфигурация с интерфейсом USB, либо RS-232, либо RS-485, либо LAN 10Мб ). =========================================================================== В этом документе содержится описание аппаратной части, и программирования аналого- цифрового преобразователя (в дальнейшем АЦП). А также, приводится документ по использованию выносной модификации модуля. --------------------------------------------------------------------------!!!!!!!!!ВНИМАНИЕ!!! ПРОЧТИТЕ ОБЯЗАТЕЛЬНО!!!!!!!!!!!! Данный файл документации и комплект демонстрационного программного обеспечения поставляются в ПОЛНОМ объеме НЕЗАВИСИМО от заказанной конфигурации платы. Конкретная конфигурация по прайсу зависит от букв, стоящих после полного названия модуля (см. перечисление функций конкретной конфигурации в прайс -листе). В случае обнаружения на приобретенном модуле нехватки какой-либо нужной Вам функции, упоминание о которой есть в этом документе и демо-программах (а при заказе Вы остановились на конфигурации, не поддерживающую эту функцию), обращайтесь к нам за доработкой. Модуль поддерживает работу ТОЛЬКО С ОДНИМ выбранным при заказе видом интерфейса, и если не оговаривается иное, то по умолчанию это шина ISA (встраиваемая в компьютер плата). Перед покупкой не выносной версии устройства - убедитесь, что в Вашем компьютере есть ISA-слот. Демо-программы, поставляемые бесплатно в комплекте служат для ДЕМОнстрации работоспособности модуля и демонстрации порядка программирования. Они НЕ предназначены для решения конкретной задачи заказчика. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Внимание ! В случае заказа 16 - ти разрядного модуля АЦП плата !! !! комплектуется соответствующими этой точности элементами и отличается !! !! тщательностью настройки. Непосредственно модуль и программирование !! !! остаются в том же виде, что и для 14-ти разрядного исполнения. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --------------------------------------------------------------------------СОДЕРЖАНИЕ. 1. Назначение, возможности и область примения модуля. 1.1. Технические характеристики модуля. 1.2. Комплект поставки. 2. Конструктивные характеристики модуля. 2.1. Расположение разьемов и переключателей, установленных на плате. 2.2. Тип и назначение контактов разъемов. 3. Функциональная схема АЦП 4. Описание работы с модулем. 4.1. Общие сведения. 4.2. Аппаратные прерывания, формируемые платой АЦП. 4.3. Таблица соответствия адресов, используемых при обращении к плате и функций, выполняемых устройством. 4.4. Включение аналогового питания модуля. 4.5 Программирование таймера модуля. 4.6. Программирования АЦП модуля. 4.7. Программирование ЦАП модуля. 4.8. Программирование ЦВВ модуля. 4.9. Использование модуля как тензо-АЦП. 5. Вычисление результата измерения. 6. Примеры программирования АЦП. ПРИЛОЖЕНИЕ: РАСПРЕДЕЛЁННАЯ ШИНА ISA. Концепция построения и руководство по программированию ======================================================================== 1. Назначение, возможности и область применения модуля. ======================================================================= АЦП предназначен для работы в автоматизированных системах измерения, контроля и научных исследований на базе ПК типа IBM PC/AT на шине ISA, либо как выносная конфигурация с интерфейсом USB, либо RS-232, либо RS-485, либо LAN10Mb. Модуль АЦП позволяет: 1) Измерять значения напряжения (или тока) по 32 каналам с общим "земляным" проводом в произвольном порядке c электронным переключением коэффициента усиления и с гальванической развязкой от электрических цепей компьютера. 2) Формировать аналоговые напряжения по двум независимым каналам с гальванической развязкой. "Земля"- общая с аналоговыми входами. 3) Выводить слово данных (16 разрядов) в схему гальванически развязанного вывода, "земля" - общая с аналоговой. Каждый цикл вывода генерирует строб для синхронизации приема внешним устройством. 4) Вводить слово данных с гальванической развязкой ("земля" общая с аналоговой). Ввод можно осуществлять как программным способом в произвольные моменты времени, так и по сигналам внешнего устройства с интервалом, не меньшим времени измерения АЦП. 5) Осуществлять программный ввод-вывод по 24 неразвязанным линиям (схема ввода-вывода построена на основе 580ВВ55) 6) Осуществлять автоматический режим работы модуля: информация о номере включаемого канала и коэффициенте усиления берется из предварительно запрограммированной области ОЗУ модуля. По сигналам установленного на плате таймера осуществляется запуск преобразования АЦП с заданным интервалом. После осуществления заданного числа измерений чтение результатов возможно после обнаружения сигнала готовности с платы, либо обрабатывая сигнал прерывания. Информацию из ОЗУ по сигналам запуска от таймера в таком режиме можно выводить либо в регистр АЦП (номер канала, коэффициент усиления, режим одно-двуполярный), либо на ЦАП, либо на цифровой вывод. В двух последних случаях АЦП будет производить измерения по последним установкам номера канала и усиления, а результат измерения будет также заносится в ОЗУ. В случае задействования гальванически развязанного цифрового ввода все повторяется, но поток данных с АЦП заменяется потоком со схемы цифрового ввода. Эти возможности позволяют, например, формировать ЦАПом тестовые сигналы для подачи на исследуемый обьект и снимать информацию о результатах его воздействия за один цикл (во время передачи данных на ЦАП принимается результат измерения-отклик на предыдущие данные для ЦАПа). Встроенный таймер позволяет это делать с точно заданным интервалом времени, и пока не будет сделано нужное число измерений, ресурсы компьютера свободны. 7) Функционировать как тензо-АЦП. Напряжение питания тензо-моста (гальванически развязанные +12В) берется с разьема модуля, возвратный провод заводится обратно, на вход внешнего опорного напряжения АЦП. Для этого режима предусмотрена возможность фильтрации на плате измеряемого напряжения (ФНЧ 3-го порядка). 8) Работать с компьютерами, в которых нет ISA-шины (выносная конфигурация “BOX”). ----------------------------------------------------------------------1.1 Технические характеристики модуля. ----------------------------------------------------------------------Ниже приведены технические характеристики ВСЕХ заложенных в устройство функций. Конкретная конфигурация по требованию заказчика может содержать ТРЕБУЕМЫЙ набор перечисленных возможностей и технических характеристик. ПАРАМЕТРЫ АЦП (16-ти разрядного) Число входных каналов ...................... ...................... Число разрядов выходного кода .............. Формат выходного кода ...................... Время преобразования ...................... Емкость ОЗУ ................................ 32 недифференциальных (*) 16 дифференциальных (*) 16 двоичных разрядов обычный двоичный код 12 мкс 32Kx16бит(16К программы + 16К данных) Диапазоны входного напряжения: базовый однополярный....................... от 0 В до +5 В двуполярный........................ от -5 В до +5 В с усилением 10 однополярный .............. от 0 мВ до +500 мВ двуполярный ............... от -500 мВ до +500 мВ 100 однополярный .............. от 0 мВ до +50 мВ двуполярный ............... от -50 мВ до +50 мВ 1000 однополярный .............. от 0 мВ до +5 мВ двуполярный ............... от -5 мВ до +5 мВ с использованием деления на 2: базовый однополярный ....................... от 0 В до + 10 В двуполярный ........................ от -10 В до + 10 В с усилением 10 однополярный .............. от 0 мВ до + 1 В двуполярный ............... от -1 В до + 1 В 100 однополярный .............. от 0 мВ до +100 мВ двуполярный ............... от -100 мВ до +100 мВ 1000 однополярный .............. от 0 мВ до +10 мВ двуполярный ............... от -10 мВ до +10 мВ Величина единицы младшего разряда при работе в диапазонах от 0В до+10В и от-5В до+5В .... 150 мкВ Интегральная нелинейность в базовых диапазонах, не более ....................... 0.003% Погрешность (1) смещения нуля при работе без дополнительного усиления (режимы +/-5В; +/-10В;0-5В;0-10В) ......................... 0.006% Приведенное (2) ко входу напряжение смещения, не более ................................... 50 мкВ(тип. значение<20) Погрешность (3) коэффициента преобразования на постоянном токе: без усиления, не более ..................... 0.005% с делением на 2, не более .................. 0,015% при усилении: 10 ,не более ...................... 0.5 % 100 ,не более ...................... 1.0 % 1000,не более ...................... 5 % (погрешности 1-3 случайные СИСТЕМАТИЧЕСКИЕ, т.е. устраняются при необходимости программной коррекцией) Полоса пропускания дополнительных усилителей, не менее ....................... 50 кГц Неравномерность АЧХ в полосе пропускания: в базовом диапазоне, не более .............. 0.2% с делением на 2, не более .................. при усилении: 10 ,не более ...................... 100 ,не более ...................... 1000,не более ...................... Дополнительная температурная погрешность: в базовых диапазонах, не более ........... с дополнительным усилением, не более ..... Коэффициент ослабления синфазных сигналов на частотах: от 0 до 1 кГц,не менее .................... до 30 кГц,не менее .................... до 100кГц,не менее .................... на частотах от 0 до 1кГц при усилении: 10 , не менее ..................... 100 , не менее ..................... 1000, не менее ..................... Входное сопротивление ...................... Входная емкость,не более ................... Выходные гальванически развязанные Предельно допустимое входное напряжение .... Допустимый входной ток при превышении входного напряжения свыше +/-13В (номинал защитного резистора 100 Ом), не менее ...... Пробивное напряжение изоляции, не менее .... Дискретность перестройки интервала запуска от встроенного таймера ..................... 0.15% 2 % 10% 35% 0.0001% на градус 0.0005% на градус 80 50 35 дБ дБ дБ 100 120 140 1 6 дБ дБ дБ МОм пФ +/-13 В 10 мА 4 кВ 1,665 мкс (*)- данные справедливы для конфигурации 32 входных канала; в случае 16-ти канальной конфигурации модуля возможно использование только 16-ти недифференциальных входов. Программирование и эксплуатация модуля осуществляются путем использования первых 16-ти каналов измерения в недифференциальном режиме. ПАРАМЕТРЫ АЦП (14-ти разрядного) Приведены только те характеристики, которые отличаются от 16-ти разрядного варианта исполнения модуля. Интегральная нелинейность в базовых диапазонах, не более ....................... Погрешность смещения нуля при работе без дополнительного усиления (режимы +/-5В; +/-10В;0-5В;0-10В) ......................... Приведенное ко входу напряжение смещения, не более ................................... Погрешность коэффициента преобразования на постоянном токе: без усиления, не более ..................... с делением на 2, не более .................. 0.006% 0.02% 80 мкВ(типовое значение<40) 0.02% 0.03% ПАРАМЕТРЫ КАНАЛОВ ЦАП Число каналов .............................. Число разрядов входного кода ............... Формат входного кода ....................... Минимальный интервал преобразования ....... Время установления выходного напряжения .... Диапазон выходных напряжений ............... Интегральная нелинейность, не более ........ 2 16 дополняющий двоичный код 12 мкс 1.5 мкс от -10 В до + 10 В 0.003% Максимальная величина смещения, не более ... Погрешность коэффициента преобразования на постоянном, не более .................... Температурный дрейф выходного напряжения, не более .................................. Максимальный ток нагрузки ................. Максимальная емкость нагрузки ............. 0.01% 0.005% 0.0005% на градус 10 мА 500 пФ ============================================================================ ДОПОЛНЯЮЩИЙ КОД ( Для ЦАП ) ============================================================================ 7fff . . 0000 ffff . . 8000 -+10.24B (+5.12В) . . . . - 0 B - -0.3125mB (-0.1562мВ) . . . . - -10.24B (-5.12В) ---------------------------------------------------------------------------ГАЛЬВАНИЧЕСКИ РАЗВЯЗАННЫЕ ЛИНИИ ДИСКРЕТНОГО ВВОДА-ВЫВОДА И СИНХРОНИЗАЦИИ (TTL-уровень) 1)Гальванически связанные с аналоговыми входами (общая земля): Пробивное напряжение изоляции ............. 4 кВ Организация: ............................... 16 бит на вывод + линия синхронизации; 16 бит на ввод + линия строба для ввода данных; 1 вход внешнего запуска АЦП; 1 выход окончания преобразования АЦП. Требования к сигналу внешнего запуска: ..... лог. '0' длительностью от 100 нс до 10 мкс Формат сигнала синхронизации цифрового вывода .................................... лог '0' c момента запуска передачи данных на время 10,7 мкс, прием данных внешним устройством возможен по положительному фронту этого сигнала; Формат сигнала окончания преобразования .... лог '1' c момента запуска АЦП на время 10,7 мкс Нагрузочный ток логических выходов: лог."0" ................................... 12 мА лог."1" ................................... 3 мА Время передачи и (или) приема 16 разрядов данных ......................................12 мкс 2)Гальванически не связанные с аналоговыми входами (без гальванической развязки): Организация: ............................... 24 линии (3х8) на базе порта ввода-вывода I8255 Ток нагрузки ............................... 12 мА (для 1834ВВ55) 3 мА (для 580ВВ55) ОБЩИЕ ХАРАКТЕРИСТИКИ МОДУЛЯ Ток,потребляемый от источника +5В .......... Ток,потребляемый от источника +12В ......... Возможные базовые адреса ................... Линии прерывания ........................... Режим работы модуля ........................ Габариты модуля ............................ Используемая шина ……………………………………………………………….. Используемый интерфейс в выносной конфигурации “BOX”………………………….. 450 мА 350 мА 3x0, где x - 0...f IRQ: 5,10,11,12,15 продолжительный 340x115x20 мм ISA USB, либо RS-232, либо RS-485,LAN10Mb Габариты выносной модификации “BOX” …………………. 440x220x60 мм Питание выносной модификации “BOX” ……………………. +5В, +12В (от компьютера) ======================================================================== 1.2. Комплект поставки. ======================================================================= В базовый (по умолчанию) комплект поставки входит: 1) Модуль WAD-ADC16-32 (WAD-ADC16(14)-32F) .............. 1 шт. 2) Ответная часть разьема 62-pin ........................ 1 шт. 3) Диск с техническим описанием и демо-программами ... 1 шт. ======================================================================== 2. Конструктивные характеристики модуля. ======================================================================== -----------------------------------------------------------------------2.1. Расположение разьемов и переключателей, установленных на плате. ---------------------------------------------------------------------------------------------------------------------------------------¬ ¦ X6 JP7 x2 JP9 ¦ ¦ -¬ JP13 JP10 ¦ ¦ ¦¦ JP12 JP8 ¦ ¦ ¦¦ X4 X3 x2 JP11 -+-1 ¦ ¦¦ ------------1------------1 ¦¦ ¦ ¦ ¦¦ X5 L------------L-----------X2 ¦¦ ¦X1 ¦ ¦¦ ---¬ JP2 JP1 -¬ ¦¦ ¦ ¦ L1 1--1--1-¬ L1 L+-L----------------------------¬ L--+---¬ -L------------L--------------------ЗАМЫКАТЕЛИ JP1,JP2. Джамперы предназначены для установки базового адреса устройства и номера линии прерывания. JP2 JP1 1 2 3 4 5 1 2 3 4 --T-T-T-T-¬ --T-T-T-¬------------------------------T------------------¬ ¦0¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦¦ ¦Положение джампера¦ ¦0¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦¦ Наименование ключей +--------T---------+ LT+T+T+T+T- LT+T+T+T-¦ ¦Замкнут ¦ Разомкн.¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +-----------------------------+--------+---------+ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +-+Сравнение с линией адреса A05¦ лог.1 ¦ лог.0 ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ +-+-+Сравнение с линией адреса A06¦ лог.1 ¦ лог.0 ¦ ¦ ¦ ¦ ¦ ¦ ¦ +-+-+-+Сравнение с линией адреса A07¦ лог.1 ¦ лог.0 ¦ ¦ ¦ ¦ ¦ ¦ +-+-+-+-+Сравнение с линией адреса A04¦ лог.1 ¦ лог.0 ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L-----------------------------+--------+---------¦ ¦ ¦ ¦ ¦ -+-+-+-+-T-------------------¬ ¦ ¦ ¦ ¦ ¦ ¦Р Р Р Р ¦ включен адрес 300 ¦ ¦ ¦ ¦ ¦ ¦ ¦З Р Р Р ¦ включен адрес 310 ¦ ¦ ¦ ¦ ¦ ¦ ¦Р Р З З ¦ включен адрес 360 ¦ ¦ ¦ ¦ ¦ ¦ ¦З Р З З ¦ включен адрес 370 ¦ ¦ ¦ ¦ ¦ ¦ ¦Р З З Р ¦ включен адрес 3c0 ¦ ¦ ¦ ¦ ¦ ¦ L--------+-------------------¦ ¦ ¦ ¦ ¦---------------------------T------------------¬ ¦ ¦ ¦ ¦ ¦¦ ¦Положение джампера¦ ¦ ¦ ¦ ¦ ¦¦ Наименование ключей +--------T---------+ ¦ ¦ ¦ ¦ ¦¦ ¦Замкнут ¦ Разомкн.¦ ¦ ¦ ¦ ¦ ¦+--------------------------+--------+---------+ ¦ ¦ ¦ ¦ ++Включение прерывания IRQ05¦ вкл ¦ выкл ¦ ¦ ¦ ¦ +-++Включение прерывания IRQ10¦ вкл ¦ выкл ¦ ¦ ¦ +-+-++Включение прерывания IRQ11¦ вкл ¦ выкл ¦ ¦ +-+-+-++Включение прерывания IRQ12¦ вкл ¦ выкл ¦ +-+-+-+-++Включение прерывания IRQ15¦ вкл ¦ выкл ¦ ¦ ¦ ¦ ¦ ¦L--------------------------+--------+----------+-+-+-+-+T---------------------------¬ ¦Р Р Р Р Р¦ прерывние не используется ¦ ¦Р Р Р Р З¦ включено прерывание IRQ05 ¦ ¦Р Р Р З Р¦ включено прерывание IRQ10 ¦ ¦Р Р З Р Р¦ включено прерывание IRQ11 ¦ ¦Р З Р Р Р¦ включено прерывание IRQ12 ¦ ¦З Р Р Р Р¦ включено прерывание IRQ15 ¦ L---------+---------------------------ЗАМЫКАТЕЛИ JP3-JP6 на плате отсутствуют ЗАМЫКАТЕЛЬ JP7 Джампер предназначен для обьединения гальванически развязанного общего провода ( аналоговой земли ) с общим проводом компьютера. Устранение гальванической развязки в некоторых системах позволяет уменьшить уровень шумов и помех в канале измерения, хотя и лишает преимуществ гальванической развязки, например, защита компьютера и интерфейса платы в аварийных ситуациях. ЗАМЫКАТЕЛИ JP8-JP11 Предназначены для переключения режима работы аналоговых входов: дифференциальные или одиночные. В платах 16-ти канальных, где возможен только недифференциальный режим работы, вместо джамперов запаяны перемычки. Для конфигурации 32 входных канала режим работы устанавливается согласно приведенной ниже таблице. ----------------------------------------T--------------------------¬ ¦ джампер, замыкатель ¦ режим работы ¦ +---------T---------T---------T---------+--------------------------+ ¦ JP8 ¦ JP9 ¦ JP10 ¦ JP11 ¦ ¦ +---------+---------+---------+---------+--------------------------+ ¦есть(нет)¦ нет ¦ есть ¦есть(нет)¦32(16)одиночных канала(ов)¦ +---------+---------+---------+---------+--------------------------+ ¦ нет ¦ есть ¦ нет ¦ нет ¦16 дифф. каналов ¦ L---------+---------+---------+---------+--------------------------ЗАМЫКАТЕЛИ JP12,JP13 Служат для переключения опорного напряжения, подводимого к АЦП. Опорное напряжение подключается или от внутреннего источника (JP13 замкнут), или формируется от возвратного провода с входного разьема в варианте тензо-АЦП (см.ПП4.6),(замкнут JP12). Для обычного режима использования вместо JP13 запаяна перемычка, а вход возвратного провода не используется. ЗАМЫКАТЕЛИ x2 Изменяют коэффициент передачи измерительного усилителя. При отсутствии замыкателей осуществляется деление входного сигнала в два раза (например, в базовом диапазоне пределы измерения составляют 0-10В,+/-10В) -----------------------------------------------------------------------2.2. Тип и назначение контактов разъемов. -----------------------------------------------------------------------Разьем Х1. -------------Тип разъема на плате - DHR-62F ("мама"). Ответка на кабель - DHS-62M ("папа"). Корпус для ответки разъема - DP-37C. На разьем выведены: входы аналого-цифрового пробразователя; общий провод ( аналоговая "земля" ); выходы цифро-аналогового преобразователя; сигнал окончания преобразования, вход внешнего запуска, 8 линий цифрового вывода и линия синхронизации (уровень TTL); гальванически развязанные напряжения питания +/-12В, +5В. Вид на соединитель, установленный на плате (male). -------------------\ 21о о о о \ 42о о о о \ 62о о о -------------- . . . . . . . . . --------------------------. о о о о о1 / . о о о о о22 / . о о о о о43 / -------------------- Таблица соответствия номеров контактов разьема X1 их функциональному назначению. -----T--------------T----T---------------T----T---------------¬ ¦ N| ¦ Назначение ¦ N| ¦ Назначение ¦ N| ¦ Назначение ¦ +----+--------------+----+---------------+----+---------------+ ¦ 01 ¦ Канал 23,7(-)¦ 22 ¦ Канал 31,15(-)¦ 43 ¦ общий ¦ ¦ 02 ¦ Канал 22,6(-)¦ 23 ¦ Канал 30,14(-)¦ 44 ¦ общий ¦ ¦ 03 ¦ Канал 21,5(-)¦ 24 ¦ Канал 29,13(-)¦ 45 ¦ общий ¦ ¦ 04 ¦ Канал 20,4(-)¦ 25 ¦ Канал 28,12(-)¦ 46 ¦ общий ¦ ¦ 05 ¦ Канал 19,3(-)¦ 26 ¦ Канал 27,11(-)¦ 47 ¦ общий ¦ ¦ 06 ¦ Канал 18,2(-)¦ 27 ¦ Канал 26,10(-)¦ 48 ¦ общий ¦ ¦ 07 ¦ Канал 17,1(-)¦ 28 ¦ Канал 25,9 (-)¦ 49 ¦ общий ¦ ¦ 08 ¦ Канал 16,0(-)¦ 29 ¦ Канал 24,8 (-)¦ 50 ¦ общий ¦ ¦ 09 ¦ Канал 7 ¦ 30 ¦ Канал 15 ¦ 51 ¦ общий ¦ ¦ 10 ¦ Канал 6 ¦ 31 ¦ Канал 14 ¦ 52 ¦ общий ¦ ¦ 11 ¦ Канал 5 ¦ 32 ¦ Канал 13 ¦ 53 ¦ общий ¦ ¦ 12 ¦ Канал 4 ¦ 33 ¦ Канал 12 ¦ 54 ¦ общий ¦ ¦ 13 ¦ Канал 3 ¦ 34 ¦ Канал 11 ¦ 55 ¦ общий ¦ ¦ 14 ¦ Канал 2 ¦ 35 ¦ Канал 10 ¦ 56 ¦ ЦАП,Канал А ¦ ¦ 15 ¦ Канал 1 ¦ 36 ¦ Канал 9 ¦ 57 ¦ ЦАП,Канал В ¦ ¦ 16 ¦ Канал 0 ¦ 37 ¦ Канал 8 ¦ 58 ¦ Тензо(возвр.) ¦ ¦ 17 ¦ -12V ¦ 38 ¦ +12V ¦ 59 ¦ Внешн.запуск ¦ ¦ 18 ¦ +5V ¦ 39 ¦ Конец преобр. ¦ 60 ¦ синхр. D0-D7 ¦ ¦ 19 ¦ D2 ¦ 40 ¦ D5 ¦ 61 ¦ D7 ¦ ¦ 20 ¦ D1 ¦ 41 ¦ D4 ¦ 62 ¦ D6 ¦ ¦ 21 ¦ D0 ¦ 42 ¦ D3 ¦ ¦ ¦ L----+--------------+----+---------------+----+---------------Разьем Х2. -------------Тип разъема на плате - ВН-8 ("папа"). Ответка на кабель - IDC-8 ("мама") (в базовый комплект не входит). На разьем выведены разряды D0-D7 шины данных компьютера. Разьем предназначен для подключения разрядов данных к схеме цифрового ввода-вывода на 24 линии ВВ55 (шина данных не подведена разводкой к этой микросхеме), или к макетному полю. Смотри также описание разьема назначения - Х5. Конструктивное расположение и назначение контактов Х2: 2 4 6 8 --T-T-T-¬ ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ L-+-+-+-1 3 5 7 --------T-----------¬ ¦контакт¦ цепь ¦ +-------+-----------+ ¦ 1 ¦разряд D0 ¦ ¦ 2 ¦разряд D1 ¦ ¦ 3 ¦разряд D2 ¦ ¦ 4 ¦разряд D3 ¦ ¦ 5 ¦разряд D4 ¦ ¦ 6 ¦разряд D5 ¦ ¦ 7 ¦разряд D6 ¦ ¦ 8 ¦разряд D7 ¦ L-------+-----------Разьем Х3. -------------Тип разъема на плате - ВН-34 ("папа"). Ответка на кабель - IDC-34 ("мама") (в базовый комплект не входит). На разьем выведены разряды D0-D15 схемы гальванически развязанного цифрового вывода, а также сигнал синхронизации. Конструктивное расположение и назначение контактов: 2 4 6 8 . . . . 30 34 --T-T-T-T---T-T-T-T-¬ ¦0¦0¦0¦0¦ . . . . ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ L-+-+-+-+-- . . . . --+-+-+-+-1 3 5 7 29 33 -----T------------T----T------------¬ ¦ N| ¦ Назначение ¦ N| ¦ Назначение ¦ +----+------------+----+------------+ ¦ 01 ¦ разряд D0 ¦ 02 ¦ общий ¦ ¦ 03 ¦ разряд D1 ¦ 04 ¦ общий ¦ ¦ 05 ¦ разряд D2 ¦ 06 ¦ общий ¦ ¦ 07 ¦ разряд D3 ¦ 08 ¦ общий ¦ ¦ 09 ¦ разряд D4 ¦ 10 ¦ общий ¦ ¦ 11 ¦ разряд D5 ¦ 12 ¦ общий ¦ ¦ 13 ¦ разряд D6 ¦ 14 ¦ общий ¦ ¦ 15 ¦ разряд D7 ¦ 16 ¦ общий ¦ ¦ 17 ¦ разряд D8 ¦ 18 ¦ общий ¦ ¦ 19 ¦ разряд D9 ¦ 20 ¦ общий ¦ ¦ 21 ¦ разряд D10 ¦ 22 ¦ общий ¦ ¦ 23 ¦ разряд D11 ¦ 24 ¦ общий ¦ ¦ 25 ¦ разряд D12 ¦ 26 ¦ общий ¦ ¦ 27 ¦ разряд D13 ¦ 28 ¦ общий ¦ ¦ 29 ¦ разряд D14 ¦ 30 ¦ общий ¦ ¦ 31 ¦ разряд D15 ¦ 32 ¦ общий ¦ ¦ 33 ¦ синхр. ¦ 34 ¦ +5В ¦ L----+------------+----+------------- Разьем Х4. -------------Тип разъема на плате - ВН-34 ("папа"). Ответка на кабель - IDC-34 ("мама") (в базовый комплект не входит). На разьем выведены разряды D0-D15 схемы гальванически развязанного цифрового ввода, а также сигнал запуска АЦП (передачи данных). Конструктивное расположение и назначение контактов: 2 4 6 8 . . . . 30 34 --T-T-T-T---T-T-T-T-¬ ¦0¦0¦0¦0¦ . . . . ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ L-+-+-+-+-- . . . . --+-+-+-+-1 3 5 7 29 33 -----T------------T----T------------¬ ¦ N| ¦ Назначение ¦ N| ¦ Назначение ¦ +----+------------+----+------------+ ¦ 01 ¦ разряд D0 ¦ 02 ¦ общий ¦ ¦ 03 ¦ разряд D1 ¦ 04 ¦ общий ¦ ¦ 05 ¦ разряд D2 ¦ 06 ¦ общий ¦ ¦ 07 ¦ разряд D3 ¦ 08 ¦ общий ¦ ¦ 09 ¦ разряд D4 ¦ 10 ¦ общий ¦ ¦ 11 ¦ разряд D5 ¦ 12 ¦ общий ¦ ¦ 13 ¦ разряд D6 ¦ 14 ¦ общий ¦ ¦ 15 ¦ разряд D7 ¦ 16 ¦ общий ¦ ¦ 17 ¦ разряд D8 ¦ 18 ¦ общий ¦ ¦ 19 ¦ разряд D9 ¦ 20 ¦ общий ¦ ¦ 21 ¦ разряд D10 ¦ 22 ¦ общий ¦ ¦ 23 ¦ разряд D11 ¦ 24 ¦ общий ¦ ¦ 25 ¦ разряд D12 ¦ 26 ¦ общий ¦ ¦ 27 ¦ разряд D13 ¦ 28 ¦ общий ¦ ¦ 29 ¦ разряд D14 ¦ 30 ¦ общий ¦ ¦ 31 ¦ разряд D15 ¦ 32 ¦ общий ¦ ¦ 33 ¦ запуск ¦ 34 ¦ +5В ¦ L----+------------+----+------------Разьем Х5. -------------Тип разъема на плате - ВН-8 ("папа"). Ответка на кабель - IDC-8 ("мама") (в базовый комплект не входит). На разьем выведены разряды D0-D7 шины данных микросхемы ВВ55. Разьем предназначен для подключения разрядов данных микросхемы ВВ55 к шине данных компьютера. Для этого необходимо соединить разьемы X5 и X2 шлейфом. Конструктивное расположение и назначение контактов аналогично X2: 2 4 6 8 --T-T-T-¬ ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ L-+-+-+-1 3 5 7 --------T-----------¬ ¦контакт¦ цепь ¦ +-------+-----------+ ¦ 1 ¦разряд D0 ¦ ¦ 2 ¦разряд D1 ¦ ¦ 3 ¦разряд D2 ¦ ¦ 4 ¦разряд D3 ¦ ¦ 5 ¦разряд D4 ¦ ¦ 6 ¦разряд D5 ¦ ¦ 7 ¦разряд D6 ¦ ¦ 8 ¦разряд D7 ¦ L-------+-----------Разьем Х6. -------------Тип разъема на плате - ВН-50 ("папа"). Ответка на кабель - IDC-50 ("мама") (в базовый комплект не входит). На разьем выведены разряды данных схемы цифрового ввода-вывода на микросхеме ВВ55 (порты A,B,C). Цоколевка разьема находится в соответствии с требованиями международного стандарта OPTO 22. Конструктивное расположение и назначение контактов: 2 4 6 8 . . . . 46 50 --T-T-T-T---T-T-T-T-¬ ¦0¦0¦0¦0¦ . . . . ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ ¦0¦0¦0¦0¦ L-+-+-+-+-- . . . . --+-+-+-+-1 3 5 7 45 49 -----T------------T----T------------¬ ¦ N| ¦ Назначение ¦ N| ¦ Назначение ¦ +----+------------+----+------------+ ¦ 01 ¦ порт C, D7 ¦ 02 ¦ общий ¦ ¦ 03 ¦ порт C, D6 ¦ 04 ¦ общий ¦ ¦ 05 ¦ порт C, D5 ¦ 06 ¦ общий ¦ ¦ 07 ¦ порт C, D4 ¦ 08 ¦ общий ¦ ¦ 09 ¦ порт C, D3 ¦ 10 ¦ общий ¦ ¦ 11 ¦ порт C, D2 ¦ 12 ¦ общий ¦ ¦ 13 ¦ порт C, D1 ¦ 14 ¦ общий ¦ ¦ 15 ¦ порт C, D0 ¦ 16 ¦ общий ¦ ¦ 17 ¦ порт B, D7 ¦ 18 ¦ общий ¦ ¦ 19 ¦ порт B, D6 ¦ 20 ¦ общий ¦ ¦ 21 ¦ порт B, D5 ¦ 22 ¦ общий ¦ ¦ 23 ¦ порт B, D4 ¦ 24 ¦ общий ¦ ¦ 25 ¦ порт B, D3 ¦ 26 ¦ общий ¦ ¦ 27 ¦ порт B, D2 ¦ 28 ¦ общий ¦ ¦ 29 ¦ порт B, D1 ¦ 30 ¦ общий ¦ ¦ 31 ¦ порт B, D0 ¦ 32 ¦ общий ¦ ¦ 33 ¦ порт A, D7 ¦ 34 ¦ общий ¦ ¦ 35 ¦ порт A, D6 ¦ 36 ¦ общий ¦ ¦ 37 ¦ порт A, D5 ¦ 38 ¦ общий ¦ ¦ 39 ¦ порт A, D4 ¦ 40 ¦ общий ¦ ¦ 41 ¦ порт A, D3 ¦ 42 ¦ общий ¦ ¦ 43 ¦ порт A, D2 ¦ 44 ¦ общий ¦ ¦ 45 ¦ порт A, D1 ¦ 46 ¦ общий ¦ ¦ 47 ¦ порт A, D0 ¦ 48 ¦ общий ¦ ¦ 49 ¦ +5В(комп.) ¦ 50 ¦ общий ¦ L----+------------+----+------------============================================================================= 3. Функциональная схема АЦП. ============================================================================= канал 0 -канал 1 -: канал 32-- ------¬ ¦ ¦ ¦ +¦ ВМ +¦ ¦ L-T-T-- ------------¬ ¦ ДУ x1 ¦ ¦вх+ x10 +¦вхx100 ¦ ¦ x1000¦ L----T-T----- ------------¬ ¦ ¦ ¦IN ¦ ¦ АЦП ¦ ¦ ¦ L--T-T-T-T--- -------¬ ¦ ЦАП0 +- ЦАП,Канал А ¦ ¦ ¦ ЦАП1 +- ЦАП,Канал В ¦ ¦ L-T-T--- Дискретный ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ввод-вывод --+-+---------+-+----------+-+-+-+-------+-+--¬ . ... . ¦ схема управления +-+-------L------------------T-T-T-T-T-T-T-T------------+/-12,+5В ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ -+-+-+¬ -+-+-+-+-+-+-+-+¬ ¦ ИПН ¦ ¦ БГР ¦ L-T-T-LT-T-T-T-T-T-T-T¦ ¦ --+-+--------------+-+-+-+-+-+-+-+-----------¬ ¦ и н т е р ф е й с ¦ L--------------T---------------T-------------¦ ............. ¦ IBM PC/AT ИПН БГР ВМ ДУ АЦП - импульсный преобразователь напряжения; блоки гальванических развязок; входной мультиплексор; блок дифференциального усилителя; аналого-цифровой преобразователь со встроенным устройством выборки-хранения; ЦАП0,ЦАП1 - два канала цифро-аналогового преобразователя. =========================================================================== 4. Описание работы с модулем. =========================================================================== --------------------------------------------------------------------------4.1. Общие сведения. --------------------------------------------------------------------------При обращении к плате АЦП происходит дешифрация адреса. Для адресации модуля используются десять младших разрядов шины адреса компьютера. Для работы АЦП необходимо адресное пространство ввода/вывода размером в 16 адресов. АЦП может работать со следующими диапазонами адресов: 300h...30fh 310h...31fh 360h...36fh 370h...37fh 3c0h...3cfh Это можно обозначить как 3x0...3xf, где x=0,1,6,7,c. Начальный адрес каждого поддиапазона называется базовым адресом. Выбор поддиапазона осуществляется с помощью джамперов JP1 , которыми устанавливаются разряды А4...А7 адресов, используемых при обращении к данному модулю. Так, для установки базового адреса 300h, необходимо установить все джамперы в разомкнутое состояние. Выбор функции АЦП, выполняемой при данном обращении к плате, осуществляется путем дешифрации младших разрядов адреса A0...A3. Адресное пространство модуля делится на порты команд, данных, порты команд и данных ОЗУ, порт регистра режима и слова состояния, порт таймера ВИ54 и схемы цифрового ввода-вывода на ВВ55. Порт команд (смещение относительно базового адреса с) предназначен для записи и передачи команды в аналоговую часть. Для получения информации о данном канале важно уста- новленное предварительно значение номера канала, режима и усиления. При обращении к плате (запуске АЦП) происходит прием и передача новых данных в аналоговую часть схемы, при следующем запуске ( т.к. с момента начала передачи новых данных происходит "защелкивание" устройства выборки-хранения) происходит исполнение переданных данных (например,переключение канала), а при третьем запуске АЦП передает в интерфейс результат измерения по интересующему номеру канала и с усилением, переданными при первом запуске АЦП. При заметном числе измерений 2 первых 'лишних' запуска не отражаются на общем быстродействии, а при обработке данных необходимо учитывать сдвиг результатов измерений относительно запусков АЦП. Такой алгоритм позволяет не отводить дополнительного времени на переключение каналов и установление усилителей на новое значение напряжения, т.к. для этого у схемы есть время, равное интервалу запуска. Порт данных (смещение с) предназначен для чтения результата преобразования АЦП. Чтение результата осуществляется через 11 мкс после запуска преобразования. В случае обращения к порту данных до момента конца преобразования модуль задерживает цикл чтения до готовности данных. При произведении ряда измерений при соответствующей настройке регистра режима возможна генерация прерывания по окончанию заданного числа преобразований. Таким образом можно организовать три метода чтения результатов АЦП: метод опроса готовности, непосредственное чтение и опрос по прерыванию. Работа модуля возможна в программном режиме: команды, необходимые для управления измерительной частью схемы считываются автоматически из ОЗУ программы по стартовым сигналам ( от встроенного таймера ), а результаты преобразования записываются в ОЗУ данных. Запись ОЗУ программ осуществляется через порт команд ( смещение e ) путем последовательного обращения к порту. Запуск модуля в программном режиме осуществляется путем соответствующей настройки регистра режима и таймера. Момент окончания работы программы отслеживается по значению бита D6 слова состояния модуля или по прерыванию. После этого можно осуществлять чтение массива данных из ОЗУ (смещение e). Цифроаналоговые преобразователи получают информацию, если в передаваемых в измерительную часть схемы разрядах регистра режима указана соответствующая адресация. Управление каналами ЦАПов возможно как обращениями компьютера, так и в программном режиме по данным, передаваемым из ОЗУ. Таким образом программа, записанная в ОЗУ позволяет произвольно изменять напряжения в каналах и производить измерение в нужные моменты времени, не задействуя для этого аппаратные средства компьютера. Вывод слова цифровых данных пользователю осуществляется через этот-же канал по другому адресу, т.е. использование для этой цели ОЗУ также возможно. Вся информация, предназначенная для передачи в измерительную часть схемы (для АЦП, ЦАП, данные на вывод) записывается в ОЗУ, в область программы. В случае цифрового ввода (гальванически развязанного) изменение состояния соответствующего разряда регистра режима приводит к переключению потока данных с АЦП на поток со схемы цифрового ввода. --------------------------------------------------------------------------4.2. Аппаратные прерывания, формируемые платой АЦП. --------------------------------------------------------------------------АЦП может генерировать запросы на прерывание по линиям: IRQ5;IRQ10;IRQ11;IRQ12;IRQ15. Номер линий устанавливается ключами 1,2,3,4,5 переключателя JP2. Только один ключ может быть замкнут. События, вызывающие запрос на прерывание: 1) заданное число измерений выполнено. 2) произошел запуск измерения (запуск происходит в случае внешнего запуска, запуска от таймера или в случае инициирования передачи внешним устройством для схемы цифрового ввода). ---------------------------------------------------------------------------4.3. Таблица соответствия адресов, используемых при обращении к плате, и функций, выполняемых устройством. -----------------------------------------------------------------------------------T--------------------------------------------------------------¬ ¦Адрес(h)¦ Функции устройства ¦ +--------+--------------------------------------------------------------+ ¦ 3х0 ¦ Канал 0 таймера - интервал запуска АЦП; ¦ ¦ 3х1 ¦ Канал 1 таймера - интервал запуска АЦП (каскадирован с ¦ ¦ ¦ каналом 0) ¦ ¦ 3х2 ¦ Канал 2 таймера - подсчет числа измерений; ¦ ¦ 3х3 ¦ Управляющее слово таймера: ¦ ¦ ¦ Канал 0 таймера - 34(h); ¦ ¦ ¦ Канал 1 таймера - 74(h); ¦ ¦ ¦ Канал 2 таймера - b4(h); ¦ +--------+--------------------------------------------------------------+ ¦ 3х4 ¦ Порт А схемы дискретного ввода-вывода на ВВ55; ¦ ¦ 3х5 ¦ Порт B схемы дискретного ввода-вывода на ВВ55; ¦ ¦ 3х6 ¦ Порт C схемы дискретного ввода-вывода на ВВ55; ¦ ¦ 3х7 ¦ Управляющее слово ВВ55. ¦ +--------+--------------------------------------------------------------+ ¦ 3х8 ¦ ЗАПИСЬ - Регистр режима. Назначение разрядов следующее: ¦ ¦ ¦ ¦ ¦ ¦ D7 D6 D5 D4 D3 D2 D1 D0 ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦-разряды адреса: ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 0 0-запись слова в регистры АЦП; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 0 1-запись слова дискретного вывода; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 1 0-запись значения в ЦАП0; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 1 1-запись значения в ЦАП1; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L 0- принимается слово из АЦП; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ 1- принимается слово из схемы цифрового ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ввода; ¦ ¦ ¦ ¦ ¦ ¦ ¦ L х-зарезервирован; ¦ ¦ ¦ ¦ ¦ ¦ L 1/0-аналоговое питание включить/выключить; ¦ ¦ ¦ ¦ ¦ L 1/0-разрешить/запретить прерывание по сигналу ¦ ¦ ¦ ¦ ¦ "заданное число измерений сделано"; ¦ ¦ ¦ ¦ L 1/0-разрешить/запретить прерывание по сигналу ¦ ¦ ¦ ¦ начала каждого измерения; ¦ ¦ ¦ L х-зарезервирован. ¦ ¦ ¦ ¦ ¦ ¦ ЧТЕНИЕ - Регистр слова состояния. Назначение разрядов: ¦ ¦ ¦ ¦ ¦ ¦ D15 D14 D13 D12 D11 D10 D9 D8 ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ ¦ L -зарезервирован; ¦ ¦ ¦ ¦ L 0 - заданное число измерений выполнено. ¦ ¦ ¦ L 1 - происходит измерение. ¦ +--------+--------------------------------------------------------------+ ¦ 3хс ¦ Запись-чтение слова из (в) измерительной части модуля. ¦ ¦ ¦ В зависимости от того, какие значения установлены заранее ¦ ¦ ¦ в разрядах D2, D1, D0 регистра режима передаваемые и ¦ ¦ ¦ принимаемые данные будут задействовать одну из функций ¦ ¦ ¦ модуля. После начала передачи данных в измерительную часть ¦ ¦ ¦ схемы независимо от адресации происходит запуск ¦ ¦ ¦ преобразования АЦП. Это позволяет, например, формировать ¦ ¦ ¦ ЦАПом заданные значения напряжений для воздействия на ¦ ¦ ¦ исследуемый обьект и получать информацию о его реакции. ¦ ¦ ¦ Режим записи: ¦ ¦ ¦ Назначения разрядов передаваемого слова: ¦ ¦ ¦ ¦ ¦ ¦ D0--- номер включаемого канала -----¬ ¦ ¦ ¦ D1 ... (при использовании 16-ти ¦ ¦ ¦ ¦ D2 ... каналов или дифференциального ¦ ¦ ¦ ¦ D3 ... режима D4 = 0); ¦ ¦ ¦ ¦ D4--¬ 00000-канал 0; ¦ ¦ ¦ ¦ L 11111-канал 31; ¦ ¦ ¦ ¦ D5--- усиление:00-1; ¦ ¦ ¦ ¦ D6--¬ 01-10; ¦ ¦ ¦ ¦ ¦ 10-100; L D0-D15- слово ¦ ¦ ¦ L 11-1000; .. гальванически ¦ ¦ ¦ D7--- режим: 0- двуполярный; .. развязанных ¦ ¦ ¦ 1- однополярный; данных, данные ¦ ¦ ¦ D8--- незадействован; ¦ для ЦАП0,ЦАП1 ¦ ¦ ¦ D9--- незадействован; ¦ ¦ ¦ ¦ D10-- незадействован; ¦ ¦ ¦ ¦ D11-- незадействован; ¦ ¦ ¦ ¦ D12-- незадействован; ¦ ¦ ¦ ¦ D13-- незадействован; ¦ ¦ ¦ ¦ D14-- незадействован; ¦ ¦ ¦ ¦ D15-- незадействован; --------------¦ ¦ ¦ ¦ ¦ ¦ Через 10 мкс. результат измерения передан в интерфейсную ¦ ¦ ¦ часть схемы для чтения. В случае обращения к плате через ¦ ¦ ¦ меньший интервал времени сигнал обращения компьютера ¦ ¦ ¦ задерживается модулем до момента окончания преобразования ¦ ¦ ¦ АЦП. Назначение разрядов принимаемого слова (результата ¦ ¦ ¦ измерения): ¦ ¦ ¦ Режим чтения: ¦ ¦ ¦ D0-D15-- результат преобразования, либо данные схемы ¦ ¦ ¦ цифрового ввода. ¦ +--------+--------------------------------------------------------------+ ¦ 3хe ¦ Запись-чтение слова из (в) ОЗУ модуля. ¦ ¦ ¦ При записи происходит заполнение ячеек памяти области ¦ ¦ ¦ программы. Программа представляет собой данные для АЦП, ¦ ¦ ¦ ЦАПов или цифрового вывода в формате, указанном для порта ¦ ¦ ¦ непосредственной записи 3хс. Адресация данных определяется ¦ ¦ ¦ регистром режима (см. адрес 3х0). Инкрементирование счетчика ¦ ¦ ¦ адреса ОЗУ автоматическое. Сброс счетчика происходит при ¦ ¦ ¦ каждой записи регистра режима. ¦ ¦ ¦ При чтении считываются данные, накопленные в процессе ¦ ¦ ¦ автоматической работы (если запуски были от таймера). ¦ L--------+------------------------------------------------------------------------------------------------------------------------------------------4.4. Включение аналогового питания модуля. ----------------------------------------------------------------------------Для обеспечения гальванически изолированным питанием аналоговой части платы на плате АЦП установлен преобразователь наряжения. По сути, это импульсный блок питания. Для целей экономии электроэнергии и повышения ресурса платы, включение-выключение преобразователя осуществляется программно. Использовать выключение преобразователя рекомендуется, если плата АЦП используется менее 50% общего времени работы компьютера. Не включив аналоговое питание, работа АЦП будет невозможна. Более того, при попытке запуска - чтения АЦП в момент чтения произойдет зависание компьютера, поскольку с выключенным питанием плата выдать результат измерения не может. Включая питание (по порту $3х8), нужно учитывать одну тонкость, заключающуюся в свойствах микросхемы АЦП: скорость нарастания выходного напряжения блока питания, запитывающего микросхему АЦП, нужно обеспечить достаточно высокую. Иначе калибровочные процессы, происходящие в микросхеме АЦП, запускающиеся в момент появления на ее выводах питающих напряжений, не смогут нормально завершиться. Т.е. с момента появления питания его величина должна быть практически сразу близкой к номинальному значению. Однако импульсный преобразователь, начиная работать, должен, кроме питания своей нагрузки, зарядить конденсаторы фильтра выпрямителя, и на это расходуется определенное время (сотни миллисекунд). Выполнить это требование - обеспечить высокую скорость нарастания, можно, если применить специальный алгоритм включения, заключающийся в том, что питание включаем, ждем когда конденсаторы зарядятся (при этом калибровка АЦП выполняется не всегда удачно), выключаем преобразователь на малое время и включаем снова. Это похоже на тренировку электролитов, заряд-разряд-заряд, но на самом деле наша задача в том, чтобы вновь запустить калибровку АЦП, но в лучших условиях. Временны'е характеристики задержек после включения, выключения и снова включения могут быть взяты рекомендуемые, но не исключен вариант подбора этих времянок пользователем. Требования к программе в этом случае - чтобы примененные методы формирования задержек были такими, чтобы реально формируемое время мало зависело от быстродействия компьютера. Критерий верно выбранных задержек - отсутствие зависания АЦП после его включения при попытке первого же чтения, следующей за запуском АЦП. Нужно отметить, что разброс величин этих "верных" задержек довольно велик, в том плане что один и тот же модуль, и любой другой будут работать нормально при изменении этих времен в несколько раз. Т.е. проблема не настолько острая и не нужно опасаться, что однажды выбранные времянки перестанут работать скажем, через несколько лет. Просто это требование платы, которое нужно выполнить, но не ее недостаток. Можно определить крайние величины, и выбрать значение где-то посередине, желательно учитывая экспоненциальность процессов заряда и разряда. Главный параметр, влияющий на надежность - это задержка после _выключения_ питания, перед включением. Т.е. нужно выбрать момент включения, на участке разряда. Другие задержки, после включений должны быть просто минимальными, но достаточными, т.е. могут быть и очень большими. Для отладки рекомендуется после включений ставить заведомо большие времена, визуально заметные, а исследовать и менять время выключения между ними. Потом можно уменьшать задержки после включения. Рекомендуемый порядок и времянки: Включение. Задержка 400мс. Выключение. Задержка 400мс. Включение. Задержка 500мс. Эту процедуру достаточно выполнить один раз в начале работы с платой, например в заголовке программы. ----------------------------------------------------------------------------4.5. Программирование таймера. ----------------------------------------------------------------------------Таймер, находящийся на плате АЦП, служит для программирования интервала запуска (каналы таймера 0 и 1) и подсчета количества сделанных измерений (канал таймера 2). Подсчет количества измерений при заполнении ОЗУ останавливает в заданный момент формирование импульсов запуска. Одновременно это приводит в выставлению сигнала прерывания и формированию разряда готовности регистра слова состояния. Для режима одиночных запусков от компьютера необходимо сделать предустановку таймера, записав в него управляющие слова всех каналов. Каналы 0,1 (адрес 3х0,3х1) ---------------------------В АЦП используется режим работы счетчиков таймера N:2, в котором входной опорный временной интервал (166 нс) умножается в N(0)*N(1) раз, где: N(0)-число, занесенное в счетчик 0 таймера; N(1)-число, занесенное в счетчик 1 таймера; Заносимое число в счетчик канала 0 должно находится в диапазоне 16 ($0010) - 70 ($004a), в канал 1 - в диапазоне от 2 ($0002) до 65536 ($ffff). Исходя из минимального времени преобразования АЦП, равного 12 мкс, заносимое в счетчики таймера произведение не должно быть меньше 80 (например, в канал 0 заносим 16, а в канал 1 заносим 5). Т.к. 0-й счетчик таймера соединен каскадно с первым, то для осуществления минимального шага изменения периода запуска (2,65 мкс), изменяя данные только в канале 1, рекомендуется в 0-й канал заносить минимальное число (16). Управляющие слова : счетчик 0 - 34; счетчик 1 - 74. Канал 2 (адрес 3х2) ----------------------------Счетчик таймера 2 используется для подсчета числа сделанных измерений при записи результатов в ОЗУ (при этом происходит оcтановка счетчика адреса ОЗУ и формирование (в случае соответствующего программирования регистра режима ) сигнала прерывания. Заносимое в счетчик число может находиться в пределах от 2 до 16384 (ОЗУ 32К слов). Управляющее слово: счетчик 2 - b4. Управляющие слова заносятся по адресу 3х3. Последовательность программирования таймера следующая: вначале записывается управляющее слово любого канала, а затем записывается содержимое счетчика этого канала. Запись в счетчик делается побайтно, вначале младший байт, затем старший, независимо от того равен последний нулю или нет. В идеальном случае теоретически рекомендуется последним программировать канал 0 таймера, поскольку как только он получит данные, он начнет формировать на своем выходе импульсную последовательность для 1-го канала. Если первый канал в это время проходит стадию программирования, момент появления первого импульса запуска неопределен. Реально это не приводит к сбоям и для большей логичности исходного текста программ мы в примерах программирования используем поочередное программирование с 0-го по 2-й канал. Но это не мешает для повышения точности Вашего программного продукта все-же программировать канал 0 в последнюю очередь, что заставит модуль четко следовать алгоритму даже при мешающих воздействиях многозадачной среды. Небольшое наглядное пояснение из которого видна разница очередности программирования каналов: скажем, задаем интервал запуска АЦП 1 секунда. Если программируются 2-й и 1-й канал (за это время могли быть любые задержки в любой момент), а затем канал 0, то с момента записи последнего байта ровно через секунду произойдет запуск АЦП. Таким образом, есть временн'ая определенность. Когда программируется последним канал 1, этой определенности нет, но в большинстве задач это и не требуется. Пример программирования таймера: Интервал запуска 21 мкс, число измерений-4096. ( TurboPascal, базовый адес 300 ) port[$303]:=$34; {управляющее слово канала 0} port[$300]:=$10; port[$300]:=$0; port[$303]:=$74; {управляющее слово канала 1} port[$301]:=$08; port[$301]:=$0; port[$303]:=$b4; {управляющее слово канала 2} port[$302]:=$ff; { число 4096 в } port[$302]:=$0f; { шестнадцатеричном виде } ------------------------------------------------------------------------4.6. Программирование АЦП модуля. ---------------------------------------------------------------------Модуль ADC16-32 позволяет реализовать следующие основные режимы работы аналого-цифрового преобразователя: 1) Запуск преобразования от компьютера с считыванием результата сразу после запуска. Необходимая задержка, равная времени преобразования модуля формируется автоматически (выставляется сигнал channel_ready на шину ISA). 2) Запуск преобразования происходит по сигналам встроенного таймера, результаты измерений заносятся в ОЗУ модуля. 3) Запуск происходит по сигналам внешнего запуска. Результаты считываются по обнаружению '1' в разряде 'происходит измерение' регистра слова состояния, либо путем задействования прерывания. Данный режим возможен по предварительно установленному номеру канала и усилению (т.е. без использования ОЗУ). ВАЖНО !!!! Ознакомьтесь с разделом 4.1(Общие сведения), абзац 4, относительно того, как получить информацию о нужном канале. Если оцифровка ведется по одному каналу, нужно только два холостых запуска в начале работы. Для реализации первого режима работы (запуск от компьютера с последующим считыванием результата) необходимо: 1) Запрограммировать управляющие слова таймера; 2) Запрограммировать регистр режима; 3) Сформировать запуск преобразования записью номера канала, усиления и режима; 4) Принять слово данных из АЦП (учитывая ПП 4.1.). Для реализации второго режима работы (запуск от таймера с записью результатов в ОЗУ модуля) необходимо: 1) Запрограммировать управляющие слова таймера - предустановить; 2) Запрограммировать регистр режима; 3) Записать программу работы модуля в область программы ОЗУ, либо, если используется один канал, сделать запуск измерения по этому каналу, а затем (после считывания результата) в регистре режима указать любой незадействованный адрес для пересылаемых в гальванически развязанныю часть данных (один из каналов ЦАПа или цифровой вывод ). 4) Запрограммировать управляющие слова и данные в таймер - количество измерений и интервал запуска. 5) Отработать конец выполнения программы - либо обрабатывая прерывание, либо считывая состветствующий разряд регистра слова состояния. 6) Произвести перепрограммирование регистра режима (это сбрасывает счетчик адреса ОЗУ); 7) Сделать два "холостых" чтения ОЗУ, а затем считать массив из ОЗУ (читаемый обьем будет соответственно на два значения меньше). Для реализации третьего режима работы (внешний запуск ) необходимо: 1) Запрограммировать управляющие слова таймера; 2) Запрограммировать регистр режима; 3) Сделать запуск измерения по интересующему каналу, считать результат, повторить 2 раза, а затем в регистре режима указать любой незадействованный адрес для пересылаемых в гальванически развязанную часть данных (один из каналов ЦАПа или цифровой вывод ). 4) Результаты считываются по обнаружению '1' в разряде "происходит измерение" регистра слова состояния, либо путем задействования прерывания. В том случае, если быстродействия компьютера не хватает (в случае загрузки другой задачей) для надежной фиксации сигнала "происходит измерение" (сигнал становится активным на время измерения - 10,6 мкс) необходимо использовать прерывание. Это может потребоваться в случае использования внешнего запуска или в случае запусков от таймера с необходимостью чтения результатов "на лету". Для относительно больших интервалов запуска использование прерывания заметно "разгружает" компьютер. ОБЩИЕ РЕКОМЕНДАЦИИ: При переключении с канала на канал необходимо учитывать, что в этот момент формируется помеха тому каналу, на который происходит переключение. Если источник сигнала является со стороны выхода быстродействующим усилителем и/или обладает низким выходным сопротивлением, в этом случае переключение с максимальной скоростью не приведет к нежелательным последствиям. В противном случае будет проявляться взаимовлияние каналов и будут проявляться дополнительные шумы в канале измерения. Для устранения подобного эффекта самый простой и эффективный способ увеличить время, отводимое на один канал. Для высокоомных или "медленных" источников сигнала это время может составить единицы-десятки миллисекунд. Другой способ заключается в подсоединении параллельно источникам сигнала конденсаторов емкостью до единиц микрофарад. При этом выход источника должен быть не активным, т.е это не должен быть выход усилителя, иначе возникнет самовозбуждение последнего. Для этих условий между выходом усилителя и конденсатором (точка подключения входа АЦП) необходимо включить резистор номиналом 100-300 Ом. Полоса частот входного сигнала при этом соответственно снижается. Частота среза (завал АЧХ на уровне -30%) такого RC фильтра составляет Fср=1/(6,28*R*C). ------------------------------------------------------------------------4.7. Программирование ЦАП модуля. ---------------------------------------------------------------------Для осуществления записи в ЦАП_0 или ЦАП_1 данных необходимо перепрограммировать регистр режима, указав адресацию данных соот- ветствующую выбранному каналу ЦАПа. Для осуществления полного цикла обмена данными после записи необходимо провести операцию чтения. После этого можно изменить адресацию на другой канал ЦАП и запрограммировать его, сделав после записи чтение. Для продолжения работы с АЦП (или с ЦВВ) необходимо снова перепрограммировать регистр режима. Пример программирования ЦАП: port[$308]:=$12; portw[$30c]:=$7fff; r:=portw[$30c]; port[$308]:=$13; portw[$30c]:=$7fff; r:=portw[$30c]; {адресация данных для ЦАП_0} {данные для ЦАП_0} {завершаем цикл обмена данными} {адресация данных для ЦАП_1} {данные для ЦАП_1} {завершаем цикл обмена данными} ------------------------------------------------------------------------4.8. Программирование ЦВВ модуля. ---------------------------------------------------------------------Для осуществления записи-чтения данных ЦВВ необходимо перепрограммировать регистр режима, указав адресацию данных соответствующую ЦВВ. Для осуществления полного цикла обмена данными после записи необходимо провести операцию чтения. Для продолжения работы с АЦП (или с ЦВВ) необходимо снова перепрограммировать регистр режима. Пример программирования ЦВВ: port[$308]:=$14; {адресация данных для ЦВВ и } {принимаем данные с ЦВВ } portw[$30c]:=$0000; {данные для цифрового вывода} r:=portw[$30c]; {данные с цифрового ввода ----------------------------------------------------------------------------4.9. Использование модуля как тензо-АЦП. ----------------------------------------------------------------------------АЦП позволяет осуществлять питание тензомоста стабилизированным напряжением +12В и использовать возвратный провод из точки подключения питания к мосту для формирования опорного напряжения для АЦП. Это позволяет избежать влияния нестабильности напряжения питания, падения напряжения на питающем проводе моста и в результате повысить точность измерения. Чтобы выбрать, какое опорное напряжение использовать на модуле (встроенное или с питания тензомоста) на плате установлены джамперы JP12,JP13. Замыкатель JP12 подключает внешнее напряжение, JP13 - внутреннее опорное. Для использования АЦП в виде тензо-АЦП в схеме усилителей заложена возможность установки по требованию ФНЧ 3-го порядка на заданную частоту. Входное сопротивление по входу возвратного провода более 10 кОм. ============================================================================== 5. Вычисление результата измерения. ============================================================================== При использовании АЦП и ЦАП на плате необходимо помнить, что результат измерения выводится в обычном двоичном коде, а формат данных для ЦАП - дополняющий код. Для получения истинного значения результата измерения данные, полученные из модуля, необходимо преобразовать. Преобразование заключается в учете формата вывода результата и режима работы платы. Формула, по которой вычисляется результат для однополярного режима: Результат базовый (однополярный)=(данные /65536)*5,12. Для двуполярного режима: Результат базовый (двуполярный)=(данные /65536)*10,24-5,12. Для режима деления входного сигнала: Результат (с делением)=Результат базовый * 2. Для режима с усилением: Результат (с усилением)=Результат базовый : 10 : 100 : 1000 Результат (с усилением+деление)=Результат базовый : 5 : 50 : 500 ========================================================================== 6. Примеры программирования АЦП. ========================================================================== -------------------------------------------------------------------------6.1.Циклический запуск АЦП от компьютера по одному каналу. -------------------------------------------------------------------------uses Crt; var r:integer; v:real; begin clrscr; port[$308]:=$10; {включить аналоговое питание} delay(400); {задержка} port[$308]:=$00; {выключить аналоговое питание} delay(400); {задержка} port[$308]:=$10; {включить аналоговое питание} delay(500); {задержка} {теперь АЦП готов к работе} port[$303]:=$34; {предустановка таймера} port[$303]:=$74; {предустановка таймера} port[$303]:=$b4; {предустановка таймера} repeat port[$308]:=$10; {регистр режима} portw[$30c]:=$0000; {0-й канал, усиление=1,} r:=portw[$30c]; v:=r/65536*10.24-5.12; writeln (v:7:4); until keypressed; end. Другие примеры для различных режимов работы см. в разделе DEMO комплекта программного обеспечения модуля. ============================================================================= Украина, г. Киев, ул. Лебедева-Кумача 6, оф. 48; тел: (+38067) 442-33-89, (+38044) 496-29-60 E-mail: sales@akon.com.ua Internet: http://www.akon.com.ua РАСПРЕДЕЛЁННАЯ ШИНА ISA Концепция построения и руководство по программированию (API Isabox.dll) Киев – 2006 СОДЕРЖАНИЕ ВВЕДЕНИЕ ................................................................... 24 1. КОНЦЕПЦИЯ ПОСТРОЕНИЯ ШИНЫ ............................................... 24 2. ФУНКЦИИ ISABOX.DLL ...................................................... 26 2.1. ФУНКЦИИ РЕГИСТРАЦИИ И СБОРКИ ............................................... 27 2.2. СЕРВИСНЫЕ ФУНКЦИИ ........................................................ 28 2.3. ФУНКЦИИ ДОСТУПА К ПОРТАМ ШИНЫ ISA ........................................... 29 3. ПРИМЕР СБОРКИ ШИНЫ И ДОСТУПА К ПОРТАМ ................................... 31 Введение С развитием вычислительной техники и постоянного роста потребностей в высокоскоростных устройствах производители персональных компьютеров отказываются от таких периферийных узлов как шина ISA и последовательных портов RS-232, LPT. По этой причине приходится снимать с производства проверенное временем не дорогое, но надежное оборудование, использующее эти интерфейсы. Стоимость PCI –плат по сравнению с платами на ISA выше в несколько раз, но проблема заключается ещё и в том, что не всегда нужна высокая производительность PCI –плат. Компания «АКОН» предлагает альтернативный вариант шины ISA, построенной на контроллерах ISA-BOX. Это внешняя распределенная шина, которая состоит из одного или нескольких контроллеров в зависимости от задач, которые управляют подключенными к ним платами ISA. Программное обеспечение верхнего уровня представляет набор внешних контроллеров как единое целое, т.е. как одну шину. Собранная таким образом внешняя шина совместима с платами всех производителей. К особенностям такого решения можно отнести отсутствие отработки прерываний и каналов прямого доступа к памяти. К преимуществам то, что шина собрана на внешних модулях (при этом не нужно открывать корпус компьютера) и то, что её можно собирать даже в том случае, если на компьютере есть слоты ISA, но в недостаточном количестве. 1. Концепция построения шины Узловые контроллеры ISA-BOX могут подключаться к таким интерфейсам как RS-232, RS-485, USB, Ethernet (витая пара). Рис.1 Пример построения распределенной шины Управление контроллерами берет на себя библиотека Isabox.dll. Порядок настройки шины заключается в том, что в библиотеке регистрируются интерфейсы, к которым подключены контроллеры и сами контроллеры. Если контроллер подключен к интерфейсу RS-232, RS-485 или USB, то его адреса лежат в диапазоне от 1 до 255. Для контроллеров подключенных к LAN назначаются IP-адреса. Если адрес контроллера не известен, то его можно узнать с помощью программы Isabox Administrator, вызвав пункт меню «Поиск». (См. описание на программу IsaboxAdm). При этом к указанному интерфейсу должен быть подключен ТОЛЬКО ОДИН контроллер, потому что в этом режиме посылаются широковещательные запросы. Для RS/USB это адрес 0x00, а для LAN 0xFFFFFFFF. Из прикладной программы перед началом сборки шины нужно вызвать функции ibcClearInterfaceList и ibcClearControllerList для очистки реестра интерфейсов и контроллеров. Для регистрации интерфейсов вызываются функции ibcOpenInterface и ibcOpenLanInterface. Первая функция вызывается при регистрации COM-порта. Контроллеры с USB интерфейсом создают при подключении виртуальный СОМ-порт, поэтому эта функция вызывается по тем же правилам. Вторая функция вызывается в том случае, если есть контролеры, подключенные к LAN. Обе функции при успешном выполнении возвращают идентификатор интерфейса. Этот идентификатор используется при регистрации контроллеров. Для регистрации контроллеров вызывается функция ibcOpenController. При регистрации контроллера нужно указать идентификатор интерфейса, к которому подключен контроллер, адрес контроллера и диапазон адресов шины ISA, которые он будет обслуживать. При регистрации контроллеров адреса шины ISA нужно распределять так чтобы они не перекрывались с адресами, зарегистрированными на других контроллерах, и не выходили за диапазон 0х300..0x3FF. Если у контроллера LAN интерфейс, то в этом случае запрещается использовать на нем диапазон адресов 0x380..0x39F, потому что в этом диапазоне работает микросхема драйвера сети Rtl8019AS. Если есть контроллеры, подключенные к LAN, то нужно вызвать функцию ibcSetLocalPort чтобы указать номер порта на компьютере. После этих манипуляций вызывается функция ibcControl, которая производит подключение к COM-портам и открывает UDP-сокет. Теперь шина ISA собрана и готова к использованию. 2. Функции Isabox.dll Весь набор функций библиотеки Isabox.dll можно разделить на три группы: № Группы 1 2 3 Функции функции регистрации и сборки ibcSetLocalPort ibcGetLocalPort ibcOpenInterface ibcOpenLanInterface ibcOpenController ibcClearControllerList ibcClearInterfaceList ibcControl Сервисные функции ibcGetControllerProfile ibcGetObjectList ibcFirstObject ibcNextObject ibcEofObject ibcGetOncObject ibcSetRsCfg ibcGetRsCfg ibcSetLanCfg ibcGetLanCfg ibcSaveToFlash ibcRestoreFromFlash Функции доступа к портам шины ISA ibcReadPort ibcWritePort ibcReadPortW ibcWritePortW ibcExReadPort ibcExWritePort ibcExReadPortW ibcExWritePortW 2.1. Функции регистрации и сборки ibcClearInterfaceList ibcClearControllerList Очистка реестра интерфейсов и контроллеров void ibcClearControllerList(void); void ibcClearInterfaceList(void); Параметры: отсутствуют; ibcOpenInterface Регистрация COM-порта unsigned long ibcOpenInterface(unsigned char ComPort, unsigned long Baudrate, HANDLE OpenPortHandle); Параметры: 1. ComPort – номер COM-порта; (0 - COM1, 1 - COM2 и т.д.); 2. Baudrate – скорость обмена; (1200 – 115200); 3. OpenPortHandle – если есть необходимость подключить к одному порту различные устройства (на RS-485), то этот порт нужно открыть до его регистрации в библиотеке и хендл открытого порта передать третьим параметром. Если такой надобности нет, то прировнять его к NULL. Возвращаемый параметр: идентификатор регистрации контроллеров. (См. ниже) ibcOpenLanInterface интерфейса. Используется при Используется при Регистрация LAN интерфейса unsigned long ibcOpenLanInterface(void); Параметры: отсутствуют Возвращаемый параметр: идентификатор регистрации контроллеров. (См. ниже) интерфейса. ibcOpenController Регистрация контроллера unsigned long ibcOpenController(unsigned unsigned unsigned unsigned long long short short InterfaceHandle, Address, StartAddress, StopAddress); Параметры: 1. InterfaceHandle – идентификатор интерфейса возвращаемый функциями регистрации интерфейсов; 2. Address – адрес контроллера; ( 1 – 255 для RS, 0 – широковещательный) пример для LAN = 0xC0A80102 = 192.168.1.2; 3. StartAddress, StopAddress – диапазон адресов шины ISA которые будет обслуживать контроллер. Возвращаемый параметр: идентификатор контроллера. Используется при вызове сервисных функций для получения дополнительной информации о контроллере. (См. ниже) ibControl Включение/выключение шины bool ibcControl(bool status); Параметры: 1. status – (true/false); Возвращаемый параметр: в случае успешного подключения к зарегистрированным COM-портам и создания сокетов функция возвращает true. В противном случае – false. 2.2. Сервисные функции Сервисные функции не нужны для использования в прикладной программе для работы с шиной ISA. Если все же они требуются, то их детальное описание предоставляется компанией «АКОН» в отдельном документе. 2.3. Функции доступа к портам шины ISA При вызове функций доступа к портам шины ISA библиотека сама выбирает, какой контроллер будет обрабатывать запрос. Это возможно благодаря тому что на этапе регистрации контроллеров были указаны диапазоны адресов шины ISA для каждого узлового контроллера. ibcReadPort ibcWritePort ibcReadPortW ibcWritePortW bool bool bool bool Побайтный и пословный доступ к одному порту ibcReadPort(unsigned short address, unsigned char *value); ibcWritePort(unsigned short address, unsigned char value); ibcReadPortW(unsigned short address, unsigned short *value); ibcWritePortW(unsigned short address, unsigned short value); Параметры: 1. address – адрес порта шины ISA; 2. value – значение, записываемое в порт или считываемое с порта. Возвращаемый параметр: в случае успешного выполнения функция возвращает true. В противном случае – false. Причиной не успешного вызова может стать либо не правильно зарегистрированный интерфейс и/или контроллер либо плохая линия связи с контроллером. ibcExReadPort ibcExWritePort ibcExReadPortW ibcExWritePortW Побайтный и пословный доступ к одному порту в режиме записи/чтения массива данных. bool ibcExReadPort(unsigned short address, unsigned char *data, unsigned short size); bool ibcExWritePort(unsigned short address, unsigned char *data, unsigned short size); bool ibcExReadPortW(unsigned short address, unsigned short *data, unsigned short size); bool ibcExWritePortW(unsigned short address, unsigned short *data, unsigned short size); Параметры: 1. address – адрес порта шины ISA; 2. data – указатель на массив, записываемых в порт или считываемых с порта значений. 3. size – количество элементов массива Возвращаемый параметр: в случае успешного выполнения функция возвращает true. В противном случае – false. Причиной не успешного вызова может стать либо не правильно зарегистрированный интерфейс и/или контроллер либо плохая линия связи с контроллером. 3. Пример сборки шины и доступа к портам В данном примере подключим два устройства: первое на COM2 и второе к LAN. Скорость обмена по COM-порту 115200 кбит/с, адрес контроллера 0x05. IP контроллера подключенного к LAN равен 192.168.1.6. Диапазон адресов ввода/вывода обслуживаемый первым контроллером равен: 0x300..0x309 включительно. Диапазон адресов ввода/вывода обслуживаемый вторым контроллером: 0x310..0x319 включительно. Номер порта для UDP-сокета назначим, к примеру, равным 5100. После сборки шины произведем чтение с порта 0x300 и запись в порт 0x310. #define COM2 1 #define LOCAL_PORT 5100 void main(void) { unsigned long ComInterface, ComController; unsigned long LanInterface, LanController; unsigned short PortValue; // 1. Очистка реестров интерфейсов и контроллеров ibcClearControllerList(); ibcClearInterfaceList(); // 2. Регистрация интерфейсов ComInterface = ibcOpenInterface(COM2, 115200, NULL); LanInterface = ibcOpenLanInterface(); // 3. Регистрация контроллеров ComController = ibcOpenController(ComInterface, 0x05, 0x300, 0x309); LanController = ibcOpenController(LanInterface, 0xC0A80106, 0x310, 0x319); // 4. Номер UDP-порта ibcSetLocalPort(LOCAL_PORT); // 5. Сборка шины ibcControl(true); // 6. Доступ к портам ibcReadPortW(0x300, &PortValue); // Чтение с порта ibcWritePortW(0x310, PortValue); // Запись в порт // 7. Демонтаж шины ISA ibcControl(false); } Модуль разработан и изготовлен Компанией АКОН. Предлагаем к поставке модули АЦП, модули ЦАП, устройства ввода-вывода цифровой информации, модули нормирующих преобразователей с гальванической развязкой, модули для распределённых систем и другое оборудование. Украина, г. Киев, ул. Лебедева-Кумача 6, 48 тел.(8067) 442-33-89, (8044) 496-29-60 E-mail: sales@akon.com.ua Http: www.akon.com.ua ================================================================================