HDLC

Radioamatööriwikistä
Versio hetkellä 9. tammikuuta 2008 kello 06.48 – tehnyt >Oh2mqk (HDLC - lyhyt oppimäärä)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

HDLC (Highlevel Data Link Control) on bittisynkroninen datasiirtomenettely, jolla lähetetään dataa kehyksinä - "paketteina".

Toisin kuin tavallisimpien asynkronisten sarjaporttien tapauksessa, tässä tarvitaan dataa saattamaan myös siirtokello joka saadaan modeemilta joko suoraan, tai se voidaan joissain tapauksissa regeneroida epäsuoralla tekniikalla (ks. AFSK).

HDLC on kansainvälisen standardistatuksen saanut versio IBM:n SDLC:stä (Synchronous Data Link Control), jossa yhden bitin merkitys käännettiin päinvastaiseksi.

HDLC:n bittivirralla on kyky kehystää hyötydataa siten, että datan sisältö voi olla mielivaltaista, eikä itse datan tarvitse alkaa tietyllä merkkisarjalla (joita käytetään ns. byte-synkronisten siirtoprotokollien tapauksessa.) HDLC saavuttaa tämän kyvyn siten, että se ei koskaan lähetä enempää kuin 5 perättäistä ykkösbittiä. Ainoana poikkeuksena on kehyksien reunamerkit (FLAG), jotka ovat bittikuvioita: 0111-1110 eli niissä on 6 perättäistä ykkösbittiä.

Jos lähetettävässä datassa on enemmän kuin 5 perättäistä ykkösbittiä, lähetetään ensin 5 bittiä ja sitten lisätään väliin yksi nollabitti. Vastaanotossa nämä lisätyt (bit stuffed) nollabitit otetaan pois.

Jos linkillä ei kulje dataa, siellä lähetetään perättäisiä kehysten reunamerkkejä.

HDLC kehyksen alussa on aina Address ja Control tavuja, joille on esim. AX.25 protokollassa annettu omat merkityksensä. Kehyksen lopussa on 2 tavuinen CRC-16 tarkistussumma ennen seuraavaa reunamerkkiä.

Koska HDLC ei koskaan lähetä enempää kuin 6 perättäistä ykkösbittiä, voidaan laatia linkin modulaatiotapa josta saadaan bittireunakello esille, vaikka itse modulaatiossa ei selvää reunaa olisikaan.

Tällainen tapa on ns. Non-Return-to-Zero-Inverted, jossa HDLC:n nollabitit aiheuttavat lähetettävän modulaation vaihtumista "mark" ja "space" arvojen välillä, kun ykkösbitit eivät tätä tee. Tässä tilanteessa voidaan olla varmoja että lähetteessä on nähtävissä bittireunoja vähintään kuuden bitin välein ja etukäteen tietämällä lähetenopeus voidaan sitten omalla refrenssikellolla synkronoitua saapuvaan bittivirtaan. Edellä kuvattu kellopalautus voidaan toteuttaa esimerkiksi artikkelissa AFSK olevalla kytkennällä.