RDS

Verze pro tisk

Protokol RDS pro MORSE

verze 8.0.11.0

8. srpna 2007

1. Úvod

Protokol RDS (Rádiová Datová Síť) byl vytvořen pro
rádiové modemy vyráběné firmou Racom před systémem MORSE. Z důvodů
kompatibility byl implementován i do systému MORSE. Je 8-mi bitově
orientován ve formátu procesorů Intel. Specielní funkce protokolu
přestávají být postupně podporovány, nedoporučujeme je proto využívat a
implementovat. Se zárukou jsou podporovány pouze pakety pro uživatelská
data (44h).

Protokol RDS nemá zcela důsledně odděleny jednotlivé vrstvy. Tyto se
navzájem prolínají a ovlivňují.

2. Formát dat

2.1. Fyzická vrstva protokolu RDS

Fyzická vrstva předpokládá asynchronní komunikaci DTE – DCE na
duplexním rozhraní RS232. Standardně se využívají pouze datové signály
RXD a TXD (tzn. 3-drátová komunikace: RX, TX, GND). Pro ovládání toku
dat lze samozřejmě využívat i hw handshake RTS-CTS, případně
Xon-Xoff.

Zcela rovnocenné je použití rozhraní dle RS422 (RS485), které
umožní komunikaci vyššími rychlostmi a na větší vzdálenost.

2.2. Linková vrstva protokolu RDS

Linková vrstva není jednoznačně oddělená od síťové a v podstatě s
ní splývá, tzn. datový paket se nesestává z návěští, bloku dat a
kontrolního byte, nýbrž i na lince obsahuje hlavičku, data a kontrolní
byte. Tato struktura není u všech typů zpráv zachována (viz dále). Pro
protokol RDS není tudíž možno použít jiné linkové protokoly.

Stavový diagram vysílací strany protokolu má jen dva stavy:
klidový stav a stav čekání na ACK. Z klidového stavu přechází do stavu
čekání ihned po přijetí požadavku na vyslání datového paketu. Zpět do
klidového stavu se přechází po přijetí ACK nebo po vypršení timeoutu po
posledním opakování. Ve stavu čekání na ACK protokol odmítá všechny
požadavky na odeslání datového paketu.

Přijímací strana reaguje na přijetí správného paketu (kromě
2.3.5.) okamžitým vysláním ACK (0x06). V případě, že je právě vysílán
jiný paket, vyšle ACK ihned po jeho skončení (proto musí být ACK timeout
minimálně roven době vysílání nejdelšího paketu). Na jakékoliv nesprávné
pakety (kromě 2.3.5.), t.j. s nesprávným návěštím, délkou nebo kontr.
byte je vyslán NAK.

Linková vrstva na straně systému MORSE dokáže zpracovat jakkoliv
„slepené“ pakety předané najednou do přijímacího bufferu, jehož velikost
je nastavena v konfiguraci příslušného portu (max 1626 byte).

Mezi znaky v paketu nesmí být větší mezera než je nastaveno v
parametru „idle“ příslušného portu. Roztržený paket je vyhodnocen jako
nesprávný i v případě, že k tomu došlo vlivem hardwarového handshake a
je na něj odpovězeno paketem NAK (0x15).

2.3. Síťová vrstva protokolu RDS

2.3.1. Pakety s hlavičkou a kontrolním byte

Většina paketů RDS se skládá z hlavičky, bloku dat a kontrolního
byte.

| Hlavička | Data | Checksum/8 |

RDS obsahuje celkem 3 typy paketů lišících se strukturou a
velikostí hlavičky:

  • standardní - 4 byte(44, 49)

  • bez adresy - 3 byte(45)

  • 1 bytová - 1 byte(48, 59, 66)

Checksum – Jeden byte kontrolní sumy celého paketu.

2.3.2. Pakety se standardní hlavičkou (typ 44, 49)

Hlavička:

| Typ paketu/8 | Adr/8 | L/8 | H/8 |
Typ paketu

44 – USER DATA

49 – STATISTIC REPORT (podporováno do verze firmware MORSE
3.00)

Adr

při přenosu DTE-DCE adresa destination

při přenosu DCE-DTE adresa source

L

nižší byte určující délku vlastních dat zprávy

H

vyšší byte určující délku vlastních dat zprávy

Struktura dat:

  • 44 – USER DATA – definuje si uživatel

  • 49 – STATISTIC REPORT – zpráva o statistice

Typ 49 – STATISTIC REPORT

Zpráva o statistice má tuto strukturu:

| Úroveň cíl/8 | AdKonst/8| MultKonst/8 | Počet záznamů/8 |

| Č.aktiv.záznamu/8 | Záznam1/8*25 | . . . | ZáznamN/8*25 |

| Čís.stanice2 /8 | Úroveň2/8 | AdKonst2/8 | MultKonst2/8 |
Úroveň cíl

Úroveň signálu změřená cílovou stanicí při příjmu
žádosti o statistiku

