.:  
.: Inicio
      SISTEMAS EMBEBIDOS

MATERIA: SISTEMAS EMBEBIDOS
CÓDIGO: IEO - 944
CREDITOS: 4
HORAS TEÓRICAS: 4
HORAS PRÁCTICAS: 3
VALIDABLE: NO
OBLIGATORIA: NO
PROPIA: SI
HABILITABLE: NO
ELECTIVA: SI
SERVICIO: NO
PRE-REQUISITOS: IEO-924
CO-RREQUISITOS: NINGUNO
PÁGINA WEB: http://microe.udea.edu.co/download/materias/sistemas-embebidos
PROFESOR: Luis Germán García Morales (lgerman@udea.edu.co)

      DESCRIPCIÓN

    En este curso se presentan los fundamentos del diseño de las componentes de hardware y software de sistemas embebidos. El curso está orientado a prácticas de laboratorio en las que se desarrollan sistemas embebidos de aplicación práctica. Para tal fin se presentan metodologías de diseño adecuadas para resolver problemas que no tienen una única solución, partiendo de un conjunto de especificaciones y ajustándose a un conjunto de restricciones.

    En la parte del diseño de software se analizan diferentes técnicas de programación de sistemas embebidos usando el lenguaje C. Además, se incluye una revisión a los sistemas operativos, útiles cuando se tienen sistemas embebidos de mediana/alta complejidad.

    En la parte del diseño de hardware se presentan técnicas comunes para la interconexión de sistemas embebidos con sistemas de entrada y salida de datos como displays, motores, dispositivos seriales, convertidores análogo a digital, entre otros.

    Para la realización de las prácticas se utilizan microcontroladores de la familia HC08 de Freescale así como microprocesadores ColdFire. A medida que el curso transcurre se hace una revisión de la arquitectura y de las unidades funcionales de ellos, a la vez que son utilizados en el laboratorio para la realización de las prácticas de manera que se afiancen los conceptos vistos en el curso teórico.

Volver Arriba

      OBJETIVOS
  • Comprender que es un sistema embebido entendiendo su importancia, límites, restricciones, áreas de aplicación y requerimientos de diseño.
  • Conocer y emplear las diferentes unidades funcionales que conforman un sistema embebido tales como unidad central de procesamiento, memorias, entradas/salidas, conversores y periféricos.
  • Utilizar lenguajes de alto nivel (HLLs) en el desarrollo de aplicaciones para sistemas embebidos.
  • Desarrollar la programación de sistemas embebidos usando programación eficiente y orientada al bajo consumo.
  • Generar un ambiente de diseño real donde los estudiantes se enfrenten a: limitaciones de costo, tiempo de desarrollo, consumo de potencia, desempeño, necesidad de trabajo en equipo y divulgación de resultados.
  • Implementar sistemas operativos en sistemas embebidos para el desarrollo de aplicaciones de mediana/alta complejidad.
  • Realizar prácticas y proyectos en el curso que afiancen los conocimientos adquiridos.

Volver Arriba

      METODOLOGÍA

    El curso se desarrolla mediante exposiciones por parte del profesor sobre los temas fundamentales de la tecnología de los sistemas embebidos orientado a sistemas computacionales basados en microprocesadores/microcontroladores. Las charlas se complementan con lecturas adicionales de los estudiantes, para tal fin se presenta bibliografía de textos y artículos sobre el tema.

    El curso es fundamentalmente práctico y se orienta por una metodología de trabajos prácticos. El propósito es colocar a los estudiantes en un ambiente real de diseño de sistemas embebidos con limitaciones de: costo, tiempo de desarrollo, consumo de potencia, desempeño, necesidad de trabajo en equipo y divulgación de resultados.

    El curso se estructura alrededor de las prácticas de laboratorio y los proyectos. Las prácticas buscan aplicar conceptos específicos sobre sistemas embebidos además de generar módulos de software y hardware que puedan ser utilizados en posteriores desarrollos. El proyecto final consiste en el desarrollo de un sistema embebido de mediana complejidad, de aplicación práctica y que resuelva un problema real. Este incluye el diseño completo de hardware y software a partir de unas especificaciones funcionales y de un conjunto de restricciones, además de la escritura de un informe o paper.
    Para analizar los conceptos desarrollados durante el curso se realizan algunos exámenes individuales.

