Что такое последовательный порт pci

Что такое последовательный порт pci

Привет всем, кого интересует то, что такое PCI разъём. Думаю, таких много, потому что этот стандарт используется до сих пор. Несмотря на выход современных аналогов. Если ваш компьютер уже не молод, скорее всего, вы тоже имеете дело с PCI.

Эта статья поможет вам разобраться в его особенностях и отличиях от модификации «Express», о которой, быть может, вы слышали, так как она сейчас широко распространена.

Знакомство с термином

Упомянутая выше аббревиатура расшифровывается как Peripheral component interconnect, что в дословном переводе с английского означает взаимосвязь периферийных компонентов. Хоть это словосочетание не отображает физическое воплощение PCI, все же выбрано не безосновательно.

Как вы понимаете, «мозг» компьютера включает в себя разные устройства (аудио- , видео- , сетевую плату и пр.), т. н. периферийные компоненты. Большинство из них подсоединятся к материнской плате.

Для взаимосвязи между девайсами и материнской используются специальные электронные магистрали, проще говоря, шины. Таковой как раз и является PCI. На деле это длинный слот расширения, расположенный на материнке, куда может вставляться видеокарта, оперативная память и пр.

О контроллере

Есть еще такое понятие как PCI-контроллер Simple communications или Management Engine Interface. Он обеспечивает взаимодействие драйверов установленных на компе программ и дров материнки. Иногда после переустановки системы в Диспетчере устройств рядом с этим пунктом загорается желтый треугольник.

В этом случае следует скачать драйвера на официальном сайте Intel или другом надежном ресурсе и установить их. Ведь данный интерфейс контролирует температуру, вращение кулеров, режимы сна и пр.

История

За создание и поддержку интерфейса отвечает предприятие PCI Special Interest Group. Оно основанно в 1992 году под началом корпорации Intel. Тогда же вышел в свет первый его вариант, выпущенный специально для реализации функционала процессоров Pentium, Pentium Pro и 486.

В следующем году появилась следующая модель 2.0. А еще через 3 года — 2.1, которая была на пике популярности. Правда, через 2 года компьютерная графика вышла на новый уровень, и PCI перестала отвечать его требованиям. Тогда видеокарты стали подключать через новый на тот момент разъем AGP.

Тем не менее, рассматриваемый нами PCI разъём не утрачивал своих позиций вплоть до 2005 года. За это время вышло множество его поколений. Но не думаю, что вы хотите забивать ими голову. Тем более что для рядового пользователя отличия между ними незначительны или непонятны.

Характеристики PCI

Основные параметры порта, о которых стоит знать:

  • Частота — 33,33 или 66,66 мегагерц, пересылка информации осуществляется синхронно;
  • Разрядность — как обычно, 32 либо 64 бита;
  • Адресное пространство памяти и портов ввода-вывода одинаковое — 4 байта (32 бита);
  • Другое пространство адресов (конфигурационное) в расчете на 1 функцию составляет 256 байт;
  • Максимальная скорость модели на 32 бита и 33 МГц составляет 133 мегабайта за секунду;
  • Напряжение — 3,3 или 5 Вольт;
  • Имеется функция Multiply bus master, то есть несколько контроллеров винчестеров могут действовать на одной шине сразу.

Разница с PCI-Express

Это современная модификация предшественника. В ее основе лежит программная модель PCI, однако существенно повышена производительность. Большинство устройств в настоящее время выпускаются именно с этим интерфейсом.

Читайте также:  Скайп нет звука микрофона

Первое отличие между ними состоит в том, что устаревший вариант — параллельный, а новый — последовательный. Это значит, что во втором случае действует двунаправленное соединение, которое может включать в себя несколько линий (от x1 до x32). Чем их больше, тем выше скорость работы.

Как бы там ни было, пропускная способность современной шины будет выше, чем у устаревшего собрата. Для сравнения: у PCI с частотой 66 МГц она составляет 266 Мб/с, а у PCI-E 3-го поколения на 16 линий — 32 Гб/с.

Теперь вам известны основные аспекты про PCI разъём.

Советую не останавливаться на этой информации и получить новые знания из других статей нашего блога.

  • Версия: 2.0.4.0 (01 июл 2013)
  • Файл *.inf: nmports.inf
  • Версия: 2.0.4.0 (01 июл 2013)
  • Файл *.inf: nmports.inf

Драйверы для PCI Serial Port собраны с официальных сайтов компаний-производителей и других проверенных источников. Официальные пакеты драйверов помогут исправить ошибки и неполадки в работе PCI Serial Port (устройства ввода). Скачать последние версии драйверов на PCI Serial Port для компьютеров и ноутбуков на Windows.

