13.05.2013 Views

Enrutador y ensamblador de paquetes para red RS-485 - Iberchip.net

Enrutador y ensamblador de paquetes para red RS-485 - Iberchip.net

Enrutador y ensamblador de paquetes para red RS-485 - Iberchip.net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Resumen<br />

ENRUTADOR Y ENSAMBLADOR DE PAQUETES PARA RED <strong>RS</strong>-<strong>485</strong><br />

Ing. Francisco Nicolai Can<strong>de</strong>lo Parra (ncan<strong>de</strong>lo@<strong>net</strong>scape.<strong>net</strong>)<br />

Ing. Christian Camargo Pedraza (ccamargopedraza@usa.<strong>net</strong>)<br />

Ing. Giovanni Albeiro Ramirez (giovanni_ramirez@hotmail.com)<br />

Pontificia Universidad Javeriana<br />

Director <strong>de</strong>l proyecto: Jorge Enrique Ramirez Neira<br />

El objetivo <strong>de</strong> este proyecto fue el diseñar y construir un equipo <strong>de</strong> comunicaciones que<br />

permitiera la conexión <strong>de</strong> puertos seriales a través <strong>de</strong> un solo medio <strong>de</strong> transmisión<br />

utilizando el concepto <strong>de</strong> subre<strong>de</strong>s y siendo <strong>de</strong> fácil manejo y administración. Actualmente<br />

el proyecto sirve como soporte en el transporte <strong>de</strong> datos a varios trabajos <strong>de</strong> grado en el<br />

<strong>de</strong>partamento <strong>de</strong> electrónica <strong>de</strong> la facultad <strong>de</strong> ingeniería.<br />

Introducción<br />

Los enrutadores y <strong>ensamblador</strong>es <strong>de</strong> <strong>paquetes</strong> <strong>para</strong> <strong>red</strong> <strong>RS</strong>-<strong>485</strong> son equipos <strong>de</strong><br />

comunicaciones <strong>de</strong>stinados al transporte <strong>de</strong> información <strong>de</strong> diversas aplicaciones que<br />

utilizan sus puertos seriales a traves <strong>de</strong> un solo medio <strong>de</strong> transmisión (cable). La topología<br />

física utilizada es <strong>de</strong> tipo bus (figura 1) y la topología lógica que se utiliza <strong>para</strong> la<br />

comunicación entre los enrutadores es <strong>de</strong> tipo anillo (figura 2). La asociación lógica <strong>de</strong><br />

puertos <strong>de</strong> enrutadores a una aplicación se hace a través <strong>de</strong> una sub<strong>red</strong> (figura 3). Cada<br />

sub<strong>red</strong> creada posee propieda<strong>de</strong>s como la velocidad <strong>de</strong> transmisión, el número <strong>de</strong> bits <strong>de</strong><br />

datos, la paridad, los bits <strong>de</strong> <strong>para</strong>da y el control <strong>de</strong> flujo; a<strong>de</strong>más es completamente<br />

in<strong>de</strong>pendiente <strong>de</strong> otras subre<strong>de</strong>s existentes.<br />

El número máximo <strong>de</strong> enrutadores es 96, <strong>de</strong> puertos es 768 y <strong>de</strong> subre<strong>de</strong>s 252. La máxima<br />

distancia entre enrutadores es 50 metros, por lo que se podría, en conjunto con un par <strong>de</strong><br />

repetidores <strong>RS</strong>-<strong>485</strong> 1 tener una distancia máxima <strong>de</strong> 4750 mts. Adicionalmente, la conexión<br />

pue<strong>de</strong> ser punto – punto o multipunto (varios puertos asociados a la sub<strong>red</strong>), lo que permite<br />

“exten<strong>de</strong>r” las características normales <strong>de</strong>l estándar <strong>RS</strong>-232.<br />

1 Actualmente se está llevando a cabo un estudio <strong>para</strong> el diseño y construcción <strong>de</strong> los repetidores por parte <strong>de</strong><br />

