06.09.2014 Visualizaciones

tesis_uam/Emulador de eproms_UAM5488.pdf - cedip

tesis_uam/Emulador de eproms_UAM5488.pdf - cedip

tesis_uam/Emulador de eproms_UAM5488.pdf - cedip

SHOW MORE
SHOW LESS

¡Convierta sus PDFs en revista en línea y aumente sus ingresos!

Optimice sus revistas en línea para SEO, use backlinks potentes y contenido multimedia para aumentar su visibilidad y ventas.

”EMULADOR DE EPROM”PROYECTOQUE PARA OBTENER EL TITULO DE:INGENIERO EN ELECTRONICA,PRESENTA:JOSE LUIS BALCAZAR PICHARDO *México D.F. 19991


Ver hacia don<strong>de</strong> has <strong>de</strong> caminar yempezarás a saborear lo que un díapodrás gozar, más no sin antes valorar ydisponer <strong>de</strong> lo que construiste atrás,entonces si, <strong>de</strong>jará <strong>de</strong> ser un sueñonada más. Andarás inerme, aún en laoscuridad, erguido y recordando lo quete hizo caer, lo que te hizo tropezar yaquello con lo que te pudiste levantar,en este recorrido que ya has iniciadohacia la meta que has elegido sin<strong>de</strong>tenerte a fantasear.Sejerosa ‘972


AGRADECIMIENTOSA mis padres, Rosenda Pichardo Galindo y Miguel Balcázar Montes, porcompartir con amor y esperanza todo momento, reto y <strong>de</strong>safíoque hemos superado.A mi esposa Eva Rubisela Martinez Arias por compartir con amor y esperanzatodo momento, permitir y motivar mi conformación profesional ypersonal.A mis hijos Karina Rub¡ Balcázar Martinez y Luis Brandon Balcázar Martinez,por dar a mi vida los momentos más felices con sus risas y elencanto <strong>de</strong> su niñez.A mis hermanos, sobrinos y familiares por su presencia constante y motivadora.A mis mejores amigos y compañeros Juan Carlos Tinoco Gutierrez , JavierReyes Grijalva y Marco Antonio Camacho Lopez, por la granamistad mutua y sincera que siempre hemos <strong>de</strong>mostrado.A mi asesor Dr. Hector M. Perez Meana quien estuvo siempre atento ydispuesto a la elaboración <strong>de</strong>l presente, al compartir susconocimientos, resolver dudas, cuestionar y dialogar cuando fuenecesario.A mis profesores y compañeros por su buena disposición y colaboración en miformación integral.A quienes <strong>de</strong> manera silenciosa y constante comparten conmigo la realidad <strong>de</strong>la vida y permiten que mi persona se refleje en ellos.Por la libertad, la incapacidad y la capacidad <strong>de</strong> amar, respetar, luchar yconstruir, Gracias DIOS.3


PROLOG0En el presente trabajo se reúnen diversas instancias que enriquecen la vidadiaria, tanto en el ámbito profesional, como en el académico y personal. Es unameta que impulsa a continuar y contribuye a mejorar las condiciones <strong>de</strong> vida <strong>de</strong>lser humano.El sistema <strong>de</strong>sarrollado surge como proyecto <strong>de</strong> la imperiosa necesidad <strong>de</strong>resolver un problema que se presentaba en la labor propia <strong>de</strong> la investigación.Otro factor que impulsó a la finalización <strong>de</strong> este trabajo fue la búsqueda <strong>de</strong>satisfacer la necesidad <strong>de</strong> compartir, capacida<strong>de</strong>s y conocimientos, y cooperaren el mejoramiento <strong>de</strong> las condiciones <strong>de</strong> trabajo <strong>de</strong>l prójimo, específicamentedisminuir el problema que se presenta al no tener a disposición <strong>de</strong>investigadores, la información necesaria para realizar estudios..La motivación que impulsa la realización <strong>de</strong> este trabajo es hacer uso <strong>de</strong> latecnología <strong>de</strong> información para impactar directamente en el <strong>de</strong>sarrollo y diseño<strong>de</strong> los sistemas digitales. Teniendo como objetivo general diseñar y elaborar unsistema para Emular memorias EPROM ..4


íNDlCE1 . CAPíTULO I INTRODUCCIÓN ........................................................................................... 82 . CAPíTULO I1 CARACTERISTICAS GENERALES DEL SISTEMA ................................... 10. ..................................3 CAPíTULO 111 CARACTERISTICAS ESPECIFICAS DEL SISTEMA 134 . CAPíTULO IV PRUEBAS PRELIMINARES ......................................................................... 175 . CAPITULO V RESULTADOS OBTENIDOS ....................................................................... 206 . CAPITULO VI CONCLUSION .............................................................................................. 217 . BlBLlOGRAFlA ....................................................................................................................... 228 . DIAGRAMAS ........................................................................................................................... 239 . PROGRAMAS ........................................................................................................................... 245


DATOS DEL ALUMNO:0 NOMBRE: JOSE LUIS BALCAZAR PICHARDO0 MATRICULA: 89325248ASESOR:DR. HECTOR M. PEREZ MEANA0 LICENCIATURA: ING. EN ELECTRONICA0 AREA CONCENTRACION: COMPUTACIONFECHA:03-FEB-19996


