Интернет-журнал "Домашняя лаборатория", 2008 №2
Шрифт:
Таблица 3. Требования стандарта IEEE 1284 к передатчикам
Требование • Значение
Диапазон уровней сигналов без нагрузки… -0.5…+5.5 В
Уровень "1" при токе нагрузки 14 мА, не менее… +2.4 В
Уровень "0" при токе нагрузки 14 мА, не более… + 0.4 В
Выходной импеданс, измеренный на разъеме… 50±5 Ом
Скорость нарастания/спада импульса (должна находиться в указанных пределах)… 0.05-0.4 В/нс
Таблица 3. Требования
Требование • Значение
Допустимые пиковые значения сигналов, выдерживаемые без ошибок в работе, В… -2.0 — +7.0
Порог срабатывания "1", не выше, В… 2.0
Порог срабатывания "0", не ниже, В… 0.8
Гистерезис приемника (пределы), В… 0.2–1.2
Входной ток (втекающий и вытекающий), не более, мкА… 20
Входная емкость, не более, пФ… 50
Примечание: Входные линии соединяются с шиной питания резистором 1.2 кОм.
Стандарт IEEE 1284 определяет три типа используемых разъемов: A (DB-25S), В (Centronics-36), С (новый малогабаритный 36-контактный разъем). Интерфейсные кабели могут иметь от 18 до 25 проводников (в зависимости от числа проводников GND). Не предъявляется жестких требований к экранировке и прочим параметрам, однако, такие кабели могут работать только на низких скоростях при длине не более 2 метров. Стандарт IEEE 1284 для улучшенных кабелей определяет следующие параметры:
— Все сигнальные проводники должны быть перевиты с отдельными обратными (общими) проводами;
— Каждая пара должна иметь импеданс 62±6 Ом в диапазоне частот 4-16 МГц;
— Уровень перекрестных помех не должен превышать 10 %;
— Кабель должен иметь экран, покрывающий не менее 85 процентов внешней поверхности. На концах кабеля экран должен быть окольцован и соединен с контактом разъема GND.
Кабели, удовлетворяющие этим требованиям, маркируются как "IEEE Std 1284–1994 Compliant". Они могут иметь длину до 10 метров.
Работа с параллельным портом на низком уровне (т. е. на уровне прямого обращения к контроллеру порта) применяется при решении различного круга задач по обмену информацией с нестандартными устройствами, для написания драйверов принтеров и ряда других задач. Прямая работа с контроллером позволяет реализовать любой протокол обмена с устройством и использовать линии порта по своему усмотрению.
Контроллер порта расположен в адресном пространстве устройств ввода-вывода и обращение к нему производится посредством команд IN и OUT ассемблера. Или при помощи специальных команд компиляторов программ, написанных на языках высокого уровня. Информацию о портах LPT1 — LPT3 можно получить, прочитав переменные BIOS, приведенные в табл. 5.
BIOS ищет порты по адресам Base: 3BCh, 378h, 278h.
— 378h — параллельный адаптер LPT1;
— 278h — параллельный адаптер LPT2;
— 3BCh — параллельный адаптер LPT3;
Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам, начиная с базового (Base) адреса. Перечень данных регистров приведен в табл. 6.
Примечание. W-R — доступные операции (W — запись, R — чтение, W/R — запись/чтение).
Регистр данных (DR). Записанные в этот регистр данные выводятся на выходные линии интерфейса D0-D7. Результат чтения этого регистра зависит от схемотехники адаптера, и соответствуют либо записанным ранее данным, либо сигналам на линиях D0-D7, что не всегда одно и тоже. При стандартном включении справедлив первый вариант — читаемые данные равны ранее записанным.
Регистр состояния (SR). Представляет собой 5-ти битный порт ввода, на который заведены сигналы состояния от внешнего устройства. Допускает только чтение. Назначение битов данного регистра приведены в табл. 7.
Регистр управления (CR). Регистр управления представляет собой 4-х битный порт вывода, допускающий чтение и запись. Биты 0, 1, 3 инвертируются, т. е. "1" в данных битах регистра управления соответствует "0" на соответствующих линиях порта. Назначение битов регистра управления приведены в табл. 8. Бит 5 используется только двунаправленными портами.
ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙСА
Для разработки прикладных программ необходимо выбрать язык программирования. Если требуется несложная, быстрая и компактная программа, которая не содержит сложных вычислительных операций, то для ее написания лучше выбирать язык низкого уровня (язык ассемблера). Язык ассемблера относится к группе машинно-ориентированных языков, т. е. каждому семейству микропроцессоров соответствует свой язык.
Язык высокого уровня следует выбирать, если необходимо производить сложные вычисления, или в случае, если высокое быстродействие программы не требуется. Объектные коды, полученные в результате трансляции программ, написанных на языке высокого уровня, обычно занимают в памяти ЭВМ намного больше места и исполняются медленнее в сравнении с программами на ассемблере. Часто применяется подход, когда критичные к быстродействию части программы пишутся на ассемблере, а вычислительные процедуры — на языке высокого уровня, например, на Паскале или Си.