Contenido>Indice>Intro Tutor

DIAGRAMA DE TIEMPOS



En en mC 8051 básico un ciclo máquina consiste en una secuencia de 6 estados numerados desde S1 hasta S6. Cada estado contiene 2 periodos de oscilación. Si el oscilador es de 12MHz, cada periodo dura 1m s. Cada ciclo máquina contiene pues 12 periodos de oscilador, tal y como indica la siguiente figura.

Un ciclo de máquina comienza en el periodo S1P1 y termina en el periodo S6P2.

Tiempos de la CPU

La ejecución del ciclo máquina comienza en el estado 1 del ciclo máquina, cuando el código de operación es almacenado en el registro de instrucción. Como norma general una instrucción necesita uno o más ciclos máquina, dependiendo de:

  1. Código de operación

  2. Por ejemplo, la instrucción INC A (figura a) tiene 1 byte de instrucción y necesita 1 ciclo máquina, la instrucción INC DPTR, también, 1 byte de instrucción necesita 2 ciclos máquina (figura b) y la instrucción MUL AB, necesita 4 ciclos máquina y ocupa 1 byte de memoria.

  3. El número de bytes

Por ejemplo, la instrucción MOV A, #data (figura a) tiene 2 bytes de instrucción y necesita 1 ciclo máquina.En cambio la instrucción MOV direct,#data, consta de 3 bytes y necesita 2 ciclos máquina.

figura a

En la figura a se representa las instrucciones que llegan a ejecutarse en un ciclo máquina. El código de operación se lee en el periodo estado S1 y, mientras este código es memorizado por el registro de instrucción, se efectúa un segundo ciclo de recuperación de código durante el estado S4. Esta recuperación no se tiene en cuenta en función del tipo de instrucción. Aun así la ejecución no se completa hasta que termina el estado S6.

Figura b

Esto no ocurre siempre a más bytes más ciclos máquina, como puede verse en la (figura b). La instrucción es codificada en un solo byte, pero se ejecuta en dos ciclos máquina. La recuperación de código máquina se ignora en el periodo S4 del primer ciclo máquina y en los períodos S1 y S4 del segundo ciclo.

Ante la imposibilidad de establecer una norma general que facilite el algoritmo para asignar él numero de bytes de la instrucción y los ciclos máquina utilizados, es conveniente tener presente una tabla con el repertorio de instrucciones del microcontrolador.

También podemos ver en las figuras anteriores que en cada ciclo máquina se producen dos accesos a memoria, el primero, si es comienzo de ciclo de instrucción, que lee el código de operación, y el segundo, que normalmente se descarta, se utiliza para leer el segundo byte, él operando de la instrucción como ocurre el segundo caso de la figura a.

 

Tiempos de Lectura de la memoria de Programa

El ciclo de lectura de la memoria de programa comienza en el estado S1 en el flanco de subida de la señal ALE. El flanco de bajada de la señal ALE se usa para latchear (almacenar) la parte baja de la dirección (PCL). Cuando la señal de lectura (PSEN'(1)) baja, el 8051 deja libre la parte baja del bus de direcciones para permitir el acceso del periférico y dar paso a la instrucción. Cuando la señal PSEN' sube el periférico deja libre el bus de datos para un nuevo acceso del 8051 e este. Representando esto en un diagrama de tiempos.

 

figura : CICLO DE LECTURA EN MEMORIA DE PROGRAMA

 

Tiempos de lectura/escritura de la memoria de datos

Para realizar una lectura de memoria de datos se necesitan 12 periodos de reloj. El ciclo comienza en estado S4 con la subida de la señal de ALE. El flanco de bajada de esta señal se usa para almacenar la parte baja del bus de direcciones. En el estado S6 el bus de datos se queda en alta impedancia luego se activa la señal RD' dando permiso al periférico para tomar el bus de datos. En estado S3 es leído el dato del periférico y cuando se desactiva la señal RD', el bus se queda de nuevo en alta impedancia para ser utilizado por el 8051. Véase la siguiente figura.

figura :CICLO DE LECTURA EN LA MEMORIA DE DATOS EXTERNA

Para realizar una escritura en la memoria de datos externa se necesitan 12 periodos de reloj. El ciclo comienza en S4 con la subida de ALE. El flanco de bajada de esta señal se utiliza para almacenar la parte baja del bus de direcciones. En el estado S6 el 8051 saca el dato al bus, luego se activa WR dando permiso al periférico para que pueda ser escrito el dato. En el estado S4 el 8051 desactiva la señal WR prohibiendo de esta manera que se escriba y dando comienzo a un nuevo ciclo. Ver siguiente diagrama de tiempos.

figura : CICLO DE ESCRITURA EN LA MEMORIA DE DATOS EXTERNA 

l002.gif (417 bytes)

(1) El carácter < ' > utilizado en todo el tutorial indica que el elemento a que se refiere es activo a nivel bajo, esto es, es activo cuando su nivel lógico es un cero.

   


   Contenido>Indice>Intro Tutor