Лет 10-15 назад параллельный порт был довольно востребованным интерфейсом для связи между устройствами. Сегодня производители различных устройств отдают предпочтение последовательным интерфейсам. Тем не менее, и сегодня LPT порт всё ещё можно встретить. А некоторые разработчики ещё пишут под него программы (или поддерживают написанные во времена расцвета параллельных интерфейсов). Но в компьютерах сейчас LPT порт – достаточно большая редкость. Существуют, конечно, платы расширения для компьютера, которые реализуют интерфейс LPT. Они в основном представляют собой платы на шине PCI. К сожалению, далеко не весь софт, который был написан для интегрированных в материнскую плату LPT портов, будет работать с LPT-PCI-платами.

Предлагается решение этой проблемы: программный класс, написанный под .NET, и динамическую библиотеку, которая работает с LPT. Данная реализация проверена на 32- и 64-разрядных Windows XP, Windows 7, 8 и 10 как со встроенными LPT портами, так и реализованными в виде плат расширения на шине PCI или PCI-Express. Скачать драйвер для LPT порта можно по ссылке внизу после статьи.

1 Установка драйвера для работы с LPT портом

В приложенном архиве находятся две папки – для 32-разрядной и для 64-разрядной версий Windows. В одной из папок лежит файл InstallDriver.exe. Сначала запустите этот файл, он установит динамические библиотеки в систему. После этого компьютер следует перезагрузить.

Чтобы использовать предлагаемый драйвер, файлы inpout32.dll и inpoutx64.dll должны располагаться в одной директории с исполняемым файлом вашей программы.

2 Программный класс использования библиотек работы с LPT портом

Мной был написан класс для .NET, который использует динамические библиотеки inpout32.dll и inpoutx64.dll и позволяет считывать из параллельного порта и записывать в его регистры данные.

Упомянутые библиотеки написаны не мной. Я предлагаю удобный класс-оболочку, упрощающий работу с данными библиотеками. Кроме того, автор библиотек в файле readme.txt сообщает, что его драйвер не поддерживает PCI устройства. Мне удалось его запустить для работы как с интегрированным параллельным портом, так и LPT портом, реализованном в виде платы расширения на шине PCI-Express. Причём порт отлично работает и на современной Windows10 x64, и на более старых системах.

Читайте также:  Как обрезать фотографию в gimp

Вот код класса LPT на языке VB.NET:

Код класса LPT на языке VB.NET (разворачивается)

Код класса LPT на языке C#:

Код класса LPT на языке C# (разворачивается)

3 Применение класса .NET для работы с LPT портом

Если мы посмотрим на список экспортируемых функций библиотеки inpout32.dll с помощью замечательного инструмента DLL Export Viewer от NirSoft, то увидим следующую картину:

Список экспортируемых функций библиотеки inpout32.dll

Это список функций, которые мы можем использовать. Фактически все они используются в классе LPT, но реализация скрыта, и из публичных методов пользователю доступны только два метода и одно свойство (они рассматриваются чуть далее).

При инстанцировании класс сам определит, библиотеку какой разрядности ему использовать – inpout32.dll или inpoutx64.dll. Поэтому от пользователя не требуется никаких действий по инициализации или определения разрядности используемой dll. Вы можете сразу записывать или читать из LPT порта. Одно «Но»: если драйвер не установлен, обращение к любому из методов динамической библиотеки вызовет исключение, поэтому рекомендую использовать блоки Try…Catch для перехвата и обработки исключений.

Несколько примеров использования класса LPT.

Для определения, используется ли 64-разрядная версия драйвера (inpoutx64.dll при True) или 32-разрядная (inpout32.dll при False) (на самом деле, это знать не обязательно, класс использует именно ту библиотеку, которая нужна, но вдруг вам для чего-то понадобится это узнать из своей программы):

Для записи числа "123" в регистр контроля LPT порта вызовите из своего класса:

Для чтения одного байта из регистра данных LPT порта и чтения регистра статуса:

Здесь currentPortадрес LPT порта. Причём, если у вас интегрированный LPT порт, то его адрес будет, скорее всего, 378h. А если у вас LPT порт на плате расширения, то адрес будет другой, например, D100h или C100h.

Чтобы узнать адрес LPT порта, зайдите в диспетчер устройств Windows, найдите раздел Порты COM и LPT, выберите используемый параллельный порт, и в окне свойств (щёлкнув по нему правой кнопкой мыши) посмотрите, какие ресурсы использует выбранный порт (необходимо брать первое значение из диапазона).

