DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦5bf146914⟧ TextFile

    Length: 8448 (0x2100)
    Types: TextFile
    Names: »sptssys19«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »sptssys19« 

TextFile

>fo @üSP.TSSYS.19/1ü@
>a1 INDLEDNING
LINK-PROTOCOL-HANDLER har til formål at køre en linkprotokol over en
>ul
full duplex
linie.

Den transmission LINK-PROTOCOL-HANDLER styrer er 
>ul
asynkron
overførsel af 1 startbit, 8 databits, 1 paritetsbit og 2 stopbits
med en maksimal hastighed på 1200 bps.

Protokollen skal fx benyttes til datatransmission mellem TS og VC(IT)
samt mellem alarmnetknuder, der ikke forbindes ved paxnets HDLC-linier.

LINK-PROTOCOL-HANDLER består af 3 processer

 - LINK-ROUTER (LIR)
 - LINK-MASTER (LIM)
 - LINK-SLAVE  (LIS)

Hver af disse processer beskrives i det følgende.

LINK-PROTOCOL-HANDLER kaldes i det følgende LPH.

>a1 Telegrammer
De telegrammer LPH sender eller modtager består af følgende:

 <STX><BLL><OPK><datadel><ETX>

hvor

<STX> er start af text (ASCII 2) og denne karakter står forrest
i ethvert telegram.

<BLL> er bloklængden målt i bytes fra og med OPK til og med ETX.
BLL er altid større end eller lig med 2 og mindre end eller lig med
255.

<OPK> er operationskoden for telegrammet.

<datadel> indeholder den meddelelse, der sendes. Datadelen kan indeholde
enhver byte, og den kan være tom.

<EXT> er end of text (ASCII 3).

Det vil sige, at <STX>, <BBL> og <EXT> bruges som synkroniseringskarakterer
for teksttransmission.

OPK definerer telegrammets type og er således den centrale information i
kørsel af linieprotokollen.

Da linien er full duplex opdeles mængden af OPKer i 2 disjunkte mængder
for henholdsvis MASTER-OPKer og SLAVE-OPKer.

>a2 MASTER-operationskoder.

MASTER-OPKer er de koder, LIM kan afsende og som LIS kan modtage.
Disse omfatter:

 DATA_0 (OPK = 0)
 DATA_1 (OPK = 1)
 ENQ    (OPK = 2)

DATA_0 og DATA_1 benyttes af MASTER til afsending af tekst. ENQ benyttes
af MASTER til afhentning af sidst afgivne svar fra SLAVE.

>a2 SLAVE-operationskoder.

SLAVE-OPKer er de koder, LIS kan afsende og som LIM kan modtage. Disse
omfatter:

 ACK_0    (OPK = 4)
 ACK_1    (OPK = 5)
 NAK      (OPK = 6)
 RESTART  (OPK = 6 (samme kode som NAK))

ACK_0 og ACK_1 benyttes som accept af henholdsvis et modtaget
DATA_0-telegram og et modtaget DATA_1-telegram. NAK benyttes til
anfordring af retransmission af DATA_0 og DATA_1 telegrammer.
RESTART benyttes som svar på ENQ,
hvis slave ikke har andet at svare.

>a1 Protokol
I det følgende beskrives hvorledes protokollen virker ved

 - normal dataoverførsel
 - transmissionsfejl
 - opstart
 - polling

Protokollen tager højde for transmissionsfejl, der ligger indenfor
en hammingafstand på 4. Dette betyder, at dataoverførslen ikke er 
100 % sikker ved transmissionsfejl på 4 bit eller mere i et telegram.

>a2 Normal dataoverførsel
Dataoverførsel foregår altid fra master til slave.

>ne 20
>sp 18
>fg Dataoverførsel

Når master har noget at sende, og der
>ul
ikke
er nogle udestående telegrammer, sender den et DATA_i-telegram ( hvor i = 0 eller 1 ).

Hvis slave modtager DATA_i-telegrammet korrekt, sender den et 
ACK-i-telegram.

Hvis slave registrerer transmissionsfejl, sender den et NAK-telegram,
hvorefter master 
>ul
gentager
DATA_i-telegrammet.

>a2 Transmissionsfejl
Nødvendigheden af de anvendte operationskoder ses af 
følgende eksempel på forskellige former for transmissionsfejl.

Hvis der opstår transmissionsfejl, som registreres af slave, svarer
denne med NAK som beskrevet i forrige afsnit.

Hvis et telegram fra master eller slave
>ul
går tabt
ser situationen ud som på følgende figur:

>ne 35
>sp 34
>fg Telegrammer går tabt

Efter en timeout sender master et ENQ-telegram for at få
>ul
gentaget
det sidste telegram fra slave.

Det nummerede ACK-svar vil nu vise om det var DATA-telegrammet
eller slavens svar, der gik tabt.

Herefter kan master fortsætte kommunikationen fra en veldefineret
tilstand.

Hvis et telegram fra master eller slave
>ul
forvanskes
ser situationen ud som på følgende figur:

>ne 36
>sp 34
>fg Telegrammer forvanskes

