Sie sind auf Seite 1von 8

Curso de sistemas embebidos

18 de noviembre de 2010

Introduccin Embebidos
Contenido
I. II. III. IV. V. VI.

los

Sistemas

Definicin ............................................................................................................. 2 Historia de la Computacin .................................................................................. 2 Conceptos bsicos ................................................................................................. 4 Microcontroladores Freescale: Familia HCS08 .................................................... 7 Adopcin del Lenguaje C ..................................................................................... 7 Bibliografa ........................................................................................................... 8

Curso de sistemas embebidos

18 de noviembre de 2010

I.

Definicin

Un sistema embebido (ES por embedded system) es un sistema de computacin (1) diseado especficamente para realizar una determinada cantidad y tipo de funciones. Se le denomina embebido porque suele ir empotrado al sistema para el que fue diseado. Tambin suele decirse que un ES es un sistema basado en un microcontrolador o un microprocesador de prestaciones limitadas. Segn el diccionario de la Real Academia Espaola: Embeber: 3ra. Dicho de una cosa: Contener, encerrar dentro de s a otra. Por lo tanto un sistema embebido es: Sistema contenido en la aplicacin para la que fue diseado. Esta caracterstica de estar embebido en otro sistema trae consigo los requerimientos de: tamao reducido, bajo consumo de energa, etc.

II.

Historia de la Computacin

Las primeras mquinas con capacidad de cmputo datan de 1623 (La calculadora automtica de Wilhelm Schickard (2)) y 1642 (La Pascalina de Blaise Pascal (3)). Estas eran mquinas puramente mecnicas, con capacidad para realizar nicamente operaciones de adicin. En 1671, el matemtico y filsofo alemn Gottfried von Leibniz dise la Staffelwalze, la primera mquina mecnica con capacidad para realiza las cuatro operaciones bsicas (4). Todas estas mquinas eran artilugios mecnicos sin capacidad de programacin. Las primeras mquinas programables datan del siglo XIX y eran muy diferentes de lo que conocemos ahora como computadoras programables. La tejedora de Jacquard es probablemente la primera mquina que pudo ser programada por el usuario, mediante el uso de tarjetas perforadas fue posible programar a la mquina para realizar complejos tejidos textiles. Algunos aos despus, en 1837, Charges Babage dise la Analytical Engine o mquina analtica, por razones de complejidad tcnica nunca la llego a construir completamente; pero la recordamos porque en su diseo se incluyen todos los componentes de las computadoras de hoy en da (5). El progreso de las computadoras dio un salto en el censo de de 1980 de los Estados Unidos, la contabilidad de este censo se realiz con la Mquina tabuladora de Herman Hollering (fundador de IBM) (6). Estas mquinas tabuladoras usaban tarjetas perforadas y permitieron realizar el conteo del censo de 1890 en 18 meses, lo cual es poco comparado con los 7 aos que tard el
2

Curso de sistemas embebidos

18 de noviembre de 2010

