Anda di halaman 1dari 37

Sistemas de Interconexin de dispositivos a redes ethernet

INTRODUCCIN 1.-Los inicios del concepto de conexin de dispositivos 2.-Un nuevo: el concepto de conexin de dispositivos a redes ethernet 3.-Una mirada general al funcionamiento de un sistema modelo 4.-Visin general de los principales componentes de estas placas que se encuentran en el mercado Los controladores MAC Ethernet ms comunes: Las placas de desarrollo ms comunes: Soluciones para los procesadores: APLICACIONES INDUSTRIALES ETHERNET 1.-Redes en tecnologa Switching 2.-Procesador de comunicaciones con microprocesador 3.-Procesadores de comunicaciones sin microprocesador 4.-Redundancia en la red 5.-Gestin de redes 6.-El PC como elemento de comunicacin 7.-Posibilidades de la comunicacin inalmbrica 8.-Objetivos conseguidos en las aplicaciones industriales Internet 9.-Objetivos generales de esta lnea de investigacin para los prximos aos 10.-Ejemplos de aplicacin de la industria de produccin y de procesos 1.- Fabricacin de automviles 2.- Sector alimenticio 3.-Automatizacin de edificios 4.- Gestin de aguas residuales MICROCHIP PIC16F877 + CIRRUS LOGIC CS8900A-CQ PARTE 1: HARDWARE 1.-Introduccin 2.-Cola de Contacto HORA DE DESCANSAR? 3.-Software y Firmware ICSP Y LVP 4.- Ensamblar la ethernet NO FLOATING ALLOWED 5.-Instalar los condensadores PIN POINT

4 4 5 7 9 9 9 10 11 12 12 13 13 13 13 13 14 14 14 14 15 15 15 16 16 16 16 17 17 18 18 18 19 19

6.-Acabando la instalacin 7.-El resto del proyecto RELAX? 8.-PARA TERMINAR BUEN TRABAJO PARTE 2: SOFTWARE Y FIRMWARE 1.-Los elementos bsicos 2.-Registros REGISTROS DE BUS REGISTROS DE ESTADO Y CONTROL INITCHIP REGISTROS DE INICIO DE TRANSMISIN REGISTROS DE FILTROS DE DIRECCIONES COLOCACIN DE LAS TRAMAS A ENVIAR Y RECIBIR LA SIGUIENTE LECTURA 4.-ARP SIN TRAMPAS PINGING EL CHIP CS8900 1.-Introduccin 2.-Caractersticas principales 3.-Esquema principal del chip 4.-Arquitectura del CS8900 4.-Arquitectura del CS8900 5.-Pinouts del CS8900 6.-Ejemplo de diseo de una placa 7.-Aplicacin con un CS8900A

20 21 21 22 22 23 23 23 24 24 24 25 25 25 26 27 27 28 30 30 30 30 31 32 33 34 35

Introduccin
Conceptos a priori: Antes de empezar a profundizar hay que tener claro algunos conceptos: la Internet y la Ethernet. Parecen lo mismo, pero representan diferentes conceptos, as pues la Internet la podramos definir como la red de redes o la red que une todas las redes. La ethernet es diferente, pues es una capa de hardware o de nivel fsico para las redes, como todo el mundo sabe no es la nica disponible, aunque si la ms utilizada y extendida. El protocolo de Internet (IP) normalmente incluye esta capa fsica, aunque no siempre: no se incluye por ejemplo en conexiones PPP o punto a punto. La ethernet puede ser usada para trabajar con muchos tipos de protocolos como puedan ser: TCP/IP, UDP/IP, IP/ICMP, IPX/SPX, etctera. Esta tecnologa es usada para intercambiar datos entre PCS y dispositivos, estos siempre podrn estar en modo servidor o esclavo respecto del PC. Los protocolos soportados sern IP/UDP para el intercambio de datos y el IP/ICMP para hacer pings de comprobacin de la comunicacin establecida entre ambos. Antes de analizar los sistemas de conexin de dispositivos a redes ethernet, deberamos comprender el porque de la importancia de estos. Para eso vamos a contrastar este concepto y otro ms antiguo, quizs de los primeros, en tratar de controlar dispositivos, en particular mediante PCS. 1.-Los inicios del concepto de conexin de dispositivos La conexin de dispositivos a un PC se remonta a los mismos orgenes de los PC. En aquellos momentos esta tarea se realizaba mediante procedimientos ms arcaicos; esto tena sus consecuencias en diversos aspectos que afectaban al conjunto. Si nos pudiramos remontar algunos aos atrs, podramos observar el concepto que se utilizaba normalmente para la transmisin de datos entre un PC y un dispositivo cualquiera, por ejemplo una cmara tipo CCD. Este concepto utilizaba un puerto paralelo como el de la impresora como capa fsica de transmisin de datos entre el PC y la cmara. Este proceso de transmisin se produca de la siguiente manera: el PC enviaba los comandos a travs de la interfase del puerto paralelo a un microcontrolador donde estos eran procesados y enviaba devuelta los datos o la informacin pedida. Este concepto fue fcilmente asentado, a pesar de que su software fue desarrollado rpidamente y con carencias a nuestro da impensables; por ejemplo de drivers, clases, etctera.

Este es el esquema de este viejo concepto para controlar dispositivos como una cmara CCD por un PC. Las principales desventajas de este concepto son: La corta distancia a la que deben estar dispositivo y PC. Los datos se transfieren al PC muy despacio, incluso usando mdulos especficos EPP/ECP. Solamente un solo dispositivo puede ser conectado al puerto paralelo LPT1, el uso del segundo LPT2 acarreara una enorme fuente de posibles errores. El software para los sistemas operativos es difcil de hacer porque requiere acceso a un nivel muy bajo. Una alta sensibilidad a las interferencias elctricas, pues es un paralelo funcionando en el suelo.

Como hemos visto, este concepto est obsoleto pues actualmente la conexin de dispositivos a un PC es una cosa muy habitual y hay muchos sistemas incluidos con los PCS diseados ntegramente para esa funcin y muy perfeccionados; por ejemplo el USB2. sta evolucin, nos ha permitido conectar dispositivos ms complejos de forma ms sencilla, abriendo nuevos horizontes en estos como el de los multimedia y en un futuro el de la realidad virtual. Pero realmente es necesaria la dependencia del dispositivo con un ordenador, es decir, va a ser siempre necesario tener que conectar el dispositivo a un ordenador directamente, para que a travs de l sea controlado y poder as extraer su informacin? Por que no por varios ordenadores a la vez? Que podramos hacer para dotar de ms independencia a los dispositivos, para que por ejemplo, no tuviesen que estar conectados directamente a un PC, y que al mismo tiempo realizaran su funcin propia? O como podramos mejorar el rendimiento de transmisin independientemente del dispositivo y de los ordenadores a los que si pudiramos lo conectaramos? O porque no tener muchos ordenadores y muchos dispositivos todos conectados entre si? En principio la respuesta parece sencilla; ya que si furamos capaces de conectarlos a la red, habramos conseguido todo esto debido al aprovechamiento de las caractersticas de las redes; adems de abrir un nuevo horizonte en la creacin de dispositivos y en sus usos. 2.-Un nuevo: el concepto de conexin de dispositivos a redes ethernet Si tenemos en cuenta que actualmente se usan redes de ordenadores en prcticamente todos los sitios, tambin es razonable pensar que se debera contar con un mtodo para poder pasar la informacin de cualquier dispositivo a la red para que despus se pudiera procesar la informacin en un servidor. Ahora pues es el momento de abordar un nuevo concepto. ste est basado en la tcnica de montar un sistema que controle la conexin del dispositivo a la Lan ethernet. Estos nuevos sistemas que utilizaremos, estn constituidos por una placa asncrona de comunicacin con conexin 10baset. Esta placa habla con el PC usando el estndar IEEE 802.3 como capa fsica de la transmisin y los protocolos UDP/IP. Por otra parte esta placa se comunica al microcontrolador de la cmara CCD a travs de un bus paralelo de 8 bits que puede rodar a ms de 50 Mhz.