Ресурсы, используемые LPT портом, в диспетчере устройств Windows

Например, в данном случае необходимо использовать номер порта C100.

Скачать вложения:

    Скачать драйвер для LPT порта (4478 Скачиваний)

Поделиться

Похожие материалы (по тегу)

Последнее от aave

Другие материалы в этой категории:

8 комментарии

Вы не подскажете,что дальше делать? Я скачал visual C , скопировал ваш код для С# и вставил. но при отладке выдает ошибки. Например такое: Ошибка 1 Элемент "ProjectData" не существует в текущем контексте. C:UsersРоманAppDataLocalTemporary ProjectsConsoleApplication1Program.cs 71 17 ConsoleApplication1
Я ни бум-бум. Но мне нужно изменить аддресацию для Pci-LPT платы St-lab i400 Parallel Port. Там значения нестандартные прописались D090-D097. Что делать? Хотелось бы иметь возможность активировать этот код

Читайте также:  Телевизор с выходом в интернет через wifi

Роман, а что значит скачал "Visual C"? Дело в том, что нужна подходящая среда разработки (IDE), например, Visual Studio или Visual Studio Code. Какую вы используете? Конкретно по ошибке "Элемент "ProjectData" не существует в текущем контексте" я вам не подскажу. Скорее всего дело в настройках проекта, это уж смотрите сами. Попросите кого-то более опытного помочь настроить IDE. Код рабочий, 100%. Мне по работе приходится иметь дело со старым оборудованием, и я успешно использую его. Только я использую VB.NET, а код на C# получил путём декомпиляции готовой сборки. Попробуйте использовать код на VB.NET. Он к тому же проще для понимания новичкам.

Привет! Я понял, что я не то что-то делаю. Я попробую то что вы советуете — среду vb.net. Мне только главное знать,поможет ли это мне запустить старый лпт сканер 98 года: canoscan fb320p. Так как сканер отказывает работать с нестандартными адресами порта. Пока что единственный способ каким мне удалось решить эту проблему, это установка vmware player — добавление виртуального lpt, которому автоматом присваиваются правильные адреса и сканер тут же реагирует и начинает работать. Только есть в этом одна проблема: очень медленно! Минут 20-30 занимает сканирование 300 точек. Хотелось бы как-то решить эту проблему без vmware, но вот думаю, поможет ли этот код, так как я в описании функций не вижу там инструкций для смены аддресации.

Мне кажется, что для решения вашей задачи со сканером это решение не подходит, и запустить старый сканер не получится. Потому что придётся самому переписывать софт для сканирования. Ваша задача должна решаться как-то на уровне драйвера порта или той программы, которая используется для сканирования. Может быть, есть обновлённые драйверы для сканера с возможностью указывать адрес порта. А может проще найти старый комп, где на материнке присутствует LPT. Кстати, Asus до сих пор выпускает материнские платы с LPT под более-менее современные процессоры, например, модель H81M-C.

Спасибо тебе, добрый человек. Установка этого драйвера и замена inpout32.dll в директории исполняемой программы, помогли запустить софт, который ранее работал только на Win XP из под Win 10×64

Василий, рад, что помог!

В программировании я не разбираюсь. Есть такая проблема: для прошивки контроллеров AVR раньше использовал программатор AVReal. Он быстро и качественно работает. Покупая новый компьютер я специально искал материнку с LPT портом. Однако в Win10-64бит старые драйвера ввода-вывода не работают и они должны иметь цифровую подпись. Соответственно получаю сообщение об ошибке при использовании программатора. У меня вопрос: можно ли с Вашим драйвером LPT порта решить эту проблему? Какие шаги по установке и использованию я должен выполнить? Если не сложно, скиньте ответ на мою почту

Ссылка на основную публикацию
Что такое медиана числового ряда
Среднее арифметическое ряда чисел – это сумма данных чисел, поделенная на количество слагаемых. Среднее арифметическое называют средним значением числового ряда....
Что делать если игры не скачиваются
Play Market — официальный магазин приложений для Андроида и главный источник загрузки новых игр и программ на смартфоны и планшеты...
Что делать если заглючил планшет
Если завис планшет леново, самсунг, асус, престижио, дигма и так далее, да еще и в самое неподходящее время радости конечно...
Что такое номер ssid
Компьютеры и телефоны уже давно прочно вошли в нашу жизнь. Помимо смартфонов и ноутбуков, существуют еще десятки устройств, которые имеют...
Adblock detector