El periférico puerto serie que añade el fabricante a la estructura interna del DSP es muy versátil. La estructura interna de cada parte del periférico se puede configurar de siete maneras diferentes en función de las banderas CLKXFUNC, XCLKSRCE y XCLKSRC (transmisión) y de CLKRFUNC, RCLKSRCE y RCLKSRC (recepción).
En la figura 4.15 y en la
figura 4.16 se muestran las posibles estructuras internas que se pueden
configurar para la parte de transmisión del periférico puerto serie síncrono.
En la figura 4.15 se muestran las estructuras programables del puerto serie
cuando la línea CLKX se usa como
línea de entrada o salida de propósito general y en la figura 4.16 se muestran
las estructuras programables del puerto serie cuando la línea CLKX se emplea como línea asociada al
periférico. Las estructuras internas que se pueden configurar para la parte de
recepción del periférico son análogas a las comentadas anteriormente y, por
tanto, no se van a describir. Se observa que, configurando la línea de
transferencia del reloj (CLKX) como
línea de entrada o salida digital (CLKXFUNC=0) aparecen cuatro posibles
estructuras internas, dependiendo de si la línea es entrada o salida ( ó
) y de la fuente, interna o externa, de reloj empleada en la
transferencia serie (XCLKSRC). Si la línea de transferencia del reloj se asocia
al periférico (CLKXFUNC=1) aparecen otras tres posibles estructuras internas
dependiendo, como en el caso anterior, de si la línea es entrada o salida y de
la fuente, interna o externa, de reloj empleada en la transferencia serie.
Figura 4.15. Configuración del modo de operación del puerto serie: Parte de
transmisión. CLKX en modo entrada o
salida digital (CLKXFUNC = 0).
Figura 4.16. Configuración del modo de operación del puerto serie: Parte de
transmisión. CLKX se emplea como
línea del periférico (CLKXFUNC = 1).
El usuario puede, por tanto, configurar la
estructura interna de cada parte del periférico puerto serie para que coincida
con alguna de las siete descritas en la figura 4.15 y figura 4.16. Algunas de
estas estructuras implican que el temporizador de 16 bits no se utiliza para la
transferencia serie y que queda liberado para que el usuario lo emplee como
otro periférico temporizador, análogo al visto en el apartado anterior, aunque
sus registros internos tienen la mitad de tamaño que los periféricos
temporizadores internos del DSP.
El fabricante incorpora puertos serie síncronos
no sólo en los microprocesadores sino que también en muchos periféricos
externos que produce. La utilidad que tiene el puerto serie interno del DSP es,
por un lado, facilitar el hardware necesario para conectar periféricos externos
al DSP (por ejemplo existen convertidores de analógico a digital de Texas
Instruments que generan la salida digital en formato serie síncrono compatible
con el de los puertos serie del DSP, esto facilita la labor del diseñador de
sistemas digitales que tiene que rutar pocas líneas para conectar el periférico
al DSP). Por otro lado, una de las características básicas de un DSP es su
escalabilidad (son microprocesadores que deben conectarse fácilmente entre sí
para trabajar en paralelo). Para cumplimentar la característica anterior, el
fabricante incluye en el periférico un modo de funcionamiento especial que
permite la conexión directa entre dos DSPs a través de sus puertos serie, figura
4.17. Este modo de funcionamiento es muy sencillo de configurar -basta
imponer un uno en la bandera HS del
registro global de control y configuración del periférico-.
Es un modo de transferencia serie con acuse
de recibo en el que los datos se transmiten precedidos de un bit a 1 -leading one-
y, una vez que el transmisor ha concluido la transferencia de un dato, no
procede a la transmisión de otro hasta que no reciba del receptor un bit a 0 -acknowledge bit-.
El puerto serie del receptor genera, por tanto, el acknowledge bit cada vez que lee por software el registro DRR. Todo
el proceso de generación de un bit de cabecera a 1 y de un bit de
reconocimiento a 0 es automático (transparente al usuario). En este modo FSX se configura automáticamente como
salida y se inhabilita el modo continuo de transferencia de datos (se verá en
el apartado siguiente, donde se describe el protocolo serie síncrono y los
diagramas de tiempo asociados a cada protocolo).
Figura 4.17. Modo Acuse de recibo: Conexionado y modo de funcionamiento.
Para poder usar el periférico puerto serie del DSP, primero es necesario configurarlo. La configuración debe realizarse, según aconseja el fabricante, manteniendo inactivo el periférico siguiendo, por tanto, el proceso indicado en la figura 4.18: En primer lugar se debe parar el periférico -poner los bits XRESET y/o RRESET (dependiendo de si se desea configurar sólo la parte de transmisión, la de recepción o ambas) del registro de control global del puerto serie a cero-, posteriormente se realiza la configuración del periférico manteniendo los bits XRESET y/o RRESET a cero -se escribe en el registro de control global del puerto serie y en los registros de control de las líneas FSX, DX, CLKX, FSR, DR y CLKR la palabra de control y configuración que se desee y, si fuese necesario, se configuran los registros ligados a los temporizadores del puerto serie (para ello habrá que escribir un cero en las banderas XGO y XHLD, si se desea utilizar el temporizador ligado a la parte de transmisión del puerto serie, ó RGO y RHLD, si se desea utilizar el temporizador ligado a la parte de recepción del puerto serie) de forma análoga a como se hace en los periféricos temporizadores-, finalmente se lanza la transferencia serie síncrona -se ponen las banderas XRESET y/o RRESET a uno-.
Figura 4.18. Inicialización del periférico interno puerto serie del DSP.