AdKonst

Aditivní konstanta korekce měření. U MR25=Úroveň
cíl

MultKonst

Multiplikativní konstanta korekce měření. U MR25 =
0

Počet záznamů

Počet záznamů statistiky, které jsou ve zprávě.

Č.aktiv.záznamu

Číslo záznamu, který je momentálně aktivní.

Záznam1…N

Jednotlivé záznamy statistiky.

Čís.stanice2

Jestliže jako první přijímá zprávu o statistice RD300FS
doplní své členské číslo, retranslační MR25 nedoplňuje nic,
adresu (a úrovně) doplňuje MR25, ze které se o statistiku
žádalo

Úroveň2

Úroveň signálu, který naměřila stanice 2

AdKonst2

Aditivní konstanta korekce měření. U MR25 = Úroveň
2

MultKonst2

Multiplikativní konstanta korekce měření. U MR25 =
0

(V případě, že se o statistiku žádá přes retranslaci a
retranslační stanice je MR25, Číslo stanice 2 (dtto úroveň 2) je
doplněno až MR25, ze které se o statistiku žádalo)

Význam znaku Záznam
| VyslZpráv/32 | NeúspVyslZpráv/32 | PočetŽád/32 | PočetOpak/32 |

| MaxŽád/32 | Reset/32 | Platnost/8 |
VyslZpráv

Počet vyslaných zpráv (pouze potvrzených nenulových
datových paketů)

NeúspVyslZpráv

Počet neúspěšně vyslaných zpráv (ztracené pakety z
důvodu překročení počtu opakování nebo překročení store
timeoutu)

PočetŽád

Počet všech žádostí o kanál (i neakceptované), (u
RD300FS nevyužito)

PočetOpak

Počet všech opakování zpráv (ne žádosti o kanál)

MaxŽád

0 (u RD300FS počet případů, kdy se žádalo o kanál,nebo
nevyužito)

Reset

0 (u RD300FS počet resetů modemu)

Platnost

1 je-li záznam za celou periodu

0 není-li záznam za celou periodu

Perioda pro ukládání statistiky je v MR25 nastavitelná (menu
Unit). Z důvodů kompatibility s RD300FS doporučujeme nastavit 86400
sec. K dispozici jsou záznamy za 3 periody zpět + právě probíhající
perioda (stejně jako u RD300FS).

2.3.3. Pakety s hlavičkou bez adresy (typ 45)

Hlavička:

| typ paketu/8 | L/8 | H/8 |
Typ paketu

45 – ERROR

Struktura dat:

| Adresát/8 | Nepotvrdil/8 | Chyba/8 | Vysílal/8 |
Adresát

číslo stanice sítě, které byla zpráva určena

Nepotvrdil

číslo stanice sítě, která nepotvrdila příjem

Chyba

0 …Zpráva nebyla předána mezi dvěma stanicemi

2 …Chyba systému MORSE – pro všechny chyby, které systém
generuje

3 …DTE adresáta nepotvrdil příjem zprávy

Vysílal

číslo stanice sítě, která poslední vysílala zprávu a
odeslala zpět toto chybové hlášení

2.3.4. Paket s 1 bytovou hlavičkou (typ 48, 59)

Tyto pakety jsou používány pro jednoznačné zprávy (dotazy). Data
jsou pouze 1 byte a obsahují adresu stanice, od které je žádána
služba. Hlavička je pouze 1 byte a obsahuje pouze typ paketu.
Struktura celého paketu:

Struktura celého paketu:

| Hlavička/8 | Adr=data/8 | checksum/8 |
Hlavička

typ paketu

Adr

adresa stanice od které je žádána služba

checksum

jeden byte kontrolní sumy pro kontrolu správného předání
zprávy. Suma je doplněk součtu po bytech celé zprávy.

Typy paketů:

  • 48 – žádost o statistiku

  • 59 – soft reset

    Soft reset (podporováno pouze v režimu C92 (RF channels,
    Modem, Mode)) je přenášen v RF kanálu kompatibilně s RD300FS, tzn.
    stanice MR25 jej generují, přenášejí avšak neakceptují. Více viz.
    kap. 4 – Rozdíly RDS mezi Morse a RD300FS.

2.3.5. Pakety bez hlavičky a bez kontrolního byte (typ 51,
4C)

Tyto pakety jsou používány pouze na úrovni linkové
vrstvy.

A -komunikace DTE-DCE:

| typ paketu/8 |

Typ paketu:

  • 51 – žádost o status

  • 4C – žádost o sílu signálu naposled přijaté zprávy

B – komunikace DCE-DTE:

Odpověď na typ 51:

| 0x54/8 | Adr/8 | Status/8 |
Adr

adresa stanice která vysílá zprávu (adresa nódu
přiřazeného k příslušnému SC kanálu portu)

Status

význam jednotlivých bitů STATUS:

Bit 0

příjem z HOST (RTS) ON/OFF. MR25 nevyužívá, vždy 0

