6.1.         Diagramas de tiempos y estados de espera.

 

Un diagrama de tiempo es un gráfico que representa, en el tiempo, como se realiza un acceso en lectura o escritura en un dispositivo (microprocesador o periférico). De su correcta interpretación depende que un diseñador realice un diseño adecuado de un sistema microprocesador, desde el punto de vista de los tiempos de acceso en la estructura maestro-esclavo (). El diagrama de tiempo en un microprocesador representa cómo se inicia y concluye la comunicación e indica el tiempo de acceso del maestro.

 

Asociado a un periférico, el diagrama de tiempo establece el tiempo de respuesta del esclavo que, en condiciones ideales, coincide con el tiempo de acceso al periférico. La diferencia entre tiempo de respuesta y de acceso a un esclavo depende del tiempo de retraso, , asociado a la lógica de selección del propio dispositivo, . El microprocesador inicia el acceso pero el periférico al que desea acceder no se entera del comienzo del acceso hasta unos pocos nanosegundos después, , debido a que todo periférico tiene asociada una lógica de selección que, a su vez, lleva asociada un tiempo de respuesta mayor de 0nseg.

 

Los microprocesadores pequeños en prestaciones y potencia de cálculo, caso de la familia MC68HC11 y la mayoría de familias de microcontroladores de 8 bits, no permiten al usuario controlar el tiempo de acceso del microprocesador a periféricos externos. El fabricante del microprocesador suministra un tiempo de acceso, del maestro a los esclavos, fijo. Esto es debido a que el ciclo máquina del microprocesador suele ser lo suficientemente grande (el acceso del microprocesador lo suficientemente lento) como para que la mayoría de los periféricos puedan ser accedidos sin problemas de tiempo por parte del maestro.  El caso del DSP es diferente. El ciclo máquina de este microprocesador es muy pequeño (del orden de los 40nseg o incluso menos). No todos los periféricos que se pueden encontrar en el mercado presentan unos tiempos de respuesta tan bajos (por ejemplo, y para que el lector se haga una idea, el tiempo de respuesta y estabilización de la salida en una función lógica elemental -OR, AND...- asociada a un dispositivo diseñado con tecnología LS -TTL Schottky de bajo consumo- está en torno a los 10nseg). Se presenta, por tanto, un problema que cuando se estudió la familia MC68HC11 no se tenía. ¿Es posible emplear cualquier periférico externo en un sistema digital basado en un DSP de la familia TMS320C3x?. Y si es así, ¿cómo es capaz de gestionar el usuario el acceso del DSP al periférico?. Impedir, al usuario, el empleo de un periférico, por lento que éste sea, no deja de ser una limitación para el diseñador de un sistema microprocesador. Los fabricantes, para vender sus microprocesadores, diseñan de la manera más versátil posible, lo que implica permitir el empleo del mayor número de periféricos externos posibles. La respuesta, por tanto, a la primera de las preguntas anteriores es que sí, será posible emplear cualquier periférico externo en un sistema digital basado en un DSP de la familia TMS320C3x. Obviamente, para permitir esta característica es necesario que el fabricante permita que el usuario controle el tiempo que tarda el DSP en realizar un acceso al exterior. Los estados de espera representan, en un sistema microprocesador, la manera que tiene el usuario de controlar el tiempo de acceso de un maestro a un esclavo. El acceso del microprocesador al periférico se va a poder ralentizar cierto tiempo, múltiplo entero del ciclo máquina del microprocesador. Ese múltiplo entero del ciclo máquina que ralentiza el acceso del microprocesador a los periféricos son los estados de espera del acceso. Obsérvese que, este aumento de la flexibilidad en el acceso exterior del sistema va a suponer un aumento en la complejidad del diseño, como se podrá observar en este apartado. El DSP ofrece la posibilidad de generar estados de espera en los accesos a los periféricos externos programando, convenientemente, un registro de control por cada bus del sistema. Esta característica permite al sistema DSP, maestro en un sistema digital, acceder a dispositivos externos, esclavos en dicho sistema digital, con tiempos de acceso altos, superiores a los que realmente necesitaría el maestro para recoger una información previamente requerida al esclavo.

 