Efter modtagelse af NAK-svar
>ul
gentager
master sit DATA-telegram.

Slave svarer på det forvanskede DATA-telegram med NAK, hvis og kun
hvis der er modtaget
>ul
mindst
5 databytes inklusiv <STX>, <BBL> <OPK> og <ETX>, idet den da er
(næsten) 
>ul
sikker
på at det er et forvansket DATA-telegram.

Slave svarer
>ul
ikke
på et forvansket ENQ-telegram.

>a2 Opstart
En master starter op med at sende ENQ-telegrammer. 

Når forbindelsen til slave er oprettet, starter denne op med at
svare RESTART.

>ne 30
>sp 28
>fg Forbindelse (gen)oprettes


>a2 Polling
Der findes ikke nogen speciel OPK for polling.

Med pollinterval sekunders mellemrum sender LIM et
ENQ-telegram til aftestning af, om der er forbindelse.

>a1 Modulstruktur
LPH består af de tre processer LIR, LIM og LIS.

>ne 32
>sp 30
>fg Modulstruktur

>a2 Link Router (LIR)
LIR er den samme proces som LPH, men den del af LPH, der
>ul
ikke
omfatter LIM og LIS.

LIR foretager routning af de meddelelser den modtager fra
LPH_SEM.

Den kan modtage følgende 4 typer:

 - brugerrequest om afsending af data (USD)
 - brugerrequest om modtagelse af dta (URD)
 - protokoltelegram fra master        (PTM)
 - protokoltelegram fra slave         (PTS)

En USD og en PTS sendes videre til LIM.
>sp0
En URD og en PTM sendes videre til LIS.

>a2 Link Master (LIM)
LIM anbringer USD i en LIM-requestkø (FIFO).

LIM behandler et NAK-telegram ved at
>ul
gentage
det sidst afsendte telegram (bufferen sendes igen).

LIM behandler et ACK-telegram ved at kontrollere, om det er lig
med det forventede (ACK_0 eller ACK_1) telegram. Hvis det er det,
returneres den USD-buffer, der står forrest i LIM-requestkø. Ellers
sendes et ENQ telegram.

>a2 Link Slave (LIS)
LIS anbringer URD i en LIS-requestkø (FIFO). 

LIS behandler et ENQ-telegram ved at
>ul
gentage
det sidst afsendte telegram.

LIS behandler et DATA-telegram ved at kopiere indholdet
over i den forreste URD-buffer i LIS-requestkø.

>a2 Tilstandsdiagram
I det følgende beskrives hvorledes henholdsvis LIM og LIS
skifter tilstande under gennemløb af den beskrevne protokol.

>ne 20
>sp 18
>fg Tilstandsdiagram for LIM

  1. USD
  2. ACK_0 og ingen USD
  3. alle svar
  4. NAK / ACK_1
  5. ACK_1 og flere USD
  6. ACK_1 og flere USD
  7. ACK_0 og flere USD
  8. ACK_1
  9. ukendt eller timeout
 10. NAK / ukendt / timeout
 11. ACK_0 og flere USD
 12. ACK_0 og ingen USD
 13. ACK_1 og ingen USD
 14. ACK_0
 15. ukendt / timeout
 16. ACK_1 og ingen USD
 17. NAK / ukendt / timeout
 18. timeout
 19. restart
 20. svar forskellig fra restart

>ul
POLL
er den tilstand, hvor LIM med pollinterval mellemrum sender en
ENQ og venter på en USD fra LIR. 

Ved modtagelse af en USD sender LIM en DATA_0 og går til WACK_0
tilstand.

>ul
WACK_0
er den tilstand, hvor LIM venter på ACK_0.

ved modtagelse af ACK_0 sender LIM et DATA_1-telegram,
hvis der er flere USDer, hvorefter den går i WACK_1-tilstanden.
LIM går i POLL-tilstanden, hvis der ikke er flere USDer.

Ved modtagelse af NAK (RESTART) eller ACK_1, retransmitterer LIM
DATA_0-telegrammet og bliver i WACK_0-tilstanden.

Ved modtagelse af en ukendt operationskode eller ved timeout sender
LIM et ENQ-telegram og går i ENQ_ACK_0-tilstanden.

>a2 Øvrige tilstande.

Følger senere.




>a2 Brugerinterface
LPH's brugerinterface skal svare til den del af ROUTER's LINE-interface
(HDLC-interface),
der anvendes når alarmsystemet anvender ROUTER.
Desuden skal interfacet tilgodese VC(IT)-CONNECTORs brug af dette.

HDLC-interfacet er defineret ved en række meddelelsestyper inddelt
i henholdsvis

 - kontrolmeddelelser
 - transput meddelelser

>ul
Kontrolmeddelelserne
omfatter

 - sense status
 - connect
 - disconnect
 - return all buffers
 - return unused buffers
 - modem control
 - read statistics
 - sense line speed
 - event

>ul
Transputmeddelelserne
omfatter

 - receive
 - transmit

Formaterne for de enkelte meddelelser er beskrevet i 
"RC3502 COM 201 HDLC DRIVER" (RCSL NO. 43-AA699).
▶EOF◀