2009-08-27 1 views
4

Я ищу книгу и/или пример кода, как выполнять перенаправление последовательного порта или разделение порта. Я пишу много приложений для com-порт и хочу написать приложение для монитора, которое позволит мне смотреть последовательный порт между приложением и устройством.Перенаправление или разделение последовательного порта

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

Я понимаю, что в некоторых случаях это должно быть выполнено на уровне ядра. (в случаях USB)

Я написал приложение для монитора, используя system.IO.Ports в C#. Если мне нужно называть сборку C++/C, это нормально.

Благодаря

Джо

ответ

3

Вы можете обнаружить, что PortMon Марк Руссинович является полезным в вашей работе, хотя это не предусмотрено с исходным кодом. Он будет регистрировать все системные вызовы, связанные с портом, и обладает широкими возможностями фильтрации, чтобы поддерживать этот журнал в управляемом размере.

Редактировать: PortMon работает, вводя драйвер устройства режима ядра в систему, когда он запускается. Этот драйвер подключает порты, которые он хочет контролировать, вставив драйвер фильтра в стек. Этот драйвер фильтра сообщает обо всех IRP, которые проходят через него в приложение. Это не простое животное, которое можно реализовать на любом растяжке, и это действительно невозможно сделать в пользовательском режиме.

В Windows DDK есть пример кода для драйвера фильтра портов, но это большая работа, чтобы перейти от примера к чему-то полезному.

Решение для чистого пользовательского режима, которое может работать, состоит в использовании двух дополнительных последовательных портов для подслушивания провода. Пара USB для последовательных адаптеров и немного проводки будут делать то, что вам нужно. Тогда это всего лишь «малый вопрос программирования» для мониторинга и корреляции линий отправки и получения. Одночиповое решение может быть основано на FT2232H device from FTDI, имеющем доступный evaluation module. Добавьте несколько переводчиков уровня RS232 и некоторые D-разъемы, и у вас есть последовательный eavesdropper на USB, который выглядит как два COM-порта для Windows.

Другой подход, основанный на коробке, заключается в том, что многие логические анализаторы и осциллографы смешанного сигнала могут выполнять декодирование по серийному протоколу, часто как необязательный компонент. Одним из источников недорогих программных решений USB + является Saelig. Я сам купил чипы и модули, но не имею никакого прямого опыта с любыми логическими анализаторами на основе USB, которые они продают, несмотря на то, что думаю, что у меня должен быть один в сумке вместе с нетбуком ...

+0

Спасибо, RB, я использую XPort в настоящее время, но хочу встроить разделение портов в приложении. –

+0

Я обновил свой ответ с помощью пары других идей, которые произошли со мной сегодня днем ​​... – RBerteig

+0

Попробуйте VSPE. Просто начал использовать его, кажется, отлично работает для 32-битных машин. Также имеет версии для 64 бит. использует либо приложение для настройки виртуальных портов, либо вы можете использовать API. Создает виртуальные последовательные устройства режима ядра ... http://www.eterlogic.com/Products.VSPE.html – ryyker

0

Я написал один, много лет назад. DDK (комплект драйверов устройств) включил образец исходного кода для драйвера фильтра (то есть непосредственно выше) драйвера параллельного порта: я адаптировал этот образец для работы с драйвером последовательного порта, а затем добавил такие функции, как мониторинг и разбиение.

Это были последовательные порты, не USB.

Я также реализовал другой драйвер, который был «виртуальным» последовательным портом, то есть реализовал API последовательного порта, но затем перенаправил ввод/вывод данных в другом месте.

Было много работы (много месяцев) для реализации.

0

Приобрести RS232 DB9 Serial Data Tap.Это аппаратное устройство, которое подключено между двумя последовательными портами и пассивно слушает «болтовню» между устройствами. Я использовал следующее устройство в течение двух с половиной лет, и это помогло мне значительно сократить время и усилия по устранению неполадок. (Я использую каждую ночь, чтобы поддерживать техников технической поддержки от «заимствования»). Легко сделать это устройство, но следующий диск данных является гибким.

«Нажмите в на потоке последовательного данных и прозрачно контролировать активность данных. Выход может быть подаются в принтер монитора или другое устройство. Микровыключатели позволяют программированию контролировать основную передачу и прием линий, по отдельности или вместе. Нет требуемая внешняя мощность, простота установки, прозрачное соединение. Идеальное программное обеспечение RS232/Serial для разработки программного обеспечения ».

В качестве альтернативы, сделайте или приобретите кабель монитора последовательного порта. См. NST documentation для одной возможной конфигурации.

Я настоятельно рекомендую вам не использовать программное решение, потому что на программное обеспечение для мониторинга могут влиять физические ситуации.

+0

Спасибо RB и Энтони. Я тоже думал об этом решении. У нас есть устройство последовательной ловушки, но одно из наших устройств использует отображение USB в COM. Но я могу попытаться сделать кабель монитора ловушки для USB. –

0

Как всегда, это зависит от того, что вы собираетесь делать. Если вам нужно возиться с тем, как связаны линии между двумя последовательными устройствами или нужны «хорошие» временные данные, лучшее, что вы можете получить, это внешний break-out box, как сказал Антоний.

Если вам нужен какой-то мониторинг, вы можете пойти с PortMon или Serial Port Monitor.

Возможно, вы пишете два приложения, которые будут связываться через последовательное соединение. Чтобы сделать это на одном ПК без местного кабеля обратной связи, вы можете попробовать Com0Com.

+0

Спасибо, Оливер, я использовал Com0com раньше, но поскольку одно устройство USB-порт COM com0com, похоже, не работает. Я попробовал PortMon, но данные, которые он фиксирует, являются неполными. Xport работает, но мне, возможно, придется выложить это на нашей производственной линии, и я не хочу, чтобы технические специалисты загружали сразу две программы. –

 Смежные вопросы

  • Нет связанных вопросов^_^