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 |
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. |
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.