Что такое LPT порт. Как устроен параллельный интерфейс компьютера. Для чего использовался LPT порт раньше и сейчас. Особенности работы с LPT портом в современных ПК.
Что такое LPT порт и его назначение
LPT порт (от англ. Line Print Terminal) — это параллельный интерфейс ввода-вывода, который использовался в персональных компьютерах для подключения периферийных устройств, в первую очередь принтеров. Другое название — параллельный порт.
Основные характеристики LPT порта:
- Параллельная передача данных (по 8 бит одновременно)
- Скорость передачи до 2 Мбит/с
- 25-контактный разъем типа DB-25
- Двунаправленный обмен данными
- Поддержка прерываний
LPT порт позволял подключать к компьютеру различные устройства:
- Принтеры
- Сканеры
- Внешние жесткие диски и CD-ROM
- Адаптеры для программирования микросхем
- Устройства защиты программного обеспечения (донглы)
Главное преимущество LPT порта заключалось в высокой скорости передачи данных по сравнению с последовательными интерфейсами того времени. Это было особенно важно для печати документов.
Устройство LPT порта
LPT порт представляет собой 25-контактный разъем типа DB-25 на задней панели системного блока компьютера. Он имеет следующую структуру:
- 8 линий данных (D0-D7) — для передачи байтов информации
- 5 линий состояния (S3-S7) — для получения сигналов от периферийного устройства
- 4 линии управления (C0-C3) — для управления обменом данными
- 8 линий заземления
Порт управляется через три регистра ввода-вывода:
- Регистр данных (базовый адрес) — для передачи данных
- Регистр состояния (базовый адрес + 1) — для чтения состояния устройства
- Регистр управления (базовый адрес + 2) — для управления обменом
Базовый адрес LPT порта по умолчанию — 378h, но может изменяться в настройках BIOS.
История развития и применения LPT порта
LPT порт появился в первых персональных компьютерах IBM PC в начале 1980-х годов. Изначально он предназначался только для подключения принтеров, отсюда и название Line Print Terminal.
Основные этапы развития LPT интерфейса:
- 1981 г. — первое применение в IBM PC
- 1987 г. — стандарт IEEE 1284 для двунаправленной передачи
- 1994 г. — режим Enhanced Parallel Port (EPP) со скоростью до 2 Мбит/с
- 1998 г. — режим Extended Capability Port (ECP) с DMA
В 1990-х и начале 2000-х LPT порт активно использовался для подключения различных периферийных устройств. Однако с распространением USB интерфейса его популярность стала снижаться.
Применение LPT порта в современных компьютерах
В настоящее время LPT порт практически не используется в новых компьютерах и ноутбуках. Его вытеснили более современные интерфейсы — USB, Thunderbolt, PCI Express.
Тем не менее, LPT порт все еще может применяться в следующих случаях:
- Подключение старых принтеров и другого оборудования
- Программирование микроконтроллеров и программируемых логических схем
- Управление самодельными электронными устройствами
- Лабораторные работы по изучению интерфейсов ПК
При необходимости использовать LPT порт на современном компьютере можно применить специальные адаптеры USB-to-LPT или PCI-платы расширения с LPT интерфейсом.
Преимущества и недостатки LPT порта
Основные достоинства LPT интерфейса:
- Высокая скорость передачи данных (до 2 Мбит/с)
- Простота реализации и использования
- Возможность прямого управления пинами порта
- Низкая стоимость кабелей и разъемов
Недостатки LPT порта:
- Большие габариты разъема
- Ограниченная длина кабеля (до 5 метров)
- Отсутствие поддержки горячего подключения
- Низкая помехозащищенность
- Сложность использования в современных ОС
Эти недостатки привели к практически полному отказу от LPT порта в пользу USB и других интерфейсов в современных компьютерах.
Программирование LPT порта
Для работы с LPT портом напрямую из программы требуется доступ к регистрам ввода-вывода. В Windows существует несколько способов получить такой доступ:
- Использование драйверов для доступа к портам (например, inpout32.dll)
- Применение WDM-драйверов в режиме ядра
- Прямой доступ в DOS-сеансе или через DOSBox
Пример кода на C++ для вывода байта в LPT порт (требуется драйвер inpout32.dll):
«`cpp #includeАльтернативы LPT порту
В современных компьютерах LPT порт практически полностью вытеснен другими интерфейсами. Основные альтернативы:
- USB (Universal Serial Bus) — универсальный последовательный интерфейс
- PCI Express — высокоскоростная шина расширения
- Thunderbolt — интерфейс для подключения периферийных устройств
- Ethernet — сетевой интерфейс, часто используется для сетевых принтеров
- Wi-Fi — беспроводное подключение периферийных устройств
Эти интерфейсы обеспечивают более высокую скорость передачи данных, удобство подключения и широкую совместимость с современным оборудованием.
Для подключения старых устройств с LPT интерфейсом к современным компьютерам можно использовать специальные адаптеры, например, USB-to-LPT или PCI-E to LPT.
Заключение
LPT порт сыграл важную роль в развитии персональных компьютеров, обеспечивая высокоскоростное подключение принтеров и другой периферии. Однако с появлением более совершенных интерфейсов его значение постепенно уменьшалось.
Сегодня LPT порт представляет интерес в основном для работы со старым оборудованием, в образовательных целях и для создания самодельных электронных устройств. В новых компьютерах он практически не используется, уступив место USB, PCI Express и другим современным интерфейсам.
Тем не менее, понимание принципов работы LPT порта остается полезным для специалистов в области компьютерной техники, так как оно дает представление об основах взаимодействия компьютера с периферийными устройствами.
Что такое «LPT» порт и для чего он нужен?
Периферия
kompik 1 комментарий
Порт «LPT» редко встречается на современных компьютерах. Это специальный разъем компьютера для подключения принтера. Некоторые компьютеры были снабжены несколькими портами «LPT». Эти порты нумеровались: «LPT1», «LPT2» и так далее.
Параллельные порты
Исторически так сложилось, что порты для подключения компьютера разделены на категории: серийные и параллельные порты. «LPT» относится к параллельным портам. Это значит, что информация перемещается по восьми различным проводам, то есть одновременно и параллельно. Компьютеры имеют дело с двоичной информацией. Двоичность преобразует информацию в массивы нулей и единиц. Одно двоичное число (ноль или единица) называется битом. Группа из восьми бит называется байтом. Восемь бит каждого байта, которые перемещаются из компьютера в параллельный порт, перемещаются одновременно.
Другой тип кабеля, подключенный к серийному порту, перемещает восемь бит каждого байта друг за другом.Значение
У параллельного порта есть название. По умолчанию название для единственного параллельного порта компьютера «LPT1». Данный вид портов в основном используется для подключения принтера. К таким портам можно подключить и другие устройства, однако пользователи используют принтер гораздо чаще, чем другие устройства. Подключение принтера к компьютеру делает его «периферией». «Периферийным» может быть любое подключенное с помощью специального кабеля к компьютеру дополнительное устройство. Это «периферийное» оборудование одновременно может использоваться только одним компьютером. Единственный способ подключить уже подключенное «периферийное» устройство к другому компьютеру, чтобы использовать принтер, подключенный к первому компьютеру – с помощью сети и программного обеспечения. Этот процесс отличен от сетевого принтера, который подключается к сети, а не к одному компьютеру.
Подключение
Параллельный порт «LPT» и соответствующий разъем имеет 25 штифтов и называется «DB-25», либо «D-Type 25». В разъеме штифты оголены. Они вставляются в 25 отверстий параллельного порта. Восемь из 25 штифтов отвечают за передачу данных, остальные несут либо данные управления, либо инструкции принтера вроде сообщений от принтера о отсутствии бумаги в принтере.
Будущее
Сетевые принтеры подключаются к компьютеру не с помощью порта «LPT», а с помощью порта «Ethernet». К порту «LPT» можно подключить не только принтер, но и другие устройства. Сегодня «периферийные» устройства не используют параллельные порты. И порты «LPT», и серийные порты сегодня ушли в историю и на смену им пришел «USB» порт, либо сетевой порт. Способность беспроводного подключения новых принтеров и периферийных устройств предоставляет еще одну альтернативу «LPT» порту, как способу подключения принтера к компьютеру.
LPTбайтбиткомпьютерпортПринтер, подключенный к порту LPT — Windows drivers
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Перечислитель LPT является примером драйвера шины. Перечислитель LPT способен получать идентификационные данные из оборудования порта LPT, соответствующего протоколу порта IEEE 1284 и стандарту интерфейса ISA.
При запуске системы Windows 2000 или более поздней версии диспетчер конфигурации вызывает перечислитель LPT для перечисления устройств, совместимых с IEEE 1284, подключенных к портам LPT. Для каждого найденного устройства диспетчер конфигурации вызывает установщик класса принтера. Установщик класса принтера вызывает функции установки устройства с префиксом SetupDi, которые получают сведения из INF-файлов принтера.
Для принтера, подключенного к параллельному подключению, параллельный перечислитель создает devnode с уникальным идентификатором оборудования , созданным из строки 1284, которую он получает от принтера.
Пример строки 1284:
"MANUFACTURER:Hewlett-Packard;COMMAND SET:PJL,MLC,PCL,POSTSCRIPT;MODEL:HP Color LaserJet 550;CLASS:PRINTER;COMMENT:HP LaserJet;"
Из этой строки 1284 параллельный перечислитель создает следующий идентификатор оборудования:
LPTENUM\Hewlett-PackardHP_Co3115
Идентификатор оборудования состоит из префикса перечислителя, за которым следует название производителя, имя модели и код циклической проверки избыточности (CRC). Код CRC, являющийся последними четырьмя цифрами идентификатора оборудования, создается на основе строк производителя и модели. Пробелы в строке заменяются символами подчеркивания.
Чтобы прочитать строку идентификатора 1284 с устройства, отправьте IOCTL_PAR_QUERY_DEVICE_ID. Обратите внимание, что средство spooler перенаправляет символьную ссылку LPTx (где x — номер LPT 1, 2 или 3) в именованный канал очереди, то это означает, что если выполняется spooler, то parport никогда не видит ioCTLs, отправленные в LPTx.
Devnode для принтера с параллельным подключением Plug and Play размещается в разделе HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM и имеет один идентификатор оборудования формы:
LPTENUM\Company_NameModelNam1234
Стек драйверов отображается на рисунке ниже следующего примера кода.
Inf-код, который будет правильно «подключать и воспроизводить» идентификатор оборудования формы LPTENUM\Company_NameModelNam1234 показан в следующем примере. Обратите внимание, что описание устройства «Имя модели XYZ» отображается дважды в разделе «Производитель INF«. Идентификатор оборудования в первой строке включает перечислитель шины, а идентификатор оборудования во второй строке — нет. Две строки гарантируют соответствие идентификатора оборудования ранг-0 независимо от типа шины, на которой установлен принтер. Дополнительные сведения см. в статье об установке пользовательского драйвера принтера Plug and Play.
[Manufacturer] %Company_Name%=Company_Name ; Section name for all drivers for Company_Name [Company_Name] "Model Name XYZ" = Install_Section_XYZ, LPTENUM\Company_NameModelNam1234 ; plus any compatible IDs "Model Name XYZ" = Install_Section_XYZ, Company_NameModelNam1234 ; plus any compatible IDs ; The install section for the XYZ model [Install_Section_XYZ] [Strings] Company_Name="Company Name"
Для принтера, который совместно использует идентификатор устройства с другими моделями, INF-файл должен выглядеть следующим образом:
[Manufacturer] %Company_Name%=Company_Name ; The section for all drivers for Company_Name [Company_Name] "Model Name XYA" = Install_Section_XYA, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs "Model Name XYA" = Install_Section_XYA, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs "Model Name XYB" = Install_Section_XYB, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234; plus any other compatible IDs "Model Name XYB" = Install_Section_XYB, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs ; The install sections [Install_Section_XYA] [Install_Section_XYB] [ControlFlags] InteractiveInstall = LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234 [Strings] Company_Name = "Company Name"
Как и в предыдущем примере, каждая модель в разделе INF Manufacturer представлена парой почти идентичных строк. Для данной модели одна строка в паре включает перечислитель шины; другой — нет. Две строки гарантируют соответствие идентификатора оборудования ранг-0 независимо от типа шины, на которой установлен принтер. Дополнительные сведения см. в статье об установке пользовательского драйвера принтера Plug and Play.
404: Страница не найдена
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы приносим свои извинения за доставленные неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Пожалуйста, свяжитесь с нами, чтобы сообщить, что эта страница отсутствует, или используйте поле выше, чтобы продолжить поиск
- Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, WhatIs. com.
- Посетите нашу домашнюю страницу и просмотрите наши технические темы
Просмотр по категории
Сеть
- Сеть как услуга (NaaS)
Сеть как услуга, или NaaS, представляет собой бизнес-модель для предоставления корпоративных услуг глобальной сети практически на основе подписки.
- управление конфигурацией сети (NCM)
Управление конфигурацией сети — это процесс организации и поддержания информации обо всех компонентах в …
- уровень представления
Уровень представления находится на уровне 6 коммуникационной модели взаимодействия открытых систем (OSI) и гарантирует, что …
Безопасность
- бэкдор (вычисления)
Бэкдор-атака — это способ доступа к компьютерной системе или зашифрованным данным в обход обычной системы безопасности . ..
- Кровотечение
Heartbleed — уязвимость в некоторых реализациях OpenSSL, криптографической библиотеки с открытым исходным кодом.
- Что такое управление рисками и почему это важно?
Управление рисками — это процесс выявления, оценки и контроля угроз капиталу и доходам организации.
ИТ-директор
- мягкие навыки
Мягкий навык — это личное свойство, которое поддерживает ситуационную осведомленность и повышает способность человека выполнять работу.
- эмоциональный интеллект (ЭИ)
Эмоциональный интеллект (ЭИ) — это область когнитивных способностей, которая способствует межличностному поведению.
- PMO (офис управления проектами)
Офис управления проектами (PMO) — это группа, агентство или отдел, который определяет и поддерживает стандарты управления проектами. ..
HRSoftware
- командное сотрудничество
Совместная работа в команде — это подход к коммуникации и управлению проектами, который делает упор на командную работу, новаторское мышление и равенство …
- самообслуживание сотрудников (ESS)
Самообслуживание сотрудников (ESS) — это широко используемая технология управления персоналом, которая позволяет сотрудникам выполнять множество связанных с работой …
- платформа обучения (LXP)
Платформа обучения (LXP) — это управляемая искусственным интеллектом платформа взаимного обучения, предоставляемая с использованием программного обеспечения как услуги (…
Обслуживание клиентов
- главный специалист по работе с клиентами (CCO)
Директор по работе с клиентами или специалист по работе с клиентами отвечает за изучение клиентов, общение с компанией . ..
- маркетинг отношений
Маркетинг отношений — это аспект управления взаимоотношениями с клиентами (CRM), который фокусируется на лояльности клиентов и долгосрочных …
- распознавание голоса (распознавание говорящего)
Распознавание голоса или говорящего — это способность машины или программы принимать и интерпретировать диктовку или понимать и …
Как использовать параллельный порт ПК для связи с 2-проводными устройствами
Скачать PDF
Abstract
Цель этих указаний по применению — показать, как создать быстрый, простой и дешевый 2-проводной (I 2 C-совместимый) интерфейс с использованием параллельного порта ПК. Эти указания по применению были специально написаны для тех, кто только что получил или только что заказал образцы устройств Dallas Semiconductor и понял, что теперь им нужен способ связи с устройствами 2-Wire. Хотя существует множество решений, представленное здесь не требует микроконтроллера, встроенного программного обеспечения или каких-либо труднодоступных микросхем. Чтобы еще больше помочь в решении поставленной задачи, Windows 9Программное обеспечение 0121® 95/98 предназначено для устранения головной боли, связанной с трудной задачей одновременной отладки аппаратного и программного обеспечения. Имея программное обеспечение вместе с парой инструментов отладки, все усилия могут быть направлены исключительно на то, чтобы как можно быстрее запустить аппаратное обеспечение.
Введение
Цель этих указаний по применению — показать, как создать быстрый, простой и дешевый 2-проводной (I 2 C-совместимый) интерфейс с использованием параллельного порта ПК. Эти указания по применению были специально написаны для тех, кто только что получил или только что заказал образцы устройств Dallas Semiconductor и понял, что теперь им нужен способ связи с устройствами 2-Wire. Хотя существует множество решений, представленное здесь не требует микроконтроллера, встроенного программного обеспечения или каких-либо труднодоступных микросхем. Чтобы еще больше помочь в решении поставленной задачи, Windows 9Программное обеспечение 5/98 предназначено для устранения головной боли, связанной с трудной задачей одновременной отладки аппаратного и программного обеспечения. Имея программное обеспечение вместе с парой инструментов отладки, все усилия могут быть направлены исключительно на то, чтобы как можно быстрее настроить и запустить оборудование.
Поскольку это оборудование взаимодействует с ПК, применяются стандартные заявления об отказе от ответственности. Хотя представленное аппаратное и программное обеспечение было создано и протестировано вместе, используйте его на свой страх и риск. Обязательно дважды и трижды проверьте все соединения и напряжение источника питания, так как он будет напрямую подключаться к схеме параллельного порта ПК. Dallas Semiconductor/Maxim не несет ответственности за любой ущерб, который может возникнуть в результате. Это решение предназначено только для ознакомительных целей и не предназначено для использования в производстве или распространении. Хотя текущий софт Win95/98, в будущем будет доступна версия, которая будет поддерживать Win NT.
Зачем использовать параллельный порт вместо последовательного порта или USB?
Параллельный порт был выбран в этом примечании к применению, потому что целью было быстрое, простое и дешевое создание интерфейса. Интерфейс параллельного порта основан на логической микросхеме 74HC05 вместе с некоторыми пассивными компонентами. С другой стороны, для решения с последовательным портом потребуются микроконтроллер, прошивка, программатор или внутрисистемное программирование, преобразователи уровней, кристалл, а также многие другие пассивные компоненты. Точно так же USB также требует значительного количества аппаратного обеспечения в дополнение к гораздо большим инвестициям в программное обеспечение и прошивку. Кроме того, для отладки оборудования USB часто требуются очень дорогие анализаторы протоколов. Так что с точки зрения нашей цели выбор очевиден. Но прежде чем будет принято окончательное решение, недостатки также должны быть проанализированы, чтобы убедиться, что они допустимы.
Вероятно, самым большим недостатком параллельного порта является его будущее. Все больше и больше производителей ПК отказываются от параллельных и последовательных портов в пользу USB. Еще одним недостатком параллельного порта является то, что большая часть его конфигурации задается в BIOS ПК. Это означает, что если не удается установить связь между ПК и оборудованием, то ПК необходимо перезагрузить, чтобы можно было войти в утилиту BIOS (обычно нажатием F1 или DEL во время запуска) и настроить параметры параллельного порта. Это не помеха в среде проектирования/оценки, но огромная головная боль поддержки, когда она находится в руках широкой публики. Далее, хотя скорее неудобством, чем недостатком, является изменчивость от ПК к ПК. Поскольку параллельный порт является устаревшим аппаратным обеспечением, с годами в него вносились изменения, вариации и улучшения. Однако при разработке оборудования вы хотели бы, чтобы оно работало как со старыми параллельными портами, так и с новыми и будущими. Это приводит к предположениям (временным и электрическим), которые необходимо сделать при проектировании аппаратного обеспечения интерфейса. И, наконец, еще один недостаток, связанный с операционной системой, — это необходимость драйвера устройства в системах Windows NT. Windows NT не позволяет пользовательским приложениям напрямую читать/записывать аппаратные регистры. Это усложняет работу с программным обеспечением и обходится дорого, если покупать драйвер.
К счастью, Windows 95 и Windows 98 по-прежнему достаточно распространены, чтобы не доставлять особых неудобств в ознакомительной среде, не говоря уже о том, что эта тема станет спорной после того, как программное обеспечение будет модифицировано для поддержки Windows NT.
Оборудование
Схема двухпроводного интерфейса параллельного порта показана на рис. 1. Все компоненты легко доступны через Radio Shack и Digi-Key. Интерфейс может быть построен с использованием компонентов поверхностного монтажа или сквозных отверстий.
Рис. 1. Двухпроводной интерфейс параллельного порта.
Интерфейс основан на повсеместно распространенном 74HC05, обозначенном на схеме как U1. 74HC05 содержит шесть инверторов с выходами с открытым коллектором. Эта ИС выполняет несколько важных задач в этом приложении. Прежде всего, он обеспечивает некоторую изоляцию между схемой параллельного порта ПК и нижестоящей схемой. Он также преобразует сигналы TTL параллельного порта в открытый коллектор, что требуется для 2-проводного интерфейса. Выходы с открытым коллектором также необходимы для подключения двунаправленного сигнала SDA к одному выделенному входу и одному выделенному выходу параллельного порта (в отличие от использования одного двунаправленного контакта параллельного порта, что потенциально потребует от пользователя экспериментов с ПК). настройки биоса).
Поскольку сигнал SCL 2-проводного интерфейса подается только по отношению к IC (поскольку не реализована растяжка тактовой частоты), то SCL формируется с помощью D0 параллельного порта (вывод 2 разъема DB-25 ПК), сконфигурированного как вывод. D0 подключен к входу одного из инверторов 74HC05 (U1E). Тем не менее, некоторые параллельные порты могут не выдавать достаточно высокого напряжения, чтобы инвертор мог интерпретировать уровень как высокий, поэтому R3 используется как подтягивающий, чтобы сделать интерфейс нечувствительным к изменениям между ПК. Аналогичным образом, чтобы компенсировать различия между ПК, C4 включен в качестве заполнителя, который может быть заполнен при подключении к ПК с параллельным портом с высоким уровнем шума. Для большинства приложений этот конденсатор не понадобится, но если строится печатная плата, не помешает спланировать заранее и, по крайней мере, предусмотреть место для конденсатора. Наконец, выход инвертора U1E — SCL. Поскольку выход с открытым стоком, для реализации высоких логических уровней требуется подтягивающий резистор R1.
С другой стороны, сигнал SDA является двунаправленным. Он реализован с использованием одного входного контакта (контакт 12 разъема DB-25 ПК) и одного выходного контакта (D1, контакт 3 разъема DB-25 ПК). Связь между ПК и 2-проводным устройством осуществляется с помощью той же схемы, которая использовалась для генерации SCL. Выход D1 параллельного порта подключается ко входу другого инвертора (U1A) в 74HC05 (U1). И снова, чтобы убедиться, что высокий логический уровень параллельных портов достаточно высок для того, чтобы инвертор интерпретировал его как высокий, подтягивающий резистор R4 подтягивает сигнал D1 до уровня V 9.0155 СС . Аналогичным образом, конденсатор C5 является заполнителем на случай, если будет обнаружен шумный параллельный порт и потребуется дополнительная фильтрация. Выход инвертора имеет открытый сток и требует R2 для реализации высоких логических уровней.
Связь по SDA от 2-проводного устройства к ПК осуществляется с помощью одного из входных контактов параллельного порта (контакт 12) в дополнение к другому инвертору 74HC05 (U1B). Очень важно отметить, что для того, чтобы устройство могло обмениваться данными с ПК, прикладное программное обеспечение должно установить низкий уровень D1, чтобы выход инвертора освобождал SDA, позволяя 2-проводному устройству переключать SDA. Вход инвертора U1B контролирует SDA. Выход инвертора подтягивается к V CC через R6, который отвечает за определение высокого логического уровня. Последовательный резистор R5 используется для защиты в случае конфликта. Это последовательное сопротивление не является обязательным в этом примере, поскольку контакт 12 параллельного порта является только входным. С другой стороны, если бы мы использовали один из выводов ввода/вывода параллельного порта, то резистор был бы важен на тот случай, если бы к параллельному порту подавалось внешнее напряжение, в то время как параллельный порт пытался вывести высокий уровень. Даже если ваше прикладное программное обеспечение старается не вызывать конфликтов, возможно, что другое приложение может получить доступ к порту даже в течение короткого периода времени (например, ОС периодически сканирует принтер).
Поскольку для реализации 2-проводной связи требуются только три из шести инверторов 74HC05, три инвертора не используются. Чтобы они не пропадали зря, схема включает дополнительную схему, которая использует два неиспользуемых затвора для управления светодиодом, который можно включать и выключать под программным управлением. Контакт 17 параллельного порта является выходным контактом, используемым для управления инверторами U1C и U1D, которые параллельно обеспечивают достаточный потребляемый ток для управления широким спектром светодиодов. Резистор R7, как и R3 и R4, гарантирует, что входы инвертора видят достаточно высокие напряжения, чтобы интерпретировать их как высокие. Резистор R8 является токоограничивающим резистором светодиода, используемым для управления яркостью светодиода. Интересный момент, который следует отметить в отношении контакта 17 параллельного порта, заключается в том, что он имеет встроенный в ПК инвертор, поэтому запись «0» на бит 17 контакта инвертируется в высокий уровень до достижения DB25. Высокий уровень на входе U1C и U1D приводит к низкому уровню на выходе, что приводит к включению светодиода.
Входы оставшихся неиспользуемых инверторов должны быть подключены к GND, чтобы выход был hi-z, чтобы предотвратить конфликты.
Конденсаторы C1 и C2 включены в качестве хорошей практики для обхода напряжения источника питания вблизи места, где напряжение подается на печатную плату. Аналогично, развязывающий конденсатор C3 следует разместить как можно ближе к V CC и GND 74HC05.
При подключении SCL и SDA от интерфейса к 2-проводному устройству важно убедиться, что земля интерфейса совпадает с землей 2-проводного устройства. Кроме того, если SCL и SDA интерфейса подключены к цепи, содержащей 2-проводное устройство, имейте в виду, что вы можете получить R1 и R2 параллельно с 2-проводными подтягивающими резисторами схемы приложения. Если вы планируете подключить 2-проводное устройство «в цепи», вы можете соответствующим образом отрегулировать резисторы R1 и R2 или исключить их, если в прикладной схеме уже есть подтягивающие резисторы SDA и SCL.
Наконец, как указано на схеме, в прототипе интерфейса использовался гнездовой разъем DB25. Поставщик и номер детали показаны на схеме вместе с поставщиком и номером детали кабеля DB25 «вилка-вилка». В зависимости от расходных материалов, которые у вас есть под рукой, можно также легко использовать разъем DB25 «папа» вместе с кабелем «папа-гнездо» DB25.
Регистры параллельного порта
Связь между ПК и интерфейсом достигается с помощью всего четырех битов, находящихся в трех регистрах (см. Таблицу 1). Базовый адрес по умолчанию для параллельного порта (LPT1) обычно равен 378h. Два других возможных местоположения: 3БЧ и 278ч. Базовый адрес — это адрес 8-битного байта данных. Этот байт содержит биты, которые управляют контактами D7-D0, где младший бит равен D0. Байт, следующий за байтом данных по базовому адресу местоположения + 1, является байтом состояния. Для данной схемы интересующим битом в байте состояния является бит 5 (где бит 0 — младший бит), который является входом SDA. Бит 5 чтения байта состояния указывает на состояние SDA (через инверсию U1B). Перед выполнением чтения важно сначала убедиться, что D1 в байте данных записан в низком уровне, поэтому инвертор U1A находится в состоянии hi-z, что позволяет инвертору U1B определять состояние SDA. Байт, следующий за байтом состояния, является байтом управления, расположенным по базовому адресу + 2. Бит, представляющий интерес в байте управления, — это бит 3 (где бит 0 — это младший бит). Бит 3 подается через инвертор, встроенный в ПК, а затем выводится на контакт 17 DB25 ПК. Этот бит включает и выключает светодиод. Примеры чтения и записи описанных битов приведены ниже.
Таблица 1. Регистры параллельного порта
Проверка и отладка оборудования
После того, как оборудование будет построено, обязательно дайте ему быстрый визуальный осмотр. Перед подключением интерфейса к ПК или источнику питания убедитесь, что все соединения безопасны, правильны и отсутствуют нежелательные короткие замыкания. Убедитесь, что V CC случайно не замкнут на GND. После выполнения этих мер предосторожности подключите к интерфейсу источник питания 5 В (пока не подключайте кабель параллельного порта). Если источник питания имеет показания тока, убедитесь, что потребляется не более 10–15 мА. Если замечен больший ток, то трижды проверьте все соединения.
Убедитесь, что микросхема ориентирована правильно, и дважды проверьте полярность любых поляризованных конденсаторов, которые могли быть использованы (например, C1). Другой возможной причиной большего, чем ожидалось, тока питания являются неправильные значения подтягивающих резисторов. Случайное использование резистора 470 Ом вместо 4,7 кОм приведет к заметному увеличению.
Если все работает, подключите кабель параллельного порта. Потребляемый ток должен незначительно измениться, опять же из-за подтягивающих резисторов. На этом этапе вы можете либо попробовать прилагаемое программное обеспечение, либо проработать следующий раздел и узнать, как использовать утилиту Microsoft Debug для прямого чтения и записи регистра параллельного порта, который можно использовать для проверки и/или отладки. оборудование. Чтение и запись регистров параллельного порта с помощью отладки Microsoft Windows 95 и 98 стандартно поставляются с утилитой DOS под названием Debug, которую можно использовать для чтения и записи аппаратных регистров. Хотя Windows NT также включает отладку, операционная система не разрешает прямой доступ к оборудованию, поэтому использование отладки в NT не влияет на оборудование. Чтобы запустить отладку, просто перейдите в меню «Пуск» и выберите «Выполнить…». В поле ввода введите «Отладка». Должно появиться окно DOS с приглашением «-». На рис. 2 показан снимок экрана Debug. Использовать отладку легко. Например, чтобы прочитать байт по адресу 378h, в приглашении «-» введите следующее, а затем введите:
и 378
Результатом будет двухзначное (один байт) шестнадцатеричное значение, считанное с указанного адреса. Запись в память также может быть выполнена с помощью Debug. Например, чтобы записать 00h в ячейку 378h, введите следующее, а затем введите:
или 378 00
Настоятельно рекомендуется соблюдать осторожность при отладке и обращаться только к известным регистрам. Доступ к другим регистрам, вероятно, вызовет неизвестные/нежелательные побочные эффекты. Чтобы выйти из режима отладки, введите q, а для получения справки введите ?.
Вот несколько примеров использования Debug для проверки/отладки оборудования (расположенного по адресу LPT по умолчанию). Эти примеры также показаны на снимке экрана отладки (рис. 2).
-i 378 Прочитать байт данных.
-o 378 00 Записать байт данных в 00h. Это приведет к тому, что на выходе SDA и SCL будет высокий логический уровень.
-i 378 Прочитать байт данных. Это должно вернуть 00, так как мы только что записали его в 00.
-o 378 01 Это сделает SCL низким и SDA высоким.
-o 378 02 Это сделает SDA низким и SCL высоким.
-o 378 03 Это сделает SDA и SCL низким.
-o 378 00 Перед выполнением следующей команды убедитесь, что SDA высокий.
-i 379 Возвращает состояние SDA. Если бит 5 равен 0, то SDA имеет высокий уровень. Если 1, то SDA низкий. Имейте в виду, что для чтения SDA бит 1 байта данных должен быть сначала записан в 0, чтобы SDA был освобожден инвертором U1A. Если ничто внешнее не устанавливает низкий уровень SDA, то бит 5 должен читаться как 0.
-o 378 02 Теперь принудительно установите низкий уровень SDA.
-i 379 Еще раз прочитать состояние SDA. На этот раз бит 5 должен читаться как 1.
Для включения и выключения светодиода рекомендуется, чтобы неиспользуемые биты в управляющем байте оставались без изменений. Для этого сначала считывается регистр, а затем выполняется операция И или ИЛИ для установки или очистки бита 3. Имейте в виду, что внутри ПК имеется дополнительный инвертор.
-i 37A Прочитать управляющий байт. Как вы можете видеть на скриншоте, мой ПК вернул значение 0C (и светодиод в данный момент не горит). Для включения светодиода необходимо сбросить бит 3. Это может быть достигнуто с помощью И чтения контрольного байта с F7h. Таким образом, для моего чтения 0C очистка бита 3 приводит к 04. Это будет записано обратно в управляющий байт, чтобы включить светодиод.
-o 37A 04 Включить светодиод
Рис. 2. Скриншот отладки.
Программная утилита параллельного порта
На рис. 3 показан снимок экрана программного обеспечения для параллельного порта, написанного специально для аппаратного обеспечения, представленного в этих указаниях по применению. Его можно скачать по адресу: /media/en/technical-documentation/tech-articles/parallel-port.zip
.Скриншот может немного отличаться от загруженного, так как вероятны улучшения/дополнения.
Рисунок 3. Скриншот утилиты параллельного порта.
Программное обеспечение по умолчанию использует LPT-адрес 378h. Если вы обнаружите, что программное обеспечение не может взаимодействовать с оборудованием, следует попробовать другой адрес, выбрав другой переключатель «Порт». Самый простой способ определить, взаимодействует ли программное обеспечение с оборудованием, — нажать кнопки включения и выключения светодиодов. Если это удалось, попробуйте нажать кнопку «Тест», которая переключает D1 (U1A) и считывает значение обратно через U1B. Результаты будут отображаться в поле статуса.
Импульс синхронизации можно игнорировать и отключить. Позже, если вы хотите использовать осциллограф для захвата двухпроводной связи, вы можете включить синхронизирующий импульс и поместить щуп осциллографа на контакт 17 DB25 и использовать его в качестве триггера.
На этом этапе вы должны быть готовы к обмену данными с любыми 2-проводными устройствами, которые вы подключили. Убедитесь, что SDA, SCL и GND устройств подключены к оборудованию. В идеале вы также хотели бы убедиться, что V CC 74HC05 максимально близок, если не равен V 9.0155 CC устройства.
Существует несколько способов связи с устройством, но сначала необходимо убедиться, что программа знает, с каким 2-проводным ведомым адресом связываться. Программное значение по умолчанию — A0 (шестнадцатеричное), которое является наиболее распространенным для наших цифровых потенциометров, хотя это часто зависит от адресных контактов устройства, если таковые имеются. Чтобы изменить адрес 2-wire, введите его в поле редактирования адреса и нажмите «Изменить». Если вы не знаете 2-проводной адрес устройства, проверьте его в паспорте устройства.
Самый простой способ чтения и записи одно- и/или двухбайтовых регистров устройства — это использование раздела программного обеспечения «Одно- и двухбайтовые чтения/записи». Этот раздел идеально подходит для программирования/настройки устройства, поскольку все детали 2-проводного подключения (запуск, остановка, ACK, NACK и т. д.) выполняются автоматически. Просто введите желаемый адрес памяти для чтения (в шестнадцатеричном формате) и нажмите «чтение» или «запись». Если вы хотите написать, то вам также необходимо заполнить поле «Данные» желаемыми данными для записи.
Другой способ связи с устройствами — использование раздела «2-Wire Functions». Этот раздел идеально подходит, если вы хотите узнать подробности о двухпроводном протоколе. Прежде чем показать несколько примеров, несколько кнопок заслуживают пояснений. Кнопка «Send Write» использует двухпроводной адрес из поля двухпроводного адреса, а затем маскирует LSB (бит R/W) до 0. Затем отправляются 8 бит. Кнопка «Send Read» также использует тот же двухпроводный адрес, но устанавливает LSB равным 1, указывая на то, что последует чтение. Затем отправляются 8 бит. Кнопка «Bus Reset» тактирует SCL 9раз, сбросив двухпроводную шину.
Примеры (с использованием адреса подчиненного устройства по умолчанию):
- Запись адреса памяти с 7Fh на 01h.
Старт
Отправить Запись
Данные [7F]
Данные [01]
Стоп - Чтение адреса памяти 7Fh (чтение одного байта)
Запуск
Отправка Запись
Данные [7F]
Запуск — часто называется повторным запуском.
Send Read
Rd w/NACK — здесь используется Rd w/NACK, поскольку будет прочитан только 1 байт.
Стоп - Чтение адресов памяти F0h и F1h (чтение нескольких байтов)
Start
Send Write
Data [F0]
Start
Send Read
Rd w/ACK — если нужно прочитать более 2 байтов, эту команду можно повторить
Rd w/NACK — последнее чтение должно быть w/NACK
Остановка
Заключение
В этих указаниях по применению описывается, как создать простой, дешевый и быстрый двухпроводной интерфейс с использованием параллельного порта ПК.