Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Берете в руки отладчик и разбираете Windows по косточкам.
Находите функцию обрабатывающую исключение(Доступ к портам из пользовательского режима)
Потом пишете свой обработчик(драйвер режима ядра) который подменяет эту функцию.
При обработке исключения проверяете идет ли обращение к LPТ и переправляете его в USB в противном случае вызываете старый обработчик.
После того как все заработает садитесь за калькулятор и начинаете считать.
Для того, чтобы вытолкать байт через ножку LPT (клок и данные) нужно сделать 16 пересылок.
На обычном LPT это можно сделать на высокой скорости в худшем случае порядка 2мкс.
То есть передача 1К на LPT займет 16384 пересылки или 32 миллисекунды.
По шине USB при побайтовой передаче(меньше нельзя) можно достичь скорости 1 байт/миллисекунду (FULL SPEED).
Таким образом для пересылки 1К нужно будет потратить более 16 секунд.
При считывании ситуация еще хуже, так как для считывания нужно послать байт команды считать состояние ножек и принять байт данных с сочтоянием ножек.
Автор и не скрывает, что устройство тормозит:
Interception of port accesses takes place in a driver in privileged mode. But wasted time for the interception itself is small in opposite to that with each IN instruction a USB frame must be waited for, at least 125 µs. This may lead to 100x lengthening of time!
Есть желающие совершить чудо? :-)