|
Перехват LPT-порта |
|
|
|
Jul 27 2007, 07:00
|
Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395

|
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?
|
|
|
|
|
Jul 27 2007, 09:16
|
Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395

|
Я посмотрел на ссылки и пока увидел только программы. А каким образом и где мне подключиться к в "разрез" цепочки (стороннее устройство с lpt-портом)->(кабель)->(принтер)?
|
|
|
|
|
Jul 27 2007, 09:42
|
старушка-процентщица
   
Группа: Свой
Сообщений: 817
Регистрация: 8-03-06
Пользователь №: 15 067

|
Цитата(Edev @ Jul 27 2007, 11:00)  Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи? Если стороннее устройство действительно только передает данные, вопросов никаких быть не должно: физически можно подключиться через какую-нибудь буферную м\схему, ЛН или АП (с 1-го по 18 выв. (шина данных со 2 по 9 выв., если мне не изменяет память). Но на самом деле LPT порт двунаправленный, поэтому без соответствующей программы не обойтись.
|
|
|
|
|
Jul 27 2007, 09:57
|
Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395

|
Думаю при общении с принтером наверное все-таки передает/получает. Я не совсем пока уверен. Насколько я понимаю можно подклюсить мой компьтер по LPT физически через буферную м\схему и поставить программу анализатор LPT-траффика уже на моем компьютере?
|
|
|
|
|
Jul 27 2007, 10:00
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 10-11-06
Из: Питер
Пользователь №: 22 178

|
Цитата(Mirabella @ Jul 27 2007, 13:42)  Если стороннее устройство действительно только передает данные, вопросов никаких быть не должно: физически можно подключиться через какую-нибудь буферную м\схему, ЛН или АП (с 1-го по 18 выв. (шина данных со 2 по 9 выв., если мне не изменяет память). Но на самом деле LPT порт двунаправленный, поэтому без соответствующей программы не обойтись. используются Мосты У стороннего устройства интерфейс какой, если PCI можно (производитель OXford Semiconductor) Мосты PCI – LPT OX12PCI840 Мост из шины PCI в параллельный порт OX16PCI952 Мост из шины PCI в последовательный и параллельный порт OX16PCI954 Мост из шины PCI в последовательный и параллельный порт OXmPCI952 Мост из miniPCI в последовательный и параллельный порт OXmPCI954 Мост из miniPCI в последовательный и параллельный порт Либо с интерфейсом PCI OX16PCI952 Мост из шины PCI в последовательный и параллельный порт OX16PCI954 Мост из шины PCI в последовательный и параллельный порт OXmPCI952 Мост из miniPCI в последовательный и параллельный порт OXmPCI954 Мост из miniPCI в последовательный и параллельный порт
Сообщение отредактировал MariSev - Jul 27 2007, 10:02
--------------------
Даешь Xmultiple России!!! :)
|
|
|
|
|
Jul 27 2007, 10:36
|
Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395

|
Цитата(MariSev @ Jul 27 2007, 14:00)  используются Мосты У стороннего устройства интерфейс какой, если PCI можно (производитель OXford Semiconductor) Мосты PCI – LPT OX12PCI840 Мост из шины PCI в параллельный порт OX16PCI952 Мост из шины PCI в последовательный и параллельный порт OX16PCI954 Мост из шины PCI в последовательный и параллельный порт OXmPCI952 Мост из miniPCI в последовательный и параллельный порт OXmPCI954 Мост из miniPCI в последовательный и параллельный порт Либо с интерфейсом PCI OX16PCI952 Мост из шины PCI в последовательный и параллельный порт OX16PCI954 Мост из шины PCI в последовательный и параллельный порт OXmPCI952 Мост из miniPCI в последовательный и параллельный порт OXmPCI954 Мост из miniPCI в последовательный и параллельный порт У стороннего устройства только доступ к LPT есть, который в свою очередь к принтеру подклюсен. Раскрутить устройство, чтобы посмотреть, что там внутри неполучится.
|
|
|
|
|
Aug 31 2007, 05:11
|
Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179

|
Поднимаю тему! Возникла подобная ситуация - управлящая панель HAKKO V710ISD выводит информацию в текстовом режиме на EPSON LX-300. Пытаюсь эту информацию писать в файл. Шнур сделал подключив d1-d8 к соответсвующим входам d1-d8 компа. Данные считываются с порта и пишутся в файл - программка на делфи с использованием библиотеки lptwdmio.sys. Запись идет, но есть проблема с задвоением, затроением и т.д. считываемой информации  . Т.е. не могу определить смену символа в порту. Прошу помощи знающих людей - с использованием каких сигналов устройство общается с принтером для отправки данных на печать? - у меня такое подозрение что ask и busy не используется - писал вариант программы с реализацией режима spp (через ask и bysy) и просто чтение из порта без смены статуса занятости принтера - без разницы - такое впечатление что управляющую панель не волнует готов принтер или нет - отправляет данные и все...
|
|
|
|
|
Aug 31 2007, 09:02
|
Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179

|
Цитата(-Al- @ Aug 31 2007, 15:42)  А сигнал STROBE учитываете?? пытался - но о появляется только 1 раз и то почему то не всегда или я не успеваю последущие обнаружить... пользовался LPT 3D анализатором. И строб должен появлятся только после busy 0 и ask 1? - дело в том что я писал версию программы без измениния статусов busy и ask - и все равно данные в порт выдавались. Вообще ничего не понимаю  Сейчас вообще написал программу строго по диаграмме: начальные установки ask1, busy0 появление строба - уставление busy 1 - чтение данных до окончания строба - установка ask0 - установка busy 0, ask1 - следущий цикл. Сегодня поеду проверять.
|
|
|
|
|
Aug 31 2007, 12:36
|
Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179

|
Цитата(AlexanderX @ Aug 31 2007, 19:15)  Вы практически однозначно пропускаете стробы, а сами данные могут присутсвовать на линии различное время. Поэтому для надежного приема всех данных нужно сделать специфический девайс, с внутренней памятью. В память данные будут записываться по протоколу LPT порта, а вычитываться через любой доступный интерфейс Вашей программой. Если интерфейс чтения окажется медленнее, чем интерфейс записи, то объем памяти должен обеспечивать накопление максимально возможного количества данных, идущих на принтер. Проверил работу новой версии программы - пишет информацию и дублей нет. Зато есть пропуски(их мало - но они есть  ) - вероятно не все стробы получается обнаружить. Оптимизировать программу уже некуда - поэтому быстрее крутить опрос входа для обнаружения стробов вряд ли получится... А что за специфический девайс?
|
|
|
|
|
Sep 3 2007, 11:52
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623

|
Для начала найдите в инете спецификацию работы LPT порта. Там расписаны все сигналы порта. Программно перехватить можно только на уровне драйвера Windows. Все остальное только при помощи железа. Причем достаточно быстрое железо, длительность STROBE 10 мкс.
|
|
|
|
|
Sep 4 2007, 02:00
|
Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179

|
Цитата(AlexanderX @ Sep 3 2007, 19:18)  На самом деле длительность строба обычно гораздо меньше, около 0.5мкс но это не самая большая проблема. Для современных ПЛИС и даже микроконтроллеров - это не проблема. Отключил все ненужные службы. Комп, к которому подключена управляющая панель - будет заниматься только записью с LPT. Запустил программу в тестовом режиме - посмотрю за день что назаписывает - пока претензий нет.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|