ENRUTADOR Y ENSAMBLADOR DE PAQUETES PARA RED RS-485 Ing. Francisco Nicolai Candelo Parra (
[email protected]) Ing. Christian Camargo Pedraza (
[email protected]) Ing. Giovanni Albeiro Ramirez (
[email protected]) Pontificia Universidad Javeriana Director del proyecto: Jorge Enrique Ramirez Neira
Resumen El objetivo de este proyecto fue el diseñar y construir un equipo de comunicaciones que permitiera la conexión de puertos seriales a través de un solo medio de transmisión utilizando el concepto de subredes y siendo de fácil manejo y administración. Actualmente el proyecto sirve como soporte en el transporte de datos a varios trabajos de grado en el departamento de electrónica de la facultad de ingeniería.
Introducción Los enrutadores y ensambladores de paquetes para red RS-485 son equipos de comunicaciones destinados al transporte de información de diversas aplicaciones que utilizan sus puertos seriales a traves de un solo medio de transmisión (cable). La topología física utilizada es de tipo bus (figura 1) y la topología lógica que se utiliza para la comunicación entre los enrutadores es de tipo anillo (figura 2). La asociación lógica de puertos de enrutadores a una aplicación se hace a través de una subred (figura 3). Cada subred creada posee propiedades como la velocidad de transmisión, el número de bits de datos, la paridad, los bits de parada y el control de flujo; además es completamente independiente de otras subredes existentes. El número máximo de enrutadores es 96, de puertos es 768 y de subredes 252. La máxima distancia entre enrutadores es 50 metros, por lo que se podría, en conjunto con un par de repetidores RS-485 1 tener una distancia máxima de 4750 mts. Adicionalmente, la conexión puede ser punto – punto o multipunto (varios puertos asociados a la subred), lo que permite “extender” las características normales del estándar RS-232.
1
Actualmente se está llevando a cabo un estudio para el diseño y construcción de los repetidores por parte de un grupo de estudiantes de trabajo de grado
Figura 1. Topología Física de la red de Enrutadores
Figura 2. Topología lógica de la red de Enrutadores Arquitectura Los ENENPA 485 operan alrededor de un microcontrolador (Motorola HC12B32), una memoria SRAM externa de 32KB, un transceiver RS-485 y desde 1 hasta 4 DUARTS (Dual UART). El microcontrolador, las DUART y la memoria comparten un bus de datos, la memoria y las DUART tienen buses de control separados (Ver figura 4).
Figura 3. Estructura de las subredes
CS
0 TARJETA DE PUERTOS 0
INTERFAZ DE RED
SPI
TARJETA DE PUERTOS 2
CONTROL (2 BITS)
CS 3
TARJETA DE PUERTOS 3
ADMINISTRACIÓN
MCU XC68HC912B32
SC I
(8 BITS)
CS 2
DE DATOS
BUS DE CONTROL UARTS (7 BITS)
1 TARJETA DE PUERTOS 1
BUS
CS
BUS DE DIRECCIONES (14 BITS)
BLOQUE DE ALMACENAMIENTO
Figura 4. Arquitectura del ENENPA 485
Modo de operación Los enrutadores tienen tres modos básicos de funcionamiento: Inicio de la red, Maestro y esclavo. Inicio de la red: Esta es la fase en la que se inician todas las variables del sistema, se definen estados iniciales para ciertos dispositivos y se determina el enrutador que tendra el token en el arranque de la red. Todos los enrutadores inician en modo esclavo (o modo escucha) utilizando un temporizador al final del cual pasará a modo maestro (Figura 5).
INICIO INICIO
INI_PORTS INICIO PUERTOS uC
INISPI
INICIO SPI
PRINCIPAL SPISLV PRINCIPAL SPI ESCLAVO
INI_RAM MAESTRO INICIO RAM EXTERNA (APUNTADORES)
BANDERA MAESTRO
SI
MAESTRO
GEN_IMAGEN GENERACION IMAGEN Y SIGUIENTE ROUTER
NO ESCLAVO
ESCLAVO
CFG_PORTS DETERMINAR Y CONFIGURAR PUERTOS ACTIVOS
MISMA_SUBRED DETERMINAR PUERTOS EN LA MISMA SUBRED
INI_RED
PASO_TOKEN SPIMSTR
RETARDO FIJO INICIA CONTADOR ALEATORIO
DECREMENTA CONTADOR ALEATORIO
HAY BYTES RECIBIDOS ?
CONTADOR ALEATORIO = 0 ?
SPI MAESTRO
PASO FICHA
BORRA BANDERA DE MAESTRO
ESPERA
Figura 5. Inicio de la red
PRINCIPAL
Modo esclavo: En este modo, el enrutador “escucha” el medio de transmisión detectando cualquier paquete que este dirigido ya sea hacia él o hacia alguna subred contenida en él; verifica su validez (se utiliza codigo de detección de errores CRC – 16) y realiza una acción dependiendo del tipo de trama (figura 6). Algunas de la tramas más relevantes son: •
Información: la información contenida en el campo de datos del protocolo se coloca en el buffer de recepción del puerto destino. Paso de ficha: el enrutador lógicamente anterior hace “entrega” de la ficha, por lo cual el que la recibe se pasa a modo maestro, previa revisión de su tabla de enrutamiento Control: La información proveniente del puerto de consola es analizada, armando la trama de respuesta correspondiente a la aplicación de control o a otro enrutador si la solicitud no es local.
• •
Adicionalmente al análisis de información procedente de los enrutadores, se elabora una encuesta periódica a las DUARTS; extrayendo la información residente en su buffer interno y pasándola directamente a memoria. ESCLAVO
SPISLV
SPI ESCLAVO
NO ESPERA_LINEA
BANDERA ULTIMO MAESTRO ?
SI
HAY BYTES RECIBIDOS ?
DECREMENTA RETARDO
INICIO RETARDO
ESPERA
RETARDO = 0 ?
NO
SI
PASO FICHA 2
SI
NO NO
NO HAY ENCABEZAD O ?
SI
HAY TRAMA COMPLETA ?
ES DEL ADMINISTRA DOR ?
TRAMA_MALA
NO
INCREMENTA CONTADOR DE TRAMAS ERRONEAS RECIBIDAS
ALMACENA ROUTER ORIGEN PUERTO
NO
ESPERA2
SI
SI
GENERA IMAGEN DE TRAMA RECIBIDA
ES DE DATOS O RETRANSMISIÓN ?
CRC OK ?
CALCULA CRC
MARCA PARA SOLICITUD DE RETRANSMISIÓN DE ADMINISTRACIÓN
SI
MOV_INFO
ESPERA
ESPERA CAL_CRC
SI
ES DATOS ?
ES PASO FICHA ?
NO
SI
ES SOLICITUD DE RTX ?
NO
SI
SI
TOKEN
MARCAR SOLICITUD DE RTX
ES RTX ?
NO
SOY ADMINISTRA DOR ?
NO
SI
SI
RETRANSMISION
ADMINISTRACION ESCLAVO
NO DATOS
DATOS
ES MODIFICACIÓN DE PUERTO ?
NO
ES MODIFICACIÓ N DE SUBRED ?
TOKEN
NO
ES MODIFICACIÓN DE TABLA ?
MARCAR_RTX
ANA_SCI
R_TX
ES SOLICITUD DE INFORMACIÓN PUERTOS ?
ES SOLICITUD DE ESTADÍSTICAS ?
ES RESET DE ESTADISTICAS ?
SI
SI
SI
SI
SI
SI
PUERTO
SUBRED
TABLA
INFORMACÓN PUERTOS
ESTADISTICAS
RESET ESTADISTICAS
M_PUERTO
M_SUBRED
M_TABLA_E
SOL_INF_PUERTOS
Figura 6. Estado esclavo
SOL_EST
RES_EST
Modo maestro: En este modo el enrutador empieza a revisar cada uno de los espacios de memoria asignados a cada puerto y a armar los paquetes teniendo en cuenta la tabla de enrutamiento, la cual le informa al enrutador hacia que subred se debe dirigir el paquete. Por último se envían las tramas de reenvío que se solicitaron mientras el enrutador se encontraba en modo esclavo. También se envían las tramas dedicadas a administración ya sea al puerto de consola local o al enrutador que tenga conectado el sistema de administración (ver figura 7). Protocolo utilizado Para toda la comunicación del sistema se diseñó un protocolo de transmisión de datos exclusivo, teniendo en cuenta las características más relevantes de protocolos estándar como son Frame Relay, ATM o Token Ring, entre otros. Es un protocolo de longitud variable orientado a byte y a conexión, cuenta con campos de subred o enrutador de origen y/o destino, campo de control, campo de datos y campo de CRC tanto la comunicación de alta velocidad como la comunicación con la aplicación de administración utilizan este protocolo (figura 8). Conclusiones Se construyeron 4 enrutadores y 7 tarjetas de puertos completamente funcionales (Figura 9, 10) con las siguientes características: • • •
• •
Fuente de alimentación 120 Vac. Consumo de potencia: máximo 2 W. Capacidad de uno hasta ocho puertos seriales EIA/TIA 574 (DB-9) configurables en en número de bits de datos (5 bits, 6 bits, 7bits y 8 bits), tipos de paridad (habilitada o deshabilitada), bits de parada (1, 1 1/2 y 2), velocidad (600,1200, 1800, 2400, 3600, 48009600, 14400 y 19200 bps) y control de flujo (hardware, Xon/Xoff o ninguno). Panel frontal con indicadores de encendido del equipo, voltaje de programación y actividad de los puertos. Sistema de administración local o remoto.
MAESTRO
SPI MAESTRO
POLL UARTS
POLL BUFFERS
INICIO VARIABLES
RECIBIÓ TRAMAS ERRADAS ?
SOLICITUD DE RETRANSMISIÓNES
SI
NO MAESTRO0
HAY SOLICITUDES DE RETRANSMISIÓN PARA EL PUERTO 0
RE_TX
CARGAR APUNTADORES DE ULTIMA TRANSMISIÓN
SI
RETRANSMITIR INFORMACIÓN
BORRA BANDERA DE RETRANSMISIÓN
MAESTRO1
VER_BANDERAS
CARGAR APUNTADORES
NO
HAY SUFICIENTES DATOS ?
NO
CARGAR VARIABLES GENERALES
SI
ALMACENA APUNTADORES
MAESTRO1
ENVIA INFORMACION A PUERTOS LOCALES DE LA MISMA SUBRED
MAESTRO7 RE_TX
HAY SOLICITUDES DE RETRANSMISION PARA EL PUERTO 7
CARGAR APUNTADORES DE ULTIMA TRANSMISIÓN
SI
VER_BANDERAS
RETRANSMITIR INFORMACION
BORRA BANDERA DE RETRANSMISIÓN
VER_BANDERAS
CARGAR APUNTADORES
NO
HAY SUFICIENTES DATOS
SI
CARGAR VARIABLES GENERALES
VER_BANDERAS
NO ALMACENA APUNTADORES
ADMINISTRACIÓN
MS_PTO
ADMON
ENVIA INFORMACION A PUERTOS LOCALES DE LA MISMA SUBRED
PASO_TOKEN
PASO FICHA
FIN MAESTRO
Figura 7. Modo Maestro 7
0 – 64
0 1 2 3 4
6
5
4 3 2 1 0 BANDERA DIRECCIÓN DE DESTINO DIRECCIÓN DE ORIGEN PUERTO TIPO DE TRAMA R R NÚMERO DE BYTES DE DATOS
INFORMACIÓN
CRC LSB CRC MSB Figura 8. Protocolo de comunicaciones
Figura 9. Vista interior ENENPA 485
Figura 10. ENENPA 485 (Vista exterior)