# Serial Protocol Playground

> 用十六進位、十進位或 ASCII 組出原始序列封包，自動補上檢查碼與 CRC，把連續請求寫成測試腳本，再把回應當成 Modbus RTU、NMEA 或你自訂的欄位範本解讀。

- URL: https://bytescope.dev/zh-Hant/serial-playground/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/serial-playground.md) · [ja](https://bytescope.dev/ja/serial-playground.md)
- Runs: 透過 Web Serial 在本機和你的裝置對話 —— 位元組不會離開你的瀏覽器。
- Requires: Chrome, Edge or Opera on desktop (Web Serial API). Not Firefox, Safari or any mobile browser; the page still renders the documentation and a support matrix there.
- Updated: 2026-09-08

## What it does

序列協定實驗場是序列埠監控的進階搭檔：你不只是被動看著資料流，而是主動組出位元組封包、送到裝置、擷取回應，再把它拆解開來。它是給正在替自己的序列裝置寫韌體的人，或是要反推別人家協定的人用的。一切都跑在 Chrome 或 Edge 的 Web Serial API 上 —— 不用 IDE、不用裝驅動程式，你送出或收到的任何東西都不會離開瀏覽器。

### 組出一個封包

封包建構器吃的是混合寫法：十六進位（`0x1A` 或直接寫 `1A`）、十進位（`d255`）、二進位（`0b10101010`），以及可用跳脫的引號 ASCII（`"AT\r\n"`），全部寫在同一行。即時預覽會顯示真正會送到線路上的位元組。囉唆的部分交給輔助功能：自動附加檢查碼或 CRC（Modbus、CCITT、XMODEM、Maxim、SMBus、IEEE CRC-32，另有 sum、XOR、LRC 與 Fletcher-16）、對任意位元組範圍自動填入長度欄位，以及把整個 frame 套上 SLIP 或 HDLC 的位元組填充。

### 把測試流程寫成腳本

可重複的測試不該靠你的手指。腳本執行器會把一小段沒有迴圈的流程串起來 —— 送出一個封包、固定等待幾毫秒、等到回應中出現指定的位元組樣式 —— 然後對著實際開啟的連接埠跑，每一步都留下帶時間戳記的通過／失敗紀錄。腳本會存在你的瀏覽器裡，也會一起裝進可匯出的協定定義檔，方便交給同事。

### 解讀回應

每一次送出與接收都會以精確的單調時鐘時間戳記留下紀錄，並可匯出成文字或 CSV 做時序分析。擷取到的回應會和請求並排，以和十六進位編輯器完全一致的 hex＋ASCII dump 呈現，還能選擇讓解碼器替位元組加上註解：內建的 Modbus RTU 解碼器會驗證 CRC、標出功能碼與例外碼；也有 NMEA 0183 語句解碼器；或是你自己定義的欄位範本（位移、長度、型別、標籤）—— 和十六進位編輯器同樣的範本概念，套用在一個未知的協定上。

### 隱私與瀏覽器支援度

Web Serial 是 Chromium 專屬的 API，所以要開啟連接埠得用桌面版的 Chrome、Edge 或 Opera（或 Android 版 Chrome 148 以上）。Firefox 與 Safari 沒有實作，所以那些瀏覽器看到的是誠實的支援狀況表，而不是一顆壞掉的按鈕 —— 但 CRC／檢查碼計算機在那裡照樣能用，因為它不需要任何裝置。不管你連的是什麼，位元組都是在這個頁面與裝置之間直接流動，網站永遠看不到它們。

## Limits

Does not decode proprietary protocols automatically; it lets you script and inspect request/response exchanges by hand.

## FAQ

### 在這裡能做到什麼，是序列埠監控做不到的？

監控是被動的 —— 它只把資料流呈現給你。這個工具是主動的：你組出精確的位元組封包（含算好的檢查碼與長度欄位）、送出去、擷取回應，再把它解碼。它適合用來測試你正在做的裝置，或反推一個不是你做的裝置。

### 它能算哪些檢查碼與 CRC？

CRC-16/MODBUS、CRC-16/CCITT-FALSE、CRC-16/XMODEM、CRC-8/MAXIM、CRC-8/SMBUS 與 CRC-32/ISO-HDLC（IEEE），另有較單純的 8 位元 sum、XOR、LRC 與 Fletcher-16 區塊檢查。每一種都對照它的標準檢查值驗證過，你可以自動附加到封包上，也可以在沒接裝置的情況下用獨立的計算機。

### 它能驗證 Modbus RTU frame 的 CRC 嗎？

可以。Modbus 解碼器會驗證結尾的 CRC-16、標出功能碼、拆出請求與回應的各個欄位（起始位址、數量、位元組數、暫存器值），並把例外回應連同例外名稱標示出來。CRC 不對的話，它仍會解碼整個 frame，並顯示它原本預期的值。

### 腳本是怎麼運作的？

你把三種步驟排成一串 —— 送出、固定延遲等待，以及等待包含某個位元組樣式的回應 —— 刻意不提供迴圈與分支：它是為可重複的測試流程而生，不是用來寫程式的。執行腳本會產生逐步、帶時間戳記的紀錄，讓你精準看出交握是在哪一步卡住的。

### 我送出或收到的東西會被上傳嗎？

不會。連線完全走瀏覽器的 Web Serial API，所以位元組是在頁面與裝置之間直接流動。你送出或收到的內容都不會傳到伺服器；網站的匿名分析只記錄這個工具被用過，絕不記錄內容。

### 哪些瀏覽器能用？

桌面版的 Chrome、Edge 與 Opera，以及 Android 版 Chrome 148 以上，因為 Web Serial 是 Chromium 專屬的。Firefox 與 Safari 沒有實作，會改為顯示支援狀況表。CRC／檢查碼計算機在每個瀏覽器都能用，因為它根本不需要序列埠。

## Related tools

- [Serial Monitor & Plotter](https://bytescope.dev/zh-Hant/serial-monitor.md) — 在這裡送出指令，再到那邊把數值回應畫成圖 →