un grupo <strong>de</strong> estudiantes <strong>de</strong> trabajo <strong>de</strong> grado


Arquitectura<br />

Figura 1. Topología Física <strong>de</strong> la <strong>red</strong> <strong>de</strong> <strong>Enrutador</strong>es<br />

Figura 2. Topología lógica <strong>de</strong> la <strong>red</strong> <strong>de</strong> <strong>Enrutador</strong>es<br />

Los ENENPA <strong>485</strong> operan alre<strong>de</strong>dor <strong>de</strong> un microcontrolador (Motorola HC12B32), una<br />

memoria SRAM externa <strong>de</strong> 32KB, un transceiver <strong>RS</strong>-<strong>485</strong> y <strong>de</strong>s<strong>de</strong> 1 hasta 4 DUARTS<br />

(Dual UART). El microcontrolador, las DUART y la memoria comparten un bus <strong>de</strong> datos,<br />

la memoria y las DUART tienen buses <strong>de</strong> control se<strong>para</strong>dos (Ver figura 4).


BUS DE CONTROL UARTS (7 BITS)<br />

TARJETA DE<br />

PUERTOS 0<br />

TARJETA DE<br />

PUERTOS 1<br />

TARJETA DE<br />

PUERTOS 2<br />

TARJETA DE<br />

PUERTOS 3<br />

Figura 3. Estructura <strong>de</strong> las subre<strong>de</strong>s<br />

CS<br />

0<br />

CS<br />

1<br />

CS<br />

2<br />

CS<br />

3<br />

BUS DE DATOS (8 BITS)<br />

INTERFAZ DE RED<br />

SPI<br />

MCU<br />

XC68HC912B32<br />

CONTROL<br />

(2 BITS)<br />

BLOQUE DE<br />

ALMACENAMIENTO<br />

Figura 4. Arquitectura <strong>de</strong>l ENENPA <strong>485</strong><br />

SC<br />

I<br />

ADMINISTRACIÓN<br />

BUS DE DIRECCIONES (14<br />

BITS)


Modo <strong>de</strong> operación<br />

Los enrutadores tienen tres modos básicos <strong>de</strong> funcionamiento: Inicio <strong>de</strong> la <strong>red</strong>, Maestro y<br />

esclavo.<br />

Inicio <strong>de</strong> la <strong>red</strong>: Esta es la fase en la que se inician todas las variables <strong>de</strong>l sistema, se<br />

<strong>de</strong>finen estados iniciales <strong>para</strong> ciertos dispositivos y se <strong>de</strong>termina el enrutador que tendra<br />

el token en el arranque <strong>de</strong> la <strong>red</strong>. Todos los enrutadores inician en modo esclavo (o modo<br />

escucha) utilizando un temporizador al final <strong>de</strong>l cual pasará a modo maestro (Figura 5).<br />

INICIO<br />

INICIO PUERTOS<br />

uC<br />

INICIO SPI<br />

SPI ESCLAVO<br />

INICIO RAM<br />

EXTERNA<br />

(APUNTADORES)<br />

GENERACION IMAGEN Y<br />

SIGUIENTE ROUTER<br />

DETERMINAR Y<br />

CONFIGURAR<br />

PUERTOS<br />

ACTIVOS<br />

DETERMINAR<br />

PUERTOS EN LA<br />

MISMA SUBRED<br />

RETARDO FIJO<br />

INICIA CONTADOR<br />

ALEATORIO<br />

INICIO<br />

INI_PORTS<br />

INISPI<br />

SPISLV<br />

INI_RAM<br />

GEN_IMAGEN<br />

CFG_PORTS<br />

MISMA_SUBRED<br />

INI_RED<br />

DECREMENTA<br />

CONTADOR<br />

ALEATORIO<br />

HAY BYTES<br />

RECIBIDOS<br />

?<br />

ESPERA<br />