Volver Arriba

      EVALUACIÓN

    El curso será evaluado de la siguiente forma:

  • Dos parciales del 16% cada uno. 32% en Total.
  • Quices, participación, talleres y consultas 10%.
  • Laboratorio 40%
  • Proyecto Final 18%

Volver Arriba

      CONTENIDO

SECCIÓN 1. CONCEPTOS GENERALES SOBRE SISTEMAS EMBEBIDOS

TEMA 1. Introducción a los Sistemas Embebidos.

  • Definición.
  • Importancia.
  • Términos y límites.
  • Áreas de aplicación.
  • Características.
  • Requerimientos.
  • Fases de diseño
  • Orientación del curso.

TEMA 2. Componentes principales de un Sistema Embebido

  • Diagrama de bloques de un sistema embebido.
  • Entradas: Sensores, muestreadores y conversores A/D.
  • Comunicación: Requerimientos, robustez eléctrica y comportamiento.
  • Unidades de procesamiento.
    • Introducción.
    • Circuitos de aplicación específica (ASIC).
    • Procesadores: Visión general, DSP, Multimedia, VLIW y Microcontroladores.
  • Lógica reconfigurable.
  • Memorias: Acceso aleatorio, seriales y MMU.
  • Salidas.
  • Conversores D/A.
  • Actuadores.
  • Desarrollo de boards. (Lab.)

TEMA 3. Unidades Centrales de Procesamiento

  • Microprocesadores, Microcontroladores y DSPs.
    • Arquitecturas comerciales.
    • Características de algunos de ellos.
    • Microprocesadores ColdFire.
    • Microcontroladores HC08, HCS08, HCS12, 568XX/56F8XX.
  • Microcontroladores HC08 (Repaso).
    • Importancia de los MCUs en un sistema embebido.
    • Arquitectura, modelo de programación y modos de direccionamiento.
    • Conjunto de instrucciones.
    • Resets, fuentes de interrupción, enmascaramiento.
    • Características eléctricas.
    • Programación y puesta en marcha. Sistema de desarrollo. (Lab.)

SECCIÓN 2. DESARROLLO DE SOFTWARE PARA SISTEMAS EMBEBIDOS

TEMA 1. Introducción al lenguaje C

  • Caso de estudio: HC08/ColdFire.
  • Presentación del lenguaje.
  • Generalidades de C.
  • Palabras reservadas y operadores.
  • Acceso al mapa de memoria de una CPU y uso de Interrupciones.
  • Un primer programa en C para MCUs HC08 en CodeWarrior.
  • Aplicación: Utilización de la IRQ y el KBI de los HC08.

TEMA 2. Compiladores y Enlazadores

  • Compiladores.
  • Cross-Compiladores.
  • Enlazadores.
  • ToolChains.
  • Simuladores.
  • Depuradores.

TEMA 3. Lenguaje C para Sistemas Embebidos y Aplicaciones

  • El preprocesador y directivas del lenguaje.
  • Máscaras.
  • Aplicación: Utilización del TIMER como base de tiempo.
  • Conceptos avanzados sobre variables.
    • Tipos de datos.
    • Tipos de variables.
    • Constantes.
    • Optimización.
  • Funciones y lenguaje ensamblador. Manejo de subrutinas, parámetros en las subrutinas y el Stack.
  • Implementación de interrupciones.
  • Aplicación: Código modular para la IRQ, el KBI y el TIMER.
  • Metodología de eventos.
    • Eventos.
    • Interrupciones.
    • Atención.
    • Modos de bajo consumo.
  • Aplicación: Conversor A/D. Metodología de eventos.
  • Estructuras de control.
  • Arreglos.
  • Estructuras de datos.
  • Aplicación: Implementación de banderas con uniones y estructuras.
  • Punteros y acceso directo a la memoria.
  • Conceptos avanzados sobre funciones, parámetros por referencia y punteros a funciones.

