Esto parece una pregunta que proviene de alguien que intenta emular un receptor UART en un software o un FPGA. Para RS-232, utilizan el término marca y espacio . Pero estos generalmente corresponden, una vez digitalizados, a '1' y '0', respectivamente.
El receptor UART a menudo divide cada tiempo de bit (debe ser conocido, a priori) en al menos 4, pero a menudo 16 o más subperíodos. Comienza (al encender / reiniciar) en un estado en el que se espera que la línea del receptor serie esté en un estado de marca . Si la línea NO está en una marca en ese momento, sabe que está en medio de un cuadro de transmisión y debe esperar hasta que pueda sincronizarse. Si la línea está en un estado de marca , entonces puede o puede que no esté en medio de algo y tendrá que esperar y ver. Este es un problema con RS-232, si solo se conecta a otro dispositivo mientras ocurren las comunicaciones en serie o si es parte de un toque para monitorear las comunicaciones en serie asíncronas entre otros dos jugadores y se acaban de reiniciar. Para estar absolutamente seguro, cuando salga del reinicio de todos modos, el UART debería observar al menos N tiempos de bits (donde N es el número de bits por palabra, y con frecuencia 7 u 8, y suponiendo que no hay opción de paridad aquí) valor de < em> marque seguido de un bit de espacio para volver a sincronizar (o bien, N + 1 bits de espacio ). Muchos no llevan todo ese estado alrededor, para que puedan sincronizarse incorrectamente, si se inician en medio de una secuencia. A menudo obtendrá errores de encuadre y bytes de datos ocasionales, hasta que se vuelva a sincronizar accidentalmente de nuevo correctamente. Eso también suele ser un precio aceptable. Normalmente, los cables están conectados y los dispositivos se encienden en un orden de operación particular, por lo que rara vez hay problemas.
Sin embargo, una vez sincronizado, el UART sabe qué esperar. Siempre comienza con la línea del receptor que va desde una marca a un espacio , el bit de inicio necesario que dura todo el tiempo de bit, seguido por los bits de datos y luego seguido por como mínimo, un bit vale el valor de mark (o más) como bit de parada. Si permanece sincronizado, verá que el patrón se repite una y otra vez.
Parte de la razón para dividir los tiempos de bit, a algo como 4X o 16X, es que los relojes usados por el transmisor y el receptor no son necesariamente perfectamente precisos y, de lo contrario, son simplemente asíncronos entre sí. Por lo tanto, parte de la sincronización que se lleva a cabo en el receptor se encuentra en la alineación de sus periodos en dados a la sincronización del transmisor. Cuanto más preciso sea el proceso, mejor alineado estará el receptor.