Параллельный порт в Linux
От: vobreeze  
Дата: 20.10.05 09:11
Оценка:
Всем привет!

В настоящее время пытаюсь соединить два компьютера через lpt порт. Использую двунаправленный режим (настройка Bi-directional в BIOS компьютеров). Для передачи данных использую Control Port (Base Port + 2). Распиновка этого порта следующая:
Bit0 Pin1
Bit1 Pin14
Bit2 Pin16
Bit3 Pin17
и так далее

Для записи в порт и чтения из порта использую outb и inb макросы, когда записываю в порт данные 000001 на обоих компьютерах я могу их прочитать и даже померять мультиметром — на Пин1 при этом 0 Вольт (Strobe инвертирован), когда записываю в порт 000000 (Strobe теперь установлен в 0), на Пин1 появляется логическая единица — 5 Вольт. Вроде все работает, но когда я соединяю два компьютера этим проводом, предварительно записав в порт на каждом из них 000001 (0 Вольт на на Пин1), затем на первом компьютере записываю в порт 000000 (5 Вольт на Пин1), читаю из порта на первом компьютере — все ок, читаю из порта на втором компьютере — ничего не поменялось. Казалось бы на конце провода должно быть 5 Вольт, то есть состояние порта на Пин1 второго компа должно стать 5 Вольт (000000), но оно остается 0 Вольт (000001).
Провод рабочий, пины 1, 14, 16, 17 на обоих концах прозваниваются — соединены напрямую.

Вопрос: почему?
Может посоветуете какой-нибудь guide?

Заранее благодарен.
Re: Параллельный порт в Linux
От: ДимДимыч Украина http://klug.org.ua
Дата: 20.10.05 22:43
Оценка:
Здравствуйте, vobreeze, Вы писали:

V>Всем привет!


V>В настоящее время пытаюсь соединить два компьютера через lpt порт. Использую двунаправленный режим (настройка Bi-directional в BIOS компьютеров).


Во-первых, нет гарантии, что после запуска ядра порт останется в том режиме, в который его перевела BIOS. Возможно, нужно принудительно выставить бит 5 в регистре управления.

V>Для передачи данных использую Control Port (Base Port + 2). Распиновка этого порта следующая:

V>Bit0 Pin1
V>Bit1 Pin14
V>Bit2 Pin16
V>Bit3 Pin17
V>и так далее

Во-вторых, насколько мне известно, для bi-directional используется регистр данных:



V>Для записи в порт и чтения из порта использую outb и inb макросы, когда записываю в порт данные 000001 на обоих компьютерах я могу их прочитать и даже померять мультиметром — на Пин1 при этом 0 Вольт (Strobe инвертирован), когда записываю в порт 000000 (Strobe теперь установлен в 0), на Пин1 появляется логическая единица — 5 Вольт. Вроде все работает, но когда я соединяю два компьютера этим проводом, предварительно записав в порт на каждом из них 000001 (0 Вольт на на Пин1), затем на первом компьютере записываю в порт 000000 (5 Вольт на Пин1), читаю из порта на первом компьютере — все ок, читаю из порта на втором компьютере — ничего не поменялось. Казалось бы на конце провода должно быть 5 Вольт, то есть состояние порта на Пин1 второго компа должно стать 5 Вольт (000000), но оно остается 0 Вольт (000001).

V>Провод рабочий, пины 1, 14, 16, 17 на обоих концах прозваниваются — соединены напрямую.

Не боитесь порты сжечь таким соединением?

V>Вопрос: почему?


Может, уже сожгли?

V>Может посоветуете какой-нибудь guide?


здесь или вообще здесь
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.