Monitoreo TCP/IP con ENC28j60 y PIC18F2620

Primero que todo quisiera darle gracias a toda la comunidad, ya que por medio de todos los post que he leido en este medio he aclarado varios puntos que me tenian preocupado.

Como ven este es mi primer post, me presento mi nombre es Miguel, soy ingeniero en telecomunicaciones y estoy en medio de un proyecto personal que luego de varios prototipos, a la final he tomado la decisión de utilizar el ENC28j60 y el PIC18F2620.

El proyecto consiste en detectar por medio del 18F2620 cuando el trafico de la red ISP que viene del ENC28j60 esta muy lento, o simplemente detectar cuando esta caida la red, para luego dar una orden a unos reles y realizar un suicheo para otro ISP.

Ustedes me diran que ya existen equipos que realizan esta operacion, pero haciendolo yo mismo me saldria mas economico y aprenderia muchisimo mas.

Me gustaria que me ayudaran en lo siguiente, el montaje como tal lo tengo bien claro, aun no he decidido si el 18F2620 es el PiC indicado para este trabajo, me gustaria que me recomendaran otro o si el que estoy usando esta bien.

Tambien me gustaria que me recomendaran algun tutorial de programacion para el PIC en lenguaje C, que me muestra como trabajar las SPI y distintas interfaces de captura de datos ya que estamos tratando con trafico de red.

Anteriormente he trabajado con algunos compiladores como el IC-PROG, este tambien creo que funciona para este tipo de PIC, si ustedes conocen uno mas poderoso tambien me gustaria saberlo.

Una ves mas gracias por todo y bueno espero sus respuestas.
 
Hola:

Parece interesante el proyecto.

En IC-PROG hay otro que está muy bien que es el www.winpic800.com

Sobre el 18F2620, la verdad pregúntate que cantidad de pines vas a utilizar, ¿oscilador interno es suficiente? ¿Memoria RAM, Flash EEPROM? cosas así.

Hojas de datos o Datasheet:
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1004&mid=10&lang=en&pageId=74

Los PIC de alta gama suelen usar mucho los 18F2550 de 28 pins o los 18F4550 de 40 Pines, para lo que vas hacer, te vale el que nombraste, aún así que vengan más expertos de pic de gama alta y te aconsejarán mejor.
 
Hola Meta gracias por tu pronta respuesta, el funcionamiento del PIC es el siguiente,

Como sabemos el trafico red es almacenado por el ENC28j60 en sus registros y cuando recibe una orden especifica, este envia los paquetes Ip almacenados en los registros por sus puertos.

El funcionamiento del PIC sera enviar esas ordenes y ademas tomar los datos o trafico en binario que arroja el ENC28j60 por SO y Si (puertos Tx y Rx), luego por medio de una programacion previa el PIC debe analizar cuando la red esta lenta o caida, cuando el detecte esta situacion tendra que darle una orden a unos reles para que hagan el suicheo de un rj45 a otro (ISP 1 al ISP 2) .

Claro en la programacion se tiene que crear un modelo de Paquete IP para que el PIC este familiarizado con los paquetes que esta recibiendo. La parte del paquete que el PIC analizaria en todo el trafico seria direcciones IP y MAC y el numero de saltos de los paquetes, jugando un poco con todos estos datos se puede lograr detectar cuando la red esta caida o lenta.

Por supuesto al ocurrir una caida fisica de la red la cosa es mas facil, por que solo se detectaria una caida de tension.
 
Estan muy bueno esos link, y me ayudo a concretar la parte de la circuiteria gracias Macraiq.

Lo has dicho muy bien un router twin ISP me hace el trabajo muy facil, me da Load Balance y Auomatic Failover Capacibility, estos router son algo costosos y este suicheo es una de las multiples funciones que realiza.

Yo solo quiero la funcion de suicheo cuando la red esta lenta o caida y pues me puse a investigar sobre el asunto y me di de cuenta que no es muy complicado si tienes conocimiento de como se comporta el trafico en la red.

Al principio queria realizar el desacople de la señal del RJ45 y luego descifrar el codigo manchester que posee el trafico para asi tener el trafico IP virgen y manejarme solo con 1 PIC de la familia 16F.