Nuevo esquema para controlar dispositivos como una cmara CCD por un PC. Las principales ventajas que adquirimos con este concepto son: Los datos pueden ser transferidos en modo full dplex y adems a una velocidad mucho ms alta. La longitud del cable ethernet puede ser superior a 200 metros, extendindose a 500 metros con hubs ethernet y de kilmetros en caso de usar fibra ptica. El software es ms fcil de hacer, ya que existen muchas libreras con clases relacionadas con los protocolos IP/UDP para los sistemas operativos WIN NT/2000/LINUX, y tambin porque no es necesario tener ningn acceso a los recursos del PC de bajo nivel. Baja sensibilidad a las interferencias elctricas. Muchos dispositivos, incluso de diferentes clases, pueden estar conectados junto con varios PCS y servidores; esto facilita muchsimo el acceso a la informacin, as como su procesamiento y rendimiento general del sistema.

Una muestra del ltimos punto de las ventajas, se aprecia en el siguiente esquema; donde se aprecian un numero de ordenadores conectados mediante un hub ethernet junto con un numero de dispositivos esclavos conectados mediante ethernet. Cada dispositivo de la ethernet tendr su propia direccin IP.

Una manera de asociar muchos tipos de dispositivos mediante una red ethernet, los PCS se comportan todos como clientes, los dispositivos (la cmara CCD, la estacin meteorolgica,...) se comportan como servidores debido a nuestra placa de comunicacin ethernet. Si tenemos en cuenta que en el ao 2010 el 95% de los dispositivos conectados a la Internet no sern ordenadores, sino que sern dispositivos conectados a la red de redes mediante sistemas de conexin, nos podemos hacer una pequea idea de la importancia de stos.

3.-Una mirada general al funcionamiento de un sistema modelo El siguiente dibujo muestra con ms profundidad este nuevo concepto, de lo que sera una placa tpica:

El director de orquesta de esta placa sera el microcontrolador SX52 scenix rodando a 50 Mhz; debido a que controla el controlador ethernet CS8900, las 2K de SRAM y las dos FIFOs. Cmo funcionaria? Una trama ethernet es recibida por el CS8900, esto provoca que se enve una interrupcin al SX52. Este ltimo lee toda la trama ethernet y la graba en las 2K de SDRAM porque el SX25 solamente tiene 262 bytes de memoria. El SX52 decodifica y destripa la trama extrayendo el MAC, la IP y la direccin de UDP destino. Si estas direcciones apuntan al conjunto de direcciones internas del SX52, se procesa el mensaje como una orden la cual es escrita en la FIFO del SX52. El controlador del dispositivo (por ejemplo el de la cmara CCD) mira la FIFO del SX52, y si no est vaca, lee la orden y la procesa. Cuando la orden est completada, el controlador del dispositivo devuelve un ACK a su FIFO. El SX52 lee esta FIFO y enva un ACK al controlador de ethernet CS8900 como una trama ARP/IP/UDP. Finalmente se enva una trama ethernet a travs del cable al ordenador correspondiente.

Aqu tenemos algunas fotos de este modelo:

Parte de arriba de la placa, la entrada conectada es un conector RJ45.

Placa funcionando con el KIT usado para programar el microcontrolador SX52.

Vista de la parte trasera de la placa, donde se aprecia el SX52 en el centro.

4.-Visin general de los principales componentes de estas placas que se encuentran en el mercado Hay muchas soluciones para estos sistemas (recordemos que nuestro trabajo esta orientado a la ethernet), las ms usadas y populares seran usar un microcontrolador de 8 bits como el Rabbit 2000, AVR o PIC y un controlador MAC ethernet como el CS8900A o el RTL8029AS. Vamos a ver cuales son: Los controladores MAC Ethernet ms comunes: Hay dos claros competidores en este tipo de componente: el controlador de Realtek, que es favorecido por su generosa SDRAM interna que le ayuda con los paquetes cuando el micro al que lo conectamos tiene limitaciones, y el controlador de Crystal que se ha echo popular en los circuitos de 3,3V. Controlador de Ethernet RealTek RTL8019AS ISA Full-Duplex con funcin Plug and Play: 16Kbytes de SDRAM interna. 100-pines PQFP. Software compatible con NE2000 para puertos de 8 o 16 bits. Soporta 4 LEDS de diagnstico con salidas programables. Controlador ethernet 10Base-T CS8900A de Crystal Semiconductor: 4 Kbytes de memoria integrada en el chip para buffers dedicados a la transmisin y recibimiento de paquetes. 100-pines TQFP. Opera a 3,3V o 5V con 55mA Mx. Las placas de desarrollo ms comunes: A continuacin se detallan algunas de estas placas. Placa de desarrollo ethernet EDTP CS8900A-CQ a 10Mbps: Basada en el controlador de Crystal CS9800A. Incluye ranuras para una EEPROM de serie. Aproximadamente unos 40 euros.

Placa de desarrollo para el CS8900 de EmbeddedEthernet.com: Basada en el controlador de Crystal CS8900A. Es muy pequea 31 x 48mm. Disponible en versiones de 3,3V y 5V. Aproximadamente unos 70 euros.

Placa de Ethernet EE-100 para el CS8900A: Basada en el chip de Crystal CS8900A. Tamao pequeo 32x 64mm. Aproximadamente unos 50 euros.

Placa EDTP para el RTL8019AS: Basada en el chip de Realtek RTL8019AS. Aproximadamente unos 30 euros.

Soluciones para los procesadores: Para este tipo de placas destacan dos tipos de soluciones para los procesadores. Los micros de Microchip PICDEM.net TM: Las placas se basan en sus micros PIC16F877 o PIC18F452 a 19.608 Mhz para estas placas. Lo ms utilizado junto a estos micros es el controlador MAC de Realtek en modo 8 bits. Los micros de AVR: Este basa estas placas en su micro Atmega103 a 4.608 Mhz. Suelen utilizar el CS8900A en modo 8 bits.

APLICACIONES INDUSTRIALES ETHERNET


La evolucin de las tecnologas de la informacin, unida a la existencia previa de los sistemas de comunicacin en planta, ha dado paso a la posibilidad de utilizar remotamente la informacin disponible del proceso permitiendo que los sistemas de produccin sean ms abiertos y flexibles. La irrupcin de las tecnologas Internet en el mundo industrial ha abierto nuevas posibilidades en las aplicaciones de diseo y produccin industrial. As, es clara la tendencia de los ltimos aos hacia la utilizacin de sistemas distribuidos de control cada vez ms flexibles, fiables y potentes. Esta tendencia es una de las consecuencias de la introduccin de las tecnologas de la informacin, ya que permiten incrementar la fiabilidad y la calidad del producto a la vez que asegurarn una produccin eficiente. La tendencia actual en el desarrollo de los sistemas de control y supervisin de procesos industriales est orientada hacia una utilizacin cada vez mayor de sistemas distribuidos de control. La introduccin de este tipo de tecnologas en los procesos industriales aporta una serie de ventajas como son: Proporcionan las ventajas tradicionales de la programacin orientada a objetos, entre las que cabe destacar la flexibilidad, modularidad, reusabilidad de cdigo y escalabilidad de la aplicacin. Permiten independizar la complejidad de la problemtica de la comunicacin de la funcionalidad de la aplicacin. Es posible re-utilizar objetos ya diseados en otras aplicaciones de forma independiente a su implementacin concreta Es posible modelar dispositivos fsicos, si bien stos deberan poseer un relativo grado de inteligencia. Por lo general, aportan una serie de servicios que facilitan las tareas de implementacin de la aplicacin (como pueden ser, por ejemplo, los servicios de seguridad en el caso de la arquitectura CORBA) Ofrecen mecanismos para implementar la tolerancia a fallos. Las arquitecturas distribuidas que ms implantacin tienen hoy en da son CORBA y COM/DCOM. CORBA es una arquitectura abierta apoyada por un conjunto de ms de 800 empresas entre las que se encuentran algunas tan representativas como Sun, IBM, Netscape y Oracle (Orfali et al 1998). Por otro lado encontramos la arquitectura COM/DCOM (Emerald et al 1998). Esta arquitectura est apoyada fundamentalmente por Microsoft y su implantacin crece da a da. Las aplicaciones industriales ethernet constituyen una potente herramienta para la gestin de la produccin. Debido al gran xito que desde hace aos goza Ethernet conjuntamente con las prestaciones de Switching (Conmutacin), Full Duplex y Autosensing (Auto deteccin). Permite adaptarse exactamente a los requisitos y prestaciones de cualquier tipo de red, es por ello que esta herramienta puede ser utilizada prcticamente en cualquier entorno industrial. La interconexin de toda la red industrial se lleva a cabo con normas internacionales (IEEE 802.3, 802.11b) lo que favorece la integracin de la red industrial y la red de gestin de una empresa( Ej.- oficinas y produccin). Para que tal integracin sea completa se necesitan de los siguientes requisitos: Un juego de herramientas de Switching universales que soporten todas la fases de un proyecto desde la seleccin del hardware a la programacin, el empleo, el diagnostico y el mantenimiento. Las herramientas deben acceder a una base de datos comn. Esto permite ahorrar introducciones de datos y asegura la coherencia en todo el proyecto. Las prestaciones de comunicacin son prcticamente ilimitadas ya que, si es preciso estn disponibles unas prestaciones escalables gracias a la tecnologa de switching. La comunicacin de toda la empresa est garantizada gracias a las opciones de acoplamiento de las redes va Wan, RDSI o Internet. Incluso es posible la comunicacin mvil, la cual puede integrarse a la perfeccin en una estructura de red industrial.