conteo del censo de 1880. Aunque estas mquinas no eran programables constituyeron un importante paso hacia las computadoras programables. La Atanasoff-Berry Computer (ABC) diseada y construida en 1914 en el Iowa State College por John Vincent Atanasoff, fue la primera computadora electrnica de Amrica, diseada especficamente para resolver ecuaciones lineales. A pesar de no ser programable la ABC introduce algunos conceptos importantes como (7): Un sistema organizado con unidades separadas, de computacin y memoria. Una memoria regenerativa basada en alrededor de 3200 capacitores que le daban una capacidad de almacenamiento de 60 nmeros de 50 bits Un sistema completo de funciones aritmticas y lgicas, implementado con alrededor de 280 tubos de vaco Un sistema de entrada y salida La primera computadora digital (binaria) programable del mundo fue la Z3 (7), diseada y construida por el ingeniero alemn Konrad Zuse en 1941. Esta computadora usaba alrededor de 2000 rels para implementar los switch y por lo tanto es una computadora electromecnica. Sus programas eran almacenados externamente en una cinta magntica. La Z3 contena todas las caractersticas de una computadora moderna, excepto las instrucciones de salto (7). En 1943, los investigadores de la Post Office Research Station, en Dollis Hill, Inglaterra, presentaron un prototipo de una de las primeras computadoras electrnicas: El Coloso Mark 1. Esta computadora fue usada para ayudar a descifrar los mensajes de la armada Nazi durante la Segunda Guerra Mundial. Otra computadora famosa de la poca fue la ENIAC (Electronic Numerical Integrator And Computer), una computadora electrnica diseada y construida por la el Laboratorio de investigacin en balstica de la armada de los Estados Unidos, en 1946 ayud a calcular las tablas de disparo de la artillera y otros clculos matemticos complejos (Tambin fue usada para el diseo de la primera bomba atmica). La ENIAC fue una computadora enorme: Estaba compuesta de 17468 tubos, 7200 diodos de cristal y alrededor de 4100 elementos magnticos (tales como rels). Su consumo estimado de potencia fue de 174KW y necesitaba de un sistema especial de aire acondicionado para funcionar. Ocupaba una superficie de 168m2. No era una computadora binaria si no decimal, tena 20 acumuladores de 10 dgitos decimales. Funcionando a una frecuencia de 100KHz poda realizar 5000 operaciones simples de suma o resta, 385 multiplicaciones, 40 divisiones o 3 races cuadradas por segundo.

Curso de sistemas embebidos

18 de noviembre de 2010

Otra caracterstica importante de la ENIAC es que su programa fue cableado internamente, esto constitua un primer ejemplo de un mecanismo de programa de solo lectura. Otra famosa e importante computadora fue la Automatic Sequence Controlled Calculator (ASCC) (ms conocida como MARK 1) diseada por Howard H. Aiken de la Universidad Harvard y construida por IBM en 1944. La ASCC fue una computadora electromecnica y tena memorias separadas para el almacenamiento de instrucciones y para los datos. Esta arquitectura es ahora conocida como Arquitectura Harvard (7). Otra computadora, la Selective Squence Electronic Calculator (SSEC), construida por IBM en 1948, implmentaba otro enfoque para la arquitectura interna: un espacio de memoria unificado donde la memoria y los datos son almacenados. Esta arquitectura se conoce como Arquitectura Von Newmann o Arquitectura Princeton Estas dos arquitecturas (Von Newmann y Harvard) todava son usadas en las computadoras moderas. La Figura 1 muestra diagrama simplificado de las dos arquitecturas.
Memoria de datos y programa Memoria de datos

CPU
Perifricos

CPU

Memoria de programa

Perifricos

(a)
Bus de direccin Bus de datos

(b)
Bus de control

Figura 1 (a) Arquitectura Von Newmann o Princeton. (b) Arquitectura Harvard

La arquitectura Von Newmann se caracteriza por el uso de un mismo espacio de memoria para almacenar tanto datos como instrucciones La arquitectura Harvard difiere de la anterior en que implementa espacios de memoria separados, uno para los datos y otro para las instrucciones.

III.

Conceptos bsicos

Antes de comenzar con el estudio del diseo y programacin de aplicaciones embebidas con Microcontroladores, es importante conocer algunos conceptos importantes acerca de electrnica y programacin.
4

Curso de sistemas embebidos

18 de noviembre de 2010

