tecnología de microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · descripción...

27
1 Práctica 4: Sistema empotrado basado en codiseño para el procesamiento de imágenes Tecnología de Microcontroladores Raouf Senhadji Navarro

Upload: others

Post on 06-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

1

Práctica 4: Sistema empotrado basado en codiseño para el procesamiento de imágenes

Tecnología de Microcontroladores

Raouf Senhadji Navarro

Page 2: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

2

• Introducción• La aplicación a desarrollar• El hardware

• La tarjeta de prototipo• La UART• El CORDIC• El 8051

• Las herramientas• ISE Foundation• El compilador SDCC• Utilidades

• Consejos para el diseño• La memoria a entregar• Referencias

Índice

Page 3: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

3

Introducción al codiseño

Particionado Software/Hardware

Descripción Hardware Programación software

Síntesis

Implementación

Co-simulación

Page 4: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

4

La aplicación a diseñar: coprocesador de imágenes

Page 5: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

5

El algoritmo: La matriz de rotación

⎟⎟⎠

⎞⎜⎜⎝

⎛−

=φφφφ

cossinsincos

R

Page 6: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

6

El algoritmo: La descomposición de Paeth

⎟⎟

⎜⎜

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛−⎟

⎜⎜

⎛=

10

)2

tan(11sin01

10

)2