Pero las tarjetas que ya vienen armadas con el dessacople y el ENC28j60 me facilitan las cosas y son muy economicas, primero por que me sincronizan el trafico (que es algo bastante dificil) y segundo poseen MAC propias ademas me dan el paquete IP virgen.

Una de las cosas que me falto agregar es que por medio del PIC y el ENC28j60 puedo enviar un paquete Ip haciendo PING por el isp a una web site como por ejemplo google y asi comprobar si la red esta activa o no, cosa que los AVR creo que no me permiten.

La idea de la programacion la tengo pero practicamente no he trabajado nunca con la serie 18F me gustaria que me facilitaran algun tutorial o guia para la programacion de estos señores en lenguaje C o algunas lineas de comandos en C que tengan algo de relacion con la comunicacion entre el ENC28j60 y el PIC que es en lo que tengo algo de problema.

Nuevamente muchas gracias por prestar de su ayuda, si logro terminar el proyecto con gusto dejare mi proyecto plasmado aca.
 
Shakkangelcliff dijo:
Una de las cosas que me falto agregar es que por medio del PIC y el ENC28j60 puedo enviar un paquete Ip haciendo PING por el isp a una web site como por ejemplo google y asi comprobar si la red esta activa o no, cosa que los AVR creo que no me permiten.

WTF?

claro que puedes hacer lo mismo con un AVR, un MSP430, un 8051, el que sea...

Aun asi si quieres PIC, deberias considerar mi recomendacion anterior.
 
eidtech dijo:
si vas a utilizar un PIC, mejor utiliza los que ya traen un transceiver Ethernet integrado, como el PIC18F86J60 entre otros..

Microchip tiene el stack tcp/ip, por lo tanto la labor seria mas sencilla.

Sep esos PIC tambien los he visto, pero el ENC28j60 me hace la funcion de transceiver Ethernet tambien, preferi usar el ENC28j60 aparte junto con otro PIC para no sobrecarga a un solo PIC con tantas funciones.

Igual el diseño como tal esta sujeto a cambios si veo que un solo PIC con transceiver integrado es mas sencillo y eficaz pues bienvenido sea.

gracias por tu aporte
 
me puse a analizar un poco mas tu proyecto, y si pretendes analizar todos los paquetes provenientes de la red, no creo que el ENC28J60 de el ancho, debido a su interfaz SPI... donde no puedes obtener datos a tanta velocidad (y estarias perdiendo paquetes).

ahi quedaria como recomendacion el Wiznet, algun Realtek o Cirrus Logic dado a sus modos de acceso mas veloces.
 
Wow mira que bien, lo otro bueno que vi es que la misma marca te proporsiona la tarjeta ya armada, muchas gracias por la información Eidtech me ayudo de mucho.

En estos momentos tengo que retirarme me gustaria seguir posteando por que me han ayudado en mucho, el dia de mañana investigare un poco mas sobre los AVR para ver si me facilitan el trabajo ya que de ellos no tengo ningun conocimiento.

Igual los link que me pasaste estan muy bueno pero me gustaria saber un poco mas sobre el funcionamiento de los AVR, como se programan, como trabajaria con WIZNET entre otras cosas si posees algo mas me seria de mucha ayuda.
 
en realidad PIC o AVR te sirven igual.. ahi depende tus preferencias.
Yo en lo personal me quedo con AVR, pero esa es otra historia.

Hace tiempo estuve trabajando en un analizador de protocolos con Wiznet y AVR, analizaba paquetes, tiempos de vida, fragmentacion, llevaba estadisticas de protocolos, filtrado, rendimiento, etc.

Nunca fue un proyecto formal, solo era para conocer la plataforma Wiznet.

el Wiznet basico es el 5100, pero mejor aun esta el 5300.
 
eidtech dijo:
me puse a analizar un poco mas tu proyecto, y si pretendes analizar todos los paquetes provenientes de la red, no creo que el ENC28J60 de el ancho, debido a su interfaz SPI... donde no puedes obtener datos a tanta velocidad (y estarias perdiendo paquetes).

ahi quedaria como recomendacion el Wiznet, algun Realtek o Cirrus Logic dado a sus modos de acceso mas veloces.

Lo que dices es cierto, estoy condenando la conexión a 10 Mbps, igual con Wiznet tendria que ver cuanto es la velocidad de la interfaz SPI que sea compatible con algun PIC o el AVR que tanto me has mencionado
 
Atrás
Arriba