You are on page 1of 73

El Microcontrolador (C)

Preparado por: jhuircan

Invierno-2012 Versin Preliminar 1.0

Objetivos
Revisin bsica de elementos de P Descripcin Bsica de los C Dar a conocer herramientas bsicas para manejo de C Establecer las modalidades de trabajo

Review Qu es un Procesador?
Es un Circuito Integrado llamado CPU (Central Processing Unit) que contiene en su interior
Registros Unidad Aritmtica Lgica (ALU) Unidad de control (CU) Todos estos elementos unidos a travs de Buses

Concepto de bits
El bits es el digito binario, este puede tomar dos valores 0 o 1 Fsicamente se implementa con seales elctricas de voltaje

1 Un voltaje alto puede representar un 1

0 Un voltaje bajo puede representar un 0

Concepto de bits
La implementacin fsica de los bits depende de la tecnologa utilizada Usando circuitos electrnicos basados TTL 5V 1 0V 0 Otras tecnologas usan otro niveles

Concepto de bits
Por ejemplo en el siguiente nmero 8 bit se tiene
b7 b6 b5 b4 b3 b2 b1 b0

MSB Most Significative Bit

LSB Least Significative Bit

Concepto de bits
Por ejemplo en el siguiente nmero 8 bit se tiene
b7 b6 b5 b4 b3 b2 b1 b0

MSB Most Significative Bit

LSB Least Significative Bit

Concepto de bits
Un nmero 8 bit se llama byte u octeto El conjunto de 1024 bytes se conoce como 1Kbyte (Kilo byte) 1024 Kbytes sern 1Mbyte (Mega byte)

Funcionamiento de una CPU


Un P no funciona solo, este ser parte de un sistema que adems contiene una memoria La memoria contiene un conjunto de instrucciones llamado programa (almacenado) La CPU lee el programa de la memoria y decodifica las instrucciones y las ejecuta

Funcionamiento de una CPU


Las instrucciones son codificadas en binario y son agrupadas en 1, 2 o mas bytes dependiendo de la CPU Cada instruccin tiene 2 partes Cdigo de operacin (OpCode) Dato El OpCode indica lo que hay que hacer con el dato

Funcionamiento de una CPU


Instruccin genrica
COD OP OPERANDO

N-bits

M-bits

Funcionamiento de una CPU


Instruccin usando 2 bytes
COD OP OPERANDO

8-bits

8-bits

Instruccin usando 3 bytes


COD OP OPERANDO 1 OPERANDO 2

8-bits

8-bits

8-bits

Funcionamiento de una CPU


El cdigo de operacin (OpCode) va la unidad de control La unidad de control decodifica el OpCode y le indica a la ALU la operacin debe realizar con los operandos. Para realizar este trabajo la CPU requiere de distintos elementos los que se describen a continuacin

Bus
Consiste en un conjunto de conductores que permiten unir los distintos sistemas Pueden ser direccionales unidireccionales o bi-

Por este camino viajarn las seales

Bus

Donde n o m es el nmero de conductores

Bus

Donde n o m es el nmero de conductores

Bus

Donde n o m es el nmero de conductores

El bus es n o m bits

Bus

Los bits viajan en forma simultanea, uno por cada lnea La transmisin de datos entre sistemas es PARALELA Por los buses indicados viajarn n o m bits

Registros Bsicos
Q Son construidos en base a Flip-Flop

Registros Bsicos
Entrada Q Salida Son construidos en base a Flip-Flop

Control

Registros Bsicos
Entrada Q Salida Son construidos en base a Flip-Flop Pueden almacenar un bit 1 o 0 clock Control El almacenamiento es controlado por la seal clock

Registros Bsicos
Q Una agrupacin de Flip-Flop formar un registro

Registros Bsicos
Q Una agrupacin de Flip-Flop formar un registro

Registros Bsicos
1 Q Debido a que el almacenamiento es simultneo en todos los Flip-Flop, la seal de control debe ser nica

Registros Bsicos
1 Q Para almacenar los bits se requiere que una seal de control active el ingreso al F-F

Registros Bsicos
1 1Q El flanco de subida de un canto de reloj permite el almacenamiento de los bits en el registro

0Q

1 Q

Registros Bsicos
1 1Q Q El traspaso de datos entre registros se hace activando el control del segundo registro

0Q

1 Q

Registros Bsicos
1 1Q 1 Q

0Q

1 Q

Registros con control de salida


1Q

0Q

Mientras no est desactivada, la salida esta en alta impedancia

1 Q

OC

Output Control

Registros con control de salida


1Q 1 Mediante el flanco de subida en OC los bits estarn visibles en el exterior

0Q

1 Q

OC

Transferencia entre registros


11001010 8
CLK OC

CLK OC

Transferencia entre registros


11001010 8
CLK OC

11001010 8

El flanco de reloj controla el acceso al registro

CLK OC

Transferencia entre registros


