Как найти базовый адрес USB для устройства с параллельным портом в Linux? - PullRequest
3 голосов
/ 06 апреля 2011

Я занимаюсь программированием ввода-вывода на C в Ubuntu. И мне нужен базовый адрес порта для записи данных.

Мой ноутбук не имеет параллельного порта. Поэтому я купил разъем USB для параллельного порта. Я подключил устройство и обнаружил его в / dev / usb / lp0

Я запустил "lsusb", чтобы увидеть список устройств, и я также вижу идентификатор. Но как я могу получить базовый адрес? Для обычных аппаратных параллельных устройств базовый адрес равен 0x0378. этот адрес не обнаруживается при использовании USB-устройства для параллельного подключения.

Пожалуйста, помогите.

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Параллельный порт USB не имеет базового адреса - это не имеет смысла для USB.Боюсь, что несколько дней назад закончились дни ввода-вывода на оборудовании ПК с помощью инструкций in и out, хотя многие старые уроки все еще сохранились в Интернете.

Вы можете записать байты в параллельный порт как символьное устройство, и они появятся на выводах порта принтера.Адаптер USB будет ожидать, что на другом конце данные рукопожатия точно , как принтер.Если вы хотите сделать общее прототипирование ввода / вывода, вам лучше использовать простой USB-микроконтроллер, например Arduino.

Дальнейшее обсуждение здесь .

2 голосов
/ 05 февраля 2012

Если вы по-прежнему заинтересованы использовать это устройство USB-для параллельного принтера для собственной битовой синхронизации, важно знать, что их встроенная прошивка всегда позволяет управлять D0 ..D7 , INIT (в качестве выходов), / ERR , ONL , PE (в качестве входов), но никогда для / ACK , BUSY (входы), / STB , / AF , / SEL (выходы) контакты. И вам нужен 8-битный фиксатор (например, 74HCT574) для перехвата данных во время стробирования.

См. здесь (https://www -user.tu-chemnitz.de / ~ ygu / bastelecke / PC / USB2LPT / faq # DIY ) особенно для возможных скоростей передачи данных.

Доступ со стороны программного обеспечения немного сложен, но возможен, и вам, возможно, придется реструктурировать свое программное и аппаратное обеспечение, чтобы использовать такие адаптеры. Я не знаю, для Linux, как получить доступ, но ИМХО вам не нужно писать драйвер режима ядра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...