Hasta ahora se han comentado las características
básicas asociadas al periférico puerto serie interno utilizado por la familia
TMS320C3x de Texas Instruments. Se ha visto que estos periféricos realizan una transferencia bit a bit de datos. Los bits se transfieren siempre
por orden, del MSB a LSB, y como el periférico se basa en un protocolo serie
síncrono, se transfieren con los flancos de una señal de reloj, CLKX en transmisión y CLKR en recepción. La transferencia de
los datos comienza cuando se activan las señales FSX en transmisión y FSR
en recepción. Hemos visto, además, que el ancho de los datos a transferir no es
fijo sino que se puede configurar a un ancho de 8, 16, 24 ó 32 bits. Si el dato
a transferir se configura con un ancho inferior a 32 bits (8, 16 ó 24) se
ajusta a derechas en los registros de transferencia (el dato transferido se
encuentra en la parte menos significativa de los registros DXR, XSR, DRR y
RSR).
En este apartado vamos a ver los diagramas de
tiempos y como evolucionan las líneas del periférico puerto serie cuando se
realiza una transferencia serie síncrona. El fabricante permite que el usuario
programe cuatro modos de transferencia serie, según cómo se realice la
transferencia de los bits del dato y cómo se efectúa la transferencia del
propio dato:
·
Transferencia de bits.
Puede ser de dos tipos, transferencia de bits a frecuencia constante, fixed data-rate timing operation, o a
frecuencia variable, variable data-rate
timing operation. Prácticamente no existen diferencias entre ambos modos de
operación salvo en el tiempo durante el que permanecen activos los bits del
dato transferido: En el modo de transferencia a frecuencia constante todos los
bits del dato permanecen activos en la línea DX ó DR el mismo tiempo
(un periodo del reloj base de la transferencia serie) mientras que en el modo
transferencia a frecuencia variable el primer bit transferido permanece activo
menos de un periodo del reloj base de la transferencia (el resto están activos
un periodo del reloj).
·
Transferencia de datos.
Puede ser, a su vez, de otros dos tipos, transferencia de datos sueltos, modo estándar, o transferencia continua
de datos, modo continuo. La
diferencia entre un modo de transferencia de datos y otro estriba en la
necesidad (modo estándar) o no (modo continuo) de generar la señal de inicio de
la transferencia serie cada vez que se desea transferir un dato. En modo
continuo se genera la señal de inicio de transferencia una única vez, al
comienzo de la transferencia del primer dato, a partir de ese momento se
transfieren datos de forma ininterrumpida.
Para aclarar los diferentes protocolos de
comunicación serie síncrona, que se pueden establecer con el periférico serie
del DSP, vamos a ver diferentes figuras en las que se muestran los diagramas de
tiempo que se pueden generar asociados a la evolución de las líneas del
periférico puerto serie.
En la figura 4.19, figura 4.20 y figura 4.21 se
muestran los diferentes diagramas de tiempo que pueden programarse en una
transferencia serie síncrona, en modo de
transferencia de bits a frecuencia constante. Obsérvese que todos los bits
permanecen activos el mismo tiempo (un ciclo del reloj de transmisión o
recepción) y que el ciclo de reloj, de transmisión o recepción, previo al
inicio real de la transferencia de cada dato (modo estándar) o del primer dato
(modo continuo) se genera la señal de inicio de transferencia: FSX ó FSR.
Figura 4.19. Diagrama de tiempo asociado a una transferencia serie síncrona
en modo estándar (un único dato
transferido) y transferencia de bits a
frecuencia constante (fixed data-rate
timing operation). Bits
(R)XFSM=0 y (R)XVAREN=0.
Figura 4.20. Diagrama de
tiempo asociado a una transferencia serie síncrona en modo estándar (varios datos transferidos) y transferencia de bits a frecuencia constante (fixed data-rate timing operation). Bits (R)XFSM=0 y (R)XVAREN=0.
Figura 4.21. Diagrama de
tiempo asociado a una transferencia serie síncrona en modo continuo (generación automática de la señal de sincronismo)
y transferencia de bits a frecuencia
constante (fixed data-rate timing
operation). Bits (R)XFSM=1 y
(R)XVAREN=0.
En la figura 4.22 se muestra el diagrama de
tiempo asociado a una transferencia serie síncrona de datos en la que la
frecuencia de transferencia de cada bit es constante. Inicialmente la
transferencia se realiza en modo continuo, bit (R)XFSM a 1, para pasar luego a
realizarse en modo estándar, bit (R)XFSM a 0. Se observa que, para garantizar
una transferencia de bits a frecuencia constante en modo continuo es necesario
escribir, antes de transferir el bit de la primera palabra que se desee transferir en modo continuo, un
uno lógico en los bits XFSM (para transmisión) ó RFSM (para recepción). La
conmutación de modo continuo a estándar no es inmediata. En la figura 4.20 se
muestra que, desde que se escribe un cero en los bits (R)XFSM hasta que cambia
de modo de transferencia síncrona (de modo continuo a modo estándar) aparece un
pequeño retraso: El dato C (
...
) se transfiere en modo continuo a pesar
de que XFSM=0.
Figura 4.22. Configuración y cambio del modo de transferencia del
puerto serie: Inicialmente transferencia en modo continuo (R)XFSM=1,
posteriormente en modo estándar (R)XFSM=0.
En la figura 4.23, figura 4.24 y figura 4.25 se muestran
los diferentes diagramas de tiempo que pueden generarse en una transferencia
serie síncrona en la que el modo de
transferencia de bits es a
frecuencia variable. Obsérvese que no todos los bits permanecen activos el
mismo tiempo: Todos permanecen activos un ciclo del reloj de transmisión o
recepción excepto el primer bit del primer dato que permanece activo menos de
un ciclo de reloj. Además, y a diferencia que en el modo de transferencia de
bits a frecuencia constante, la señal de inicio de la transferencia (FSX ó FSR) se genera en el ciclo de reloj base de la transferencia que
coincide con el inicio de la transferencia del dato.
Figura 4.23.
Diagrama de tiempo asociado a una transferencia serie síncrona en modo estándar (un único dato
transferido) y transferencia de bits a
frecuencia variable (variable
data-rate timing operation). Bits (R)XFSM=0 y (R)XVAREN=1.
Figura 4.24. Diagrama de tiempo asociado a una transferencia serie síncrona en modo estándar (varios datos
transferidos) y transferencia de bits a
frecuencia variable (variable
data-rate timing operation). Bits (R)XFSM=0 y (R)XVAREN=1.
Figura 4.25. Diagrama de tiempo asociado a una transferencia serie síncrona
en modo continuo (generación
automática de la señal de sincronismo) y transferencia
de bits a frecuencia variable (variable
data-rate timing operation). Bits (R)XFSM=1 y (R)XVAREN=1.