Модуль расширения под LPT-порт
Предназначен для использования в системах управления и контроля построенных
на базе компьютеров, совместимых с IBM PC. Имеет 64 входа и 64 выхода.
Модуль
расширения выполнен в виде регистрового устройства сопряжения с ПЭВМ посредством
параллельного интерфейса - LPT порта.
Структурная схема модуля представлена
на Рис.1.
Рис.
1. Структурная схема модуля расширения.
Модуль
расширения имеет конфигурационный ресурс, с помощью которого обеспечи-вается
установка режимов функционирования (на схеме "RG конфигу-рации"), адресуемый
массив памяти, в который должна заноситься информация, формирующая выходные
сигналы (на схеме "Буфер выходных сигналов"), и массив адресуемых ячеек, в
которых должна находиться информация о состоянии входов (на схеме "Буфер входных
сигналов").
Обращение к вышеназванным ресурсам осуществляется посредством
записи их адреса в регистр (на схеме "RG адреса"), младшие 4-е разряда которого
заводятся на дешифратор адреса внутри зоны выходов или входов (на схеме "DC
адреса"), а старшие 4-е разряда используются для определения типа ресурса.
Назначение разрядов адресного регистра приведено на Рис.2.
Разряд |
Назначение
|
Активный уровень
|
А7
|
обращение к регистру конфигурации |
0
|
А6
|
резерв | |
А5
|
обращение к зоне выходов |
0
|
А4
|
резерв | |
А3
|
Адрес в зоне управления или индикации | |
А2
|
||
А1
|
||
А0
|
Рис.2. Назначение разрядов адресного регистра.
Обращение к зоне входов осуществляется при А7=1 и А5=1.
На Рис.3. приведено назначение разрядов регистра конфигурации модуля.
Разряд |
Назначение
|
Активный уровень
|
D3
|
Задание режима функционального контроля |
0
|
D2
|
Программный сброс |
0
|
D1
|
Разрешение чтения регистра адреса (При FK=0) |
1
|
D0
|
Переход в режим обмена по EPP-порту |
1
|
Рис.3. Назначение разрядов регистра конфигурации.
Программа, работающая с модулем, в первую очередь должна обеспечить исполнение протокола обмена модуля с ПЭВМ, изображенного на Рис.4.
Запись данных в модуль
Чтение данных из модуля
Рис.4. Протокол
обмена ПЭВМ с модулем расширения
Обмен информацией в режиме EPP соответствует протоколу на режим ЕРР.
При
записи данных в модуль в режиме SPP программа должна записать адрес ресурса, по
которому предполагается обращение, в регистр адреса модуля и следом записать
байт данных в выбранный записанным адресом ресурс.
На Рис.5. представлен цикл
записи адреса, который должен формироваться программно на линиях LPT- порта в
режиме SPP.
Рис.5. Цикл записи
адреса.
В
данном цикле программа должна вырабатывать сигнал разрешения записи - Write
(Write=0 - цикл записи, Write=1 - цикл чтения) и сигнал AS - сигнал
стробирования выставленных на шину АD[7..0] данных, являющихся в данном случае
адресом ресурса модуля.
Здесь и далее, в ответ на выставленные программой
сигналы AS или DS (см. ниже) модуль, в случае готовности к приему или выдачи
информации, должен вырабатывать сигнал Wait.
На Рис.5. цифрами обозначены
следующие периоды активности программы:
1. Анализ состояния линии Wait (Если
Wait=0 исполнить "2", иначе выдать сообщение об ошибке квитирования);
2.
Установка Write в 0;
3. Установка на шину AD[7..0] записываемых данных;
4.
Установка в 0 линии AS;
5. Анализ состояния линии Wait (Если Wait=1 исполнить
"6", иначе выдать сообщение об ошибке квитирования);
6. Установка в 1 линии
AS;
7. Установка Write в 1;
8. Снятие с шины AD[7..0] записываемых данных
(не обязательно).
На Рис.6. представлен цикл записи данных, который должна формировать программа на линиях LPT- порта ПЭВМ.
Рис.6. Цикл записи данных
На
Рис.6. цифрами обозначены следующие периоды активности программы:
1. Анализ
состояния линии Wait (Если Wait=0 исполнить "2", иначе выдать сообщение об
ошибке квитирования);
2. Установка Write в 0;
3. Установка на шину
AD[7..0] записываемых данных;
4. Установка в 0 линии DS;
5. Анализ
состояния линии Wait (Если Wait=1 исполнить "6", иначе выдать сообщение об
ошибке квитирования);
6. Установка в 1 линии DS;
7. Установка Write в
1;
8. Снятие с шины AD[7..0] записываемых данных (не обязательно).
При
чтении данных из модуля в режиме SPP программа должна записать адрес ресурса, по
которому предполагается обращение, в регистр адреса модуля и следом считать байт
данных из выбранного записанным адресом ресурса.
На Рис.7. представлен цикл
чтения данных, формируемый программно на линиях LPT- порта в режиме
SPP.
Рис.7. Цикл чтения данных
На
Рис.11. цифрами обозначены следующие периоды активности программы:
1. Анализ
состояния линии Wait (Если Wait=0 исполнить "2", иначе выдать сообщение об
ошибке квитирования);
2. Установка Write в 1;
3. Установка в 0 линии
DS;
4. Анализ состояния линии Wait (Если Wait=1 исполнить "5", иначе выдать
сообщение об ошибке квитирования);
5. Чтение младшего нибла принимаемого
байта с шины DI[3..0];
6. Установка в 1 линии DS;
7. Анализ состояния
линии Wait (Если Wait=0 исполнить "8", иначе выдать сообщение об ошибке
квитирования);
8. Установка в 0 линии АS;
9. Анализ состояния линии Wait
(Если Wait=1 исполнить "10", иначе выдать сообщение об ошибке
квитирования);
10. Чтение старшего нибла принимаемого байта с шины
DI[3..0];
11. Установка в 1 линии АS;
12. Установка Write в
0;