|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8448 (0x2100) Types: TextFile Names: »sptssys19«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system └─⟦72244f0ef⟧ └─⟦this⟧ »sptssys19«
>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◀