Académique Documents
Professionnel Documents
Culture Documents
ABSTRACT
Serial communication is a type of communication used in the digital world to transmit information
between two and more devices, this information travels through a single channel. The concept of
serial communication is easy to understand, the serial port, whether <Tx> Transmitter or <Rx>
receiver sends or receives bytes of information at a certain rate, one bit at a time. Although this is
slower than parallel communication, which allows the transmission of one complete byte at a time,
depending on the resolution, this communication method is simpler and can reach greater
distances. For example, in the standard in parallel communication it determines that the length of
the cable for the equipment cannot be more than 20 meters, with no more than 2 meters between the
connections of the devices; on the other hand, using serial communication the cable length can
reach 1200 meters.
i. INTRODUCCION Tierra (Ground)
Transmitir (Tx)
La comunicación serial como su nombre lo Recibir (Rx)
indica es un tipo de comunicación usada en
el mundo digital para transmitir a. Comunicación serie sincrónica
información entre dispositivos, esta Este tipo de información es aquella en la
información viaja por un solo canal. El que los usuarios, a través de una red,
concepto de comunicación serial es fácil de coinciden en el tiempo y se comunican
comprender, el puerto serial, sea entre sí mediante texto, audio o vídeo.
Transmisor <Tx> o receptor <Rx> envía o Por ejemplo, en una vídeo llamada, los
recibe bytes de información a una interlocutores implicados conversan al
velocidad determinada, un bit a la vez. Aun mismo tiempo, siendo necesario que,
y cuando esto es más lento que la tanto emisor, como receptor se
comunicación en paralelo, que permite la encuentren conectados al mismo tiempo.
transmisión de un byte completo por vez,
dependiendo de la resolución, este método b. Comunicación asincrónica.
de comunicación es más sencillo y puede En la comunicación asincrónica los
alcanzar mayores distancias. Por ejemplo, participantes utilizan el sistema de
en la norma en la comunicación en paralelo comunicación en tiempos diferentes. Un
determina que el largo del cable para el ejemplo sería el correo electrónico, pues
equipo no puede ser mayor a 20 metros, el receptor puede leer el mensaje en
con no más de 2 metros entre las cualquier momento después de que el
conexiones de los dispositivos; por el otro receptor lo envíe, sin que se produzca
lado, utilizando comunicación serial el esa simultaneidad en la comunicación.
largo del cable puede llegar a los 1200
metros [1]. Debido a que la transmisión serial es
asincrónica, es posible enviar datos por una
línea mientras se reciben datos por otra. Las
ii. MARCO TEORICO características más importantes de la
comunicación serial son la velocidad de
La comunicación serial contiene transmisión, los bits de datos, los bits de
información en una cadena única de bits, parada, y la paridad. Para que dos puertos
esta cadena se encuentra contenida de se puedan comunicar, es necesario que las
manera binaria dependiente de un tiempo, características sean iguales.
es decir los bits se representan por códigos
que se transmiten por un periodo de tiempo Para comprender el funcionamiento de un
determinado. El periodo de tiempo usado puerto serial, es necesario entender primero
para transmitir cada código se conoce como las comunicaciones paralelas. Un puerto
periodo baud. En Arduino el baudrate se paralelo estándar utilizar ocho conectores,
usa en 9600 baudios, es decir, 9600 bits por si hablamos de resolución, para transmitir
segundos. los bits de datos de forma simultánea,
formando un solo carácter. La siguiente
Generalmente, la comunicación serial se ilustración muestra la transmisión en
utiliza para transmitir datos en formato paralelo de la letra a.
ASCII. Para realizar la comunicación se
utilizan 3 líneas de transmisión:
Ilustración 1. Puerto de comunicación paralela Ilustración 3. Conexión Arduino - Arduino
Los puertos serie requieren un solo Para esta conexión se usaron dos tipos de
conector, o cable, para enviar el mismo arduinos, el Mega 2560 y el DUE,
carácter de datos al dispositivo. Los datos permitiendo así la conexión mediante
cambian de formato paralelo (enviado por comunicación serial, usando el puerto Tx2
el sistema), a formato secuencial o serial, del MEGA llegando al Rx3 del DUE.
en el que los bits se organizan uno tras otro
Ilustración 4. Fotografia conexion entre arduinos.
en una serie. Los datos se transmiten
entonces al dispositivo, enviando el bit
menos significativo, LSB (o el bit cero) en
primer lugar. Una vez que el dispositivo
remoto recibe los datos, éstos se vuelven a
convertir al formato paralelo. La ilustración
siguiente muestra la transmisión serie de la
letra a.
iii. ANALISIS
Al visualizar la salida Tx2 en el
a. Arduino – Arduino osciloscopio (Ver ilustración 6), se puede
apreciar la trama en formato de 8N1, esta
es una abreviatura habitual de la
configuración del puerto serie en modo
asíncrono donde hay (8) bits de datos, Python para visualizar la información que
ningún (N) bit de paridad, y un (1) bit de salió del arduino. Minicom, es una librería
parada. usada para esta tarea. La siguiente imagen
muestra el código usado.
Ilustración 6. Visualización byte x = 1.
d. Identificador de Trama
i. Encoder – Decoder
v. BIBLIOGRAFIA
vi. ANEXO 1
vii. ANEXO 2 - Codigo Chat Arduino.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#define PIN_RX 2
#define PIN_TX 3
void setup() {
Serial.begin(9600);
//Por defecto el ultimo puerto inicializado esta escuchando, como solo usamos uno, no es
ncesario usar la funcion listen() de software serial
mySerial.begin (4800); //probar a poner velocidades diferentes en cada punto.
// reserve 200 bytes for the inputString:
outputString.reserve(200); //Maximo de 200 caracteres que podemos trabajar con este
programa
pinMode(PIN_RX,OUTPUT);
pinMode(PIN_TX,OUTPUT);
}
void loop()
{
int tiempoLoop = millis() - previousmillis;
previousmillis = millis();
if (tiempoLoop > 250) { //como los loops pueden ser largos, imprimo por pantalla si es
mayor de 250 ms.
Serial.print("Tiempo de Loop: ");
Serial.println(tiempoLoop);
}
if (outputString == "repite") {
String repiteString = "";
Serial.println("Cuantas veces repito?");
while (Serial.available() == 0) {
} // No hago nada hasta que no respondo a la pregunta
while (Serial.available()) { //Espero una segunda cadena
char outChar = (char)Serial.read();
delay(5);
repiteString += outChar;
}
Serial.println(repiteString);
int repito = repiteString.toInt();
if (repito <= 0) {
Serial.println("No es un valor correcto, repito 10 veces..");
repito = 10;
}