COM 포트에서 원시 데이터 캡처


11

Bluetooth 전송 장치가 있고 PC (Windows 7)가 연결되어 있고 RS232 직렬 포트 (COM4)를 통해 연결된 것처럼 구성되어 있습니다. Bluetooth 장치에서 전송 한 원시 데이터 또는 COM4에서받은 원시 데이터를 어떻게 캡처 할 수 있습니까?


내가 알 수있는 한 전자 질문이 아닙니다.
Brian Carlton

5
나는 실제로 이것이 주제에 있다고 생각합니다. COM 포트에서 직렬 데이터를 캡처 할 수있는 일부 소프트웨어가 있으며 (일부는 다른 응용 프로그램이 포트를 사용하는 경우에도 해당), 소프트웨어는 실제로 대부분의 사람들이이를 알지 못할 정도로 충분히 전문화되어 있습니다. 단점은 그러한 소프트웨어를 찾는 데 시간을 보낸 후 XP 컴퓨터에서 제대로 작동하는 것을 찾을 수 없다는 것입니다.
AndrejaKo

이런 도구를 찾고 있습니까? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
kenny

답변:


9

표준 터미널 프로그램을 사용하여 다른 형식으로 데이터를 캡처 할 수 있습니다. Bray 's Terminal을 사용하는 것이 좋습니다. 정말 쉽고 많은 옵션이 있습니다!

아니면 어떤 종류의 응용 프로그램에서 데이터를 캡처하고 해석 하시겠습니까?


감사합니다! 데이터 해석을 찾고 있지 않습니다. 내가 원한 것은 원시 데이터를 받고 파일로 저장할 수 있다는 것입니다. Bluetooth 장치가 실제로 전송하는 내용을 찾으려고합니다. 브레이의 터미널이 저를 위해 그렇게할까요?
user11395