CAPITULO IINTRODUCCIONTARJETA EMULADORA DE EPROMPrimero comenzaré por explicar la diferencia entre simulador y emulador ,la diferencia principal radica en el hecho <strong>de</strong> que el primero no requiere para suuso <strong>de</strong>l sistema mínimo; mientras que el emulador <strong>de</strong> alguna forma esconectado al sistema mínimo. Por ejemplo, un emulador <strong>de</strong> un microprocesadores un software que tiene una salida <strong>de</strong> la PC lista para reemplazar almicroprocesador <strong>de</strong>ntro <strong>de</strong>l sistema mínimo.En este caso en particular hablamos <strong>de</strong> un emulador <strong>de</strong> EPROM's. Esteemulador requiere <strong>de</strong> una PC "huesped"; el po<strong>de</strong>r emular la EPROM nossignifica un importante ahorro en tiempo, al no tener que esperar a que seborren las memorias para po<strong>de</strong>r hacer alguna modificacion al programa durantela etapa <strong>de</strong> <strong>de</strong>puración <strong>de</strong>l mismo.HOST PC RESET TARGETCLIP COMPUTEREMULATORa BIT APPLICATIONExisten tres alternativas para probar un sistema basado enmicroprocesador, a saber:Cargar el programa al sistema mediante un ligador serial. Esta alternativa es<strong>de</strong> un costo elevado dado que se requiere un programa monitor capaz <strong>de</strong>manejar los programas en código ejecutable y cargarlos en lugarespecificado; a<strong>de</strong>mas <strong>de</strong> una interfase serial.7


0 Usar un emulador <strong>de</strong> microprocesador para correr el programa. Estaalternativa requiere <strong>de</strong> remover el microprocesador original <strong>de</strong>l sistema, paracolocar en sus terminales el emulador <strong>de</strong> microprocesador. Es muy eficazpero inflexible a la vez. Una <strong>de</strong>sventaja es su elevado costo, <strong>de</strong>l or<strong>de</strong>n <strong>de</strong>varios miles <strong>de</strong> dólares usualmente.Programar la EPROM e instalarla en el sistema . Esta alternativa es la <strong>de</strong>mas bajo costo, pero a cambio se tiene una pérdida <strong>de</strong> tiempo consi<strong>de</strong>rable,teniendo que borrar y volver a grabar la memoria cada que se le hace unacorrección al programa.La TARJETA EMULADORA DE EPROM's ahorra este tiempo, generandoel código <strong>de</strong> una PC IBM o compatible y cargandolo en el emulador. El<strong>Emulador</strong> en si es una tarjeta, la cual pue<strong>de</strong> ser accesada por la PC comopuerto <strong>de</strong> entradaísalida.Por lo motivos arriba mencionados <strong>de</strong>cidimos <strong>de</strong>sarrollar como proyectoterminal el diseño y construcción tanto <strong>de</strong> Software como <strong>de</strong> Hardware <strong>de</strong> unaTARJETA EMULADORA DE EPROM's; La cual es una herramienta importanteen el diseño y <strong>de</strong>sarrollo <strong>de</strong> sistemas digitales con microprocesadores.8


MEMORIA EPROMIDiagrama <strong>de</strong> memoria EPROM.9


CAPITULO IICARACTERISTICAS GENERALES DEL SISTEMALa unidad <strong>de</strong> proceso central trabaja a una velocidad <strong>de</strong> 4 Mhz. Pero estapue<strong>de</strong> elevarse hasta 8 Mhz con solo cambiar el cristal, o bien se pue<strong>de</strong> cambiarla frecuencia externamente introduciendo un pulso <strong>de</strong> reloj por el pin 29 <strong>de</strong>lMCU. Esto con el objeto <strong>de</strong> po<strong>de</strong>r aprovechar la base <strong>de</strong> tiempos <strong>de</strong> otrossistemas a los que se <strong>de</strong>see acoplar o bien conseguir una sincronización.Invariablemente se sugiere un circuito adicional para aprovecharosciladores <strong>de</strong> otros sistemas que pudieran estar trabajando en conjunto,teniendo as¡ que si frecuencia fuera mayor o menor a la requerida pue<strong>de</strong> <strong>de</strong>algun modo acoplarse para que se trabaje en el valor a<strong>de</strong>cuado. Para ello seplantea el uso <strong>de</strong> un sistema como el mostrado a continuación::OSC.DELBUFFERSISTEMA DIVISOR 0- 0-ANEXODIPEl or<strong>de</strong>n <strong>de</strong> la división <strong>de</strong>be ser tal que :4MHZ & Fosch 8MHZSi se tiene el caso <strong>de</strong> la frecuencia <strong>de</strong>l oscilador sea menor a larequerida, se podra usar un sintetizador basado en un OLL con matriculaD4046BN.Con este circuito po<strong>de</strong>mos variar la frecuencia; pero se <strong>de</strong>be tenercuidado en observar ele comportamiento <strong>de</strong> las frecuencais armonicas dadoque la señal <strong>de</strong> entrada estará con la señal <strong>de</strong> salida; con el fin <strong>de</strong> evitarsumatorias <strong>de</strong> frecuencias que pudieran acarrear problemas, bastara con correrligeramente la frecuencia <strong>de</strong>l sintetizador.La alimentación <strong>de</strong>l sistema se realiza con una fuente simple <strong>de</strong> +5 Vcc.El consumo <strong>de</strong> corriente <strong>de</strong>l sistema medido en el laboratorio es <strong>de</strong> 385mA, Porlo que bastará con una fuente que al menos proporcione 500 mA ocn el fin <strong>de</strong>tener un rango <strong>de</strong> seguridad.Lo mas recomendable es la utilización <strong>de</strong> una fuente que presente buenainmunidad los transitorios y eviten la circulación por ella <strong>de</strong> la señal <strong>de</strong> reloj ysus armonicos.El sistema cuenta con pocos circuitos integrados y se han numerado en elsigueinte or<strong>de</strong>n::10


