Está en la página 1de 16

INSTITUTO POLITÉCNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERÍA Y TECNOLOGÍAS AVANZADAS

PROGRAMACIÓN DE SISTEMAS EN TIEMPO REAL

Por el Prof. M. en C. DAVID ARTURO GUTIÉRREZ BEGOVICH

INTEGRANTES DEL EQUIPO:


 ALVAREZ GALVÁN LUIS ALBERTO Práctica No. 07
 PIZANO ALANIS JOSÉ DE JESÚS
 ZERÓN HERNÁNDEZ ALEJANDRO RAÚL Manejo del módulo USART:
GRUPO: 4BV1
Comunicación Asíncrona (Tx & Rx) entre

Fecha Realización: Junio 10, 2010 Fecha Entrega (reporte): Junio 10, 2010
PIC16F877A y MATLAB
Práctica No. 07
Manejo del módulo USART:
Comunicación Asíncrona (Tx & Rx) entre PIC16F877A y MATLAB

Objetivos

Durante el desarrollo y al término de ésta práctica, el estudiante de ingeniería podrá:

 Entender el concepto de “USART”, y sus aplicaciones en la electrónica digital

 Desarrollar códigos de programación en ensamblador para poder realizar una comunicación serial del PIC con la computadora.

 Desarrollar códigos de programación en ensamblador para poder utilizar un puerto serial.

 Diseñar un circuito electrónico para la interacción del PIC16F877A con una computadora.

 Desarrollar e implementar un código de programación en ensamblador (utilizando MPLAB®IDE) para que el microcontrolador envié un numero a
Matlab y este lo regrese sumando en 5.

 Implementar un sistema en tiempo real con tiempos de ejecución precisos para cada transmisión y recepción de datos.
Introducción
En este reporte se expondrá cómo se puede transmitir datos del PIC16F877A a una computadora y poder recibirlos de ella a través de una conexión
serial gracias a un cable USB-Serial.

El PIC16F877A mandara un numero escogido por el programado al programa Matlab de la computadora el cual al recibir el numero lo mostrara en
pantalla, le sumara 5 y lo mandara de regreso al PIC.

El numero escogido que se enviara y el que se recibirá podrá verse también en una barra de Let´s que estará en el circuito donde se encuentra el PIC.

Marco Teórico
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE)
con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X.

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la
creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB
dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de
interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con
los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como
la de programar directamente procesadores digitales de señal o crear código VHDL.

La comunicación serial consiste en el envío de un bit de información de manera secuencial, esto es, un bit a la vez y a un ritmo acordado entre el
emisor y el receptor.
La comunicación serial en computadores ha seguido los estándares definidos en 1969 por el RS-232 (Recommended Standard 232) que establece
niveles de voltaje, velocidad de transmisión de los datos, etc. Por ejemplo, este protocolo establece un nivel de -12v como un uno lógico y un nivel de
voltaje de +12v como un cero lógico (por su parte, los microcontroladores emplean por lo general 5v como un uno lógico y 0v como un cero lógico).

Existen en la actualidad diferentes ejemplos de puertos que comunican información de manera serial (un bit a la vez). El conocido como “puerto serial” ha
sido gradualmente reemplazado por el puerto USB (Universal Serial Bus) que permite mayor versatilidad en la conexión de múltiples dispositivos. Aunque
en naturaleza serial, no suele referenciarse de esta manera ya que sigue sus propios estándares y no los establecidos por el RS-232.

El Universal Serial Bus (bus universal en serie) o Conductor Universal en Serie (CUS), abreviado comúnmente USB, es un puerto que sirve para
conectar periféricos a un ordenador. Fue creado en 1996 por siete empresas: IBM, Intel, Northern Telecom, Compaq, Microsoft, Digital Equipment
Corporation y NEC[cita requerida].

El diseño del USB tenía en mente eliminar la necesidad de adquirir tarjetas separadas para poner en los puertos bus ISA o PCI, y mejorar las
capacidades plug-and-play permitiendo a esos dispositivos ser conectados o desconectados al sistema sin necesidad de reiniciar. Sin embargo, en
aplicaciones donde se necesita ancho de banda para grandes transferencias de datos, o si se necesita una latencia baja, los buses PCI o PCIe salen
ganando. Igualmente sucede si la aplicación requiere de robustez industrial. A favor del bus USB, cabe decir que cuando se conecta un nuevo dispositivo,
el servidor lo enumera y agrega el software necesario para que pueda funcionar (esto dependerá ciertamente del sistema operativo que esté usando el
ordenador).

