lunes, 20 de agosto de 2007

Detalles de las caracteristicas I

-- CPU RISC DE ALTO DESEMPEÑO
El CPU del microcontrolador 16F877 al igual que toda la familia PIC de Microchip son del tipo RISC (Reduced Instruction Set Computer, Computadorta con Conjunto de Instrucciones Reducido) que los hace mas rapidos que los conocidos como CISC. La ventaja radica en la velocidad de procesamiento pues mientras lee la memoria de programa puede estar ejecutando instrucciones, asi cuando termina de ejecutar una instruccion ya tiene lista la otra para sin perder tiempo, en ese siguente ciclo de reloj ejecutarla. Ademas las instrucciones de la memoria de programa son palabras de 14 bit lo que permite un mejor control y desempeño del uC.


-- 35 Instrucciones por aprender
Por ser del tipo RISC, se tiene un reducido set de instrucciones en el cual destaca el uso del registro W (Work Register) que es necesatrio para la mayoria de las instrucciones.
El Set esta formado por instrucciones basicas como las de movimiento de informacion, las Swap, Brincos, Sumas, Funciones logicas, Rotacion de registros, Operaciones de Bit y de retorno, etc.

-- Todas las instrucciones se ejecutan en un solo ciclo de reloj pues como ya habia mencionado al ejecutar una instruccion ya tiene la otra preparada a ser ejecutada sin perder ni un ciclo de reloj. Solo las instrucciones de brinco toman dos ciclos, uno para ver hacia donde brincar y otro para hacerlo. Comparado con otros uC como el 8051 es muy eficaz, pues hay que tomar en cuenta que este ultimo tiene instrucciones de varios ciclos de reloj, son mas lentos debido a que comparten el bus de datos y de lectura de memoria.

-- Hasta 20 MHz de velocidad, esta es la maxima velocidad del PIC segun el fabricante, muy suficiente para instrucciones de control y para algoritmos de control que no lleguen a los de DSP, para estos ultimos busca la serie 18 de Microchip. Algunas personas hacen que el uC funcione mas rapido de lo especificado usando lo que se llama overclocking, del cual puedes encontrar mucha informacion en la red, solo debes tomar en cuenta que su buen funcionamiento no esta garantizado y puede ser que cause fallas, todo depende que tan importante es tu proceso y si realmente es necesaria mas velocidad.

-- Flash 8Kb x 14 bit; la version 16F877A tiene una memoria mejorada y cambia su algoritmo de programacion por lo que muchos programadores de puerto paralelo u otros no lo pueden programar aunque el algoritmo depende del Software utilizado, muchas veces no funcionara si el Hardware no responde. Por eso recomiendo el JDM presentado en este blog :)
-- RAM 368 x 8
-- EEPROM 256 x 8

-- Hasta 14 fuentes de interrupcion; Interrupciones de Timers o Contadores, de los modulos como el convertidor AD, Interrupciones externas, o de comunicacion entre otras.

-- Stack de 8 niveles; Cada vez que se llama a una subrrutina CALL, en el stack se guarda la info del vector anterior, de esa manera al tener la instrucciones RETURN, se lee el valor de ese vector y vuelve al punto de llamado. Asi se puede tener ocho llamadas a subrutina y regresar al punto orginal sin problemas.

-- Direccionamiento Directo, Indirecto y Relativo; cada uno tiene ventajas y desventajas, el mas utilizado es el directo, y solo se debe tener cuidado con el banco en que se esta trabajando. El Indirecto usa un registro para apuntar hacia donde se quiere ir no importa el banco que se este usando.
Google