# TTP/A

TTP/A is a time-triggered real-time fieldbus protocol used for the interconnection of low-cost smart transducer nodes. In contrast to the Time-Triggered Protocol (TTP), which is a high-speed, fault-tolerant communication network intended for safety critical applications (SAE class C), TTP/A provides a low-speed (below 1 MB/s), low-cost protocol suitable for non-critical applications like car body electronics (SAE class A).

## Description

Time-triggered means that all actions are scheduled at predefined times. The schedules are repeated periodically for a predictable repetitive behavior. This is for sensor or actuator applications and closed control loops, where arbitrary message delays worsen or even invalidate the result.

### Interface

The TTP/A protocol implements a communication layer and data access according to the Object Management Group smart transducer Interface standard which was published in late 2002. The interface to each transducer is known as an Interface File System (IFS), that includes both real-time data, as well as configuration and node management features. The IFS makes it possible to share data between different TTP/A clusters in a transparent fashion, so that for the application no distinction between data from local and remote nodes is made. The TTP/A protocol does not require special controller hardware and can be implemented on any standard embedded microcontroller. An open-source implementation exists for the Atmel AVR architecture. Like the fault-tolerant time-triggered protocol TTP, TTP/A follows the time-triggered paradigm featuring a clock synchronization and predefined time-triggered schedules for communication and execution of tasks. Thus, TTP/A communication implements a strict time division multiple access (TDMA) scheduling. TTP/A can be used as a sub-bus for a higher-performance and more dependable real-time systems, or to provide transducer data to a Linux system in a soft-real-time fashion. TTP/A was used in applications such as an intercommunication system for mobile robots.
TTP/A is a time-triggered protocol used for the communication of one active master with or among smart transducer nodes within a cluster. This cluster is controlled by the master, which establishes a common time base among the nodes. In case of a master failure, a shadow master can take over control. Every node in this cluster has a unique alias, an 8 bit (1 byte) integer, which can be assigned to the node a priori or set at any time via the configuration interface.

### Periodic time-triggered schedule

TTP/A communication is organized into rounds separated by inter round gaps (IRG). The TTP/A bus is inactive for at least 13 bit times during each gap. A TTP/A round consists of one or more frames. A frame is a sequence of bytes transmitted by one node. A byte is transmitted in a slot consisting of 13 bit cells: one start-bit, eight data-bits, one parity, one stop-bits and a two bit cell wide inter byte gap. The rounds are independent from each other. Every round starts with a fireworks byte sent by the master. The arrival of the fireworks byte is a synchronization event for every node in the cluster and identifies the round. According to the specification of the selected round, the fireworks frame is followed by data frames of specified length from the specified nodes. Each such frame is described by an entry in the round descriptor list (RODL) in the file-system of the sender and the receiver(s). Because the slot position at which each communication action takes place is defined a priori, no further bus arbitration is necessary.
The transmission frames are based on universal asynchronous receiver/transmitter (UART) frames. This allowed the protocol to be implemented using microcontrollers featuring a standard UART module. For low transmission rates, also a software-based implementation without a hardware-supported UART is possible.
Several papers were published by researchers at the Vienna University of Technology on TTP/A from 1994 through 2006 by Hermann Kopetz and Wilfried Elmenreich. A related protocol called TTP/C was also described in 2003.