Entradas

6.3 Diseño y aplicación de interfaces

En general se utiliza este tipo de lenguaje para programar controladores (drivers). Ventajas: Mayor adaptación al equipo. Posibilidad de obtener la máxima velocidad con mínimo uso de memoria. Inconvenientes: Imposibilidad de escribir código independiente de la máquina. Mayor dificultad en la programación y en la comprensión de los programas. El programador debe conocer más de un centenar de instrucciones. Es necesario conocer en detalle la arquitectura de la máquina. Aplicación: Actualmente la tecnología y el trabajo humano está íntimamente relacionada con las computadoras; como lo es el diseño gráfico, la redacción, el control de instrumentos y maquinaria, las comunicaciones, etc. Dependiendo de la aplicación dada a una computadora son las interfaces que se le instalan. Como en diseño gráfico, los periféricos necesarios son la cámara digital, impresora, mouse, tableta digitalizadora; entre otros. El desarrollo de la computadora va ligado al de sus periféricos. Para toda aplic...

6.2 Módulos de adquisición de datos

La adquisición de datos o adquisición de señales, consiste en la toma de muestras del mundo real (sistema analógico) para generar datos que puedan ser manipulados por un ordenador u otras electrónicas (sistema digital). Consiste, en tomar un conjunto de señales físicas, convertirlas en tensiones eléctricas y digitalizarlas de manera que se puedan procesar en una computadora o PAC. Se requiere una etapa de acondicionamiento, que adecua la señal a niveles compatibles con el elemento que hace la transformación a señal digital. El elemento que hace dicha transformación es el módulo de digitalización o tarjeta de Adquisición de Datos (DAQ). ¿Cómo se adquieren los datos? La adquisición de datos se inicia con el fenómeno físico o la propiedad física de un objeto (objeto de la investigación) que se desea medir. Esta propiedad física o fenómeno podría ser el cambio de temperatura o la temperatura de una habitación, la intensidad o intensidad del cambio de una fuente de luz, la presión dentr...

6.1 Conceptos básicos y clasificación

 Interfaz: dispositivo electrónico que se conecta entre el PC y los elementos a ser controlados (actuadores, interruptores, pulsadores, relés, circuitos, motores, etc.). Su misión es garantizar el correcto aislamiento eléctrico entre los puertos del PC y los dispositivos externos.  Bus: Normalmente se refiere al conjunto de señales con las que se comunica el microprocesador con el entorno: memoria o periféricos (a través de las interfaces).  Las funciones más importantes de un interfaz son: Interpretar las órdenes que recibe de la CPU y transmitirlas al periférico. Controlar las transferencias de datos entre la CPU y el periférico (convertir formatos, adaptar velocidades,..). Informar a la CPU del estado del periférico. Detección de errores (defectos mecánicos o eléctricos en el funcionamiento del dispositivo. Ejemplos: atasco de papel, cambio de un bit, etc.). Los interfaces también se denominan controladores, interfaces o tarjetas de E/S

UNIDAD V. INTERFACES

Conexión e interacción entre hardware, software y el usuario. El diseño y construcción de interfaces constituye una parte principal del trabajo de los ingenieros, programadores y consultores. Los usuarios “conversan” con el software. El software “conversa” con el hardware y otro software. El hardware “conversa” con otro hardware. Todo este “diálogo” no es más que el uso de interfaces. Las interfaces deben diseñarse, desarrollarse, probarse y rediseñarse; y con cada encarnación nace una nueva especificación que puede convertirse en un estándar más, de hecho o regulado

5.7 Comunicación

Un conversor ADC puede convertir un voltaje en un numero binario digital. Los conversores A/D son utilizados en cualquier lugar donde sea necesario procesar una señal, almacenarla o transportarla en forma digital. La resolución del conversor indica el número de valores discretos que se pueden obtener dependiendo del rango del voltaje de entrada. Usualmente es expresado en bits. Los microcontroladores típicamente traen incorporador conversores de 8, 10, 12 o 16 bits. Por ejemplo un ADC que codifica una señal análoga de 256 valores discretos (0..255) tiene una resolución de 8 bits, ya que 2^8 = 256. La resolución también puede ser definida en términos eléctricos, y expresada en volts.  La resolución de un ADC es igual al mayor voltaje que se pueda medir dividido por el número de valores discretos, por ejemplo:  Para un rango de medida entre 0 y 10 volts Resolución del ADC = 12 bits: 2^12 = 4096 niveles de cuantización resolución del ADC en volts: (10-0)/4096 = 0.00244 vol...

5.6 Aplicaciones de buses

Bus de Direcciones: Este es un bus unidireccional debido a que la información fluye es una sola dirección, de la CPU a la memoria ó a los elementos de entrada y salida. La CPU sola puede colocar niveles lógicos en las n líneas de dirección, con la cual se genera 2n posibles direcciones diferentes. Cada una de estas direcciones corresponde a una localidad de la memoria ó dispositivo de E / S. Los microprocesadores 8086 y 8088 usados en los primeros computadores personales (PC) podían direccionar hasta 1 megabyte de memoria (1.048.576 bytes). Es necesario contar con 20 líneas de dirección. Para poder manejar más de 1 megabyte de memoria , en los computadores AT (con procesadores 80286) se utilizó un bus de direcciones de 24 bits, permitiendo así direccionar hasta 16 MB de memoria RAM (16.777.216 bytes). En la actualidad los procesadores 80386DX pueden direccionar directamente 4 gigabytes de memoria principal y el procesador 80486DX hasta 64 GB.  Bus de Datos: Este es un bus bidirec...

5.5 Manejo del bus

Selección del Bus  Con el objetivo de solucionar los problemas antes mencionados y de poder reusar nuestros diseños así como también usar diseños realizados por otros grupos adoptamos el estándar de interconexión Wishbone. Bus de expansión En una primera aproximación creamos un bus de expansión específicamente creado para el microcontrolador. Esto tiene importantes desventajas, entre ellas:  − Para conectar periféricos creados por otros grupos de trabajo es necesario adaptarlos a la señalización del bus en cuestión.  − Periféricos diseñados para ese bus no servían para ser usados en otros diseños con buses de otro tamaño. Por ejemplo: no servían para un bus de 16 o 32 bits sin ser adaptados.

5.4 Estándares de buses

PC/104 se lanzó en 1992, acercando la tecnología PC a las aplicaciones de control industrial. El estándar PC/104 usa el bus ISA como un bus portador en el sistema, sobre el que las unidades se interconectan, semejante al estándar plug-in o las tarjetas de expansión de la época. En 1994 el estándar se amplió para incluir el bus PCI y especificó el PC/104 Plus como el estándar. En el estándar PC/104 Plus, tanto el bus ISA como el bus PCI se declaran como buses portadores en el sistema y, por lo tanto, disponibles para la expansión del sistema. Ambos sistemas de conectores ocupan alrededor del 30% del área de la tarjeta. La creciente complejidad de las tarjetas y el énfasis en el bus PCI condujo en el año 2004 a que el uso de PC/104 con bus ISA comenzara a utilizarse en menor medida frente al uso del estándar PC/104 Plus. Para aplicaciones en las que el bus ISA es necesario, están disponibles las tarjetas que hacen de puente entre PCI e ISA y por tanto permite el uso de expansiones o ta...

5.3 Aplicaciones de puertos

OPERACIÓN DE LECTURA EN LOS PUERTOS DEL MICROCONTROLADOR 8051. La operación de lectura o de adquisición de datos no representa ningún tipo de problema; solamente se deberá cambiar el orden de los operandos en la instrucción respecto a la de escritura. Para la operación de lectura, el formato de la instrucción más habitual es el siguiente:  MOV ,PX ; dato <- PX  Los siguientes diagramas muestran cómo se puede introducir un dato a los puertos para que sirvan de interface.

5.2 Programación de puertos

 Programación por puerto serial   Programación por puerto paralelo MPLAB DE MICROCHIP Se integra de forma automática, al instalar el compilador PCW.  En versiones anteriores ejecutando el comando: Cscs + setup.

5.1 Tipos de puertos

PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR Cualquier aplicación de un sistema digital basado en un microprocesador o microcontrolador requiere la transferencia de datos entre circuitos externos al microprocesador y él mismo. Estas transferencias constituyen las operaciones llamadas ENTRADA y SALIDA, (input /output ) o ES ( I/O). Los puertos de entrada/salida son básicamente registros externos o internos. Algunos microprocesadores proporcionan señales de control que permiten que los registros externos que forman los puertos de E/S ocupen un espacio de direcciones separada, es decir, distinto del espacio de direcciones de los registros externos que componen la memoria. Cuando los puertos tienen asignado un espacio de direcciones separado, se dice que están en modo de ENTRADA/SALIDA AISLADA o E/S ESTÁNDAR. Por el contrario, cuando se ubican dentro del mismo espacio que la memoria, se dice que están en modo de ENTRADA/SALIDA MAPEADA A MEMORIA o PROYECTADA EN MEMORIA. ENTRAD...

Unidad V: Puertos y buses de comunicación para microcontroladores

OPERACIÓN DE ESCRITURA EN LOS PUERTOS DEL MICROCONTROLADOR 8051.  La operación de escritura, utilizando los puertos puede ser realizada por cualquiera de ellos, no obstante, el puerto PO es el que presenta una mayor cargabilidad, permitiendo comandar ocho cargas TTL - LS, mientras que los otros tres permiten cuatro cargas TTL – LS. Para comandar cargas de mayor consumo energético, como relés, se recomienda utilizar, entre el puerto y la carga drivers no inversores.  Para la operación de ESCRITURA en el puerto, la instrucción más habitual es la siguiente:  MOV PX , ; PX<- dato.  X toma valores 0, 1, 2 y 3 según el puerto.  Admitiendo todos los tipos de direccionamiento.  Si se necesita activar o desactivar un bit de un puerto ( se puede hacer extensivo a todos los registros direccionales bit a bit del SFR), puede hacerlo utilizando las instrucciones booleanas.

4.6 Codificación