La electrnica es la ciencia del estudio y aplicacin de la electricidad (movimiento de carga elctrica) con componentes (resistores, capacitores, inductores, semiconductores, etc.) para construir complejos circuitos electrnicos que puedan interactuar con los seres humanos o con la naturaleza. Es importante centrar nuestra atencin en reas especfica del universo de la electrnica, para poder entender la manera en que los MCU trabajan y cmo usarlos para construir circuitos y equipos que puedan sernos tiles. Nosotros interactuamos a diario con seales analgicas cuyas magnitudes se pueden dividir indefinidamente y suelen expresarse en sistemas de numeracin naturales como el decimal, sexagesimal, etc. Sin embargo las computadoras modernas son mquinas binarias, que trabajan con un lgebra en la slo existen el 0 y el 1. Las pelculas, fotos, msica y todo lo que podemos percibir de las computadoras est compuesto internamente de solo 0s y 1s. La razn por la que usamos el sistema binario en lugar de algn otro sistema digital o analgico es simple de explicar: 1. Teniendo solo dos niveles de voltaje podernos realizar fcilmente diseos electrnicos usando transistores como switches, con lo cual podemos conseguir los niveles lgicos: 0V para el 0 lgico y +3 o +5V para el 1 lgico. 2. Las matemticas de las computadoras modernas estn basadas en el lgebra de Bool, creada por Geoge Bool (Matemtico y filsofo britnico del siglo XVIII) Al combinar el lgebra de bool y los circuitos digitales obtenemos unos circuitos lgicos digitales que se pueden implementar con compuertas lgicas (NOT, OR, AND y combinaciones de estas i.e. X-OR) organizadas en forma de circuitos lgicos secuenciales y/o combinacionales, esta es la base fundamental de la Unidad Central de Procesamiento (CPU) de los microprocesadores. Para entender el funcionamiento de los microprocesadores, primero debemos comprender algunos conceptos bsicos acerca de la programacin. Un programa es la codificacin, en un lenguaje computacional, de un algoritmo lgico creado para resolver un problema especfico. Una vez que se tiene creado el algoritmo, el siguiente paso es codificarlo en un lenguaje computacional, usando el cdigo binario. Para este fin se agrupan los bits en secuencias ordenadas que representen nmeros, instrucciones o cualquier cosa que la CPU requiera. Cada computadora, microcomputadora, microprocesador, microcontrolador, etc. Reconoce algunas secuencias de bits como instrucciones (rdenes vlidas). Estas instrucciones son rdenes como: sumar nmeros, almacenar alguna entrada en memoria, saltar a otra posicin del programa, etc. La CPU es responsable de leer estas instrucciones de la memoria, interpretarlas y finalmente ejecutarlas.

Curso de sistemas embebidos

18 de noviembre de 2010

A los grupos de bits que constituyen una instruccin se les suele llamar Operation Codes (Abreviado como opcodes). Cabe resaltar que diferentes CPUs tienen diferentes opcodes por lo tanto una aplicacin programada para una CPU en particular no necesariamente funciona en otra CPU diferente. La Figura 2 muestra un diagrama simplificado de la ejecucin de un opcode.

Buscar la siguiente instruccin en la memoria Decodificar la instruccin

Procesar la instruccin

Almacenar los resultados

Figura 2 Algoritmo de ejecucin de una instruccin

Dentro de la CPU podemos encontrar algunos mdulos importantes: El decodificador de instrucciones (responsable de la decodificacin de cada opcode), el contador de programa (PC por Program Counter, contador que controla la secuencia del programa), la unidad aritmtica lgica (ALU, responsable de los clculos en la CPU) y el acumulador, adicionalmente se pueden encontrar otros registros de propsito general (e.g para el almacenamiento temporal de los resultados). La mayora de las CPUs incluyen algn tipo de memoria interna. La clula bsica de almacenamiento en este caso es el registro, estos son generalmente usados para el almacenamiento temporal de datos y para el control de las operaciones en la CPU. Los registros ms importantes en casi todas las arquitecturas de Microcontroladores son el contador de programa (PC). Y el acumulador (A). El contador de programa es el registro responsable del control y secuencia del flujo del programa, siendo, en la mayora de los casos, una mquina secuencial o mquina de estados. La CPU necesita almacenar necesita ejecutar una secuencia de instrucciones almacenada en algn tipo de memoria. La funcin del PC es apuntar a la direccin de memoria donde la siguiente instruccin que ser ejecutada est almacenada. El acumulador es generalmente usado como un operando en operaciones aritmticas y lgicas, el otro operando puede ser otro registro o un valor obtenido de la memoria. Otro importante componente de la CPU es la ALU. Este es un circuito lgico combinacional usado por todas las instrucciones aritmticas y lgicas. En la mayora de sistemas la ALU tiene dos entradas (los operandos de las operaciones); una es
6

