Professional Documents
Culture Documents
UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital
Prctica 3
LABORATORIO DE MICROELECTRNICA
Prctica3.Receptordeunalneaserie 1
DepartamentodeIngenieraElectrnica.UniversidaddeSevilla Asignatura:LaboratoriodeMicroelectrnicaDigital
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.
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
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
DataRec (1 a 8)
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
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
4.3
Descripcin Entidad
4.4
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
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;
4.7
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