Nie rozumiem, dlaczego potrzebujemy bitu start / stop? Czy nie jest tak, że bajt składa się z 8 bitów, więc odbiornik musi tylko policzyć, ile bitów otrzymał do tej pory, jeśli liczba wynosi 8, to ma jeden bajt i powtarza proces. Dlaczego więc potrzebujemy bitu start / stop?
Odbiornik nie może zliczyć otrzymanych bitów, ponieważ nie wie, czy odbiera bity!
Wyobraźmy sobie, że nadawca i odbiorca komunikują się za pomocą dźwięku i wyobraźmy sobie, że 0 jest reprezentowane przez jedną sekundę ciszy, a 1 jest reprezentowane przez jedną sekundę dźwięku. W Twojej książce „stan bezczynności” - co wysyła nadawca, gdy nie ma żadnych rzeczywistych danych do wysłania - to 1, co oznacza dźwięk.
Załóżmy teraz, że jesteś odbiorcą, a nadawca nie używa bitu startowego. Słychać osiem sekund ciągłego dźwięku. Czy właśnie usłyszałeś bajt „11111111”, czy nadawca jest po prostu na biegu jałowym? Nie możesz się tego dowiedzieć, ponieważ wszystko brzmi dla ciebie tak samo.
Alternatywnie, przypuśćmy, że słyszysz jedną sekundę ciszy, potem sześć sekund dźwięku, a potem jedną sekundę ciszy. Czy właśnie usłyszałeś bajt „01111110”? A może był to bajt „11110111”, po którym następuje bajt „11101111”? Ponownie, nie możesz tego wiedzieć.
Tutaj pojawia się bit startu. Kiedykolwiek nadawca chce wysłać bajt, najpierw wysyła 0 (jedną sekundę ciszy), następnie wysyła bajt danych.
Teraz Twoja praca jako odbiorcy jest o wiele łatwiejsza! Jeśli usłyszysz dziewięć sekund dźwięku, wiesz, że nadawca jest po prostu bezczynny. Jeśli z drugiej strony usłyszysz jedną sekundę ciszy, po której następuje osiem sekund dźwięku, wiesz, że nadawca właśnie wysłał bajt „11111111”.
Oczywiście większość systemów komunikacji maszyn nie używa dźwięku; zamiast tego używają energii elektrycznej. Ale sygnały elektryczne działają tak samo jak dźwięk. Odbiorca zawsze otrzyma coś , niezależnie od tego, czy tego chcemy, czy nie. Musimy więc dać odbiornikowi jakiś sposób na sprawdzenie, czy odbiera rzeczywiste dane, czy tylko szum bezczynności.
Aby odpowiedzieć na to konkretne pytanie w swoim komentarzu:
tylko jedno pytanie, jeśli nie mamy wartości „idle”, więc gdy nie ma danych do wysłania, odbiornik niczego nie otrzyma, więc może liczyć każde 8 bitów jako bajt bez konieczności zatrzymywania / uruchamiania trochę?
Fizycznie niemożliwe jest nie mieć wartości bezczynności. Jeśli masz kabel elektryczny, możesz wysłać napięcie dodatnie, ujemne lub 0, ale fizycznie niemożliwe jest nie wysyłanie żadnego napięcia. Oznacza to, że odbiornik zawsze otrzyma jakieś napięcie, bez względu na to, co robimy. Musimy więc dać odbiornikowi jakiś sposób, aby wiedział, czy napięcie, które otrzymuje, ma znaczenie, czy nie.