Вы находитесь на странице: 1из 11

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA


LABORATORIO DE CONTROL CON MICROPROCESADORES
PRCTICA NO. 01

COMUNICACIN SERIAL ASINCRNICA

COMUNICACIN SERIAL ASINCRNICA


1. OBJETIVO
Familiarizar al estudiante con el uso del prtico de comunicacin serial (USART) del
microcontrolador ATMEGA164P y el puerto serial del computador personal.

2. DESARROLLO
2.1. Consultar los comandos que permiten manejar el puerto de comunicacin serial de un PC,
mediante Visual Studio, Matlab y LabView.
VISUAL STUDIO
Estos son los comandos e instrucciones ms frecuentes para utilizar el puerto serie:
Principales mandatos para utilizar el puerto serie:
Serie = My.Computer.Ports.OpenSerialPort("COM1") 'Constructor
'Definir las caractersticas de la comunicacin
Serie.BaudRate = 19200

'velocidad de comunicaciones

Serie.DataBits = 8

'Longitud para Byte de datos

Serie.Parity = Parity.Even

'paridad(enumeracion parity)

Serie.StopBits = StopBits.Two 'Bits parada despus datos

'Abrir/Control/Liberar Puerto
Serie.Open()

'Abrir el puerto Serie

Serie.Close()

'Cerrar el Puerto Serie

Serie.Dispose()

'Liberar objecto

Dim SiNo As Integer


SiNo = Serie.IsOpen

'El Puerto esta abierto?

Dim Puerto As String


Puerto = Serie.PortName 'Nombre del puerto

'Manejo y Control de seales


Dim Estado As Boolean

'True=Activa / False=Inactiva

Estado = Serie.CDHolding 'Estado de la seal carrier detect


Estado = Serie.CtsHolding 'Seal Clear to Send
Estado = Serie.DsrHolding 'Seal Data Set Ready
Serie.DtrEnable = True

'Activar de Data Terminal Ready

Serie.RtsEnable = True

'Activar Request To Send

'Control Transmission/Recepcion
Serie.ReadBufferSize = 1024 'Definir tamao buffer recepcion
Serie.WriteBufferSize = 1024 'Definir tamao buffer envio
Serie.ReadTimeout = 10
Serie.WriteTimeout = 10

'Fuera de tiempo en rececin


'Fuera de tiempo en transmisin

Serie.Handshake = Handshake.XOnXOff 'Control recepcion/envio


Serie.DiscardInBuffer()

'Borrar buffer de entrada

Serie.DiscardOutBuffer()

'Borrar buffer de salida

'Enviar datos
Contador = Serie.BytesToWrite 'Bytes en espera de ser escritos
Serie.Write("Hola Mundo")

'Enviar una cadena de caracteres

Serie.WriteLine("Hola Mundo") 'Enviar una lnea

'Leer datos
Dim Contador as Integer
Contador = Serie.BytesToRead 'Bytes en espera de ser leidos
Serie.ReadByte()

'Leer un byte

Serie.ReadChar()

'Leer un char

Serie.ReadLine()
Serie.ReadExisting()

'Leer una linea


'Leer datos existentes en buffer

MATLAB
Este es una forma bsica de conectarse al puerto serial utilizando matlab.

%configurando puerto y dando de alta s como objeto asociado al com1


s=serial('COM1', 'BaudRate', 9600);
% abriendo el puerto
fopen(s);
%lee una linea de texto y la almacena en "datos" no incluye terminador
datos = fgetl(s);
%escribe datos en el puerto en binario
fwrite (s,datos);
% cerrando el puerto
fclose(s);
% borrando el objeto de memoria
delete(s)
clear
%algunas instrucciones asociadas con este puerto en matlab
fgetl (serial)
fgets (serial)
fopen (serial)
fprintf (serial)
fread (serial)
fscanf (serial)
fwrite (serial)
get (serial)
instrcallback
instrfind
instrfindall
isvalid (serial)
length (serial)
load (serial)
readasync
record
save (serial)
serial
serialbreak
set (serial)
size (serial)
stopasync

LabView
Para establecer una comunicacin serial en este programa se hace uso de VISA serial, y los
siguientes comandos:
1. VISA CONFIGURE SERIAL PORT
Inicializa las especificaciones del puesto serial para VISA resource name

2. VISA Write
Escribe el dato desde el buffer de escritura hacia el dispositivo o interface especificado por
VISA resource name

3. VISA Read
Lee el nmero especificado de bytes desde el dispositivo o interface especificado por VISA
resource name y retorna los datos en el buffer de escritura.

4. VISA Close
Cierra una sesin con el dispositivo o un evento especificado por VISA resource name.

5. Propiedades del Nodo


Leer y/o escribe propiedades como una referencia. Use las propiedades del noto para obtener
o configurar propiedades y mtodos en aplicaciones locales o remotas. Tambien s puede usar
para acceder a datos privados en LabVIEW.

6. VISA Serial Brake


Enva una parada en salida especificada. Se puede especificar su uso como automtico o de
modo manual.

7. VISA Set I/O Buffer Size


Configura el tamao del buffer de entrada/salida. Ejecuta Configure Seria Port VI primero si
est configurando el tamao de un buffer de puerto serial.

8. VISA Flush I/O Buffer


Nivela el buffer de entrada/salida especificado por mask

2.2.