Debido a estas prestaciones de comunicacin, la gestin de las redes industriales puede llevarse a cabo remotamente con el software adecuado. La red industrial puede sealizar los fallos que pueda haber (Ej.mandando un correo electrnico al administrador del sistema fijado en la configuracin). Los autmatas programables (PLCs) tienen una importancia vital en el mundo de la comunicacin. Y la comunicacin industrial constituye la parte ms importante de la automatizacin. 1.-Redes en tecnologa Switching Ventajas de la funcionalidad switching: Es posible crear subredes y segmentos de red. La capacidad de transferencia de datos y, de este modo, las prestaciones de la red pueden aumentarse notablemente gracias a la estructuracin del intercambio de datos. Las reglas sobre la configuracin de las redes son de fcil aplicacin Aplicable a redes con hasta 150km sin preocuparse por los tiempos de propagacin de las seales. Es posible ampliar de forma ilimitada la extensin de la red por interconexin de diferentes dominios colisin / subredes. Mediante switches pueden ampliarse las redes existentes de manera sencilla y sin efectos retroactivos. Pueden continuar utilizndose los conocimientos tecnolgicos existentes. Las redes existentes pueden integrarse y ampliarse paso a paso. Se puede migrar escalonadamente de la tecnologa de 10 Mbit/s a la de 100 Mbit/s.

2.-Procesador de comunicaciones con microprocesador Presenta las siguientes ventaja: Una capacidad de transferencia de datos constante gracias al procesamiento de protocolos en el controlador de comunicaciones. Puede conectarse a cualquier red Ethernet. Libera prestaciones de proceso para otras aplicaciones. Se soporta el empleo de grandes configuraciones de red con una sola tarjeta gracias al alto numero de puertos. El controlador de comunicaciones puede utilizarse para la comunicacin redundante.

3.-Procesadores de comunicaciones sin microprocesador Los procesadores de comunicaciones estn coordinados de manera ptima para los paquetes software. Pueden utilizarse perfectamente en pequeos sistemas.

4.-Redundancia en la red Es imprescindible para aplicaciones industriales un tiempo de reconfiguracin cortsimo de la red despus de un fallo, ya que, de lo contrario, los terminales acoplados a la red cancelan las conexiones de comunicacin lgicas. Las redes redundantes aumentan la seguridad y reducen las paradas de la instalacin. Si falla un subsistema o se produce la interrupcin de un cable, se cambia al sistema reserva o a la red reserva y, de esta forma, se mantiene la comunicacin. El sistema de redundancia puede estar gestionado por software gracias a la integracin de la red industrial con PCS. 5.-Gestin de redes La gestin de redes ofrece las siguientes funciones: Acceso por marcacin, protegido por contrasea, para Administrador ( con privilegios de escritura y lectura) y usuario ( slo privilegios de lectura). Lectura de informaciones de versin y estado. Configuracin de pantalla de mensajes y de standby y de informaciones de direcciones. Parametrizacin fija de puertos y tabla de filtros Salida de informacin estadstica Diagnstico de intercambio de datos a travs de un puerto espejo parametrizable. Carga de posibles actualizaciones a travs de la red y envo de mensajes de error por su propia cuenta.

6.-El PC como elemento de comunicacin El PC desempea un papel importante en la comunicacin industrial. Conjuntamente con aplicaciones en tiempo real como WinCC para el entorno Windows NT. Junto con el software desarrollado por cada fabricante, el PC penetra en las aplicaciones de comunicaciones que hasta ahora slo podan solucionarse con un PLC. Los modernos procesadores de comunicaciones presentan nuevas ventajas: Procesadores de comunicaciones para formato PCI o formato PCMCIA Permiten una aplicacin flexible, en funcin de la demanda de recursos en el PC: procesadores de comunicaciones con o sin microprocesador incorporado. Integracin sencilla en el entorno del sistema y en aplicaciones Office gracias a las interfaces abiertas y estandarizadas.

7.-Posibilidades de la comunicacin inalmbrica La comunicacin inalmbrica constituye la solucin ideal siempre que el acoplamiento de estaciones a una infraestructura cableada resulte muy difcil. Entre stas se incluyen, por ejemplo, la adquisicin mvil de datos en produccin y logstica, la transmisin de datos de servicio a terminales mviles o la puesta en servicio de instalaciones complejas mediante equipos de programacin acoplados por va inalmbrica. Otro aspecto que habla a favor del uso de comunicaciones mviles es la sustitucin de las soluciones cableadas para, p. Ej. Resolver el problema de aislamiento de potencial de equipos de comunicaciones remotos. Adems, la comunicacin mvil permite ahorrar una infraestructura cuya instalacin requiere mucho tiempo y dinero, pudiendo emplearse en instalaciones temporales o en sistemas de produccin flexibles.

Los requisitos bsicos para los equipos de comunicaciones mviles en el entorno industrial son, adems del acoplamiento inalmbrico a la red, tambin la robustez para soportar el severo entorno industrial, un manejo sencillo y un diseo compacto.

8.-Objetivos conseguidos en las aplicaciones industriales Internet Desarrollo de gateways entre diferentes arquitecturas de red (MAP/MMS, PROFIBUS, TCP,...) Integracin a travs de red de dispositivos industriales de control (robots, CNs, APIs,...). Monitorizacin y Supervisin de Planta Buses de campo e instrumentacin inteligente (PROFIBUS-PA, CAN) 9.-Objetivos generales de esta lnea de investigacin para los prximos aos Establecer metodologas para el diseo de aplicaciones de monitorizacin y supervisin remotas utilizando tecnologas internet / Intranet Modelado de plantas virtuales, utilizando tecnologas orientadas a objetos, que permitan describir de forma abstracta la informacin de la planta real accesible remotamente Validar la aplicacin de estas tecnologas en procesos industriales con requisitos de tiempo real. Evaluar la capacidad de los modernos lenguajes de modelado, basados en tecnologas orientadas a objetos, para expresar los requisitos temporales de la aplicacin.

10.-Ejemplos de aplicacin de la industria de produccin y de procesos 1.- Fabricacin de automviles En l a fabricacin de automviles pueden implementarse lneas de produccin con velocidades variables u opciones de control del sistema en la explotacin en marcha. Numerosas variables deben ser controlables de manera flexible, para hacer posible una produccin sin anomalas. La disponibilidad de las instalaciones es cada

