S-BUS

https//www.racom.eu/cz/support/prot/sbus/index.html

Verze pro tisk

Protokol S-BUS pro MORSE

Popis protokolu

verze 7.21

6. května 2008

1. Úvod

Protokol S-Bus (dále jen S-Bus-MORSE) je implementován do systému MORSE jako přístupový modul pro komunikaci se zařízením PCD SAIA. Protokol je typu MASTER/SLAVE, přičemž MASTER stanice nemá vlastní adresu. SLAVE stanic může být maximálně 254, adresa 255 je vyhrazena pro broadcastové vysílání které nebývá potvrzováno. Fyzická vrstva protokolu S-Bus-MORSE používá rozhraní RS232 nebo RS485 (SC kanál). Broadcastové vysílaní je implementováno do systému MORSE a přijatá data s adresou 255 jsou označena jako broadcastová.

Tab. 1: Základní povely protokolu (S-Bus Code)

 ReadWrite
Input0x03x
Output0x050x0D
Flags0x020x0B
Register0x060x0E
Counter0x000x0A
Timer0x070x0F
Data Block0x960x97
RTC0x040x0C

a) Breakový mód (SM0)

Synchronizace rámců je provedena pomocí break znaků definované délky, které jsou vysílané pouze před adresovaným povelem.

b) Paritní mód (SM1)

Zastaralý, v systému MORSE není podporován

Paritní bit rámce určuje typ rámce:

  • 1 – adresní

  • 0 – datový

c) Datový mód (SM2)

Bitová synchronizace rámce (FS) je zajišťována vložením znaku 0xB5 na začátek rámce. Pokud by se v rámci měl vyskytnout tento znak, je nahrazen následující DLE sekvencí:

znakDLE sekvence
0xB50xC500
0xC50xC501

Obecný tvar telegramu S-Bus v datovém režimu:

| FS/8 | AT/8 | Addr/8 | SC/8 | Data | CRC/16 |

  • FS – bitová synchronizace rámce (Frame synchronization)0xB5

    • 0xB5

  • AT – určuje druh telegramu:

    • 0x00: rámec je telegram, zápis dat, čtení .. atd.

    • 0x01: rámec je odpověď a obsahuje data

    • 0x02: ACK/NAK

  • Addr – adresa v síti S-Bus

  • SC – S-Bus Command, viz tabulka Základní povely protokolu

  • Data – obsah pole podle příslušného povelu S-Bus

  • CRC – kontrolní součet

2. Formát dat

Linková, resp. síťová vrstva protokolu S-Bus-MORSE rozeznává čtyři druhy rámců.

Při příjmu z SC kanálu jsou všechny rámce považovány za adresné. Pouze v případě, že protokol očekává odpověď na adresný rámec, je první přijatý rámec s korektním BCW (popř. ACK nebo NAK) považován za neadresný.

Po vyslání adresného povelu na SC kanál je následně přijatý rámec na SC kanálu považován za neadresnou odpověď. Pokud není přijata odpověď na vysílaný rámec na SC kanálu, je tento rámec opakován po nastavitelné době (t) s nastavitelným počtem opakování (r). Při neobdržení odpovědi na adresný rámec protokol S-Bus-MORSE vygeneruje chybový paket WIRE_LINK_FAIL. Neadresný rámec není opakován.

Rámce S-Bus vyslané na adresu 255 (0xFF) jsou protokolem S-Bus-MORSE vyslány do sítě MORSE jako broadcast. V síti MORSE je nutno pro tento případ konfigurovat příslušná menu (B)roadcast.

Podle obsahu znaku AT se na SCC vyskytují 4 typy rámců:

A – DATOVÝ REŽIM

  1. Rámec adresného povelu

    Rámec adresného povelu je přenesen pouze, souhlasí-li pole BCW. Pole ADDR je použito k získání síťové adresy cílové stanice. Obě pole ADDR i BCW jsou odstraněna na straně vysílací stanice (Communication Unit – CU) resp. obnovena na straně přijímací radiostanice. Typ paketu je USER DATA (0x09). Formát a příklad dat:

    | FS/8 | AT/8 | Addr/8 | SC/8 |  Data  | BCW/16 |
       B5     00      01      06     030000   5F4B
  2. Rámec neadresné odpovědi s daty

    Rámec neadresná odpověď je přenesen pouze, souhlasí-li pole BCW. Pole BCW je odstraněno, resp. obnoveno. Adresa protistanice je určena jako odesílatel předchozího přijatého paketu. Typ paketu je USER DATA .

    | FS/8 | AT/8 |             Data                      | BCW/16 |
       B5     01   0000 0A9D 0000 0A9D 83F3 0BED 1E06 3DCE   78F0
  3. Potvrzovací rámce – ACK

    Rámec ACK přijatý z SC kanálu je přenášen pouze v případě, že protokol S-Bus-MORSE očekává neadresnou odpověď. Adresa protistanice je určena jako odesílatel předchozího přijatého paketu. Typ paketu je USER DATA.

    | FS/8 | AT/8 |  ACK  | BCW/16 |
       B5     02     0000    23F4
  4. Rámec negativní odpovědi – NAK

    Rámec NAK přijatý z SC kanálu je přenášen pouze v případě, že protokol S-Bus-MORSE očekává neadresnou odpověď. Adresa protistanice je určena jako odesílatel předchozího přijatého paketu. Typ paketu je USER DATA.

    | FS/8 | AT/8 |  NAK  | BCW/16 |
       B5     02     0001    33D5
    • ACK = 0x0000

    • NAK = 0x0001