Realizar un programa para el uC, el cual permita mostrar en 8 leds el dato que recibe
por comunicacin serial desde el computador, adicionalmente el uC debe enviar el
estado de 8 interruptores conectados a uno de sus puertos a travs del puerto serial.

ANLISIS DE ENTRADAS Y SALIDAS


Para este programa se necesitarn las siguientes variables:

SELECCIN DEL MICROCONTROLADOR


Los requerimientos mnimos ms importantes que debe tener un microcontrolador sern:
1 Canal USART
16 terminales I/O
Frecuencia de oscilacin de 8Mhz
Otros requerimientos sern:
16 Kbytes de memoria flash
Frecuencia de operacin 8MHz
1 Kbyte de memoria SRAM
512 bytes memoria EEPROM
Voltaje de alimentacin tpico de 5V.
Con estas caractersticas, usando el selector de microcontroladores de ATMEL, tenemos un
total de 21 dispositivos que nos pueden servir para esta aplicacin, entre los que se
encuentran: AT90CAN128, AT90CAN128 Automotive, AT90CAN32, AT90CAN64, ATmega16,
ATmega164P Automotive, ATmega64, etc.
Debido al conocimiento y familiaridad se usar el microcontrolador ATMEGA164PA.

DIMENSIONAMIENTO DE DISPOSITIVOS
Para controlar la corriente que circula por los Leds se requerirn resistencias limitadoras,
para su dimensionamiento se tiene lo siguiente:

Para un led los valores tpicos de voltaje y corriente son:

Por lo que las resistencias limitadoras sern:

DIAGRAMA DE FLUJO
INICIO
Definicin de uC
ATEMGA164PA

Definicin de constantes y
variable
Definicin de vectores de
direccionamiento.
0x00 (Reset) y (0x28) Rx USART0
Configuracin E/S
8 pines entrada (Dip-Switch), 8
pines de salida (Leds), Terminales
USART.
Configuracin Stack
Pointer

Configuracin Comunicacin Serial


9600 Bauds, 8 Bits, Sin paridad, 1
bit de parada.

Impresin Dato Recibido


USART en leds.

Rx Serial
Interrupcin
Configuracin E/S
Guardar Dato Recibido USART

Enviar estado de Dip-Switch


mediante puerto USART a la PC.

REGRESAR

CDIGO (Assembler)
/*
* Practica_01_Comunicaci?n_serial.asm
*
* Created: 14/04/2015 20:07:40
*
Author: Byron Sarabia
*/
//Definicin del uC
.include "m164pdef.inc"
//Definicin de Constante y Variables
.dseg
.equ frecuencia=8000000
.equ bauds=9600
.def tempo=r16
dato_recibido: .byte 1

//Vectores de Direccionamiento
.cseg
.org 0x00
jmp inicio
.org 0x28
jmp rx_dato
inicio:
//Configuracin de entradas y salidas
ldi tempo,0b1111_1111
out ddra,tempo
ldi tempo,0b0000_0010
out ddrd,tempo
ldi tempo,0b0000_0000
out ddrc,tempo
ldi tempo,0b1111_1111
out portc,tempo

;Puerto A como salida


;D0-Rx como entrada y D1-Tx como salida
;Puerto C como entrada
;Activacin de pull-up

//Configuracin de stack pointer


ldi tempo,high(ramend)
out sph,tempo
ldi tempo,low(ramend)
out spl,tempo
//Configuracin de comunicacin serial
ldi tempo,high((frecuencia/(16*bauds))-1)
sts ubrr0h,tempo
ldi tempo,low((frecuencia/(16*bauds))-1)
sts ubrr0l,tempo
ldi tempo,0b1001_1000
sts ucsr0b,tempo
interrupcin de recepcin,Habilito Rx y Tx
ldi tempo,0b0000_0110
sts ucsr0c,tempo
paridad, 1 bit de parada, 8 bits
sei

;Cargo velocidad

;Habilito

;Asincrnico, sin

//Lazo Principal
lazo:
lds tempo,dato_recibido
out porta,tempo
rjmp lazo
//Interrupcion de Rx
rx_dato:
push r16
lds r16,sreg
push r16
lds tempo,udr0
sts dato_recibido,tempo
in tempo,pinc
sts udr0,tempo
call espera
pop r16
sts sreg,r16
pop r16
reti
//Espera de envio
espera:
push r16
lds r16,sreg
push r16
lds r18,ucsr0a
sbrs r18,5
rjmp espera
pop r16
sts sreg,r16
pop r16
ret

2.3. Elaborar un programa en ambiente visual que permita establecer la comunicacin serial
entre el microcontrolador y el computador. Esta interfaz debe constar de 8 indicadores
para mostrar el estado de los interruptores conectados con el uC y 8 pulsadores que
permitan modificar el estado de los leds conectador al uC.
INTERFAZ GRFICA (LabVIEW)

DIAGRAMA DE BLOQUES

PANEL FRONTAL

3. BIBLIOGRAFA

APUNTES DE SISTEMAS MICROPROCESADOS; Ing. Marco Herrera MSc.; Semestre 2014B; EPN; Quito-Ecuador.

APUNTES DE CONTROL CON MICROPROCESADORES; Ing. Jhon Pilataxi.; Semestre


2015-A; EPN; Quito-Ecuador.

http://blogs.msmvps.com/peplluis/2006/11/21/principales-mandatos-para-utilizar-elpuerto-serie-del-espacio-system-io-ports/

http://www.ni.com/labview/esa/

Вам также может понравиться