CoderTools

온라인 시리얼 포트 디버거

브라우저 기반 시리얼 디버깅 도구 - 다운로드 불필요, Web Serial API를 통한 실시간 모니터링

연결

상태: 연결 해제됨

데이터 모니터

데이터 전송

간격 (ms):

통계

0
전송된 바이트
0
수신된 바이트
00:00:00
연결 시간
0
데이터 전송률 (B/s)

시리얼 포트 디버거 문서

이 도구 사용 방법

  1. 시리얼 장치를 컴퓨터에 연결합니다
  2. 연결 매개변수를 구성합니다 (보레이트, 데이터 비트, 패리티, 정지 비트)
  3. "연결"을 클릭하여 시리얼 연결을 설정합니다
  4. 실시간으로 수신된 데이터를 모니터링합니다
  5. 텍스트 또는 HEX 형식으로 데이터를 전송합니다
  6. 전송 기록을 사용하여 이전 명령을 반복합니다
  7. 연결 통계 및 데이터 전송률을 확인합니다

연결 매개변수

보레이트
데이터 전송 속도 (초당 비트 수)
데이터 비트
데이터 프레임당 비트 수 (5-8)
패리티
오류 감지 방법 (없음, 짝수, 홀수)
정지 비트
프레임 끝 표시자 (1 또는 2)

구현 원리

이 도구는 웹 애플리케이션이 직렬 장치와 직접 통신할 수 있도록 하는 최신 브라우저 인터페이스인 Web Serial API를 사용하여 구현됩니다. 다음은 핵심 구현 세부 사항입니다:

핵심 API: Web Serial API

이 도구는 브라우저를 통해 직렬 포트에 액세스하기 위한 JavaScript 인터페이스를 제공하는 Web Serial API 위에 구축되었습니다.

주요 기능:

  • 드라이버나 플러그인을 설치하지 않고도 브라우저가 기본적으로 직렬 포트 액세스를 지원
  • 여러 직렬 포트 구성(보 레이트, 데이터 비트, 패리티, 정지 비트, 흐름 제어) 지원
  • Readable/Writable Streams를 사용한 양방향 데이터 통신
  • Promise 및 async/await 기반 비동기 작업

구현 단계

1. 직렬 포트 액세스 요청
const port = await navigator.serial.requestPort();

navigator.serial.requestPort()를 사용하여 사용자에게 직렬 포트 장치를 선택하도록 요청합니다. 보안을 보장하기 위해 사용자 상호 작용이 필요합니다.

2. 포트 구성 및 열기
await port.open({
  baudRate: 9600,
  dataBits: 8,
  parity: 'none',
  stopBits: 1,
  flowControl: 'none'
});

port.open() 메서드를 호출하고 보 레이트, 데이터 비트, 패리티, 정지 비트 및 흐름 제어를 포함한 구성 매개변수를 전달합니다.

3. 데이터 읽기
const reader = port.readable.getReader();
while (true) {
  const { value, done } = await reader.read();
  if (done) break;
  // 수신된 데이터 처리(Uint8Array)
  const text = new TextDecoder().decode(value);
}

port.readable에서 reader를 가져와 비동기 루프를 사용하여 데이터를 지속적으로 읽습니다. 수신된 데이터는 Uint8Array 형식이며 TextDecoder를 사용하여 디코딩해야 합니다.

4. 데이터 전송
const writer = port.writable.getWriter();
const encoder = new TextEncoder();
const data = encoder.encode('Hello Serial!');
await writer.write(data);

port.writable에서 writer를 가져와 TextEncoder를 사용하여 문자열을 Uint8Array로 변환한 다음 writer.write()를 호출하여 데이터를 전송합니다.

5. 연결 닫기
await reader.cancel();
await reader.releaseLock();
await writer.releaseLock();
await port.close();

닫기 전에 reader와 writer의 잠금을 해제한 다음 port.close()를 호출하여 직렬 포트 연결을 닫습니다.

사용된 주요 API

  • navigator.serial.requestPort() - 사용자에게 직렬 포트 선택 요청
  • port.open(options) - 구성으로 직렬 포트 열기
  • port.readable.getReader() - 읽기 스트림의 reader 가져오기
  • port.writable.getWriter() - 쓰기 스트림의 writer 가져오기
  • reader.read() - 직렬 포트에서 데이터 읽기
  • writer.write(data) - 직렬 포트에 데이터 쓰기
  • TextDecoder / TextEncoder - 문자열과 바이트 배열 간 변환
  • port.addEventListener('disconnect') - 장치 연결 해제 이벤트 수신

주요 기능

Web Serial API

추가 소프트웨어 없이 브라우저에서 직접 시리얼 포트에 액세스

실시간 모니터링

타임스탬프 및 자동 스크롤 지원으로 실시간 데이터 모니터링

HEX 모드

검증 기능이 있는 16진수 형식으로 데이터 송수신

전송 기록

이전에 전송한 명령 추적 및 재생

통계

데이터 전송률 및 연결 시간 모니터링

다국어

중국어, 영어, 일본어, 프랑스어, 스페인어 지원

일반적인 사용 사례

개발 및 디버깅

  • Arduino 및 ESP32 개발
  • 임베디드 시스템 디버깅
  • 펌웨어 개발 및 테스트
  • IoT 장치 구성

테스트 및 통신

  • 모뎀용 AT 명령 테스트
  • 센서 데이터 모니터링
  • 프로토콜 분석 및 디버깅
  • 산업용 장치 통신

브라우저 지원 및 요구 사항

지원되는 브라우저

  • Chrome 89+
  • Edge 89+
  • Firefox (지원 안 함)
  • Safari (지원 안 함)

요구 사항

  • Web Serial API를 지원하는 Chromium 기반 브라우저
  • HTTPS 연결 (Web Serial API에 필요)
  • 시리얼 포트 액세스를 위한 사용자 권한
  • 호환 가능한 시리얼 장치 드라이버 설치

관련 표준 및 사양

RS-232: RS-232: 전기적 특성 및 커넥터 사양을 정의하는 고전적인 시리얼 통신 표준
UART: UART: 범용 비동기 수신-송신기, 시리얼 통신의 핵심 프로토콜
USB-to-Serial: USB-to-Serial: 현대 장치에서 일반적인 시리얼 변환 방법

자세한 정보: Wikipedia RS-232, UART 프로토콜 표준 문서

빠른 메뉴

최근 사용 도구 없음