COM bağlantı noktasında ham verileri yakalama


11

Bir Bluetooth verici cihazım var ve bilgisayarım (Windows 7) ona bağlı ve bir RS232 seri portu (COM4) ile bağlanmış gibi yapılandırılmış. Bluetooth cihazı tarafından iletilen ham verileri veya aynı şekilde COM4'te alınan ham verileri nasıl yakalayabilirim?


Anlayabildiğim kadarıyla elektronik bir soru değil.
Brian Carlton

5
Aslında bunun konuyla ilgili olduğunu düşünüyorum. Bir COM bağlantı noktasından (bazıları başka bir uygulama bağlantı noktasını kullanıyor olsa bile) seri verileri yakalayabilen bazı yazılım parçaları vardır ve yazılım aslında çoğu insanın varlığını bilmediği kadar uzmanlaşmıştır. Dezavantajı, böyle bir yazılım aramak için biraz zaman geçirdikten sonra, post XP bilgisayarlarda iyi çalışan herhangi bir şey bulamadım.
AndrejaKo


Yanıtlar:


9

Farklı formatlardaki verileri yakalamak için standart bir terminal programı kullanabilirsiniz. Bray Terminal'i kullanmanızı öneririm , gerçekten çok kolay ve birçok seçenek var!

Veya bir tür kendi uygulamasındaki verileri yakalamak ve yorumlamak mı istiyorsunuz?


Teşekkür ederim! Verileri yorumlamak istemiyorum. Tek istediğim ham verileri almak ve bir dosyaya kaydedebilmek. Bluetooth cihazımın gerçekte ne ilettiğini bulmaya çalışıyorum. Bray Terminali bunu benim için yapar mıydı?
user11395