IC1 MC68HCllAlIC2 74LS373IC3 74LS373IC4 74LS244IC5 74LS135IC6 741.~00IC7 27C64IC8 626411


En la fotografía se muestra un Grabador <strong>de</strong> Memorias EPROM12


CAPITULO 111CARACTERISTICAS ESPECIFICAS:EMULADOR DE MEMORIAS EPROMComo en este caso estamos llevando a cabo la realización <strong>de</strong>l Hardware ySoftware <strong>de</strong> un <strong>Emulador</strong> <strong>de</strong> Eproms utilizando un sistema mínimo <strong>de</strong>l68HC11 con las sguientes características:1.2.3.4.5.Microcontrolador MC68HCll Al <strong>de</strong> motorola.Memoria RAM estática 6264 <strong>de</strong> 8 KBytes <strong>de</strong> capacidad.Memoria EPROM 2764 <strong>de</strong> 8KBytes.Un separador <strong>de</strong> Datos y Parte Baja <strong>de</strong> Direcciones ya que el bus <strong>de</strong>direcciones es multiplexado.Un <strong>de</strong>codificador <strong>de</strong> 3 a 8 74LS138 para mapear o dividir la memoria total<strong>de</strong> 64KBytes en bloques <strong>de</strong> 8 KBytes, es <strong>de</strong>cir formar 8 bloques, uno <strong>de</strong>estos bloques habilitara a el registro <strong>de</strong> control <strong>de</strong>l emulador. Así estahabilitación se conectó a un DB9 para junto con el Bus <strong>de</strong> Datos <strong>de</strong>l sistemamínimo manejar un registro (74LS273 O 74LS373) que nos servirá <strong>de</strong>registro <strong>de</strong> control <strong>de</strong> la tarjeta con los Circuitos para llevar a cargo laemulacion <strong>de</strong> un programa.Es <strong>de</strong>cir que sólo el registro <strong>de</strong> control mencionado esta mapeado en elsistema mínimo, esto se <strong>de</strong>cidio para que no nos fuesen a faltar habilitacionesusando sólo el <strong>de</strong>codificador <strong>de</strong> 3 a 8 <strong>de</strong>l sistema mínimo, a<strong>de</strong>más <strong>de</strong> ahorrarconecciones <strong>de</strong> dirección ya que <strong>de</strong> todos modos era necesario utilizar el bus <strong>de</strong>datos para llenar los registros.Esto ímplica que el registro <strong>de</strong> control <strong>de</strong>berá llenarse con una palabra<strong>de</strong> control para que éste habilite o <strong>de</strong>shabilite los registros (<strong>de</strong> la y buffers <strong>de</strong>tercer estado para obtener cargar un programa ( escritura <strong>de</strong> la RAM que harálas veces <strong>de</strong> EPROM a emular) o la lectura <strong>de</strong> la misma por el sistemaconectado para emular.El hardware <strong>de</strong>l emulador se divi<strong>de</strong> en cuatro secciones:0 Interface <strong>de</strong> Ent. / Sal . A la PC : tiene una etapa lógica a base <strong>de</strong>comparadores y <strong>de</strong>codificadores, para direccionar ya sea registros para <strong>de</strong>lectura o escritura y buffers para comunicar el bus <strong>de</strong> datos <strong>de</strong> la PCcon latarjeta.13


Control lógico; consta <strong>de</strong> 2 MUX <strong>de</strong> 4 bits c/u y un registro <strong>de</strong> 8 bits quefunciona como registro <strong>de</strong> Control Maestro (MCR), a<strong>de</strong>más <strong>de</strong> dos PPI8255.Los MUX y el registro se encargan <strong>de</strong> proporcionar las líneas <strong>de</strong> controlCRD, WR, CS , etc para manejar la memoria <strong>de</strong> la tarjeta. los dos 8255trabajan en paralelo para comunicar a la memoria <strong>de</strong> la tarjeta con la PC. Elpuerto A <strong>de</strong> ambos 8255 funciona como puerto <strong>de</strong> Ent. / Sal. <strong>de</strong> 16 bits paraenvíar o recibir datos. El puerto B <strong>de</strong> ambos 8255 funciona como puerto <strong>de</strong>Salida para envíar direcciones a la tarjeta. La PC accesa la memoria comouna <strong>de</strong> 32 Kbytes por 16, así toma palabras <strong>de</strong> 16 bits.Espacio <strong>de</strong> memoria; se cuenta con dos memorias RAM Estáticas 62256<strong>de</strong> 32 Kbytes x 8, una conectada a la parte baja <strong>de</strong>l bus y la otra a la partealta.Buffers; son cuatro buffers octales, dos para datos y dos para direcciones.El software es implementado en lenguaje C, y consta <strong>de</strong> un programaprincipal y cinco subrutinas.Las subrutinas son:MEM-TEST.- prueba la mem. <strong>de</strong>l emulador y su lógica <strong>de</strong> acceso.BOARD-START.- Comienza la emulación.BOARD-STOP.- Termina la emulación.RW-EPROM.- Lee o escribe una palabra <strong>de</strong> o hacia el emulador.GET-FVALUE.- Revisa que los datos tengan el formato específicado.Generalmente este es diseñado para utilizar sistemas basados en el8088/8036. El cual acepta archivos <strong>de</strong>l usuario ejecutables para cargarse en elformato <strong>de</strong> archivo MS DOS.EXE.Para usar el emulador con un sistema basado en otro procesador. , esnecesario reconfigurar el programa principal a fin <strong>de</strong> obtener el formatoa<strong>de</strong>cuado.Los tipos <strong>de</strong> memoria. que pue<strong>de</strong>n ser emuladas son: 27256, 27128,2764, 2732, o 2731 6, y c/u en cualquiera <strong>de</strong> las sigs. configuraciones:a) . u-proc. <strong>de</strong> 8 bits ( 8088) con una EPROMs. El código es cargado en lamemoria RAM baja.b) . u-proc. <strong>de</strong> 8 bits ( 8088) con dos EPROMs. El código es cargado primeroen la RAM baja y luego en la alta.c) . u-proc. <strong>de</strong> 76 bits (8086) con dos EPROMs. Se gurda el primer byte en laRAM baja y el segundo en la RAM alta y así sucesivamente.Después <strong>de</strong> cargar el código en la RAM, la emulación comienzallamando la subrutina BOARD-START, la cual <strong>de</strong>shabilita la PC y ce<strong>de</strong> elcontrol a la tarjeta para comunicarse con el sistema mínimo.14


