захватывать необработанные данные в COM-порт


11

У меня есть передающее устройство Bluetooth, и мой компьютер (Windows 7) подключен к нему и настроен так, как если бы он был подключен через последовательный порт RS232 (COM4). Как я могу получить необработанные данные, передаваемые устройством Bluetooth, или, что то же самое, необработанные данные, полученные в COM4?


Насколько я могу судить, это не вопрос электроники.
Брайан Карлтон

5
Я действительно думаю, что это по теме. Есть некоторые программные продукты, которые могут захватывать последовательные данные с COM-порта (некоторые из них, даже если другое приложение использует порт), и программное обеспечение на самом деле достаточно специализировано, чтобы большинство людей не знали, что оно существует. Недостатком является то, что, потратив некоторое время на поиск такого программного обеспечения, я не смог найти ни одного, который бы хорошо работал на компьютерах после XP.
AndrejaKo

Вы ищете такой инструмент? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/...
Kenny

Ответы:


9

Вы можете использовать стандартную терминальную программу для захвата данных в разных форматах. Я предлагаю использовать Терминал Брея , это действительно легко и имеет много вариантов!

Или вы хотите захватывать и интерпретировать данные в каком-то собственном приложении?


Спасибо! Я не ищу для интерпретации данных. Все, что я хочу - это получить необработанные данные и сохранить их в файле. Я пытаюсь выяснить, что на самом деле передает мое устройство Bluetooth. Терминал Брея сделает это для меня?
user11395

@ user11395 - да, любое приличное программное обеспечение терминала будет делать это, я тоже использую Терминал Брея - Putty - еще один хороший ... Совет - если у вас есть проблемы с подключением в Терминале Брея, перейдите в окна свойств вашего модуля BT в Windows (Управление Панель -> Устройства Bluetooth, щелкните правой кнопкой мыши и выберите «Свойства»), отмените выбор и повторно выберите службу SPP.
Оли Глейзер

спасибо Оли. Я использую Терминал Брея, но, похоже, что-то не так. Я "заново сканирую" порты, нахожу порт COM4, ​​подключаюсь к COM4, ​​а затем вижу, что данные собираются. Однако я не думаю, что они верны. Я не уверен в значениях скорости передачи / битов данных / стоп-битов четности / квитирования, которые мне следует выбрать. Какие-либо предложения?
user11395

Обычно модули устанавливаются на 9600,1, N (1 стоповый бит, без контроля четности), но 115200 также является распространенным (может указывать, какие значения по умолчанию используются там, где вы его приобрели). Также не устанавливается подтверждение связи. Вы можете установить скорость передачи данных с помощью команды AT (не через беспроводное соединение, вы должны подключиться напрямую к выводам модуля Rx / Tx). Перед тем, как попытаться это сделать, отправьте известный символ несколько раз и просто начните с самой медленной скорости передачи и продолжайте свой путь вверх - один из них должен предоставить правильные данные.
Оли Глейзер

Мне удалось захватить данные с помощью терминала Брея. Независимо от того, выбираю ли я скорость передачи 9600 или 115200 на терминале Брея, я получаю одни и те же данные (которые кажутся правильными). Почему оба варианта дают одинаковый результат? Кроме того, я обнаружил, что мое устройство имеет скорость передачи 115200, но, насколько я вижу в диспетчере устройств, для этого COM-порта установлена ​​скорость передачи 9600 (я думаю, по умолчанию). Должен ли я изменить это?
user11395

2

Лучшее решение, которое я нашел, хотя и немного грубое, это Tera Term http://ttssh2.sourceforge.jp/index.html.en .

Bray's не очень хорошо работает с Windows 8. Хотя невозможно сказать, что именно он делает без источника, похоже, что он делает некоторые предположения о расположении параметра реестра.

Портмон также не работал для меня на Windows 8.


Я использую Bray's в последней версии Win 10, так что она все еще работает, по крайней мере, в некоторых случаях. На моем компьютере установлен только COM3.
Крис Дракон

2

Мой личный любимый эмулятор терминала для отладки - RealTerm, у которого есть хороший выбор вариантов отображения для встроенных систем. И RS-232, и TCP / IP работают нормально под Windows 7 x64 и ниже (я не пробовал под Win 8, но у меня нет причин думать, что это не сработает). Несколько функций, которые я считаю особенно полезными:

  • ASCII / HEX просмотр данных
  • Захват файлов может включать метки времени
  • Есть простой способ отправить двоичные последовательности данных
  • Аппаратные контакты управления потоком можно легко контролировать / менять

Есть также немало других опций для I2C, SPI, Dallas 1-wire и GPIB. Я лично не использовал эти функции, но есть хорошая сводка на странице SourceForge выше. Вот снимок экрана с вкладкой основного дисплея:

введите описание изображения здесь


1

Я бы также порекомендовал рев, если вы не уверены в скорости передачи, откройте диспетчер оборудования, перейдите к COM-портам и выберите свойства, они указаны там, хотя и не всегда точны.


Мне удалось захватить данные с помощью терминала Брея. Независимо от того, выбираю ли я скорость передачи 9600 или 115200 на терминале Брея, я получаю одни и те же данные (которые кажутся правильными). Почему оба варианта дают одинаковый результат? Кроме того, я обнаружил, что мое устройство имеет скорость передачи 115200, но, насколько я вижу в диспетчере устройств, для этого COM-порта установлена ​​скорость передачи 9600 (я думаю, по умолчанию). Должен ли я изменить это?
user11395

1

Есть portmon : инструмент sysinternals, который выступает в качестве области данных для COM-портов.


1
Не работает на 64-разрядных системах Windows в моем опыте.
JonCage

1

В зависимости от ваших точных требований, может быть полезно использовать микроконтроллер, который может собирать и отмечать метки времени, а затем передавать их на ПК. UART, исторически обнаруживаемые на типичных ПК, были способны записывать точную информацию о синхронизации или захватывать 9-битные данные только благодаря тому, что процессор захватывал каждый байт по мере поступления без буферизации; более поздние операционные системы и драйверы обычно не оснащены для этого, и микросхемы UART-to-USB в этом отношении безнадежны. Если ваш ПК может получать данные с удвоенной скоростью, которую вы хотите, вы можете иметь микроконтроллер, который получает байты данных и для каждого байта отправляет два байта. Первый байт должен иметь установленный MSB, сообщать MSB (или два MSB, если 9-битный) о входящих данных в следующих битах, и использовать младшие 5 (или 4) битов, чтобы сообщить количество времени (0-30 или 0-14) с середины стоп-бита предыдущего байта (измеряется в единицах, например, одного бита). Второй байт должен очищать MSB и содержать оставшиеся 7 бит данных. Когда данные не передаются, символы стимуляции FF будут отправляться каждые 30 (или 14) битов. Таким образом, программное обеспечение, получающее эти отчеты, сможет очень точно (в течение одного бита) восстановить точное время поступления данных. Если скорость передачи данных на ПК в четыре раза превышала контролируемую скорость передачи данных, можно использовать эту общую схему для мультиплексирования двух каналов приема в один порт ПК (используйте бит байта заголовка, чтобы определить, содержит ли он данные для первого или второго порт). Хотя временные рамки с точностью до одного бита могут показаться чрезмерными, бывают случаи, когда это может быть полезно,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.