El USB no puede conectar los periféricos porque sólo puede ser dirigido por el drive central así como: ratones, teclados, escáneres, cámaras digitales,
teléfonos móviles, reproductores multimedia, impresoras, discos duros externos entre otros ejemplos, tarjetas de sonido, sistemas de adquisición de datos
y componentes de red. Para dispositivos multimedia como escáneres y cámaras digitales, el USB se ha convertido en el método estándar de conexión.
Para impresoras, el USB ha crecido tanto en popularidad que ha desplazado a un segundo plano a los puertos paralelos porque el USB hace mucho más
sencillo el poder agregar más de una impresora a un ordenador.

Algunos dispositivos requieren una potencia mínima, así que se pueden conectar varios sin necesitar fuentes de alimentación extra. La gran mayoría de
los concentradores incluyen fuentes de alimentación que brindan energía a los dispositivos conectados a ellos, pero algunos dispositivos consumen tanta
energía que necesitan su propia fuente de alimentación. Los concentradores con fuente de alimentación pueden proporcionarle corriente eléctrica a otros
dispositivos sin quitarle corriente al resto de la conexión (dentro de ciertos límites).

Los convertidores Edgeport de USB a serie constituyen una sencilla solución de conexión directa (plug-and-play) para la expansión de puertos COM.
Los Edgeport son una alternativa independiente (externa) a las tarjetas PCI, y se conectan por USB a un PC o servidor, de modo que ya no es necesario
abrir el chasis, reconfigurar y reiniciar el equipo. Basta con conectar el Edgeport y en cuestión de minutos dispondrá de hasta 16 puertos serie para
conectar lectores de códigos de barras, impresoras o cualquier dispositivo serie periférico.
Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde
la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía varios bits simultáneamente. La
comparación entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las carreteras. Una carretera tradicional de un sólo
carril por sentido sería como la transmisión en serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los vehículos los
bits que circulan por el cable.

Material
1 PIC16F877A.
1 CRISTAL DE 4 MHz.
2 Capacitores Cerámicos de 22 pF.
5 Capacitores Electrolíticos de 1 μF.
1 Dip-Switch de 8 vías.
1 CI Driver MAX232CPE
1 Barra de Leds.
8 Resistencias 330 Ω a ½ watt.
10 Resistencias 10 KΩ a ½ watt.
2 Push Buttons.
1 Conector DB9 hembra.
1 Cable de interfaz USB-RS232.
2 Protoboards.
Alambres.
Fuente de Voltaje de 5 VCD.
Computadora Portátil
Desarrollo
1. Se procedió a armar el siguiente circuito. El cual también se muestra en las siguientes fig. 7.1 – 7.3
FIG. 7.1
FIG. 7.2
FIG. 7.3
Descripción del programa

La función principal del programa es de transmitir un numero elegido por el programador hacia Matlab vía USB-Serial, éste al recibirlo lo mostrara en
pantalla, le sumara 5 y lo regresara al PIC el cual lo mostrara en una barra de Let´s en formato Hexadecimal.

A continuación se muestra el código utilizado en el PIC:


Y este código se utilizo en Matlab:

ps=serial('COM6');

set(ps,'Baudrate',9600);

set(ps,'StopBits',1);

set(ps,'DataBits',8);

set(ps,'Parity','none');

set(ps,'OutputBufferSize',1);

set(ps,'InputBufferSize',1);

set(ps,'Terminator','CR/LF');

set(ps,'Timeout',3);

set(ps,'FlowControl','none');

fopen(ps)

l=fread(ps,1,'uint8')

disp(l)

pause(5)

fwrite(ps,l+5)

fclose(ps)

delete(ps)

INSTRFIND
Conclusión:
Al termino de esta práctica lo que se puede concluir es que la conexión serial es muy importante ya que si no se cuenta con un puerto
USB será de mucha ayuda el puerto serial o en serie; una de las desventajas es que la conexión es algo lenta si uno de los pines esta
defectuosos o roto por eso estos puertos están siendo sustituidos por puertos USB los cuales son más rápidos y confiables. Esta
práctica será de mucha ayuda en el futuro cuando tengamos que hacer proyectos más complicados que necesiten comunicación con
una PC ya que estaremos encaminados en el tema.

Referencias:

www.wikipedia.com

http://www.digi.com/es/products/usb/edgeport.jsp

También podría gustarte