Non ho capito bene, perché abbiamo bisogno di un bit di avvio / arresto? Non è che un byte è composto da 8 bit, quindi il ricevitore deve solo contare quanti bit ha ricevuto finora, se il numero è 8, ha un byte e ripete il processo. Allora perché abbiamo bisogno del bit start / stop?
Il ricevitore non può contare i bit che sta ricevendo, perché il ricevitore non sa se sta ricevendo bit!
Immaginiamo che il mittente e il destinatario stiano comunicando usando il suono e immaginiamo che uno 0 sia rappresentato da un secondo di silenzio e un 1 sia rappresentato da un secondo di suono. Nel tuo libro, lo "stato di inattività", ovvero ciò che il mittente invia quando non ha dati effettivi da inviare, è 1, che significa suono.
Ora supponi di essere il destinatario e il mittente non utilizza un bit di inizio. Si sentono otto secondi di suono continuo. Hai appena sentito il byte "11111111" o il mittente è inattivo? Non hai modo di saperlo, perché ti sembra tutto uguale.
In alternativa, supponi di sentire un secondo di silenzio, poi sei secondi di suono, quindi un secondo di silenzio. Hai appena sentito il byte "01111110"? O forse era il byte "11110111" seguito dal byte "11101111"? Ancora una volta, non hai modo di saperlo.
È qui che entra in gioco il bit di inizio. Ogni volta che il mittente vuole inviare un byte, prima invia uno 0 (un secondo di silenzio), poi invia il byte di dati.
Ora il tuo lavoro di ricevitore è molto più semplice! Se senti nove secondi di suono, sai che il mittente è semplicemente inattivo. Se, invece, senti un secondo di silenzio seguito da otto secondi di suono, sai che il mittente ha appena inviato il byte "11111111".
Ovviamente, la maggior parte dei sistemi di comunicazione delle macchine non utilizza il suono; invece usano l'elettricità. Ma i segnali elettrici funzionano proprio come il suono. Il destinatario riceverà sempre qualcosa , indipendentemente dal fatto che lo vogliamo o meno. Quindi dobbiamo dare al ricevitore un modo per sapere se sta ricevendo dati reali o solo rumore inattivo.
Per rispondere a questa domanda specifica dal tuo commento:
solo una domanda, se non abbiamo il valore "idle", quindi quando non ci sono dati da inviare, il ricevitore non riceverà nulla, quindi può contare ogni 8 bit come un byte senza bisogno di stop / start bit?
È fisicamente impossibile non avere un valore inattivo. Se hai un cavo elettrico, allora è possibile inviare una tensione positiva, o una tensione negativa, o una tensione di 0, ma è fisicamente impossibile non inviare alcuna tensione. Ciò significa che il ricevitore riceverà sempre un po 'di tensione, indipendentemente da ciò che facciamo. Quindi dobbiamo dare al ricevitore un modo per sapere se la tensione che sta ricevendo è significativa o no.