vez ms importante. Un tiempo de no-disponibilidad de un equipo, durante su reparacin, suele resultar ms caro que una supervisin adecuada de las instalaciones para detectar posibles desgastes o fallos. Con ayuda de potentes componentes integrados en la comunicacin pueden, por ejemplo, localizarse y sealizarse rpidamente los fallos. 2.- Sector alimenticio En el sector alimenticio se puede controlar el flujo de transporte que previamente se ha programado y puede modificarse en el ordenador host, dependiendo del grado de carga y de la demanda. Es posible supervisar y controlar los estados operativos y los grupos de los sistemas de transporte. Igualmente se podra controlar la ventilacin automtica individual de un determinado almacn. 3.-Automatizacin de edificios Se podra realizar el control de un parking. Las plazas de aparcamiento libres se indicaran a la entrada y el automovilista podra ser conducido hasta las mismas, mediante flechas indicadoras de sentido, por el camino ms corto. Un sensor sin contacto, montado en el techo, acta de monitor de aparcamiento y palpa, por ultrasonidos, con regularidad su plaza de aparcamiento. Si se circula incorrectamente por la rampa de acceso o si se produce un atasco, se activa una alarma en el puesto central de mando. Un potente procesador de comunicaciones recopila y coordina los datos, visualizndolos, p. Ej. En un ordenador.

4.- Gestin de aguas residuales La depuracin de las aguas residuales requiere caractersticas especificas de los componentes de automatizacin y comunicacin, como p. Ej. La utilizacin dentro de intervalos de temperatura admisibles, inmunidad a interferencias o sealizaciones rpidas en caso de averas. Las lneas de filtracin, bombas o instrumentos de medida pueden supervisarse y maniobrarse desde el puesto central de mando, de modo que pueda asegurarse el perfecto flujo de la instalacin. Un sistema de comunicaciones conduce los datos correspondientes de manera fiable hasta e puesto central de mando. Un ordenador en dicho puesto permite visualizar y supervisar los datos correspondientes.

Microchip PIC16F877 + Cirrus Logic CS8900A-CQ

PARTE 1: HARDWARE
En este apartado veremos como implementar el dispositivo de interconexin a un microcontrolador, con el fin de aplicar las ms diversas aplicaciones. Con el montaje de este dispositivo podremos realizar todo tipo de funciones, en lo que en el mbito de redes Ethernet se refiere. 1.-Introduccin Para realizar este proyecto se ha elegido el microcontrolador Microchip PIC16F877 debido a que puede ser fcilmente programado usando un pequeo nmero de componentes externos. El mecanismo de transporte es la red Ethernet estndar con el protocolo IP encapsulado en el nivel de datos de la trama Ethernet. La funcionalidad del TCP/IP es inexistente en este montaje ya que en el firmware no est implementada la pila TCP/IP. De manera que, todas las transferencias de datos que se describen en este apartado estn basadas en el formato UDP. Aunque tambin se pueden aplicar protocolos que uno mismo desarrolle. Los componentes que vamos a utilizar son los siguientes: articulo precio Imagen

CS8900A DEV BOARD

40

PIC16F877 15 and Dev Board

En la primera parte de este pequeo tutorial nos encargaremos de ensamblar la placa, y una vez montada comenzaremos a programarla. 2.-Cola de Contacto Empezaremos la construccin del EDB (Ethernet Development Board) poniendo una pequea gota de pegamento en el centro del rea de pads del CS8900A-CQ, llevando mucho cuidado en no poner mucho, porque cuando se apriete el chip se extender el pegamento. El objetivo de esta tarea es sujetar el CS8900A-CQ al circuito impreso para despus soldarlo.

Foto 1-Con una pequea gota de adhesivo podemos colocar el CS8900A en su lugar.

Es aconsejable utilizar algn tipo de lente de aumento, como una lupa o un microscopio, para asegurarse de que el CS8900A est perfectamente acoplado a los caminos trazados en el circuito impreso. HORA DE DESCANSAR? El chip no se pegar instantneamente, de manera que tenemos tiempo de alinearlo correctamente hasta que coincida con el circuito impreso, como muestra la foto 2.

Foto 2Pon mucha atencin al arrastrar el CS8900A porque sus pines pueden desalinearse.

La razn por la que debemos usar pegamento de madera es para despus soldar los pines del Circuito Integrado (IC) a los pads del circuito impreso con mayor facilidad. 3.-Software y Firmware Como el pegamento todava no se habr secado del todo, y ya sabemos que el EDB est basado en un PIC y usa un programa de PC para cargar al PIC16F877 el cdigo, vamos a comentar un poco acerca de los componentes Software y Firmware. La aplicacin que programa la EDB funciona sobre Windows98-XP. La aplicacin de PC es un algoritmo ICSP (in-circuit serial programming) que usa LVP (low-voltage programming) a travs del puerto paralelo del PC. Los botones y las expresiones de windows de la Foto 3 muestran las caractersticas del mdulo ICSP.

Foto 3En el caso de que se programe errneamente el PIC16F877, se puede recuperar con el botn Erase.

ICSP Y LVP Adems de leer y escribir el PIC16F877, el programa usa el campo ID del dispositivo (localizado en el rea de configuracin 0x2006) para, automticamente, configurar las variables programadas. El reloj, los datos, el modo de programa y el control MCLR son las nicas lneas requeridas para efectuar el ICSP en modo LVP para las partes PIC16F877. Fjate bien y vers que no hay componentes de alto voltaje (13V) o voltajes en la figura 2 o en el EDB. El modo LVP, que es provocado por un TTL de alto nivel, es aplicado por el pin RB3 del PIC16F877, y aplica 5V al pin Vcc del PIC para generar el voltaje requerido para la programacin, internamente. Como todos los pins de control estn trabajando a niveles TTL, el puerto paralelo del PC, es perfecto para este propsito.

Figura 2El PIC16F877 se podr programar con un nmero mnimo de componentes externos.

El firmware Ethernet se generar usando el programa de Microchip MPLAB. Despus de que el cdigo del PIC est configurado, el fichero .hex resultante se ha de cargar en la aplicacin de PC de la EDB y transmitido por el puerto paralelo al PIC. Aunque parezca un poco complicado, es un proceso realmente sencillo. 4.- Ensamblar la ethernet Todava quedan muchas cosas que decir sobre el software y el firmware, pero de momento, vamos a continuar con poniendo el hardware Ethernet y el PIC16F877 juntos. Como el componente principal, el CS8900A-CQ, est encapsulado usando tecnologa surface-mount1(SMT). NO FLOATING ALLOWED Otra parte esencial de la construccin es la pasta de soldar. La pasta de soldar, adems de ayudar in el proceso de soldado, tambin mantiene los pequeos componentes en su lugar hasta que se les aplica calor. En la foto 4 se observa que sobre los pads no es necesario aplicar pasta.

Sistema de montaje de placas en el que los componentes no se incrustan, sino que se montan en la superficie.

Foto 4No pasarse con la cantidad de pasta de soldar, o los pequeos componentes flotarn y ser difcil su colocacin.

5.-Instalar los condensadores Ahora que hemos empezado a aprender a soldar en el campo SMT, vamos a montar los condensadores de 0.1F (C11, C12 y C15) en la parte de la Ethernet de la placa. Como se puede observar en la foto 5, solo hay 3 condensadores. Las cpsulas del SMT no estn marcadas, as que hay que tener cuidado en no confundir las partes que hemos preparado para soldar. Antes de completar el montaje de los componentes ms pequeos del SMT en la parte Ethernet, vamos a comentar el por qu estn esos componentes ah.

Foto 5stos componentes son una gran prctica. La necesitaremos para la otra parte de la placa.