tan(1 φ

φ

φR

Page 7: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

7

La tarjeta de prototipo

Page 8: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

8

La tarjeta de prototipo

Page 9: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

9

La tarjeta de prototipo: señales a utilizar

1 bit de entradaLED disponibleLD71 bit de salidaBotón disponibleBTN01 bit de salidaBotón disponibleBTN11 bit de salidaBotón disponibleBTN21 bit de salidaBotón de RESETBTN3

1 bit de entrada

DisplayA

******F * * B

* G *******

E * * C* *******

D

ABCDEFG

1 bit de entradaHabilitación del digito menos significativo del displayAN0

1 bit de entradaHabilitación del digito más significativo del displayAN1

TipoDescripciónNombre

Page 10: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

10

La FPGA Spartan-3

Page 11: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

11

La FPGA Spartan-3

Page 12: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

12

Modelo VHDL de la UART: señales

1 bit de entradaLínea de recepción RS232RxD_PAD_I1 bit de salidaLínea de transmisión RS232TxD_PAD_O1 bit de entradaRelojBR_Clk_I1 bit de salidaInterrupción Dato recibido (no usada)IntRx_O

1 bit de salidaInterrupción Buffer de Transmisión Libre (no usada)IntTx_O

Interfaz serie1 bit de salidaFin de transferenciaWB_ACK_O1 bit de entradaInicio de transferenciaWB_STB_I1 bit de entradaEscritura/LecturaWB_WE_I8 bits de salidaBus de datos de salidaWB_DAT_O8 bits de entradaBus de datos de entradaWB_DAT_I2 bits de entradaDirecciónWB_ADR_I1 bit de entradaResetWB_RST_I1 bit de entradaRelojWB_CLK_I

Bus paraleloTipoDescripciónNombre

Page 13: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

13

Modelo VHDL de la UART: mapa de registros

3Reservado

2Reservado

Lectura1Estado

Escritura0Buffer de transmisión

Lectura0Buffer de recepción

AccesoDirecciónNombre

Page 14: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

14

Core del CORDIC: configuración

Page 15: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

15

Core del CORDIC: señales

1 bit de entradaRelojclk

1 bit de salidaCuando está a 1 indica que el dato de salida está listordy

8 bits de salidaCoordenada y de saliday_out

8 bits de salidaCoordenada x de salidax_out

1 bit de entradaCuando está a 1 indica nuevo dato de entradand

8 bits de entradaÁngulo de rotaciónphase_in

8 bits de entradaCoordenada y de entraday_in

8 bits de entradaCoordenada x de entradax_in

TipoDescripciónNombre

Page 16: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

16

Modelo VHDL del microcontrolador 8051: puertos

phase_inPuerto 3 Salida

y_inPuerto 2 Salida (MODO_C)=1

WB_DAT_IPuerto 2 Salida (MODO_C)=0

x_inPuerto 1 Salida (MODO_C)=1

-GFEDCBAPuerto 1 Salida (MODO_C)=0

MODO_CAN0AN1ndWB_STB_IndWB_ADR_I(0)WB_WE_IPuerto 0 Salida

WB_DAT_OPuerto 3 Entrada

y_outPuerto 2 Entrada

x_outPuerto 1 Entrada

---BTN0BTN1BTN2rdyWB_ACK_OPuerto 0 Entrada

Bits (7:0)Puertos

Page 17: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

17

Esquemático del sistema completo

Page 18: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

18

Xilinx ISE Foundation: Project Navigator

Page 19: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

19

Xilinx ISE Foundation: CORE Generator

Page 20: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

20

Xilinx ISE Foundation: IMPACT

Page 21: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

21

El compilador SDCC

• Definición de variables asociadas a los puertos:bit at 0x83 P0_3; // Bit 3 del puerto 0sfr at 0x90 P1; // Puerto 1

• Definición de variables en memoria externa:xdata unsigned char dato;

Page 22: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

22

Archivo de comandos actualiza_bit

sdcc --code-size 2048 --xram-size 2560 %1.cmakebin -s 2048 < %1.ihx > %1.binbin2asciihex %1.bin > %1.memdata2mem -bt system.bit -bm rom.bmm -bd %1.mem-o b %1.bit

IMPACT

C actualiza_bit

actuliza_bit <nombre_archivo>

Page 23: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

23

Otros programas

crea_imagen_bin <angulo> <nombre_archivo>

crea_imagen_bmp <nombre_archivo>

θ

crea_imagen_bin

crea_imagen_bmp

Hyper Terminal(Windows)

Para que los programas funcionen hay que instalar previamente las librerías adecuadas (mglinstaller)

Page 24: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

24

Consejos para la programación de la aplicación

1. Definir variables asociadas a todos los puertos (puede haber más de una variable asociada al mismo puerto: por ejemplo BTN2 y nd para el bit 5 del puerto 0 o WB_DATA_I y y_in en el puerto 2)

2. Definir alguna macro para mostrar valores en el display para realizar la depuración

3. Para probar la comunicación serie puede enviar caracteres hacia la tarjeta mostrando su código ASCII (de dos dígitos) en el display y recibir un carácter de una secuencia predefinida (A,B,C, …) cada vez que pulse un botón (BTN0).

4. Para probar el funcionamiento del módulo CORDIC puede fijar unosvalores de entrada y mostrar el resultado en el display.

5. Por restricciones de tamaño de la memoria interna del 8051 la imagen debe almacenarse en la memoria externa. Para evitar el uso de dos arrays del tamaño de la imagen hay que ir rotando las coordenadas conforme se van recibiendo los datos de la imagen.

Page 25: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

25

Pasos para la realización de la práctica1. Cree un proyecto, añada todas las especificaciones hardware y

genere el archivo system.bit. Puede editar los archivos VHDL, el CORDIC (.xco), el divisor de reloj (.xaw) y el archivo de restricciones (.ucf)

2. Pruebe la tarjeta de prototipo, los programas para enviar y recibir la imagen y la comunicación serie programando la FPGA con el archivo girar.bit (configuración de la FPGA con el programa correcto)

3. Instale el compilador SDCC4. Utilice el archivo de comandos actualiza_bit, el sistem.bit

generado (también se suministra), los programas C que implemente y el IMPACT para modificar la configuración de la FPGA

5. Realice los programas que se sugieren en el apartado de “consejos para la programación de la aplicación”

Page 26: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

26

La memoria a entregar• Describir el proceso seguido e incorporar los programas diseñados.• Contestar al siguiente cuestionario:

1. ¿Cuál es la frecuencia de reloj a la que funciona el 8051?2. Indicar qué pasos deberíamos seguir si quisiéramos cambiar la velocidad a la

que se transmiten y reciben datos por el puerto serie.3. ¿Si quisiéramos añadir al diseño alguno de los conmutadores de los que

dispone la placa (por ejemplo el SW7) que deberíamos hacer? ¿Y para otro LED (por ejemplo el LD6)?

4. ¿Por qué el archivo de restricciones incluye directivas de colocación para la memoria ROM?

5. ¿Cuál es el tamaño máximo de código que permite el 8051 implementado y qué valor tiene por defecto? Como puede modificarse y hasta que valor puede alcanzarse en la FPGA utilizada. Hacer los mismos cálculos para la memoria externa.

6. Explica las diferencias entre el código ensamblador generado para el acceso a variables internas y externas.

7. Describir el procedimiento a seguir si en vez de utilizar la matriz de rotación utilizáramos la descomposición de Paeth para evitar el efecto de la discretización (píxeles sin rellenar)

Page 27: Tecnología de Microcontroladoresicaro.eii.us.es/descargas/transparencias.pdf · Descripción Hardware Programación software Síntesis Implementación Co-simulación. 4 La aplicación

27

Referencias

1. Hardware/Software CO-Design: Principles and Practice, Wayne Wolf and Jorgen Staunstrup, Kluwer Academic Publishers

2. http://www.digilentinc.com3. http://www.xilinx.com4. http://www.cs.ucr.edu/~dalton/i8051/i8051syn5. http://www1.mmu.edu.my/~khkoay/8051core6. http://www.opencore.org7. A.W. Paeth, A fast algorithm for general raster rotation.

In Graphics Interface’86, pp.77-81,196