3 Interfaz PC – DSP 3 Interfaz PC – DSP 3.1 Introducción a las comunicaciones serie Las comunicaciones serie se utilizan para enviar datos a través de largas distancias, ya que las comunicaciones en paralelo exigen demasiado cableado para ser operativas. Los datos serie recibidos desde un módem u otros dispositivos son convertidos a paralelo para poder ser usados por el bus del PC. Los equipos de comunicaciones serie se pueden dividir entre simplex, half-duplex y fullduplex. Una comunicación serie simplex envía información en una sola dirección (por ejemplo, una emisora de radio comercial). Half-duplex significa que los datos pueden ser enviados en ambas direcciones entre dos sistemas, pero en una sola dirección al mismo tiempo. En una transmisión full-duplex cada sistema puede enviar y recibir datos al mismo tiempo. Este último será el caso de nuestro sistema, ya que tanto el DSP como el PC podrán enviar y recibir datos a la vez. 3 Interfaz PC – DSP 3.2 Comunicaciones serie asíncronas Hay dos tipos de comunicaciones: síncronas o asíncronas. En una transmisión síncrona los datos son enviados en bloques y el transmisor y el receptor son sincronizados por uno o más caracteres especiales llamados caracteres de sincronización. El puerto serie del PC es un dispositivo asíncrono por lo que la comunicación establecida entre él y el DSP será asíncrona. Para la sincronización de este tipo de comunicación se precisa siempre de una línea adicional a través de la cual el emisor y el receptor intercambian la señal del pulso. Pero en la transmisión serie a través de un cable de dos líneas esto no es posible ya que ambas están ocupadas por los datos y la masa. Por este motivo se intercalan antes y después de los datos informaciones de estado (según la norma RS-232). Esta información es determinada por el emisor y receptor al estructurar la conexión mediante la correspondiente programación de sus puertos serie: ➢ Bit de inicio (start): Cuando el receptor detecta el bit de inicio sabe que la transmisión ha comenzado y es a partir de entonces cuando debe leer las señales de la línea a intervalos concretos de tiempo, en función de la velocidad determinada para la comunicación. Electrónicamente es una transición de '1' a '0' lógicos. ➢ Bit de paridad (opcional): Si se usa ocupa el lugar del octavo bit de datos y sirve para detectar errores en la transmisión. La paridad puede ser par o impar. En la paridad par, por ejemplo, la palabra de datos a transmitir se completa con el bit de paridad de manera que el número de bits a '1' enviados sea par. ➢ Bits de parada (stop): Indica la finalización de la transmisión de una palabra de datos. El protocolo de transmisión de datos permite 1, 1.5 y 2 bits de parada. Electrónicamente equivale al regreso al nivel lógico '0'. Figura 3.1a: Trama genérica de una comunicación asíncrona. 3 Interfaz PC – DSP Normalmente, las comunicaciones serie tienen los siguientes parámetros: 1 bit de start, 8 bits de Datos, 1 bit de stop y sin paridad. En la figura 3.1b se puede ver un ejemplo de la transmisión del dato binario 10011010. La línea en reposo está a nivel alto: Figura 3.1b: Ejemplo de transmisión asíncrona. 3 Interfaz PC – DSP 3.3 Conexión física entre el PC y el DSP El puerto serie del PC es compatible con el estándar RS-232 que establece las características físicas y mecánicas del conector, el tipo de dispositivo (emisor o receptor), las características eléctricas de la conexión y los mecanismos de sincronización de la comunicación. El estándar especifica 25 pins de señal, y que el conector de DTE (Data Terminal Equipment, el PC en este caso) debe ser macho y el conector del DCE (Data Communication Equipment, para nosotros el DSP) hembra. El conector mas usado es el DB-25 macho, pero muchos de los 25 pines no son necesarios. Por esta razón en los PC se suelen utilizan los DB-9 macho (ver figura 3.3a). Los niveles de tensión para un nivel lógico alto están entre -3V y -15V y para un nivel lógico bajo tendrá una tensión entre +3V y +15V siendo los mas comunes los de +12V y -12V (recogidos en la norma RS-232). Las señales mas usadas son: 1. Línea de transmisión de datos (TxD): Línea por la que el DTE (PC) envía los datos. 2. Línea de recepción de datos (RxD): Línea por la que el DTE (PC) recibe los datos. 3. DTE preparado (DTR): Línea por la que el DTE (PC) indica al DCE (DSP) que está activo para comunicarse con él. 4. DCE preparado (DSR): Línea por la que el DCE (DSP) indica al DTE (PC) que está activo para establecer la comunicación. 5. Petición de envío (RTS): con esta línea, el DTE (PC) indica al DCE (DSP) que está preparado para transmitir datos. 6. Preparado para enviar (CTS): tras un RTS, el DCE (DSP) pone esta línea en 1 lógico, tan pronto como está preparado para recibir datos. 7. Masa: necesaria para que tenga lugar la transmisión. 3 Interfaz PC – DSP Estas líneas las controla el PC través de la UART, un controlador conectado al bus de un ordenador que realiza las funciones de convertidor bidireccional Serie / Paralelo y Paralelo / Serie. Figura 3.3a: Distribución de pines en un conector DB-9. Número de pin Señal 1 DCD (Data Carrier Detect) 2 RX 3 TX 4 DTR (Data Terminal Ready) 5 GND 6 DSR (Data Sheet Ready) 7 RTS (Request To Send) 8 CTS (Clear To Send) 9 RI (Ring Indicator) Tabla 3.3: Correspondencia entre pines y señales en un conector DB-9. Para hacer posible la comunicación entre los dos equipos (PC y DSP) se han interconectado las líneas descritas anteriormente de la siguiente manera: (PC1) RxD <================== TxD (DSP) (PC1) TxD ==================> RxD (DSP) (PC1) DTR ==================> DSR (DSP) (PC1) DSR <================== DTR (DSP) (PC1) RTS ==================> CTS (DSP) (PC1) CTS <================== RTS (DSP) (PC1) MASA =================== MASA (DSP) Una forma de conectar PC y DSP con la configuración anterior es utilizando un cable serie macho-hembra cruzado (ver figura 3.3b). 3 Interfaz PC – DSP Figura 3.3b: Cable serie macho-hembra. 3.3.1 Adaptación de tensiones El puerto serie del PC suele trabajar con niveles de tensión de ±12V, mientras que los microcontroladores suelen trabajar con tensiones de 0 y 5V. Es por ello por lo que se hace necesario adaptar las tensiones de transmisión de ambos dispositivos para que puedan comunicarse entre ellos. Para ello, lo mas usual es usar el integrado de MAXIM llamado MAX 232 que adapta los niveles antes mencionados. En el caso del presente proyecto, el DSP TMS2812 trabaja con niveles de tensión de 0 y 3,3V por lo que es necesario usar un dispositivo de la familia del MAX 232, el MAX 3322E/MAX 3323E que adapta estas tensiones a las de ±12V del PC. Sin embargo, para las pruebas del software se diseño un convertidor que realiza las misma función que los integrados anteriores cuyo esquema se puede ver en el anexo IV.