ЦАП - Акон

advertisement
ТЕХНИЧЕСКОЕ ОПИСАНИЕ
МОДУЛЯ WAD-DAC16-16 (WAD-DAC16-16H)
(16-КАНАЛЬНОГО 16-РАЗРЯДНОГО ЦИФРО - АНАЛОГОВОГО ПРЕОБРАЗОВАТЕЛЯ
С БУФЕРНОЙ ПАМЯТЬЮ
И
ГАЛЬВАНИЧЕСКОЙ
ИЗОЛЯЦИЕЙ
КАНАЛОВ
ОТ ШИНЫ ПИТАНИЯ КОМПЬЮТЕРА, ПРЕДНАЗНАЧЕНОГО ДЛЯ РАБОТЫ В ПЭВМ ТИПА
IBM PC/AT на шине ISA, либо как выносная конфигурация с
интерфейсом USB, либо RS-232, либо RS-485, либо LAN 10Мб.)
В этом документе содержится описание и порядок программирования
модуля цифро-аналогового
преобразователя (в дальнейшем ЦАП). А
также, приводится документ по использованию выносной модификации
модуля.
!!!!!!!!!ВНИМАНИЕ!!! ПРОЧТИТЕ ОБЯЗАТЕЛЬНО!!!!!!!!!!!!
Данный файл документации и комплект демонстрационного
программного обеспечения поставляются в
ПОЛНОМ
объеме
НЕЗАВИСИМО от заказанной конфигурации платы. Конкретная конфигурация по прайсу зависит от букв, стоящих после полного названия
модуля (см. перечисление функций конкретной конфигурации в прайс
-листе). В случае обнаружения на приобретенном модуле нехватки
какой-либо нужной Вам функции, упоминание о которой есть в этом
документе и демо-программах (а при заказе Вы остановились на конфигурации, не поддерживающую эту функцию), обращайтесь к нам за
доработкой.
Модуль поддерживает работу ТОЛЬКО С ОДНИМ выбранным при заказе
видом интерфейса, и если не оговаривается иное, то по умолчанию это
шина ISA (встраиваемая в компьютер плата). Перед покупкой не выносной
версии устройства - убедитесь, что в Вашем компьютере есть ISA-слот.
Демо-программы, поставляемые бесплатно в комплекте служат для
ДЕМОнстрации работоспособности модуля и демонстрации порядка
программирования. Они НЕ предназначены для решения конкретной задачи заказчика.
СОДЕРЖАНИЕ.
1. Технические характеристики модуля.
1.1. Комплект поставки.
2. Конструктивные характеристики модуля.
3. Функциональная схема ЦАП
4. Принцип работы модуля.
5. Работа интерфейса.
5.1. Таблица соответствия адресов, используемых при
обращении к плате и функций, выполняемых устройством.
5.2. Программирование таймера.
5.3. Предустановка каналов передачи.
5.4. Порядок программирования платы.
5.5. Примеры программирования ЦАП на TurboPascal.
ПРИЛОЖЕНИЕ: РАСПРЕДЕЛЁННАЯ ШИНА ISA. Концепция построения и руководство по
программированию
1. Технические характеристики модуля.
Число выходных каналов ...................... 16
Число разрядов входного кода ................ 16 двоичных разрядов
Вид входного кода ........................... дополняющий двоичный
код
Время преобразования ........................ 10 мкс на 1 канал
Время установления выходного напряжения при
изменении кода на 1МР до точности 0.0015% ... 1 мкс
Cкорость изменения выходного напряжения ..... 0.6 В/мкс (7 В/мкс в
одноканальном модуле)
Дифференциальная нелинейность ............... 0.002
Интегральная нелинейность .................. 0.004
Погрешность усиления ........................ +/- 0.007
Погрешность установки нуля .................. +/- 0.005
Минимальный интервал изменения выходного
напряжения при использовании :
не более 1-го канала ..................... 10 мкс
8-ми каналов .................... 80 мкс
16-ти каналов ................... 160 мкс
Общее время установления для перепада менее
5 Вольт при использовании:
не более 1-го канала ..................... 10 мкс
8-ми каналов .................... 80 мкс
16-ти каналов ................... 160 мкс
Общее время установления для перепада
20 Вольт при использовании:
1-го канала ..................... 10 мкс
4-х каналов ..................... 40 мкс
8-ми каналов .................... 320 мкс
16-ти каналов ................... 640 мкс
Диапазон выходного напряжения .............. +/- 0-10.24 В (*)
Диапазон выходных токов ..................... +/- 0-20 мА (*)
Величина единицы младшего разряда при работе
в диапазонe -10.24В - +10.24В ............... 312.5 мкВ
Действующее значение напряжения помех
и шумов на выходе каналов, не более ......... 1 мВ
Максимальный выходной ток каналов ........... 20 мА
Порог срабатывания схемы ограничения тока ... 23-35 мА
Емкость буферного ОЗУ ....................... 32 К
Число точек в периоде формируемого сигнала .. 1,16,64,256,1024
Выходное сопротивление,не более.............. 0.15 Ом
Допустимая емкость нагрузки,не менее......... 300 пФ
Пробивное напряжение изоляции ............... 4 кВ
Температурный дрейф выходного напряжения .... 0.0004/С
Ток,потребляемый от источника +5В ........... 200 мА
Ток,потребляемый от источника +12В
в режиме холостого хода.................... 200 мА
в режиме максимально нагруженных выходов .. 400 мА
Максимальная частота переменного напряжения,
формируемого платой (форма прямоугольная)
для 1-го канала ............................. 50 кГц
для 16-ти каналов ........................... 3.125 кГц
Линии прерывания ............................ 5,10,11,12
Базовый адрес платы ......................... 3х0,где х-0,1,2,...,f.
Габариты модуля ............................. 180х105х15 мм
Используемая шина ……………………………………………………………….. ISA
Используемый интерфейс
в выносной конфигурации “BOX”………………………….. USB, либо RS-232,
либо RS-485,LAN10Mb
Габариты выносной модификации “BOX” …………………. 220x220x60 мм
Питание выносной модификации “BOX” ………… +5В, +12В (от
компьютера)
* - Возможен или выход по напряжению или по току; выходные вели-
чины определяются требованиями заказчика. Часть каналов
гут быть токовыми, часть потенциальными.
мо-
1.1. Комплект поставки.
В базовый (по умолчанию) комплект поставки входит:
1) Модуль WAD-DAC16-16 (WAD-DAC16-16H) .................. 1 шт.
2) Ответная часть разьема 37-pin ........................ 1 шт.
3) Диск с техническим описанием и ПО ................. 1 шт.
ДОПОЛНЯЮЩИЙ КОД
7fff
.
.
0000
ffff
.
.
8000
( Для ЦАП )
-+10.24B (+5.12В)
. .
. .
- 0 B
- -0.3125mB (-0.1562мВ)
. .
. .
- -10.24B (-5.12В)
2. Конструктивные характеристики модуля.
2.1. Расположение разьемов и переключателей, установленных на плате.
J6
X1
J7
J5
J1-J4
1
1
РАЗЪЕМ Х1
Предназначен для снятия сигналов с выходов ЦАПа.
Ниже показан вид на соединитель (снаружи), установленный на плате. Если на плате установлен разъем
'папа', маркировка на разъеме совпадает с рисунком,
если 'мама' - доверять рисунку.
1
19
+---------------------------------------+
¦ . . . . . . . . . . . . . . . . . . . ¦
ISA
¦ . . . . . . . . . . . . . . . . . . ¦
===\-------------------------------------/=================
20
37
+------------------+---------------------------+
¦ номер контакта ¦
назначение
¦
+------------------+---------------------------+
¦
1
¦
выход канала 0
¦
¦
2
¦
выход канала 1
¦
¦
3
¦
выход канала 2
¦
¦
4
¦
выход канала 3
¦
¦
5
¦
выход канала 4
¦
¦
6
¦
выход канала 5
¦
¦
7
¦
выход канала 6
¦
¦
8
¦
выход канала 7
¦
¦
9
¦
выход канала 8
¦
¦
10
¦
выход канала 9
¦
¦
11
¦
выход канала 10
¦
¦
12
¦
выход канала 11
¦
¦
13
¦
выход канала 12
¦
¦
14
¦
выход канала 13
¦
¦
15
¦
выход канала 14
¦
¦
16
¦
выход канала 15
¦
¦
17
¦
+12В
¦
¦
18
¦
общий провод
¦
¦
19
¦
-12В
¦
¦
20
¦
общий провод
¦
¦
.
¦
...
¦
¦
.
¦
...
¦
¦
.
¦
...
¦
¦
35
¦
общий провод
¦
¦
36
¦
+5В
¦
¦
37
¦
общий провод
¦
+------------------+---------------------------+
-12В
общий
+12В
канал 15
канал 14
канал 13
канал 12
канал 11
канал 10
канал 9
канал 8
канал 7
канал 6
канал 5
канал 4
канал 3
канал 2
канал 1
канал 0
+-----------+
¦19 .
¦
¦18 .
.37 ¦
¦17 .
.36 ¦
¦16 .
.35 ¦
¦15 .
.34 ¦
¦14 .
.33 ¦
¦13 .
.32 ¦
¦12 .
.31 ¦
¦11 .
.30 ¦
¦10 .
.29 ¦
¦ 9 .
.28 ¦
¦ 8 .
.27 ¦
¦ 7 .
.26 ¦
¦ 6 .
.25 ¦
¦ 5 .
.24 ¦
¦ 4 .
.23 ¦
¦ 3 .
.22 ¦
¦ 2 .
.21 ¦
¦
.20 ¦
¦ 1 .
¦
+-----------+
общий
+5В
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
общий
ДЖАМПЕРЫ (ПЕРЕКЛЮЧАТЕЛИ) J1-J4
Джамперы (переключатели) предназначены для установки базо-
вого адреса устройства;
Данные установки определяются следующим положением джамперов:
1 2 3 4
+-+-+-+-+------------------------------+------------------+
¦0¦0¦0¦0¦¦
¦Положение джампера¦
¦0¦0¦0¦0¦¦
Наименование ключей
+--------+---------+
+-+-+-+-+¦
¦Замкнут ¦ Разомкн.¦
¦ ¦ ¦ ¦ +-----------------------------+--------+---------+
¦ ¦ ¦ +-+Сравнение с линией адреса A07¦ лог.0 ¦ лог.1 ¦
¦ ¦ +-+-+Сравнение с линией адреса A06¦ лог.0 ¦ лог.1 ¦
¦ +-+-+-+Сравнение с линией адреса A05¦ лог.0 ¦ лог.1 ¦
+-+-+-+-+Сравнение с линией адреса A04¦ лог.0 ¦ лог.1 ¦
¦ ¦ ¦ ¦ +-----------------------------+--------+---------+
++-+-+-+-+-------------------+
¦Р Р Р Р ¦ включен адрес 300 ¦
¦З Р Р Р ¦ включен адрес 310 ¦
¦Р З З Р ¦ включен адрес 360 ¦
¦З З З Р ¦ включен адрес 370 ¦
¦Р Р З З ¦ включен адрес 3с0 ¦
+--------+-------------------+
ДЖАМПЕРЫ (ПЕРЕКЛЮЧАТЕЛИ) J5,J6
Джамперы (переключатели) предназначены для установки числа
сканируемых каналов; положение замкнут (З) или разомкнут (Р)
определяется из таблицы ниже:
J5 J6
Р
Р - 16 каналов
Р
З - 8 каналов
З
З - 4 канала
ДЖАМПЕРЫ (ПЕРЕКЛЮЧАТЕЛИ) J7
Джамперы (переключатели) предназначены для
объединения
(замыкания) общего провода ЦАП и общего провода компьютера
(устранение гальванической развязки).
3. Функциональная схема АЦП.
+--+
+---+
¦ +-->+K0 +---->вых 0
+---+ ¦ ¦
+---+
¦
¦ ¦ +>
.
.->
¦ЦАП+->¦M +>
.
.->
¦
¦ ¦ +>
.
.->
+--+ ¦ ¦
+---+
¦
¦ +-->+K15+---->вых 15
-12 +12 +5
¦
+-+
+---+
 

