IV CONGRESO DE MICROELECTRO´ NICA APLICADA, 2013
1
Verificacio´n Funcional de un Microcontrolador 8051 en Tecnolog´ıa 3D
Osterman Niria, Di Federico Mart´ın, Julia´n Pedro Departamento de Ingenier´ıa Ele´ctrica y de Computadoras, Universidad Nacional del Sur,
Bah´ıa Blanca, Buenos Aires, Argentina.
Resumen—En este informe se expone el desarrollo de un proyecto final de carrera el cual se realizo´ sobre la base de un sensor de ima´genes fabricado en tecnolog´ıa 3D sobre un proceso de 130 nm. El objetivo consistio´ en verificar el funcionamiento de un microcontrolador 8051 que se encuentra dentro del Imager y tiene la posibilidad de controlarlo en su totalidad.
Index Terms—Microcontrolador 8051, UART, validacio´n.
I. INTRODUCCIO´ N
L A tecnolog´ıa 3D interconecta var´ıas obleas de silicio en forma vertical, utilizando conexiones meta´licas entre ellas, o v´ıas, cuyos dia´metros son del orden de las centenas de micro´metros. La tecnolog´ıa 3D posibilita incrementar la densidad de integracio´n al permitir construir un chip mu´ltiple con diferentes pisos, denominados ”tiers”.
Dentro de las ventajas de esta tecnolog´ıa se pueden mencionar la mayor cantidad de transistores por unidad de volumen, la posibilidad de interconectar obleas de distintos tipos de tecnolog´ıa y la reduccio´n en las interconexiones, lo cual permite una disminucio´n de las capacidades para´sitas y un incremento en la velocidad de operacio´n.
El Imager se encuentra fabricado en esta tecnolog´ıa y esta´ formado por un arreglo de 48x36 celdas, donde cada celda posee dos registros, un contador, un elemento fotosensor y un conversor A/D. Adema´s de las celdas se tienen varias estructuras adicionales que realizan ca´lculos matema´ticos y un microcontrolador 8051, que posibilita controlar el circuito completo.
El chip tambie´n cuenta con un puerto de comunicaciones RS232 para enviar sen˜ales hacia y desde el exterior.
En este trabajo se detallan los pasos seguidos para realizar la verificacio´n del funcionamiento del microcontrolador 8051 dentro del procesador de ima´genes. Comenzando por el disen˜o del microcontrolador implementado y del Imager 3D, luego, en la Seccio´n III se explica la etapa de verificacio´n y de la interfaz de comunicacio´n serie. Por u´ltimo, en la Seccio´n IV se explica la validacio´n del microcontrolador 8051 en el Chip 3D.
II. DISEN˜ O
II-A. Microcontrolador e Interfaz de Comunicacio´n Serie
En la Fig. 1 se muestra el diagrama en bloques de la instancia que describe el comportamiento del circuito compuesto por el microcontrolador y la interfaz de comunicacio´n serie. Se
muestran los puertos de entrada y de salida los cuales permiten la interaccio´n del microcontrolador con el exterior.
Las sen˜ales de la interfaz de comunicacio´n serie se mapearon a puertos del 8051. A continuacio´n se describe su interconexio´ n:
IN P → P 1 out EOR → P 0 in(0) OU T P → P 1 in EOT → P 0 in(1) READY → P 0 out(2) W R → P 0 out(0)
Figura 1. Diagrama en bloque de la instancia microcontrolador e interfaz de comunicacio´n serie.
II-A1. Disen˜o del Microcontrolador 8051: El microcontrolador implementado cuenta con una pequen˜a memoria interna de 32 bytes y el programa se almacena en una memoria externa. El puntero de instrucciones se encuentra conectado al exterior por medio de 12 pines, logrando direccionar hasta 4 Kbytes de memoria de programa. Las conexiones con el Imager se realizan por medio de ocho puertos de ocho bits denominados p0−p7. Estos puertos son los u´ltimos ocho bytes de la memoria interna del microcontrolador.
El 8051 permite tres tipos de direccionamiento: directo, indexado, inmediato y por registros espec´ıficos. Cuenta con un conjunto de 70 instrucciones.
El microcontrolador no maneja interrupciones y permite que el Imager pueda, agregando solo una memoria externa donde se almacena el programa, ejecutar todas las tareas necesarias para: captar la imagen, procesarla, trabajar en paralelo con otros Imagers y entregar informacio´n al exterior.
II-A2. Interfaz de comunicacio´n serie.: La UART (Universal Asynchronous Receiver/Transmitter) implementada con-
IV CONGRESO DE MICROELECTRO´ NICA APLICADA, 2013
2
tiene dos relojes independientes para el receptor y para el transmisor permitiendo que la comunicacio´n sea del tipo fullduplex. Sus puertos de entrada y de salida se conectan con los del microcontrolador 8051, permitiendo controlar la comunicacio´n serie programando la memoria ROM externa del mismo.
II-B. Disen˜o del Chip 3D
El Imager bajo el cual se realizo´ la verificacio´n del microcontrolador esta´ conformado por los bloques mostrados en la Fig. 2. El chip completo abarca un a´rea de 2 mm. x 2, 5 mm. y tiene 70 pads, con un voltaje de trabajo de 3,3 V. Se encuentra dividido en dos pisos. Todas las sen˜ales del exterior llegan al piso superior y se env´ıan al piso inferior a trave´s de conexiones internas.
escribe en el bus interno es controlado por una sen˜al de seleccio´n denominada SelBusInt. Los bloques que son enviados al bus de salida son controlados por la sen˜al denominada selBusOut.
Como se dijo anteriormente, el microcontrolador toma el control del circuito completo en el momento en que la sen˜al M ICRORO se encuentra en nivel lo´gico alto. A partir de este momento, los ocho puertos de salida del 8051, p0 − p7, se conectan con todas las sen˜ales necesarias para controlar el chip y tener acceso a todos los registros internos. Dichas sen˜ales se muestran en la tabla I.
EL microcontrolador env´ıa sen˜ales al chip a trave´s de sus puertos los cuales se escriben realizando un programa en lenguaje ensamblador el cual se almacena en la memoria ROM.
Bits
7
6
5
4
3
2
1
0
p0
Bus Externo
p1
COL Externo
p2
ROW Externo
p3 Init Proc Init cnt Init pwm Init chain
Load1
Load2
Cbusb
p4
LX
LU
LP
CCLK
CRST
RST
CLKPR Clk Pxl
p5 BorderU BordeX BordeX B BordeX R MASK SelVecF
Fo Gin
p6
EnSel
Rst Pxlb Rst Sample Sample
p7
SELBUS OUT
SELBUS INT
Cuadro I SEN˜ ALES DE CONTROL DEL IMAGER.
Figura 2. Diagrama en bloques del chip 3D.
Los bloques extras con los que cuenta el Imager esta´n separados en dos grupos: en el piso inferior esta´n colocados aquellos que tienen acceso directo a las celdas. Los que comparten informacio´n a trave´s de un bus interno, esta´n colocados en el piso superior. Este piso recibe todas las sen˜ales y la alimentacio´n, muchas de las cuales son enviadas al piso inferior, en el cual se encuentra el microcontrolador.
El microcontrolador 8051 interactua con el exterior a trave´s de pads. Entre ellos se pueden mencionar: la sen˜al M ICRORO que controla si el microcontrolador posee el mando del Imager, lo cual sucede si se encuentra en nivel lo´gico alto. CLK M y RST M son la entrada de reloj al microcontrolador y su sen˜al de reincio respectivamente. RXD y T XD corresponden a la entrada y salida de la UART del microcontrolador 8051 permitiendo tener comunicacio´n hacia y desde el interior a trave´s del puerto serie. Siete pines de entrada (BU SH), dan la posibilidad de ingresar un valor hacia el microcontrolador, si e´ste esta´ seleccionado como el que controla el circuito. Adema´s se tiene un bus de salida (BU S OU T 7 − BU S OU T 0), que segu´n el valor de una sen˜al de seleccio´n (selBusOut), permite que el bloque seleccionado lo escriba. Por u´ltimo se encuentran las sen˜ales ADDR, DAT AIN y ROM RD las cuales interactu´an con la memoria de programa.
Todas las partes internas del circuito se conectan a un bus interno y tienen acceso de lectura y escritura. El bloque que
III. VERIFICACIO´ N
III-A. Simulaciones
Las simulaciones se realizaron utilizando el software ModelSim PE Student Edition 10.1d. La memoria ROM se genero´ mediante un software emulador del microcontolador 8051 llamado MCU 8051 IDE v 1.4.5. En e´ste se escribe el programa en lenguaje ensamblador, luego genera un archivo .hex el cual es tomado por un script realizado en Matlab que se encarga de producir un archivo VHDL correspondiente a la memoria.
En primer se realizo´ un programa que escribe valores en cada puerto de salida del microcontrolador y en cada direccio´n de memoria RAM. Se realizo´ la simulacio´n y se verifico´ el correcto funcionamiento.
Luego se agrego´ la descripcio´n de la interfaz serie, se realizo´ un programa que genera un eco y se simulo´ el correcto funcionamiento del conjunto.
IV. VALIDACIO´ N
La validacio´n se dividio´ en dos etapas: en primer lugar se realizo´ la validacio´n del microcontrolador en una FPGA Spartan 3 utilizando el sintetizador Design Suit 14.4 de Xilinx (versio´n WebEdition). Una vez asegurados del funcionamiento en la FPGA, se realizo´ la verificacio´n del chip 3D utilizando una plaqueta que lo contiene y que consta de pines que dan la posibilidad de conectarlo a la FPGA.
Para realizar la validacion, se sintetizo´ en la FPGA un microcontrolador Picoblaze y la memoria de programa. Todas las funciones realizadas en Matlab se escribieron enviando las directivas hacia el Picoblaze y e´ste hacia el microcontrolador 8051.
IV CONGRESO DE MICROELECTRO´ NICA APLICADA, 2013
3
El Picoblaze tiene siete puertos de salida, P oF 0 − P oF 7, que se conectaron a pines del chip y dos puertos de salida P iF 0 y P iF 1. El puerto P oF 0 se conecta a los pines de entrada BUSIN siempre que el microcontolador 8051 no tenga el mando, en caso contrario, el BUSIN se conecta con el dato de salida de la memoria ROM. La sen˜al MICRORO esta´ conectada con el bit 7 del puerto P oF 4 del Picoblaze.
El puerto P oF 1 esta´ conectado al BUSH. Este se utiliza para ingresar datos desde el exterior.
El puerto P oF 2 se conecta con los pines del chip denominados CLKs, estos son sen˜ales de habilitacio´n para cargar datos en distintos registros.
El puerto P oF 3 esta´ conectado a pines que se utilizan para escribir registros internos, como por ejemplo los registros que seleccionan quien escribe o lee en el bus interno o en el bus de salida. El puerto P oF 3(0), se encuentra conectado a la sen˜al LOAD, se necesita un pulso de esta sen˜al para cargar un valor externo en el BUSH.
Las sen˜ales hacia el microcontrolador son CLK M , RST M , RXD, CLK BRD y T XD y esta´n conectadas a los puertos del Picoblaze P oF 4(0), P oF 4(1), P oF 4(2), P oF 4(3) y P iF 1(0) respectivamente.
Como se dijo anteriormente, el Picoblaze se comunica con Matlab a trave´s del puerto de comunicacio´n serie. La memoria de programa del Picoblaze contiene todas las rutinas para testear el chip. Se utilizaron aquellos comandos que realizan la escritura de un puerto indicado o la lectura del bloque seleccionado en el bus de salida.
IV-1. Procedimiento realizado:
Seleccio´n de fila: Se escribio´ un programa en assembler para la memoria ROM. El programa consistio´ en escribir valores de 00h a FFh en un registro del microcontrolador seleccionando la fila a mostrarse en el bus de salida. Luego se genero´ el archivo VHDL de la ROM y se lo sintetizo´ junto con el microcontrolador Picoblaze. La funcio´n realizada en Matlab env´ıa el caracter Z y lo recibe para constatar que se encuentra establecida una comunicacio´n. Env´ıa al puerto P oF 4 del Picoblaze, un 128 (80h). Este valor activa la sen˜al MICRORO, da´ndole el control al 8051. Luego se realiza un pulso de reloj hacia el microcontrolador y se establece en nivel lo´gico alto la sen˜al de reinicio (RST). Ante un pulso en la sen˜al RST, el puntero de instrucciones se situ´a en la direccio´n 00h de la memoria de programa. Desde Matlab se generan los pulsos de reloj necesarios para que se ejecuten todas las l´ıneas de co´digo escritas en la memoria ROM. Luego se env´ıa un comando que permite leer el valor del bus de salida en relacio´n al puerto seleccionado, en este caso se selecciona la fila. Por u´ltimo se deshabilita el microcontolador 8051. Escribir dato en puerto del 8051 y enviarlo al bus de salida: Se ingresa un valor en el BUSH, con el 8051 habilitado y luego se realiza un pulso en la sen˜al de habilitacio´n (LOAD), el valor ingresa al puerto p2 in del microcontrolador. El programa escrito en assembler, selecciona en el bus interno el registro que contiene el valor del puerto de entrada del 8051 (p2 in) y en el bus de salida el registro
que contiene el puerto de salida del microcontrolador (p3 out). El valor recibido desde el BUSH se almacena en el registro acumulador, y luego se env´ıa por el puerto p3 out del microcontrolador. Desde Matlab, se lee el valor del dato enviado en el bus de salida.
Una vez asegurado que es posible comunicar el exterior con el 8051, se procedio´ a realizar la verificacio´n de sus instrucciones. Para cada instruccio´n a verificar se escribio´ un programa distinto en la ROM.
La rutina realizada en Matlab ejecuta la siguiente funcio´n: En el caso que se necesite ingresar un valor por el BUSH se habilita el Microcontrolador colocando en nivel lo´gico alto la sen˜al MICROR0, enviando un 80h al puerto P oF 4. Luego se generan pulsos de reloj (CLK M ) y se levanta la sen˜al de reset (RST M ).
A continuacio´n se escribe un valor en el puerto BUSH y se genera un pulso escribiendo en el puerto P oF 3(0), correspondiente a la sen˜al LOAD. Estas l´ıneas se omitieron en el caso que la instruccio´n a verificar no necesitara un valor externo. Luego se generan los pulsos de reloj para que se ejecute el programa en la memoria y se lee el valor del bus de salida, que en este caso contiene el puerto de salida p3 out.
Por u´ltimo se deshabilita el microcontrolador, colocando un cero en el puerto P oF 4.
Se realizaron rutinas independientes para testear cada instruccio´n del microcontrolador 8051. Estas rutinas se basaron en recibir un dato desde el exterior, ejecutar la instruccio´n a verificar y devolver el resultado por el puerto p3 out.
Se verifico´ el conjunto de instrucciones y se comprobo´ su correcto funcionamiento.
V. CONCLUSION
En este informe se presento´ el desarrollo de un proyecto final de carrera realizado sobre la base de un sensor de ima´genes fabricado en tecnolog´ıa 3D. El proyecto´ consistio´ en realizar la verificacio´n funcional de un microcontrolador 8051 que forma parte del disen˜o del Imager.
REFERENCIAS
[1] Di Federico Mart´ın, “Circuitos integrados de alto desempen˜o para visio´n con procesamiento basado en redes celulares”, Tesis Doctor en Ingenier´ıa, 2011.
Ver+/-