@ user11395-예, 괜찮은 터미널 소프트웨어 가이 작업을 수행합니다 .Bray의 터미널도 사용합니다-Putty도 좋은 것입니다 ... 팁-Bray의 터미널에 연결하는 데 문제가 있으면 Windows의 BT 모듈 장치 속성으로 이동하십시오 (제어 패널-> Bluetooth 장치에서 마우스 오른쪽 단추를 클릭하고 "속성"을 선택한 다음 SPP 서비스를 선택 취소했다가 다시 선택하십시오.
올리 Glaser

고마워 올리. Bray 's Terminal을 실행하고 있지만 문제가있는 것 같습니다. 포트를 "다시 스캔"하고 포트 COM4를 찾고 COM4에 연결하면 데이터가 캡처되는 것을 볼 수 있습니다. 그러나 나는 그들이 옳다고 생각하지 않습니다. 내가 선택할 Baud Rate / Data bits / Parity Stop Bits / Handshaking의 값에 대해 잘 모르겠습니다. 어떤 제안?
user11395

일반적으로 모듈은 9600,1, N (1 정지 비트, 패리티 없음)으로 설정되어 있지만 115200도 일반적입니다 (기본 설정이 어디에서 구입했는지 말할 수도 있음) 핸드 셰이 킹 없음으로 설정합니다. AT 명령을 사용하여 전송 속도를 설정할 수 있습니다 (무선 링크를 통하지 않고 모듈 Rx / Tx 핀에 직접 연결해야 함).이 작업을 수행하기 전에 알려진 문자를 반복해서 보내고 가장 느린 전송에서 시작하여 작업을 진행하십시오- 그중 하나가 올바른 데이터를 생성해야합니다.
Oli Glaser

Bray의 터미널로 데이터를 캡처했습니다. Bray 터미널에서 9600 또는 115200의 전송 속도를 선택하더라도 동일한 데이터를 얻습니다 (정확한 것 같습니다). 두 옵션 모두 동일한 결과를 제공하는 이유는 무엇입니까? 또한 장치의 전송 속도가 115200임을 알았지 만 장치 관리자에서 볼 수있는 한이 COM 포트는 9600의 전송 속도로 설정되어 있습니다 (기본적으로 추측합니다). 내가 바꿔야 할까?
user11395

2

내가 찾은 가장 좋은 해결책은 약간 조잡하지만 Tera Term http://ttssh2.sourceforge.jp/index.html.en 입니다.

Bray는 Windows 8에서 잘 작동하지 않습니다. 소스없이 정확히 무엇을하고 있는지 알 수는 없지만 레지스트리 설정의 위치에 대한 가정을하고있는 것 같습니다.

portmon도 Windows 8에서 작동하지 않았습니다.


최신 버전의 Win 10에서 Bray를 사용하고 있기 때문에 적어도 일부 경우에는 여전히 작동합니다. 내 컴퓨터에는 COM3 만 설치되어 있습니다.
크리스 드래곤

2

디버깅을 위해 개인적으로 가장 좋아하는 터미널 에뮬레이터는 RealTerm 으로 임베디드 시스템을위한 다양한 디스플레이 옵션을 제공합니다. RS-232와 TCP / IP는 모두 Windows 7 x64 이하에서 잘 작동합니다 (Win 8에서는 시도하지 않았지만 작동하지 않을 이유가 없습니다). 특히 유용한 몇 가지 기능은 다음과 같습니다.

  • 데이터의 ASCII / HEX보기
  • 캡처 파일에는 타임 스탬프가 포함될 수 있습니다
  • 이진 데이터 시퀀스를 보내는 쉬운 방법이 있습니다
  • 하드웨어 흐름 제어 핀을 쉽게 모니터링 / 변경 가능

I2C, SPI, Dallas 1-wire 및 GPIB에 대한 다른 옵션도 있습니다. 개인적으로 이러한 기능을 사용하지는 않았지만 위의 SourceForge 페이지에는 좋은 요약이 있습니다. 기본 디스플레이 탭보기의 화면 캡처는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


1

보드 속도가 확실하지 않으면 하드웨어 관리자를 열고 COM 포트를 찾아 속성을 선택하십시오. 항상 정확하지는 않지만 여기에 나열되어 있습니다.


Bray의 터미널로 데이터를 캡처했습니다. Bray 터미널에서 9600 또는 115200의 전송 속도를 선택하더라도 동일한 데이터를 얻습니다 (정확한 것 같습니다). 두 옵션 모두 동일한 결과를 제공하는 이유는 무엇입니까? 또한 장치의 전송 속도가 115200임을 알았지 만 장치 관리자에서 볼 수있는 한이 COM 포트는 9600의 전송 속도로 설정되어 있습니다 (기본적으로 추측합니다). 내가 바꿔야 할까?
user11395

1

있다 portmon 하십시오 시스 인 터널 도구는 COM 포트에 대한 datascope 등의 행위가.


1
내 경험상 x64 Windows 시스템에서 작동하지 않습니다.
JonCage

1

정확한 요구 사항에 따라 데이터를 캡처하고 타임 스탬프 한 다음 PC로 전달할 수있는 마이크로 컨트롤러를 사용하는 것이 도움이 될 수 있습니다. 역사적으로 일반적인 PC에서 발견 된 UART는 버퍼링없이 프로세서가 도착할 때마다 각 바이트를 가져 와서 정확한 타이밍 정보를 기록하거나 9 비트 데이터를 캡처 할 수있었습니다. 이후의 운영 체제와 드라이버는 일반적으로 그렇게 할 수 없으며 UART-USB 칩은 그와 관련하여 희망이 없습니다. PC가 원하는 데이터 속도의 두 배로 데이터를 수신 할 수있는 경우 마이크로 컨트롤러가 데이터 바이트를 수신하고 각 바이트마다 2 바이트를 전송하도록 할 수 있습니다. 첫 번째 바이트는 MSB를 설정하고, 다음 비트에서 수신 데이터의 MSB (또는 9 비트 인 경우 두 MSB)를보고합니다. 그리고 이전 바이트의 정지 비트의 중간 (예를 들어, 1 비트 시간의 단위로 측정 됨) 이후 시간 (0-30 또는 0-14)을보고하기 위해 하위 5 (또는 4) 비트를 사용한다. 두 번째 바이트는 MSB를 지우고 나머지 7 비트의 데이터를 포함합니다. 데이터가 전송되지 않으면 FF 페이싱 문자는 30 (또는 14) 비트 시간마다 전송됩니다. 따라서 이러한 보고서를 수신하는 소프트웨어는 들어오는 데이터의 정확한 타이밍을 매우 정확하게 (1 비트 시간 내에) 재구성 할 수 있습니다. PC에 공급되는 데이터 속도가 모니터링되는 데이터 속도의 4 배인 경우,이 일반 체계를 사용하여 두 개의 수신 채널을 하나의 PC 포트로 다중화 할 수 있습니다 (헤더 바이트의 비트를 사용하여 첫 번째 또는 두 번째 데이터가 포함되어 있는지 식별). 포트). 1 비트 시간까지 정확한 타이밍은 과도한 것처럼 보일 수 있지만 유용 할 수있는 시간이 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.