Я работаю над драйвером класса коммуникационных устройств (CDC) для встроенного устройства, Полная скорость реализация USB 2.0. Настройки COM-порта: 115200, 8 бит, без контроля четности, 1 стоповый бит, без управления потоком. Наше приложение для ПК (32-разрядное, Windows 7, .NET 2.0) взаимодействует с целевым устройством через виртуальный COM-порт, который на целевом устройстве может подключаться либо к микросхеме FTDI (USB-to-SCI bridge), либо к встроенному USB-интерфейсу периферийного в микроконтроллере, в зависимости от того, какой порт выбран приложением.Ошибка виртуальной COM-связи
Оба виртуальных COM-порта работают без проблем с помощью Realterm. Однако, хотя наше настольное приложение работает с использованием виртуального COM-порта, подключенного через чип FTDI, он зависает при попытке использовать виртуальный COM, подключенный через встроенную периферийную периферию USB микроконтроллера.
При подключении через виртуальный COM-порт с использованием встроенного USB приложение последовательно зависает при втором вызове SerialPort.Write(...)
. Используя Serial Monitor from HHD Software, я вижу, что данные передаются при первом вызове SerialPort.Write(...)
. Однако эти данные никогда не принимаются целевым устройством.
Это странно, потому что единственный раз, когда я видел подобные проблемы в предыдущих проектах, было когда несоответствие настроек управления потоком по каждой стороне шины.
Дополнительная информация ...
Вот данные, захваченные из различных портовых средств мониторинга во время работы нашего приложения ПК, подключенного к целевому устройству с помощью интегрированной USB периферии. Любое понимание было бы оценено.
- Sysinternals Portmon
- Advanced USB Port Monitor
- Device Monitoring Studio - Request View
- Device Monitoring Studio - Packet View
Для тех, кто заинтересован, я использую CodeWarrior 10.2 с MCF51JM128 от Freescale.
Любые идеи или предложения будут оценены. Благодарю.
Вы пытались отслеживать действия Realterm? Должны быть различия, которые должны показать решение. – jeb
@jeb Как мне это сделать? Это одна из особенностей Realterm? Я признаю, что я знаком с небольшим подмножеством своих возможностей. –
Нет, но такие инструменты, как [portmon] (http://technet.microsoft.com/de-de/sysinternals/bb896644.aspx) из sysinternals/microsoft, могут отображать все действия порта, открывать/закрывать, а также читать/писать и что для другой программы, такой как Realterms и ваш собственный – jeb