2013-11-26 12 views
0

Мне нужно протестировать LPT-порты через Loopbacktest. У меня есть Loopbackdongles и просто хочу знать, работают ли порты LPT правильно. Я понятия не имею, как достичь этой цели с помощью C#. Я знаю, что мне нужны эти inpout.dll для 32- или 64-разрядных. Но как я могу использовать это для петли?C# LPT loopbacktest

Заранее спасибо.

ответ

1

Параллельные порты прошли путь додо пятнадцать лет назад. В каменном веке они использовались для принтеров, интерфейс Centronics был стандартным. Стандартный параллельный порт тогда выглядел так схематично:

enter image description here

Обратите внимания, что это было 8 бит для данных Out, но время не бит, зарезервированных для данных в системе. Принтеры не разговаривали, кроме нескольких сигналов подтверждения и подтверждения (ACK, Error, Selected, Out of Paper, Busy).

Это не очень полезно для ввода/вывода общего назначения, поэтому через некоторое время интерфейс был улучшен. Скорее плохо, к сожалению, единого отраслевого стандарта не было. По крайней мере, EPP (Enhanced Parallel Port) и ECP (Extended Capabilities Port) не стали доминировать. Порты, используемые в промышленных приложениях, просто использовали свои собственные специфические для поставщика схемы, взаимно несовместимые. Это полностью уничтожило идею, USB поставил последний гвоздь в гроб.

Соответственно, в программном обеспечении никогда не было общего стандарта. MS-Dos просто поддерживает LPT-устройство для принтеров, Windows 'Параллельный драйвер поддерживает только взаимодействие с принтером и просто реализует рукопожатие STROBE/ACK только с поддержкой вывода.

Итак, первое, что вам нужно, это драйвер , который поддерживает ваш параллельный порт. Нередко это inpout32.dll, очень простой драйвер, который дает программе пользовательского режима прямой доступ к портам ввода-вывода. В этом случае вам также необходимо знать, на каком адресе отображается порт и какие регистры он использует. Обратитесь к поставщику устройства, которое вы используете, если не знаете.