ASCII<\/a><\/strong> de 7 bits.<\/p>\nDespu\u00e9s de acordar la longitud para un caracter, ambos dispositivos serie tambi\u00e9n tienen que acordar el formato de sus datos. \u00bfSe env\u00edan los datos desde el bit m\u00e1s significativo (most significative bit = msb<\/strong>) al menos significativo, o viceversa? Si no se indica lo contrario, generalmente se puede asumir que los datos se transfieren enviando primero el bit menos significativo (least significative bit = lsb<\/strong>).<\/p>\nBits de sincronizaci\u00f3n<\/strong><\/p>\nLos bits de sincronizaci\u00f3n son dos o tres bits especiales transferidos con cada porci\u00f3n de datos. Son el bit de inicio<\/strong> y el(los) bit(s) de parada<\/strong>. Tal como indica su nombre, estos bits marcan el principio y el final de un paquete. Siempre hay un \u00fanico bit de inicio, pero la cantidad de bits de parada se puede configurar en uno o dos (aunque normalmente se deja en uno).<\/p>\nEl bit de inicio siempre se indica mediante una l\u00ednea de datos inactiva que pasa de 1 a 0 (ALTO<\/strong> a BAJO<\/strong>). Los bits de parada volver\u00e1n al estado inactivo manteniendo la l\u00ednea en 1 (ALTO<\/strong>).<\/p>\nBits de paridad<\/strong><\/p>\nLa paridad es una forma de comprobaci\u00f3n de errores muy simple y de bajo nivel. Se presenta en dos variantes: impar o par. Para generar el bit de paridad, se suman todos los bits del byte de datos (5 a 9), y el resultado de la suma define si el bit es 1 o 0. Por ejemplo, suponiendo que la paridad se establece en par y se agrega a un byte de datos como 0b01011101<\/strong>, que tiene una cantidad impar de 1s (5), el bit de paridad quedar\u00eda en 1. Por el contrario, si el modo de paridad se configur\u00f3 en impar, el bit de paridad ser\u00eda 0.<\/p>\nLa paridad es opcional, y no se usa mucho. Puede ser \u00fatil para transmitir a trav\u00e9s de medios ruidosos, pero tambi\u00e9n ralentizar\u00e1 un poco la transferencia de datos y requiere que tanto el transmisor como el receptor implementen el manejo de errores (generalmente, si se detecta error, los datos recibidos con falla deben reenviarse).<\/p>\n
Un ejemplo<\/strong><\/p>\n9600 8N1 – 9600<\/strong> baudios, 8<\/strong> bits de datos, sin<\/strong> paridad y 1<\/strong> bit de parada: es uno de los protocolos serie m\u00e1s utilizados. Entonces, \u00bfc\u00f3mo se ver\u00eda un paquete o dos de datos de 9600 8N1? <\/p>\nUn dispositivo que transmita los caracteres ASCII ‘O’ y ‘K’ tendr\u00eda que crear dos paquetes de datos. El valor ASCII de O<\/strong> (en may\u00fasculas) es 79<\/strong>, que se divide en un valor binario de 8 bits de 01001111<\/strong>, mientras que el valor binario de K<\/strong> es 01001011<\/strong>. Todo lo que queda es agregar bits de sincronizaci\u00f3n.<\/p>\nNo se establece espec\u00edficamente, pero la norma m\u00e1s aceptada es que los datos se transfieren enviando primero el bit menos significativo. Observe c\u00f3mo se env\u00eda cada uno de los dos bytes a medida que se lee de derecha (bit 0<\/strong>) a izquierda (bit 7<\/strong>).
\n<\/a>
\nDado que estamos transfiriendo a 9600 bps, el tiempo empleado en mantener cada uno de esos bits alto o bajo es 1\/9600 (bps) o 104 \u00b5s por bit.<\/p>\nPor cada byte de datos transmitidos, en realidad como m\u00ednimo se env\u00edan 10 bits: un bit de inicio, 8 bits de datos y un bit de parada. Entonces, a 9600 bps, en realidad estamos enviando 9600 bits por segundo o 960 (9600\/10) bytes por segundo.<\/p>\n
Ahora que sabemos c\u00f3mo construir paquetes serie, podemos pasar a la secci\u00f3n de hardware. All\u00ed veremos c\u00f3mo esos 1s y 0s, y la velocidad de transmisi\u00f3n, se implementan a un nivel de se\u00f1al.<\/p>\n
Cableado y Hardware<\/strong><\/p>\nUn bus serie consta de solo dos cables, uno para enviar datos y otro para recibir. Entonces, los dispositivos serie deben tener dos pines serie: el receptor: RX<\/strong> y el transmisor: TX<\/strong>.
\n<\/a>
\nCableado en serie<\/strong><\/p>\nEs importante tener en cuenta que esas etiquetas RX<\/strong> y TX<\/strong> son con respecto al dispositivo en s\u00ed. Entonces, el RX<\/strong> de un dispositivo debe ir al TX<\/strong> del otro y viceversa. Es extra\u00f1o si uno est\u00e1 acostumbrado a conectar Vcc<\/strong> con Vcc<\/strong>, GND<\/strong> con GND<\/strong>, MOSI<\/strong> con MOSI<\/strong>, etc., pero \u2014pens\u00e1ndolo\u2014 tiene sentido. El transmisor debe estar comunic\u00e1ndose con un receptor, no con otro transmisor.<\/p>\nUna interfaz en serie en la que ambos dispositivos pueden enviar y recibir datos es d\u00faplex completo<\/strong> (full-duplex<\/strong>) o semid\u00faplex<\/strong>. Full-duplex significa que ambos dispositivos pueden enviar y recibir simult\u00e1neamente. La comunicaci\u00f3n semid\u00faplex<\/strong> significa que los dispositivos serie deben turnarse para enviar y recibir.<\/p>\nAlgunas conexiones serie pueden implementarse con una sola l\u00ednea entre un dispositivo de transmisi\u00f3n y un dispositivo de recepci\u00f3n. Por ejemplo, los LCD que tienen conexi\u00f3n serie son solo receptores, y realmente no tienen ning\u00fan tipo de informaci\u00f3n para devolver al dispositivo de control. Esto es lo que se conoce como comunicaci\u00f3n serie simplex<\/strong>. Todo lo que necesita es un solo cable desde la transmisi\u00f3n del dispositivo maestro a la l\u00ednea RX<\/strong> del que recibe.
\n