Wypychanie bitów - Bit stuffing

W transmisji danych i telekomunikacji , bit nadzienia (znanego-rzadko, jak również pozytywne uzasadnienia ) jest wprowadzenie nie informacyjnych bitów język danych . Bity nadziewane nie powinny być mylone z bitami napowietrznymi .

Wypychanie bitów jest używane do różnych celów, takich jak doprowadzanie strumieni bitów , które niekoniecznie mają takie same lub racjonalnie powiązane szybkości transmisji , do wspólnej szybkości, lub do wypełniania buforów lub ramek . Lokalizacja bitów wypełniających jest przekazywana do odbierającego końca łącza danych , gdzie te dodatkowe bity są usuwane, aby przywrócić strumienie bitów do ich pierwotnych szybkości transmisji lub postaci. Wypychanie bitów może być użyte do synchronizacji kilku kanałów przed multipleksowaniem lub do dopasowania szybkości dwóch pojedynczych kanałów do siebie.

Innym zastosowaniem upychania bitów jest kodowanie o ograniczonej długości serii : ograniczenie liczby kolejnych bitów o tej samej wartości w przesyłanych danych. Bit o przeciwnej wartości jest wstawiany po maksymalnej dozwolonej liczbie kolejnych bitów. Ponieważ jest to ogólna zasada, odbiornik nie potrzebuje dodatkowych informacji o położeniu końcówek nadziewających, aby wykonać usuwanie farszu. Odbywa się to w celu stworzenia dodatkowych przejść sygnału w celu zapewnienia niezawodnego odbioru lub uniknięcia specjalnych zarezerwowanych słów kodowych, takich jak sekwencje synchronizacji ramek , gdy dane je zawierają.

Image
Upychanie bitów w CAN po pięciu równych bitach.

Upychanie bitów nie gwarantuje, że ładunek jest nienaruszony ( tj. Nie jest uszkodzony przez błędy transmisji); jest to jedynie sposób na upewnienie się, że transmisja zaczyna się i kończy we właściwych miejscach. Techniki wykrywania i korekcji błędów służą do sprawdzania ramki pod kątem uszkodzeń po jej dostarczeniu i, jeśli to konieczne, ramka zostanie ponownie wysłana.

Wstawianie bez bitów

NRZI schemat kodowania przesyła bit 0 jako przejście sygnału, i 1 bit oznacza brak zmiany. W tym przypadku wypychanie bitów najłatwiej jest opisać jako wstawienie bitu 0 po długim przebiegu 1 bitu.

Został spopularyzowany przez IBM SDLC (później przemianowany na HDLC ) i jest również używany w niskiej i pełnej prędkości USB .

Po długiej sekwencji 1 bitów nie byłoby żadnych przejść w przesyłanych danych, a zegary nadajnika i odbiornika mogłyby utracić synchronizację. Wstawiając 0 po pięciu (SDLC) lub sześciu (USB) kolejnych 1 bitach, nadajnik gwarantuje maksymalnie sześć (SDLC) lub siedem (USB) czasów między przejściami. Odbiornik może zsynchronizować swój zegar z przejściami, aby zapewnić prawidłowe odtwarzanie danych.

W SDLC przesyłana sekwencja bitów „01111110” zawierająca sześć sąsiednich bitów 1 jest bajtem flagowym . Wypychanie bitów zapewnia, że ​​ten wzorzec nigdy nie wystąpi w normalnych danych, więc można go użyć jako znacznika początku i końca ramki bez możliwości pomylenia go z normalnymi danymi.

Główną wadą upychania bitów jest to, że współczynnik kodowania jest nieprzewidywalny; zależy to od przesyłanych danych.

Źródło: z Federal Standard 1037C wspierającego MIL-STD-188

Uwagi