Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

PCI DEVELOPMENT TEAM

HOME Introduccion Nuestro Proyecto Implementacion Arquitectura Conversores AD/DA Driver LabView Quienes Somos Fotos Referencias Agradecimientos

ARQUITECTURA

           La arquitectura de nuestro proyecto fue evolucionando de acuerdo a un ciclo de vida incremental y en  función a los errores que fuimos encontrando. Según las simulaciones nuestro CORE funcionaba desde por lo menos 3 iteraciones atrás, la arquitectura para ese entonces contaba con 14 bloques, y se registraban todas las señales, tanto de entrada como de salida. Sin embargo de la simulación a los test de campo los resultados eran bastante diferentes, teníamos problemas con el sincronismo en el bus PCI. No sabíamos por que nuestra placa no se registraba correctamente según lo simulado.

 

Luego de numerosas  pruebas en distintas CPUs, (corroborando que el problema no era solo un determinado Chipset), llegamos a la conclusión de que la lógica simulada no era la que ocurría realmente en el bus PCI. En este punto es donde agradecemos a las personas que hicieron posible el préstamo temporal de un equipo ANALIZADOR LÓGICO, propiedad de MOTOROLA modelo LA4000/4280 80 channels, este equipo en particular constaba de 80 canales, adaptador a puerto usb y además una sampling máximo de 200Ms/s. Con la ayuda del analizador lógico realizando varias muestras de las señales del bus,  finalmente pudimos determinar cual era el problema.

El mismo principalmente podría resumirse a una sola palabra, SINCRONISMO,  efectivamente nuestro dispositivo no se configuraba debido a que el diseño de nuestra máquina de estados y los 14 bloques demoraban la respuesta y por lo tanto el MASTER anulaba el slot considerando que no habíaninguna placa PCI presente.

Una vez que el problema fue identificado fuimos evolucionando la arquitectura sin grandes inconvenientes gracias a la utilización de software de control de versiones, pasando inclusive por una iteración que se sincronizaba parcialmente, pero los datos eran enviados y recibidos en instantes erróneos lo que resultaba en identificaciones erróneas por parte del MASTER. Finalmente y con un total de 9 bloques, sin registrar las señales y con una máquina de estados totalmente renovada de estructura paralela ( basada en la estructura recomendado por el estándar) logramos sincronizar los tiempos de respuesta. La configuración actual cumple la más alta exigencia de tiempo de respuesta del estándar, la cual es denominada “FAST”, de DEVSEL timing, (nos referimos al tiempo de respuesta del esclavo ante una solicitud de transacción por un master).

 

 

 

BLOQUES INTEGRANTES DEL CORE PCI

Ø      El bloque de Registro de Direcciones (Bloque REGDIR ), cumple la función de buffer de entrada para las direcciones (el Address [31 al 0]) .

Ø      El Bloque de Read & Drive Datos (Bloque RDDatos),  tiene como función principal multiplexar los buses de entrada/salida de nuestro dispositivo.

Ø      El bloque de Combinacional de las Salidas (Bloque COUT ), se ocupa de generar los valores para las señales de salida.  

Ø      El bloque Espacio de configuración (Bloque CONFSPACE ), como se describió con antelación se ocupa de almacenar la información de configuración de la tarjeta. 

Ø      Bloque Control de paridad (Bloque ParControl), encontramos el bloque encargado de realizar la detección de paridad. 

Ø      Bloque Comparador (Bloque C ),  es el que compara la dirección que coloca el maestro en el Bus, con nuestro Base Address. 

Ø      Máquina de Estado (Bloque FSM ), cuya nombre lo indica, es nuestra máquina de estado. En este bloque radica el funcionamiento de todo nuestro desarrollo,  ya que el mismo es el que administra el estado de la transacción. Este bloque describe seis estados posibles en lo que se encuentra nuestra tarjeta PCI, estos estados son:

 

Ø    IDLE

Ø    BUSY

Ø    CF_READ

Ø    CF_WRITE 

Ø    ME_READ 

Ø    ME_WRITE.