+==========+
++-+---++
+----------------------+
¦ ИПН ¦
¦
БР
¦
+---+---+
++--+--+--+--+--+--+--++

C D L E A A A A
¦вкл./выкл. ¦L ¦A ¦O ¦N ¦D ¦D ¦D ¦D
¦
¦K ¦T ¦A ¦ ¦R ¦R ¦R ¦R
¦
¦ ¦A ¦D ¦ ¦0 ¦1 ¦2 ¦3
+-----+------------+--+--+--+--+--+--+--+--------+
¦
и н т е р ф е й с
¦
+---------------+---------------+----------------+
¦ ............. ¦


IBM PC/AT
ЦАП
ИПН
- микросхема цифроаналогового преобразователя.
- импульсный преобразователь напряжения. Предназначен для
обеспечения стабилизированным питанием аналоговой части ЦАП и получения гальванической развязки выходных каналов от шины компьютера.
БР
- блоки развязок. Служат для передачи сигналов управления и обеспечения гальванической развязки.
М
- мультиплексор.
К0..К15- каналы с 0-го по 15-тый.
4. Принцип работы модуля.
Модуль построен по принципу последовательной передачи
данных по одному каналу в гальванически изолированную часть
схемы, в которой установлен цифроаналоговый преобразователь,
мультиплексор и буферные усилители. Передача информации осуществляется путем загрузки 16-ти разрядов данных в сдвиговый регистр и вывода их в последовательном виде через
гальваническую развязку. Параллельно в гальванически развязанную часть схемы передается адрес канала, которому адресованы данные. Опрос каналов происходит поочередно, с 0-го по
15-тый. Каждый канал усиления представляет собой устройство
выборки-хранения (УВХ). На время установления конкретного
канала мультиплексор подключает выход микросхемы ЦАПа к нужному каналу (УВХ), канал устанавливается на заданное значение напряжения, затем мультиплексор переключает выход ЦАПа к
следующему каналу, а предыдущий хранит значение последующие
150 мкс (время,необходимое для установления остальных 15-ти
каналов). Все это происходит в режиме чтения ОЗУ платы.
В гальванически развязанныю часть передаются сигналы
тактовой частоты, данные, сигнал синхронизации приема данных для микросхемы ЦАПа и сигнал разрешения для мультиплексора.
Модуль позволяет выбирать число точек в периоде воспроизводимого сигнала: 1, 16, 64, 256, 1024. Режим 'одна
точка' служит для формирования постоянных напряжений. Установленное на плате ОЗУ емкостью 32К разбито на шестнадцать
равных подобластей по 2К (1К слово), которые называются
БАНКАМИ ДАННЫХ. Каждый из этих банков можно программировать
в произвольном порядке. Перед программированием ОЗУ необходимо включить режим записи,
запрограммировав
РЕГИСТР
СТАТУСА. Программирование банка заключается в предварительной установке в РЕГИСТРЕ РЕЖИМА номера банка, а затем
пословным обращением банк заполняется данными. При этом число точек, установленное в регистре статуса должно быть не
меньше числа программируемых значений. Если предполагается
часть каналов использовать для формирования переменного сигнала, а часть - постоянного, необходимо записать постоянное
значение столько-же раз, сколько точек в формируемом переменном сигнале. В случае использования меньшего числа каналов, например восьми, данные из девятого банка приходят первому каналу и т.д., если используется четыре канала, первому каналу приходят дополнительно данные пятого, девятого и
тринадцатого каналов. Поэтому при меньшем числе каналов 'освободившиеся' банки данных также работают на задействованные каналы. Однако в этом случае необходимо учитывать порядок поступления данных к каждому каналу, следовательно, сфор-
мированные данные для конкретного канала обьемом 2К слова
(случай 8-ми канального использования) надо разделить на два
массива (в первом- все нечетные значения, во втором все четные) и раздельно записать их в соответствующие банки.
5. Работа интерфейса.
При обращении к плате ЦАП происходит дешифрация адреса.
Для адресации модуля используются десять младших разрядов
шины адреса компьютера. Для работы ЦАП необходимо адресное
пространство размером в 16 адресов. ЦАП может работать со
следующими диапазонами адресов:
300h...30fh
...
...
3e0h...3efh
3f0h...3ffh
Это можно обозначить как 3x0...3xf, где x=0,1,..e,f.
Начальный адрес каждого поддиапазона называется базовым адресом. Выбор поддиапазона осуществляется с помощью четырех
джамперов (JP1-4). Так, для установки базового адреса 300h,
необходимо установить джампера JP1 N:1-4 в разомкнутое состояние. Выбор функции ЦАП, выполняемой при обращении к плате, осуществляется путем дешифрации младших разрядов адреса
A0...A3.
5.1. Таблица соответствия адресов и функций, выполняемых устройством.
+-------+-----------------------------------------------------------+
¦ адрес ¦
Наименование команд и функции устройства
¦
¦ (h) ¦
¦
+-------+-----------------------------------------------------------+
¦ 3х1 ¦ Регистр статуса. Назначение разрядов данных:
¦
¦
¦
D0 = 1/0 - аналоговое питание включить/выключить
¦
¦
¦
D1 = 1/0 - чтение/запись ОЗУ
¦
+-------+-----------------------------------------------------------+
¦ 3х3 ¦ Регистр режима
¦
¦
¦ Соответствие записываемых данных в регистр режима
¦
¦
¦ их функциональному назначению:
¦
¦
¦
D7 D6 D5 D4 D3 D2 D1 D0
¦
¦
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
¦
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ L--> Адрес
¦
¦
¦
¦ ¦ ¦ ¦ ¦ ¦ L-----> программируемого
¦
¦
¦
¦ ¦ ¦ ¦ ¦ L-------->
¦
¦
¦
¦ ¦ ¦ ¦ L-----------> канала
¦
¦
¦
¦ ¦ ¦ ¦
¦
¦
¦
¦ ¦ ¦ ¦
0000 - 1
точка
¦
¦
¦
¦ ¦ ¦ L--------------> Число
0001 - 16
точек
¦
¦
¦
¦ ¦ L-----------------> точек
0010 - 64
точки
¦
¦
¦
¦ L--------------------> в
0100 - 256 точек
¦
¦
¦
L-----------------------> периоде 1000 - 1024 точки
¦
+-------+-----------------------------------------------------------+
¦ 3x4 ¦ Порт записи значений в ОЗУ (в дополняющем коде !)
¦
+-------+-----------------------------------------------------------+
Примечание: Запись в ОЗУ производится
пословно, остальные команды байтовые.
5.4. Порядок программирования платы.
1. Включить аналоговое питание. Сделать задержку 100-200 мс.
2. Включить режим записи.
3. Установить номер программируемого канала (номер банка) и число точек в периоде.
4. Произвести запись информации в банк данных путем
последовательной записи 16-ти разрядных данных.
5. Если необходимо использовать другие каналы (банки
данных), повторить П.3 и П.4
6. Установить номер программируемого канала нулевым (если
режим чтения должен начаться с нулевого канала) или другим, если этот канал должен обновлятся первым - сделать
программирование номера канала необходимо для сброса
счетчика адреса ОЗУ).
8. Включить режим чтения ОЗУ.
Во время записи новых данных выходные напряжения каналов сохраняют прежние значения.
После выключения аналогового питания данные о формируемых сигналах сохраняются (в режиме чтения из ОЗУ), поэтому достаточно включить питание и через 0.04 секунды ЦАП начнет формировать прежние сигналы.
Программировать каналы можно при выключенном
говом питании.
анало-
5.5. Примеры программирования ЦАП на TurboPascal.
ПРИМЕР ПРОГРАММИРОВАНИЯ МОДУЛЯ ДЛЯ ФОРМИРОВАНИЯ
ПЕРЕМЕННОГО СИГНАЛА ПО ОДНОМУ (НУЛЕВОМУ) КАНАЛУ
uses Crt;
begin
port[$301]:=$01;
Delay(200);
{ 301-режим, D0-питание вкл.-1, D1-чтение-1,запись-0}
{ 303-рег.реж.D0-D3-N канала,D4-D7-N точек }
{ 304-запись в ОЗУ }
port[$303]:=$10;
portw[$304]:=$0000;
portw[$304]:=$1000;
portw[$304]:=$2000;
portw[$304]:=$3000;
portw[$304]:=$4000;
portw[$304]:=$5000;
portw[$304]:=$6000;
portw[$304]:=$7000;
portw[$304]:=$8000;
portw[$304]:=$9000;
portw[$304]:=$a000;
portw[$304]:=$b000;
portw[$304]:=$c000;
portw[$304]:=$d000;
portw[$304]:=$e000;
portw[$304]:=$f000;
{ 301-режим, D0-питание вкл.-1, D1-чтение-1,запись-0}
{ 303-рег.реж.D0-D3-N канала,D4-D7-N точек }
{ 304-запись в ОЗУ }
port[$301]:=$01;
port[$303]:=$10;
port[$301]:=$03;
end.
РАСПРЕДЕЛЁННАЯ
ШИНА ISA
Концепция построения и
руководство по
программированию
(API Isabox.dll)
2006
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ................................................................... 12
1. КОНЦЕПЦИЯ ПОСТРОЕНИЯ ШИНЫ ............................................... 12
2. ФУНКЦИИ ISABOX.DLL ...................................................... 14
2.1. ФУНКЦИИ РЕГИСТРАЦИИ И СБОРКИ ................................................ 15
2.2. СЕРВИСНЫЕ ФУНКЦИИ ......................................................... 16
2.3. ФУНКЦИИ ДОСТУПА К ПОРТАМ ШИНЫ ISA ........................................... 17
3. ПРИМЕР СБОРКИ ШИНЫ И ДОСТУПА К ПОРТАМ ................................... 19
Введение
С развитием вычислительной техники и постоянного роста потребностей в
высокоскоростных
устройствах
производители
персональных
компьютеров
отказываются от таких периферийных узлов как шина ISA и последовательных портов
RS-232, LPT. По этой причине приходится снимать с производства проверенное
временем не дорогое, но надежное оборудование, использующее эти интерфейсы.
Стоимость PCI –плат по сравнению с платами на ISA выше в несколько раз, но проблема
заключается ещё и в том, что не всегда нужна высокая производительность PCI –плат.
Компания «АКОН» предлагает альтернативный вариант шины ISA, построенной на
контроллерах ISA-BOX. Это внешняя распределенная шина, которая состоит из одного
или нескольких контроллеров в зависимости от задач, которые управляют
подключенными к ним платами ISA. Программное обеспечение верхнего уровня
представляет набор внешних контроллеров как единое целое, т.е. как одну шину.
Собранная таким образом внешняя шина совместима с платами всех производителей. К
особенностям такого решения можно отнести отсутствие отработки прерываний и
каналов прямого доступа к памяти. К преимуществам то, что шина собрана на внешних
модулях (при этом не нужно открывать корпус компьютера) и то, что её можно собирать
даже в том случае, если на компьютере есть слоты ISA, но в недостаточном количестве.
1. Концепция построения шины
Узловые контроллеры ISA-BOX могут подключаться к таким интерфейсам как RS232, 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);
}
Модуль разработан и изготовлен Компанией АКОН.
Предлагаем к поставке модули АЦП, модули ЦАП,
устройства ввода-вывода цифровой информации,
модули нормирующих преобразователей с гальванической развязкой, модули
для распределённых систем и другое оборудование.
Download