En el caso del TMS320C30 el acceso, como veíamos, puede realizarse a través de dos interfaces diferentes, el bus primario (consta de 24 líneas de dirección A0-A23, 32 líneas de datos D0-D31 y varias líneas de control , , ,  y ) y el bus de expansión (consta de 13 líneas de dirección XA0-XA12, 32 líneas de datos XD0-XD31 y otras líneas de control diferentes de las del bus principal, , ,  y ). En el caso del TMS320C31 estos accesos sólo pueden realizarse a través de una interface, el bus primario, figura 2.15.

 

Las características fundamentales de los accesos externos de los DSPs de la familia TMS320C3x de Texas Instruments son:

 

ü      Bus principal. Bus de datos de 32 bits, bus de direcciones de 24 bits (capacidad de direccionamiento de 224 words ó 16 Mwords) y bus de control con cinco líneas de las que tres gestionan el acceso al exterior (las demás líneas se estudiarán más adelante):

·         : línea externa de control de la generación de estados de espera de acceso a través del bus.

·         : señal que indica que se inicia un acceso a través del bus principal)

·        : señal que indica si el acceso, a través del bus principal, es en lectura para recoger del bus un dato que requiere el DSP o en escritura para poner en el bus un dato que lee algún periférico externo.

 

ü      Bus de expansión. Bus de datos de 32 bits, bus de direcciones de 13 bits (capacidad de direccionamiento de 213 word ó 8 Kwords) y bus de control con cuatro líneas,  (línea externa de control de la generación de estados de espera de acceso a través del bus),  e  (señales que indican que se inicia un acceso a través del bus de expansión, distinguiéndose entre dos posibles protocolos de acceso) y por último la señal  (indica si el acceso a través del bus de expansión es en lectura para recoger del bus un dato que requiere el DSP o en escritura para poner en el bus un dato que lee algún periférico externo).

 

El dispositivo dispone de dos periféricos internos que gestionan los accesos, a través de los buses del sistema, a los dispositivos externos. El modo de funcionamiento de estos periféricos se configura con los registros de control del bus principal y del bus de expansión, figuras 2.28 y 2.29, tablas 2-10 y 2-11.

 

Figura 2.1. Registros de control de los buses del sistema, familia TMS320C3x.

 

Figura 2.2. Registro de control del bus principal.

 

Figura 2.3. Registro de control del bus de expansión.

 

Bit

Nombre

Valor de Reset

Función que realiza

0

HOLDST

0 ó 1

Bit indicativo del estado HOLD. Si HOLDST=1, indica que el bus principal está en alta impedancia. Si HOLDST=0, indica que el bus principal no está en alta impedancia. Este bit es válido tanto si el bus está en HOLD porque algún periférico externo lo ha solicitado por hardware o si ha entrado en dicho estado vía software.

1

NOHOLD

0

Permite que el bus entre en alta impedancia si lo pide la señal externa de entrada . Si NOHOLD=1 el TMS320C3x gobierna las líneas del bus independientemente de que otro dispositivo pida el control de dichas líneas. Obviamente, en ese caso no se activa nunca la señal HOLDA de reconocimiento de haber cedido el control de las líneas del bus, sin embargo, el control y la señal HOLDA pueden cederse y activarse respectivamente si el control lo cede el DSP vía software (se genera un HOLD interno, HIZ=1).

2

HIZ

0

Generación de HOLD interno, por software. Cuando HIZ=1, el bus principal se pone en alta impedancia, otro periférico podría gobernar esas líneas sin generar conflictos. se pone a 0 cuando el bus principal se pone en alta impedancia.


 

3-4

SWW

11

Software Wait mode. Estos dos bits definen, junto con WTCNT, el modo de generación de los estados de espera en los accesos a través del bus principal.

