Документ взят из кэша поисковой машины. Адрес оригинального документа : http://vega.inp.nsk.su/vs56/vs56t.html
Дата изменения: Fri Dec 15 16:14:06 2000
Дата индексирования: Mon Oct 1 19:36:15 2012
Кодировка: koi8-r

Поисковые слова: optical telescope
VS56t

Краткое техническое описание системы
"VS-tandem/t 56"



Содержание


1. Введение
2. Технические характеристики системы "Тандем 56".
3. Описание контроллера VS56t.
   3.1. Описание телекамеры.
   3.2. Прошивка ПВМ.
      3.2.1. Прошивка VT56_512 .
      3.2.2. Прошивка VT56_576 .
4. Включение системы.
5. Описание программной поддержки системы.
   5.1. Описание портов контроллера.
   5.2. Рабочая область ПЗС матрицы.
   5.3 Программирования контроллера с использованием портов
      5.3.1 Програмирование входного LUT.
      5.3.2 Програмирование значений уровня белого (для АЦП).
      5.3.3 Переключение входного канала АЦП.
      5.3.4 Начало/Окончание ввода изображения в контроллер.
      5.3.5 Чтение/Запись изображения с видеопамяти.
      5.3.6 Загрузка прошивки в ПВМ
      5.3.7 Управление работой камеры.
   5.4 Работа с прерыванием по IRQ5
6 Литература.

1. Введение

Настоящее техническое описание является слегка переработанным и дополненым исходя из удобства пользования для нас, поэтому за оригинальным техническим описанием контроллера VS56 следует обращатся на сайт разработчика.

2. Технические характеристики системы "Тандем-56".

Система VS-tandem-56 (далее "Тандем 56") состоит из контроллера VS56t и CCD камеры VStTV на основе ПЗС SONY. Система предназначена для высококачественного ввода черно-белых изображений в ЭВМ типа IBM PC. "Тандем 56" создан на основе современной элементной базы с применением программируемых пользователем вентильных матриц.
Камера VStTV формирует видеосигнал, другие вспомогательные сигналы и имеет следующие технические параметры (данные по чуствительности взяты из описания ПЗС фирмы SONY):

чувствительный элемент
1/2" ПЗС матрица
кол.рабочих элементов ПЗС
741*576
размер чувствительной области
6.46мм*4.83мм
электронный затвор в диапазоне
1/50 - 1/10000 сек.
время накопления сигнала на ПЗС
до минуты и более
чувствительность при светосиле объектива F1.2
0.25 Lux(выдержка 1/50)
чувствительность при выдержке 4 сек.
10(-3)cтепени Lux
гамма коррекция 0.45 или 1
0.45 или 1
квантовая эффективность 30%
30%
отношение сигнал/шум при полной амплитуде сигнала
- 44.5 dB

Камера позволяет накапливать сигнал на ПЗС матрице. Время накопления сигнала - до минуты и более, что многократно повышает ее чувствительность. Необходимо учитывать, что накопление на ПЗС (без ее охлаждения) приводит к появлению отдельных точек, яркость которых отличается от окружающих. Для компенсации этого явления можно после ввода изображения произвести накопление изображения при закрытой крышке обьектива и затем вычесть из первого изображения второе.
Камера имеет автоматическую регулировку усиления (АРУ) (от 4 до 32dB), которое может быть отключено, что позволяет применять ее в измерительных системах.
Выходная телевизионная развертка чересстрочная, однако накопление изображения возможно, как 1 раз за полукадр, так и 1 раз за кадр, что фактически обеспечивает прогрессивную развертку.
Спектральная чувствительность камеры представлена на рис.1.



Контроллер VS56 обеспечивает оцифровку сигнала с камеры, управляет ее работой, показывает введенное изображение на телемониторе.
Блок-схема камеры и контроллера представлена на рис 2.
Камера и контроллер соединены кабельным жгутом.
Контроллер работает на тактовой частоте камеры, что обеспечивает очень высокое качество и точное соответствие оцифрованной картинки физическому растру ПЗС матрицы. Питание камеры производится от компьютера по кабельному жгуту.


Рис 2. Блок-схема камеры и контроллера

Система обеспечивает ввод изображения со следующими характеристиками:
-разрешение при вводе до 768*576;
-время ввода - 40 мс;
-время накопления сигнала от 1/10000 сек. до минуты;
-количество экранов при разрешении 512*512 - до 4, при разрешении 768*576 - 1;

-количество градаций уровня серого - 256;
-тактовая частота разложения - 14.1875 Мгц;
-входная и выходная таблица перекодировки (Look up table) ;
-электронная регулировка уровня белого;
-8-ми битный интерфейс с шиной ISA IBM PC;
-возможность вывода изображения на черно-белый и цветной RGB монитор.
Все функции контроллера изменяются с помощью его перепрограммирования. Причем часть функций может перепрограммироваться пользователем , а часть определяется типом прошивки программируемой вентильной матрицы (ПВМ). Разработчики поставляют с контроллером требуемые пользователю варианты прошивки ПВМ. Количество и типы прошивок определяются типом ПВМ, используемой в конкретном контроллере, и потребностями заказчика.
В настоящее время существуют 2 варианта поставки контроллера VS56 для системы "Тандем 56":

Таблица 1
Обозначение
Обьем памяти
Вывод на
монитор
Максимальный
формат
VS56/1
256K
-
512*512
VS56/2
1M
+
768*576

3. Описание контроллера VS56.

Основной элемент в контроллере - ПВМ, в которую после включения питания необходимо загрузить прошивку. Загрузка осуществляется через обращение к портам контроллера.
Видео сигнал после мультиплексора попадает на вход аналого-цифрового преобразователя (АЦП). АЦП имеет электронную регулировку уровня белого , что позволяет подстраиваться под входной видеосигнал. Пределы регулировки от 0в. до 1.5в. Электронная регулировка представляет собой 6-ти разрядный ЦАП, который можно программировать. Значения можно менять от 0 до 63.
После оцифровки данные попадают во входной LUT, расположенный в корпусе АЦП, с организацией 256*8. Далее данные записываются в память.
Во время отсутствия ввода изображения в память (при выключенном вводе, или во время гасящего импульса) возможен программный доступ к информации в памяти контроллера со стороны центрального процессора машины. Гасящий импульс возникает 1 раз в течении каждого полукадра (20мс) и длится 4мс.
Перед началом работы контроллер необходимо инициализировать. Инициализация должна включать в себя загрузку прошивки в ПВМ и программирование ПВМ и АЦП.

Единственное отличие контроллера VS56t от представленного в [1] состоит в том, что камера всегда подключена к каналу 1 АЦП

3.1. Описание телекамеры.

Телекамера создана на основе камеры фирмы Mintron MTV1802CB. Камера смонтирована в корпусе с резьбой CS для подсоединения объектива. С помощью переходника можно подсоединять объективы с резьбой С.

3.2. Прошивка ПВМ.

Прошивка определяет конкретные характеристики работы контроллера. Прошивки могут загружаться в контроллер в любой момент времени и любое число раз. Загрузка прошивки занимает около 80мс. Прошивки хранятся в файлах с расширением .SPE.
Необходимо знать, что никакие изменения в этих файлах недопустимы т.к. это может вывести контроллер из строя.
Все прошивки имеют следующие общие параметры:
-время ввода изображения в контроллер - 40мс;
-частота оцифровки 14.1875 Мгц;
-показ введенного изображения на телевизионном мониторе (для VS56/2 );
-возможность управлять накоплением на ПЗС.

3.2.1. Прошивка VT56_512 .

Прошивка VT56_512 предназначена для работы в системе "Тандем 56А" и обеспечивают следующие возможности:
-ввод изображения центральной области с разрешением 512*512 точек;
-количество страниц изображения:
4- для VS56/2;
1- для VS56/1.
Прошивка хранится в файле с именем VT56_512.SPE.
Прошивка VT56_512 использует адреса 0x300-0x31f.

3.2.2. Прошивка VT56_576 .

Прошивка VT56_576 предназначена для работы в системе "Тандем 56А" и обеспечивают следующие возможности:
-ввод изображения с разрешением 768*576 точек;
-количество страниц изображения:
1- для VS56/2.
Прошивка хранится в файле с именем VT56_576.SPE.
Прошивка VT56_576 использует адреса 0x300-0x31f.

4. Включение системы.

Контроллер VS56 вставляется в любое свободное гнездо ISA шины IBM PC. К разьемам расположенным на задней панели контроллера подключаются кабельные жгуты, которые является переходниками для соединения с телекамерой и телемонитором.

Внимание!
Перед подключением к ЭВМ монитора
корпуса ЭВМ и монитора необходимо
соединить общим проводом.

Внимание!
Соединение и разъединение разъемов на камере и контроллере VS56
производить только при выключенном питании

