Stai confondendo i livelli di tensione (RS-232 presumiamo) e il protocollo seriale (diciamo solo uart come proveniva da un tempo prima che tutti fossero ossessionati dal dare un nome alle cose).
Usando il tuo esempio non puoi distinguere 0110 da 001100 per esempio. Con il protocollo uart devi campionare idealmente il centro della cella di bit, in modo che il ricevitore sappia dove si trova il centro, essendo su sorgenti di tempo diverse e non esattamente la stessa, il primo fronte da inattivo ti dà un riferimento per poterlo per raggiungere la metà dei successivi N bit quanto è grande N dipende dalla precisione di ciascun lato, 8 o giù di lì bit di dati puoi essere piuttosto sciatto e, se vuoi, puoi risincronizzarlo su tutti i bordi che trovi (nel tuo esempio come riceveresti 00000000? o 11111111?)
Il bit di inizio ci dà un vantaggio da distinguere da inattivo, per indicare quando inizia il messaggio e un riferimento per campionare i bit. Il bit di stop assicura che torniamo inattivi almeno per una cella di bit o due. Quando sei saturo di dati, senza spazi vuoti, nessun inattivo tranne il bit di stop, allora hai un altro problema che il protocollo uart non risolve necessariamente (beh, la parità aiuta) se entri nel mezzo (qualcuno collega poi cosa mentre i dati si muovono , o qualsiasi altro motivo) i bit di inizio e fine aiutano a inquadrare i dati senza parità potresti ancora essere in grado di capire dove ti trovi, con la parità hai una possibilità ancora migliore ma non perfetta.
Ora ci sono altri protocolli. Molti altri protocolli. vai a cercare irig-106, invece di un bit di inizio hai un modello di sincronizzazione che può essere seguito da centinaia di bit prima di un altro modello, senza periodi morti. Il documento irig ha un bel grafico di varie codifiche dove NRZ-L è quello a cui siamo abituati con un semplice uart (non ritorno a livello zero) un interessante è bi-phase-l Dove c'è un cambio di stato a metà cella di bit quindi il tuo 0110 verrebbe trasmesso a 2x la frequenza dei dati e sarebbe 01101001, nel peggiore dei casi non puoi mai avere più di due celle di mezzo bit di fila allo stesso livello, molti bordi con cui sincronizzare bit.
Un altro interessante è mil-std-1553, dove usano bi-phase-L (che è una codifica popolare con molti nomi diversi solo bifase o manchester, ecc.) ma non sono dati continui, è un'esplosione di una a molte parole. usano un errore bifase-l intenzionale di tre celle a mezzo bit e tre celle a mezzo bit come modello di sincronizzazione, quindi entrano nel messaggio codificato in bifase-l.
Non c'è motivo per cui non sia possibile utilizzare livelli di tensione RS-232, RS-422, ecc. con un protocollo diverso da quello uart. Ma hai ancora bisogno di bordi ogni tanto nei dati per sincronizzare gli orologi (se porti con te l'orologio allora questa è un'altra storia) e hai bisogno di un modo per sapere dove si trovano i gruppi di bit che formano byte o parole quindi devi avere uno schema di sincronizzazione o un bit di avvio o altro. o fare qualcosa come spi o i2c per segnare l'inizio. la classica ethernet utilizzava una lunga onda quadra con alcuni bit per indicare la fine di quella e l'inizio del pacchetto. MDIO ha qualcosa di simile.
Alla fine della giornata non si può avere un protocollo seriale affidabile a segnale singolo senza un modo per sapere dove si trovano i confini di parola / messaggio nel bitstream, allo stesso modo non si può farlo senza sapere dove / quando campionare per ogni bit.Anche se un bitstream continuo e forse pensi di sapere quando era il tempo zero e puoi semplicemente contare fino a 8 e contrassegnare un altro byte, potresti essere fortunato ma devi comunque sincronizzarti con l'orologio di invio poiché il tuo orologio è basato su un diversoriferimento e deriverà rispetto all'orologio dei mittenti.Quindi puoi provare a farcela fintanto che guardi periodicamente i bordi che trovi e assicurati che ci sia un bordo ogni N bit in base alla matematica relativa alla precisione degli orologi.