SISTEMA, MÉTODO Y APARATO DE INTERFAZ DE COMUNICACIÓN
Antecedentes Campo de la Invención La invención se refiere a un sistema, método y aparato de interfaz de comunicación y de manera más particular, a un módulo integrado, universal para interconectar un módulo de control a otros módulos .
Información Relacionada En el pasado, se han introducido interfaces que interconectan un módulo de control a otros módulos. Sin embargo, no ha habido una interfaz universal para la interconexión de una pluralidad de protocolos de comunicación como se contempla de forma particular por la presente invención.
BREVE DESCRIPCIÓN E LOS DIBUJOS La Figura 1 es una tabla; Las Figuras 2a y b son diagramas de temporización; La Figura 3 es una tabla; La Figura 4 es un diagrama de temporización; La Figura 5 es un diagrama de temporización; La Figura 6 es una tabla; La Figura 7 es un diagrama de temporización;
La Figura 8 es un diagrama de temporización; La Figura 9 es un diagrama de temporización; La Figura 10 es un diagrama de temporización; La Figura 11 es un diagrama de temporización; La Figura 12 es un diagrama de temporización; La Figura 13 es un diagrama de temporización; La Figura 14 es un diagrama de temporización; y Las Figuras 15a y 15b son diagramas de bloque.
Descripción Detallada de la Modalidad Preferida La interfaz de la presente invención proporciona comunicación en serie a módulos de expansión (EM) . Una CPU de la interfaz controla todas las comunicaciones hacia y desde los EM y se referirá como la "Función Principal". El Módulo de Expansión incluirá un ASIC para lograr este protocolo de comunicación en serie y se referirá como la "Función Esclavo" o "ASIC Esclavo". Las señales de la barra común de Expansión de E/S como se ve por el Módulo de Expansión se describen en la siguiente tabla. La conexión del PLC al EM y del EM al EM será uno a uno usando una conexión tipo encabezado de 10 espigas. Al referirse a la Figura 1 para las asignaciones de espiga del conector de barra común de Entrada/Salida (E/S) de Expansión. Los siguientes diagramas en las Figuras 2a - 2b
ilustran secuencias del ciclo de escritura y ciclo de lectura de la Barra Común de Expansión. Una transacción de barra común se iniciará por impulso bajo, activo, corto en la señal XA_OD. En la Figura 2a: Ma[2:0] -Dirección de Módulo que CPU está direccionando W -Tipo de Transacción pedida por CPU,
Bitio de Lectura/Escritura (l=>Escritura, 0 =>Lectura) RA [3:0] -Dirección de registro que CPU está direccionando CP[1:0] -Bitios de Paridad de Registro de Control generados por CPU [7:0] -Pasos escritos a módulo de expansión por CPU DP[1:0] -Paridad de datos generada por CPU Ack[l:0] -Bitios de reconocimiento regresados a CPU por Esclavo -Al: 0 indica un ciclo de escritura exitoso (no errores de paridad) ; 1 indica una transacción escrita inválida, error de paridad y datos encontrados -AO : por omisión a 1 En la Figura 2b: Ma[2:0] -Dirección de módulo que CPU está direccionando
-Tipo de Transacción pedida por CPU, Bitio de lectura/escritura (l=>Escritura, 0=>Lectura) RA[3:0] -Dirección de Registro que CPU está direccionando CP[1:0] -Bitios de Paridad de Control generados por CPU R[7:0] -Datos descritos a CPU de Módulo de Expansión DP[1:0] -Paridad de datos generados por Módulo de Expansión Cada EM implementa una interfaz eléctrica a la barra común de Entrada/Salida de expansión que consiste de circuitos de terminación y circuitos impulsores de la barra común. Esto permitirá que la adición de energía de +5V se introduzca donde quiera en la barra común de E/S encadenada con margarita y proporciona alguna protección de la E/S de
ASIC ESCLAVO. Dado que la señal de EMD es una señal bidireccional, la circuitería de control proporcionará en los circuitos accionadores de la barra común para evitar los errores de contención de la barra común. Tres señales de control (PRIM_DENTRO, MI_ESCLAVO_FUERA, y
PRÓXIMO_ESCLAVO_FUERA) se usan para habilitar/deshabilitar los circuitos accionadores de barra común de EMD. Para detalles de la circuitería de terminación referirse a la Figura 3. La Figura 3 describe la configuración de circuito
del accionador de barra común de EMD para tres módulos de expansión. Se proporciona un circuito accionador de barra común que tiene una línea habilitada, baja, activa. El ASIC_ESCLAVO genera 3 señales de control para habilitar/deshabilitar de forma apropiada los accionadores de la barra común. La señal de control PRIM_DENTRO habilita los circuitos A y B a generadores de barra común. Esto permite que la señal de EMD se introduzca el módulo de expansión ASIC y se introduzca en el próximo módulo de expansión ASIC corriente abajo. PRIM_DENTRO llega a ser activo cuando XAS se detecta y llega a ser inactivo antes de cualquier respuesta de un EM. Las señales MI_ESCLAVO_FUERA y PRÓXIMO_ESCLAVO_FUERA con todas las respuestas de EMD de los EM de acuerdo a la posición dirección física de EM. Por ejemplo, MI_ESCLAVO_FUERA controla la señal de EMD como una salida del EM que se direccionó por la CPU. La señal PRÓXIMO_ESCLAVO_FUERA pasa la respuesta de EMD a través del EM si el EM diseccionado por la CPU tiene una mayor dirección o si está corriente debajo de ese EM. Ni MI_ESCLAVO_FUERA y PRÓXIMO_ESCLAVO_FUERA se valora cuando la CPU direcciona un EM con una menor dirección. Todas las tres señales de control llegan a ser inmediatamente inactivas en la ocurrencia de XOD. En una modalidad particular de la invención, se
puede desarrollar el diseño de Esclavo Inicial en un CPLD de Macrocelda 128 usando VHDL como un instrumento de diseño. El diseño de CPLD se migra a un diseño de ASIC. El ASIC se diseña para tener 44 espigas totales con 36 espigas útiles para E/S y 8 espigas para energía y tierra. La frecuencia de operación del ASIC ESCLAVO puede ser 4.125 MHz máximo, que está bien dentro de la capacidad de ASIC. La siguiente tabla define las entradas y salidas requeridas del ASIC Esclavo. Referirse a la Figura 4 (Especificación de Proveedores de ASIC ESCLAVO) para detalles del ASIC. La E/S descrita anteriormente acomoda todas las configuraciones de E/S del Módulo de Expansión. Es decir, la invención es una interfaz universal . Esto se logra al implementar dos modos de operación dentro del ASIC. Las diferencias en la operación del ASIC es la implementación de los puertos de datos EXTO y EXTl . El ASIC esclavo tiene dos modos de operación para acomodar todas las configuraciones de E/S del Módulo de Expansión. En el Modo 0, la barra común EXTO es un registro de entrada de 8 bitios y la barra común EXTl será un registro de salida activo bajo, de 8 bitios. La barra común de datos EXTO y la barra común de datos EXTl se interconectan directamente a la E/S Digital del Módulo de Expansión. El Modo 0 se usa para los Módulos de Expansión de 8ENTRADA/8SALIDA o menos. En el Modo 1, la barra común EXTO
se usa como una barra común de datos bidireccional, activa alta, de 8 bitios y la barra común EXTl se usa como 8 bitios de dirección y control. Los registros externos y la circuitería de descodificación se registran para la operación Modo 1. Modo 1 se usa cuando la configuración de E/S de Módulo de Expansión es mayor que 8ENTRADA/8SALIDA o para un módulo inteligente. El ID_REG se descodifica por cada EM en el arranque para determinar su modo de operación. El ID_REG también se lee por la CPU para determinar el tipo de Módulo de Expansión. La polaridad del puerto de datos EXTO es "activa alta" tanto para el Modo 0 como el 1. El puerto de datos EXTl es "activo bajo" en tanto que la operación de modo 0 y en el modo 1, las líneas de control están "activa bajas" ya las líneas de dirección están "activa altas". En operación, el ASIC Esclavo implementa una arquitectura de máquina de estado para proporcionar comunicación y control apropiado. En el arranque inicial, la CPU emite una señal XOD activa. La detección de XOD coloca a la máquina de estado en su estado original y el puerto de datos EXTl se limpia si está en el modo 0 o los registros de salida externos se limpian si están en el modo 1. También en el arranque inicial, el ASIC Esclavo determina su dirección de módulo (MA_DENTRO) , Modo de operación (Modo 0 a 1) y propaga la próxima dirección del módulo (MA_FUERA) al
incrementar su Dirección de Módulo por 1. Una vez que se libera XOD, la máquina de estado del ASIC esclavo monitorea continuamente la señal XAS de su estado original . Se inicia una transacción de barra común cuando XAS llega a ser activo y cambia al estado 0 en el primer borde de ascenso del reloj EMCO. En el estado 0, la máquina de estado se coloca en un estado conocido y se propaga al estado 1 en el próximo borde de ascenso de reloj EMCO. Si en cualquier tiempo, la señal XOD llega a ser activa, entonces el puerto de datos EXTl se reajusta asincrónicamente y la máquina de estado regresa a su estado original. Si en la operación de modo 1, los registros de salida externos se limpian asincrónicamente y la máquina de estado regresa a su estado original . La próxima ocurrencia de XAS coloca de manera sincrónica la máquina de estado en un estado conocido. La Figura 5 ilustra una Transacción de Escritura de Modo 0. Como se muestra en la Figura 5, una vez que se detecta una XAS valida, el ASIC Esclavo propaga el estado 0 de la máquina de estado de control en el primer borde de ascenso del reloj EMCO. En el estado 0, la señal PRIM_DENTRO se valora y la señal EMD se habilita como una entrada al ASIC Esclavo. La máquina de estado de control empieza a cambiar en los datos del registro de control que empiezan en el borde de ascenso del reloj 1 de EMCO (estado 1) y terminan en borde de ascenso del reloj 10 de EMCO (estado
) . En el estado 4 (reloj 4 de EMCO) , el ASIC Esclavo determina si la Dirección de Módulo (MA) cambia desde que la CPU iguala a la dirección de módulo (MA_DENTRO) propagada en un arranque y si se valora "Mi_dirección" verdadero. En el caso que las direcciones no correspondan, no se valora Mi_dirección y la máquina de estado continua a través de los estados restantes para dar cuenta del control del accionador de barra común EMD apropiado y verifica la paridad del registro de control. En el estado 10, el ASIC Esclavo determina el tipo de transacción que se presenta e introduce a ya se a la máquina de estado de escritura o la máquina de estado de lectura en el próximo reloj EMCO . Durante una transacción de escritura, el ASI-C Esclavo cambia en los datos de escritura que comienzan en el estado 11 (reloj 11 EMCO) y termina en el estado 20 (EMCO 20) . También, durante el estado 11, la paridad de registro de control se verifica y se detecta el evento de error en el registro de control, la máquina de estado de escritura regresa a un estado desocupado y la máquina de estado de control regresa a su estado original en el próximo reloj EMCO. El puerto de datos EXTl no se perturba y la señal de control de barra común PRIM_DENTRO llega a ser inactiva. Si no se detecta error de paridad de registro de control, entonces los datos de escritura se cambian por consiguiente. El estado 20, la señal de control de barra común PRIM DENTRO se libera y en
el estado 21, la máquina de estado prepara las señales de control de barra común de EMD para una respuesta de regreso a la CPU. Si "Mi_dirección" es válido, entonces se valora la señal de control de barra común MI_ESCLAVO_FUERA. Sí no es válido "Mi_dirección" entonces se valora la señal de control de barra común PRÓXIMO_ESCLAVO_FUERA solo si la CPU ha diseccionado un módulo de una mayor dirección. En el estado 22, el ASIC Esclavo verifica la paridad en los datos de escritura. Cuando se detecta un error de paridad de los datos de escritura, el ASIC Esclavo regresa un reconocimiento inválido (11) a la CPU y no presenta nuevos datos al puerto de datos EXTl . Si no se detecta error de paridad, entonces el ASIC Esclavo regresa un reconocimiento válido (01) a la CPU, descodifica la dirección del registro (RA) y permite que se descodifiquen nuevos datos en el puerto de datos EXTl si la dirección de registro "C" (hex) . Si se descodifica cualquier otro registro, la máquina de estado regresa un reconocimiento válido a la CPU, pero no presenta nuevos datos al puerto de datos EXTl. Esto es sólo cierto cuando está en la operación modo 0. En el borde de ascenso del reloj 24 de EMCO, la máquina de estado de escritura regresa a un estado desocupado y la máquina de estado de control regresa a su estado original . La Figura 6 ilustra una transacción de lectura del modo 0 con la CPU que direcciona RA 8 (hex) . La máquina de
estado de control opera igual como la transacción de barra común de escritura previa, excepto en el estado 10 ahora entra a la máquina de estado de lectura. El estado 11, la máquina de lectura libera la señal de control de barra común de EMD, PRIM_DENTRO, selecciona el puerto bic, eccional de EMD (EMD_TRI_EN) como una salida, y verifica la paridad del registro de control. Si se presenta un error de paridad, la máquina de estado de lectura regresa a un estado desocupado y la máquina de estado de control regresa a un estado original en el próximo borde de ascenso del reloj EMCO. S i no se detectó error entonces la máquina de estado de lectura se propaga al estado 12 en el próximo borde de ascenso del reloj EMCO. En el estado 12, la máquina de estado prepara las señales de control de la barra común EMD para una respuesta de regreso a la CPU al valorar la señal de control de barra común MI_ESCLAVO_FUERA. En un estado 12, la dirección de registro (RA) se descodifica para determinar la fuente de datos. Si RA descodifica a 0, entonces se habilitan los datos ID_BUF, si RA descodifica 8 entonces la barra común de datos EXTO se habilita, y si cualquier otra dirección se descodifica entonces se habilita el valor FF hex. En el borde de caída de EMCO 12 el registro "R" se carga con los datos apropiados ya sea de la barra común de datos EXTO, el ID_BUF, o el valor por omisión de FF. Para el caso en la Figura 2, los datos EXTO se cargan en el registro
"R" en el próximo borde de ascenso del reloj EMC (estado 13) la máquina de estado de lectura cambia el bitio 7 de datos de lectura en la línea de EMD y el último bitio 0 de lectura se cambia en el borde de ascenso del reloj EMCO 20 (estado 20) . El ASIC Esclavo genera 2 bitios de paridad, PR1 y PRO, en los 8 bitios de los datos de lectura y cambia estos datos en la línea de EMD en los estados "21 y 22. En el estado 23, todas las señales de control de la barra común de EMD se liberan, la máquina de lectura regresa a un estado desocupado y la máquina de control regresa a su estado original . La Operación de Modo 1 ahora se analizará con referencia a la Figura 7. La barra común EXTl se usará como un puerto de control en el Modo 1 de ASIC. La tabla en la Figura 7 describe cada bitio para el puerto de datos EXTl cuando está en el Modo 1 de ASIC. En una Transacción de Escritura de Modo 1, la máquina de estado de registro de control y la máquina de estado de escritura funcionan igual como en el modo 0, sin embargo, el uso de puerto externo y los registros disponibles difieren del modo 0. En el modo 1, el puerto de datos EXTl se usa como un puerto de control para la circuitería de descodificación externa el puerto de datos EXTO es un puerto de datos bidireccional . Los datos de escritura se habilitan en el puerto de datos EXTO en el
bordo de ascenso del reloj 21 EMCO y es válido para tres periodos de reloj. En la dirección de registro (RA[3:0]) está el reloj en el puerto de datos EXTl en el borde de caída de los relojes EMCO 5, 6, 7 y 8, respectivamente. Las 16 direcciones de registro están disponibles para la descodificación externa. El RSTRB se valora en el borde de caída del reloj ECMO 22 y se limpia en el borde de caída del reloj 23 de EMCO . La señal Ocupado se valora en el borde de caída del reloj 16 EMCO y se limpia en el borde de caída del reloj 24 EMCO. Si se detecta un error de paridad en el bite de ESCRITURA, entonces ambos registros de ASIC y los registros externos requieren su último valor recibido. Al referirse a las figuras 8 y 9 para información de temporización detallada para una vista con separación de tiempo de Modo 1, Temporización de Transacción de Escritura. En una Transacción de Lectura de Modo 1, la máquina de estado de registro de control y la máquina de estado de lectura funcionan igual como en el modo 0, sin embargo el uso de puerto externo y los registros disponibles difieren del modo 0. En el modo 1, el puerto de datos EXTl se usa como un puerto de control para la circuitería de descodificación externa y el puerto de datos EXTO es un puerto de datos bi-direccional. También, la CPU puede tener acceso a los 16 registros en el Modo 1 con el registro 0 aun el registro de ID. Referirse a las Figuras 10 y 11 para
detalles de temporización del puerto de control EXTl y el puerto de datos EXTO. Las Figuras 10 y 11 ilustran la Temporización de Transacción de Lectura de Modo 1.
Definición de Registro de ID: El Registro de ID se direcciona de la Dirección de Registro (RA) 00 hex. La ASIC Esclavo rellena el bitio 7 con un 0 y los 7 bitios restantes se describen de acuerdo al tipo de módulo. De acuerdo a la definición del registro de ID, el ASIC Esclavo opera en el Modo 0 de ASIC sólo para los valores de Registro de ID de 01, 04, y 05 hex. Todos los otros valores de Registro de ID operado en el Modo 1. Las Figuras 12-14 contienen las transacciones de barra común de Lectura y Escritura de modo 1 que exhiben varios errores de paridad. Las Figuras ilustran la operación/respuesta de Barra Común bajo estas condiciones. Las transacciones de barra común de modo 0 responden a estos errores de la misma manera. La Figura 12 ilustra el error de paridad de registro de control de Modo 1 durante una transacción de escritura. La Figura 13 ilustra el error de paridad de Registro de Escritura de Modo 1, Durante una Transacción de Escritura. La Figura 14 ilustra un MODO 1, Error de Paridad Registro y Control durante una Transacción de LECTURA. Las Figuras 15a y 15b ilustra los dos modos en una
forma de diagrama de bloques. Como se muestra en la Figura 15a, el ASI esclavo está en el modo 1. En este estado, una primera línea de barra común se dedica como una salida y la segunda barra común proporciona líneas de control para enviar señales de control a los módulos unidos. La Figura 15b, el mismo ASIC esclavo se conmuta en el modo 0. En este estado, la primera barra común permanece en una salida de barra común. La segunda barra común, sin embargo, se conmuta a una entrada de barra común. De este modo, la invención realiza la interfaz universal para una pluralidad de modos como se contempla la descripción de los modos anteriores. En tanto que la presente invención se describe con referencia a modalidades particulares, se apreciará que la invención no se limita a una modalidad particular, sino que puede abarcar todas las modificaciones y permutaciones que estén dentro del alcance de la invención.