Параллельный порт

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Параллельный порт DB-25 принтера в стиле IBM-PC и некоторых других компьютеров.
36-контактное кабельное гнездо для принтеров некоторых компьютеров, применялось в промышленном оборудовании и в ранних персональных компьютерах (до 1980-х).

Паралле́льный порт — тип интерфейса, разработанный для компьютеров (персональных и других) для подключения различных периферийных устройств. В вычислительной технике параллельный порт является физической реализацией принципа параллельного соединения. Он также известен как принтерный порт или порт Centronics. Стандарт IEEE 1284 определяет двунаправленный вариант порта, который позволяет одновременно передавать и принимать биты данных.

История[править | править вики-текст]

Первый принтер с параллельным интерфейсом Centronics модели 101 был представлен в 1970 году.[1] Интерфейс был разработан в Centronics Р. Говардом и П. Робинсон. Параллельный интерфейс Centronics быстро стал де-факто отраслевым стандартом. Производители в то время использовали различные разъёмы со стороны системного блока, поэтому существовало множество различных кабелей. Например, в ранних системах VAX использовался разъём DC-3, в NCR применялся 36-контактный плоский разъём, Texas Instruments использовала 25-контактный краевой разъём, а в Data General использовался 50-контактный плоский разъём.

Dataproducts представила весьма оригинальную реализацию параллельного интерфейса для своих принтеров. Она использовала разъём DC-37 со стороны хоста и 50-контактный разъём со стороны принтера: либо DD-50 (иногда его неправильно называют «DB50»), либо разъём М-50 в форме блока (его также называют винчестерным разъёмом).[2][3] Параллельное соединение Dataproducts было доступно в двух вариантах: либо для коротких соединений (до 15 м), либо для длинных соединений (от 15 до 150 м). Интерфейс Dataproducts встечался во многих системах мэйнфреймов вплоть до 1990-х годов, многие производители принтеров предлагали его в качестве опции.

IBM выпустила свой персональный компьютер в 1981 году и включила в него свой вариант интерфейса Centronics: только принтеры с логотипом IBM (ребрендинг от Epson) могли подключаться к IBM PC.[4] IBM стандартизировала параллельный кабель с разъёмом DB25F на стороне ПК и разъём Centronics на стороне принтера. Производители вскоре реализовали принтеры, совместимые как со стандартным соединением Centronics, так и с соединением IBM.

В 1987 году IBM реализовала первую версию двунаправленного интерфейса. HP в 1992 году на принтере LaserJet 4 представила свою версию двунаправленного интерфейса, известную как Bitronics. Интерфейсы Bitronics и Centronics были заменены на стандартный интерфейс IEEE 1284 в 1994 году.

Применение[править | править вики-текст]

До появления USB параллельный интерфейс был адаптирован помимо принтеров к большому числу периферийных устройств. Вероятно, одним из первых таких устройств были электронные ключи для защиты программного обеспечения от копирования. Вскоре параллельный интерфейс нашёл применение в накопителях на гибких магнитных дисках Iomega Zip и сканерах, за которыми последовали и другие устройства: модемы, звуковые карты, веб-камеры, геймпады, джойстики, внешние жёсткие диски и CD-диски. Появились адаптеры для подключения SCSI устройств через параллельный интерфейс. Могли подключаться параллельно и другие устройства, такие как EPROM и аппаратные контроллеры.

Текущее применение[править | править вики-текст]

Для потребителей USB интерфейс, а в некоторых случаях Ethernet, эффективно заменили параллельный порт принтера. Многие производители персональных компьютеров и ноутбуков рассматривают параллельный порт как устаревшее наследие прошлого и больше не поддерживают параллельный интерфейс. Руководящие принципы для программы Windows Logo фирмы Microsoft «настоятельно рекомендуют» разработчикам систем воздерживаться от применения параллельных портов.[5] Разработаны и доступны адаптеры «USB-параллельный интерфейс», которые позволяют подключать принтеры с параллельным интерфейсом к USB портам.

Реализация в персональных компьютерах IBM[править | править вики-текст]

Адреса портов[править | править вики-текст]

Традиционно в системе IBM PC три первых параллельных порта распределяются в соответствии со следующей таблицей.

ИМЯ ПОРТА Прерывание # Начальный
адрес I/O
Конечный
адрес I/O
LPT1 IRQ 2 0x3bc 0x3bf
LPT2 IRQ 7 0x378 0x37f
LPT3 IRQ 5 0x278 0x27f

Если есть неиспользуемый слот LPTx, адреса других портов сдвигаются вверх. (Например, если отсутствует порт 0x3bc, то тогда порт 0x378 станет LPT1).[6] Адреса портов, присвоенные каждому слоту LPTx, можно определить путём чтения области данных BIOS по адресу 0000:0408.

Программный интерфейс[править | править вики-текст]