@ user11395 - evet, herhangi bir terbiyeli terminal yazılımı bunu yapacak, ben Bray's Terminali de kullanıyorum - Macun başka bir iyi ... Bir ipucu - Bray's Terminali ile bağlantı sorunları varsa, pencerelerdeki BT modülü cihaz özelliklerine gidin (Kontrol Panel -> Bluetooth Cihazları'na sağ tıklayın ve "özellikler" i seçin) ve SPP hizmetinin seçimini kaldırın ve yeniden seçin.
Oli Glaser

teşekkürler Oli. Bray Terminali'ni kullanıyorum ama bir şeyler yanlış gözüküyor. Bağlantı noktalarını "yeniden tararım", COM4 bağlantı noktasını bulurum, COM4'e bağlanırım ve daha sonra verilerin alındığını görebilirim. Ancak bunların doğru olduğunu düşünmüyorum. Seçmem gereken Baud Hızı / Veri bitleri / Parite Durdurma Bitleri / El Sıkışma değerlerinden emin değilim. Herhangi bir öneri?
user11395

Genellikle modüller 9600,1, N (1 durdurma biti, parite yok) olarak ayarlanır ancak 115200 de yaygındır (nereden aldığınız varsayılan değerlerin ne olduğunu söyleyebilir) Ayrıca el sıkışma olmayacak şekilde ayarlayın. Baud hızını bir AT komutuyla ayarlayabilirsiniz (kablosuz bağlantı üzerinden değil, doğrudan Rx / Tx pin modülüne bağlamanız gerekir) Bunu denemeden önce, bilinen bir karakteri tekrar tekrar gönderin ve en yavaş baud'dan başlayın ve yukarı çıkın - bunlardan biri doğru verileri üretmelidir.
Oli Glaser

Verileri, Bray terminaliyle yakalamayı başardım. Bray'nin terminalinde 9600 veya 115200'lük bir baud hızı seçsem de, aynı verileri (doğru gibi görünüyor) alıyorum. Neden her iki seçenek de aynı sonucu veriyor? Ayrıca, cihazımın 115200 baud hızına sahip olduğunu öğrendim, ancak cihaz yöneticimde görebildiğim kadarıyla, bu COM bağlantı noktası 9600 baud hızına ayarlandı (varsayılan olarak sanırım). Bunu değiştirmeli miyim?
user11395

2

Bulduğum en iyi çözüm, biraz kaba olsa da, Tera Term http://ttssh2.sourceforge.jp/index.html.en .

Bray, Windows 8 ile iyi oynamıyor. Kaynak olmadan tam olarak ne yaptığını söylemek mümkün olmasa da, bir kayıt defteri ayarının konumu hakkında bazı varsayımlar yapıyor gibi görünüyor.

portmon da Windows 8'de benim için çalışmadı.


Win 10'un en son sürümünde Bray's'i kullanıyorum, bu yüzden en azından bazı durumlarda hala çalışıyor. Bilgisayarımda yalnızca COM3 yüklü.
Chris Dragon

2

Hata ayıklama için kişisel favori terminal emülatörüm , gömülü sistemler için güzel bir dizi ekran seçeneğine sahip RealTerm . Hem RS-232 hem de TCP / IP Windows 7 x64 ve altında çalışır (Win 8 altında denemedim, ancak işe yaramayacağını düşünmek için herhangi bir nedenim yok). Özellikle yararlı bulduğum birkaç özellik:

  • Verilerin ASCII / HEX görünümü
  • Yakalama dosyaları zaman damgaları içerebilir
  • İkili veri dizileri göndermenin kolay bir yolu var
  • Donanım akış kontrol pimleri kolayca izlenebilir / değiştirilebilir

Ayrıca I2C, SPI, Dallas 1 telli ve GPIB için birkaç seçenek daha var. Bu özellikleri şahsen kullanmadım, ancak yukarıdaki SourceForge sayfasında iyi bir özet var. Ana ekran sekmesi görünümünün ekran görüntüsü:

resim açıklamasını buraya girin


1

Baray hızının donanım yöneticisini açtığından emin değilseniz, COM bağlantı noktalarına göz atın ve özellikleri seçin, her zaman doğru olmasa da orada listelenir.


Verileri, Bray terminaliyle yakalamayı başardım. Bray'nin terminalinde 9600 veya 115200'lük bir baud hızı seçsem de, aynı verileri (doğru gibi görünüyor) alıyorum. Neden her iki seçenek de aynı sonucu veriyor? Ayrıca, cihazımın 115200 baud hızına sahip olduğunu öğrendim, ancak cihaz yöneticimde görebildiğim kadarıyla, bu COM bağlantı noktası 9600 baud hızına ayarlandı (varsayılan olarak sanırım). Bunu değiştirmeli miyim?
user11395

1

Orada PortMon : Bir sysinternals aracını COM bağlantı noktaları için bir DATASCOPE olarak hareket olduğunu.


1
Deneyimlerime göre x64 Windows sistemlerinde çalışmıyor.
JonCage

1

Tam gereksinimlerinize bağlı olarak, verileri yakalayıp zaman damgası oluşturabilen ve daha sonra PC'ye iletebilen bir mikro denetleyici kullanmak yardımcı olabilir. Tarihsel olarak tipik PC'lerde bulunan UART'lar, işlemcinin arabelleğe alınmadan her baytı yakalamasını sağlayarak yalnızca doğru zamanlama bilgilerini kaydedebiliyor veya 9 bitlik verileri yakalayabiliyordu; daha sonraki işletim sistemleri ve sürücüler genellikle bunu yapmak için donanımlı değildir ve UART-USB çipleri bu konuda umutsuzdur. Bilgisayarınız istediğiniz veri hızının iki katına kadar veri alabilirse, bir mikro denetleyicinin bayt veri almasını ve her bayt için iki bayt göndermesini sağlayabilirsiniz. İlk bayt MSB ayarlanmış olacak, sonraki bit (ler) de gelen verilerin MSB'sini (veya 9 bit ise iki MSB'yi) raporlayacak, ve önceki baytın durma bitinin ortasından bu yana geçen süreyi (0-30 veya 0-14) bildirmek için alt 5 (veya 4) biti kullanın (örn. bir bit zaman birimi olarak ölçülür). İkinci bayt MSB'yi temizler ve kalan 7 bit veriyi içerir. Hiçbir veri iletilmediğinde, her 30 (veya 14) bitlik seferde FF pacing karakterleri gönderilir. Bu raporları alan yazılım, böylece, gelen verilerin kesin zamanlamasını çok hassas bir şekilde (bir bit süre içinde) yeniden oluşturabilir. Bilgisayarı besleyen veri hızı, izlenen veri hızının dört katıysa, iki genel alma kanalını bir PC bağlantı noktasına çoğaltmak için bu genel şemayı kullanabilir (birinci veya ikinci için veri içerip içermediğini belirlemek için üstbilgi baytının birazını kullanın) Liman). Bir bit zaman için doğru zamanlama aşırı gibi görünse de, yararlı olabileceği zamanlar vardır,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.