TEMA 4. Aplicaciones

  • Comunicación serial UART.
    • Metodología de FIFOs.
    • Transmisión haciendo uso de interrupciones.
  • Memorias EEPROM y RTCs. El protocolo I2C.
    • Software del control para el driver.
    • Aplicaciones.
  • Displays gráficos y de caracteres.
    • Software del control para el display.
    • Aplicaciones.
  • Generación de PWM y medida de tiempos.
    • Captura de eventos.
    • Medida de frecuencia/ancho dureza.
    • Generación de PWM.

SECCIÓN 3. SISTEMAS OPERATIVOS ORIENTADOS A SISTEMAS EMBEBIDOS

TEMA 1. Visión general

  • Consideraciones sobre el Hardware.
  • Componentes de Software.
    • Software de Sistema y de Aplicación.
    • Definición de Sistema Operativo.
    • Tipos de Sistemas Operativos.
    • Conceptos sobre Sistemas Operativos.
    • Funciones de un Sistema Operativo.
    • Kernel o núcleo.

TEMA 2. Sistema Operativo Embedded Linux

  • Sistema Operativo Linux/Embedded Linux
  • Visión general.
  • Características del kernel.
  • Arquitectura del kernel.
    • Llamadas al sistema.
    • Gestión de procesos.
    • Gestión de memoria.
    • Drivers.
    • Sistema de archivos.
  • Funcionalidad del kernel.
    • Arranque.
    • Llamadas al sistema.
    • Los procesos.
    • Interrupciones y excepciones.
    • Sincronización.
    • Medidas de tiempo.
    • Administración de la memoria.
    • Planificador de procesos.
  • Diferencias entre Linux y uClinux.

TEMA 3. Implementación de Embedded Linux en la ColdFire

  • Implementación de Linux en un sistema de desarrollo.
    • Herramientas interplataforma, cross-compiladores.
    • Utilidades.
    • Imagen del kernel y el sistema de archivos.
    • Distribución uClinux, configuración e instalación.
    • Implementación.
  • Aplicaciones para el sistema.

Volver Arriba

      BIBLIOGRAFÍA
  • Peter Marwedel, Embedded System Design. Kluwer Academic Publishers.
  • Ed Sutter CMP Books, Embedded Systems Firmware Demystified.
  • Jonathan Valvano, Developing Embedded Software in C Using ICC11/ICC12/Hiware.
  • Jonathan Valvano, Embedded microcomputer systems, Real time interfacing, Brooks/Cole, 2000.
  • Álvaro Pérez Roldán, Programación de un microprocesador con la ayuda de lenguaje C, U. de A., 1997.

Información Técnica

  • James M. Sibigtroht, Understanding small microcontrollers, Motorola, 1998.
  • CPU08RM/AD, Central Processor Unit Reference Manual, Motorola.
  • MC68HC908GP32/D, MC68HC908GP32 Advance Information, Motorola.
  • MC68HC908AP64/D, MC68HC908AP64 Advance Information, Motorola.
  • TIM08RM/AD, Timer Interface Module Reference, Motorola.
  • CPU12RM/AD, CPU12 Reference manual, Motorola, 1998.
  • MC68HC912B/D, MC68HC912B family advance information, Motorola, 2000.
  • Programmer’s Reference Manual, ColdFire Family. Freescale Semiconductor.
  • MCF5407 ColdFire, Integrated Microprocessor User’s Manual. Freescale Semiconductor.
  • Información de Internet.

Volver Arriba

E
  Login:
  Clave:
  Servidor:
E
 
E
La Web
Páginas en español
Páginas de Colombia
E
Acerca de | Contactenos | ©Septiembre de 2006 Grupo de Microelectrónica y Control - Universidad de Antioquia                         Diseñado por MEAG
Universidad de Antioquia