Descripción <strong>de</strong> los circuitos separadores <strong>de</strong> direcciones.El bus <strong>de</strong> direcciones <strong>de</strong>l sistema mínimo controlador se conecta a lasentradas <strong>de</strong> un buffer 74244 y las salidas <strong>de</strong> éste se conectan al bus <strong>de</strong>direcciones <strong>de</strong> la memoria RAM (<strong>Emulador</strong>a <strong>de</strong> Eprom). Este buffer esta activocuando se esta cargando y esta en tercer estado si se esta emulando. Paraseparar el bus <strong>de</strong> direcciones <strong>de</strong>l sistema a emular se conecto a las entradas <strong>de</strong>otro buffer y las salidas <strong>de</strong> éste se conectan al bus <strong>de</strong> direcciones <strong>de</strong> la memoriaRAM (<strong>Emulador</strong>a) ; este buffer estará activo mientras se este emulando y<strong>de</strong>sactivando cuando se este cargando.El siguiente problema al que nos enfrentamos y el cual nos causomuchos conflictos y al que <strong>de</strong>dicamos una gran cantidad <strong>de</strong> tiempo pararesolverlo. Fue que los buffers <strong>de</strong> salida <strong>de</strong> datos en la parte <strong>de</strong> Emular no lohacían correctamente <strong>de</strong>bido a las compuertas implementadas en la lógica <strong>de</strong>control <strong>de</strong> dicho dispositivo, por lo tanto los datos no podían ser leídos <strong>de</strong>lsistema que se estaba emulando y al ver la entrada y salida <strong>de</strong> datos <strong>de</strong> losbuffers, observamos que el problema estaba en que el ciclo <strong>de</strong> lectura <strong>de</strong>l microque se utilizó para emular era muy rapido y los buffers no permitían esta lectura<strong>de</strong> manera amigable, posteriormente en lugar <strong>de</strong> los buffers se colocaronalambres simulando la salida <strong>de</strong> los buffers y comprobamos si se pidía emular,como la prueba fue satisfactoria tratamos <strong>de</strong> implementar una lógica <strong>de</strong> controlmás sencilla, pero al revisar nuevamente las pruebas sólo se emulabaparcialmente ya que los programas a emular sólo funcionaban aleatoriamente.Finalmente <strong>de</strong>cidimos usar un latch 74LS373 <strong>de</strong> 3 estados o transparente yaque no necesita pulso <strong>de</strong> reloj para retener los datos, con la salida LE (latchEnable) habilitada todo el tiempo mientras que el OE (Open Enable) fueconectado al CS <strong>de</strong> la RAM en OR con el Bit <strong>de</strong> selección Carga-Emula que vaal MUX, con esto se elimino este problema.15


CAPITULO IVPRUEBAS PRELIMINARES:El proyecto que estamos llevando a cabo requirió <strong>de</strong> pruebas previas lascuales nos Ilevarón a obtener el circuito actual, es <strong>de</strong>cir que se realizarondiseños viables teóricamente, pero que en la practica en ciertas ocasiones nonos funcionarón satisfactoriamente. A continuación <strong>de</strong>scribimos algunas <strong>de</strong>ellos:PARA LA PARTE DE CARGA, (primera versión).En primer término se instalarón tres bases <strong>de</strong> los registros Lath 374,usando dos para direcciones; uno para la parte alta y otro para la parte baja ydos para datos, uno para la parte baja y dos para la parte baja <strong>de</strong> un dato <strong>de</strong>longitud <strong>de</strong> 16 bits y otro para la parte baja <strong>de</strong>l dato. Estós 4 Lath se conectarónen paralelo al bus <strong>de</strong> datos <strong>de</strong>l sistema mínimo <strong>de</strong>l 68HC11 para que ésteenvíara directamente la palabra a cada uno <strong>de</strong> ellos <strong>de</strong>pendiéndo <strong>de</strong>ldireccionamiento, ya que éstos registros se mapearón <strong>de</strong>s<strong>de</strong> el sistema mínimo,la salida <strong>de</strong> éstos laths se conectarón al bus <strong>de</strong> direcciones y al bus <strong>de</strong> datos <strong>de</strong>las memorias RAM <strong>de</strong> la tarjeta emuladora.CONSTRUCCION DE PRUEBAS DEL HARDWARE Y SOrrWAREPRUEBA DEL REGISTRO DEL CONTROLSOFTWAREHARDWAREEMULA EQU %OOOOOOOOREG-CONTROL EQU $A0000ORG $2000LDAA #EMULASTAAREG-CONTROLESPERA BRA ESPERA17


