온라인 시리얼 포트 디버거
브라우저 기반 시리얼 디버깅 도구 - 다운로드 불필요, Web Serial API를 통한 실시간 모니터링
연결
데이터 모니터
데이터 전송
전송 기록
통계
시리얼 포트 디버거 문서
이 도구 사용 방법
- 시리얼 장치를 컴퓨터에 연결합니다
- 연결 매개변수를 구성합니다 (보레이트, 데이터 비트, 패리티, 정지 비트)
- "연결"을 클릭하여 시리얼 연결을 설정합니다
- 실시간으로 수신된 데이터를 모니터링합니다
- 텍스트 또는 HEX 형식으로 데이터를 전송합니다
- 전송 기록을 사용하여 이전 명령을 반복합니다
- 연결 통계 및 데이터 전송률을 확인합니다
연결 매개변수
구현 원리
이 도구는 웹 애플리케이션이 직렬 장치와 직접 통신할 수 있도록 하는 최신 브라우저 인터페이스인 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에 필요)
- 시리얼 포트 액세스를 위한 사용자 권한
- 호환 가능한 시리얼 장치 드라이버 설치
관련 표준 및 사양
자세한 정보: Wikipedia RS-232, UART 프로토콜 표준 문서
자주 묻는 질문
브라우저에서 시리얼 디버깅을 사용하는 방법은 무었인가요?
Chrome 또는 Edge(버전 89 이상)에서 도구를 열고, '연결'을 클릭한 후 브라우저 대화 상자에서 시리얼 장치를 선택하세요. Web Serial API는 드라이버나 플러그인 없이 직접 장치와 통신합니다. HTTPS 페이지에서 사용하고, 필요한 권한을 허용해주세요.
Web Serial API를 지원하는 브라우저는 무었인가요?
Chromium 기반 브라우저인 Chrome 89+와 Microsoft Edge 89+가 Web Serial API를 완전히 지원합니다. Firefox와 Safari는 현재 이 API를 지원하지 않습니다. 지원되지 않는 브라우저를 사용 중이라면 Chrome 또는 Edge로 전환하세요.
브라우저에서 Modbus 장치를 연결하는 방법은 무었인가요?
USB-시리얼 어댓터를 통해 Modbus RTU/ASCII 장치를 연결하고, 올바른 COM 포트를 선택한 후, 일치하는 보드레이트와 패리티를 설정하고 '연결'을 클릭하세요. HEX 모드로 원시 Modbus 프레임을 전송하거나 AT 명령 기반 장치에는 텍스트 모드를 사용할 수 있습니다.
적절한 보드레이트를 어떻게 선택하나요?
보드레이트는 장치의 구성과 일치해야 합니다. 일반적인 값: 9600(GPS 모듈, 레거시 모던), 115200(Arduino, ESP32, 대부분의 IoT 장치), 57600 또는 38400(레거시 시스템). 확실하지 않은 경우 장치 데이터시트를 참조하거나 먼저 115200을 시도해보세요.
USB-시리얼 어댓터를 이 브라우저 기반 도구에서 사용할 수 있나요?
예. CH340, CP2102, FTDI, PL2303 등 유사한 USB-시리얼 어댓터는 적절한 OS 드라이버가 설치되면 모두 작동합니다. 어댓터를 연결한 후 브라우저의 포트 선택 대화 상자에서 해당 COM/ttyUSB 포트를 선택하세요.
관련 도구
CRC 계산기
Modbus, CCITT 및 기타 프로토콜 표준을 지원하여 CRC-8, CRC-16, CRC-32, CRC-64 체크섬을 계산합니다
진법 변환기
2진수, 8진수, 10진수, 16진수 간 변환, 2-36 사용자 정의 진법 지원
타임스탬프 변환기
Unix 타임스탬프와 사람이 읽을 수 있는 날짜/시간 간 변환
텍스트 툴킷
단어 카운터, 데이터 추출, 분할/결합, 라인 필터, 접두사/접미사 작업이 포함된 포괄적인 텍스트 조작 툴킷
문자 집합 변환기
UTF-8, GBK, Big5, Shift_JIS, ISO-8859, Windows 코드 페이지 등의 문자 집합 인코딩을 자동 감지로 변환
정규식 테스터
즉각적인 일치 결과로 정규 표현식을 테스트하고 디버그합니다