WSPR und ATU = Probleme
4. Juni 2017
Licht ins Modell – Drehlicht
4. Juni 2017
Alle anzeigen

Futaba S-Bus Protokoll

Anfangs 2010 hat Futaba ein neues Bussystem für den Anschluss von Servos an den Empfänger vorgestellt. Über einen einzigen Empfängerausgang werden alle daran angeschlossenen S-Bus fähigen Servos mit Daten gesteuert. Welches Servo zu welchem Kanal gehört wird am Servo über den Programmer SBC-1 oder CIU-2 eingestellt.
Protokollstruktur
Das Protokoll ist 25 Byte lang und wird alle 14ms (analog) oder 7ms (highspeed) gesendet.
Ein Byte = 1 Startbit + 8 Databit + 1 Paritybit + 2 Stopbit (8E2), Baudrate = 100’000 bit/s
Es wird zuerst das höchste Bit gesendet. Die Logik ist intertiert (Pegel High = 1)

Nachtrag – 20.03.2012: Die Datenrate kann auch 9600 bit/s betragen. Dazu sind andere Timings anzupassen. Begründung: das USB-Interface CIU-2 arbeitet mit 9600 bits/s. Damit sind einfachere Controller auch in der Lage S-Bus Daten zu senden, wenn auch einiges gemächlicher.
[Startbyte] [Data1] [Data2] .... [Data22][Flags][Endbyte] 

Startbyte    = 11110000b (0xF0) 
Data 1-22    = [ch1, 11bit][ch2, 11bit] .... [ch16, 11bit] (ch# = 0 bis 2047) 
               Kanal 1 benutzt 8 Bits von Data1 und 3 Bits von Data2 
               Kanal 2 benutzt restliche 5 Bits von Data2 und 6 Bits von Data3 usw.

Flags        = Bit7 = ch17 = Schaltkanal (0x80) 
               Bit6 = ch18 = Schaltkanal (0x40) 
               Bit5 = Frame lost, entspricht roter LED am Empfänger (0x20) 
               Bit4 = Failsafe aktiviert (0x10) 
               Bit3 = unbekannt 
               Bit2 = unbekannt 
               Bit1 = unbekannt 
               Bit0 = unbekannt 

Endbyte      = 00000000b
Vor dem Einbau muss jedem Servo eine ID zugewiesen werden. Das kann man mit dem kleinen SBC-1 machen, oder komfortabler, weil mehr Parameter verfügbar, mit dem USB-Adapter CIU-2.

Gemessen habe ich es mit dem SBC-1, in einem Empfängergehäuse integriertes Modul, sendet periodisch Frames mit 17 Bytes aus. Das Servo antwortet unmittelbar darauf mit einem gleich langen Frame.

Das SBC-1 sendet für eine Überprüfung des Servos folgende Daten:
F9 07 03 79 F9 00 00 00 00 00 00 00 00 01 00 07 7C

Das Servo antwortet mit:
A0 07 03 79 F9 0C 0C 0F 15 64 64 00 00 00 01 08 77

Bei beiden Frames repräsentiert Byte 2 die ID des Servos, das letzte Byte ist eine Checksumme.

Soll das Servo eine neue ID bekommen sendet das SBC-1 folgendes Frame:
F9 00 03 79 F9 00 00 00 00 00 00 00 00 01 00 4D 3D

Wieder steht Byte 2 für die (diesmal neue) ID, das zweitletzte Byte hat den Wert 4D. Das Servo sendet dabei keine Daten zurück.
Deutsch