Sie sind auf Seite 1von 54

PICOBLAZE

RESUMEN:
Softmicro de 8 bits Xilinx
Procesadores Embebidos de 8 bits

1 Introducción
2 Arquitectura Picoblaze
3 Programación en ensamblador Picoblaze
4 Integración con VHDL
 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 Organización
instrucciones)
 Stack de 31 palabras básica
 256 puertos de entrada
 256 puertos de salida
 2 ciclos de reloj por
instrucción
 5 ciclos de reloj para
respuesta de
interrupcion
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
 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

KCPSM3
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

KCPSM3
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
 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 INSTRUCCIONES
MODELO DE
57 INSTRUCCIONES PROGRAMACIÓN

 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
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 un
programa es a través de MATLAB. Para
esto, ejecutamos en la ventana de
comandos >> cd c:\assembler; xlpb_as
-p 'diego.psm'
La primera instrucción cd
c:\assembler es para ubicarnos en la
carpeta donde guardamos el programa
y
la segunda xlpb_as -p 'diego.psm' es
para ensamblar el programa (se puede
explorar en detalle el comando xlpb_as
ejecutando type xlpb_as en la ventana
de comandos de MATLAB). Si el
programa no presenta errores, se tiene
la
siguiente presentación en pantalla:
Servomotor  La modulación por ancho de
pulso permite un ciclo de trabajo
 Motor de DC ( el porcentaje de tiempo en alto
contra el tiempo en bajo) que es
de 0 al 100 porciento del tiempo
 Circuito de retroalimentación un del periodo
potenciómetro mide la posición
del eje, para que el control  La PPM usa de 1 a 2 ms de salida
de los 20 ms posibles de tiempo
mantenga la salida con precisión de periodo para codificar su
información
 Control de motor en lazo
cerrado  La duración de los impulso
indican el Angulo del giro del
motor, cada servo motor tiene su
 Un controlador externo le dice al margen de operación que
corresponden con el ancho de
servo donde ir con una señal impulso máximo y mínimo que el
conocida como modulación de servo entiende y que
pulso proporcional (PPM). mecánicamente no puede
sobrepasar
Servomotor Futaba 3003
 El periodo entre pulso y pulso no  Para que un servomotor
es critico mantenga la misma posición es
necesario enviarle
continuamente un pulso de
 Se suelen emplear valores entre ancho constante
10 ms y 30 ms, aunque es
habitual utilizar 20 ms que
implican una frecuencia de 50  Si se deja de enviar pulsos o el
Hz 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 inicio
Servomotor
Leer dato puerto
de entrada

Contadores y Poner a 0 el puerto


banderas a 0 de salida

Poner a 1 el puerto Cantidad bajo =


de salida 200 – dato puerto
de entrada
Retardo de 300 µs
Contador bajo + 1

no ¿Puerto si Retardo de 10 µs
contador + 1 entrada =
contador?

¿Cantidad bajo
Retardo de 10 µs = contador
no bajo?
si

Retardo de 17.7 ms

Das könnte Ihnen auch gefallen