Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica 4full Duplex
Practica 4full Duplex
Electrnica
Ingeniera Electrnica
Comunicaciones Digitales CDF1202
Prctica4. Transmisin FULL-DUPLEX.
Daniel Servn Loyola
Jos Joaqun Castellanos Galindo
12 de Junio de 2014
Resumen
La TRANSMISIN y RECEPCIN es el aspecto principal de esta
prctica la cual por medio de un cdigo cargado en dos
MSP430G2553, utilizando dos DAC TLV5606 y dos computadoras
con HyperTerminal la transmisin full-duplex es el resultado.
OBJETIVO
I MARCO TERICO
- TLV5606
- CONVERTIDORES DIGITAL ANLOGO
- SPI
- LAUNCHPAD
- CORRIMIENTOS
1
1
1
3
5
6
7
8
- RS-232
10
- UART (Universal Asynchronous Receiver-Transmitter)
-CODIFICACIN Y MODULACIN
- TRANSMISIN FULL-DUPLEX
II DESARROLLO
- FULL-DUPLEX
-CDIGO
III CONCLUSIONES
IV FUENTES DE INFORMACIN
OBJETIVO
Lograr tener una transmisin FULL-DUPLEX entre 2 computadoras utilizando la
hiperterminal, la DAC TLV5606 y el MSP430 para alcanzar el objetivo.
MARCO TERICO
TLV5606
11
16
17
17
17
22
22
El TLV5606 tiene una salida de tensin de 10 bits de digital a analgico (DAC) con una
serie de 4-wire serial Interface. La 4-wire serial Interface interfaces de TMS320, SPI, QSPI
y Microwire puerto serie.
El tiempo de establecimiento de la DAC se puede programar para que el diseador para
optimizar la velocidad frente a la disipacin de energa. El tiempo de establecimiento es
elegido por los bits de control dentro de la cadena de entrada en serie de 16 bits. Una alta
impedancia Buffer est integrada en el terminal REFIN para reducir la necesidad de una
unidad de fuente de impedancia baja de la terminal.
El TLV5606 est programado con una serie de serie de 16 bits que contiene 4 controles y
10 bits de datos.
Implementado con un proceso CMOS, el TLV5606 est diseado para la operacin de
alimentacin nica de 2,7 V a 5,5 V. El dispositivo est disponible en un paquete de SOIC
8-terminal. El TLV5606C se caracteriza por el funcionamiento de 0C a 70C. El TLV5606I
se caracteriza por el funcionamiento de-40C a 85C. [2]
Entrada digital
C
B
Salida analgica
Vout en voltios
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RESOLUCIN DE UN DAC
Se define como la mnima variacin que puede ocurrir en la salida analgica como
resultado de un cambio en la entrada digital. En el caso anterior, se observa que la
resolucin es de 1V. Aunque la resolucin puede expresarse como la cantidad de voltaje o
corriente por etapa, resulta ms til expresarla como un porcentaje de la salida de escala
completa. El DAC descrito en la tabla tiene una escala de 15 - 0 = 15V, el tamao de la
etapa es de 1V (la etapa es el cambio de la seal de salida ante un cambio de la seal de
entrada de un valor a otro consecutivo).
La expresin que describe la operacin de este DAC es la siguiente:
Vout = -( Rf/R1 Vd + Rf/R2 Vc + Rf/R3 Vb + Rf/R4 Va )
ESPECIFICACIONES DAC
Se dispone de una amplia variedad de DAC como circuitos integrados o bien como
paquetes encapsulados autos contenidos. Uno debe estar familiarizado con las
especificaciones ms importantes de los fabricantes a fin de evaluar un DAC en una
determinada aplicacin.
- Resolucin Como se mencion antes, la resolucin porcentual de un DAC depende
nicamente del nmero de bits. Por esta razn, los fabricantes por lo general especifican
una resolucin de DAC como el nmero de bits. Un DAC de 10 bits tiene una resolucin
ms sensible (mayor exactitud) que uno de 8 bits.
- Precisin Los fabricantes de DAC tienen varias maneras de especificar la precisin o
exactitud. Las dos ms comunes se las llama Error de Escala Completa y Error de
Linealidad, que normalmente se expresan como un porcentaje de la salida de escala
SPI
SPI es un bus de tres lneas, sobre el cual se transmiten paquetes de informacin de 8 bits.
Cada una de estas tres lneas porta la informacin entre los diferentes dispositivos
conectados al bus. Cada dispositivo conectado al bus puede actuar como transmisor y
receptor al mismo tiempo, por lo que este tipo de comunicacin serial es full duplex. Dos
de estas lneas trasfieren los datos (una en cada direccin) y la tercer lnea es la del reloj.
Algunos dispositivos solo pueden ser transmisores y otros solo receptores, generalmente un
dispositivo que tramite datos tambin puede recibir.
Un ejemplo podra ser unA memoria EEPROM, el cual es un dispositivo que puede
transmitir y recibir informacin.
Los dispositivos conectados al bus son definidos como maestros y esclavos. Un maestro es
aquel que inicia la transferencia de informacin sobre el bus y genera las seales de reloj y
control.
Un esclavo es un dispositivo controlado por el maestro. Cada esclavo es controlado sobre el
bus a travs de una lnea selectora llamada Chip Select o Select Slave, por lo tanto es
esclavo es activado solo cuando esta lnea es seleccionada. Generalmente una lnea de
seleccin es dedicada para cada esclavo. [3]
LAUNCHPAD
El LaunchPad es una herramienta de desarrollo de fcil uso pensada para principiantes y
tambin usuarios experimentados que deseen crear aplicaciones basadas en
microcontroladores. Con su bajo costo el LaunchPad ofrece todo lo que necesitas para
empezar tus proyectos.
El LaunchPad es parte de la serie Value Line MSP430 de Texas Instruments. El socket DIP
integrado permite conectar microcontroladores Value Line MSP430 de 14 y 20 pines para
una fcil programacin, depuracin y monitoreo. Incluye software de desarrollo gratuito y
de uso irrestricto para escribir y depurar programas. El LaunchPad puede ser usado para
crear soluciones interactivas gracias a su botones y LEDs integrados y pines de
entrada/salida extra para una fcil integracin con dispositivos externos.
Caractersticas:
De fcil uso, incluye todo el hardware y software necesario para empezar. Dos
microcontroladores pre programados y ejemplos de cdigo ayudan al usuario a
iniciarse rpidamente.
[4]
CORRIMIENTOS
Los corrimientos son importantes para crear algoritmos tiles, entre sus aplicaciones mas
destacadas estn las de multiplicacin, divisin, registros de corrimiento para
comunicaciones seriales, secuencias de multiplexaje y otras ms que puedes descubrir a
medida que desarrollas aplicaciones.
Hay dos corrimientos lgicos (logical shifts). El corrimiento lgico hacia la izquierda (left
shift) y el corrimiento lgico hacia la derecha (right shift). En el corrimiento lgico los bits
de un registro son corrimientos (movidos) una o ms posiciones hacia la derecha o hacia la
izquierda. Los bit que salen del registro por un extremo se pierden y en el otro extremo del
registro se rellena con un bit cero por cada bit desplazado.
Por ejemplo. Si se tiene en un registro de 8 bits el valor 10110011, y se hace un
desplazamiento hacia la izquierda de un bit, todos los bits se mueven una posicin hacia la
izquierda, el bit de la izquierda se pierde y entra un bit cero de relleno por el lado derecho.
En un desplazamiento de un bit hacia la derecha ocurre algo anlogo, el bit de la derecha se
pierde y el de la izquierda se rellena con un cero [5]:
10110011
1 <-- 0110011 <-- 0
01100110
Desplazamiento
Hacia la izquierda
10110011
0 --> 1011001 --> 1
01011001
Desplazamiento
hacia la derecha
RS-232
El protocolo RS-232 es una norma o estndar mundial que rige los parmetros de uno de
los modos de comunicacin serial. Por medio de este protocolo se estandarizan las
velocidades de transferencia de datos, la forma de control que utiliza dicha transferencia,
los niveles de voltajes utilizados, el tipo de cable permitido, las distancias entre equipos, los
conectores, etc.
Adems de las lneas de transmisin (Tx) y recepcin (Rx), las comunicaciones seriales
poseen otras lneas de control de flujo (Hands-hake), donde su uso es opcional dependiendo
del dispositivo a conectar.
A nivel de software, la configuracin principal que se debe dar a una conexin a travs de
puertos seriales. RS-232 es bsicamente la seleccin de la velocidad en baudios (1200,
2400, 4800, etc.), la verificacin de datos o paridad (parida par o paridad impar o sin
paridad), los bits de parada luego de cada dato(1 2), y la cantidad de bits por dato (7 8),
que se utiliza para cada smbolo o carcter enviado.
Este protocolo est disponible en los puertos seriales de la mayora de las computadoras
personales (PC).
Conector RS232D (Conector DB9 de 9 pines)
La siguiente tabla muestra el conector de 9 pines serie que se encuentra en la mayora de las
PC de hoy en da.
SIGNAL
PIN No.
Carrier Detect
Receive Data
Transmit Data
Signal Ground
Request To Send
Clear To Send
Ring Indicator
Seales de la RS-232.
Clear To Send (CTS) Afirmado por el mdem despus de recibir la seal de RTS
indica que la computadora puede transmitir.
Data Set Ready (DSR) Esta lnea de seal es afirmada por el mdem en
respuesta a una seal de DTR de la computadora. La computadora supervisa el
estado de esta lnea despus de afirmar DTR para descubrir si el mdem esta
encendido.
Receive Signal Line Detect (RSLD) Esta lnea de control es afirmada por el
mdem e informa a la computadora que se ha establecido una conexin fsica con
otro mdem. A veces se conoce como detector de portadora (CD). Sera un error que
una computadora transmita informacin a un mdem si esta lnea no est prendida,
es decir si la conexin fsica no funciona.
Transmit Data (TD) es la lnea por donde el dato se transmite de un bit a la vez
Receive Data (RD) es la lnea por donde el dato se recibe de un bits a la vez.
Protocolo de control de flujo: Puede ser por hardware ( handshaking RTS/CTS) o bien por
software (XON/XOFF, el cual no es muy recomendable ya que no se pueden realizar
transferencias binarias). La velocidad del puerto serie no tiene por qu ser la misma que la
de transmisin de los datos, de hecho debe ser superior. Por ejemplo, para transmisiones de
1200 baudios es recomendable usar 9600, y para 9600 baudios se pueden usar 38400 (o
19200).
Por Software: El carcter Xoff (ASCII 19, CTRL-S) es utilizado por el receptor para decir
que su buffer est lleno y el emisor debe esperar. Cuando vuelva a tener espacio en el
buffer, enviara el carcter Xon (ASCII 17, CTRL-Q), dicindole que puede volver a
trasmitir. Esto economiza cables en la interconexin, pero ocupa espacio en el canal
(perfecto para un PDA).
Por hardware: a diferencia del anterior, este tipo de control de flujo requiere que entre su
PC y su MODEM se conecten dos hilos: RTS y CTS. Cuando el buffer del receptor se llena
(supongamos que es un modem lento) le dice al PC que espere, desactivando la seal
CTS. Cuando vuelva a tener espacio en el buffer, activa nuevamente el CTS para decir que
est nuevamente listo (esto puede pasar cuando la UART es ms rpida que el MODEM).
[6]
Las seales externas pueden ser de variada ndole. Ejemplos de estndares para
sealizacin por voltaje son RS-232, RS-422 y RS-485 de la EIA. Histricamente, se us la
presencia o ausencia de corriente en circuitos telegrficos. Algunos esquemas de
sealizacin no usan cables elctricos. Ejemplo de esto son la fibra ptica, infrarrojo y
Bluetooth (inalmbrico). Algunos esquemas de sealizacin emplean una modulacin de
seal portadora (con o sin cables). Ejemplos son la modulacin de seales de audio con
mdems de lnea telefnica, modulacin en radio frecuencia (RF) en radios de datos y la
DC-LIN para la comunicacin de lnea elctrica. [7]
CODIFICACIN Y MODULACIN
La informacin se transmite en forma de seales, por lo que debe ser transformada antes de
poder ser transportada a travs de un medio de comunicacin fsico. Cmo transformar la
informacin depende de su formato original y del formato usado por el hardware de
comunicaciones. El primer paso es traducir la informacin a patrones digitales acordados
(codificacin de la informacin original) para ser almacenada en una computadora en
forma digital (unos y ceros), para transportarlos fuera de la computadora es necesaria
convertirlos en seales digitales, esto es una conversin digital a digital o codificacin de
los datos digitales dentro de una seal digital.
En general las posibilidades son mayores, en la codificacin de la informacin puede darse
una codificacin de analgico a digital, y en la transmisin de informacin puede darse el
caso de tener que convertir la informacin digital en seal analgica, que se denomina
modulacin de la seal digital, en otras ocasiones es una seal analgica la que se convierte
en seal digital en lo que se conoce como digitalizacin de la seal, e incluso se puede dar
la necesidad de convertir una seal analgica en analgica (modulacin de la seal
analgica).
Conversin digital a digital.
La conversin digital a digital, codifica los unos y ceros en una secuencia de pulsos de
tensin que se puedan propagar por un medio de transmisin.
De todos los mecanismos usados para la codificacin digital a digital, se van a tratar los
ms utilizados para la transmisin de datos, que se pueden agrupar en tres amplias
categoras: Codificacin Unipolar que usa una sola tcnica; Codificacin Polar, que tiene
tres sub categoras NRZ, RZ y bifsica; y la codificacin bipolar que tiene tres variantes
AMI, B8ZS y HDB3.
Codificacin unipolar.
Sin embargo la codificacin unipolar tiene, al menos, dos problemas que la hacen poco
deseable: una componente de corriente continua DC y la sincronizacin.
Componente DC
La amplitud media de una seal con codificacin unipolar no es cero, eso crea lo que se
llama una componente de corriente continua (seal de frecuencia cero). Cuando una seal
contiene una componente continua, no puede viajar a travs de medios que no pueden
gestionar este tipo de componentes.
Sincronizacin.
Cuando una seal no vara, el receptor no puede determinar el principio y el final de cada
bit, por tanto la codificacin unipolar puede tener problemas de sincronizacin siempre que
el flujo de datos contenga una larga serie ininterrumpida de ceros o unos.
Codificacin Polar.
La codificacin polar usa dos niveles de tensin, uno positivo y otro negativo, gracias al
uso de dos niveles, en la mayora de los mtodos de codificacin polar se reduce el nivel de
tensin medio de la lnea y se alivia el problema de la componente DC existente en la
codificacin unipolar, en incluso anulando la completamente.
De las muchas variantes existentes, las ms populares son: Sin Retorno a Cero (NRZ, Nor
Return to Zero), Retorno a Cero (RZ Return to Zero) y bifsica. La codificacin NRZ
incluye dos mtodos: sin retorno a cero, nivel (NRZ-L) y sin retorno a cero invertido
(NRZ-I). El mtodo bifsico tambin tiene dos variantes: Manchester y Manchester
diferencial.
unos y de ceros.
Para asegurar la sincronizacin debe haber un cambio de seal para cada bit, sea ste un 1
o un 0, el receptor puede usar estos cambios para construir, sincronizar o actualizar su reloj.
La codificacin RZ usa tres valores, una tensin positiva, una negativa y el nivel nulo de
tensin. En RZ, la seal cambia durante cada bit, de modo que al igual que en NZR-L un
nivel positivo indica un 1 y un nivel negativo un 0, pero, a diferencia de NZR-L, a mitad
del bit, la seal vuelve al nivel nulo de tensin. Por tanto un 1 se representa por una
transicin del nivel +V a 0V, y un bit 0 por la transicin del nivel -V a 0V. La principal
desventaja de la codificacin RZ es que necesita dos cambios de seal para codificar un bit.
Bifsica.
En este mtodo, la seal cambia en medio del intervalo de bit pero no vuelve al nivel nulo
de tensin, sino que contina al nivel opuesto. Estas transiciones intermedias permiten la
sincronizacin. En esta codificacin existen dos mtodos: Manchester y Manchester
diferencial.
Manchester. La codificacin Manchester usa la inversin en mitad de cada intervalo
de bit para sincronizar y representar los bits. Una transicin de positivo a negativo
indica un 1 y una de negativo a positivo un 0. La codificacin Manchester logra el
mismo nivel de sincronizacin que RZ pero con slo dos valores de tensin.
Manchester diferencial. En esta codificacin, la inversin en la mitad del bit se usa
para la sincronizacin pero la presencia o ausencia de una transicin al principio del
intervalo se usa para identificar al bit: una transicin indica un 0 mientras que la
ausencia indica un 1. Esta pgina detalla ms cmo funciona la codificacin:
codificacin manchester
Codificacin Bipolar
La Codificacin bipolar usa tres niveles de tensin como la Polar RZ: positivo, nulo y
negativo. Pero, a diferencia de sta, el nivel tensin cero se usa para representar el bit 0. El
bit 1 se representa alternando los niveles positivos y negativos, de forma que si el primer 1
se indica con tensin positiva, el segundo 1 tendr tensin negativa, y el tercero volvera a
tener tensin positiva. Hay tres tipos de codificacin bipolar:
Bipolar con inversin de marca alternada AMI
Esta codificacin bipolar es la ms sencilla, en el nombre inversin de marca alternada,
la palabra marca viene de la telegrafa y significa 1, por lo que AMI significa inversin a 1
alterno, siendo el valor de tensin nula o cero el bit 0, la figura muestra un ejemplo de esta
codificacin.
Existe una variante de esta codificacin AMI bipolar denominada pseudoternaria en la que
el bit 0 alterna entre valores positivos y negativos. Sin embargo si bien la codificacin AMI
resuelve el problema de la componente DC, y la sincronizacin cuando hay una larga serie
de bits 1, no lo hace cuando la serie es de bits 0. Por ello se han desarrollado dos variantes
para resolver este problema especialmente en las transmisiones a larga distancia, la primera
se usa en Norteamrica y se denomina bipolar con sustitucin de 8 ceros B8ZS, y la
segunda, usada en Europa y Japn, denominada bipolar 3 de alta densidad HDB3.[8]
TRANSMISION FULL DUPLEX
La transmisin de datos full-duplex significa que los datos pueden ser transmitidos en
ambas direcciones sobre una transportadora de seales al mismo tiempo. Por ejemplo, en
una red de rea local (LAN) con una tecnologa que disfrute de transmisin full-duplex,
una estacin de trabajo puede estar enviando datos en la lnea mientras que otra estacin de
trabajo est recibiendo otros datos.
La transmisin full-duplex necesariamente implica una lnea bidireccional (es decir, que
pueda transportar datos en ambas direcciones).
Un sistema telefnico estndar es un ejemplo de una transmisin full-duplex.
Full/Full-duplex (F/FDX)
Con una operacin full/full-duplex, es posible transmitir y recibir simultneamente, pero no
necesariamente entre las mismas dos ubicaciones (es decir, una estacin puede transmitir a
una segunda estacin y recibir de una tercera estacin al mismo tiempo).
Las transmisiones full/full-duplex se utilizan casi exclusivamente con circuitos de
comunicaciones de datos.
El Servicio Postal de Estados Unidos es un ejemplo de una operacin full/full-duplex. [9]
II DESARROLLO
FULL-DUPLEX
III CDIGO
#include <msp430g2553.h>
unsigned int i=0,cont=0,x=0,uno=0,muestra=0;
unsigned int cero=0,flag=0,flg=0,s=0;
unsigned char car=0;
unsigned int M[10];
#define TIMED 977
int j=1;
volatile unsigned int z=0, a=0, b=0, envia=0;
volatile unsigned char guarda=0;
void Transmit(void);
void ADC(void);
void SP1();
void DACALTO(){
P1OUT=1;
P1OUT=0;
envia= 1023 >> 6;
UCB0TXBUF=envia;
__delay_cycles(3);
envia= 1023 << 2;
UCB0TXBUF=envia;
__delay_cycles(TIMED);
}
void DACBAJO(){
P1OUT=1;
P1OUT=0;
UCB0TXBUF=0;
__delay_cycles(3);
UCB0TXBUF=0;
__delay_cycles(TIMED);
}
void CERO(){
P1OUT=1;
P1OUT=0;
envia= 512 >> 6; //Mientras no haya transmisin
UCB0TXBUF=envia; //enva un valor medio de voltaje.
__delay_cycles(3);
envia= 512 << 2;
UCB0TXBUF=envia;
__delay_cycles(5);
}
int main(void)
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_16MHZ;
DCOCTL = CALDCO_16MHZ;
SP1();
ADC();
// Stop watchdog
for(;;)
{
CERO(); //Todo el tiempo se mantiene en 512 para la transmisin
if(flg==1)//bandera se habilitada cuando llegue un valor en la entrada
analgica
{
for(i=0;i<=9;i++)
{
M[i] = ADC10MEM;
Transmit();
car=0;
i=0;
uno=0;
cero=0;
}
if(j==0)//bandera habilitada TX
{
for(b=1;b<=8;b++){
a = z&1;
if(b==1){
z = guarda;
if(a == 1){
DACALTO();
}
if(a == 0){
DACBAJO();
}
}
if(b>=2 && b<=8){
z=guarda>>b;
if(a == 1){
DACALTO();
}
if(a == 0){
DACBAJO();
j=1;
}
}
}
}
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
muestra=ADC10MEM;
if((muestra>=800)||(muestra<=200))
{
flg=1;
}
}
void Transmit()
{
UCA0TXBUF = car;
flag=0;
}
void ADC()
{
ADC10CTL1 = INCH_3 + ADC10DIV_3 + SHS_1 + CONSEQ_2; // Input channel
select.(A3), ADC10 clock divider (/4),Sample-and-hold source select. (Timer_A.OUT1),
Conversion sequence mode select (10 Repeat-single-channel)
ADC10CTL0 = ADC10SHT_3 + ADC10IE + REFON + ADC10ON; //sample-andhold time (11 64 ADC10CLKs), ADC10 interrupt enable (1 Interrupt enabled),
Reference generator on
ADC10CTL0 |= ENC;
TACCTL1 = OUTMOD_4;
// Toggle on EQU1 (TAR = 0)
TACTL = TASSEL_2 + MC_1;
// SMCLK, cont-mode
TACCR0 = 918;
__enable_interrupt();
}
void SP1()
{
P1DIR |= 0x01;
P1OUT = 0x01;
P1SEL= BIT1 + BIT2 + BIT5 + BIT6 + BIT7;
P1SEL2=BIT1 + BIT2 + BIT5 + BIT6 + BIT7;
UCB0CTL0 = UCCKPL + UCMSB + UCMST + UCSYNC; // 3-pin, 8-bit SPI master
UCB0CTL1 = UCSSEL_3 + UCSWRST;
// SMCLK
UCB0BR0 = 0;
UCB0BR1 = 0;
UCA0CTL1= UCSSEL_2;
UCA0BR0 = 104;
// 1MHz 9600
UCA0BR1 = 6;
// 1MHz 9600R
UCA0MCTL = UCBRS0;
// Modulation UCBRSx = 1
IE2 = UCA0RXIE;
UCA0CTL1 &= ~UCSWRST;
// **Initialize USCI state machine**
UCB0CTL1 &= ~UCSWRST;
// **Initialize USCI state machine**
__enable_interrupt();
__delay_cycles(10);
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
guarda=UCA0RXBUF;
j=0; //Permite que se pueda entrar al ciclo.
UCA0TXBUF = guarda;
}
III CONCLUSIONES
An con todos los problemas que se tuvieron y con el tiempo encima se logr completar la
prctica logrando conocer conceptos de una comunicacin llevndolos a la prctica, a
programar un nuevo microcontrolador, a mi parecer nuestro nivel de programacin
aumento, bsicamente se logr el objetivo que era lograr una transmisin full-duplex
pasando por todas las etapas de comunicacin. Se logr sincronizar modificando los relojes
y tambin con delays.
IV FUENTES DE INFORMACIN
[1] Jos Eduardo Nio. (Junio de 2003). CONVERTIDORES DIGITAL ANALGICO
Y ANALGICO - DIGITAL. Recuperado el 07-03-2014 de
http://www.angelfire.com/al4/pc/tad.htm