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í.
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.
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).
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.
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 |
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
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 |
AdKonst |
Aditivní konstanta korekce měření. U MR25=Úroveň |
MultKonst |
Multiplikativní konstanta korekce měření. U MR25 = |
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 |
Úroveň2 |
Úroveň signálu, který naměřila stanice 2 |
AdKonst2 |
Aditivní konstanta korekce měření. U MR25 = Úroveň |
MultKonst2 |
Multiplikativní konstanta korekce měření. U MR25 = |
(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 |
NeúspVyslZpráv |
Počet neúspěšně vyslaných zpráv (ztracené pakety z |
PočetŽád |
Počet všech žádostí o kanál (i neakceptované), (u |
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 |
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).
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 3 …DTE adresáta nepotvrdil příjem zprávy |
Vysílal |
číslo stanice sítě, která poslední vysílala zprávu a |
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í |
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.
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 |
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 |
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 |
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 |
Ú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 = |
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
-
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, |
(r) |
Počet opakování. Pokud je vyčerpán počet opakování a vyprší |
(m) |
Checksum 0xFFFF/konst.. Většina paketů má na konci kontrolní |
(c) |
Potvrzování ano/ne. Při nastavení ON/OFF jsou všechny pakety |
Filter |
Parametry pro speciální aplikaci vytvořenou zákazníkem. Pro |
(e),(d) |
Parametry pro servisní účely. |
-
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
streamnejsou 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ě