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)