La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

RESUMEN: Softmicro de 8 bits Xilinx

Presentaciones similares


Presentación del tema: "RESUMEN: Softmicro de 8 bits Xilinx"— Transcripción de la presentación:

1 RESUMEN: Softmicro de 8 bits Xilinx
PICOBLAZE RESUMEN: Softmicro de 8 bits Xilinx

2 Procesadores Embebidos de 8 bits
1 Introducción 2 Arquitectura Picoblaze 3 Programación en ensamblador Picoblaze 4 Integración con VHDL

3 Picoblaze Aplicaciones 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

4 Diagrama de un fsmd y un microprocesador

5 Organización básica 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

6 Diagrama a bloques de picoblaze

7 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

8 KCPSM3 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 KCPSM3

9 out_port( salida 8 bits), datos de salida hacia los periféricos de entrada/salida
write_strobe (salida 1 bit) strobe asociado con las operaciones de salida interrupt ( entrada 1 bit) solicitud de interrupción de los periféricos de entrada/salida interrupt_ack (salida 1 bit), reconocimiento de la interrupción hacia los periféricos de entrada/salida KCPSM3

10 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.

11

12 CONJUNTO DE INSTRUCCIONES
MODELO DE PROGRAMACIÓN 57 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

13 FORMATO DE INSTRUCCIÓN

14 FORMATO DE INSTRUCCIÓN

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

16

17 FORMATO DE INSTRUCCIÓN

18 FORMATO DE INSTRUCCIÓN

19 FORMATO DE INSTRUCCIÓN

20 Instrucciones tipo lógicas

21 Aritméticas

22 De prueba y comparación

23 Corrimiento y rotación

24

25 Movimiento de datos

26 Control del flujo de programa

27

28

29 Relacionadas con las interrupciones

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48 Directivas pblaze ide

49 Diferencias entre la sintaxis del kcpsm3 y Pblaze Ide

50 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:

51 Servomotor 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 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).

52 Servomotor Futaba 3003

53 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. 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

54 Algoritmo de Control Servomotor
inicio Leer dato puerto de entrada Contadores y banderas a 0 Poner a 0 el puerto de salida Poner a 1 el puerto de salida Cantidad bajo = 200 – dato puerto de entrada Retardo de 300 µs Contador bajo + 1 no ¿Puerto entrada = contador? si Retardo de 10 µs contador + 1 ¿Cantidad bajo = contador bajo? Retardo de 10 µs no si Retardo de 17.7 ms


Descargar ppt "RESUMEN: Softmicro de 8 bits Xilinx"

Presentaciones similares


Anuncios Google