CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Параллельная история

Александр ЖУКОВСКИЙ zhal@list.ru

Все знают, что в наших компьютерах существует так называемый LPT-порт, и что к нему подключают принтеры и сканеры. Однако, как правило, на этом знания и закачиваются. Я постараюсь расширить ваши познания в этой области.

Стандартный LPT

С самого начала LPT-порт (рис. 1) предназначался для подключения к компьютерам так называемых «построчных» принтеров, поэтому и носит он соответствующее название —Line PrinTer. «Построчные» принтеры давно стали антиквариатом, а вот порт сохранился до сих пор и прошел немалую эволюцию.

LPT-порт называют параллельным, так как он относится к разряду так называемых параллельных интерфейсов. То есть таких интерфейсов, по которым данные передаются по нескольким проводам одновременно. Параллельный порт является 8-разрядным, то есть он может за один цикл передачи переслать один байт информации. (Вообще-то, порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов. —Прим. ред.). Кабель, соединяющий ПК и принтер по LPT-порту, изображен на рисунке 2. За всю историю развития появилось 3 основных «подвида» этих портов, а именно SPP, EPP, ECP.

Рис. 1. LPT-порт   Рис. 2. Кабель, соединяющий ПК и принтер по LPT-порту

SPP (Standart Paralell Port) — самый старый вид параллельного порта. Он является однонаправленным, то есть предназначен только для вывода информации. Программный протокол обмена в режиме SPP соответствует интерфейсу Centronics. Хочется заметить, что обычно на материнских платах по умолчанию LPT-порт работает именно в режиме SPP. Однако когда мы подключаем к порту устройство ввода информации (обычно это сканер), оно прекрасно функционирует. У вас возникнет вопрос, почему? Оказывается, все очень просто: сам порт имеет 5 линий, по которым периферийное устройство сообщает о своем состоянии (например, одной из таких линий является PaperEnd, которая сигнализирует ПК о том, что в лотке принтера закончилась бумага). Вот по ним и происходит ввод информации (т.н. симметричная двунаправленная связь в режиме полубайтного обмена —Nibble Mode —прим. ред.). Такой режим называют полубайтным. Правда, получается, что за один раз можно передать только 4 бита (пятая линия не используется для передачи данных —прим. ред.), а значит, скорость ввода значительно уменьшается. Если скорость вывода — 40–50 Кб/с, то скорость ввода на добрую треть меньше.

Еще одним минусом такого варианта параллельного порта является то, что протокол обмена данными должен реализовываться программно, а это сказывается на загрузке процессора. Если для современных моделей процессоров это мелочь, то для первых Х86 процессоров это было довольно большой нагрузкой. Поэтому если вы — владелец сканера с LPT-интерфейсом, то изменив всего одну настройку (какую, узнаете дальше) в вашем BIOS (у меня это опция Paralell port mode пункта Integrated Peripherals), вы значительно поднимите производительность вашего сканирующего устройства.

Для программиста SPP-порт — это три регистра: данных, состояния и управления, в которые записываются передаваемые данные, данные о состоянии подключенного устройства и управляющая информация соответственно. В адресном пространстве они расположены в виде трех подряд идущих ячеек с адресами, начиная с базового. Для LPT1 базовый адрес —378h, содержащий регистр данных, регистр состояния соответственно имеет адрес 379h, а управления —37Аh. Более подробно о программировании LPT-портов можно узнать на http://carradio.narod.ru/03.html.

В компьютерах семейства PS/2 была решена проблема асимметричной работы порта (для указания направления передачи в регистр управления порта введен специальный бит —прим. ред.) и даже предусматривался прямой доступ к памяти. Хотя серия этих компьютеров не получила широкого распространения, данные разработки были применены в последующих «модификациях» параллельного порта.

Все лучше и лучше…

Очередным этапом эволюции LPT-порта стал порт EPP (Enhanced Parallel Port — улучшенный параллельный порт), который был разработан компаниями Intel, Xircom и Zenith Data Systems. Порт стал двунаправленным (Bi-Directional) и мог работать в четырех режимах: запись/чтение данных и запись/чтение адреса. Начиная с этой модификации, протокол обмена начал организовываться аппаратно, что очень облегчало жизнь программистам. Достаточно записать в регистр данных значение, а все управляющие передачей сигналы будут выставлены портом автоматически. Максимальная скорость обмена по ЕРР-порту достигает 2 Мб/с. (То есть периферийное устройство, подключенное к параллельному порту ЕРР, может работать на уровне производительности, предельно достижимом для слота ISA. Добиться этого позволяет одна из особенностей ЕРР, обеспечивающая выполнение процедуры передачи за время одного цикла ввода/вывода на шине. —Прим. ред.). В свое время это позволило подключать к такому порту внешние приводы CD-ROM, сетевые адаптеры, устраивать прямое соединение с другим ПК (последнее, кстати, получается намного более быстрым, чем соединение по нуль-модемному кабелю).

Таблица 1.