PRINCIPAL<br />

BANDERA<br />

MAESTRO<br />

NO<br />

ESCLAVO<br />

CONTADOR<br />

ALEATORIO =<br />

0<br />

?<br />

Figura 5. Inicio <strong>de</strong> la <strong>red</strong><br />

PRINCIPAL<br />

SI<br />

ESCLAVO<br />

MAESTRO<br />

SPIMSTR<br />

MAESTRO<br />

PASO_TOKEN<br />

SPI MAESTRO PASO FICHA<br />

BORRA BANDERA DE<br />

MAESTRO<br />

PRINCIPAL


Modo esclavo: En este modo, el enrutador “escucha” el medio <strong>de</strong> transmisión <strong>de</strong>tectando<br />

cualquier paquete que este dirigido ya sea hacia él o hacia alguna sub<strong>red</strong> contenida en él;<br />

verifica su vali<strong>de</strong>z (se utiliza codigo <strong>de</strong> <strong>de</strong>tección <strong>de</strong> errores CRC – 16) y realiza una acción<br />

<strong>de</strong>pendiendo <strong>de</strong>l tipo <strong>de</strong> trama (figura 6). Algunas <strong>de</strong> la tramas más relevantes son:<br />

• Información: la información contenida en el campo <strong>de</strong> datos <strong>de</strong>l protocolo se<br />

coloca en el buffer <strong>de</strong> recepción <strong>de</strong>l puerto <strong>de</strong>stino.<br />

• Paso <strong>de</strong> ficha: el enrutador lógicamente anterior hace “entrega” <strong>de</strong> la ficha, por<br />

lo cual el que la recibe se pasa a modo maestro, previa revisión <strong>de</strong> su tabla <strong>de</strong><br />

enrutamiento<br />

• Control: La información proveniente <strong>de</strong>l puerto <strong>de</strong> consola es analizada,<br />

armando la trama <strong>de</strong> respuesta correspondiente a la aplicación <strong>de</strong> control o a<br />

otro enrutador si la solicitud no es local.<br />

Adicionalmente al análisis <strong>de</strong> información proce<strong>de</strong>nte <strong>de</strong> los enrutadores, se elabora una<br />

encuesta periódica a las DUARTS; extrayendo la información resi<strong>de</strong>nte en su buffer interno<br />

y pasándola directamente a memoria.<br />

NO<br />

ESCLAVO<br />

SPI ESCLAVO<br />

BANDERA<br />

ULTIMO<br />

MAESTRO<br />

?<br />

NO<br />

HAY<br />

ENCABEZAD<br />

O<br />

?<br />

HAY BYTES<br />

RETARDO =<br />

DECREMENTA<br />

SI INICIO RETARDO<br />

RECIBIDOS NO<br />

0<br />

SI<br />

RETARDO<br />

?<br />

?<br />

SI<br />

GENERA IMAGEN<br />

DE TRAMA RECIBIDA<br />

ES<br />

MODIFICACIÓN<br />

DE PUERTO<br />

?<br />

SI<br />

PUERTO<br />

ES DATOS<br />

?<br />

SI<br />

NO<br />

HAY<br />

TRAMA<br />

COMPLETA<br />

?<br />

CALCULA CRC<br />

SI<br />

NO<br />

ES PASO<br />

FICHA<br />

?<br />

NO<br />

NO<br />

CRC OK<br />

?<br />

ES<br />

SOLICITUD<br />

DE RTX<br />

?<br />

SI SI<br />

SI<br />

DATOS TOKEN<br />

NO<br />

SPISLV<br />

ESPERA<br />

ES<br />

MODIFICACIÓ<br />

N DE SUBRED<br />

?<br />

SI<br />

SUBRED<br />

SI<br />

ESPERA2<br />

MOV_INFO CAL_CRC<br />

M_PUERTO<br />

NO<br />

TRAMA_MALA<br />

ES<br />

MODIFICACIÓN<br />

