PICOBLAZE
PICOBLAZE
RESUMEN:Softmicro de 8 bits Xilinx1 Introduccin2 Arquitectura Picoblaze3 Programacin en ensamblador Picoblaze4 Integracin con VHDLProcesadores Embebidos de 8 bitsPicoblazeMicroprocesador de 8 bitsEmpotrado en un FPGA XilinxSoft coreOptimizado ocupa 200 celdas lgicasMenos del 5% Spartan 3s200
AplicacionesDebido a que el desarrollo del software es usualmente mas fcil que crear hardware a la medida, la opcin de un microcontrolador es preferida para aplicaciones no criticas en el tiempo.Picoblaze requiere 2 ciclos para completar una instruccin Si el reloj del sistema es de 50 MHz, Picoblaze ejecuta 25 millones de instrucciones por segundoDiagrama de un fsmd y un microprocesador
Bus de datos de 8 bitsALU de 8 bits con banderas de acarreo e indicacin de cero16 registros de propsito general de 8 bits64 byte de memoria de datosFormato de instrucciones de 18 bitsBus de direcciones de 10 bits (1024 instrucciones)Stack de 31 palabras256 puertos de entrada256 puertos de salida2 ciclos de reloj por instruccin5 ciclos de reloj para respuesta de interrupcion Organizacin bsicaDiagrama a bloques de picoblaze
Top Level HDL modulesPicoblaze es un sistema organizado en 2 mdulos de alto nivel en HDL
El modulo KCPSM3 es el procesador Picoblaze
KCPSM3clk (entrada 1 bit), seal de reloj del sistemareset (entrada 1 bit), seal de resetaddress (salida 10 bits), direccin de la memoria de instrucciones, especifica la localidad de donde se va a leer la instruccininstruction ( entrada 18 bits), instruccin port_id(salida 8 bits), direccin del puerto de entrada o puerto de salidain_port(entrada 8 bits), datos de entrada de los perifricos de entrada /salidaread_strobe(salida 1 bit), strobe asociado con la operacin de entradaout_port( salida 8 bits), datos de salida hacia los perifricos de entrada/salidawrite_strobe (salida 1 bit) strobe asociado con las operaciones de salidainterrupt ( entrada 1 bit) solicitud de interrupcin de los perifricos de entrada/salidainterrupt_ack (salida 1 bit), reconocimiento de la interrupcin hacia los perifricos de entrada/salida
KCPSM3El segundo modulo es para la memoria de instrucciones
Durante el desarrollo usualmente almacenamos el cdigo ensamblado en la memoria y se configura como una ROM en el lenguaje de descripcin de hardware.
CONJUNTO DE INSTRUCCIONES57 INSTRUCCIONESInstrucciones del tipo:LgicasAritmticasDe prueba y comparacinCorrimiento y rotacinMovimiento de datosControl del flujo de programaRelacionadas con las interrupcionesMODELO DE PROGRAMACIN
FORMATO DE INSTRUCCIN
FORMATO DE INSTRUCCIN
Comparacin y Test
Comp: comparan 2 registros o bien reg cte y las banderas de Z y C se ponen a 1
FORMATO DE INSTRUCCIN
FORMATO DE INSTRUCCIN
FORMATO DE INSTRUCCIN
Instrucciones tipo lgicas
Aritmticas
De prueba y comparacin
Corrimiento y rotacin
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_asOtra manera de ensamblar unprograma es a travs de MATLAB. Paraesto, ejecutamos en la ventana decomandos >> cd c:\assembler; xlpb_as-p 'diego.psm'La primera instruccin 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 presentacin en pantalla:
ServomotorMotor de DC
Circuito de retroalimentacin un potencimetro mide la posicin del eje, para que el control mantenga la salida con precisin
Control de motor en lazo cerrado
Un controlador externo le dice al servo donde ir con una seal conocida como modulacin de pulso proporcional (PPM).
La modulacin 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 informacin
La duracin de los impulso indican el Angulo del giro del motor, cada servo motor tiene su margen de operacin que corresponden con el ancho de impulso mximo y mnimo que el servo entiende y que mecnicamente 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 HzPara que un servomotor mantenga la misma posicin es necesario enviarle continuamente un pulso de ancho constante
Si se deja de enviar pulsos o el intervalo entre pulsos es mayor del mximo permitido entonces el servomotor perder fuerza y dejara de intentar mantener su posicin.Algoritmo de Control ServomotorinicioLeer dato puerto de entradaContadores y banderas a 0Poner a 1 el puerto de salidaRetardo de 300 sPuerto entrada = contador?contador + 1Retardo de 10 snoPoner a 0 el puerto de salidaCantidad bajo = 200 dato puerto de entradaContador bajo + 1Retardo de 10 sCantidad bajo = contador bajo?Retardo de 17.7 mssinosi
Top Related