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
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)