Skip to content

LIN

This page teaches how LIN makes low-cost serial traffic inspectable through break, sync, protected identifier, checksum, and schedule evidence.

Status Examples Runtime example Source posture
final-copy synthetic/passive available standards metadata plus public/tooling cross-checks

A Concrete Artifact

# synthetic passive LIN schedule observation
slot 1, t=20.000 ms: break sync=55 pid=0x92 data=10 20 30 checksum=0d

Synthetic

Synthetic offline sample for explanation; not a real operational trace or live-system instruction.

Inspection Trap

LIN can look like ordinary UART bytes with a checksum. That misses the bus lesson: the break, sync byte, protected identifier, checksum type, and schedule position are the evidence that make the bytes interpretable.

The safer claim is schedule-relative. A passive observer can describe a LIN frame shape and where it appeared in a captured schedule. Signal names, node roles, and meaning require an LDF, integration description, or vendor authority.

Worked Decode

  1. The break creates a frame boundary that a byte-only UART view can miss.
  2. Sync byte 0x55 gives timing-recovery evidence.
  3. Protected identifier 0x92 carries identifier 0x12 plus parity bits in this teaching example.
  4. Data bytes 10 20 30 are response bytes associated with the invited frame.
  5. The supplied enhanced checksum 0x0d matches the teaching model's calculated checksum.
  6. Slot index 1 at 20 ms is schedule evidence. It does not name a signal by itself.

What The Evidence Supports

The artifact supports a frame-level and schedule-level claim: an observed LIN frame used protected identifier 0x92, carried three data bytes, had valid PID parity and matching enhanced checksum in the teaching model, and appeared in slot 1 at 20 ms of a synthetic body-status schedule.

That is enough to discuss timing, expected response shape, and frame integrity. It is not enough to name actuator state, switch position, or node intent.

What The Evidence Does Not Support

The artifact does not prove the master schedule, slave identity, signal names, physical body state, freshness beyond the observed timestamp, or whether an application used the data. A checksum match protects the frame shape; it does not turn bytes into engineering truth.

The page also does not teach live schedule generation or bus interaction. It is about already-observed evidence.

Field Layout / Anatomy

Element Shape Inspection meaning
Break dominant low interval Frame boundary and resynchronization evidence.
Sync 0x55 Timing calibration pattern.
Protected identifier ID plus parity Selects the frame and protects the identifier bits.
Data commonly 0 to 8 bytes Signal bytes whose meaning comes from LDF or vendor context.
Checksum classic or enhanced Frame integrity evidence with checksum-type ambiguity.
Schedule observation slot plus time Evidence about when the master invited the frame.

Visual Model

sequenceDiagram participant Master as Observed master participant Slave as Observed responder Master->>Slave: break + sync 0x55 + PID 0x92 Slave-->>Master: data 10 20 30 + checksum 0x0d
packet +13: "Break" +8: "Sync 0x55" +8: "PID 0x92" +24: "Data 10 20 30" +8: "Checksum 0x0d"

Timing And Authority

LIN authority is scheduled. The master invites a frame by emitting the header; the responder supplies data when the schedule and node configuration say it should. The protected identifier tells which frame was invited, and the schedule explains why it appeared at that time.

Semantic authority

LIN bytes require LDF or equivalent integration authority before they become signal names, units, or node-state claims.

Failure And Ambiguity

  • A UART decoder can miss LIN break semantics and treat the record as ordinary bytes.
  • Using the wrong checksum type can make valid frames look bad.
  • Schedule changes can mimic node failure or missing data.
  • Protected ID parity validates identifier bits; it does not validate payload meaning.
  • An LDF can be stale, project-specific, or mismatched to the observed network.

Python Model

The current package exposes small LIN frame and schedule-observation models for passive inspection:

"""Runnable LIN frame inspection example for the schoolbus binder."""

from schoolbus.protocols.lin import LinFrame, LinScheduleObservation

frame = LinFrame.from_hex("92 10 20 30 0d")
observation = LinScheduleObservation(
    frame=frame,
    schedule_name="synthetic-body-status",
    slot_index=1,
    observed_time_ms=20.0,
    nominal_period_ms=20.0,
)

print(frame.show_fields())
print(frame.explain())
print(observation.show_fields())
print(observation.explain())

The model exposes protected identifier parity, enhanced checksum evidence, data bytes, and captured schedule position. It does not assign signal names or provide schedule-generation behavior.

Simplification

The frame, schedule name, slot, and bytes are synthetic. The page omits exact electrical timing, wakeup/sleep behavior, node configuration, complete LDF grammar, and conformance requirements.

Source Notes

Teaching claim Source role Limit
LIN uses break, sync, protected identifier, and data. canonical metadata Not a reproduced ISO timing or conformance table.
LDF or integration context supplies signal meaning. de facto/proprietary format context The page does not claim a complete LDF grammar.
Public LIN explainers can cross-check teaching shape. public explainer Not normative authority for edge cases.
The slot and bytes in this page are synthetic. synthetic teaching artifact Not operational capture evidence or body-state truth.
Scapy documents automotive packet inspection context. tooling reference Not proof of all LIN deployments or tool behavior.
Field Value
Governance tier Tier 1 Core Lab
Canonical source status yes
Public explainer status yes
Open-source tool status yes
Sample-data status none listed; use synthetic teaching artifacts
Confidence high
Citation specificity document-metadata-level

References

Public Sources

Project posture is aggregated in the protocol support policy, source policy, and project charter.