B – BREAKOVÝ REŽIM

Breakový režim nepoužívá položky FS, AT. Místo toho je začátek rámce označen znaky break v nastavitelné délce.

  1. Rámec adresného povelu

    | Addr/8 | SC/8 | Data/8 *N | BCW/16 |
       0x02    0x06   0x00000A    0xC250
  2. Rámec neadresné odpovědi s daty

    | Data/8 *N | BCW/16 |
     0x0000 020E  0x87AC
  3. Potvrzovací rámce – ACK

    | ACK kód /8 |
         0x06
  4. Rámec negativní odpovědi – NAK

    | ACK kód/8 |
        0x15

Ostatní rámce jsou ignorovány.

  • Addr je adresa protistanice

  • BCW je Block Control Word, 16ti bitové CRC

  • ACK = 0x06

  • NAK = 0x15

Tyto čtyři druhy rámců

jsou protokolem S-Bus-MORSE přenášeny jako data síťové vrstvy MORSE, typ user data, formát:

  1. Rámec adresného povelu

    | 0x01/8 | data |
  2. Rámec neadresné odpovědi s daty

    | 0x04/8 | data |
  3. Potvrzovací rámce – ACK

    rámec s nulovou délkou
  4. Rámec negativní odpovědi – NAK

    | 0x15/8 |

3. Příklad komunikace

A – DATOVÝ REŽIM

Příklad 1

Zápis digitální hodnoty (SC=0D) na Slave 02, rámec potvrzen ACK.

Monitoring požadavku a odpovědi na lince SCC
PCD Master-CU a CU-PCD Slave
a na vnitřním CNI rozhraní (MORSE paket):

Příkaz, Master>CU

15:32:24.888 rx;i   11 | S01
B500 020D 0300 1003 0F1B D1
CNI mon     |toa      frm     |dst      src     |           size|TT N
15:32:24.889|                 |00000002 00000001|S01I   OUT   7||89 6usr 0
010D 0300 1003 0F

B5   - FS/8     - počátek rámce
00   - AT/8     - adresný povel
02   - Addr/8   - adresa Slave v síti S-Bus
0D 0300 1003 0F - data S-Bus
1BD1 - CRC/16   - kontrolní součet

z položky Addr/8 je vytvořena dst adresa 00000002 pro paket MORSE

01              - adresný povel S-Bus MORSE
0D 0300 1003 0F - data S-Bus

Příkaz, CU>Slave

15:32:24.959|                 |00000002 00000001|S01I    IN   7|*89 0usr 0
010D 0300 1003 0F
15:32:24.959 tx     11 | S01
B500 020D 0300 1003 0F1B D1

B500 020D 0300 1003 0F1B D1 - rámec doručený do PCD Slave je shodný 
                              s rámcem odeslaným z PCD Master

Odpověď, Slave>CU

15:32:24.974 rx;i    6 | S01
B502 0000 23F4
15:32:24.974|                 |00000001 00000002|S01I   OUT   0||89 0usr 0

B5   - FS/8   - počátek rámce
02   - AT/8   - potvrzení ACK/NAK
0000 - ACK
23F4 - CRC/16 - kontrolní součet

Potvrzení ACK je sítí MORSE přeneseno jako paket s nulovou délkou.

Odpověď, CU>Master

15:32:25.035|                 |00000001 00000002|S01I    IN   0|*89 0usr 0
15:32:25.035 tx      6 | S01
B502 0000 23F4

B502 0000 23F4 - rámec pro PCD Master je shodný s odeslaným z PCD Slave

Tuto komunikaci lze shrnout monitoringem na SCC Master-RS:

15:32:24.888 rx;i   11 | S01
B500 020D 0300 1003 0F1B D1
15:32:25.035 tx      6 | S01
B502 0000 23F4

Příklad 2

Čtení analogového registru (SC=06) ze Slave 02:

Příkaz, Master>CU

15:32:37.516 rx;i    9 | S01
B500 0206 0100 64F3 DB
15:32:37.516|                 |00000002 00000001|S01I   OUT    5||89 7usr  0
0106 0100 64

B5   - FS/8   - počátek rámce
00   - AT/8   - adresný povel
02   - Addr/8 - adresa Slave v síti S-Bus
06 0100 64    - data S-Bus
F3DB - CRC/16 - kontrolní součet

01            - adresný povel S-Bus MORSE
06 0100 64    - data S-Bus

Odpověď, CU>Master

15:32:37.645|                 |00000001 00000002|S01I    IN    9|*89 7usr  0
0400 0001 6300 0000 BB
15:32:37.645 tx     12 | S01
B501 0000 0163 0000 00BB C4E2

