You are on page 1of 13

DepartamentodeIngenieraElectrnica.

UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital

Escuela Superior de Ingenieros


UniversidaddeSevilla DepartamentodeIngenieraElectrnica Versin 1.2. 3 de Marzo de 2008

Prctica 3

LABORATORIO DE MICROELECTRNICA

Jonathan N. Tombs Fernando Muoz Chavero Miguel A. Aguirre Javier Npoles

Prctica3.Receptordeunalneaserie 1

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital

Prctica 3. Comunicacin serie con la tarjeta S3

Este prctica es la tercera de un grupo de tres dedicada a entrenar al alumnoconelentornodetrabajoXilinxISE9.2ylatarjetaDigilentS3. Se disearn un sistema de comunicaciones entre un ordenador personal y las tarjeta, basadas en la utilizacin de un enlace serie RS232. Los objetivosdelaprcticasonlossiguientes: 1. PerfeccionarelentrenamientoconelentornoXilinxISE9.2. 2. Faciltar un mecanismo de comunicaciones entre un PC y la tarjeta S3quesirvaparatransferenciadeinformacinentreambossistemas.

Prctica3.Receptordeunalneaserie 2

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital

1. Objetivo propuesto
Se trata de disear un enlace serie RS232 con una velocidad de transferencia y definicindelenlacedecomunicacionesfijo. Proveer de un mecanismo de transferencia de informacin entre la tarjeta y el usuarioparaposiblesaplicacionesenlosproyectos.

2. Enlace de Serie
Un enlace serie es una comunicacin asncrona a una velocidad determinada. La comunicacin se realiza diseando una UART para la transmisin y para la recepcin demensajes.Lascondicionesdediseosernlassiguientes: 8bits Paridadpar 1starty2destop 9600baudios Halfduplex.Nosepermiteenvoyrecepcinsimultneos. Desde elPC utilizaremos la utilidad de Windows hiperterminal, que nos facilitar la transferenciaatravsdelCOM1.UnalneaserietienedoslneasRXyTX,RXrecibela informacinyTXlaenva.
Driver Displays

Registro Byte

Registro Byte

DataRec0

RX

RECEPTOR

DataOK

StTrans

TX

TRANSMISOR

Por otra parte, representaremos la informacin recibida en los displays de la placa. En el ejercicio de hoy almacenaremos cuatro valores en sendos registros de 8 bits, que forman una pequea FIFO de dos bytes. A su vez estos registros se representan en el

Prctica3.Receptordeunalneaserie 3

DataRec1

DataRec1

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital displayyluegoseenvanalPCporlalneadetransmisin.Enlaconsolahiperterminal sevisualizarnlosvaloresdelainformacinretrasadosunenvo. Para realizar la prctica se utilizar el puerto RS232 de la placa, conectado al PC mediante un cable serie. La norma RS232 obliga a transmitir mediante tensiones de 0 a 15V. Se precisa, pues, de un chip que adapte dichas tensiones. En la figura se representaelesquemaelctricodedichopuertoimplementadoenlaplacaS3.

3. Realizacin de la prctica
Por razones didcticas seguiremos la evolucin de la prctica de menor a mayor complejidad.Ademsseproporcionalapartedeldiseorelacionadaconlosdriversde losdisplay,quepuedenserlosmismosqueseutilizaronenlaprctica1.Secomenzar realizandountransmisorqueenveunvalorfijoalPC.

3.1 TRANSMISOR
El transmisor es un circuito bastante sencillo, en el que la informacin transmitida por lalneaTXtieneunaconfiguracin fija.Enestecasosetratadeunacargaenparaleloy unasalidaenserie,paraenviar8bitsdeinformacinyaloscualesque hayqueaadir el bit de start y bit proveniente del generador de paridad. La lnea de transmisin est enestado1enreposo.Latransmisinserealizaralavelocidadde9600baudios. Prctica3.Receptordeunalneaserie 4

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital Utilizaremoslossiguienteselementospararealizareltranmisor: Contadordebits Contadosdebaudios Mquinadeestadosquecontrolalatransmisin Generadordeparidad Multiplexordeselectordebit. En esta prctica es muy aconsejable utilizar un contador genrico en el que se adapte su extensin y valor de saturacin a cada una de las aplicaciones, con seal de habilitacin(enable)ysealderesetsncrono. Lalneaseriesecomportasegnlafiguraadjunta:

Start

B0

B7

Paridad Stop

Muestreo

B0 es el bit menos significativo del Byte a transmitir, y el bit de paridad representa un valor que hace que el nmero de bits a 1 del byte, junto con el propio bit de paridad, sea par. Los bits de stop representan un tiempo de al menos dos bytes en los que la lneaTXestenreposo. Lafigurapresentaunesquemadeunaposiblesolucinalcircuito.
9600 b.p.s.

StSend Transmit Maq Est Transm Fin

resets resets Contador de Baudios (Mod 5208) Contador de Bits (Mod 11) Selector 0 0 Transmit TX

S9600

DataPar

1-8

GenParidad 1

9 10

Prctica3.Receptordeunalneaserie 5

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital 3.1.1Mquinadeestados Lamquinadeestadosdetransmisincontrolalatransmisin,siguiendoelcircuitodel esquemaanteriores:


StSend=0

Reposo Transmite=0

Fin=1

StSend=1 Fin=0

Transmision Transmite=1

Donde StSend es un pulso de inicio de transmisin, Fin es un pulso de fin de transmisindadoporelcontadordebits.Transmitetienelamisindehabilitartodoel tiempodelprocesoduranteelcualsetransmite. LasealTransmiteactivarelcontadordebaudiosdetransmisinyeldebits,esdecir, estasealinvertidamantieneaceroestoscontadorescuandonohaytransmisin. 3.1.2.ContadordeBitsdeTransmisin Este contador debe contar al menos 11 bits, donde el bit 0 es el de start, que est a 0, los bits 1 a 8 son la informacin transmitida, el bit 9 es el de paridad y el bit 10 debe estara1.Estecontadorcambiacada1/9600segundos. Para esta parte de la prctica se proceder a fijar un valor al dato de entrada. Se proponequeparaestedatoseutiliceelcarcterhexadecimal0x45.

3.2 RECEPTOR
En la figura 1 se muestra el esquema general del receptor. Podemos distinguir los siguientesbloquesadisearenVHDL: Desmultiplicadorparaajustarlafrecuenciaderecepcin Registroderecepcin,conversordeserieaparalelo Generadordeparidad Mquinadeestadosderecepcin En la figura se muestra un esquema de la arquitectura del receptor basado en los bloquesanteriormentemencionados.

Prctica3.Receptordeunalneaserie 6

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital
RX ByteOki Maq Est Receptor Fin

Contador de Baudios s19200 (Mod 2604) Resets Contador de Bits (Mod 10)

SmplBit

Registro Desplazamiento prt b7 b0 st

DataRec (1 a 8)

ByteOki ByteOk ByteOkp

Gen Paridad ByteOkp

El receptor ha de muestrear la informacin a mitad de bit, para asegurar que la recepcin sea correcta. Por ello utilizaremos un contador que desmultiplica a doble velocidad,ymuestrearlasealcadadospulsos,talycomosemuestraenlafigura.

Start

B0

B7

Paridad Stop

Muestreo

La velocidad de bits se ha de construir a partir de una desmultiplicacin del reloj de 50MHz. Se construye un contador desmultiplicador de 50Mhz a 19200 (2x9600) ciclos porsegundo: 50000000/19200=2604 Este contador se utilizar para muestrear cada bit. Se realizar de la siguiente manera, medianteunamquinadeestados: SerecibeelbitdeStart,enelqueseponelalneaRXacero. Elcontadorseponeaceroyutilizaremosunasealdeparamuestrearcadados pulsosdesaturacin. Sehandecontar9bits(8+paridad) Eldatovlidosegeneraapartirdelavaloracindelaparidad. La necesidad de un contador de velocidad doble se justifica para garantizar que el muestreo se realizar a mitad del tiempo de un bit de la informacin recibida, tal y comosemuestraenlafigura. 3.2.1Diseodelamquinadeestadosderecepcin
9600 b.p.s.

Prctica3.Receptordeunalneaserie 7

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital

Esta mquina de estados controla el muestreo de seales activadas por el contador de baudios. Se activa a partir del bit de start por RX. En reposo los contadores no se mueven. Una vez que se activa el contador de baudios, se atiende a su bit de saturacin.Cadadosbitsdesaturacin,semuestrealasealdeRXatravsdeSmplBit. El mecanismo se detiene cuando el nmero de bits muestreado es igual al valor de saturacindelcontadordebitsSatCtBits. 3.2.2.Registrodedesplazamiento Lainformacinseguardaenunregistrodedesplazamientoquecuandosehabilita,se, transfiere la informacin al registro adyacente, y si no est habilitado, se retiene la informacin. 3.3.VERIFICACIN Pararealizarlaverficacindelainformacinenviadaseproponerealizardosacciones: 1. Representar en el display de la placa la informacin de los bytes recibidos. LA representacin en el display se facilita en un mdulo VHDL ya realizado y disponibleenlawebdedescargas. 2. Reenvo al PC de la informacin de los bytes, mediante el transmisor. Los valoresenviadosapareceranenlaconsoladelaherramientahiperterminal. 3.3.1Hiperterminal

Prctica3.Receptordeunalneaserie 8

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital Es una aplicacin de Windows que permite realizar operaciones de comunicacin por diferentes canales, y en particular por el puerto serie, identificaci por COM1:. Se encuentraenInicio>Programas>Accesorios>Comunicaciones>Hyperterminal

Conelprogramadesconectado(iconodeltelfonodescolgado),Archivo>Propiedades

Debe aparecer conectar usando COM1. Aqu presionar el botn Configurar. Aqu debeaparecerlaconfiguracindelavelocidaddelpuertoserie:

Prctica3.Receptordeunalneaserie 9

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital

La figura muestra la configuracin del puerto serie para realizar esta prctica. Una vez configurado la informacin que se escriba desde teclado en la consola del hyperterminal se transfiere automticamente al puerto serie, y la informacin recibida ser escrita en la consola. Los caracteres escritos no aparecen en la configuracin por defectodelaconsola.

4. Desarrollo de la Prctica
Como se ha comentado comenzaremos por el transmisor. Realizaremos una primera versinqueenviaralPCunvalorfijo.

4.1

Contador
CONT_BAUDIOSyCONT_BITS Contador sncrono con habilitacin y valor de saturacin. Se llamar a esta instancia en cuatro ocasiones, para dos temporizar los baudios y dosparacontarbits.
entity contador is Generic (Nbit: INTEGER := 8; ValSat: INTEGER := 100); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC;--reset asncrono enable : in STD_LOGIC; resets : in STD_LOGIC;--reset sncrono Sat: out STD_LOGIC; Q : out STD_LOGIC_VECTOR (Nbit-1 downto 0)); end contador;

Descripcin

Entidad

Descripcindelospuertos clk reset enable resets Sat Reloj Resetasncronoactivoanivelalto Seal de habilitacin activa a nivel alto. Si enable=1 el contador avanzarunoenlacuentaenelflancopositivodereloj. Reset sncrono activo a nivel alto. Si resets=1 el contador pasar a ceroenelsiguienteflancopositivodereloj. PulsodesalidaqueaparececuandoelcontadoralcanzaValSat. Prctica3.Receptordeunalneaserie 10

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital SalidadeNbitigualalavalordelacuenta.

4.2

Paridad
GEN_PAR Circuito totalmente combinacional para calcular el bit de paridad del byte.
entity paridad is Port ( data : in STD_LOGIC_VECTOR (7 downto 0); parity: out STD_LOGIC); end paridad;

Descripcin Entidad

dato Paridad

Descripcindelospuertos Byteparacalcularlaparidad Valordelaparidad

4.3

Mquina de estado de transmisin


FSM_TRANSMISOR Circuitodecontroldelprocesodetransmisin
entity fsmTrns is Port ( clk : in STD_LOGIC; rst : in STD_LOGIC; StSend : in STD_LOGIC; Fin : in STD_LOGIC; Transmit : out STD_LOGIC); end fsmTrns;

Descripcin Entidad

clk rst StSend Fin Transmit

Descripcindelospuertos Relojdesistemade50MHz Resetasncronoactivoanivelalto Comienzaelprocesodetransmisin.Debeserunpulsodeunperiodo dereloj Finaldelcontadordebitsdetransmisin Estasealesta1duranteelperiododetranmisin.

4.4

Mquina de estado de recepcin


FSM_RECEPTOR Circuito totalmente combinacional para calcular el bit de paridad del byte.
entity fsmRec is Port ( clk : in STD_LOGIC; rst : in STD_LOGIC; RX : in STD_LOGIC; satCtBits : in STD_LOGIC; s19200 : in STD_LOGIC; clrCtBits : out STD_LOGIC; smplBit : out STD_LOGIC; ByteOki : out STD_LOGIC); end fsmRec;

Descripcin Entidad

Prctica3.Receptordeunalneaserie 11

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital Descripcindelospuertos clk Relojdesistemade50MHz rst Resetasncronoactivoanivelalto RX Lneaderecepcin satCtBits Sealindicadoradelfinaldelcontadordebits S19200 Saturacindelcontadordebaudios clrCtBits Resetsncronodeloscontadoresdebaudiosydebits SmplBit Pulso de muestreo de un bit. Se habilita el contador de bits y el registrodedesplazamiento.Debedurarunperiododereloj. ByteOk Sealcanzaelfinaldelacuentadebyteysedebeverificarlaparidad. SmplBit Muestreodeunbit

4.5

Registro de Desplazamiento
REG_DESPL Registrodedesplazamientoqueleeelvalordelainformacinrecibida enmodoserie.Seleeelbitmenossignificativoprimero.
entity SerialPar is Generic (Nbits: INTEGER := 10); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; enable : in STD_LOGIC; RX: in STD_LOGIC; DataPar: out STD_LOGIC_VECTOR (Nbits-1 downto 0)); end SerialPar;

Descripcin Entidad

clk reset enable RX DataPar

Descripcindelospuertos Relojdesistema Resetasncronoactivoanivelalto Seal de habilitacin activa a nivel alto. Si enable=1 cada registro transferirelcontenidodecadaunodesusbitsalsiguiente. Sealsderecepcinserie. Valordesalidaparalelo.

El registro de desplazamiento ha de realizarse siendo el Msb el registro que primero recibelainformacin.Puederealizarseutilizandoelsiguientecdigoconcurrente: pData(Nbits2 downto 0)<=Data(Nbits1 downto 1) when(enable=1) else Data(Nbits2 downto0); pData(Nbits1)<=RXwhen(enable=1)elseData(Nbits1);

4.6

Presentacin de la informacin
PRES_INFO Prctica3.Receptordeunalneaserie 12

DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital Descripcin Presenta la informacin en el display de 7 segmentos. Se trata de la prctica 1 adaptada a este problema. Se entrega como parte del enunciado. entity PrDisplay is Entidad
Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; data0: in STD_LOGIC_VECTOR (7 downto 0); data1: in STD_LOGIC_VECTOR (7 downto 0); siete_seg: out STD_LOGIC_VECTOR (6 downto 0); select: out STD_LOGIC_VECTOR (3 downto 0)); end PrDisplay;

clk reset Data0 Data1 select DataPar

Descripcindelospuertos Relojdesistema Resetasncronoactivoanivelalto Valordelregistro0arepresentar Valordelregistro0arepresentar Selectordeldisplay Valordeldisplaydesietesegmentos

4.7

Conexionado de pines de entrada/salida

ElficheroUSERCONSTRAINTSFILEdebecontenerlasiguienteinformacin: NETSelector<0>LOC=E13; NETSelector<1>LOC=F14; NETSelector<2>LOC=G14; NETSelector<3>LOC=D14; NETclkLOC=T9; NETRXLOC=T13; NETrstLOC=L14; NETSiete_Seg<1>LOC=E14; NETSiete_Seg<2>LOC=G13; NETSiete_Seg<3>LOC=N15; NETSiete_Seg<4>LOC=P15; NETSiete_Seg<5>LOC=R16; NETSiete_Seg<6>LOC=F13; NETSiete_Seg<7>LOC=N16; NETTXLOC=R13;

Prctica3.Receptordeunalneaserie 13

You might also like