Потребление системы:
+5в - 0.5 А;
+12в - 150 мА.
Остальные замечания для подключения контроллера VS56 такие же как в [1].

5. Описание программной поддержки системы.

С точки зрения программиста контроллер представляет собой несколько внешних портов в области 0x300-0x31F или 0х320-0х33F, в зависимости от положения перемычки.
Все порты контроллера имеют байтовую организацию и пользователю необходимо осуществлять запись и чтение портов только байтным форматом.

5.1. Описание портов контроллера.

Порты по записи

0x300 или 0x320 - регистр данных
имеет 8 бит и позволяет записывать данные в экранную память конроллера на текущую строку. После каждой записи производится инкремент счетчика столбцов. После 512 обращений счетчик столбцов возвращается к 0-ому столбцу. Автоматического инкремента строк при этом не происходит. Подробнее о процедуре чтения/записи данных в экранную память см. раздел 4.6.2.

0x301 или 0х321 - регистр страниц
имеет 2 значащих бита, которые переключают дополнительные страницы экранной памяти. Регистр есть только в варианте VS56/2.

0x302 или 0x322 - регистр сброса счетчика строк
При записи любых данных в этот порт происходит обнуление счетчика строк и счетчика столбцов, после чего в случае чтения/записи в экранную память регистры данных будут адресоваться к 0-ому столбцу в 0-ой строке.

0x303 или 0x323 - регистр инкремента счетчика строк
При записи любых даных в этот порт производится инкремент счетчика строк и обнуление счетчика столбцов.

0x304 или 0x324 - регистр управления
В регистре 4 значащих бита:
0-ой бит - управление вводом изображения. При записи 1 производится ввод 1 кадра изображения;
1-ой бит - визуализация введенного изображения видеоЦАПом (для VS56/1 не работает).
2-ой бит - управление выдачей сигнала на DS2401 для чтения уникального серийного номера. При записи 0 на DS2401 выдается высокий уровень, а при записи 1 - низкий.
3-ий бит - непрерывный ввод изображения с визуализацией вводимого изображения видео-ЦАПом на ТВ-мониторе. Работает совместно с 0-вым битом (для VS56/1 не работает).

0x305 или 0x325 - регистр маски разрешения прерывания IRQ5
Имеет 6 значащих битов. При записи 1 в соответствующий бит контроллер начинает производить прерывание IRQ5 при соответствующих условиях. Возможно 6 источников прервания:
0-ой бит - не задействован
1-ый бит - не задействован
2-ый бит - не задействован
3-ый бит - не задействован
4-ый бит - кадровый импульс
5-ый бит - окончание ввода изображения
Запись любого значения в этот порт снимает сигнал "IRQ5" на шине компьютера. В случае возникновения прерывания пользователь должен прочитать 0х301 (0х321) порт для определения источника прерывания (если разрешено несколько источников).

0х306 или 0х326 - передача данных для управления камерой
- биты 0 и 1 используются для передачи данных.
0-ой бит этого порта - это линия данных,
1-й бит этого порта - это линия тактирования.
Данные, выставленные в 0-й бит, защелкиваются в приемном сдвиговом регистре управления камерой по положительному фронту на линии тактирования (бит1). При последовательной записи в камеру загружается информация о выдержке и т. д. Необходимо осуществить 8 последовательных циклов записей в этот порт. При этом биты загружаются в следующем порядке:
1 бит -управление экспозицией. Бит должен быть 1 в случае выдержки 1/50 сек и больше. 0 устанавливается в случае выдержек от 1/100сек до 1/10000сек.(см. Табл 2.).
2 бит-вывод сигнала "накопление" на камеру при формировании экспозиций длиннее 1/50 сек. Этот сигнал управляет накоплением на ПЗС матрице;
1 - обычный режим (для экспозиций 1/50 до 1/10000 сек.);
0 - производить накопление.
При бите равном 0 камера производит накопление изображения на ПЗС, а после посылки 1 выводится накопленная информация. Продолжительность сигнана 0 должна быть кратна продолжительности кадра (40 мс) для обеспечения одинаковой экспозиции на обеих полукадрах ПЗС.
3 бит - определяет режим ввода изображения камеры:
0 - пониженное разрешение по вертикали (режим FIELD);
1 - высокое разрешение по вертикали (режим FRAME).
4 бит - осуществляет выбор между режимами АРУ и ручной регулировкой усиления:
0 - ручная регулировка усиления;
1 - использование АРУ.
5 бит - осуществляет включение и выключение гамма-коррекции на камере.
0 - гамма-коррекция включена;
1 - гамма-коррекция выключена и камера работает с линейным выходом.
6-8 биты - выбор времени накопления:
6-8 биты выбор экспозиции согласно таблице :

