Trình Gỡ Lỗi Cổng Nối Tiếp Trực Tuyến
Công cụ gỡ lỗi nối tiếp dựa trên trình duyệt - không cần tải xuống, giám sát thời gian thực qua Web Serial API
Kết nối
Giám sát dữ liệu
Gửi dữ liệu
Lịch sử gửi
Thống kê
Tài liệu công cụ gỡ lỗi cổng nối tiếp
Cách sử dụng công cụ này
- Kết nối thiết bị nối tiếp của bạn với máy tính
- Cấu hình các tham số kết nối (tốc độ baud, bit dữ liệu, chẵn lẻ, bit dừng)
- Nhấp "Kết nối" để thiết lập kết nối nối tiếp
- Giám sát dữ liệu nhận được theo thời gian thực
- Gửi dữ liệu ở định dạng văn bản hoặc HEX
- Sử dụng lịch sử gửi để lặp lại các lệnh trước đó
- Xem thống kê kết nối và tốc độ dữ liệu
Tham số kết nối
Nguyên lý triển khai
Công cụ này được triển khai bằng Web Serial API, một giao diện trình duyệt hiện đại cho phép ứng dụng web giao tiếp trực tiếp với các thiết bị nối tiếp. Dưới đây là các chi tiết triển khai chính:
API chính: Web Serial API
Công cụ được xây dựng trên Web Serial API, cung cấp các giao diện JavaScript để truy cập cổng nối tiếp thông qua trình duyệt.
Tính năng chính:
- Truy cập cổng nối tiếp gốc của trình duyệt mà không cần cài đặt trình điều khiển hoặc plugin
- Hỗ trợ nhiều cấu hình cổng nối tiếp (tốc độ baud, bit dữ liệu, chẵn lẻ, bit dừng, điều khiển luồng)
- Giao tiếp dữ liệu hai chiều sử dụng Readable/Writable Streams
- Các thao tác không đồng bộ dựa trên Promises và async/await
Các bước triển khai
1. Yêu cầu quyền truy cập cổng nối tiếp
const port = await navigator.serial.requestPort();
Sử dụng navigator.serial.requestPort() để nhắc người dùng chọn thiết bị cổng nối tiếp. Điều này yêu cầu tương tác của người dùng để đảm bảo an toàn.
2. Cấu hình và mở cổng
await port.open({
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: 'none'
});
Gọi phương thức port.open() với các tham số cấu hình bao gồm tốc độ baud, bit dữ liệu, chẵn lẻ, bit dừng và điều khiển luồng.
3. Đọc dữ liệu
const reader = port.readable.getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
// Xử lý dữ liệu nhận được (Uint8Array)
const text = new TextDecoder().decode(value);
}
Lấy reader từ port.readable và sử dụng vòng lặp không đồng bộ để đọc dữ liệu liên tục. Dữ liệu nhận được ở định dạng Uint8Array và cần được giải mã bằng TextDecoder.
4. Gửi dữ liệu
const writer = port.writable.getWriter();
const encoder = new TextEncoder();
const data = encoder.encode('Hello Serial!');
await writer.write(data);
Lấy writer từ port.writable, sử dụng TextEncoder để chuyển đổi chuỗi thành Uint8Array, sau đó gọi writer.write() để gửi dữ liệu.
5. Đóng kết nối
await reader.cancel();
await reader.releaseLock();
await writer.releaseLock();
await port.close();
Trước khi đóng, giải phóng khóa của reader và writer, sau đó gọi port.close() để đóng kết nối cổng nối tiếp.
API chính được sử dụng
-
navigator.serial.requestPort() - Yêu cầu người dùng chọn cổng nối tiếp -
port.open(options) - Mở cổng nối tiếp với cấu hình -
port.readable.getReader() - Lấy reader của luồng đọc -
port.writable.getWriter() - Lấy writer của luồng ghi -
reader.read() - Đọc dữ liệu từ cổng nối tiếp -
writer.write(data) - Ghi dữ liệu vào cổng nối tiếp -
TextDecoder / TextEncoder - Chuyển đổi giữa chuỗi và mảng byte -
port.addEventListener('disconnect') - Lắng nghe sự kiện ngắt kết nối thiết bị
Tham khảo tài liệu chính thức
Tính năng chính
Web Serial API
Truy cập trực tiếp cổng nối tiếp từ trình duyệt mà không cần phần mềm bổ sung
Giám sát thời gian thực
Giám sát dữ liệu trực tiếp với hỗ trợ dấu thời gian và tự động cuộn
Chế độ HEX
Gửi và nhận dữ liệu ở định dạng thập lục phân với xác thực
Lịch sử gửi
Theo dõi và phát lại các lệnh đã gửi trước đó
Thống kê
Giám sát tốc độ truyền dữ liệu và thời gian kết nối
Đa ngôn ngữ
Hỗ trợ tiếng Trung, Anh, Nhật, Pháp và Tây Ban Nha
Trường hợp sử dụng phổ biến
Phát triển và gỡ lỗi
- Phát triển Arduino và ESP32
- Gỡ lỗi hệ thống nhúng
- Phát triển và kiểm tra firmware
- Cấu hình thiết bị IoT
Kiểm tra và truyền thông
- Kiểm tra lệnh AT cho modem
- Giám sát dữ liệu cảm biến
- Phân tích và gỡ lỗi giao thức
- Giao tiếp thiết bị công nghiệp
Hỗ trợ trình duyệt và yêu cầu
Trình duyệt được hỗ trợ
- Chrome 89+
- Edge 89+
- Firefox (không được hỗ trợ)
- Safari (không được hỗ trợ)
Yêu cầu
- Trình duyệt dựa trên Chromium với hỗ trợ Web Serial API
- Kết nối HTTPS (bắt buộc cho Web Serial API)
- Quyền của người dùng để truy cập cổng nối tiếp
- Đã cài đặt trình điều khiển thiết bị nối tiếp tương thích
Tiêu chuẩn và thông số kỹ thuật liên quan
Để biết thêm thông tin: Tài liệu tiêu chuẩn giao thức RS-232 và UART trên Wikipedia
Công Cụ Liên Quan
Máy Tính CRC
Tính checksum CRC-8, CRC-16, CRC-32, CRC-64 với hỗ trợ Modbus, CCITT và các tiêu chuẩn giao thức khác
Chuyển Đổi Cơ Số
Chuyển đổi giữa hệ nhị phân, bát phân, thập phân và thập lục phân với hỗ trợ cơ số tùy chỉnh (2-36)
Bộ Chuyển Đổi Timestamp
Chuyển đổi giữa timestamp Unix và ngày/giờ có thể đọc được
Bộ Công Cụ Văn Bản
Bộ công cụ thao tác văn bản toàn diện với bộ đếm từ, trích xuất dữ liệu, tách/nối, lọc dòng, thao tác tiền tố/hậu tố
Bộ Chuyển Đổi Bộ Ký Tự
Chuyển đổi mã hóa văn bản giữa UTF-8, GBK, Big5, Shift_JIS, ISO-8859, các trang mã Windows với tự động phát hiện
Trình Kiểm Tra Regex
Kiểm tra và gỡ lỗi biểu thức chính quy với kết quả khớp tức thì