Hardware Protocol Specification: 9-bit UART multidrop addressing¶
Version: generic (common 8051/PIC UART mode)
Physical Layer: 9600 bps, 9N1.0
Framing: binary
Integrity Algorithm: sum8
📄 AsyncAPI Artifacts: Download AsyncAPI 2.6.0 YAML | View Interactive AsyncAPI HTML Docs
Description¶
RS-485 multidrop scheme common on small microcontroller UARTs: a 9th data bit (not parity) flags whether a byte is an ADDRESS (bit=1) or DATA (bit=0), so slaves can filter in hardware without the CPU inspecting every byte. dataBits=9 was already a valid enum value but never actually exercised until now.
Command Catalog & Message Signatures¶
Category: GENERAL¶
SlaveMessage (Command ID: 0x00) - The 9th bit is now representable directly via each field's ninthBitSet.¶
| Parameter | Type | Unit | Range / Constraints | Options |
|---|---|---|---|---|
address |
uint8 |
- | - | - |
data |
bytes |
- | - | - |
checksum |
uint8 |
- | - | - |
Formal AsyncAPI 2.6.0 Specification¶
asyncapi: 2.6.0
info:
title: 9-bit UART multidrop addressing
version: generic (common 8051/PIC UART mode)
description: 'RS-485 multidrop scheme common on small microcontroller UARTs: a 9th
data bit (not parity) flags whether a byte is an ADDRESS (bit=1) or DATA (bit=0),
so slaves can filter in hardware without the CPU inspecting every byte. dataBits=9
was already a valid enum value but never actually exercised until now.'
servers:
serial_link:
url: serial://tty/9600
protocol: serial
description: Physical UART Transport (9600 bps, 9N1.0)
bindings:
serial:
baudRate: 9600
dataBits: 9
parity: none
stopBits: 1.0
framingType: binary
integrity: sum8
channels:
omniuart/cmd/SlaveMessage:
publish:
summary: 'Send command SlaveMessage (ID: 0x00)'
description: The 9th bit is now representable directly via each field's ninthBitSet.
message:
name: SlaveMessage_Message
title: SlaveMessage Command
payload:
$ref: '#/components/schemas/SlaveMessage_Request'
components:
messages: {}
schemas:
SlaveMessage_Request:
type: object
properties:
command_id:
type: integer
const: 0
description: Opcode ID for SlaveMessage
address:
type: integer
data:
type: string
contentEncoding: base64
checksum:
type: integer
description: The 9th bit is now representable directly via each field's ninthBitSet.