Модуль расширения под 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;

Главная

Сайт управляется системой uCoz