8b10b koodi
8b10b koodi (myös 8b / 10b-koodi ) on rivi koodia on tietoliikennetekniikan kehittämä vuonna 1983 Albert Xavier Widmer ja Peter Franaszek . 8 informaatiobittiä koodataan 10 linjan bitillä . Täydellinen DC -jännitteen tasaus on taattu, ja kellosykli ja datasanojen rajat voidaan myös palauttaa helposti. Bittinopeus kasvaa 25 prosenttia ( yleiskustannukset ). Samanlainen jäsennelty koodi on 16b18b -koodi (myös Albert Xavier Widmer), jonka yleiskustannukset ovat vain 12,5 prosenttia.
Muita, huomattavasti tehokkaampia koodeja ovat 64b66b -koodi, jossa on 3 prosenttia yleiskustannuksia , joka kartoittaa 64 -bittiset tiedot 66 -bittiseksi , ja 128b130b -koodi, jossa on vain 1,5 prosenttia yleiskustannuksia. Nämä koodit takaavat kuitenkin ominaisuudet (kuten vapauden DC -jännitteestä, saman tason toistotaajuuden, datasanojen rajojen tunnistamisen) vain tilastollisella keskiarvolla.
ominaisuudet
8b10b-koodi käyttää kymmenen bitin pituista koodisanaa yhden oktetin lähettämiseen . Seuraavat ominaisuudet täyttyvät:
DC -jännitteen tasaus
Yksittäisten lukumäärä koodisanaa kohti eroaa nollien määrästä enintään kahdella. Tämä antaa kolmenlaisia koodisanoja:
- 252 neutraalia (neutraali ero): sama määrä "1" ja "0", joten viisi kertaa "1" ja viisi kertaa "0"
- 210 positiivista (positiivinen ero): kuusi kertaa "1" ja neljä kertaa "0"
- 210 negatiivinen (negatiivinen ero): neljä kertaa "1" ja kuusi kertaa "0"
Tietovirrassa ”1” ja “0” esiintyvät samalla todennäköisyydellä. Jos nyt lähetät "1" positiivisena jännitteenä + U ja "0" negatiivisena jännitteenä −U, koodatulla signaalilla (tietyllä datanopeudella) on alempi rajataajuus, ts. Toisin sanoen jännite lasketaan keskimäärin pidemmän bittisarjan yli niin, että signaali ei sisällä DC -jänniteosaa. Tämä DC -jännitteen tasaus mahdollistaa esimerkiksi lähettimen ja vastaanottimen kapasitiivisen tai induktiivisen kytkennän .
Identtisten rivibittien enimmäismäärä peräkkäin
Puhtaan tiedonsiirron tapauksessa koodauksen rakenne rajoittaa peräkkäisten identtisten rivibittien ( symbolit ) enimmäismäärän (enimmäisajonpituuden ) viiteen; H. Taso muuttuu viimeistään viiden kellosyklin jälkeen.
On kolme ohjaussanaa (ne eivät edusta käyttäjätietoja), joissa tietyssä kohdassa kymmenen rivibitin sisällä tietosanaa kohden ei tarkoituksellisesti tapahdu tasomuutosta kuuden kellosyklin aikana (joita kutsutaan pilkuiksi). Tämä mahdollistaa datasanojen rajojen helpon palauttamisen. Itse kellon palauttamisella on erittäin alhaiset vaatimukset johtuen usein tapahtuvista tasomuutoksista.
Erilaisuus
Koodattavan datasanan (D.00.0 - D31.7 tavallisille datasanoille 0… 255, Kxx.y kahdentoista muun mahdollisen ohjaussanan) lisäksi 8b10b -kooderilla on myös aiempi ero tulomuuttujana. Tästä lasketaan kymmenen rivibittiä ja seuraava ero, joka vaaditaan seuraavan datasanan koodaamiseen.
| eteenpäin menevä ero |
Koodisanan eriarvoisuus (eriarvoisuuden jälkeen) |
||
|---|---|---|---|
| −1 | ± 0 | +1 | |
| −1 |
Ei × |
Kyllä → (−1) |
Kyllä ↗ (+1) |
| +1 |
Kyllä ↘ (−1) |
Kyllä → (+1) |
Ei × |
On varmistettu, että ero voi olettaa vain arvot −1 ja +1.
Yksinkertaisimmassa tapauksessa koodaus voidaan tehdä käyttämällä vain luku -muistia 1024 × 11 bittiä: 10 bittiä (kahdeksan databittiä, vaihtaminen datasanan / ohjaussanan välillä, edellinen pariteetti) → 11 bittiä (kymmenen kanavan bittiä, seuraava pariteetti) . Koodi on kuitenkin rakennettu siten, että koodaus voidaan jakaa kahteen merkittävästi pienempään taulukkoon (128 × 7 -bittinen ja 32 × 5 -bittinen) ja pieneen lisälogiikkaan.
K-sanoja
256 mahdollisen datasanan lisäksi voidaan lähettää kaksitoista mahdollista ohjaussanaa. Näitä ohjaussanoja kutsutaan K -sanoiksi. Ne ovat välttämättömiä ylemmän tason protokollakerrosten ohjaustoiminnoille. Kolme näistä K-sanoista sisältää bittikuvion, joka ei voi syntyä koodisanan rajojen yli. Tämä tarkoittaa, että koodisanan viimeiset bitit yhdessä seuraavan koodisanan ensimmäisten bittien kanssa eivät voi koskaan johtaa yhden näistä kolmesta erityisestä K-sanasta bittikuvioon. Tätä käytetään sarjamuotoisissa tietovirroissa tunnistamaan koodisanan alku ja loppu. Näitä kolmea erityistä K-sanaa kutsutaan myös pilkuiksi.
Virheentunnistus
Koska kaikkia 1024 -yhdistelmiä, joita voidaan esittää kymmenellä bitillä, ei käytetä ja tiukkoja valintasääntöjä on myös noudatettava, yksittäiset bittivirheet voidaan havaita tietyllä todennäköisyydellä (noin 75 prosenttia). Kuitenkin myös kelvollisia vääriä tietosanoja voi syntyä. Suojattuihin lähetyksiin tarvitaan siis lisäsummia tai eteenpäin lähetetty virheenkorjaus.
Sovellukset
8b10b -koodi löytää mm. Käytä seuraavissa lähetysstandardeissa:
- PCI-Express (vain 1.x ja 2.x; 3.x käyttää 128b / 130b )
- Sarja -ATA (enintään SATA III)
- Sarjaan liitetty SCSI (enintään SAS-3; SAS-4: stä 128b / 150b)
- Kuitukanava (jopa 8GFC; 10GFC, 16GFC käyttää 64b / 66b)
- InfiniBand (jopa QDR; FDR10, FDR ja uudemmat 64b / 66b)
- FireWire 800, S1600, S3200 ("beta -tila")
- DisplayPort (versioon 1.4 asti)
- DVI ja HDMI (versio 2.0 asti) ( TMDS )
- CPRI
- OBSAI
- USB 3.0 ( USB enintään 2.0 käyttää NRZI: tä , USB 3.1 128b / 132b), USB 3.2 siirtyy 128b132b -koodaukseen
- Ethernet kanssa X - PCS koodia , jopa 1 Gigabit Ethernet (enää käyttää kaikkien seuraajat)
Koodin 8b10b huippuajat olivat vuodet 2007-2013. Uudessa kehityksessä ne ovat siirtyneet uhkakoodeille (64b66b-512b514b) ja niiden seuraajille (integroitu virheenkorjaus, monitasoinen koodaus ).
Katso myös
Yksilöllisiä todisteita
- ↑ SAS Protocol Layer - 4 (SPL -4) luonnos 08b . INCITS. 18. heinäkuuta 2016. Haettu 21. heinäkuuta 2016.
- ↑ http://www.cpri.info/spec.html CPRI Common Public Radio Interface
- ↑ http://www.obsai.com Open Base Station Architecture Initiative, katso RP Specifications: RP3_Vx.x.pdf (Physical Layer)
- ↑ https://www.heise.de/ct/hotline/USB-2-0-ausgebremst-325842.html
- ↑ USB3.0 kuvauksessa itwissen.info ( Memento helmikuun 27 2009 in Internet Archive )
nettilinkit
- AX Widmer, PA Franaszek: DC-tasapainotettu, osioitu lohko, 8B / 10B-lähetyskoodi . Julkaistu IBM Journal of Research and Development -lehdessä IBM: n verkkosivustolla. Haettu 26. huhtikuuta 2015.
- 8b / 10b -koodaus osoitteessa knowledgetransfer.net . Haettu 26. huhtikuuta 2015.