< Wróć do bazy wiedzy

Czym jest “secure S-Bus data mode”?

 

“Secure S-Bus Data Mode” to tryb protokołu S-Bus wprowadzony w celu dokładniejszej identyfikacji telegramu odpowiedzi na zapytanie S-Bus poprzez wprowadzenie numeru sekwencji. Poniższy wpis opisuje różnicę pomiędzy standardowym trybem S-Bus Data, a tym specjalnym trybem.

Dlaczego wprowadzono tryb “Secure”?

Tryb ten zapobiega sytuacji w której odpowiedź na zapytanie którego czas oczekiwania już upłynął jest interpretowana jako odpowiedź na kolejne zapytanie wysłane później. Taka sytuacja może wystąpić np. przy komunikacji radiomodemowej, gdy czas oczekiwania nie został odpowiednio dopasowany (mimo, że transmisja trwa dłużej nie zwiększono czasu oczekiwania).

Jak działa tryb “Secure”?

Tryb ten wprowadza nowy (dodatkowy) nagłówek do istniejącego telegramu S-Bus. Telegram w trybie “Secure” wygląda następująco:

– Jeden bajt używany do synchronizacji ramki (B5)
– Jeden bajt – “znak AT” – oznaczający, że jest to nagłówek trybu “Secure” (0x10 = zapytanie, 0x11 = odpowiedź)
– Jeden bajt określający długość następującego telegramu (trybu standardowego)
– Jeden bajt będący numerem sekwencji telegramu
– “Zwykły” telegram S-Bus (ponownie zaczynający się od znaku B5 i zawierający CRC)

Jeśli urządzenie pracujące jako master wspiera komunikację w trybie “Secure”, będzie używać tego trybu do komunikacji po wszystkich portach szeregowych. Urządzenie pracujące jako slave odpowiada w tym samym trybie w jakim otrzymało zapytanie jeśli tylko jest to możliwe. Jeśli slave nie obsługuje trybu “Secure”, odpowie na wszystkie zapytania ramką standardową.

Przykład

Poniżej znajdują się dwa przykłady zapytań i odpowiedzi pomiędzy stacjami wspierającymi tryb “Secure”. Czarna część jest standardową ramką S-Bus, natomiast niebieska to dodany nagłówek trybu “Secure”. Drugi przykład pokazuje co się dzieje, gdy wartość specjalna B5 byłaby użyta w telegramie – następuje próba odczytu wartości rejestru 181 (=0xB5). W takim przypadku wstawiany jest znak DLE (Data Link Escape) zamiast “B5”. Znak DLE (0xC500, na czerwono) ma długość dwóch bajtów, jednak w nagłówku “Secure” jest liczony jako jeden bajt.

Zapytanie B5 10 09 02 B5 00 05 06 00 00 00 F8 1D
Odpowiedź B5 11 08 03 B5 01 00 00 00 00 12 FC
Zapytanie B5 10 09 03 B5 00 05 06 00 00 C5 00 94 C6
Odpowiedź B5 11 08 03 B5 01 00 00 00 00 12 FC

 

Czy master nadający w trybie “Secure” porozumie się z urządzeniem slave nie znającym tego trybu?

Tak. Gdy slave odnajdzie znak początku ramki B5 próbuje interpretować kolejne bajty. W trybie “Secure” następny będzie “komenda AT”, która nie posiada wartości rozpoznawanej przez to urządzenie. Z tego powodu urządzenie slave przestaje interpretować ramkę i oczekuje na kolejny znak synchronizacji ramki, który będzie znakiem standardowego zapytania S-Bus. Slave odpowie również standardową ramką.

Zapytanie B5 10 09 02 B5 00 05 06 00 00 00 F8 1D
Odpowiedź B5 01 12 34 56 78 A6 D0

(niebieska część jest ignorowana przez urządzenie slave)

Wersje firmware wspierające tryb “Secure”

System pierwsza oficjalna wersja FW pierwsza testowa wersja FW opcja wyłączenia
PCD1.M1x0
PCD1.M1x5 0E3 $A5
PCD1.M2xx0 1.14.23 pierwsza 1.14.23
PCD2.M110/120
PCD2.M150 0E3 $D1
PCD2/4.M170 0E3 $21
PCS1.C4/C6/C8 0C0
PCD6.Mxxx
PCD3.Mxxxx master: 03C
slave: 1.08.23
master: $31
slave: 1.08.00
1.10.16
PCD2.M480 03C
PCD2.M5xx0 1.08.19

1.10.16