11001010 8
CLK OC

11001010 8

CLK OC

Transferencia entre registros


11001010 8
CLK OC

11001010 8 El flanco de reloj controla el traspaso al segundo registro

CLK OC

11001010

Registros importantes en una CPU


Registro Acumulador ( llamado A) Registro de Estado (llamado STATUS o F) Registro PC (Program Counter) Registro MAR Registro Stack Pointer Registros de propsito general

Unidad Aritmtica Lgica


La ALU realiza las instrucciones u operaciones matemticos que el usuario requiere Estas instrucciones solicitadas por el usuario son codificadas en binario y almacenadas en una memoria bajo el esquema de un programa El microprocesador lee las instrucciones y las decodifica mediante la Unidad de Control

Unidad Aritmtica Lgica

Registro 2

Registro Acumulador

Seales provenientes de la UC

ALU
Registro Estado

Unidad de Control
Decodifica la instruccin leda de la memoria, extrayendo de ella el cdigo de operacin La decodificacin del cdigo de operacin permite a la Unidad de Control generar las seales de control necesarias para realizar la instruccin

Unidad de Control
instruccin COD OP OPERANDO

Unidad de Control

COD OP

OPERANDO

Generador de tiempos

Unidad de Control

Seales de control

CPU super simplificada


n Bus de datos

REG2

REG1

CU
Clock
Generador de tiempos

ALU Estado Bus de direcciones REG3 PC m k Bus de control

Sistema basado en P

D7-D0
R/W

ROM DEC

RAM

I-O PORT

CPU
Clock

Exterior

A0 A15
IO-RW INT

DECIO

Qu es un Controlador?
Es un Circuito Integrado, basado en un P que adems contiene:
Memoria de Programa no Voltil (EEPROM y/o FLASH) Memoria RAM (Tipo registros) Puertos de Entrada/salida Paralelos Puertos de comunicacin Serial (sincrnicos y Asincrnicos) Conversores A/D (Analog Digital Converter) PWM (Pulse Width Module) Temporizadores (Timer & Counter)

Controlado Bsico
Clock CPU Flash PORTA

RAM

UART

TIMERS

ADC

PORTB

PWM

Controlado Bsico
Clock CPU Flash PORTA

Puertos Paralelos

RAM

UART

TIMERS

ADC

PORTB

PWM

Puerto Serial

Descripcin 1
Memoria RAM, Consiste en un arreglo de registros (Flip-Flop), los cuales habitualmente permiten almacenar datos temporales y registros de control especiales. Por lo general de algunos cientos de bytes. Memoria FLASH, Es la memoria de programa, la cual se graba y borra elctricamente. Puertos Paralelos: Arreglos de Flip-Flops de 8 bit tipo D, los que se pueden configurar de entrada o salida. Puerto Serial asincrnico, consiste en una UART (o equivalente) para la comunicacin tipo RS-232.

Descripcin 2
Puerto serial sincronico, Para comunicacin de alta velocidad, puede ser Serial Sincrnico o I2C (400kbps) ADC, subsistema conversor anlogo-digital PWM, Modulo para generar Modulacin por ancho de pulso Timer, permite generar temporizaciones o contar eventos

Esquema Interno de ATMega 328

Esquema de C PIC 16F873A


CPU PCL RAM File Registers PORTA

FLASH Memoria De Programas

PORTB

PORTC

TIMER0

TIMER1

TIMER2

10bit-ADC

REF Voltaje

COMPARADOR

EEPROM

CCP1,2

USART

Synchronous Serial Port

Observaciones
Los C requieren de un elemento de software para funcionar, es decir, son CI que deben ser programados. Una vez programados estos funcionarn autnomamente al realizar un power-up o un reset. El software va Empotrado en el Chip de tal forma que stos dispositivos pasan a ser llamados Sistemas Empotrados o Sistemas embebidos. Embedded Systems

Aplicaciones
Control Industrial Datalogger (Capturadores de datos) Sensores y Transmisores digitales Robtica Mvil

Todo el mbito de aplicaciones embebidas


Los chips controladores de lavadoras, autoclaves Computadores de automviles Telfonos Celulares MP3 (y todo el audio digital porttil), etc, etc.

Clasificacin
Podemos diferenciar 3 tipos de plataformas
Lo sistema one-chip, en los cuales el C + algunos elementos minimos puede generar una aplicacin. Todo el hardware necesario esta en el Chip. Tarjetas Controladoras, las que pueden estar compuestas por: P + Mem. Externa + Puertos de E/S C + Mem. Externa adicional + Puertos C + Mem.Ext+Puertos de E/S + Controlador Ethernet Tarjetas compuestas por DSP+ ADC y Mem. EXT

ZWorld

Freedom

EasyWeb

