We engineer the communication layer as a system contract: the byte on the wire, the state machine behind it, the timing and fault behaviour around it, and the specification that keeps both ends implementable and testable.
CAN / CAN FDRS-485 / USB / IPE2E & securityICD & conformance
A protocol is not only a frame format. We define framing, message semantics, roles, retries, freshness, timing, fault response, security boundaries, recovery, and verification as one coherent interface design.
VerificationConformance suites, fault injection, replay and corruption tests, long-run soak, and HIL scenarios derived from the specification.
From topology to receiver decision
Interface topology and authority boundary from the public HMI–CB reference ICD.Validation pipeline: identifier and message contract, E2E checks, freshness/authentication, then application handling.
Security is separated from integrity
IntegrityCRC and E2E checks detect corruption, stale buffers, wrong message delivery, and sequence faults across the software path.
AuthenticityState-changing services can use CMAC/HMAC with freshness values to prevent forgery and replay.
ConfidentialityEncryption is added only where disclosure is a credible loss and key lifecycle is actually solved.
Specification is an executable asset
We keep the message catalogue machine-readable and version-controlled so embedded headers, serializers/parsers, host-side tooling, and human-readable ICD tables can be generated from one reviewed source. This avoids a second hand-maintained message list drifting away from code.
Deployment view including firmware, configuration, security peripheral, and end-of-line key provisioning.
Public reference: HMI ↔ Control Board over CAN
Physical / linkClassic CAN, 11-bit identifiers, 500 kbit/s, isolated nodes, explicit sample point and termination requirements.