PIN POINT Si echamos un vistazo a los componentes que acompaan al kit CS8900A-CQ, encontraremos un montn de dispositivos que, de momento, no sabemos para que sirven. Pues bien, pongmonos manos a la obra. Para polarizar adecuadamente estos mdulos analgicos internos, una resistencia (R1) de 5-kilohm, 1% la instalaremos tan cercano como nos sea posible al pin RES (93) y al pin de Tierra (94). La resistencia R2 (4.7kilohm, 1 %) la colocaremos para dormir el CS8900A-CQ en el pin 77. Realmente, esta resistencia no tiene que ser muy precisa porque nicamente detiene al dispositivo a nivel lgico. Las resistencias R3 y R4 las asociaremos a los LEDs. Estas tambin han de ser de 4.7-kilohm, 1%. La resistencia R5 (100-ohm, 1%) es la terminacin del cable de comunicaciones. Simplemente cambiando las resistencias R6 y R7 junto con la capacidad del condensador C10, el CS8900A-CQ puede ser programado para soportar un cable de comunicaciones de una impedancia de 100, 120 y 150 ohms. El LINKLED es un LED verde manejado por el pin 99 del CS8900A-CQ. El bit HCE0 del control de registro hace que el pin se apague cuando un pulso vlido es detectado en el cable de comunicacin.

El pin 100 maneja el LED rojo (LANLED). Este pin se activa durante una colisin cuando ocurre una colisin o una operacin transmisin / recepcin. 6.-Acabando la instalacin Vamos a usar la foto 6 para completar el LED, las resistencias, condensadores,... Hay que poner especial atencin a la instalacin del LED, detallada en la foto 7. Si seguimos las indicaciones de las fotografas, todo marchar sobre ruedas.

Foto 6Las lneas que apuntan a los LEDs, normalmente denotan el ctodo de los dispositivos, pero en el LED rojo seala el nodo.

Foto 7Vista ampliada de los LEDs.

7.-El resto del proyecto Despus de montar todo lo que hemos citado hasta ahora, hay que montar y soldar Q1, R8, R9 y R10. Usa la foto 10 como gua. Cuando hallamos terminado con el transistor MCLR y sus resistencias, instalar el 74LS125 y su condensador C15. Ahora podemos instalar el cristal XTAL2 de 20 MHz, en cada cara del circuito impreso. El pin del centro del XTAL2 es tierra, y los externos pueden ir a ambas partes de ste.

Foto 10Asegurarse bien de montar el 2N2222 y todas las resistencias circundantes antes de soldar el enchufe PLCC de 44-pins. Algunas de las resistencias quedan ocultas bajo el PLCC.

RELAX?

Foto 11Esto no es tan difcil como parece.

Ahora lo deberamos tener todo instalado excepto el conector hembra RJ-45 (J1), el conector DB-25, el conector de encendido y el enchufe PLCC para el PIC16F877. Aqu es donde, realmente, un buen equipo de soldadura destaca sobre un soldador normal y corriente. Vamos a alinear el enchufe PLCC sobre los pads. Slo necesitaremos un poco de soldadura para los pins del enchufe. Es aconsejable soldar de arriba hacia abajo a lo largo de cada lado del PLCC e ir rotando el circuito impreso 90 hasta tener las cuatro partes soldadas.

8.-PARA TERMINAR Despus de haber puesto el PLCC, todo lo que queda por hacer limpiar la placa con un disolvente de pasta de soldar. Despus de que se seque la placa, deberamos tener algo como lo que se muestra en las fotos 12 y 13.

Foto 12En la figura se muestran el conector DB25, el RJ-45-45 y el de corriente. El cristal de 20MHz tambin va colocado en esta cara de la placa.

BUEN TRABAJO Ahora toca sentarse y maravillarse con el trabajo que hemos hecho. En nuestras manos tenemos un motor para las redes Ethernet, completamente funcional, respaldado por uno de los microcontroladores con memoria flash ms poderosos del arsenal de Microchip.

Foto 13La parte de atrs del monstruito.

PARTE 2: SOFTWARE Y FIRMWARE

En esta parte del tutorial vamos a aprender a realizar una aplicacin para nuestra placa. 1.-Los elementos bsicos Lo primero de todo es establecer una direccin IP a la EDB. Cualquier IP vlida funcionar, y la eleccin depender de la Ethernet en la que usaremos nuestra placa. Una direccin vlida sera la 192.168.1.150, que es una direccin reservada para las redes privadas. La IP de la placa est definida en el rea de definicin de la direccin IP del cdigo, como se muestra en el anexo 1. El siguiente paso es asignarle una direccin MAC (Control de Acceso al Medio) a la placa. La direccin hardware es una caracterstica que, normalmente, est regulado por el IEEE. Si nuestro objetivo es usar nuestra placa con un fin puramente comercial, necesitaremos adquirir un nico identificador del hardware. El objetivo es que no existan dos dispositivos con el mismo identificador. Lo ms comn en los dispositivos comerciales es que la direccin MAC sea un combinado entre una ID suministrada por IEEE a cada fabricante unido al nmero de serie del producto. stos nmeros vienen impresos en alguna parte visible de todos los dispositivos cuya funcin sea pertenecer a una red. La direccin MAC de nuestra tarjeta de red, por ejemplo, la podemos conocer con el comando ARP, que ya veremos despus. La direccin MAC quedar almacenada en el registro de Direccin Individual (IA) en el CS8900A-CQ. El diseo del registro IA hace necesario situar el octeto ms significativo de la direccin MAC en el octeto menos significativo del registro. Tendremos que definir tres variables MYMACXX que pongan los octetos MAC en el orden correcto antes de que sean cargados en el registro IA del chip. En el anexo 2, est la direccin MAC y el esquema de registros del CS8900A-CQ. 2.-Registros Hay numerosos registros en el CS8900A-CQ. La mejor manera de trabajar con ellos es predefinirlos y usar etiquetas que sean legibles. Empecemos con las definiciones PacketPage I/O; todos los registros internos del IC estn listados y definidos, tanto si son usados como sino. Las etiquetas que empiezan con pageport representan los 16 puertos base de I/O y quedan declaradas en el anexo 3. Los registros internos PacketPage a los que se accede usando los puertos PacketPage I/O estn prefijados por ppage.. Aqu es donde se inicializan los registros. Los contadores y los estados de los registros estn agrupados como muestra el anexo 4. Hay 5 eventos PacketPage y todos estn definidos por sus nombres de la hoja de caractersticas. Alguno de los registros del IC tienen nombres que son demasiado largos para ponerlos tal cual en el cdigo. Aqu tienes un listado con estos registros declarados con el nombre ms legible posible:
PacketPage self control PacketPage self status PacketPage bus control PacketPage bus status PacketPage line control PacketPage test control PacketPage receiver configuration PacketPage receiver event PacketPage receiver control PacketPage transmit configuration PacketPage transmit event PacketPage transmit command PacketPage buffer configuration

Los registros anteriormente citados junto a todos los registros, pueden ser agrupados en seis categoras ms grandes: Registros de bus, Estado y Control, Inicio de transmisin, Filtro de Direccin, Recibir Trama y Enviar Trama. Las seis categoras, adems de sus subcategoras, las podemos encontrar en el rea de 4K denominada PacketPage. REGISTROS DE BUS El registro de bus lo usa el CS8900A-CQ. El ppageBaseIO forma parte del grupo del registro de bus, y su direccin de I/O es la 0x300, de manera que en el cdigo no la deberemos asignar. Podramos usar el registro ppagePID para determinar qu nivel del CS8900A-CQ est pegado en la EDB, pero eso slo sera un desperdicio de cdigo, memoria y ciclos de reloj para esta aplicacin. El modo de 8-bits del CS8900A-CQ no permite el uso de interrupciones, EEPROM o DMA. As es que debemos consultar la lnea INTRQX para detectar transmisiones, recepciones o errores. Para realizar la consulta, debemos poner una de las lneas INTRQX en estado de transmisin. La aplicacin usar la lnea INTRQ0, la cual est definida en el registro ppageINT usando la mscara para la INTRQ0 (0x00), como muestra el anexo 5. Despus de que la interrupcin quede definida y activada, podemos encender el transmisor y receptor del CS8900A-CQ. REGISTROS DE ESTADO Y CONTROL Estos registros estn divididos en dos subgrupos registros de configuracin y control y registros de eventos y estado. Los registros de configuracin y control determinan cuntas tramas son transmitidas y recibidas. Adems, los stos registros determinan qu tramas sern enviadas y recibidas y qu eventos causarn una interrupcin que ser enviada al PIC16F877. La EDB usa muchos registros de configuracin y control al principio del cdigo para establecer varias reas que se encargarn de las funciones de recepcin y transmisin. Por ejemplo, en el anexo 6, la rutina InitChip usa definiciones del ppageRxCFG y ppageTxCFG para generar una interrupcin cuando:
se reciba una trama sin errores (RXCFG_RX_OK_IE) un paquete se transmita correctamente (TXCFG_TX_OK_IE) ocurra una colisin out-of-window (TXCFG_OUT_WIN_IE) una transmisin dure ms de 26 ms (TXCFG_JABBER_IE) ocurra una colisin (TXCFG_ALL_IE bit 0x0B) ocurran 16 colisiones (TXCFG_16_COLL_IE)