A menudo gastamos una gran cantidad de energía diseñando un circuito elegante, bien diseñado y robusto. Hoy día, el cerebro de muchos de estos circuitos es un microcontrolador que necesita un software para funcionar. ¿No es razonable entonces esperar un programa bien diseñado y escrito adecuadamente que se complemente con la calidad del trabajo del circuito? Aparentemente así es. Hablemos de la cualidad del software.Es un hecho muy bien conocido: los errores matan a gente y los errores de programación no son una excepción. Todos los años muere gente debido a errores de programas. Algunos accidentes fatales de avión, helicóptero y coches pueden ser atribuidos a problemas en el software. El mal funcionamiento del ‘firmware’ interno de los dispositivos médicos crea víctimas de manera regular. Los edificios se convierten en humo debido a errores de programa, y algunas personas son asesinadas a machetazos. El software erróneo puede incluso hundir barcos. Creedme, he visto que eso sucede.

4.5 Lenguajes ensambladores

Ventajas:  Permite desarrollar programas muy eficientes:  Uso eficiente de recursos   Código compacto  Control total sobre el tiempo de ejecución de las instrucciones especialmente importante en aplicaciones en tiempo real Desventajas:  „ Programación costosa y difícil de modificar

4.4 Conjunto de instrucciones

Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA (del inglés Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es una especificación que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU. El término describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos.

4.3 Modos de direccionamiento

 Modos de direccionamiento 8051 Dir En el direccionamiento directo, se indica la dirección a operar de forma absoluta. Para la familia de microcontroladores 8051 se dispone de 256 direcciones directas, correspondientes a (Ram interna + Registros SFR).  El OpCode va seguido de un byte que representa la dirección. MOV A,30H ; A<-(30H), El contenido de la dirección 30H se mueve al acumulador ADD A,31H ; A<-(A)+(31H), Se suma el contenido de acumulador con el de la dirección 31H ; el resultado se deposita en el acumulador Por registro (Rn) Rn. Para el direccionamiento por registro el código de la instrucción (OpCode) contiene la información del registro a operar, del banco de registros seleccionado. MOV R1,A ; R1<-(A), El contenido del acumulador se mueve al registro  R1 OpCode de (MOV Rn,A) es F8H, en binario: 1 1 1 1 1 0 0 1 Los tres últimos bits identifican el registro sobre el cual se opera. Indirecto (@) @. Se especifica un registro que contie...

4.2 Estructura de los registros del CPU

Los programas de los microcontroladores suelen dividirse en dos grandes grupos:   La estructura de interrupciones, formada por las rutinas de servicio a las mismas.  El programa principal, que consta de dos partes: La rutina de inicialización del sistema y Un lazo de ejecución perpetua, en donde n perpetua, en donde se ejecutan todas se ejecutan todas aquellas tareas que no estén ligadas a la estructura de n ligadas a la estructura de interrupciones: máquina de estados principal, rutinas no quina de estados principal, rutinas no críticas, inicialización del circuito de vigilancia

4.1 Modelo de programación

 Funciones de un programa de control de procesos:   „ Adquisición y acondicionamiento de datos  „ Control digital directo  „ Supervisión del sistema   „ Control de secuencias  „ Modelos a estudiar  „ Organigramas (diagramas de flujo)   „ Maquinas de estado finita (Finite State Machine--FSM) „   Organigramas  Suelen utilizarse en aplicaciones sencillas o en la planificación de rutinas en las que se divide una aplicación más compleja. Máquina de estados finita (FSM)  Estados: Son las diferentes situaciones en las que puede encontrarse el sistema.   Entradas (señales de transición de estados): Constituyen los acontecimientos que producen los cambios de estado.   Salidas: Respuesta del sistema ante los cambios en las entradas.  Funciones de transición de estado: Descripción detallada, para cada estado, de cuál es el siguiente estado y la salida del sistema, cuando se producen las distintas entradas. La forma en que los r...

UNIDAD IV. Programación de microcontroladores

El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos, aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento del microcontrolador. Todas las instrucciones que el microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal, el código ejecutable se representa con frecuencia como una serie de los números hexadecimales denominada código Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

3.2.1 Generalidades

Origen En 1969, ingenieros de la compañía japonesa BUSICOM, buscan soluciones para fabricar con pocos componentes sus dispositivos (calculadoras), esta proposición se le hizo a INTEL quien en un proyecto dirigido por Marcian Hoff y apoyado por Federico Faggin, logro fabricar un bloque integrado denominado “microprocesador” adquiriendo los derechos de la compañía BUSICOM y entregando al mercado en 1971 el primer microprocesador el 4004 de 4 bits. Como ya se ha mencionado le siguieron el i8008, i8080, el Motorola 6800, Z80, i8085.  En 1976 aparece en el mercado un nuevo dispositivo que incorpora una CPU, memoria RAM - ROM y puertos de I/O, este dispositivo es llamado “microcontrolador” que son microcomputadoras en un solo chip, dos de los mas representativos y primeros microcontroladores fueron: · Intel 8048, con arquitectura Harvard modificada con programa ROM en el mismo chip, RAM de 64 a 256 bytes e interfaz I/O (entrada/salida). · Motorola 6805R2. En la década de los 80’s...