INSTITUTO TECNOLÓGICO SUPERIOR DE XALAPA
Interfaces y Redes Industriales. Reporte de práctica. Profesor: Pacheco Tejeda Isaí.
REALIZADO POR: ROMERO CERDA LUIS ENRIQUE HERNÁNDEZ ARGÚELLES JULIO ERNESTO Ing. Mecatrónica. Mecatrónica.
Reporte de práctica registros de desplazamiento INTRODUCCION: Microcontroladores. Un microcontrolador (abreviado μC , UC o MCU) es un circuito integrado
programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microwatts). Por lo general, tendrá la capacidad de mantenerse a la espera de un evento como pulsar un botón o de otra interrupción; así, el consumo de energía durante el estado de reposo (reloj de la CPU y los periféricos de la mayoría) puede ser sólo de nanowatts, lo que hace que muchos de ellos sean muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos. Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento. Microcontrolador PIC 18F8720 en encapsulado TQFP de 80 pines.
Microcontrolador TMS 1000 de Texas Instruments.
ARDUINO: Arduino (anteriormente conocido como Genuino a nivel internacional hasta octubre 2016), es una compañía open source y open hardware, así como un proyecto y comunidad internacional que diseña y manufactura placas de desarrollo de hardware para construir dispositivos digitales y dispositivos interactivos que puedan sensar y controlar objetos del mundo real. Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Los productos que vende la compañía son distribuidos como Hardware y Software Libre, bajo la Licencia Pública General Reducida de GNU (LGPL) o la Licencia Pública General de GNU (GPL),1 permitiendo la manufactura de las placas Arduino y distribución del software por cualquier individuo. Las placas Arduino están disponibles comercialmente en forma de placas ensambladas o también en forma de kits hazlo tu mismo (DIY, por sus siglas en inglés de "Do It Yourself"). Los diseños de las placas Arduino usan diversos microcontroladores y microprocesadores. Generalmente el hardware consiste de un microcontrolador Atmel AVR, conectado bajo la configuración de "sistema mínimo" sobre una placa de circuito impreso a la que se le pueden conectar placas de expansión (shields) a través de la disposición de los puertos de entrada y salida presentes en la placa seleccionada. Las shields complementan la funcionalidad del modelo de placa empleada, agregando circuiteria, sensores y módulos de comunicación externos a la placa original. La mayoría de las placas Arduino pueden ser energizadas por un puerto USB o un puerto barrel Jack de 2.5mm. La mayoría de las placas Arduino pueden ser programadas a través del puerto Serial que incorporan haciendo uso del Bootloader que traen programado por defecto. El software de Arduino consiste de dos elementos: un entorno de desarrollo (IDE) (basado en el entorno de processing y en la estructura del lenguaje de programación Wiring), y en el cargador de arranque (bootloader, por su traducción al inglés) que es ejecutado de forma automática dentro del microcontrolador en cuanto este se enciende. Las placas Arduino se programan mediante un computador, usando comunicación serial.
Formas de construir registros de desplazamiento. Por ejemplo: Registro de entrada paralelo y salida serie. Puede construirse con un multiplexor digital combinacional y un contador. Las entradas de datos del multiplexor se conectan a los datos a transmitir, y las entradas de control, a las salidas del contador (el bMs del MUX conectado al bMs del contador), dicho contador deberá estar en modo de carrera libre.
Registro de entrada serie y salida paralelo. Similar al caso anterior, se sustituye el multiplexor por un demultiplexor, ahora las salidas de éste serán las salidas paralelos.
Biestables en cascada. Con esto y la lógica combinacional adecuada, se pueden construir incluso registros de desplazamiento bidireccionales y universales, aunque en este caso es más aconsejable disponer del 74HC194, dado que ocupa mucho menos espacio (y el precio del integrado es muy asequible) y en un solo integrado incluye las cuatro posibles configuraciones y la funcionalidad de desplazar los bits en ambos sentidos.
Registros con entrada serie y salida serie (SISO) A continuación se muestra un registro de desplazamiento con entrada y salida en serie de 5 bits formado con biestables maestro esclavo RS:
Observamos que la entrada S del primer biestable está conectado a la entrada y está negada a la entrada R. Con esto se consigue que, cuando en la entrada haya un 1, el primer biestable contendrá un 1 (Q=1, Q’=0) y los demás un 0. Con la siguiente señal de reloj el bit almacenado en el primer biestable se desplazará al siguiente y así uno tras otro hasta la salida en serie. Esto sucede así porque la salida Q está conectada a la S del siguiente biestable. También podemos observar que los biestables nunca pueden estar en estado de mantenimiento o en estado prohibido, ya que la entrada enserie pasa afirmada a la S y negada a la R.
Los registros de desplazamiento se implementan con biestables maestro – esclavo, pues son capaces de almacenar la información un flanco, y transmitirla durante el siguiente. Cuando el registro se efectúa de izquierda a derecha se denomina desplazamiento hacia la derecha. Si el registro combina ambos tipos se llama bidireccional.
Registros con entrada serie y salida paralelo (SIPO) La estructura de un registro serie paralelo es muy similar a la de un registro con entrada y salidas en serie:
Observamos que la única diferencia es que se le añade una salida a cada una de las salidas Q del biestable: de esta manera se pueden obtener todos los datos a la vez. Por otro lado, también se puede obtener una salida en serie de cualquier salida Q o Q’.
Habitualmente se suele añadir una entrada de puesta a cero asíncrona (CLEAR) cuya función es inicializar el registro. En último lugar destacar que estos registros se suelen utilizar para el cambio de una palabra de serie a paralelo.
Registros con entrada paralelo y salida serie (PISO) A continuación se muestra un esquema de un registro con entrada paralelo y salida serie y carga asíncrona.
El funcionamiento es el siguiente: cuando en la entrada de selección desplazamiento /carga', hay un 0 se realiza la carga. Con el inversor este cero se convierte en un 1 y por lo tanto las puertas NAND que hay arriba y debajo de los biestables se convierten en inversores. A continuación se introducen los datos: en el bit que haya un 1, se activa el Preset, y en el que haya un cero, se activa el Clear. Para el desplazamiento se coloca un 1 en D/C’ de esta manera se consigue que
nunca se activan las entradas ni PR ni CL, ya que de las puertas NAND siempre saldrá un 1. El desplazamiento se realiza como en un registro serie-serie. A continuación se muestra un registro con carga paralelo y salida serie pero en este caso la carga es síncrono, ya que se carga por las entradas síncronas
Observamos que esto se consigue con un multiplexor de dos canales gobernado por DESPLAZAMIENTO/ CARGA’. Con esto se consigue que si se quiere cargar
los datos, se activan las entradas en paralelo que van cada una a las entradas S R. Para obtener los datos se tiene que realizar la entrada serie. En conclusión, podemos observar que la función del multiplexor es elegir entre la carga en serie o en paralelo.
Registro de entrada y salida en paralelo (PIPO)
Como se puede ver, se ha creado un registro de entrada y salida paralelo a partir de biestables D con entrada de habilitación. La entrada de datos es cada una de las entradas D del biestable; la entrada de habilitación se une a una entrada de habilitación global, de manera que cuando se activa, permite que se lean los datos. Hay otra entrada (control de salida) que al activarse permite que se lean las salidas. Aquí hemos utilizado puertas AND, aunque también podríamos haber utilizados puertas OR y un inversor, o también buffers con entradas de alta impedancia.
El código ASCII
Breve historia del Código ASCII : El código ASCII (siglas en ingles para American Standard Code for Information Interchange, es decir Código Americano ( Je! lease estadounidense... ) Estándar para el intercambio de Información ) ( se pronuncia Aski ). Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares Nacionales" o "ANSI" como se lo conoce desde entonces. Este código nació a partir de reordenar y expandir el conjunto de símbolos y caracteres ya utilizados en aquel momento en telegrafía por la compañía Bell. En un primer momento solo incluía letras mayúsculas y números, pero en 1967 se
agregaron las letras minúsculas y algunos caracteres de control, formando así lo que se conoce como US-ASCII, es decir los caracteres del 0 al 127. Así con este conjunto de solo 128 caracteres fue publicado en 1967 como estándar, conteniendo todos lo necesario para escribir en idioma ingles. En 1981, la empresa IBM desarrolló una extensión de 8 bits del código ASCII, llamada "pagina de código 437", en esta versión se reemplazaron algunos caracteres de control obsoletos, por caracteres gráficos. Además se incorporaron 128 caracteres nuevos, con símbolos, signos, gráficos adicionales y letras latinas, necesarias para la escrituras de textos en otros idiomas, como por ejemplo el español. Así fue como se sumaron los caracteres que van del ASCII 128 al 255. IBM incluyó soporte a esta página de código en el hardware de su modelo 5150, conocido como "IBM-PC", considerada la primera computadora personal. El sistema operativo de este modelo, el "MS-DOS" también utilizaba el código ASCII extendido. Casi todos los sistemas informáticos de la actualidad utilizan el código ASCII para representar caracteres, símbolos, signos y textos (162).