Si tomamos aparte el registro de control (ppageRxCTL), encontramos que:


El CS8900A-CQ slo acepta tramas con el CRC y la longitud correctas (RXCTL_RX_OK_A). La direccin de destino de la cabecera del paquete debe coincidir con la direccin IA encontrada en el registro ppageA (RXCTL_IND_A). Las tramas Broadcast con una direccin de destino de FFFFFFFFFFFF hexadecimal es aceptada (RXCTL_BCAST_A).

INITCHIP Continuando con nuestro estudio de InitChip, es obvio que la ethernet ser 10BaseT (LINECTL_10BASET), y el CS8900A-QC enviar y recibir bits codificados a la red en modo full duplex (TESTCTL_FDX). Las referencias a los registros de estado y control las podemos encontrar a lo largo de todo el cdigo de la EDB debido a que su funcin es informar sobre el estado de las tramas transmitidas y recibidas. La actividad del registro de control y estado tambin existir en situaciones donde se quiera saber el estado del IC. El anexo 7 muestra la secuencia de reset del CS8900A-CQ. El bit de reset con el ppageSelfCTL tiene implementado un retraso de 10ms para permitir que el IC calibre sus circuitos analgicos. El bit de Reset ppageSelfCTL (SELFCTL_RESET) actua una sola vez.

El SELFCTL_RESET tambin determina el comportamiento del LED. Despus de 10ms, se realiza un anlisis del bit INITD en el registro de estado (SELFSTAT_INIT_DONE_BIT). Cuando se borra este bit, el reset del IC finaliza. La ltima rea de control y estado que analizaremos ser el registro de bus, ppageBusStatus. Para conseguir transmitir el buffer, el host debe solicitar un espacio de transmisin en el CS8900A-CQ. BUSSTA_RDY4TXNOW_BIT indica al host que el IC est listo para aceptar una trama. El cdigo para esta operacin es un poco complejo, y est mostrado en el anexo 8. REGISTROS DE INICIO DE TRANSMISIN Estos registros le dicen al CS8900A-CQ, cmo transmitir el siguiente paquete. Las primeras cuatro definiciones del anexo 9 son valores que pueden ser usados para dar la instruccin al IC de que empiece a transmitir despus de que un cierto nmero de bytes hayan sido transmitidos al buffer de transmisin del CS8900A-CQ. Por ejemplo, TXCMD_AFTER_5 indica que empiece la transmisin despus de que en el buffer del IC hayan 5 bytes. En el trozo de cdigo que sigue a los defines, TXCMD_AFTER_ALL, lo que significa que debe esperar a que cada byte enviado sea cargado en el buffer de transmisin del CS8900A-CQ antes de transmitir. Vamos a hablar sobre el byte de mayor importancia del registro TXCMD. Si el bit TXCMD_NO_CRC est incluido en la mscara, el valor CRC generado no se adjuntar a la transmisin. Como estamos adjuntando un CRC y el bit TXCMD_NO_PAD no tiene ningn valor, cualquier paquete con menos de 60 bytes ser rellenado hasta alcanzar los 60 bytes y se adjuntar el CRC a la transmisin. La razn del control es permitir que paquetes indebidos tambin sean transmitidos. Esta actividad ilegal podra ser usada en el desarrollo o la fase de test de un diseo para testear otros dispositivos Ethernet o Software para la captura de datos en una red como un Sniffer. El bit TXCMD_FORCE elimina cualquier trama que est esperando a ser transmitida y aborta la transmisin de cualquier trama que est siendo transmitida. REGISTROS DE FILTROS DE DIRECCIONES El CS8900A-CQ viene equipado con un registro de direccin destino (DA). Este filtro de direccin determina qu tramas pasarn el portal de recepcin para ser colocadas buffer de recepcin del CS8900A-CQ. El primer bit de la direccin fsica (MAC) debera ser un 0. Esto es debido a que si el primer bit no fuera un cero, se podra confundir con la direccin lgica. La IA de la trama que llega, debe coincidir con la direccin fsica del registro IA del CS8900A-CQ (ver Anexo 2). Si el primer bit del registro de la direccin de destino (DA) que recibimos, es un 1, entonces la trama es multicast, y la direccin es lgica, no fsica. El CS8900A-CQ utiliza una tcnica de hashing2 para determinar si debe o no aceptar la trama multicast recibida. Echemos un vistazo al anexo 6 bajo la definicin PacketPage receiver control register bit, y veremos que el bit multicast (RXCTL_MCAST_A) no est definido. De manera que, nuestra placa ignorar las direcciones multicast. Con otro vistazo al anexo 6 vemos que, adems de las direcciones fsicas, la EDB tambin admite direcciones broadcast. A menos que conozcamos cada direccin fsica o IP de cada host con el que nos queramos comunicar y que cada uno de los host conozca nuestra direccin IP y MAC (muy improbable), lo mejor ser poder analizar un mensaje de broadcast. COLOCACIN DE LAS TRAMAS A ENVIAR Y RECIBIR Esta parte es la que se utiliza para transmitir tramas entre el CS8900A-CQ y el PIC16F877. Slo se recibe y transmite una trama si el PIC est disponible, y el espacio que ocupa cada trama est dinmicamente adjudicado por el CS8900A-CQ. Por supuesto que, todos los datos son transmitidos entre la RAM del PIC y el buffer de 4K del CS8900A-CQ a travs de los puertos PacketPage I/O.

Dividir un archivo en trozos ms pequeos

3.-Operaciones de transmisin y recepcin del CS8900A-CQ Ahora vamos a ver el anexo 10 antes de continuar leyendo. Este anexo es una lista de los puertos del PIC y la definicin de cada pin. El puerto B del PIC16F877 se usa para programar el control de I/O del IC. El bus de datos est contenido en el puerto C y el bus de direccin de 4 bits en la mitad de abajo del puerto D. Los primeros 48 bytes de la RAM del PIC son los contadores, los flags, punteros y los registros scratch que constituyen la mayora de las aplicaciones del PIC. El buffer de datos empieza en la direccin de registro del PIC 0x32. El anexo 11 consiste en un bucle que analiza la lnea INTRQ0 del CS8900A-CQ seguido de un cdigo para determinar si se ha recibido una peticin ARP. ServiceISQ enva rutinas basadas en el protocolo contenido en esas tramas. Para recibir una trama, el IC debe aceptarla usando el registro IA y el filtrando la direccin destino. Despus de que el paquete sea aceptado, la introduccin y el delimitador de principio-de-trama son ignorados y los bits que siguen al SFD son cargados en el buffer de recepcin del CS8900A-CQ. Para ayudar a comprender la diferencia entre paquetes y tramas, se ha incluido la figura 1. RXCFG_RX_OK_IE (0x0100) se carga en el registro RxCFG, y el bit BufferCRC (0x0800) se borra. Esto significa que no se incluye el CRC en el buffer de recepcin o el clculo de la longitud.

Figura 1Todo lo que hay en el rea de la trama (frame), a excepcin del relleno (Padding) y del CRC, lo ponemos nosotros.

