захоплення необроблених даних у COM-порту


11

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


Наскільки я не можу сказати, питання про електроніку.
Брайан Карлтон

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

Ви шукаєте такий інструмент? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com / ...
Kenny

Відповіді:


9

Ви можете використовувати стандартну термінальну програму для збору даних у різних форматах. Я пропоную використовувати термінал Bray's , це дуже просто і має безліч варіантів!

Або ви хочете зафіксувати та інтерпретувати дані у якійсь власній програмі?


Дякую! Я не шукаю інтерпретації даних. Все, що я хочу, - це отримати необроблені дані та мати можливість зберегти їх у файлі. Я намагаюся дізнатися, що насправді передає мій пристрій Bluetooth. Чи зробив би цей термінал Брей для мене?
користувач11395

@ user11395 - так, будь-яке пристойне програмне забезпечення для терміналів зробить це, я також використовую термінал Bray’s Terminal - Putty - це ще одна хороша порада… Порада - якщо у вас є проблеми з підключенням до терміналу Bray’s Terminal, перейдіть до своїх властивостей пристрою BT модуля у windows (Керування Панель -> Пристрої Bluetooth, клацніть правою кнопкою миші та виберіть "Властивості") та скасуйте вибір і повторно виберіть службу SPP.
Олі Глазер

дякую Олі. Я керую Брей-Терміналом, але щось здається не так. Я "переглядаю" порти, знаходжу порт COM4, ​​підключаюсь до COM4, ​​і тоді я бачу дані, що захоплюються. Однак я не вважаю їх правильними. Я не впевнений щодо значень швидкості передачі даних / біт даних / стоп-біти парності / рукостискання, які я повинен вибрати. Будь-які пропозиції?
користувач11395

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

Мені вдалося зафіксувати дані терміналом Брей. Незалежно від того, якщо я вибираю на терміналі Брая швидкість передачі 9600 або 115200, я отримую ті самі дані (які здаються правильними). Чому обидва варіанти дають однаковий результат? Крім того, я дізнався, що мій пристрій має швидкість передачі даних 115200, але, наскільки я бачу в своєму менеджері пристроїв, цей COM-порт встановлений на швидкість передачі даних в 9600 (я думаю, за замовчуванням). Чи варто це змінити?
користувач11395

2

Найкраще рішення, яке я знайшов, хоч і є дещо суворим, - це термін http://tssh2.sourceforge.jp/index.html.en .

Брей не грає добре з Windows 8. Хоча неможливо сказати, що саме він робить без джерела, однак, здається, він робить певне припущення щодо розташування налаштування реєстру.

portmon також не працював для мене в Windows 8.


Я використовую Bray's в останній версії Win 10, тому вона все ще працює принаймні в деяких випадках. На моєму комп’ютері встановлено лише COM3.
Кріс Дракон

2

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

  • ASCII / HEX перегляд даних
  • Файли захоплення можуть включати часові позначки
  • Існує простий спосіб надсилання послідовностей бінарних даних
  • Шпильки контролю апаратного потоку можна легко відстежувати / змінювати

Існує також досить багато інших варіантів для I2C, SPI, 1-провідного Далласа та GPIB. Я особисто не використовував ці функції, але є хороший підсумок на сторінці SourceForge вище. Ось знімок екрана головного відображення вкладки дисплея:

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


1

Я також рекомендую bray, якщо ви не впевнені в швидкості передачі даних, відкрийте диспетчер обладнання, перегляньте порти COM і виберіть властивості, вони там перелічені, хоча і не завжди точні.


Мені вдалося зафіксувати дані терміналом Брей. Незалежно від того, якщо я вибираю на терміналі Брая швидкість передачі 9600 або 115200, я отримую ті самі дані (які здаються правильними). Чому обидва варіанти дають однаковий результат? Крім того, я дізнався, що мій пристрій має швидкість передачі даних 115200, але, наскільки я бачу в своєму менеджері пристроїв, цей COM-порт встановлений на швидкість передачі даних в 9600 (я думаю, за замовчуванням). Чи варто це змінити?
користувач11395

1

Там в Portmon : інструмент Sysinternals , які діють як для відстеження даних COM - портів.


1
На моєму досвіді не працює на системах x64 Windows.
JonCage

1

Залежно від ваших точних вимог, може бути корисним використання мікроконтролера, який може фіксувати та маркувати час, а потім пересилати їх на ПК. UART, які історично знайшли на типових ПК, змогли записувати точну інформацію про синхронізацію або фіксувати 9-бітні дані, маючи процесор захоплювати кожен байт у міру надходження, без буферизації; пізніші операційні системи та драйвери, як правило, для цього не оснащені, і мікросхеми UART до 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.