Você está na página 1de 4

CONFIGURACIÓ FULL DUPLEX DE SCI CON TRANSMISIÓN Y

RECEPCIÓN
CAMILO ANDRES ARDILA ORTIZ COD:45171053

Cundo se desea transmitir y recibir información en el microcontrolador


MCF51QE128 se hace uso del SCI que traduce interfaz de comunicación serial,
de los cuales se cuenta con dos módulos en el MPU, estos son SCI1 y el SCI2.
Algunas de la de las características que presenta este módulo es que son más
relevantes es la forma serial en la que transmite la información, un bit a l vez,
dado que solo existe un canal para ellos, si dos dispositivos están sincronizados
a las misma frecuencias, se puede codificar y decodificar la información que se
envían entre ellos, la transmisión del información se hace a través de canales
físicos, unos para enviar y otro para recibir, a esto se le denomina full-duplex, a
hora se mostraran los registros del SCIx y la forma de configurarlos para
conseguir una comunicación full-duplex con transmisión y recepción de datos.

Estos registros controlan la escala de baudios a la que se desea transmitir la


información, es decir determina aproximadamente los bps(bits por segundo
segundo) que se transmitirán.
Comúnmente se emplean escalas de 9600 baudios.
Expresión que determina este valor de la siguiente.
velocidad de reloj de bus
BaudRate=
16*SCIxBD
SCI1BDH=0b00000000;
SCI1BDL=0b00011010; //Baud rate a 9600 baudios

Este registro es importante ya que es aquí donde se decide si se desea full-


duplex seteando el pin 7.
SCI1C1_LOOPS=1//Full-duplex on
SCI1C1_SCISWAI=0//Si se desea que SC1 siga funcionando cuando se esta
en una interrupción o CPU en espera.
SCI1C1_RSRC=X// solo es importante si se ha establecido en SC1C1_LOOPS
una comunicación half-duplex
SCI1C1_M=0// Existen dos modos de organizar la información a enviar, con 8 o
9 bits, mas los bits de estar y stop en clear se configura en 8 bits
SCI1C1_WAKE=0//Determina la condición de para dar por terminado un datos
puede ser por un línea de estado inactivo o en set para que la condición sea un
1 en el bit mas significativos dependiendo si el mensaje ha sido elegido de 8 o
9 bits
SCI1C1_ILT=1//Determina cuando empezar a contar la línea de inactividad de
condición del menaje en star o cuando es seteado, esta comienza en stop
SCII1C1_PE=1//Habilitar este bit ayuda a detectar errores simples ya que
cheque que el número de unos sea par o impar y así ayuda informar con cierto
grado de certeza si la información se ha transmitido de forma correcta.
SCI1C1_PT=0/Con cero indica en el bit de paridad con los pares de los
contrario lo hace con los impares.
Por lo tato la configuración de este registro sería.
SCI1C1=0b10000110;

Este registro hablita la transmisión y recepción, así como sus interrupciones


respectivamente.
Es importante primero que TC es un flag que indica transmisión y SCI1D
es donde se almacena el valor a enviar o el recivido

SCI1C2_TIE=1// Habilita interrupción de transmisión cuando esta vacio SCI1D


SCI1C2_TCIE=1//Hbilita interrupción cundo la flag de transmisión completada
se activa
SCI1C2_RIE=1//Habilita interrupción cuando se ha llenado el dato recibido en
SCI1D
SCI1C2_ILIE=1//Habilita interrupción cuando se detecta una línea inactiva,
esta es la que determina que se ha cumplido el tiempo de bits que se
determinó para cada mensaje
SCI1C2_TE=1//habilita transmisión
SCI1C2_RE=1//Habilita recepción
SCI1C2_RWE=0//Pone en funcionamiento normal del deceptor, de otra manera
en set este crea una interrupción cuando detecta una condición como las
determinadas por SCI1C1_WAKE.
SCI1C2_SBK=0//Hace un togle en este registro agrega un caracter mas al flujo
que era útil para establecer comunicación con algunas máquinas antiguas que
operaban con este protocolo.
La configuración final de este registro sería.
SCI1C2=0b11111100

Este registro se compone de lsa banderas de error e interrupción.


SCI1S1_TDRE//Flag de registro de dato SCI1D vacio
SCI1S1_TC//Flag de transmisión completa
SCI1S1_RDRF//Flag de registro de dato SCI1D lleno por recepción
SCI1S1_IDLE//Flag de linea de inactividad, se activa cuando hay un perido de
inatividad entre y un dato y otro
SCI1S1_OR//Flag que se active si no se a leído SCI1D y por lo tanto no puede
albergar más, entonces los nuevos datos se pierden.
SCIS1_NF//Flag de ruido en alguno de los datos, es decir la muestra o bits es
defectuoso
SCI1S1_FE//Se active cuando se sucede un cero donde se esperaba un bit de
parada, lo que siguiere que no se encuentra alineado el o sincronizado el
proceso de comunicación.
SCI1S1_PF//Es la bandera que se activa cundo se detecta un error de paridad
anteriormente descrito.

En el registro SCI1D se almacena los datos recibidos o enviar par ser


manipulados en el código.La siguiente es la unicializacion resultante para una
comunicación ful-duplex con recepción y transmisión.
SCI1BDH=0b00000000;
SCI1BDL=0b00011010; //Baud rate a 9600 baudios
SCI1C1=0b10000110;
SCI1C2=0b11111100

LOS REGISTO SCI1S2 Y SCI1S3 NO PRESENTAN RELEVANCIA PARA LA COMUNICACIÓN FUL-


DUPLEX REQUERIDA.

Você também pode gostar