04                  - neadresná odpověď S-Bus MORSE
0000 0163 0000 00BB - data S-Bus

B5   - FS/8         - počátek rámce
01   - AT-8         - odpověď s daty
0000 0163 0000 00BB - data S-Bus
C4E2 - CRC/16       - kontrolní součet

Tuto komunikaci lze shrnout monitoringem na SCC Master-RS:

15:32:37.516 rx;i    9 | S01
B500 0206 0100 64F3 DB
15:32:37.645 tx     12 | S01
B501 0000 0163 0000 00BB C4E2

B – BREAKOVÝ REŽIM

Žádost o nastavení výstupu (SC=0D) na Slave 02, rámec je potvrzen protistanicí ACK:

15:01:01.933 tx      9 | S01
020D 0300 0A00 0117 92
15:01:02.055 rx;i    1 | S01
06

02       - adresa
0D       - žádost o nastavení výstupu
03       - počet datových bytů v rámci(4) 
000A0001 - data
1792     - CRC

Žádost o čtení registru č.10 s neadresnou odpovědí:

14:56:33.967 tx      7 | S01
0206 0000 0AC2 50
14:56:34.092 rx;i    6 | S01
0006 020E 87AC

žádost:

02    - adresa
06    - žádost o čtení registru
00    - počet datových bytů v rámci(1) 
000A  - data
C2 50 - CRC

odpověď:

00   - neadresná odpověď
06   - žádost o čtení registru
020E - data
87AC - CRC

4. Konfigurační parametry, příklad parametrů

S-BUS parameters:
(m):MASTER/SLAVE  (N):OFF
(t):300ms  (T):11500ms
(r):0  (b):5  (a):0000
(d)ata mode:OFF
(q)uit
(m)

(m):MASTER / SLAVE — parametrem „mode“ se nastavuje standardní režim MASTER/SLAVE nebo režim SLAVE+ (viz. Kap.5)

(N)

(N): ON/OFF — ON = režim číslování paketů při vysílání, kontroluje číslo paketu v odpovědi (check packet Numbers) pokud se neshodují, paket je zahozen, má význam pouze na straně radiomodemu u PCD MASTER

(t)

(t): 300 ms — parametr „timeout“ slouží k nastavení doby čekání na odpověď při opakování do SC kanálu. Musí mít hodnotu času potřebného k vysílání nejdelšího paketu v aplikaci.

(T)

(T):11500ms — mechanismus redukce přísunu paketů z SC kanálu (offered load, transmission control timeout) při nevhodně nastaveném timeoutu aplikační vrstvy v centru.

doporučený čas: T = Rsaia * TOsaia – 500 [ms]

Rsaia, TOsaia – počet opakování a timeout připojeného zařízení Saia PCD

CU po nastavený čas (T) zahazuje všechny (opakované) povely, které dostává na SC kanálu od centra(FEPu). Účelem je nezablokovat rádiový kanál opakovanými dotazy po dobu, než přijde po rádiové síti odpověď od RTU.

(r)

(r): 3 — parametr „repeats“ slouží k nastavení počtu opakování do SC kanálu při neobdržení odpovědi

(b)

(b): 5 znaků — parametr „break characters“ slouží k nastavení délky symbolu break, uplatňuje se pouze breakovém režimu

(a)

(a):0000 — alarmová hlášení – ve vývoji

(d)

(d)ata mode: OFF — volba módu

OFF – Breakový režim

ON – Datový režim

Doporučené časování PCD SAIA – dle výrobce:

5. Spontální aktivita stanic slave

Podřízené stanice SAIA PCD v režimu MASTER/SLAVE mohou předávat informaci do protokolu S-Bus do jiných podřízených stanic (v danou chvíli se přepnou do režimu master). V tomto případě může dojít ke kolizi, centrum posílá dotaz na stanici, která je v danou chvíli v režimu master, případně jedna podřízená stanice odpovídá dvěma masterům najednou. Tyto kolize se díky dlouhým timeoutům, které je pro radiový přenos nutné nastavit, řeší velmi dlouho.

V případě použití jiného protokolu v centru, např. MARS-A lze přepnout protokoly S-Bus-MORSE na všech ostatních radiových stanicích do režimu SLAVE+. Potom budou všechny adresné žádosti o zápis (přijaté z SC kanálu) odeslány, protokol na ně vygeneruje ACK, a všechny adresné žádosti o čtení (přijaté z SC kanálu) budou zahozeny a protokol na ně vygeneruje NAK, rozdělení kódu pro režim SLAVE+ je v tab 1. Odeslané pakety budou mít první byte nastaven na hodnotu 0x02 a budou mít typ paketu USER DATA. V případě, že podřízená stanice chce číst data z centra (FEPu), musí pro tuto komunikaci použít žádost o zápis a přenos odpovědi opačným směrem musí obstarat vyšší komunikační vrstva. Komunikaci s aktivitou „ze zdola“ lze navrhnout i jiným způsobem. Firma RACOM dodává podporu komunikačního software do zařízení MORSE zdarma.

6. History

Tento popis platí od verze 7.21 z 10.9.2005

©  2024 RACOM s.r.o. All Rights Reserved.