Curso de sistemas embebidos

18 de noviembre de 2010

generalmente conectada al acumulador y la otra est conectada a algn registro o valor ledo de memoria. A menudo el resultado de la operacin realizada en la ALU se almacena en el acumulador. En 1950 se desarroll un lenguaje de programacin denominado de ensamble, para evitar que los programadores tuvieras que escribir los opcodes en cdigo binario. El lenguaje de ensamble es una representacin nemotcnica de cada opcode. Mediante el uso de un programa especial (el ensamblador) se traduce directamente las declaraciones del cdigo de ensamble a cdigo binario.

IV.

Microcontroladores Freescale: Familia HCS08

La historia de esta familia se remonta a 1979, cuando Motorola desarrolla los primeros MCUs de 8 bits (M6805, M146805 y MC6800). Las mejoras en la tecnologa del silicio posibilitaron la creacin de la familia M68HC05 (tecnologa CMOS), aos despus otras mejoras en los M68HC05 dieron como resultado la creacin de la familia HC08; estos chips se caracterizaron por un buen soporte para su programacin en C gracias a la inclusin de un registro extra (H, nuevos modos de direccionamiento e instrucciones). En los ltimos aos la aparicin de la familia HCS08 ha trado mejoras en tres frentes: La inclusin de un hardware de depuracin, aumento de la velocidad del reloj y reduccin del consumo general de potencia.

V.

Adopcin del Lenguaje C

Algunas de las razones que condujeron al uso del lenguaje C para la programacin de sistemas embebidos son las siguientes: La facilidad de aprendizaje y programacin (comparado con el lenguaje de ensamblado), disminuyendo.la curva de aprendizaje para un nuevo MCU. La portabilidad del cdigo, dando la posibilidad al programador de reusar cdigo ya escrito y probado en otras plataformas. Alta eficiencia. Actualmente, el lenguaje C es un estndar en la programacin de Microcontroladores en el desarrollo de cdigo comercial (lo cual no significa que el conocimiento del lenguaje de ensamblado sea innecesario).

Curso de sistemas embebidos

18 de noviembre de 2010

VI.

Bibliografa
embebidos. [En lnea] 2010.

1. Colaboradores de Wikipedia. Sistemas http://es.wikipedia.org/wiki/Sistema_embebido.

2. . Biografa de Wilhelm Schickard. http://es.wikipedia.org/wiki/Wilhelm_Schickard.

[En

lnea]

2010.

3. . La pascalina. [En lnea] http://es.wikipedia.org/wiki/Pascalina. 4. . Biodraga de Leibniz. [En lnea] http://es.wikipedia.org/wiki/Gottfried_Leibniz. 5. . Biofraga de Charles http://es.wikipedia.org/wiki/Charles_Babbage. Babbage. [En lnea] 2010.

6. . Biografa de Herman Hollerith. http://es.wikipedia.org/wiki/Herman_Hollerith.

[En

lnea]

2010.

7. Pereira, Fbio. HCS08 Unleashed. s.l. : Auto pubish, 2009. ISBN: 1-4196-8592-9. 8. Galeano, Gustavo. Programacin de Sistemas Embebidos en C. Bogot : Alfaomega Colombiana S.A., 2009. ISBN 978-958-682-770-6. 9. Colaboradores de Wikipedia. La mquina tejedora de Jacquard. [En lnea] 2010. http://en.wikipedia.org/wiki/Jacquard_loom.

Das könnte Ihnen auch gefallen