5-7

WTCNT

111

Software Wait mode. Estos tres bits especifican el número de ciclos internos de estados de espera. Se relaciona con la GENERACIÓN DE ESTADOS DE ESPERA INTERNOS. El rango es de 0 (WTCNT=000) a 7 (WTCNT=111).

8-12

BNKCMP

10000

Bank Compare. Estos cinco bits especifican el número de MSBs bits de la dirección que se emplean para definir el tamaño de un banco de conmutación programable.

13-31

Reservados

0-0

Se leen como ceros.

 

Tabla 2-1. Funciones de los bits del registro de control del bus principal.

 

Bit

Nombre

Valor de Reset

Función que realiza

0-2

Reservados

000

Se leen como ceros

3-4

SWW

11

Software Wait mode. Estos dos bits definen, junto con WTCNT, el modo de generación de los estados de espera en los accesos a través del bus principal.

5-7

WTCNT

111

Software Wait mode. Estos tres bits especifican el número de ciclos internos de estados de espera. Se relaciona con la GENERACIÓN DE ESTADOS INTERNOS DE ESPERA. El rango es de 0 (WTCNT=000) a 7 (WTCNT=111).

8-31

Reservados

0-0

Se leen como ceros.

 

Tabla 2-2. Funciones de los bits del registro de control del bus de expansión.

 

Los accesos del DSP para recoger datos e instrucciones de periféricos externos se caracterizan por los diagramas de tiempo de acceso al exterior. En el DSP se distinguen dos protocolos diferentes de acceso al exterior, uno que corresponde a los accesos a través del bus principal, con  activo, o del bus de expansión, con  activo, y el segundo que se corresponde con los accesos a través del bus de expansión con  activo.

 

En las figuras 2.30, 2.31 y 2.32, se muestran accesos a periféricos externos con cero estados de espera (el acceso externo que realiza el DSP es el más rápido posible). Cuando se realiza el acceso a través del bus principal o del de expansión con  activo, el acceso en lectura tarda un ciclo máquina (salvo el caso particular en que un acceso en lectura sea inmediatamente posterior a otro en escritura, en cuyo caso el acceso en lectura tarda dos ciclos máquina) y el de escritura dos ciclos máquina. Cuando el acceso se realiza a través del bus de expansión con  activo, tanto el acceso en lectura como el de escritura tardan dos ciclos máquina. Recuérdese que los accesos en lectura y escritura a RAM interna del DSP eran aún más rápidos, ambos se producían en un ciclo máquina.

 

 

Figura 2.4. Accesos a través del bus principal ( activo) o del bus de expansión ( activo) con cero estados de espera: Lectura + Lectura + Escritura.

 

Figura 2.5. Accesos a través del bus principal ( activo) o del bus de expansión ( activo) con cero estados de espera: Escritura + Escritura + Lectura.

 

Figura 2.6. Accesos a través del bus de expansión ( activo) con cero estados de espera: Escritura + Lectura.

 

En las figuras 2.33, 2.34 y 2.35 se muestran accesos, con un estado de espera, a través del bus principal (activo) y del bus de expansión (activo) o a través del bus de expansión (activo).

 

 

Figura 2.7. Accesos en lectura y escritura a través del bus principal (activo) o del bus de expansión (activo) con un estado de espera en lectura y cero en escritura.

 

Figura 2.8. Accesos en escritura a través del bus principal (activo) o del bus de expansión (activo), primero con un estado de espera, luego con cero.

 

Figura 2.9. Accesos en lectura y escritura a través del bus de expansión (activo) con un estado de espera.

 

La generación de estados de espera es gobernada, en todos los casos, por una señal interna del DSP que se denomina  cuando el acceso se realiza por el bus principal y  cuando el acceso se realiza por el bus de expansión.

 