DE TABLA<br />

?<br />

SI<br />

TABLA<br />

MARCAR<br />

SOLICITUD DE<br />

RTX<br />

NO<br />

Figura 6. Estado esclavo<br />

NO<br />

ES DEL<br />

ADMINISTRA<br />

DOR<br />

?<br />

ES DE DATOS O<br />

RETRANSMISIÓN<br />

?<br />

ES SOLICITUD<br />

DE<br />

INFORMACIÓN<br />

PUERTOS<br />

?<br />

SI<br />

INFORMACÓN<br />

PUERTOS<br />

SI<br />

ES RTX<br />

?<br />

SI<br />

RETRANSMISION<br />

NO<br />

ESPERA_LINEA<br />

NO<br />

ALMACENA<br />

ROUTER ORIGEN<br />

PUERTO<br />

SI<br />

ES SOLICITUD<br />

DE<br />

ESTADÍSTICAS<br />

?<br />

SI<br />

ESTADISTICAS<br />

SOY<br />

ADMINISTRA<br />

DOR<br />

?<br />

SI<br />

ADMINISTRACION<br />

ESCLAVO<br />

DATOS TOKEN MARCAR_RTX R_TX ANA_SCI<br />

M_SUBRED M_TABLA_E<br />

ESPERA<br />

SOL_INF_PUERTOS<br />

ESPERA<br />

SOL_EST<br />

PASO FICHA<br />

2<br />

INCREMENTA<br />

CONTADOR DE<br />

TRAMAS ERRONEAS<br />

RECIBIDAS<br />

MARCA PARA<br />

SOLICITUD DE<br />

RETRANSMISIÓN DE<br />

ADMINISTRACIÓN<br />

ES RESET DE<br />

ESTADISTICAS<br />

?<br />

SI<br />

RESET<br />

ESTADISTICAS<br />

NO<br />

RES_EST


Modo maestro: En este modo el enrutador empieza a revisar cada uno <strong>de</strong> los espacios <strong>de</strong><br />

memoria asignados a cada puerto y a armar los <strong>paquetes</strong> teniendo en cuenta la tabla <strong>de</strong><br />

enrutamiento, la cual le informa al enrutador hacia que sub<strong>red</strong> se <strong>de</strong>be dirigir el paquete.<br />

Por último se envían las tramas <strong>de</strong> reenvío que se solicitaron mientras el enrutador se<br />

encontraba en modo esclavo. También se envían las tramas <strong>de</strong>dicadas a administración ya<br />

sea al puerto <strong>de</strong> consola local o al enrutador que tenga conectado el sistema <strong>de</strong><br />

administración (ver figura 7).<br />

Protocolo utilizado<br />

Para toda la comunicación <strong>de</strong>l sistema se diseñó un protocolo <strong>de</strong> transmisión <strong>de</strong> datos<br />

exclusivo, teniendo en cuenta las características más relevantes <strong>de</strong> protocolos estándar<br />

como son Frame Relay, ATM o Token Ring, entre otros.<br />

Es un protocolo <strong>de</strong> longitud variable orientado a byte y a conexión, cuenta con campos <strong>de</strong><br />

sub<strong>red</strong> o enrutador <strong>de</strong> origen y/o <strong>de</strong>stino, campo <strong>de</strong> control, campo <strong>de</strong> datos y campo <strong>de</strong><br />

CRC tanto la comunicación <strong>de</strong> alta velocidad como la comunicación con la aplicación <strong>de</strong><br />

administración utilizan este protocolo (figura 8).<br />

Conclusiones<br />

Se construyeron 4 enrutadores y 7 tarjetas <strong>de</strong> puertos completamente funcionales (Figura 9,<br />

10) con las siguientes características:<br />

• Fuente <strong>de</strong> alimentación 120 Vac.<br />

• Consumo <strong>de</strong> potencia: máximo 2 W.<br />

