Baud について
作った理由
プロトコル仕様書はバイト列を表で説明します。表は正確ですが、プロトコルを腑に落ちさせる肝心の「時間」が見えません。どのビットが先に出るのか。受信側はいつ線を見るのか。どのヘッダが先に読まれるのか。
Baud はその表を短いモーションに変えます。UART の文字が LSB から線を流れる様子、TCP ヘッダが届いてフィールドごとに光る様子、2 台の機械が交わすハンドシェイク。画面の数値はすべて計算で出しており、例のチェックサムや CRC は本物です。
仕組み
各プロトコルは、フィールド・ビット・メッセージの一覧と日英の文章を 1 つのデータとして記述します。小さな描画エンジンが、そのデータから任意の時刻の SVG を作ります。サーバは完成図を描いて返すので JavaScript なしでも読めます。ブラウザではプレイヤーが時間を進めて絵を差し替えます。
技術スタック
- Bun
- Hono (SSR, hono/jsx)
- Cloudflare Workers
- Vite
- Tailwind CSS v4
- TypeScript
- Biome
- Vitest
出典
図と解説は独自のものです。各プロトコルのページに載せた公開仕様(RFC・ISO・NXP・MMA・OASIS など)に沿っています。例のデータは作例ですが、MPU-6050 の WHO_AM_I レジスタのような広く知られた定数は実在のものです。
ユーザーのデータは収集・保存しません。
- UART — TIA/EIA-232-F (RS-232)
- SPI — Motorola M68HC11 Reference Manual (SPI), Winbond W25Q128 datasheet (JEDEC ID)
- I2C — NXP UM10204: I2C-bus specification and user manual, InvenSense MPU-6000/6050 register map
- CAN — ISO 11898-1 (CAN data link layer), Bosch CAN Specification 2.0
- MIDI — MIDI 1.0 Detailed Specification (MIDI Manufacturers Association)
- Modbus RTU — Modbus Application Protocol Specification V1.1b3, Modbus over Serial Line Specification V1.02
- Ethernet II — IEEE 802.3 (Ethernet), DIX Ethernet II
- ARP — RFC 826: An Ethernet Address Resolution Protocol
- IPv4 — RFC 791: Internet Protocol, RFC 1071: Computing the Internet Checksum
- UDP — RFC 768: User Datagram Protocol
- TCP — RFC 9293: Transmission Control Protocol, RFC 1071: Internet Checksum
- DNS — RFC 1035: Domain Names - Implementation and Specification
- HTTP/1.1 — RFC 9112: HTTP/1.1, RFC 9110: HTTP Semantics
- MQTT — OASIS MQTT Version 3.1.1, OASIS MQTT Version 5.0