Cuando el acceso al exterior se realiza con cero estados de espera, un ciclo de reloj externo después de que el DSP (maestro) inicie el acceso al dato (selección en lectura o escritura del esclavo), la señal interna  se activa (se pone a cero lógico indicándole a la CPU del DSP que el acceso al exterior -en lectura o escritura- puede completarse) lo antes posible. En el caso del bus principal o del de expansión con  activo, el acceso se completa en un ciclo máquina para la lectura y en dos ciclos máquina para la escritura mientras que, en el caso del bus de expansión con  activo, en dos ciclos máquina se completan tanto la lectura como la escritura.

 

Cuando el acceso al exterior se realiza con un estado de espera, un ciclo de reloj externo después de que el DSP inicie el acceso al dato, la señal interna  se desactiva, se pone a uno lógico, indicándole a la CPU del DSP que el acceso al exterior (en lectura o escritura) no puede completarse inmediatamente sino que debe relentizarse en un ciclo máquina (ciclo máquina extra) el acceso al exterior.

 

Esa señal interna, que hemos denominado , se genera a partir de otras dos señales, una que se corresponde con los pines de entrada al circuito integrado ( para el bus principal y  para el bus de expansión) y otra que se genera internamente en el DSP mediante la programación de dos temporizadores internos de ciclos máquina de tres bits, uno asociado al bus principal y otro al de expansión, ( y ). La señal  se obtiene como una función lógica programable de las señales  y . La señal  se obtiene como una función lógica programable de las señales  y . El tipo de función lógica se programa con los bits SWW del registro de control de los buses, tanto principal como de expansión.

La forma de generar las señales  se muestra en la figura 2.36:

 

1.      Primero se programa el modo de generación de las señales  (ReaDY WaiTCouNTer). Para ello se emplean los registros de control de los buses:

 

·        WTCNT (bits 5-7 del registro de control del bus). Programa el valor inicial a un temporizador interno indicando el número de ciclos máquina de espera. Cuando se inicia el acceso al dispositivo externo se carga el valor de WTCNT (3 bits, valor que varía de 0 a 7) en un contador, temporizador interno, que se decrementa cada ciclo máquina hasta que llega a 0. Cuando llega a cero activa la señal  y permanece en ese valor hasta el comienzo de otro acceso externo. Mientras que el contador esté a cero, . Cuando tenga un valor distinto de cero, .

 

·        SWW (bits 3-4 del registro de control del bus). Selecciona el tipo de función lógica programable para la generación de estados de espera. Se tienen las siguientes opciones:

 

ü      SWW=00.  se genera sólo en función de los pines de entrada al circuito integrado  ó . Se ignora la señal  generada internamente en el DSP.

 

ü      SWW=01.  se genera sólo en función de la señal . Se ignoran los pines de entrada al circuito integrado,  ó .

 

ü      SWW=10.  se genera como una AND lógica entre los pines de entrada al circuito integrado ( ó ) y la señal . Los estados de espera se están generando, retrasándose los accesos a dispositivos externos, mientras no se active (aparezca un cero lógico) o bien en la señal  o en los pines de entrada al DSP  ó .

 

ü      SWW=11.  se genera como una OR lógica entre los pines de entrada al circuito integrado  ó  y la señal . Los estados de espera se están generando, retrasándose los accesos a dispositivos externos, mientras no se cumpla que tanto la señal  como los pines de entrada  ó  estén a cero. Esta condición es la más restrictiva y la que aparece en el arranque del DSP (configuración por defecto de los bits SWW=11).

 

Figura 2.10. Generación de la señal  y de los estados de espera en los accesos externos del DSP.

 

 

e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


IMPLANTACIÓN DE UNA RED ASÃNCRONA DE ENSEÑANZA DEDICADA A LA IMPARTICIÓN DE LA ASIGNATURA COPLEMENTOS DE SISTEMAS ELECTRÓNICOS DIGITALES DE 3º CURSO DE INGENIERÃA DE TELECOMUNICACIÓN.

: Oliveros Garrido, Antonio
: Ingeniería Telecomunicación
Contenido del proyecto: