Кіріспе

8 биттік сөздерді 10 биттік символдарға шамалап сәйкестендіретін желілік код.

Телекоммуникацияда 8b/10b – 8 биттік сөздерді 10 биттік символдарға шамалап сәйкестендіретін желілік код, ол DC тепе-теңдігі мен шектелген айырмашылықты қамтамасыз ету үшін, сонымен қатар сағатты қалпына келтіруге жеткілікті күй өзгерістерін жасауға мүмкіндік береді. Бұл дегеніміз, кемінде 20 биттен тұратын тізбекте бірліктер мен нөлдердің санының айырмасы екіден аспайды және қатарынан бестен артық бірлік немесе нөл болмайды. Бұл сигналды тарату үшін қажетті арнаның ең төменгі өткізу қабілетіне қойылатын талапты азайтуға көмектеседі. 8b/10b коды әртүрлі өнімділік параметрлеріне назар аудара отырып, әртүрлі тәсілдермен жүзеге асырылуы мүмкін. Бір нұсқасын К. Одака DAT цифрлық аудио жазғышы үшін жасаған. Кис Шуамер Имминк DCC аудио жазғышы үшін 8b/10b кодын жасады. IBM-нің жүзеге асырылуын 1983 жылы Аль Видмер және Питер Франсзек сипаттаған.

IBM-ді іске асыру

Схема атауынан көрініп тұрғандай, сегіз бит дерек символ немесе таңба деп аталатын 10 биттік нысан ретінде беріледі. Төменгі бес бит дерек 6 биттік топқа (5b/6b бөлігі) кодталады, ал жоғарғы үш бит 4 биттік топқа (3b/4b бөлігі) кодталады. Бұл кодтар топтары сым арқылы берілетін 10 биттік символды құру үшін біріктіріледі. Дерек символдары көбінесе D. x. y деп аталады, мұнда x 0–31 аралығында және y 0–7 аралығында болады. 8b/10b кодтамасын пайдаланатын стандарттар сондай-ақ дерек символының орнына жіберілетін 12 арнайы символдарды (немесе басқару таңбаларын) анықтайды. Олар көбінесе кадрдың басталуын, кадрдың аяқталуын, байланыс бос уақытын, өткізіп жіберу және ұқсас байланыс деңгейін көрсету үшін қолданылады. Кем дегенде олардың біреуі (яғни, "үтір" символы) 10 биттік символдардың туралануын анықтау үшін қолданылуы керек. Олар K. x. y деп аталады және D. x. y символдарынан өзгеше кодтамаға ие. 8b/10b кодтамасы 8 биттік сөздерді кодтау үшін 10 биттік символдарды пайдаланатындықтан, мүмкін болатын 1024 (10 бит, 210) символдардың кейбіреулерін 5 қатарынан келетін бірдей биттердің ұзындығын шектеу үшін және нөлдер мен бірліктер арасындағы айырмашылықтың екіден аспауын қамтамасыз ету үшін жоюға болады. 256 мүмкін 8 биттік сөздің кейбіреуін екі түрлі жолмен кодтауға болады. Осы баламалы кодтамаларды пайдалану арқылы схема сериялық деректер ағынында ұзақ мерзімді тұрақты ток тепе-теңдігіне қол жеткізе алады. Бұл дерек ағынының жоғары өткізгіштік сипаттамасы бар арна арқылы берілуіне мүмкіндік береді, мысалы Ethernet трансформаторымен байланыстырылған қорғалмаған жұп немесе автоматты күшейтуді басқаруды қолданатын оптикалық қабылдағыштар.

Кодтау кестелері мен байт кодтау

Келесі кестелерде әрбір кіріс байты үшін (ағылш. ) А ең аз маңызды битті (LSB) және H ең маңызды битті (MSB) білдіреді. Шығыс екі қосымша битті, i және j алады. Биттер LSB-ден MSB-ге жіберіледі: a, b, c, d, e, i, f, g, h және j; яғни 5b/6b коды 3b/4b кодымен бірге келеді. Бұл үтір белгілеріндегі ерекше бит тізбегінің бірегейлігін қамтамасыз етеді. Биттер ағынындағы қалдық әсер, берілген нөлдер мен бірліктер саны арқылы сақталатын жұмыс істеп тұрған айырмашылық (RD) ретінде ұсталады, ал slew әсері келесі символдарға арналған кодтауды таңдау арқылы тепе-теңдетіледі. 5b/6b коды жұп айырмашылық коды, сондай-ақ 3b/4b коды да солай. Әрбір 6 немесе 4 биттік код сөзінде нөлдер мен бірліктер саны тең болады (айырмашылық нөлге тең) немесе екі түрде келеді: біреуі бірліктерден екі нөлге артық (төрт нөл және екі бірлік немесе үш нөл және бір бірлік), ал екіншісі екіге кем. Егер 6 немесе 4 биттік код нөлдік емес айырмашылыққа ие болса (бірліктер саны мен нөлдер санының айырмасы; яғни -2 немесе +2), оң немесе теріс айырмашылық кодтамасын таңдау жұмыс істеп тұрған айырмашылықты өзгертуі керек. Басқаша айтқанда, нөлдік емес айырмашылық кодтары кезекпен алмасады.

5b/6b коды (abcdei)

Input RD = −1 RD = +1 Input RD = −1 RD = +1 Code EDCBA (5 биттің биттері, MSB сол жақта және LSB оң жақта) a b c d e i Code EDCBA a b c d e i D.00 00000 100111 011000 D.16 10000 011011 100100 D.01 00001 011101 100010 D.17 10001 100011 D.02 00010 101101 010010 D.18 10010 010011 D.03 00011 110001 D.19 10011 110010 D.04 00100 110101 D.20 10100 001011 D.05 00101 101001 D.21 10101 101010 D.06 00110 011001 D.22 10110 011010 D.07 00111 111000 000111 D.23 10111 111010 000101 сонымен қатар K.23.7 символы үшін де қолданылады D.08 01000 111001 000110 D.24 11000 110011 001100 D.09 01001 100101 D.25 11001 100110 D.10 01010 010101 D.26 11010 010110 D.11 01011 110100 D.27 11011 110110 001001 сонымен қатар K.27.7 символы үшін де қолданылады D.12 01100 001101 D.28 11100 001110 D.13 01101 101100 D.29 11101 101110 010001 сонымен қатар K.29.7 символы үшін де қолданылады D.14 01110 011100 D.30 11110 011110 100001 сонымен қатар K.30.7 символы үшін де қолданылады D.15 01111 010111 101000 D.31 11111 101011 010100 қолданылмайды 111100 000011 K.28 11100 001111 110000 тек қана K.28. x символдары үшін қолданылады

† сонымен қатар K. x.7 кодының 5b/6b үшін де қолданылады

‡ тек қана K.28 5b/6b коды үшін қолданылады. y

D31.1 кодтау үлгісі

+ D31.1 екі дисперсиялық айырмашылық жағдайлары үшін Кіріс RD = −1 RD = +1 Код DEC HEX HGF EDCBA abcdei fghj abcdei fghj D31.1 63 3F 001 11111 101011 1001 010100 1001

Баламалар

8b/10b – кодтау схемасы, нақты код емес екенін ескеріңіз. Көптеген қолданбалар бірдей кодты қолданса да, үйлесімсіздіктер кездеседі; мысалы, өтпелі минималды дифференциалдық сигнализация (Transition Minimized Differential Signaling), ол да 8 битті 10 битке дейін кеңейтеді, бірақ мұны жасау үшін мүлдем басқа әдіс қолданады. 10 Гбит Ethernet-тің 10GBASE R физикалық ортаға тәуелді (PMD) интерфейстері үшін енгізілген 64b/66b кодтау, 8b/10b кодтауға қарағанда аз үстемелі, әр 64 бит дерек үшін 2 бит үстеме (8 бит емес) қосады. Бұл схема 8b/10b кодтаудан түбегейлі өзгеше және DC теңгерімін, қысқа серия ұзындығын және өтпелдік тығыздықты тікелей кепілдемейді (бұл мүмкіндіктер статистикалық түрде шашырату арқылы қамтамасыз етіледі). 64b/66b кодтау PCI Express 3.0 және USB 3.1 үшін 128b/130b және 128b/132b кодтау нұсқаларына дейін кеңейтілді, бұл әр стандарттың бұрынғы нұсқаларындағы 8b/10b кодтауын алмастырды.