8 бит
7 бит
6 бит
0 бит
Экспозиция
1
1
1
1
1/50 сек. и более
1
1
0
0
1/100 сек.
1
0
1
0
1/250 сек.
1
0
0
0
1/500 сек.
0
1
1
0
1/1000 сек.
0
1
0
0
1/2000 сек.
0
0
1
0
1/4000 сек.
0
0
0
0
1/10000 сек.


0х310 или 0х330 - регистр адреса входного LUT

0х311 или 0х331 - регистр данных входного LUT

0х312 или 0х332 - коммандный регистр АЦП

0х31a или 0х33a - регистр сброса ПВМ для перепрограмирования
При обращении в этот порт (запись любого значения по этому адресу) ПВМ переходит в режим очистки от старой прошивки. Этот режим продолжается около 400мкс.

0х318 или 0х338 - регистр установки ПВМ для перепрограмирования
После обращения в порт 0х31a (0х33a) через 400 мкс необходимо обратится в порт 0х318 (0х338) для перевода ПВМ в режим загрузки новой прошивки, которую можно начинать через 5 мкс после обращения в 0х318 (0х338)

0х31с или 0х33с - регистр записи данных в ПВМ при перепрограмировании
После обращения в порты 0х31a (0х33a) и 0х318 (0х338), выдержки необходимой паузы, в ПВМ можно начать загрузку новой прошивки. Это осуществляется записью в порт 0х31с (0х33с) данных из файла *.SPE
Данные располагаются в 0-м бите порта. Упаковка данных в файле *.SPE cделана таким образом, что при загрузке первым посылается младший бит байта , затем 1-ый бит, затем 2-ой и т. д. Всего необходимо последовательно загрузить 3853 байта (30824 бита), а затем загрузить еще 1 байт c содержанием 0хff.
Пользователю следует очень внимательно отнестись к разработке и отладке программы загрузки в ПВМ т.к. при ошибках в этой программе может произойти выход ПВМ из строя. Если после попытки загрузки прошивки в ПВМ пользователь видит, что контроллер неработает, необходимо сразу же выключить питание компьютера.


Порты по чтению

0х300 или 0х320 - регистр данных
имеет 8 бит и позволяет считывать данные из экранной памяти конроллера в компьютер. После каждого чтения производится инкремент счетчика столбцов. После 512 обращений счетчик столбцов возвращается к 0-ому столбцу. Автоматического инкремента строк при этом не происходит. Подробнее о процедуре чтения/записи данных в экранную память см. раздел 4.6.2.

0х301 или 0х321 - регистр состояния контроллера
Задействовано 8 бит:
0 бит- флаг кадрового импульса (КИ)
0-нет КИ
1-идет КИ
1 бит-номер полукадра (НПК)
0-идет четный полукадр
1-идет нечетный полукадр
2 бит- флаг кадрового гасящего импульса (КГИ)
0-идет КГИ
1-нет КГИ
3 бит- флаг процесса ввода изображения
0-ввода нет
1-идет ввод
Этот бит есть только в прошивке с разрешением 512*512. (в 768*576 отсутствует)

Временные соотношения некоторых сигналов представлены на рис 3.


Рис.3 Временные соотношения сигналов.

5.2. Рабочая область ПЗС матрицы.

При прошивке 512*512 контроллер вводит центральную часть изображения.



Рис.4 Расположение рабочей области при горизонтальном разрешении 768.

При прошивке 768*576 две самых верхних строки изображения - пустых, а в третьей информация занимает половину строки. Расположение рабочей области при горизонтальном разрешении 768 показано на рис.4.

5.3 Программирования контроллера с использованием портов

Програмирование контроллера с через обращения к портам контроллера поясняется рядом примеров. Кроме этого на дискетке поставляется исходный текст библиотеки VS56.LIB (файлы СOMMON56.C, INXIL56.C и ASM56.ASM).
Следует помнить, что при отключенной камере контроллер с прошивками для Тандема не работает.

5.3.1 Програмирование входного LUT

Необходимо произвести следующую последовательность действий:
a). ввести адрес в порт adc_adr_56;
б). ввести значение данных LUT в порт adc_lut_56;
в). повторить операции пунктов а-б для другого адреса LUT ( до 255 );
Пример на С ( LUT програмируется линейно):
int i;
for(i=0;i<256;i++)
{ outp(base_port_56+adc_adr_56,i);
outp(base_port_56+adc_lut_56,i);
}

5.3.2 Програмирование значений уровня белого (для АЦП).

Пример программы на С ( исходный текст функции setElRef56 библиотеки VS56.LIB ):
setElRef56(unsigned char high)
{ high &= 0x3f;
outp(base_port_56+adc_adr_56,0);
outp(base_port_56+adc_lut_56,0);
outp(base_port_56+adc_command_56,high<<2);
outp(base_port_56+adc_lut_56,0);
outp(base_port_56+adc_command_56,0);
outp(base_port_56+adc_adr_56,0);
}

5.3.3 Переключение входного канала АЦП.

Переключение канала производится засылкой следующих значений (HEX) в
порт adc_command_56 :
0xc - для канала 0;
0x5c - для канала 1;
0xсc - для канала 2;
0xfc - для канала 3;

5.3.4 Начало/окончание ввода изображения в контроллер.

Необходимо произвести следующую последовательность действий:
a). начать ввод:
- дождаться переключения номера полукадра с 0 в 1 (0-ой бит порта rs_read_56);
- вывести 1 в порт write_56;
б). прекратить ввод:
- дождаться переключения номера полукадра 2 раза;
- вывести 0 в порт write_56 ;
Пример на С:
inputFrame56()
{
waitSwitchNpk56();
outp(base_port_56+write_56,1);
waitSwitchNpk56();
waitSwitchNpk56();
outp(base_port_56+write_56,0);
return(0);
}
waitSwitchNpk56()
{
int a;
a=2 & inp(base_port_56+rs_read_56);
while(a == (2 & inp(base_port_56+rs_read_56)))
;
}

5.3.5 Чтение/запись изображения с видеопамяти.

Изображение хранится в видеопамяти контроллера и пользователь имеет доступ к ней через порты dan_56 (по записи) и dan_read_56 (по чтению). В ПВМ имеются раздельные счетчики строк и столбцов, которые перед началом обмена необходимо обнулить. Обнуление производиться записью в порт reset_line_56.
При чтении/записи регистров данных происходит автоматический инкремент счетчика столбцов. После считывания/записи 512 (или 768) байт необходимо инкрементировать счетчик строк, что производится записью в порт inc_line_56. Пример программы считывающей кадр в буфер представлен ниже:
unsigned char *buffer;
mov_buf()
{
int i,j;
outp(base_port_56+reset_line_56,0);
for(i=0;i<512;i++)
{
for(j=0;j<512;j++)
*(buffer+i*512L+j)=inp(base_port_56+dan_read_56);
outp(base_port_56+inc_line_56,0);
}
}

5.3.6 Загрузка прошивки в ПВМ

Пользователю следует очень внимательно отнестись к разработке и отладке программы загрузки в ПВМ т.к. при ошибках в этой программе может произойти выход ПВМ из строя. Если после попытки загрузки прошивки в ПВМ пользователь видит, что контроллер неработает, необходимо сразу же выключить питание компьютера.

Необходимо проихвести следующую последовательность действий:
а). Произвести сброс ПВМ для чего необходимо:
- произвести запись в порт xil_reset_56;
- выждать паузу не менее 5 мкс;
- проивести запись в порт xil_set_56;
- выждать паузу не менее 400мкс.
б). Загружать программу в ПВМ для чего необходимо последовательно производить запись битов из файла *.SPE в порт xil_dan_56. Загружаймый бит должен находится в 0-ом бите. Упаковка данных в файле *.SPE cделана таким образом, что при загрузке первым посылается младший бит байта , затем 1-ый бит, затем 2-ой и т. д. Всего необходимо последовательно загрузить 3853 байта (30824 бита), а затем загрузить еще 1 байт c содержанием 0хff. Ниже представленна программа для инициализации:

unsigned char buf_xil56[3853]; // буфер с содержимым файла *.SPE
initVs56(char *name)
{
int i;
reset_xil56();
for(i=0;i<3853;i++)
writeXilinx56(buf_xil56[i]);
writeXilinx56(0xff);
}
writeXilinx56(unsigned char var)
{
int i;
for(i=0;i<8;i++)
outp(base_port_56+xil_dan_56,var>>i);
}
reset_xil56()
{
outp(base_port_56+xil_reset_56,0);
pause_x(10);
outp(base_port_56+xil_set_56,0);
pause_x(10000);
}
pause_x(int i)
{
for(i=0;i<10000;i++)
{
i++;
i--;
}
}

5.3.7 Управление работой камеры

Добавление возможности управления камерой приводит к необходимости ее инициализации перед вводом первого изображения. Ниже представлены примеры поясняющие работу с камерой.

Установка режимов работы камеры.
При установке режимов работы камеры следует руководствоваться следующей таблицей:

Режим работы
Сигнал
"накопление"
(2-ой бит)
1-й бит
Экспозиция
(8-6 бит)
Выдержка 1/50 сек
1
1
см. Табл 2
Выдержка 1/100 сек -
1/10000 сек
1
0
см. Табл 2
Начало накопления
сигнала (выдержка более
1/50 сек.)
0
1
111
Окончание накопления
сигнала
1
1
111

Ниже представлен текст функции, осуществляющей установку режимов работы камеры (с комментариями).

void progKamera56(int fl_nak,int fl_AGC_in,int eksp, int fl_external,int fl_gamma,int fl_accum)
{
unsigned int rab,i,tmp,enb;
switch(eksp){
case 7:eksp=7;
fl_external=1;
break; //1/ 50
case 6:eksp=3;
fl_external=0;
break; //1/125
case 5:eksp=5;
fl_external=0;
break; //1/250
case 4:eksp=1;
fl_external=0;
break; //1/500
case 3:eksp=6;
fl_external=0;
break; //1/1000
case 2:eksp=2;
fl_external=0;
break; //1/2000
case 1:eksp=4;
fl_external=0;
break; //1/4000
case 0:eksp=0;
fl_external=0;
break; //1/10000
}
rab=(fl_external & 1)+((fl_accum & 1) << 1)+((fl_nak & 1) << 2)+
((fl_AGC_in & 1) << 3)+((fl_gamma & 1) << 4)+((eksp & 7) << 5);
for(i=0;i < 8;i++)
{ tmp=rab >> i;
outp(base_port_56+out_56,(tmp&1)+0);
outp(base_port_56+out_56,(tmp&1)+2);
outp(base_port_56+out_56,(tmp&1)+0);
}
}

Ввод изображения с накоплением более 1/50 сек. (работает только для камеры с накоплением)
Ниже представлен исходный текст функции, осуществляющей ввод изображения с накоплением более 1/50 сек. Пример дан для прошивки с разрешением 768*576.

int inputImgAcc(int kadr)
{
int i;
sinxroInt56_nakop_n();
progKamera56(1,fl_AGC_56,7,1,fl_gamma_56, 1); // предустановки
sinxroInt56_nakop_n();
progKamera56(1,fl_AGC_56,7,1,fl_gamma_56,0); // начать накопление на матрице
for(i=0;i<kadr;i++) // для разрешения 768*576
sinxroInt56_nakop_n();
progKamera56(1,fl_AGC_56,7,1,fl_gamma_56,1);
outp(base_port_56+write_56,3);
sinxroInt56_nakop();
sinxroInt56_nakop();
outp(base_port_56+write_56,0);
return(0);
}

int sinxroInt56_nakop()
{
int a;
do a=(inp(base_port_56+rs_read_56)) & 0x2; while(a==0);
do a=(inp(base_port_56+rs_read_56)) & 0x2; while(a!=0);
return(0);
}

int sinxroInt56_nakop_n()
{
nt a;
do a=(inp(base_port_56+rs_read_56)) & 0x2; while(a!=0);
do a=(inp(base_port_56+rs_read_56)) & 0x2; while(a==0);
return(0);
}

5.4 Работа с прерыванием IRQ5

При работе контороллер может вызывать прерывание IRQ5 по условиям определяемым пользователем. Для работы с прерыванием необходимо выполнять следующие правила:
- для разрешения прерывания необходимо записать в порт mask_irq5_56 маску разрешающую прерывания по отдельным каналам (см. описание порта);
- для разрешения обработки прерывания контроллером машины необходимо записать маску разрешающую прерывание IRQ5 (в порт 0х21);
- при обработке прерывания для разрешения следующего прерывания необходимо еще раз записать маску в порт mask_irq5_56 и записать 0х20 в порт 0х20;
- для определения, какой из нескольких разрешенных источников прерывания вызвал его, необходимо прочитать содержимое порта rs_read_56.

6 Литература

[1] "Техническое Описание VS56" Москва Видеоскан. 1998 г.


Техническое описание системы "VS-tandem/t-56" 10 Апреля, 1999