• Capacidad <strong>de</strong> uno hasta ocho puertos seriales EIA/TIA 574 (DB-9) configurables en<br />

en número <strong>de</strong> bits <strong>de</strong> datos (5 bits, 6 bits, 7bits y 8 bits), tipos <strong>de</strong> paridad (habilitada<br />

o <strong>de</strong>shabilitada), bits <strong>de</strong> <strong>para</strong>da (1, 1 1/2 y 2), velocidad (600,1200, 1800, 2400,<br />

3600, 48009600, 14400 y 19200 bps) y control <strong>de</strong> flujo (hardware, Xon/Xoff o<br />

ninguno).<br />

• Panel frontal con indicadores <strong>de</strong> encendido <strong>de</strong>l equipo, voltaje <strong>de</strong> programación y<br />

actividad <strong>de</strong> los puertos.<br />

• Sistema <strong>de</strong> administración local o remoto.


Figura 7. Modo Maestro<br />

7 6 5 4 3 2 1 0<br />

0 BANDERA<br />

1 DIRECCIÓN DE DESTINO<br />

2 DIRECCIÓN DE ORIGEN<br />

3 PUERTO TIPO DE TRAMA<br />

4 R R NÚMERO DE BYTES DE DATOS<br />

0 – 64<br />

MAESTRO<br />

SPI MAESTRO<br />

POLL UARTS<br />

POLL BUFFE<strong>RS</strong><br />

INICIO VARIABLES<br />

RECIBIÓ TRAMAS<br />

ERRADAS<br />

?<br />

NO<br />

HAY SOLICITUDES<br />

DE RETRANSMISIÓN PARA<br />

EL PUERTO 0<br />

HAY SOLICITUDES<br />

DE RETRANSMISION PARA<br />

EL PUERTO 7<br />

MAESTRO0<br />

SI<br />

SOLICITUD DE<br />

RETRANSMISIÓNES<br />

CARGAR<br />

APUNTADORES DE<br />

ULTIMA TRANSMISIÓN<br />

RETRANSMITIR<br />

INFORMACIÓN<br />

INFORMACIÓN<br />

BORRA BANDERA DE<br />

RETRANSMISIÓN<br />

CARGAR<br />

CARGAR<br />

HAY SUFICIENTES<br />

NO SI VARIABLES<br />

VER_BANDERAS<br />

APUNTADORES<br />

DATOS<br />

GENERALES<br />

?<br />

NO<br />

ADMINISTRACIÓN<br />

PASO FICHA<br />

FIN MAESTRO<br />

SI<br />

MAESTRO7<br />

SI<br />

ADMON<br />

CARGAR<br />

APUNTADORES DE<br />

ULTIMA TRANSMISIÓN<br />

CARGAR<br />

APUNTADORES<br />

NO<br />

PASO_TOKEN<br />

CRC LSB<br />

CRC MSB<br />

Figura 8. Protocolo <strong>de</strong> comunicaciones<br />

NO<br />

RETRANSMITIR<br />

INFORMACION<br />

HAY SUFICIENTES<br />

DATOS<br />

MAESTRO1<br />

RE_TX<br />

SI<br />

RE_TX<br />

BORRA BANDERA DE<br />

RETRANSMISIÓN<br />

CARGAR<br />

VARIABLES<br />

GENERALES<br />

MS_PTO<br />

ALMACENA<br />

APUNTADORES<br />

MAESTRO1<br />

VER_BANDERAS<br />

ENVIA INFORMACION A<br />

PUERTOS LOCALES DE LA<br />

MISMA SUBRED<br />

VER_BANDERAS<br />

ALMACENA<br />

APUNTADORES<br />

VER_BANDERAS<br />

ENVIA INFORMACION A<br />

PUERTOS LOCALES DE LA<br />

MISMA SUBRED


Figura 9. Vista interior ENENPA <strong>485</strong><br />

Figura 10. ENENPA <strong>485</strong> (Vista exterior)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!