Documentos de Académico
Documentos de Profesional
Documentos de Cultura
microcontrolador, con otra computadora, dispositivos como el mouse, impresoras, entre otros.
La transmisión paralela permite que los bits de un dato o instrucción se realicen con un solo pulso
de reloj, la transmisión es rápida y la desventaja es que se requieren una gran cantidad de
terminales, lo que encarece los costos de transmisión además el mantenimiento y
acondicionamiento se incrementa al aumentar las distancias de transmisión.
La comunicación serial, transmite un bit cada pulso de reloj, por lo que es más lenta, pero solo
requiere de dos a tres líneas de transmisión, para la transferencia de información y las distancias
de transmisión aumentan notablemente y con el uso de modem, la comunicación se puede
realizar a cualquier lugar del planeta.
Existen dos tipos de transmisión serial: síncrona y asíncrona.
La comunicación síncrona, se requiere una línea para transmitir la información y una segunda para
el pulso de reloj, el cual sincroniza la transmisión de información entre emisor y receptor.
Estos bits adicionales son llamados bits de paro y de inicio. Por ejemplo, una unidad de
teletipo usa un código de carácter de 8 bits pero envía 11 bits por cada carácter transmitido.
El primer bit es el bit de inicio. Está seguido por los 8 bits del carácter y luego por los dos
bits de paro.
Este módulo, llamado MSSP, integrado en los PIC16F87X proporciona un excelente medio de
comunicación con otros microcontroladores o periféricos que trabajan en serie.
La comunicación en modo SPI la utilizan principalmente las memorias RAM y EEPROM y utiliza tres
líneas. En el modo I 2C sólo se emplean dos líneas y se usa en la comunicación de circuitos
integrados diversos. Básicamente el módulo MSSP está basado en dos registros: el SSPSR, que es
un registro de desplazamiento que transforma la información serie en paralelo y viceversa, y el
registro SSPBUF, que actúa como buffer de la información que se recibe o se transmite en serie. En
transmisión, el byte que se desea enviar se carga en el SSPBUF y automáticamente se traspasa a
SSPSR, donde se va desplazando bit a bit, sacándolo al exterior al ritmo de los pulsos de reloj. En
recepción, los bits van entrando al ritmo del reloj por una pata del PIC y se van desplazando en el
SSPSR hasta que lo llenan, en cuyo momento se traspasa la información al SSPEUF.
En el modo SPI se utilizan tres líneas del PIC, mientras que en el modo I 2C sólo se emplean dos
líneas para la comunicación del PIC maestro con los circuitos integrados que funcionan como
esclavos.
USART: El USART soporta la comunicación serie síncrona y asíncrona. Puede funcionar como un
sistema de comunicación bidireccional asíncrono o full duplex, adaptándose a multitud de
periféricos que transfieren información de esta manera. También puede trabajar en modo
unidireccional o halfduplex.
En el primero, las transferencias de información se realizan sobre dos líneas TX y RX, saliendo y
entrando los bits por dichas líneas al ritmo de la frecuencia controlada internamente por el USART.
En el modo síncrono la comunicación se realiza sobre dos líneas, la DT, que traslada los bits en
ambos sentidos a la frecuencia de los pulsos de reloj que salen por la línea CK desde el maestro.
Además del valor X cargado en el registro SPBRG. La frecuencia en baudios del generador depende
del bit BRGH (TXSTA<1>). Si BRGH=0 se trabaja a baja velocidad y si BRGH=1 se trabaja a alta
velocidad. Según este bit se obtendrá el valor de una constante K necesaria para determinar la
frecuencia de funcionamiento.
Este generador sirve tanto para el modo síncrono como el asíncrono y consiste de un
contador/divisor de frecuencia de 8 bits controlado por el registro SPBRG (99H). De tal manera
que la frecuencia de transmisión se calcula de acuerdo a la siguiente tabla:
EL USART TRANSMISIÓN ASÍNCRONA
Para realizar una transmisión de datos, el registro de desplazamiento TSR obtiene los datos del
registro (buffer) de lectura/escritura TXREG. El registro de desplazamiento TSR no carga el bit de
Stop hasta que se hayan transmitido los datos cargados. Una vez que se haya enviado este bit, el
registro será cargado con los nuevos datos (si están disponibles), en este caso el bit TXIF (PIR1 <4>)
se pone a uno, y se genera una interrupción si está habilitada (PIE1 <4>).
Los pasos necesarios para realizar una transmisión asíncrona son los siguientes:
· Inicializar el registro SPBRG con el valor apropiado según los cálculos realizados.
Si se desea el margen alto se pondrá a uno el bit BRGH.
· Habilitar el puerto asíncrono borrando el bit SYN y poniendo a uno el SPEN.
· Habilitar la interrupción (si se desea) poniendo a uno el bit TXIE.
· Poner a cero o a uno el bit TX9 (8 ó 9 bits).
· Habilitar la transmisión poniendo a uno el bit TXEN, el cual pondrá a uno el bit
TXIF.
· Si se han seleccionado 9 bits se deben poner el noveno en el bit TX9D.
· Cargar el dato en el registro TXREG (comenzar la transmisión).
;*********************************************************************
; PROGRAMA transmisión serie ASINCRONA.
; Este programa transmite los bytes ASCII "TEMP ºC" por el puerto ;serie
del microcontrolador
; a intervalos de 1 segundo.
; Configuración del puerto serie COM: 9600 baudios,8 bits
;*********************************************************************
;VECTOR DE RESET
ORG 0x00
goto INICIO ;Va a la primera instruccion del programa
ORG 0x05
;INICIO PROGRAMA
INICIO
bsf STATUS,RP0 ;Selecciona el Banco 1
movlw b'00100100'
movwf TXSTA ;Configuración USART
movlw .25
movwf SPBRG ;9600 baudios
goto Bucle
END
1. Seleccionamos el Banco 1
2. Cargamos en W el valor binario b'10111111'
3. Movemos el valor en W hacia el registro TRISC, para configurar las patillas
RC7/Rx y RC6/TX como entrada y salida respectivamente.
4. Ahora cargamos a W con el valor binario b'00100100'
5. Movemos el valor en W hacia el registro TXSTA
11. Habilitamos la transmisión poniendo a 1 el bit TXEN del registro TXSTA (antes
descrito.)
12. Regresamos al Banco 0 y comenzamos el programa principal.
13. Se inicia con un retardo de 1 segundo.
14. Se carga en el registro W el carácter a transmitir
15. Se mueve este carácter al registro TXREG
16. Después de cargar el carácter en TXREG este comienza la transmisión y el bit
TRMT se pone en 0.
17. Debemos movernos al banco 1 y explorar este bit y cuando cambie a 1 podremos
continuar y cargar un nuevo carácter o valor para ser transmitido nuevamente.
18. Regresamos al banco 0.
19. Para transmitir otro carácter repetimos los pasos descritos desde en paso 14.
20. Terminamos el programa END.
https://www.youtube.com/watch?v=4Q18tyi8J-Y&t=2324s