LA SIGUIENTE LECTURA La siguiente lectura requerida introduce la longitud de la trama, y ser transmitida del IC al PIC. Esto es la longitud total de bits que empiezan con el DA y terminan con el ltimo byte antes del valor CRC de 4 bytes. El valor de la longitud de la trama es almacenado al principio de dos ubicaciones del buffer del PIC (0x30 y 0x31). El buffer de recepcin del CS8900A-CQ pasa de ser un byte bajo a un byte alto en la RAM del PIC por la longitud de la trama almacenada. El buffer de la trama en el PIC va de 0x32 a 0x7F, o sea, 78 bytes. Sobra mucha memoria RAM en el PIC de otros bancos que pueden ser usados para hacer ms grande el buffer, pero para esta aplicacin, 78 bytes son suficientes. Esto significa que solo debemos aceptar tramas de 78 bytes o menos o nicamente rellenar el buffer del PIC con 78 bytes, como mximo, e ignorar el resto. Bien, no hay bits para limitar la longitud de la trama recibida, pero podemos despreciar cualquier byte que vaya ms all de los 78 permitidos. En el anexo 12 bajo el nombre GetFrameData, hay un flag bit denominado bitbucket. Si incrementamos el FSR (apuntar al siguiente registro disponible de la RAM del PIC) lo pondremos por encima de 0x7F, el resto de los bytes que sobran son ledos desde el buffer de recepcin del IC y vaciado al cubo de bits. En lugar de desechar los bytes que sobrepasen la direccin 0x7F en el buffer de recepcin del CS8900A-CQ, podramos leer el registro RxEvent despus de transmitir el byte 0x7F y hacer que el CS8900A-CQ mueva la siguiente trama a su buffer. Pero como se est leyendo la trama entera, no es necesario hacer esto.

Foto 1Imagen del programa que usaremos para programar el PIC. (ampliar)

Vamos a suponer que un host enva una peticin ARP a la EDB y todas las instrucciones del anexo 12 se ejecuten con xito. La foto 1 muestra cmo aparece dentro del PIC. En la foto 2 vemos que el Sniffer ve en la misma situacin y en la misma trama.

Foto 2Hemos recibido una trama con un tamao de 60 bytes. (ampliar)

La longitud de la trama est indicada en las direcciones 0x30 y 0x31 en el depsito del PIC. El Sniffer simplemente indica el tamao de la trama. Empieza en la direccin 0x32 en el depsito del PIC en la foto. Echemos otro vistazo a la figura 1 y vayamos comparando los datos de la foto 1 y la foto 2. 4.-ARP Si miramos al principio de la captura del Sniffer, nos daremos cuenta que el segundo evento es una transmisin ARP, y el tercero es la respuesta ARP de la direccin fsica 00EDTP. La foto 3 parece similar a la captura de pantalla de la respuesta ARP con la excepcin de que se le ha agregado una direccin fsica suministrada por la EDB (000045445450) y un Opcode 2 en la trama ARP define la trama como una respuesta ARP. El proceso ARP es como un problema de lgebra. Usas algo conocido (direcciones IP) para obtener algo desconocido (direccin fsica).

Foto 3En esta captura se muestra la respuesta ARP que hemos recibido. (ampliar)

Si empezamos en la DA y contamos el nmero total de bytes en la respuesta ARP, tendremos 42. Eso es el total, 60 bytes, menos 18 de relleno. En el anexo 14, al Puerto C se le ordena sacar 0x2A y 42 bytes del buffer de respuesta ARP del CS8900A-CQ. Despus de que el IC asigne el espacio y fije el RDY4TXNOW_BIT, los bits de la respuesta ARP salen de la RAM del PIC en el orden que se muestran en la figura 1 y la foto 3, empezando con la DA. Despus de que todos los bytes estn acumulados en el buffer de transmisin del CS8900A-CQ, el IC genera una introduccin a la que le sigue un SFD. Y suponiendo que no ocurre ninguna colisin, la respuesta ARP alcanza la ethernet seguida de un CRC generado por el CS8900A-CQ. SIN TRAMPAS Si seguimos observando la foto 3, vemos que el cuarto evento es una transmisin UDP entre el PC llamado SPEADY y la EDB. Ahora no vamos a entrar en detalle sobre lo que significa cada campo IP. Podemos observar que los campos del Sniffer coinciden con los campos IP que se muestran en el anexo 15. En la foto 4 se puntualiza el tipo de campo DLC en el contenedor hex. 0800, el cual denota una trama IP. Siguiendo la lgica en el anexo 16, podemos ver que el 0806 crea una trama ARP repetida, y el 0800 enva el cdigo al path para procesar una trama IP.

Foto 4Todo este trabajo para transmitir un solo byte! (ampliar)

El firmware de la EDB examina el puerto de destino UDP para determinar cmo manejar los datos UDP. En este caso, el puerto destinatario es el 7. Cuando el puerto UDP est direccionado en el firmware de la EDB, se produce una operacin de eco. Esto significa que, los datos, en este caso una a (0x61), son repetidos y devueltos al puerto del host 5002. Lo podemos ver desde el quinto evento, en la parte de arriba de la foto 5, que este intercambio implica al puerto emisor y al receptor, direcciones IP y direcciones fsicas. Esta trama intercambiada es devuelta al puerto emisor UDP con los datos UDP intactos. Vamos a comparar las fotos 5 y 6 para asimilar el concepto.

Foto 5Y te vuelve un byte de datos. (ampliar)

PINGING ARP y UDP es el conjunto bsico de protocolos que la EDB usa para mover los datos a travs de la ethernet. El ping es una aplicacin basada en el protocolo ICMP que nos ayuda a determinar si un host remoto est online. Las fotos 7 y 8 muestran el proceso ms detalladamente, pero a nosotros no nos hace falta mucho ms, simplemente saber que el ping est incorporado en el firmware de la EDB. La foto 9 muestra el comando ping usado bajo un PC sobre Windows 98 a la EDB bajo el control del PICMASTER.
Foto 6La primera vez que falla el ping es porque la aplicacin del PIC no estaba ejecutndose. (ampliar)

5.-Whats the point Bien, ya hemos visto como construir un aparato y trabajar en una Ethernet con un PIC y un puado de componentes. A continuacin se incluye un programa en Visual Basic que enva y recibe datos usando el protocolo UDP. Podemos seleccionar la direccin IP y el puerto UDP y transmitir datos entre el PC y cualquier EDB en una red. Este pequeo programa tambin tiene una funcin de eco dirigida al puerto UDP 7 y un simple mecanismo de seleccin de IP y UDP, adems de que puede enviar una seal de On/Off al dispositivo por el puerto A del PIC de la EDB. Puedes hacerte una idea de la funcionalidad del programa mirando la foto 7.

Foto 7La aplicacin la puedes conseguir aqu.

6.-Y para finalizar... los programas No hemos hablado mucho sobre el cdigo de programacin del PIC16F877. El programa funciona con el .hex generado con el entorno de programacin MPLAB de Microchip. Slo hay que escribir el cdigo, ensamblarlo y asegurarse de que la salida .hex y el cdigo estn en el mismo directorio. Entonces, cargar el fichero .hex y pulsar el botn Programar.

Foto 8Captura del programador del PIC16F877 (ampliar)

Con todo esto hemos conseguido la base para realizar cualquier tipo de aplicacin en la que necesitemos enviar datos a travs de una red.

El chip CS8900 1.-Introduccin El CS8900 es un chip Ethernet, es decir un chip diseado para ser incrustado en placas caseras para brindar un interfaz completo Ethernet. El chip tiene incorporado un buffer que le permite conectar sistemas lentos a una LAN de 10Mbit/s a travs de un RJ45. Cuenta con un modo de ocho bits que le posibilita un interfaz usando solo 14 pins de entrada / salida. Cualquier sistema que tenga dos puertos de 8 bits bidireccionales puede usar este chip. Usando microcontroladores actuales podemos implementarle funcionalidades bsicas de TCP/IP. Otra de sus muchas posibilidades es poder ser programado para comunicarse va Windows Socket desde un Windows 98 o un NT. 2.-Caractersticas principales El CS8900 tiene 4K de memoria integrada permitindole recibir y enviar paquetes de manera asncrona al microcontrolador. Esto elimina cualquier problema temporal que normalmente aparece, permitiendo al lento microcontrolador hablar en la ethernet. El CS8900 junto con un microchip, es muchsimo ms fcil de utilizar que los tpicos receptores-transmisores que se conectan directamente en un puerto ISA o PCI usando DMA para tener acceso a una RAM externa utilizada para recibir los paquetes. Simplemente consta de un bus de direccionamiento de 4 bits, uno de 8 para datos y 4 seales de control (/RD, /WR, /AEN e INTR) es todo lo que necesita esta placa (CS8900 con microcontrolador) para comunicarse en la ethernet. 3.-Esquema principal del chip Cosas a destacar sobre el esquema a simple vista es que no tiene condensadores ya que el CS8900 los implementa en su interior. La resistencia de 4.99K que necesita puede que sea algo bastante difcil de encontrar, esto se puede solucionar con una tres resistencias una de 4.7K, otra de 254 Ohms y una de 51 Ohms.