SOFTWARE para probar el bit <strong>de</strong> EmulaciónCARGA EQU %10000000ORG $2000LDAASTAA#CARGAREGCONTROLESPERA: BRA ESPERASOFTWARE para probar el bit <strong>de</strong> carga.Para probar si el registro <strong>de</strong> control funcionaba envíamos la palabra <strong>de</strong>control <strong>de</strong>s<strong>de</strong> el sistema medimos con el múltimetro el nível <strong>de</strong>l pin que nos dala carga o emulacion, así como la OE <strong>de</strong> cada etapa, primero envíamos lapalabra para la Emulación y comprobamos el estado que <strong>de</strong>berla ser O (cero) ehicimos lo análogo con la palabra para la Carga, esta prueba se implemento alprincipio como a lo largo <strong>de</strong> todo el <strong>de</strong>sarrollo <strong>de</strong>l sistema.18


PRUEBA PARA LA CARGA DE LOS REGISTROSSOFTWAREHARDWAREREG-DATOBAJO EQU $6000REG-DATO ALTO EQU $6001REG-DIRBAJA EQU $6002REG-DIRALTA EQU $603ORG $2000LDAA #$O0STAA REG-DIRALTALDAA #$O1STAAREG-DIRBAJALDAA #$O3STAA REG-DATOBAJOESPERA:BRAESPERA19


CAPITULO VRESULTADOS OBTENIDOS :En este caso tenemos que en el proyecto <strong>de</strong>l <strong>Emulador</strong> <strong>de</strong> memorias EPROM,llevamos los siguientes resultados :1.2.3.4.Si nos fuincionó el sistema mínimo en el cual estamos utilizando elMicrocontrolador MC68HCll Al <strong>de</strong> Motorola. El mapeo se realizó utilizandoaun <strong>de</strong>codificador <strong>de</strong> 3 a 8 (74LS138) para tener 8, uno <strong>de</strong> estos bloques <strong>de</strong>memoria nos servirá para habilitar el registro <strong>de</strong> control.Armamos los retenedores <strong>de</strong> datos y direcciones con registros (Latch)74LS373 los cuales sirven para la etapa <strong>de</strong> cargar el programa en la RAMque servirá <strong>de</strong> memoria <strong>Emulador</strong>a <strong>de</strong> EPROM. Es <strong>de</strong>cir que estos registrosnos servirán para fijar la dirección y el dato que se <strong>de</strong>be guardar en taldirección.Armamos la interfase <strong>de</strong> Entrada / Salida Serial Usando el circuito integrado1CL232. Este CI es usado en este caso <strong>de</strong> interfase para convertir <strong>de</strong> nívelTTL a RS232 la línea <strong>de</strong> transmisión (TxD) <strong>de</strong> sistema mínimo <strong>de</strong>lMC68HCllAl a la Computadora y recíprocamente <strong>de</strong> la computadora alsistema mínimo, usando un conector DB9 Ó DB25 ya que ambos conectoreslos instalamos en el sistema.Conectamos las memorias 2 memorias RAM 27256 para obtener un bus <strong>de</strong>datos <strong>de</strong>l 6 bits, sólo que para su control necesita <strong>de</strong> un programa.5.Se realizó el programa principal para la PC que una vez dada una ruta <strong>de</strong>acceso como por ejemplo "A:\*.S19" nos pue<strong>de</strong> dar el directorio <strong>de</strong> todos losarchivos con extensión S19 aceptando también extensiones como : *.*,*. pas, * .corn, *. hex, etc y <strong>de</strong>splejar un archivo <strong>de</strong> texto para po<strong>de</strong>r visualizar unarchivo fuente (extensión .ASM) o uno ensamblado ( extensión . S19, . HEX,. BIN ) .6.7.Se realizó un programa para la computadora que permite la comunicaciónserial, sólo que tuvimos problemas, en el mismo y por lo tanto no logramos latransmisión serial.A<strong>de</strong>más se realizó un programa que convierte <strong>de</strong> formato motorola. S19 aformato binario que a su vez <strong>de</strong>spliega direcciones y contenidos <strong>de</strong>l archivoespec íf icado.20


CAPITULO VICONCLUSION.Programar la EPROM e instalarla en el sistema. Esta es laalternativa <strong>de</strong> más bajo costo. Pero a cambio se tiene una pérdida <strong>de</strong> tiempoconsi<strong>de</strong>rable, teniendo que borrar y volver a grabar la memoria cada que se lehace una corrección al programa.El emulador <strong>de</strong> EPROM ahorra este tiempo generando. El código en unaPC IBM o compatible y cargandolo en el emuladorEl emulador en si es una tarjeta, la cual pue<strong>de</strong> ser accesada por la PCcomo puerto <strong>de</strong> EnVSal. Esta tarjeta consta <strong>de</strong> 64 Kbytes <strong>de</strong> memoria RAM. Asímismo el sistema mínimo pue<strong>de</strong> accesar esta tarjeta directamente como si fuerauna EPROM y leer el código a ejecutarse.Esta es una herramienta <strong>de</strong> gran utilidad sobre todo para todos aquellaspersonas que se <strong>de</strong>dican al diseño y <strong>de</strong>sarrollo <strong>de</strong> sistemas digitales, ya querepresenta un gran ahorro <strong>de</strong> tiempo. Elimina el trabajo <strong>de</strong> borrar y grabar losprogramas en las memorias EPROM. Ya que el <strong>Emulador</strong> se pue<strong>de</strong> usar parahacer todas las pruebas y validaciones <strong>de</strong>l programa que se va almacenar en lamemoria EPROM y una vez obtenido el resultado correcto, entonces ahora si elprograma se graba en la memoria EPROM y se instala en el sistema.21


