# T-Bus-Protokoll

Das T-Bus-Protokoll ist ein offenes Kommunikationsprotokoll für Sensor- und Aktoranwendungen. Das T-Bus-Protokoll wird speziell für Anwendungen in der Landwirtschaft und im Gartenbau wie z. B. zur Bewässerungssteuerung eingesetzt. Die Einsatzgebiete sind jedoch nicht darauf beschränkt.
Der T-Bus gibt kein Übertragungsmedium und keine elektrischen Schnittstellenbedingungen vor. Üblicherweise werden Teilnehmer über RS-485 oder Funk angebunden. T-Bus over TCP/IP befindet sich bereits in der Entwicklung.
Bei RS-485 wird typischerweise das Halbduplex-Verfahren und eine vieradrige Leitung verwendet. Steckverbinder sind nicht spezifiziert, jedoch die Farbkodierung der Adern.
Für Außenanwendungen wird ein für den T-Bus entwickeltes hochflexibles Kabel mit kerbfestem Polyurethan-Außenleiter verwendet.
Die Teilnehmeranzahl hängt nur von der verwendeten physikalischen Übertragungstechnologie ab, z. B. bei RS-485 32 bis 256 Teilnehmer pro Bus, abhängig von den verwendeten Transceivern.

## Aufbau des T-Bus-Datenrahmens

Der Overhead beträgt 13 Byte und die Nutzlast ist maximal 65535 Byte groß.

### SyncByte

Das SyncByte dient der Synchronisation und der automatischen Baudratenerkennung. Das LSB (least significant bit) muss immer 1 sein, so dass der Aufbau der Form 0b xxxx xxx1 entspricht. Die restlichen Bits sind für neue Protokollversionen vorgesehen. Zurzeit ist Version 1.0 aktuell, mit dem SyncByte 0x81.

### Destination Device Family

Die Device Family ist 1 Byte lang. Damit können gezielt Geräteklassen angesprochen werden (Multicast). In der Bewässerungssteuerung lassen sich damit z. B. alle Ventile auf einmal ansprechen. Die Broadcast-Adresse ist 0x00. Im fabrikneuen Zustand ist die eingestellte Adresse 0xFF. Es gibt also maximal 254 unterschiedliche Geräteklassen.

### Destination Address

Die Destination Address ist 3 Byte lang und dient zur individuellen Adressierung von Teilnehmern. Die Broadcast-Adresse ist 0x000000. Im fabrikneuen Zustand ist die eingestellte Adresse 0xFFFFFF. Es gibt also maximal 16.777.214 Teilnehmer.

### Source Device Family

Aufbau analog wie Destination Device Family.

### Source Address

Aufbau analog wie Destination Device Address.

### Data Length

Das Feld Data Length kennzeichnet die Länge der Nutzlast und umfasst 2 Byte. Der Maximalwert beträgt 65535 Byte. Bei Funkanwendungen wird typischerweise mit einer maximalen Länge der Nutzlast von 51 Byte gearbeitet (13 Byte Overhead + 51 Byte Nutzlast = 64 Byte).

### Data

Das Feld Data (die Nutzlast) kann beliebigen Inhalt aufweisen. Die Dateninterpretation hängt von den Geräteklassen und deren Anwendungsprotokollen ab. Es können sowohl Befehle als auch Messdaten übertragen werden.

### CRC

Das Verfahren zur Prüfsummenbestimmung ist CRC-16 mit dem bewährten Generatorpolynom 0xA001, Startwert 0 und vorheriger Invertierung aller Bytes (11 Byte Header und Nutzdaten).
Beispiele zur CRC-Berechnung:
* Header: 0x81 0x00 0x000000 0x00 0x000000 0x0000
* Nutzdaten: keine
* CRC: 0xAAAF
oder
* Header: 0x81 0x01 0x020304 0x05 0x060709 0x0005
* Nutzdaten (ASCII): T-Bus
* Nutzdaten (HEX): 0x542d427573
* CRC: 0x933e

## Verschlüsselung

Eine Verschlüsselung ist im T-Bus-Protokoll nicht spezifiziert. Vor allem bei Funkübertragung hat sich XTEA mit einer Schlüssellänge von 128 bit durchgesetzt.

## Vorteile des T-Bus

T-Bus gibt ein Datenübertragungsverfahren vor, das Nutzer flexibel mit eigenen Befehlen ausstatten können. Es ist unabhängig von physikalischen Übertragungsmedien. Über Konverter können unterschiedliche Übertragungsmedien leicht miteinander verbunden werden.
Beispiele für Konverter:
* USB nach RS-485
* RS-232 nach RS-485
* USB nach Funk
* RS-485 nach Funk
* RS-232 nach Funk
Bei RS-485 kann die Übertragungsgeschwindigkeit automatisch erkannt werden (Autobauding mit Hilfe des SyncBytes). Je nach Leitungslänge sind Geschwindigkeiten von 1200 baud bis 230 kbaud erprobt. Die Geschwindigkeit bei Funkübertragung hängt vom jeweiligen Funkmodul und der gewünschten Reichweite ab (z. B. 1200 baud bei über 6 km Reichweite und freier Sicht).
Software für Mikrocontroller und PC ist frei verfügbar.

## Nachteile des T-Bus

Der T-Bus wird derzeit fast ausschließlich von Herstellern in der Landwirtschafts- und Gartenbaubranche genutzt.

## Aktuelle Entwicklungen

* T-Bus over TCP/IP
* Datenkompression für stromsparende Funkübertragung und große Netze.

## Anbieter von T-Bus-fähigen Geräten

* CO$_2$-Sensoren für die Landwirtschaft (www.stepsystems.de)
* Bodenfeuchtesensoren und Bewässerungssteuerungen (www.sirikon.de)
* Hopfentrocknungsanlagen (www.euringer-friedl.de)