4.-Arquitectura del CS8900 Como hemos dicho el chip es una solucin ethernet, e incorpora toda la circuitera analgica y digital necesaria. Los bloques principales que hacen posible esto son: Interfaz ISA directo Incluido en el CS8900 es un bus con 24 mA de capacidad. Sus opciones de configuracin cuatro interruptores y tres canales DMA (uno de ellos se selecciona durante la inicializacin). Memoria integrada Incorpora una pagina de 4-Kbyte de memoria incrustada en el chip eliminando as el coste y el espacio que supondra tenerla externa, de este modo el chip es capaz de transmitir y recibir tramas el solo sin la necesidad de manejar difciles e ineficientes esquemas de memoria. Adems puede operar con controladores DMA proveyendo as al ingeniero de una gran flexibilidad. incluyen

Mquina ethernet MAC La mquina MAC de este chip cumple completamente con la norma IEE 802.3 (ISO/IEC 8802-3, 1993), y soporta operaciones bidireccionales. Maneja todos los aspectos de una transmisin-recepcin de tramas en ethernet incluyendo deteccin de colisin, prembulo de generacin y deteccin y generacin y test CRC (cyclic redundancy check). Los aspectos programables del MAC incluyen retrasmisin automtica cuando hay colisin y relleno automtico de tramas transmitidas. Interfaz EERPROM El CS8900 nos provee de un simple y eficiente interfaz EEPROM que nos permite configurar la informacin almacenada en una opcional EEPROM, y luego cargarla automticamente al arrancar. Esto elimina el uso de switches costosos y engorrosos jumpers. Frontal completamente analgico El frontal incorpora un codificador-decodificador analgico, un reloj para el recuperamiento del circuito, un transceptor 10BASE-T y una completa AUI (Attachment Unit Interfase). Este frontal prev de una seleccin manual o automtica entre 10BASE-T o AUI, y ofrece tres LED en el chip para indicar el estado de la comunicacin, el estado del bus y la actividad de la lnea ethernet. 10BASE-T

El transceptor 10BASE-T incluye drivers, receptores y filtros analgicos permitiendo una conexin directa a transformadores aislados elctricamente de bajo coste. Soporta 100, 120 y 150 Ohm de cables sin blindaje, cables largos, y recepcin automtica de polaridad inversa de deteccin y correccin. 5.-Pinouts del CS8900 Para poder montar cualquier chip necesitamos conocer el diagrama que describe el funcionamiento de cada pin del chip:

8 1 2 3 6 5 7 4

1) Vcc 2) GND 3) D7-D0 4) /AEN 5) /WR 6) /RD 7) /IRQ 8) A3-A0

Entrada de corriente +5V DC (en continua) La toma a tierra (Ground) Entrada/salida del bus de datos del CS8900A Adress Enable se activa a nivel bajo y esta tambin referido a Chip Select Control de escritura (write) Control de lectura (read) Interrupciones simbolizadas con este pin cuando se pone a nivel alto Estos se usan para el bus de direcciones

*Puse ms o menos las correspondencias de los pins aunque no son totalmente exactas debido a que la precisin de las flechas no me lo permiti. 6.-Ejemplo de diseo de una placa Las piezas que nos haran falta seran las siguientes: el chip de Crystal propiamente dicho un HALO TG42-1406IN1 resistencias de 24, 51, 100, 240 y 680 Ohm y una de 4.7 adems de dos condensadores de 68pf y 100nF dos leds uno verde y uno amarillo un cristal de cuarzo de 20Mhz y un conector RJ45

Simplemente con esto podemos hacer nuestra pequea placa conectada a una red ethernet, el diseo a seguir sera el siguiente:

7.-Aplicacin con un CS8900A Un ejemplo de lo que podemos hacer con esta este chip, es un pequeo pero efectivo sniffer. Un sniffer es explicado rpidamente un programa que captura paquetes en una red los analiza y los interpreta para poder mostrarlos en pantalla. Una placa con este chip presenta un aspecto fantstico (solo hemos de usar 15 puertos de entrada salida) para ser usado como sniffer, simplemente tenemos que adquirir una placa muy barata de la casa Jameco, ms exactamente el modelo Jameco #162536 sobre la cual conectaremos nuestro chip CS8900 del siguiente modo:

Los pins a0 a a3 a los p0 a p3 de la placa de Jameco Conectaremos el /RD del chip al p4 Conectamos el /WR al p5 El AEN (es decir el /CHIPSEL) al p6 Dejaremos colgado el INTR, porque no lo vamos a usar Conectaremos el bus de datos d0-d8 a los pines p8-p15 de la placa de Jameco El p7 de la placa de Jameco no lo usaremos

Grfico de la placa de Jameco:

*Nota: la verdad es que la placa para ser con fines educacionales es un poco cara cuesta unos 56, se puede comprar en la pgina de Jameco ( http://www.jameco.com ) Una vez hecho esto solo nos queda programar el chip, el cdigo fuente del sniffer lo podis encontrar en http://embeddedethernet.com . Cuando ya tenemos programado el chip solo nos queda enchufar nuestro pequeo experimento a nuestro PC mediante el puerto COM, una de las facilidades que nos da la placa de Jameco Electronics, como podemos ver en el grfico del pie de esta pgina. Nos conectaremos a la placa a travs de una sesin Hyperterminal en Windows; por ejemplo. Cosas a tener en cuento al programar el chip son poner una IP de nuestra red y tener muchsimo cuidado al programar la MAC ya que esto es algo muy delicado, debido a que la MAC es un nmero que se compra y esta estandarizado por la IEE. Este nmero tiene la finalidad de hacernos posible la comunicacin. El mayor problema que podemos tener es que nuestra MAC coincida con alguna de la red, hemos de evitar esto, y en el caso que furamos a poner esta placa en una red comercial entonces si que tendramos que comprar una MAC buena. Un ejemplo de lo que devolver nuestro sniffer se encuentra en la siguiente pgina: Este ejemplo es una solicitud de un ping (ICMP) a la direccin 192.168.1.2 la cual fue capturada. El autor fue 192.168.100.1 y su MAC la 006008DFD9A3, todo esto lo podemos ver en el cuadro de arriba que es lo que ha capturado nuestro sniffer. Bien, si seguimos observando tambin podemos ver que el destino de esta peticin es la direccin 192.168.1.2 que tiene de MAC 000000123456. El paquete completo fue de tamao 74 menos doce de la cabecera ethernet. Podemos sacar mucha ms informacin del paquete capturado para ello solo hemos de entender la trama ethernet, para lo cual podemos apoyarnos en los numerosos libros que podemos encontrar en el mercado. Cdigo del sniffer

Signature=3124 EISA=630E ProdID=0700 ppSelfCtl=0015 ppSelfSt=0896 CS8900 RESET Init complete Recv packet length=74 Dest MAC=$000000123456 Src MAC=$006008DFD9A3 Packet type=$0800 IP Ver 4, HDR Length=20, TOS=$00 Packet Length=60 Datagram ID=$6F01 Fragment Offset=0 TTL=32 Protocol=ICMP Checksum=$0218 Source IP Address=192.168.100.1 Destination IP Address=192.168.1.2 Packet Data: 0800 3E5C 0200 0D00 6162 6364 6566 6768 696A 6B6C 6D6E 6F70 7172 7374 7576 7761

6263 6465 6667 6869 0000

Anda mungkin juga menyukai