В версиях Windows, которые не используют ядро Windows NT (типа DOS и некоторых других операционных систем), программы могут получить доступ к параллельному порту с помощью подпрограмм outportb() и inportb(). В операционных системах Windows NT и Unix (NetBSD, FreeBSD, Solaris, 386BSD и т. д.) задействован встроенный в процессор 80386 механизм безопасности, и доступ к параллельному порту запрещён, если не указан нужный драйвер. Это повышает безопасность и способствует разрешению конфликтов при доступе к устройству. В Linux, если процесс запущен с правами администратора, могут использоваться функции inb(), outb() и команда ioperm() для доступа к базовому адресу порта.

Расположение выводов[править | править вики-текст]

Расположение выводов для параллельного порта следующее:

№ контакта
(25-контактный)
№ контакта
(36-контактный)
Обозначение Направление Бит регистра Инвертирование
1 1 Strobe In/Out Control-0 Да
2 2 Data0 Out Data-0 Нет
3 3 Data1 Out Data-1 Нет
4 4 Data2 Out Data-2 Нет
5 5 Data3 Out Data-3 Нет
6 6 Data4 Out Data-4 Нет
7 7 Data5 Out Data-5 Нет
8 8 Data6 Out Data-6 Нет
9 9 Data7 Out Data-7 Нет
10 10 Ack In Status-6 Нет
11 11 Busy In Status-7 Да
12 12 Paper-Out In Status-5 Нет
13 13 Select In Status-4 Нет
14 14 Linefeed In/Out Control-1 Да
15 32 Error In Status-3 Нет
16 31 Reset In/Out Control-2 Нет
17 36 Select-Printer In/Out Control-3 Да
18-25 19-30,33,17,16 Ground - - -

В инвертированных линиях низкий логический уровень имеет значение «истина», в неинвертированных наоборот, истиной является высокий логический уровень.

Контакт 25 в разъёме DB-25 на современных компьютерах может быть не соединён с землёй.

Кабель LapLink[править | править вики-текст]

В исходном варианте параллельного интерфейса (SPP, Standard Parallel Port) линии данных были однонаправленными (только вывод). Специалисты компании LapLink, занимавшейся ПО для синхронизации настольного компьютера с ноутбуком, придумали обходной путь.

Кроме восьми линий данных, параллельный порт имеет пять линий состояния. Восьмибитный байт делился на два 4-битных полубайта, которые передавались друг за другом, приём осуществлялся через линии состояния. Пятая линия состояния служила для синхронизации: 0 сменялся на 1 и наоборот каждый раз, когда передавался полубайт, в ответ принимающая сторона меняла 0 на 1 на своей линии (и заодно передавала свой полубайт). Таким «пинг-понгом» компьютеры могли передавать информацию с той скоростью, какую реально поддерживает ПО и кабель: быстрее для короткого кабеля и медленнее — для длинного. Подобным механизмом пользовалось и другое аппаратное обеспечение, подключавшееся к параллельному порту.

Разводка кабеля:[7]

Название Штырь DB-25M Направление Штырь DB-25M Название
Данные 0 2 15 Ошибка
Данные 1 3 13 Выбор
Данные 2 4 12 Нет бумаги
Данные 3 5 10 Подтверждение
Данные 4 6 11 Занят
Подтверждение 10 5 Данные 3
Занят 11 6 Данные 4
Нет бумаги 12 4 Данные 2
Выбор 13 3 Данные 1
Ошибка 15 2 Данные 0
Земля 25   25 Земля

В дальнейшем кабель LapLink (или кабель InterLink, в честь утилиты MS-DOS, или нуль-принтерный кабель, по аналогии с нуль-модемным) стал экзотическим, но быстрым и надёжным (до 100 килобайт в секунду![8]) способом передачи данных между компьютерами. Игры, за редчайшими исключениями[9], такой связи не поддерживали. Зато деловое ПО быстро взяло кабель на вооружение: утилиты для связи были в составе MS-DOS, Norton Commander и Microsoft Windows.[10] Последняя давала возможность любой игре (как для DOS, так и для Windows) работать через параллельный кабель по протоколам IPX и TCP/IP.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Webster, Edward C. Print Unchained: Fifty Years of Digital Printing: A Saga of Invention and Enterprise. — West Dover, VT: DRA of Vermont, 2000. — ISBN 0-9702617-0-5.
  2. Dataproducts D-Sub 50 Parallel. Hardware Book. Архивировано из первоисточника 25 августа 2011.
  3. Dataproducts M/50 Parallel. Hardware Book. Архивировано из первоисточника 25 августа 2011.
  4. Durda IV, Frank Centronics and IBM Compatible Parallel Printer Interface Pin Assignment Reference (2004). Архивировано из первоисточника 25 августа 2011.
  5. Microsoft Windows Logo Program System and Device Requirements. Архивировано из первоисточника 25 августа 2011.
  6. Frank Van Gilluwe, The Undocumented PC, 1994, page 703, ISBN 0-201-62277-7
  7. LapLink/InterLink Parallel - HwB
  8. Для сравнения: больше 8 килобайт в секунду от нуль-модемного кабеля получить нельзя; 10BASE-2, основной носитель Ethernet того времени, давал до 1 мегабайта в секунду, но был значительно дороже.
  9. Например, существовала неофициальная утилита для Doom.
  10. От Windows 95 до XP.

Ссылки[править | править вики-текст]