BIBLIOGRAFIA:0 Título: DESIGN AND IMPLEMENTATION OF AN EPROMEMULATOR AS A LOW-COST MICROPROCESORDEVELOPMENT TOOL.Autores: Yu Cheng Liu y Geofrey Showalter.0 Revista: MICROPROCESSOR AND MICPOSYSTEMS.Volumén: 17.Número: 10.Fecha: Diciembre <strong>de</strong> 1993.0 Reference Manual M68HC11MOTOROLA INC. ,1991PREVIOUS EDITION 1990.22


8a$1**IrafbDiagrama <strong>de</strong> mulador <strong>de</strong> EPROhiel Instituto Nacional <strong>de</strong> Invenciones Nucleares.23


PROGRAMA PRINCIPAL PARA EL EMULADOR DE EPROMSProgram Proyecto.UsesDos, Crt, App, Menus, Drivers, Objects, Views, Dialogs.ConstcmArchivoAbrir =201;cmArchivoSalvar =202;cmEditarOtra =211;cmEditarCambiar =212;cmEditarEliminar =213;cmSiguienteTarjeta =221;cmTarjetaAleatoria =222;cmDirectorio =223.TY PeCad2O=String[20];TAplicTarj = Object(T Aplication)Procedure InitMenuBart;Virtuai;Procedure InitStatusLine;VirtuaI;Procedure HandleEvent(Var Suceso:TEvent); Virtual;End;Procedure TAplic Tarj.lniMenuBar;VarR:TRec;BeginGetExtent(R);R.B.Y:=l;MenuBar:=New(PMenuBar,lnit(R,NewMenu)NewSubMenu( A rchivo;hcNoContext,NewMenu,)Newltem( D írectorio;”.O,cmDirectorio.hcNoContext,24


Newhem( T erminar".Alt-X',kbAItX,cmQuit,hcNoContext,Nil))).NewSubMenu/",( C omunicacion )Newltem( P uerto .".O,cmEditarOtra,hcNoContext,Newltem( B audaje.".O,cm Editarcambiar, hcNoContext,Newltem( b I ts datos" .".O,cm EditarEliminar,hcNoContext,Newltem("Bit pa R o'.".O.cmEditarEliminar,hcNoContext,Nil))))).Nil)))));End;{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}Procedure TAplic TarjhitStatusLine;VarR:TRect;BeginEnd;GetExtent(R):R.A.Y:=R.B.Y-l;StatusLine:=New(PStatusLine,Init(R,NewStatusDef(O.$FFFF,NewStatusKey(' Alt-X Terminar ' .kbAltX,cmQuit,NewStatusKey(' F3 Emular '.kbF3.cmArchivo Abrir,NewStatusKey(' F1 O Menu' . kbF1 O,cmMenu,Nil))).Nil))):Peocedure Cuadro Simple(Nombre : String);VarDiálogo : PDialog:R:TRect;Contro1:Word;BeginR.Assign(20,9,55,15);Diálogo:=New( PDialog,lnit(R,Nombre));With Diálogo DoBeginR.Assign(4,2,29,4):Insert(New(PnButton,Init( R.'(no lmplementado Aun)'.cmOk,bfDefault)));End;{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}Procedure Inicializa;VarRegs: Registers;BeginWith Regs DoBeginDx:= 1;AH:= O:AL:= $23;25


Flags:= O;Intr( $1 4,Regc);End;End;{ X X X X X X X X X X X X X X X X X X X X X X X ~ xxxxxxxx}{$F+){$L TRANSMIT}Procedure TRANSMIT(Carácter:Char);External;Procedure Abrir Archivo:Var Carácter,c:Char;Programalstring ;archivo:text;BeginWindow(2,12,78,23);Textcolor( 14;)Textbac kg round ( 1 );Write]n(' + ____-________EMULAR _______________Write]n(' I I' );Write]n(' I I' );Write]n(' + ________________-________--------- +' 1;Window(3,13,77,22);Gotoxy(1 ,l);Write]n('Programa A ENVIAR :' );Textcolor( 15);read(programa);{Borra la ventana};Readln;Window(2,12,78,23);Textcolor( 1 );Textbackground(7);Write] n (' ' 1;Write]n(' ' 1;Write]n(' ' );Write]n(' ' 1;Assign(Archivo,Programa);Reset(Archiv0);In icializa;Window(2,12,78,23);Textcolor(0);Textbac kg rou nd(7);Write]n('+ ........................................................................Write]n('l 1') ;Write]n('l 1') ;Write]n('l1');Write]n('l1');Write]n('l1');Write]n('l1');Write]n('l1');Write]n('(1');Write]n('l1');Write]n('l+ ........................................................................Window(32,12,78,13);Textcolor(l6);') :+' 1;+' );26


