Redalyc.Unidad Básica de Comunicación Serial en un ... · El medio de transmisión para la...
Transcript of Redalyc.Unidad Básica de Comunicación Serial en un ... · El medio de transmisión para la...
Polibits
ISSN: 1870-9044
Instituto Politécnico Nacional
México
Herrera Lozada, Juan Carlos; Tlizaliturri Flores, Ian; Morales Castillo, Mario
Unidad Básica de Comunicación Serial en un Microcontrolador
Polibits, núm. 33, 2006, pp. 3-7
Instituto Politécnico Nacional
Distrito Federal, México
Disponible en: http://www.redalyc.org/articulo.oa?id=402640446001
Cómo citar el artículo
Número completo
Más información del artículo
Página de la revista en redalyc.org
Sistema de Información Científica
Red de Revistas Científicas de América Latina, el Caribe, España y Portugal
Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto
Unidad Básica de Comunicación serial en un Microcontrolador
l!Jnidad Básica de €omunicaciánSerial en un Microcontroladore
M. en C.¡uan Carlos Herrera LozadaInvestigador del CIDETEC IPNJan Rizaliturri. FloresAlumnodeloM..strúlenTecnologfadeC6mputodel CIDETEC IPNMario Morales CastilloAlumno de laMaestriaen TecnologlaAvanzadadel CICAD! IPN (Lego....)
111 presente artículo infiereel diseño de una UIÚdad decomUIÚcación serial imple
mentada con un microcontrolador.La funcionalidad de este prototipopermite enviar y recibir datos decualquier sistema de cómputo quesoporteelestándarRS-232,dadoquesu generalidad permite adaptarloa cualquier aplicación sin cambiosdrásticos. Este trabajo expone losresultados preliminares del proyecto "Sistemas de Control para Motores,Supervisados porComputadoras de Bolsillo" que se desarrolla actualmenteen el ODETEC - IPN.
INTRODUCCIÓN
Los microcontroladores actualesnormalmentecuentanconunmódulo funcional de comUIÚcación serieUSART/SCI (Universal SynchronousAsynchronousReceiver Transmitter/SeriJlI Comunication Interface); en casocontrario éste puede implementarse en la mayoría de sus funcionesmediante software. Este módulo seutiIiza ampliamente en sistemas decómputo en general, por lo que elmicrocontroladorvisto como un core
XVI 1 n
o UIÚdad básica puede establecercomUIÚcaciónde manerasimpleconel procesador del equipo y acceder alos recursos del sistema completo.
El medio de transmisión parala interfaz USART requiere deal menos dos vias, por lo que lacomplejidad, costos y el uso determinales del microcontroladorse reducen; esta interfaz tiene dosmodos de comUIÚcación: asincronao síncrona. La primera esfull duplexconunavia RX (Recepción)y otraTX(Transmisión), la segunda interfazeshalf duplex, utiliza una via de CLK(reloj) y otra de DT (Transmisión dedatos), con sus configuraciones pordispositivo como maestro o esclavo.En los microcontroladores tambiénpueden existir otros módulos decomUIÚcación serie como el SPI(Serial Peripherial Interface) o I2C([nter.-Integrated Circuit! que son detipo síncrono.
Cuando el módulo USART maneja la comunicación en modo asÍncronose denomina UART(UniversalAsynchronous Receiver/Transmitter).Para establecer comUIÚcación mediante el UART se requiere que losparámetros sean iguales para TX yRX¡ estos parámetros son: númerode bits del dato, número de bits deparo (stop), velocidaddetransmisión(en baudios), control de paridad yniveles lógicos utiIizados. La lineaque transmite los datos en serieestá inicialmente en estado alto; alcomenzar la transferencia se envía
polibib
un bit "O" lógico o bit de inicio. Trasél irán los bits de datos a transmitir(en ocasiones son 8, 7, 6 o 5): estosbitsestánespaciadosconunintervalotemporal fijo y preciso, ligado a lavelocidad de transmisión que se estéempleando.
Posteriormente podría venir unbit de paridad que indica si se haenviado un número par o imparde bits con un nivel lógico alto enla palabra; al final aparecerá un bit(a veces un bit y medio ó dos bits)a "1" lógico, representando los bitsde paro. Medio bit significa que laseñal correspondiente en el tiempoa un bit dura la mitad; realmente, encomunicaciones se utilizael términobaudio para hacer referencia a lasvelocidades y por lo general, unbaudioequivaleaunbitporsegundo.La presenciade losbitsde inicioyparada permite sincronizar la estaciónemisora con la receptora, haciendoque los relojes de ambas vayan a lapar, por eso el tipo de transmisiónse denomina asíncrona por paquetey sincrona por bit.
Existen varios estándares decomunicación serie asíncrona, queemplean tensiones diferenciadasapropiadas para distancias largasentre dispositivos como RS-422, RS485 u otros que emplean niveles detensiónparalainmUIÚdada ruido, talcomo RS-232. El UARTtiene compatibilidadconesteú1timoensuterceraversión, denominada con uC".
3
Unidad Básica de Comanicación Serial en an Microcontrolador
Pin PinDB9 DB25
Nombre Dirección Descripción
l 8 CD Entrada Detección de portadora
2 3 RxD Entrada Recepción de datos
3 2 TxD Salida Transmisión de datos
4 20 DTR Salida Terminal de datos preparadas
5 7 GND - Masa del sistema
6 6 DSR Entrada Set de datos preparados
7 4 RTS Salida Petición para enviar
8 5 CTS Entrada Listo para enviar
9 22 RI Entrada Indicador de llamada
Tabla 1. Pines de los conectores DB9 y DB25.
..
PROGRAMACIÓN EN PIcBASIC PRO
2006
Para la programación delmicrocontrolador se utiliza PICBASIC PRO, el cual utiliza unlenguaje de alto nivel que disminuye considerablemente la complejidad y el tiempo de diseño.
UNIDAD SERIAL IMPLEMENTADA EN
MICROCONTROLADOR
Es posible utilizar cualquiermicrocontrolador considerandoalgunas excepciones que se mencionan posteriormente. Para unificar lametodologíaseutilizóprimeramenteel microcontrolador PIC16F628Ade Microchip, debido a que es undispositivo de bajo costo y que seconsigue fácilmente en el mercadonacional; las características de estecircuito integrado son: 2048x14 bitsen memoria de código, 224x8 bitsen memoria de datos, 128x8 bits enmemoria EEPROM, una frecuenciade trabajo máxima de 20MHz, 16puertos E/S, dos comparadores analógicos, USART y un módulo PWMde 10bits. Elmódulo USARTincluidotiene una memoria FIFO, BRG (Baud
Rate Generador) y control de paridad. Se recomienda acceder a lahoja de especificaciones de estemicrocontrolador para profundizar en el mismo.
polibits
CONSTRUCCIÓN DEL CABLE
Para la comunicación serial simplificada, considerando la robustezque pueda presentar el diseño, serequiere un cable Null - Modem de3 hilos, interconectando las señalessobrantes en el mismo conectorOB9, tal y como se aprecia en laFigura 1. Este procedimiento emulael protocolo CTS/RTS y OSR/OTRpor hardware; para controlar el flujode datos se recurre al protocolo desoftware XON/XOFF.
PC común utilizacircuitos integradosUART tales comoel 8250, el 16450, el16550, etc.; cadauno de estos con susvariantesenmáximavelocidad de comunicación, elementosde almacenamiento,control de flujo dedatos, funcionalidad adicional y enel cumplimiento dela norma RS-232C;por ello, adecuarlosrequerimientos de la~_~ F_i;;;.gu_r_a_l_.C_a_b_l_e_N_u_ll_-M....;"od_e;,:m:.:.:..d.:.,e.:.,3.:,;h.:,;il,:;os:.;,· .....!!!!!!!!!!...llunidad básica de comunicaciónserial (microcontroladorprogramado como tal) no representamayor problema.
ESTÁNDAR Rs-232c
DISEÑO DEL PROTOTIPO
El core diseñado está dispuestocomo enlace entre el sistema decómputo y una aplicación externa(monitoreo de señales, adquisiciónde datos, sistemas de control, etc.).El microcontrolador intercambia información conel equipo de cómputovía el puerto serie. Por ejemplo, una
4
Propuesto por la Asociación deIndustrias Electrónicas (ElA), realizándose posteriormenteuna versióninternacional por el CCITT (Consultative Committee Jor InternationalTelegraphy and Telephony) conocidacomo V.24 con pocas diferenciasentre ambas. El estándar estipula lascaracterísticas mecánicas, eléctricasy de unprotocolo orientado al enlacefísico punto a punto. Lascaracterísticas eléctricas ofrecenalta inmunidada ruido, y una distancia de enlace dehasta 16 metros dependiendo de lavelocidad de transmisión utilizada.Los niveles de voltaje aplicado parael Ológico están en el rango de +3Va +15Y, y para el1lógico se tiene unrango de -3V a -15V; de -3V a +3Vse tiene una zona de transición. Esteestándar cuenta con dos tipos de conectores físicos: el conector OB9 y elconectorOB25. LaTabla1muestra laconfiguraciónfísica de las terminalespara ambos casos.
Unidad Básica de Comunicación Serial en un Microcontrolador--------
Tabla 2. Modos de transmisión aceptados por SERIN y SERüUT.
PIC16F628AMAX232
U1
El circuito integrado MAX232permite acoplar los voltajes de laUSARTy el PIe (opción más recomendable), aunque los microcontroladores de Microchip permitenacoplar los voltajes sin necesidadde un dispositivo adicional.
El código programado destinatiempo de proceso paraestablecerparámetros iniciales de funcionamiento que se estipulan en correspondencia al manejo de unaUSART en protocolo completo.En este circuito, la velocidad degiro y el paro del motor puedenmanejarse en cualquier momentomediante la terminal. Obsérveseque el control del motor se realizaa través de la instrucción HPWMque permite modular el anchodel pulso y obtener un equivalente analógico en voltaje parareducir o aumentar la velocidaddel motor.
este trabajo se utilizaron dos terminales, unapara simulación (contenidaen la herramienta software 1515 deProteus) y otra para pruebas físicasque se descargó de http://bray.velenje.cx/avr/terminal/.
10u
C2-
Q1
MOTOR12V
12V -
TERMINAL
APLICACIÓN CON COMUNICACIÓN
COMPLETA
El circuito de la Figura 2 muestraal microcontrolador PIC16F628Aconectado a un motor CD. El bloquedenominado TERMINAL representaa la interfaz de usuario, que permiteenviar datos hacia el microcontrolador y visualizar los datos recibidos.Esta terminal puede ser propietaria,o es posible diseñarla con VisualBasic, C, o algún otro lenguaje quepermita acceso al puerto serie. En
Esta instrucciónenvía los datos demanera serial a través del pin indicado,utilizando el mismoformato estándar dela instrucción SERIN. Para utilizarel protocolo RS-232completo con la interfaz USART (no sólotres hilos, sino todoslos del conector), seutilizan H5ERIN yH5EROUT. Es estecaso será necesariodefinir los paráme
tros de la comunicación y construirel cable adecuado.
SEROUT Pin, Mode,[ltem[,ltem...}]
La sintaxis de lainstruccióndeentrada serial SERIN es la siguiente:
SERIN Pin, Mode, {Timeout,Label,}{[Qual...],}{Item...}
La sintaxis de la instrucción parala salida serial SEROUT es:
Este lenguaje contiene dos instrucciones básicas para la comunicaciónserial bajo un protocolo simple:SERlN y SEROUT (comunicaciónserial asíncrona paraentrada/salida).El compilador, así como el manualde usuario y algunos tutoriales, sepueden obtener directamente delsitio web del fabricante http://www.melabs.com/pbpdemo.htm.
En ella se indica la recepción dedatos sobre la terminal (pin) indicada (de acuerdo a la distribuciónde pines del microcontrolador) enel formato estándar asíncrono queutiliza 8 bits de datos, sin bit deparidad y un solo bit de paro (8N1).El modo selecciona la frecuencia detransmisión y el tipo de la mismade acuerdo a la Tabla 2. Mode (p.e.T24DD para indicar el baudaje) estádefinido en el archivo MODEDEFS.BAS,quese incluyeutilizando la líneaInclude "modedejs.bas"
símbolo valor- baudios modos
~2400 O 2400
T1200 11 11200 TTL Lógica
~9600 2 9600T Positiva
T300 :3 300
N2400 4 2400
N1200 5 11200 TTL Lógica
N9600 6 9600 Invertida
N300 7 300
OT2400 B .2400
OT1200 9 11200 Or-enaje0'7' 96 00 110 9600 Abierto
0']["3 o o 11 300
ON2400 12 2400
ON1200 113 11200 FuenteON9600 "l4- 9600 Abierta
ON300 115 300
Figura 2. Control Simple de un Motor a CD vía el puerto serie. PIC16F628A.
XVI 1 33 polibits 5
Unidad Básica de Comunicación Serial en un Microcontrolador<-------- -----------"
R1
Figura 3. Control Simple de un Motor a CD vía el puerto serie. PIC12CS08A.
La transmisión serial resultafácil de implementar, además deque es segura y de bajo costo. En elcaso de un microcontrolador comointerfaz hardware de intercambiocon cualquier sistema de cómputo(principalmente PC's, y computadoras de bolsillo), es viable considerarlas propuestas realizadas en estetrabajo, yaque se adaptana cualquieraplicación similar, debido a que launidadbásica de comunicaciónseriees la misma en todo momento.
CONCLUSIONES
SELECT CASE RESPUESTACASE 49 'Velocidad 1VELOCIDAD =85case 50 'Velocidad 2VELOCIDAD =179case 51 'Velocidad totalVELOCIDAD =255end selectFOR TIEMPO = 1 TO 5 ' M i c r o
4MHz,5ms*255*5 =6 segPWM GPI0.5,VELOCIDAD,255NEXTTIEMPOPWM GPI0.5,O,1
SEROUT GPI0.0,N2400,["FIN DEPWM",10,13]GOTO INICIOEND
La utilización de la herramientaPICBASIC PRO para la programación de microcontroladores facilitaen gran medida el diseño, aunquecabe considerar que si se obtiene, através del compilador, el ensamblador equivalente y posteriormente el
Se mostraron dos aplicacionesque utilizan el core diseñado; por unladounmicrocontroladorde lagamamedia con un dispositivo adicionalpara el acoplamiento de voltajespara la transmisión; por otro, unmicrocontrolador de la gama baja ysin acoplamiento de voltajes, con 10que se tiene una referencia mayorpara realizar otras aproximaciones(ver Figura 4).
GP5/0SC1
GP4/0SC2
GP3/MCLR
de 4MHz, 6 líneas de E/S y 8pines. Este dispositivo no tienemódulos PWM y USART, por 10que su funcionamiento debe serprogramado en su totalidad y tomando tiempo de procesamientopara su utilización. En el caso dela función PW.A1, sólo se utilizapara poder procesar la siguienteacción; en la comunicación no seutilizó el circuito de acoplamientode voltajes, por 10 que el estadode transición en Ov o menos enRS-232C es tomado en el microcontrolador como "O" lógico ycualquier voltaje arriba de 5v estomado como"1"lógico; en el RS232 los Ov del microcontroladorson tomados como "1" lógico ylos 5v equivalen a "O". El no adecuar el acoplamiento de voltajesaumenta los errores y reduce lavelocidad en la comunicación.
Include "modedefs.bas"@DEVICEMCLR_OFF,INTRC_OSC,WDT_OFF,PROTECT_OFF
'DECLARACiÓN DE VARIABLESRESPUESTA var byteVELOCIDAD VAR BYTETIEMPO VAR BYTE
'PROGRAMA PRINCIPALVELOCIDAD = OSEROUT GPI0.0,N2400,["CONTROL DEVELOCIDAD PARA MOTOR DC",10,13]INICIO: SEROUT GPI0.0,N2400,["DEMELA VELOCIDAD 1 2 3 PARO POR TIEMPO",10,13]
SERIN GPI0.1,N2400,D,RESPUESTA'Espera para respuestaSEROUT GPI0.O,N2400,[RESPUESTA,10,13]
Q1BUZ10
U1
5V
5V
ApUCACIÓN CON COMUNICACIÓN
SlMPUFICADA
El microcontrolador utilizadoen el circuito de la Figura 3 esun PIC12CS08A, que cuentacon 768x12 bits en memoria decódigo, 25x8 bits en memoriade datos, frecuencia máxima
Include Umodedefs.bas"'BITS DE CONFIGURACION DEL MICROCONTROLADOR@ DEVICE MCLR_OFF, INTRC_OSC,WDT_OFF,@ DEVICE LVP_OFF, BOD_OFF, PWRT_OFF, PROTECT_OFF
'CONFIGURACION DE TERMINALESDEFINE HSER_BAUD 2400 'VELOCI-DADDEFINE HSER_SPBRG 25DEFINE HSER_BITS 8 'BITS DE DATOS
'DECLARACION DE VARIABLESRESPUESTA VAR BYTE
'PROGRAMA PRINCIPALHSEROUT ["CONTROL DE VELOCIDADPARA MOTOR DC",1 o,13]INICIO: HSEROUT["INTRODUZCAOPCIÓNDE VELOCIDAD 1 2 3, STOP 0",10,13]HSERIN [str RESPUESTA \1\"A"]HSEROUT [RESPUESTA,1 o,13]SELECT CASE RESPUESTACASE 49 'Velocidad 1HPWM 1,85,245
case 50 'Velocidad 2HPWM 1,170,245
case 51 'Velocidad totalHPWM 1,255,245
case 48 'Paro de motorHPWM 1,0,245
end selectGOTOINICIOEND
DRXD I---------'--i GPO
TXD 1-------"---1 GP1
RTS GP2fTOCKI~== --l
CTS PIC12C508A
TERMINAL
6 polibits __________---=2=--=006
«Iniciad IMska ele Comunlcacl6n Serial en un Mlcrvcontrolador
Figura 4. Aplicación que adquiere datos y los muestra.
[2] JoseM.Angulo Usategui;Microcontroladores PIe: primera ysegundJlpmu. Terceraedición.McGrawHill
. :: :~._.-.. .crs .. _ ..... ,....
u,: AA7IOK'aHoI _ •~ AA.-..
1--"1~ :=._oc~
u=¡¡¡---~-~ .'M •'oc •
~Mn.OSOTtOO •~"~
archivo hexadecimal ron el que seprogramará el microcontrolador!éste último implica un uso mayorde la memoria del dispositivocomparado con un diseño total enensamblador. Aún así! el lenguajede alto rnvel resulta un recurso ampliamente socorridoporestudiantesy diseñadores profesionales.
Con respecto al proyecto quedio pie a este artículo, "Sistemas deControl para Motores Superoisados porComputadoras de Bolsillo", cabe mencionar que la portabilidad y el poderde procesamiento de un PDA
(Asistente Pers<J7Ul1 DigitRlI permitenconcebir a estos dispositivos comosistemas altamente rentables paraanalizar datos en campo, sinIanecesidaddeotrosaparatosdemorntoreoy medición. La propuesta es programar bajo MU:rosoft Wmdows CE(actualmente Windows Mohik) paraestudiar la factibilidad de la implementación de sistemas de contro~
idealmentedemotoresa CO,motoresapasos y servomotores, controladospor la Pocket Pe vía el puerto seriey el protocolo &5-232.
XVI 1 33
~I..•
u,
Adicionalmente, se planteanpruebas utilizando la comunicaciónRF (radiofrecuencia) y la tendenciaactual hacia RFID de identificacióninalámbrica; ambas coinciden en elesquema de transmisión serial. Latecnologla RFID reconoce códigosválidos a través de una seña1 deradiofrea¡encla en un esquema deemisor - receptor tipo wireless (inalámbrico). En la actualidad existeninnumerables aplicaciones que vandesde sustituir un lector de códigode barras, hasta descontar saldosen cuentas (tarjetas del Metrobús yboletos del metro, de la Ciudad deMéxico).
poIlb1ts
[1]
[3]
[4]
[5]
[6]
BJlIUOCJWÚ
lovine,John; PICMicroconlroller Project Book, McCraw Hill,Segunda edición
Manual de PIC16F6281628N648A. Microchip, !ne.
Monual de PicBasíc Pro Compi/er. MicrioEnginnering Laba.!nc.
http://www.cidetec.ipn.mx/pofesores/jcrls/
hllp://www.todopic.com.ar/pbp_sp/
7