С программной точки зрения, ЕРР отличается от SPP наличием еще двух регистров: регистра адреса ЕРР (ЕРР Address Port) и регистра данных (ЕРР Data Port), которые и используются при работе в режиме ЕРР. Применяя только первых три регистра, мы можем получить обычный порт SPP. (Вообще, достоинством ЕРР является то, что обращение процессора к периферийному устройству по этому порту осуществляется в реальном времени. Программный драйвер постоянно отслеживает состояние порта и подает команды в точно определенные моменты времени. Такой режим оптимален уже не только для устройств вывода (принтеров), но и для периферии, для которой критична работа в реальном времени. Это и сетевые адаптеры, и дисковые накопители, и всевозможные устройства сбора информации и управления (датчики) и т.п. —Прим. ред.).

Широкий порт

И наконец, рассмотрим самый современный из параллельных портов ECP (Extended Capability Port — порт с расширенными возможностями), который был предложен компаниями Hewlett-Packard и Microsoft. Основные его преимущества таковы: аппаратная компрессия передаваемых данных, использование буферов FIFO и работа в режиме DMA. Все это позволило значительно повысить производительность LPT-порта.

Для обеспечения совместимости с более ранними спецификациями, ЕСР-порт может работать в нескольких режимах (таблица 1).

Введение канальной адресации ЕСР позволило работать с устройствами, которые состоят из нескольких отдельных полнофункциональных частей. Самым простым примером являются «офисные комбайны». Функционирует это все примерно таким образом: компьютер в адресном цикле передачи выбирает устройство, с которым будет работать (например, принтер или сканер такого «комбайна»), а потом связывается с ним как с обычным принтером или сканером. (На самом деле в случае многофункциональных девайсов канальная адресация ЕСР обеспечивает возможность одновременной (в отличие от ЕРР) работы нескольких устройств на LPT-порту, например, во время отправки факса можно печатать на принтере и т.п. —Прим. ред.).

Когда в начале статьи я говорил о режиме порта, оптимальном для сканера с LPT-интерфейсом, я имел в виду именно ECP-вариант. Ведь при работе со сканером необходимо передавать большие объемы данных (для графических изображений). Причем очень часто попадается масса идентичной информации, например, части рисунков содержат подряд идущие точки, имеющие одинаковые цвета. Именно в этом случае компрессия и использование DMA весьма оптимизируют работу со сканером. DMA разгружает процессор во время передачи данных, а компрессия по принципу RLE (Run-Length Encoding)… Ах, да, мы не говорили о том, что принцип RLE заключается в том, чтобы вместо длинной цепочки данных передать определенные данные и количество их повторений. Так что, я думаю, вы поняли, в чем преимущества компрессии. Хотя, как говорится, в бочке меда есть и ложка дегтя — сканер просто может не поддерживать вышеперечисленные функции .

Недостаток режима ECP заключается в том, что он будет поддерживаться только при наличии специальных драйверов в системе. И если для операционных систем семейства Windows они входят в состав стандартной библиотеки драйверов, то при работе в MS-DOS необходимо использовать дополнительное ПО.

LяPоTа

Я рассказал вам только об основных модификациях LPT-порта, хотя за время его эволюции разные фирмы пытались изменять его по своему усмотрению. Чтобы хоть как-то унифицировать режимы параллельных портов, в 1994 году был принят стандарт IEEE 1284, который определил для LPT-порта режимы обмена данными (всего их пять, один из которых соответствует обмену по протоколу Centronics —прим. ред.), их согласование, а также физический (рис. 3, 4) и электрический интерфейсы.

Рис. 3.   Рис. 4.

Может случится так, что вам понадобятся несколько параллельных портов (в принципе, устройства, подключаемые к параллельному порту, разработаны таким образом, чтобы они могли «мирно сосуществовать» на одном порту, как, например, в случае с принтером и сканером). В таком симбиозе работает только одно устройство, второе должно быть отключено. А если понадобилось, чтобы оба устройства функционировали одновременно? Или худший вариант — у вас сгорел интегрированный LPT-порт? Возникает вопрос: «Что делать?» :-). Вариант первый — пойти на радиорынок и купить старую MIO (Multi-Input-Output) карту, она обойдется не дороже 10 гривен. Однако тут есть несколько подводных камней. Во-первых, эти карты обычно имеют интерфейс ISA, а в современных материнских платах такового нет. Во-вторых, когда существовали такие карты, понятия Plug&Play еще и в помине не было, так что конфигурировать карточку придется с помощью перемычек или DIP-переключателей. Вот тут-то и возникают проблемы. Так как такие карты извлекаются из всякого старого «хлама», то, естественно, документации на них нет. В Сети, если судить по моему личному опыту, ее тоже нет. Так что сконфигурировать девайс зачастую просто нереально.

Лучший вариант — найти более современную PCI-карту (рис. 5, 6), в принципе сделать это реально, но десятью гривнами тут уже не обойдется.

Рис. 5.   Рис. 6.

Если же вы решились конфигурировать LPT-порт MIO-карты, то базовый адрес устанавливается в 378h или 278h, запрос на прерывание — IRQ7 или IRQ5 для LPT1 и LPT2 соответственно. Если карта способна работать в режиме ЕСР, то выбирается свободный канал DMA.

И напоследок хочется сказать, что параллельный порт нашего ПК — идеальная основа для проведения экспериментов. Каких? Советую почитать статьи Владимира Трубаевского, например «Параллельный сторож» (МК, №3 (226), 2003), или посетить следующие ресурсы Сети: http://disall.narod.ru/comp.htm, http://radioam.nm.ru/your.html, http://newsonya.narod.ru/onoff.html.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov