picoblaze resumen: softmicro de 8 bits xilinx. 1 introducción 2 arquitectura picoblaze 3...

Post on 03-Feb-2016

273 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PICOBLAZE

RESUMEN:Softmicro de 8 bits Xilinx

1 Introducción2 Arquitectura Picoblaze3 Programación en ensamblador Picoblaze4 Integración con VHDL

Procesadores Embebidos de 8 bits

Picoblaze Microprocesador de 8 bits Empotrado en un FPGA Xilinx Soft core Optimizado ocupa 200 celdas lógicas Menos del 5% Spartan 3s200

Aplicaciones Debido a que el desarrollo del software es

usualmente mas fácil que crear hardware a la medida, la opción de un microcontrolador es preferida para aplicaciones no criticas en el tiempo.

Picoblaze requiere 2 ciclos para completar una instrucción

Si el reloj del sistema es de 50 MHz, Picoblaze ejecuta 25 millones de instrucciones por segundo

Diagrama de un fsmd y un microprocesador

Bus de datos de 8 bits ALU de 8 bits con

banderas de acarreo e indicación de cero

16 registros de propósito general de 8 bits

64 byte de memoria de datos

Formato de instrucciones de 18 bits

Bus de direcciones de 10 bits (1024 instrucciones)

Stack de 31 palabras 256 puertos de entrada 256 puertos de salida 2 ciclos de reloj por

instrucción 5 ciclos de reloj para

respuesta de interrupcion

Organización básica

Diagrama a bloques de picoblaze

Top Level HDL modules

Picoblaze es un sistema organizado en 2 módulos de alto nivel en HDL

El modulo KCPSM3 es el procesador Picoblaze

KC

PSM

3

clk (entrada 1 bit), señal de reloj del sistema

reset (entrada 1 bit), señal de reset

address (salida 10 bits), dirección de la memoria de instrucciones, especifica la localidad de donde se va a leer la instrucción

instruction ( entrada 18 bits), instrucción

port_id(salida 8 bits), dirección del puerto de entrada o puerto de salida

in_port(entrada 8 bits), datos de entrada de los periféricos de entrada /salida

read_strobe(salida 1 bit), strobe asociado con la operación de entrada

o out_port( salida 8 bits), datos de salida hacia los periféricos de entrada/salida

o write_strobe (salida 1 bit) strobe asociado con las operaciones de salida

o interrupt ( entrada 1 bit) solicitud de interrupción de los periféricos de entrada/salida

o interrupt_ack (salida 1 bit), reconocimiento de la interrupción hacia los periféricos de entrada/salida

KC

PSM

3

El segundo modulo es para la memoria de instrucciones

Durante el desarrollo

usualmente almacenamos el código ensamblado en la memoria y se configura como una ROM en el lenguaje de descripción de hardware.

CONJUNTO DE INSTRUCCIONES57 INSTRUCCIONES

Instrucciones del tipo: Lógicas Aritméticas De prueba y comparación Corrimiento y rotación Movimiento de datos Control del flujo de

programa Relacionadas con las

interrupciones

MODELO DE PROGRAMACIÓN

FORMATO DE INSTRUCCIÓN

FORMATO DE INSTRUCCIÓN

Comparación y Test

Comp: comparan 2 registros o bien reg – cte y las banderas de Z y C se ponen a 1

FORMATO DE INSTRUCCIÓN

FORMATO DE INSTRUCCIÓN

FORMATO DE INSTRUCCIÓN

Instrucciones tipo lógicas

Aritméticas

De prueba y comparación

Corrimiento y rotación

Movimiento de datos

Control del flujo de programa

Relacionadas con las interrupciones

Directivas pblaze ide

Diferencias entre la sintaxis del kcpsm3 y Pblaze Ide

En matlab: Xlpb_as

Otra manera de ensamblar unprograma es a través de MATLAB. Paraesto, ejecutamos en la ventana decomandos >> cd c:\assembler; xlpb_as-p 'diego.psm'La primera instrucción cdc:\assembler es para ubicarnos en lacarpeta donde guardamos el programa yla segunda xlpb_as -p 'diego.psm' espara ensamblar el programa (se puedeexplorar en detalle el comando xlpb_asejecutando type xlpb_as en la ventanade comandos de MATLAB). Si elprograma no presenta errores, se tiene lasiguiente presentación en pantalla:

Servomotor

Motor de DC

Circuito de retroalimentación un potenciómetro mide la posición del eje, para que el control mantenga la salida con precisión

Control de motor en lazo cerrado

Un controlador externo le dice al servo donde ir con una señal conocida como modulación de pulso proporcional (PPM).

La modulación por ancho de pulso permite un ciclo de trabajo ( el porcentaje de tiempo en alto contra el tiempo en bajo) que es de 0 al 100 porciento del tiempo del periodo

La PPM usa de 1 a 2 ms de salida de los 20 ms posibles de tiempo de periodo para codificar su información

La duración de los impulso indican el Angulo del giro del motor, cada servo motor tiene su margen de operación que corresponden con el ancho de impulso máximo y mínimo que el servo entiende y que mecánicamente no puede sobrepasar

Servomotor Futaba 3003

El periodo entre pulso y pulso no es critico

Se suelen emplear valores entre 10 ms y 30 ms, aunque es habitual utilizar 20 ms que implican una frecuencia de 50 Hz

Para que un servomotor mantenga la misma posición es necesario enviarle continuamente un pulso de ancho constante

Si se deja de enviar pulsos o el intervalo entre pulsos es mayor del máximo permitido entonces el servomotor perderá fuerza y dejara de intentar mantener su posición.

Algoritmo de Control Servomotor

inicio

Leer dato puerto de entrada

Contadores y banderas a 0

Poner a 1 el puerto de salida

Retardo de 300 µs

¿Puerto entrada = contador?

contador + 1

Retardo de 10 µs

no

Poner a 0 el puerto de salida

Cantidad bajo = 200 – dato puerto de entrada

Contador bajo + 1

Retardo de 10 µs

¿Cantidad bajo =

contador bajo?

Retardo de 17.7 ms

si

nosi

top related