
курсовой проект / СПЕЦИАЛЬНЫЕ ЭЛЕКТРОМАГНИТНЫЕ РЕЛЕ / ГЛАВА3
.DOC3.Разработка устройств сопряжения для Centronics
3.1 Основные принципы проектирования аппаратуры для сопряжения с Centronics
Основным достоинством интерфеиса Centronics является его стандартность - он есть на каждом компьютере и на всех компьютерах работает одинаково (правда, с разной скоростью). Для подключения внешнего устройства к параллельному порту не требуется открывать системный блок компьютера, что для многих пользователей может быть проблемой. Надо только подсоеденить кабель к разъему на задней стенке комптютера.
Можно также отметить такое достоинство интерфеиса Centronics как простота его программирования на любом уровне. В большенстве языках программирования имеются процедуры взаимодействия с принтером, которые легко использовать и для программирования нестандартного устройства. А так как с точки зренияпрограмно доступного регистра, невызывает затруднений и написание программ нижнего уровня.
3.2 Подключение простейших нестандартных устройств.
Интерфейс Centronics и, соответственно, параллельный порт персонального компьютера ориентированные на подключение принтера. Подтверждение этому является и название сигналов интерфейса - AUTO FD -автоматический перевод бумаги PE конец бумаги и т. д. Однако при разработке УС эти сигналы могут быть использованы произвольно.
Все сигналы, которые были перечислены в главе 1 можно разделить на четыре группы:
1 - восмиразрядная шина данных длы записи из компьютера (сигналы D0...D7)
2 - четырехразрядная шина управления для для записи из компьютера ( сигналы -STROBE, -AUTO FD, -INIT и SLCT IN);
3 - пятиразрядная шина состояния для чтения в компьютер ()
4 - шина “земли”.
Все сигналы програмно доступты, что позволяет реализовать произвольные протоколы информационного обмена в рамках имеючегося их набара и быстродействия компьютера.
Шина данных является однонаправленной, что позволяет ее использование только на выход, для ввода данных необходимо использовать из пятиразрядной шины состояния.
Рапсмотрим слеующую задачу. Необходимо разработать устройство “набор лампочек и кнопочек”, содержащее переключатели и светодиоды. В зависимости от положения переключателей по некоторому алгоритму должна загораться светодиоды,
На рисунке 3.1 представлена схема простейшей реализации такого устройства Для управления светодиодами используют сигналы D0...D7, поэтому их число ограничено восемью. Для опроса положения переключатьлей используютшины состояния, поэтому их пять. Регистор КР1533ИР35 предназначен для фиксации данных и начильного состояния светодиодов. Сигнал -STROBE используется для стробирования записи данных в регистр, а сигнал INIT для сброса регистра и гашения светодиодов ( светодиод горит при записи логической “1” в соответствующий разряд регистра). При замыкании контакта переключателя в соответствующей ему шине состояние читается логический “0”, а при размыкании - “1”.
Для питания устройства используют впешний источник напряжения +5 В
Если байтовой разрядности шины данных хваает то пяти линий шины состочния для ввода явно недостаточно. Наиболее простой способ увеличения числа разрядов на ввод - мультиклексирование принимаемых данных.
На рисунке 3.1 представлена устройство типа “набор лампочек и кнопочек” уже с восемью переключателями. Мультиклексор КР1533КП11 реализует преобразование восми линий в четыре, которое выполняется в две фазы - ввод младшей тетрады и ввод старшей тетрады. Для переключения мультиклексора можно использовать свободный сигнал шины управления, например -SLCT IN.
Как видно остается свободным один сигнал шины состояния . Его можно использовать, например, для определения наличея внешнего питания +5 В. Или для декодирования наличия устройства (если поставить перемычку на “землю”). В обоих случаях предпологается, что с оборванной линией будет прочитана “1” (т.к в адаптере Centronics стоит ТТЛШ-буфер).
3.2. Пароектирование програмного обеспечения для обмена через Centronics
Для персонального компьютера IBM PC имеется две возможности прграммирования параллельного порта - обращение к физическим адресам регистра порта (нижний уровень) или вызов програмного прерывания 17Н (верхний уровень). При этом можно использовать как ассемблер так и язык высокого уровня.
3.2.1 Программирование на нижнем уровне.
Параллельноый порт имеет три адреса в пространстве устройств ввода- вывода компьютера:
ВАSE - регистр данных,
ВАSE+1 - регистр состояния,
ВАSE+2 - регистр управления.
Здесь “ВАSE” - первый адрес порта. В компьютере может быть до трех параллельных портов - LPT1...LPT3
LPT1 - 0:408h
LPT2 - 0:40Ah
LPT3 - 0:40Ch
Eсли порт не установлен в соответствующей ячейке записан 0.
Программированиеподключенной к параллельному порту аппаратуры заключается в установке определенных битов в регистрах данных и управления и чтения определенных битов из регистра состояния. При этом если с регистром данных не возникает проблем (это обычный байтовый регистр) , то два других регистра имеют некоторые особенности. Во-первых, некоторые биты являются инверсными. Во-вторых, если четыре бита регистра управления расположеных в младших разрядах (биты 0-3), то пять битов регистра состояния - в старших (биты 3-7)
Таблица 3.1
Управляющие сигналы Centronics.
ШИНА |
СИГНАЛ |
БИТ |
ИНВЕРСИЯ |
Управление |
-STROBE |
0 |
инверсный |
|
-AUTO FD |
1 |
инверсный |
|
-INIT |
2 |
прямой |
|
- SLCT IN |
3 |
инверсный |
Состояние |
-ERROR |
3 |
прямой |
|
SLCT |
4 |
прямой |
|
PE |
5 |
прямой |
|
-ACK |
6 |
прямой |
|
-BUSY |
7 |
инверсный |
3.2.2 Программирование на верхнем уровне.
Программное прерывание 17Н предоставляет некоторые возможности по работе с параллельным портом принтера. Однако сразу же следует отметить, что этих воэможностей недостаточно для полноценного программирования подключенных к этому порту внешних устройств. Тем не менее некоторые функции этого прерывания могут окозаться полезными.
Имеется три функции прерывания 17Н, выбираемые значением регистра АН:
Функция №0 - печать символа.
Вход: АН=0, АL- символ, DН- номер порта (0,1 или 2).
Выход: АН- статус порта (см. функцию №2).
Функция №1 - инициализация порта.
Вход: АН=1, DН- номер порта (0,1 или 2).
Выход: АН- статус порта (см. функцию №2).
Функция №2 - определение статуса порта.
Вход: АН=2, DН- номер порта (0,1 или 2).
Выход: АН- статус порта:
Значения “1” в битах: 0 - тайм-аут,
3 - ошибка,
4 - принтер выбран,
5 - конец бумаги,
6 - подтверждение,
7 - принтер занят,
Функцию №2 можно использовать для чтения данных с шины состояния. Однако, как и в других случаях использование прерывания существенно замедляет работупрограммы,
Действительно полезной оказывается функция №1 - инициализация порта. Дело в том, что эту процедуру необходимо выполнять после окончания работы с портами, иначе возможны конфликты с принтером. Поэтому рекомендуется вызывать функция №1 прерывания 17Н при выходе из программы.