2.3 SPaT and MAP Message Structure under SAE J2735
Key Takeaways
- SAE J2735 defines the message set; SPaT carries current phase state and time-to-change, and MAP carries the lane-level geometry the SPaT states refer to. Neither is useful without the other.
- SPaT timing fields express minimum and maximum end times rather than a single countdown, because an actuated phase can gap out early or extend to max — a technician who reads them as a fixed countdown will misdiagnose a healthy broadcast.
- MAP encodes approach and lane nodes as offsets from a reference point, so a MAP built from a stale or mis-georeferenced base map produces lane-level errors that no amount of controller tuning will correct.
- SPaT and MAP are broadcast continuously at roughly 10 Hz, so any interruption in the controller-to-RSU data path is visible to vehicles within a fraction of a second.
2.3 SPaT and MAP Message Structure under SAE J2735
[!NOTE] IMSA Level III Examination Focus: Mastery of SAE J2735 message sets is essential for advanced signal technicians. You must know how the Advanced Transportation Controller (ATC) communicates with the Roadside Unit (RSU), how NEMA signal phases map to J2735
SignalGroupIDvalues, how geometric node points define intersection approaches, and how in-vehicle safety algorithms process phase countdowns.
Connected intersection operations rely on standardized, machine-readable data streams that broadcast the physical layout and immediate operational state of traffic signals. The Society of Automotive Engineers (SAE) codified these data structures in the SAE J2735 Dedicated Short Range Communications (DSRC) / V2X Message Set Dictionary. Among the various messages defined in J2735, the two most critical infrastructure-generated payloads are Signal Phase and Timing (SPaT) and MAP (Intersection Geometry).
The SAE J2735 Message Family Overview
The SAE J2735 standard establishes a shared syntactic and semantic vocabulary for all connected vehicle participants. Messages are formatted using Abstract Syntax Notation One (ASN.1) and encoded using Unaligned Packed Encoding Rules (UPER) to minimize packet size over the air.
| Message Type | Full Designation | Transmission Source | Standard Broadcast Frequency | Primary Operational Payload |
|---|---|---|---|---|
| SPaT | Signal Phase and Timing | Infrastructure (RSU) | 10 Hz (100 ms) | Current phase displays, interval countdowns (MinEndTime, MaxEndTime), active preempt/priority states |
| MAP | Intersection Geometry | Infrastructure (RSU) | 1 Hz (1,000 ms) or on change | 3D reference anchor point, approach lane centerlines, lane connections, stop bar locations, crosswalks |
| BSM | Basic Safety Message | Vehicle (OBU) | 10 Hz (100 ms) | Vehicle kinematics: latitude, longitude, elevation, speed, heading, acceleration, brake system status |
| TIM | Traveler Information Message | Infrastructure (RSU) | Event-based / 1 Hz | Dynamic speed limits, work zone warnings, road closures, curve speed advisories |
| PSM | Personal Safety Message | Vulnerable Road User | 10 Hz (100 ms) | Pedestrian / cyclist position, heading, velocity, device operational mode |
| SRM | Signal Request Message | Priority Vehicle (OBU) | 1 to 5 Hz on approach | Request for transit priority or emergency preemption (ETA, route, vehicle class) |
| SSM | Signal Status Message | Infrastructure (RSU) | 1 to 2 Hz / Ack | Controller status response to SRM (priority granted, queued, rejected) |
SPaT Message Internal Structure & Data Elements
The SPaT message describes the real-time operational status of every signal phase and crosswalk movement associated with an intersection. It answers the question: "What color is each movement displaying right now, and when is it expected to change?"
+-----------------------------------------------------------------------------+
| SPaT MESSAGE ASN.1 HIERARCHICAL TREE |
+-----------------------------------------------------------------------------+
| SPaT (Root) |
| └── intersections: IntersectionStateList |
| └── IntersectionState |
| ├── id: IntersectionReferenceID (Region ID + Intersection ID) |
| ├── revision: MsgCount (0 - 127 roll-over counter) |
| ├── status: IntersectionStatusObject |
| | ├── manualControlIsEnabled |
| | ├── stopTimeIsActivated |
| | ├── failureFlash / conflictFlash |
| | └── preemptIsActive / tspIsActive |
| ├── moy: MinuteOfTheYear (0 - 527,040) |
| ├── timeStamp: DSecond (0 - 59,999 milliseconds in the minute) |
| └── states: MovementList |
| └── MovementState (Repeated for each NEMA Phase/Overlap) |
| ├── movementName: Descriptive Text |
| ├── signalGroup: SignalGroupID (1 - 255) |
| └── state-time-speed: MovementEventList |
| └── MovementEvent |
| ├── eventState: MovementPhaseState |
| └── timing: TimeChangeDetails |
| ├── minEndTime: TimeMark |
| ├── maxEndTime: TimeMark |
| ├── likelyTime: TimeMark |
| └── confidence: TimeIntervalConfidence |
+-----------------------------------------------------------------------------+
Critical SPaT Data Fields
- IntersectionReferenceID: Uniquely identifies the physical intersection across regional networks using a combination of a 16-bit
RoadRegulatorID(jurisdiction) and a 16-bitIntersectionID. - IntersectionStatusObject: A 16-bit bitmap reporting real-time cabinet status flags, including whether the intersection is running under time-of-day coordination, manual police control, preemption override, or MMU conflict flash.
- SignalGroupID: An 8-bit integer (1 to 255) representing a distinct signalized movement. In standard North American deployments, SignalGroup IDs 1 through 8 map directly to standard NEMA TS2 Phases 1 through 8, while IDs 9 through 16 designate pedestrian phases or phase overlaps (e.g., SignalGroup 10 = Phase 2 Pedestrian; SignalGroup 14 = Overlap A).
- MovementPhaseState: An enumeration defining the exact instantaneous optical display:
protected-Movement-Allowed: Solid Green ball or arrow.movement-Clearance: Solid Yellow change interval.stop-And-Remain: Solid Red display.permissive-Movement-Allowed: Flashing Yellow Arrow (FYA) or permissive green ball with yielding rules.caution-Conflicting-Traffic: Yellow flashing operation.
The Mechanics of SPaT Timing Parameters
The timing block within each MovementEvent provides the critical predictive countdown values, encoded as a TimeMark in units of tenths of a second (100 ms) from the top of the current hour (0 to 35,999 tenths of a second):
- MinEndTime: The earliest possible time at which the current phase state can terminate. For a green phase, this represents the expiration of the programmed Minimum Green plus any active pedestrian service intervals. For a yellow phase, it represents the exact end of the fixed yellow change clearance.
- MaxEndTime: The latest possible time at which the current phase state can terminate under continuous vehicle extension. In actuated operations, this correlates to the phase Maximum Green (Max 1 or Max 2) or the coordination Force-Off point.
- LikelyTime: An advanced controller-generated prediction of when the phase will terminate based on historical gap-out behavior, volume-density settings, or adaptive progression algorithms.
- Confidence: A statistical probability score (0 to 15 scale) reflecting how reliably the controller expects the phase to terminate at the
LikelyTime.
MAP Message Internal Structure & Geometric Modeling
While SPaT describes dynamic signal timing, the MAP message provides the static physical canvas upon which those timing displays operate. A vehicle cannot interpret a SPaT message without having the intersection's MAP message loaded into memory.
+-----------------------------------------------------------------------------+
| MAP MESSAGE GEOMETRIC TOPOLOGY |
+-----------------------------------------------------------------------------+
| |
| Approach 1 (Ingress) Approach 2 (Egress) |
| [Lane 1: Left Turn] ──> ConnectsTo (SignalGroup 1) ──> [Lane 20] |
| [Lane 2: Thru Lane] ──> ConnectsTo (SignalGroup 2) ──> [Lane 21] |
| [Lane 3: Right Turn] ──> ConnectsTo (SignalGroup 2) ──> [Lane 22] |
| |
| \ Stop Line Bar / |
| \======================================================/ |
| \ / |
| \ (Intersection Reference Point) / |
| \ Anchor: Lat / Long / Elev / |
| \ (+) / |
| \ / |
| \===========================================/ |
| Pedestrian Crosswalk |
| (SignalGroup 10) |
+-----------------------------------------------------------------------------+
Core MAP Data Components
- Intersection Reference Point (Anchor Point): The geodetic focal point of the intersection, defined using the WGS-84 coordinate reference system. Latitude and longitude are specified to a resolution of one-tenth of a microdegree (0.0000001°), providing a horizontal geographic precision of approximately 1.1 centimeters. Elevation is defined with a precision of 10 centimeters above sea level.
- Approach & Lane Definitions: Roadways entering the intersection are designated as Ingress Approaches, while departing roadways are Egress Approaches. Each travel path within an approach is assigned a unique 8-bit
LaneID(1 to 255). - Lane Nodes and Delta Offsets: Rather than storing full 64-bit geographic coordinates for every point along a lane, MAP messages define lanes using a series of sequential Node Offsets relative to the previous node. Each node contains delta offsets: $(\Delta X, \Delta Y, \Delta Z)$ specified in centimeters. This vector string forms the precise 3D centerline and curvature of each travel lane.
- Stop Line Bar Coordinates: The final node of an ingress lane vector defines the physical location of the pavement stop bar.
- ConnectsTo & Maneuvers: This is the critical functional link between MAP and SPaT. The
ConnectsTodata block defines:- Which egress lane can be reached from this ingress lane.
- The permitted maneuver (
maneuverStraightAllowed,maneuverLeftAllowed,maneuverRightAllowed,maneuverUTurnAllowed). - The specific
SignalGroupIDgoverning that turning path.
According to the SAE J2735 standard, what primary operational data is provided by the Signal Phase and Timing (SPaT) message?
What is the standard broadcast frequency required for SPaT messages transmitted from a Roadside Unit to ensure accurate real-time in-vehicle driver advisories?