Bit 1

CNC vysílá data z TPC ano/ne. MR25 nevyužívá, vždy
0

Bit 2

vysílá ano/ne

Bit 3

přijímá ano/ne

Bit 5

přij. pam. z vf kan. prázdná ne/ano. MR25 nevyužívá, vždy
0

Odpověď na typ 4C:

| 0x55/8 | Adr/8 | Úroveň/8 | AdKonst/8 | MultKonst/8 |
Adr

adresa stanice která vysílá zprávu (je nakonfigurovaná k
přísl.portu)

Úroveň

úroveň signálu naposled přijaté zprávy

AdKonst

Aditivní konstanta korekce měření. U MR25 = úroveň

MultKonst

Multiplikativní konstanta korekce měření. U MR25 =
0

3. Implementace v Morse

Příklad odeslání dat AAAA z PLC přes SCC3 do CU 690F0033 a dále
MORSE kanálem přes CU 690F0022 portem SCC2 do protějšího PLC.

>>
10:13:12.687 rxsim   7 | S03
4422 0200 AAAA 00                 ... user data vstupující do 690F0033
10:13:12.688|                 |00000022 00000033|S03I   OUT   2||89 0user
AAAA                              ... MORSE data
10:13:12.688 tx      1 | S03
06                                ... ACK


10:13:12.766|                 |00000022 00000033|S02I    IN   2|*89 7user
AAAA                              ... MORSE data
10:13:12.766 tx      7 | S02
4433 0200 AAAA 33                 ... user dat vystupující z 690F0022
10:13:13.770 tx      7 | S02
4433 0200 AAAA 33                 ... chybí ACK, proto jsou user data
10:13:14.774 tx      7 | S02          opakována
4433 0200 AAAA 33

Poznámky:

  • složení paketu 4422 0200 AAAA 00

    • 44 – typ paketu User Data

    • 22 – cílová adresa 690F0022

    • 0200 – délka zprávy 2 byte

    • AAAA – uživatelská data

    • 00 – doplněk podle parametru (m)

  • parametry CU 690F0033

    • (m):0000 vyžaduje na místě kontrolního součtu znak 00

    • (c):ON zapíná potvrzování na lince, tedy je vyslána odpověď
      06

  • parametry CU 690F0022

    • (m):FFFF zapne generování kontrolního součtu na lince

    • (c):ON vyžaduje potvrzování na lince, potvrzení
      nepřichází

    • (a):1000 (r):2 definují 2 opakování s prodlevou
      1000ms

4. Konfigurační parametry

RDS parameters:
(a):1000  (r):2  (m):FFFF
(c) :ON
Stat. Filter:  (A)ddr:00000000  (M)ask:00000000  (C)nt:00000000
r(e)verse:OFF  a(d)dress:0000
(q)uit
>>
(a)

ACK timeout je doba po skončení vysílání datového paketu,
kterou vysílací strana čeká na potvrzení paketem ACK. Pokud ACK
nepřijde, paket je opakován. Doporučená hodnota je 1.5 násobek doby
vysílání nejdelšího možného paketu nastavenou rychlostí.

(r)

Počet opakování. Pokud je vyčerpán počet opakování a vyprší
poslední ACK timeout, je síťové vrstvě předána informace o ztrátě
paketu. Doporučená hodnota 3.

(m)

Checksum 0xFFFF/konst.. Většina paketů má na konci kontrolní
byte – checksum (doplněk součtu po bytech celé zprávy) – nastavení
0xFFFF. V případě nastavení jiné konstanty než 0xFFFF je na místo
bytu checksum doplňována nastavená konstanta (spodní byte, např.
0x12AB, znamená doplnění AB).

(c)

Potvrzování ano/ne. Při nastavení ON/OFF jsou všechny pakety
kromě 2.3.5. potvrzovány/nepotvrzovány 1 bytovými pakety typu
ACK/NAK (0x06/0x15).

Filter

Parametry pro speciální aplikaci vytvořenou zákazníkem. Pro
čtení logů z CU s filtrací podle adresy, masky a počtu
záznamů.

(e),(d)

Parametry pro servisní účely.

5. Historie

  • ver 666 – 06/2004 – implementována statistika podle C92

  • ver 672 – 07/2004 – doplněny funkce reverse, address

  • ver 713 – 05/2005 – odstraněn error 1006 v Event
    logu

  • ver 753 – 06/2006 – nová verze, rámce přijímány jako
    stream

    nejsou podporovány povely:

    • C92_HARD_RESET

    • C92_SOFT_RESET

    • C92_EEP_CODE

    • C92_ROUTE_SERIAL_NO

    dále jsou podporovány povely:

    • C92_ERROR_REPORT

    • C92_STAT_REQ

    Vznikla chyba – z portu nejsou vysílány rámce delší než 256
    byte

  • ver 810 – odstraněna chyba, dlouhé pakety jsou vysílány
    normálně