Text bac kg round (7);Write]n(' TRASNMITIENDO' ):Window(3,13,76,21);Textcolor( 1 );Text bac kg round (7);RepeatRead(Arch ivo,Carácter);{TRANSMIT(Carácter);}Write(Carácter);Delay( 1 O);Until(Keypressed);Close(Archivo);Window(2,12,78,23);Texcolor( 1 );Textbackground(7);Write]n('Write]n('hWrite]n'(Write]n'(Write]n'(' 1;' );' );')')Write]n'(Write]n'(Write]n'(Write]n'('1'1')'\IWrite]n'(End;I )Procedure VerDirectorio;VarDatos:Text;27


Ruta:Cad20;Dir1nfo:SearchRec;Drive, Resuitado:Integer;Tecia:Char;integer;BeginDrive:=O;Window(2,1278,23);Textcoior(l4);Textbackground( 1 );Write]n(’+ _____________ DilRECTORIO------------- +’);Write]n’(l 1’);Write]n’(+ ____________________________________Ruta:=’x.s19’Window(3,13,78,25);Textcolor(l5);Repeatgotoxi( 1 ,l);Write(Ruta);TextColor(l4);gotoxi( 1 ,l);Read(Ruta);if (Ruta=#(l3)Then EXIT;Case Ruta[l]Of’a’ : Drive:=l ;’b’ : Drive:=2;’c’ : Drive:=3;’A’: Drive:=l ;’B’ : Drive:=2;’C’ : Drive:=3;End:+’) ;Un t i I ((Ruta[ 1 ]# 1 3)Or(Ruta[l ]=’a)or (Ruta[ 1 ]=’b’)or (Ruta[l ]=’c’)or(Ruta[l ]=’A)or (Ruta[l +=’B)or (Ruta[ 1 ]==’B)or(Ruta=’x’x)or (Ruta=’x.s19’)or (Ruta=’x.hex’ )or(Ruta=’x.exe’)or (Ruta=’x.com’));Window(2,12,78,23);Textcolor( 1 );Text bac kg round( 7);Write]n’( ’ );Write]n’( ’ ):Write]n’( ’ ):Write]n’( ’ 1;FindFirst(Ruta,Directory,Dirlnfo);Procedure Otra Tarjeta;BeginCuadro Simple(‘ Otra Tarjeta’ );End;(XXXXXXXXXXXXXXXMXXX~~XXXXXXXXXXXXXXXXXXXX~XXXX}Procedure Cambiar Tarjeta;BeginEnd;28


{xxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}Procedure Eliminar Tarjeta;BeginEnd;{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxXxx}Procedure Siguiente Tarjeta;BeginEnd;{xxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxx}ProcedureTarjeta Aleatoria;BeginEnd;(xxxxxxxxxxxxxxxxxxxxxXxxxxxxXxxxxxxxxxxxxxxXxxxxxx}Procedure TAplic Tarj.Handle Event(Var Suceso:TEvent):BeginTAplication. HandleEvent(Suceso);If Suceso. What = Ev Command ThenBeginCase Suceso. Command OfcmArchivoAbrir :AbrirArchivo;crnDirectorio :Ver Directorio;cmArchivo Salvar :SalvarArchivo;cmEditar Otra :Otra Tarjeta;cmEditar Cambiar :Cambiar Tarjeta:cmEditar Eliminar Eliminar Tarjeta;cmsiguiente Tarjeta :Siguiente Tarjeta;cmTarjeta Aleatoria :Tarjeta Aleatoria;ElseExit:End;Clear Event (Suceso);End;End;{ X x x X X x x x x x x x x x x x x x x X x x ~ }VarAplic Tarjetas:TAplic Tarj;BeginAplic TarjetasJnit;Aplic Tarjetas,run;Aplic Tarjetas, Done;End.PROGRAMA QUE ES LLAMADO POR EL PRINCIPAL PARA REALIZAR LATRANSMISIONPOR EL PUERTO SERIE DE LA PC29


:Inicialización <strong>de</strong>l segmento código.CODE SEGMENT BYTE PUBLICASSUME CS: CODEPUBLIC TRANSMITTRANSMIT PROC FARPUSH ,BPMOV BP,SP:Trammite <strong>de</strong>spues <strong>de</strong> revisar el puerto serie.TRANSDATO: MOV DX,3FDHIN AL,DXTEST AL,40HJNZ ENVDATOJMP TRANSDATOENVDATO: MOV AX,[BP+OG]MOV DX,3F8HOUT DX,ALPOP BPRET 4TRANSMIT ENDPCODE ENDSEND30


PROGRAMA QUE CARGA EL ARCHIVO DESDE LA PC A LA RAM DELSISTEMA MINIM0 68HC11DISP-COMEQU $COO0DISP-DATEQU $COO1xxxxxxxxxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxxxxxXBAUD EQU $102BSCCRl EQU $102CSCCR2 EQU $102DSCSR EQU$102ESCDAT EQU $1 02FCOPRST EQU $1 03APORTA EQU $DO00PORTB EQU $DO08xxXXXXXXxxxxxxXXXXxxxxxx~xxxx~xx~xxxxxxxxxxxxxxORGS $33HOSTDEVRMB 1IODEV RMV 1TMPl RMB 1TMP2 RMB 1TMP3 RMB 1TMP4RMB 1PTR3 RMB 2AUTOLF RMB 1xxxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSHFTREG RMB 2xxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxxxxxxxxxxxxxXORG $B600x Apuntador <strong>de</strong> pila al final <strong>de</strong> la ram externa.LD S #$3FFFXxlnicialización <strong>de</strong>l display.LDAA.$OlSTDAA DISP-COMJSR VERlF-DISPLDAA#$02STAA DISPCOMJSR VERIF-DISPLDAA #$38STAA DISP-COMJSR VERIF-DISPLDAA #$ODSTAA DISP-COMJSR VERIF-DISPLDAA $06STAA DISP-COMJSR VERIF-DISPLDAA $80STAA DISP-COM31


JSR VERIF-DISP~~XXXXXXxx~XXXX~~XXXXXXXXxxXXxxxxxxxxXXxxxxxxXXxx~xxxxxxiniciallización <strong>de</strong>l S CI.JSR ON SCIXxMensaje inicial <strong>de</strong> cargando programa.LDX # MENSAJEJSR ENVIALETXxlnicialización <strong>de</strong> TMP3 que es el indicador <strong>de</strong> erroresxSi TMP3=O:No hubo errores.x TMP3=1 :Error en recepción.x TMP3=2:Error <strong>de</strong>checsum.x x X X X X x x X X x x x x x x x X ~ X X X X X X X X X X X X X X X X X X XX LDAA #$O0X STAA TMP3XLOADS: EQUxLDAA#$COSTAA DISP-COMJSR VERIF-DISP~~XXXXX~XXXXXXXX~xxXXXXXXxxXXxxxxxxXXXXxxxxXXXXXXXXXXXx Espera <strong>de</strong>l primer carácter <strong>de</strong> la línea <strong>de</strong> un archivo.Sl9.LOAD 10: EQUxJSR INS CIx Espera si no hay dato listo en el SCI.TSTABEQ LOADD 10Xx Si el primer carácter es 'S' continúa,si no espera nuevamente.CM PA# 'S'BNE LOAD 10Xx Si llego 'S' se <strong>de</strong>spliega.STAA DlSP-DATJSR VERIF-DISPXx Espera el siguiente carácterque pue<strong>de</strong> ser ' I 'o ' 9 ' .LOAD 12: JSR INS CITSTABEQ LOAD9OxXx Si es '1' , continúa leyendo el resto <strong>de</strong> la linea.CMPA # '1'x Si nofue ni '9' ni '1' vuelve a leer <strong>de</strong>s<strong>de</strong> el inicio la línea.BNE LOAD 10Xx Si fue '1' .<strong>de</strong>splegarlomen el display.STAA DISP-DATJSR VERIF-DISPXx lnicializa la variable TMP4 a cero para el cheksum.CLR TMP4XxObtiene el número <strong>de</strong> bytes que siguen en la línea.LDAA #$8E32


XSTAA DISP-COMJSR VERIF-DISPJSR BYTEXLDAB SHFTREG+lXB =Contador <strong>de</strong> bytes.SUBB#$2Xx Obtiene la dirección base.LDAA#$C3STAA DISP-COMJSR VERIF-DISPXJSR BYTEXJSR BYTEXXX = Dirección base.LDX SHFTREGCPX#$E000BHS DESPLAZABRA NODESPLADESPLAZA: PSHAPSHBLDD SHFTREGSUBD #$COO0STD SHFTREGPULBPULANODESPLA: LDX SHFTREGDEXXx Obtiene el siguiente byte (los contenidos).LOAD20: JSR BYTE1INXXx Revisa si llego al final <strong>de</strong>l conteo <strong>de</strong> bytes.DECBXx Si B=O entonces realiza el Cheksum.BEQLOA 030Xx Brinca si hubo un indicio <strong>de</strong> errorX TST TMP3X BNE LOAD9XxCarga cada contenido a envíar en A.LDAA SHFTREG+lXXLOS envía a la dirección X.JSR WRITEXxVerifica que se haya guardado el dato <strong>de</strong> la ram.X CMPA O.X.xBrinca si la ram esta bien.X BEQLOAD 20xfinal <strong>de</strong> la bajada.33


BRA LOAxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxCheksum.LOAD 30: LDAA #$O1STAA DISP-.COMJSR VERlF-DlSPXxBrinca si no hay error:X TST TMP3X BNE LOAD9Xxhace el cheksum:X LDAA TMP4X INCAx Brinca si la línea s 1 es correcta.XBEQ LOAD9x Indica el error <strong>de</strong> cheksum.X LDAA #$O2X STAA TMP3lBRA LOAD9XXXXXXXXXXXXXXXXMXXXXXXXXXXXXXXXXXXXXXXXXLOADSO: STAA DISP-DATJSR VERIF-DISPJSR BYTELDAB SHHFTREG+lLOAD91:JSR BYTEDECBBNE LOAD91ATORA: BRA ATORAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxBYTE: PSHBPSHXXxLee el SCl(primer byte).BYTEO: JSR INSClTSTABEC BYTEOxconversión a binario.JSR HEXBINXxLee el segundo byte en el SCIBYTEl: JSRlNSClTSTABEC BYTE1JSR HEXBINXLDAA SHiTREG+lADDA TMP4xSuma para el cheksum.STAA TMP4PULX34


PULBRTSXXXXXXXXXXXXXXXXXXXXXXXXXXXXMXXXXXXXXXXXXBYTE1 : PSHBPSHXLDAB #$CASTAB DISP-COMJSR VERIF-DISPXBYTEOl: JSR INSCITSTABECBYTEOISTAA D IS P-DATJSR VERIF-DISPJSR HEXBINBYTE11: JSR INSCITSTABEC BYTE 1 ISTAA DISP-DATJSR VERIF-DISPJSR HEXBINLDAA SHFTREG+lADDA TMP4STAA TMP4PULXPULBRTSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEXBIN: Convierte el caracter ASCII EN A axxun binario y lo envia a SHFTREG. xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxHEXBIN: PSHAPSHB.35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!