Entornos de Desarrollo
El entorno de programacin permite generar un aplicacin de software basada en C para posteriormente traspasarla al CHIP, generando lo que se conoce como aplicacin embebida o Empotrada (Embedded Systems) El entorno permite la generacin de los programas, su compilacin, Debugger y traspaso del programa en lenguaje de maquina al chips. Para el C PIC se puede usar el MPLAB de Microchips, el cual permite trabajar con distintas familias de PIC, varios grabadores y compiladores. Para la serie MCS8051 y TMS430 se tiene el IAR que opera con distintos fabricantes.

PICStart

Olimex

Lo que se viene (o ya esta)


La conectividad de los primeros C era muy sencilla. La UART permiti implantar el estndar RS232 en los 70. Comunicacin pto. a pto. La Philipps desarrollo el I2C (a fines de los 80??) que permiti conectar varios C entre si y/o perifricos (IIC-Inter Integrated Circuit). Multipunto. Posteriormente aparecen las tarjetas tipo tini, basadas en C de 8 bit con memoria mas externa y el controlador ethernet, lo que permite incorporar IP. Estas tarjetas pueden ser vistas como maquinas IP

Hoy, Zigbee-Alliance promueve un estndar inalmbrico, el cual permite dotar a los C de pequeos Tranceivers los cuales son TxRx de radio (a 2.4GHZ) de muy bajo consumo (1 ao con pilas AA). Este protocolo permite configurar los sistemas como una malla de dispositivos inalmbricos. Al dotar estos C con radio de ADC y sensores de T, acelermetros, estamos en presencia una red de Sensores Inteligentes Inalmbricos (Wireless Sensor Networks)

Otras Plataformas en Preparacin


Plataforma Jennic 5139 Zigbee

Otras Plataformas en Preparacin


TS 7200

ARM + Linux Empotrado

El C PIC 16F873A Microchip


Es un C de 8 bit muy verstil, posee 4Kb de Memoria de programa FLASH. Tiene 5 canales ADC 2 PWM 3 Timers Un Modulo SPI (Serial Port Interface) que permite
UART I2C Serial sincrnico de alta velocidad

Puertos Paralelos

Modalidades de Trabajo con Controladores


Existen diversas formas de enfocar el trabajo con C, previo al desarrollo de la aplicacin Para ello se deben considerar los siguientes aspectos
El C no funciona solo, requiere de algunos componentes externos para su trabajo La verificacin del funcionamiento del dispositivo no es explicita, sino que se debe preparar una mini-plataforma para sto. Se deben considerar las limitaciones del dispositivo versus la aplicacin deseada para ver la factibilidad El C debe ser programado

Cmo se Programa el C ?
Se puede programar usando lenguaje de Mquina a travs del uso de los Pnemnicos del assembler Se puede usar un lenguaje de alto nivel como el C o el Basic. Lo ms recomendado hoy es usar el lenguaje C debido a la portabilidad del cdigo y a que contiene muy pocas palabras reservadas No es un lenguaje facil, pero es menos engorroso que el assembler. Una vez que se realiza la aplicacin, se compila esto trae como consecuencia el cdigo de maquina. Luego este cdigo debe ser transferido al C

Esquema bsico para uC PIC


Requerimientos de Hardware
1 C XTAL, 2 cap 22pF, 1 R de 1K Fuente de 5V 1 protoboard Conectores

Requerimientos de Software
MPLAB Compilador CC5x

Grabador
PicStart Olimex Otros

Esquema bsico
Requerimientos de Hardware
1 C XTAL, 2 cap 22pF, 1 R de 1K Fuente de 5V 1 proto-board Conectores Plataforma de Evaluacin

Requerimientos de Software
MPLAB Compilador CC5x

Grabador
PicStart Olimex Otros

Esquema bsico 1
Requerimientos de Hardware
1 C XTAL, 2 cap 22pF, 1 R de 1K Fuente de 5V 1 proto-board Conectores Plataforma de Software

Requerimientos de Software
MPLAB Compilador CC5x Conectores

Grabador
PicStart Olimex Otros

Esquema bsico 1
Requerimientos de Hardware
1 C XTAL, 2 cap 22pF, 1 R de 1K Fuente de 5V 1 protoboard

Requerimientos de Software
MPLAB Compilador CC5x Conectores

Grabador
PicStart Olimex Otros

Plataforma de traspaso de aplicacin

Esquema 2 Tipo Arduino


Requerimientos de Hardware
Tarjeta uC uC + componentes

Requerimientos de Software
IDE Arduino Conector USB

Grabador
Tarjeta Arduino

El lenguaje C como apoyo


Los lenguajes de alto nivel como el C son utilizados debido a la portabilidad del cdigo de la aplicacin, pudiendo se utilizados en otros C (??) Permite la elaboracin del algoritmo en forma mas simple

El lenguaje C como apoyo


El compilador se encargar de generar el cdigo de maquina correspondiente El no es un lenguaje simple pero si se llega a dominar puede ser una herramienta bastante poderosa

You might also like