Módulo de Comunicación Ethernet ENC28J60



Documentos relacionados
Para nuestro ejemplo, el caso que se aplica es el del punto b. Los pasos a seguir son los siguientes:

Tutorial BMS Server Studio UDP

MÓDULO DE COMUNICACIÓN IP IPS 200 REG

MANUAL CÁMARA DE MOWAY

Instalación y Programación Módulo Voyager-NET

PROCESO DE SIMULACIÓN EN PROTEUS

Módulo Bluetooth basado en el RN41 de Roving Network

MANUAL DE USUARIO CONVERSOR TCP/IP A RS232 Y TCP/IP A RS485

VS-Tv. Manual de usuario. Matriz virtual de vídeo ESPAÑOL

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Accesorios. Módulo de comunicación telecontrol local o remoto CAN/LAN. CCLAN: Comunicaciones por Ethernet. Referencia rápida. v.1.

CONFIGURACIÓN TCP/IP DE TARJETA ETHERNET EN LINUX (tipo Debian) y VERIFICACIÓN BÁSICA DE FUNCIONAMIENTO.

Uso del Shield Ethernet con Arduino

Manual de Usuario. Arduino Access Control Shield. Rev. 1.0 MCI-MA-0154

Módulo CJ1W-ETN11 GUIA RAPIDA ESTE MANUAL CONTIENE: 1.- CARACTERÍSTICAS 2.- INSTALACIÓN Y CONFIGURACIÓN DEL MÓDULO 3.- CONFIGURACIÓN DEL MÓDULO

Guía rápida del Xacom Enlace Digital RDSI

Manual para el administrador de red. Configuración de las impresoras Evolis con un puerto TCP/IP (Ethernet)

TEMA 3. REDES Y SEGURIDAD INFORMÁTICA

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

ÍNDICE MANUAL DE USUARIO CONVERSOR TCP/IP A RS232 Y TCP/IP A RS CONVERSORES TCP A 232 / TCP A Características.

Guía Rápida. Guía Rápida. Autor: Antonio Cambronero

Tu Sitio de Automatización!

Procedimiento en Red Dvr s Lumibox

Guía de usuario de la Relay Control Shield v1.0

PROCESO A SEGUIR PARA DAR DE ALTA LOS EQUIPOS EN EL SERVIDOR DDNS DE HOMMAX

Placa de control MCC03

Capítulo 2. Hardware para Conexión de Instrumento

Desarrollo Web con PHP

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Introducción a Webduino

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

Acceso desde navegador web vía P2P a un DVR/NVR Dahua

Guía de inicio rápido

SA-712B / SA-712W. Secuenciador de aires acondicionados M A N U A L D E L U S U A R I O. Ver 7.1

ETHERDORLET GUIA DE CONFIGURACIÓN

MÓDULO CONVERSOR MODBUS DTP

SERVICIO DDNS HOMMAX. Índice:

Práctica de laboratorio Configuración de una interfaz serial

Configuración de una NIC

Monitorización de sistemas y servicios

MANUAL PARA SUBIR VÍDEOS A YOUTUBE

El objetivo del proyecto el logra que arduino sea un servidor web. Poder acceder a contenidos web como cliente, usar Arduino como servidor.

Guía Rápida de Instalación Internet Access Server (IAS)

GUÍA PARA LA REVISIÓN

2. Qué dispositivo se debe utilizar para enrutar un paquete a una red remota? A switch de acceso B servidor de DHCP C hub D router

NETWORKING IP. Neris

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

1.- Escribe cuáles son los elementos necesarios para que cualquier nodo pueda conectarse a una red informática.

Servicio para comprobar si un está operativo. Coteja los correos de tus bases de datos.

GUÍA PARA REALIZAR PETICIONES RELACIONADAS CON TELEFONÍA IP A TRAVÉS DE LA OFICINA VIRTUAL

Control de un módulo LCD a través del bus I2C

COB Versión 1.20 Manual del usuario

Para este caso vamos a suponer que son los siguientes:

Introducción a las Redes de Computadoras

MÓDULO DE COMUNICACIÓN IP IPS 100 REG

Juego para comunicación simple E/S a través de Ethernet Modbus/TCP / EtherNet/IP / PROFINET con grado de protección IP67 TI-BL67-EN-S-6

Conexión inalámbrica a un CNC (con puerto Serie RS232C)

Programa de encriptación WIFI.

ELECTRÓNICA - SOFTWARE - AUTOMATION DELCOMP S.A.C.

Configuración básica de una EGX300 mediante Internet Explorer

Manual de Configuración Cámaras IP Wanscam

ETHERNET. 2. EJEMPLO DE ENLACE ENTRE PLCs, PC y NS MEDIANTE. b. CONFIGURACIÓN DE LA ETN11 DEL PLC MAESTRO

La forma de manejar esta controladora es mediante un ordenador utilizando algún lenguaje de programación (Por ejemplo.: C, Visual Basic, Logo,...).

Manual de Integración CubeCart

Actividad PT 7.3.2: Configuración del acceso a LAN inalámbrica

Administración de la red (Windows 2008)

Más Información en

Indice 1. OBJETIVO ASIGNACIÓN DE RESPONSABILIDADES ALCANCE PROCEDIMIENTOS RELACIONADOS DOCUMENTOS RELACIONADOS...

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Monitorización SGBD PostgreSQL

Sistemas Rapidlogger

Integra Integra factura electrónica a tu ERP o sistema

INTRANET M2M. Manual de Instalación y Configuración: Conector Intranet M2M

Manual de Usuario. Subida de imágenes a FTP ante alarma

H 4.2.2: DESARROLLO DE UN SISTEMA DE CONTROL, MONITORIZACIÓN Y REGISTRO LOCALY REMOTO PARA EL SIRVE SIRVE

DOMINIO CON IP DINÁMICA

CUSTOMER SUPPORT PORTAL Manual de Usuario. Esther Pastor

Configuración de la red

Configurando el CP como Web Server y para el envío de s. Iñaki Prieto Furundarena Oihane Crucelaegui Abad

! " " & '( ) ( (( * (+,-.!(/0"" ) 8-*9:!#;9"<!""#

Speed Editor. Guía de usuario

Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006

Examen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0707.doc) 31 de julio de 2007

Administración de redes IP. Localización y manejo de problemas

SOLUCIÓN ACTIVIDAD. Diagrama de topología Red punto a punto Redes conmutadas. Objetivos de aprendizaje. Información básica

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

en Hosting compartido

.TEL Un uso innovador del DNS

NOVEDAD. Control Centralizado G50A. Sistemas de Control

Mejor rendimiento con Thunderbolt 2

Más Información en

Configuración del Xpy4002-KX, Xpy4004-KX y Xpy80004-KX con DDNS y aplicación móvil

Manual de usuario Sunways Modem analógico, RDSI, GSM. Español

EZ Web Lynx. Manual Rápido de Usuario

Caja Torre RAID Matriz Array de Discos Duros 2 Bahías SATA 3,5in Pulgadas - esata USB 3.0 SuperSpeed

[VPN] Manual Instalación VPN. [Usuario Windows]

Caja Torre RAID Matriz Array de Discos Duros 2 Bahías SATA 3,5in Pulgadas - esata USB 3.0 SuperSpeed

Formas de llevar a cabo un backup de una base de datos MySQL

Transcripción:

Módulo de Comunicación Ethernet ENC28J60 1. Descripción del producto Este módulo de desarrollo Ethernet, formado por el controlador ENC28J60 de Microchip, es una solución perfecta para crear una interfaz de red con la que controlar tu aplicación de forma remota a través de una red IP, ya sea mediante una página web o a través del envío de correos electrónicos para advertir de incidencias. Integra la electrónica necesaria para ser conectado directamente a un Router/Switch mediante un cable de red. El control se realiza mediante el bus serie SPI. El módulo puede ser alimentado tanto a 5V como a 3,3V, para ello dispone de un jumper de selección de la tensión de alimentación. El conector Ethernet presenta además dos leds (verde y naranja) para indicar la correcta conexión al router y el estado de la transmisión de datos. 2. Características generales Controlador Ethernet ENC28J60 IEEE 802.3 10BASE-T Full/Half Duplex 3. Especificaciones Alimentación: 3.3V o 5 VDC Consumo: 138mA@3.3V, 145mA@5V Dimensiones: 55,88 x 35,56mm (2.2 x 1.4 ) Peso: 16,6g 4. Ideas de aplicación Aplicaciones de Comunicación Envío de parámetros por e-mail Visualización de parámetros en una sencilla web NOTA: El esquemático, y los códigos de ejemplo se pueden descargar desde la web del producto (ModEthernet) a través de www.microingenia.com ModEthernet Manual de Usuario V1.0 1

5. Descripción de Pines Pin VCC GND CSK RST CS MOSI MISO WOL INT CLKO Descripción Conexión de alimentación 5V o 3V3 Conexión de masa Entrada de reloj SPI interface Pin de Reset a nivel bajo Selección del chip mediante SPI Pin de entrada de datos SPI Pin de salida de datos SPI No conectado Pin de interrupción Reloj de salida programable Figura 1.- Dimensiones ModEthernet 6. Esquemático Figura 2.- Esquemático ModEthernet Componentes principales: U1: ENC28J60: Módulo de Comunicación Ethernet ENC28J60 U2: 74AC125: Buffer tri-estado de cuatro salidas U3: Regulador 5V->3.3V RJ45T1: Conector Ethernet Jumper: Selección de tipo de alimentación (5V o 3.3V) ModEthernet Manual de Usuario V1.0 2

Web: www.microingenia.com Mail: info@microingenia.com Tel: (+34) 902 080 050 Foros: forum.microingenia.com Soporte: atcliente@microingenia.com 7. Ejemplo 1: Objetivo Ejemplo de diseño para el envío de un correo electrónico mediante el uso del módulo y la entrenadora 18F67J50Trainer, definiendo en el programa las direcciones de envío, destino y los parámetros necesarios para el envío del correo. Conexión Módulo-Entrenadora La conexión entre la entrenadora y el modulo se realizará siguiendo el esquema de conexiones definido en el fichero config18f67j50trainer.c. Figura 3- Conexión de pines ModEthernet Figura 5.- ModEthernet Figura 4.- 18F67J50Trainer ModEthernet Manual de Usuario V1.0 3

Código de Aplicación en C para el compilador de CCS PCWHD Versión 4.108 El código de ejemplo CCS disponible en la web (Ejemplo1 V1.0, CCS C E1_ModEthernet_CCS_V1.0 ) permite el envío de correo electrónico mediante el uso del módulo de una forma sencilla variando unos sencillos parámetros, de esta forma el envío se realiza de forma prácticamente inmediata, en el caso de que se produzca algún tipo de error el código devuelve donde se ha producido. A lo largo del código se explican de forma más detallada las funciones que se han utilizado para el envío. #include "config18f67j50trainer.c" #define STACK_USE_MCPENC #define STACK_USE_ARP #define STACK_USE_DHCP #define STACK_USE_DNS #define STACK_USE_ICMP #define ESMTP #define STACK_USE_BASE64 #define STACK_USE_TCP #define STACK_USE_UDP #include "tcpip/stacktsk.c" #include "tcpip/smtp.c" #include "usb/usb_bootloader.h" #include "usb/usb_cdc.h" // Editor de tus datos de e-mail, los datos son orientativos, se deben incluir datos reales #define SMTP_HOST_NAME "smtp.microingenia.com" #define SMTP_PORT "port" #define SMTP_USERNAME "test@microingenia.com" #define SMTP_PWD "test" #define EMAIL_FROM_ADDRESS "test@microingenia.com" #define EMAIL_TO_ADDRESS "test@microingenia.com" #define EMAIL_SUBJECT "email TEST" #define EMAIL_BODY "Hi PIC World!" int8 state = 0; int8 timeoutethernet = 0; int1 tick = FALSE; int1 flag_sendinmaileth = FALSE; int1 flag_emailsent = FALSE; int1 flag_sendmail = FALSE; IP_ADDR smtpserver; int16 port; char hostname[64]; char username[64]; char pwd[64]; char from[64]; char to[64]; char subject[64]; char body[64]; ModEthernet Manual de Usuario V1.0 4

void MACAddrInit(void) MY_MAC_BYTE1=0x00; MY_MAC_BYTE2=0x04; MY_MAC_BYTE3=0xA3; MY_MAC_BYTE4=0x00; MY_MAC_BYTE5=0x00; MY_MAC_BYTE6=0x01; // Configuración del e-mail con los parámetros indicados en la definición anterior void SendMailConfig(void) // Fijamos el Puerto SMTP port = 25; // Nombre del Host del servidor SMTP sprintf(hostname, SMTP_HOST_NAME); // Nombre de usuario y contraseña del servidor SMTP sprintf(username, SMTP_USERNAME); sprintf(pwd, SMTP_PWD); //Dirección de envío y destino del correo electrónico sprintf(from, EMAIL_FROM_ADDRESS); sprintf(to, EMAIL_TO_ADDRESS); //Asunto del correo sprintf(subject, EMAIL_SUBJECT); //Cuerpo del correo sprintf(body, EMAIL_BODY); // Función encargada de seguir los pasos para el envío del correo electrónico, en caso de error indicará en que parámetro se ha producido void tarea_ethernet(void) StackTask(); if(flag_sendinmaileth) SMTPTask(); switch(state) case 0: if(!macislinked()) if(!tick) printf(usb_cdc_putc,"\n\rno Ethernet Link"); tick = ; tick = FALSE; case 1: if(!dhcpisbound()) ModEthernet Manual de Usuario V1.0 5

if(!tick) printf(usb_cdc_putc,"\n\rdchp Not Bound"); tick = ; printf(usb_cdc_putc,"\n\rip: %u.%u.%u.%u", MY_IP_BYTE1, MY_IP_BYTE2, MY_IP_BYTE3, MY_IP_BYTE4); printf(usb_cdc_putc,"\n\rmask: %u.%u.%u.%u", MY_MASK_BYTE1, MY_MASK_BYTE2, MY_MASK_BYTE3, MY_MASK_BYTE4); printf(usb_cdc_putc,"\n\rgate: %u.%u.%u.%u", MY_GATE_BYTE1, MY_GATE_BYTE2, MY_GATE_BYTE3, MY_GATE_BYTE4); printf(usb_cdc_putc,"\n\rdns: %u.%u.%u.%u", MY_DNS_BYTE1, MY_DNS_BYTE2, MY_DNS_BYTE3, MY_DNS_BYTE4); tick = FALSE; case 2: if(!tick) DNSResolve(hostname); printf(usb_cdc_putc,"\n\rfinding IP address for %s", SMTP_HOST_NAME); tick = ; tick = FALSE; timeoutethernet = 0; case 3: if(dnsisresolved(&smtpserver)) printf(usb_cdc_putc,"\n\rip address is resolved to ""%u.%u.%u.%u""", smtpserver.v[0], smtpserver.v[1], smtpserver.v[2], smtpserver.v[3]); timeoutethernet = 0; if(timeoutethernet > 1) printf(usb_cdc_putc,"\n\rdns failure %X.", smdns); timeoutethernet = 0; state = 0; case 4: if(smtpconnectandstart(&smtpserver, port, username, pwd, from, to, subject)) printf(usb_cdc_putc,"\n\ropening socket with SMTP server..."); flag_sendinmaileth=1; printf(usb_cdc_putc,"\n\rsmtp engine is busy! Try again in a few moments."); ModEthernet Manual de Usuario V1.0 6

state = 0; case 5: if (SMTPLastError()) printf(usb_cdc_putc,"\n\rsmtp Error %X", SMTPLastError()); state = 0; if (SMTPIsPutReady()) printf(usb_cdc_putc,"\n\rsmtp Connection accepted, now sending body of email."); printf(smtpput, "%s", body); SMTPDisconnect(); case 6: if (SMTPIsFree()) if (!SMTPLastError()) flag_emailsent = ; flag_sendmail = FALSE; printf(usb_cdc_putc,"\n\re-mail Sent!"); printf(usb_cdc_putc,"\n\re-mail rejected by SMTP server! %X", SMTPLastError()); state = 0; //Inicio de los parámetros del módulo void ethernet_init(void) MACAddrInit(); StackInit(); SendMailConfig(); SMTPInit(); // Función principal del programa, iniciando el Puerto USB, el programa espera recibir la confirmación de un nuevo e-mail. //Se iniciará el módulo de red con los parámetros introducidos en la configuración inicial, y se invocará la función tarea_ethernet() de forma recursiva hasta el término de la misma. //Cuando el correo ha sido enviado correctamente el programa devolverá e-mail sent, si se ha producido un error en la función, nos devolverá mediante un código de error el parámetro de la función donde se ha producido dicho fallo. void main(void) PLLEN = 1; ON(LedR); OFF(LedV); ModEthernet Manual de Usuario V1.0 7

usb_cdc_init(); usb_init(); usb_wait_for_enumeration(); ON(LedV); OFF(LedR); while(!input(newmail)); printf(usb_cdc_putc,"\n\rsendmail V1.0 Example:"); ethernet_init(); flag_sendmail = ; while() if(flag_sendmail) tarea_ethernet(); if(input(newmail)) flag_sendmail = ; 8. Ejemplo 2 Objetivo El código de ejemplo CCS disponible en la web (Ejemplo1 V1.0, CCS C E2_ModEthernet_CCS_V1.0 ) permite la creación de una sencilla página web en la memoria interna del PIC, accesible desde la dirección 192.168.1.111 Conexión Módulo-Entrenadora La conexión entre la entrenadora y el modulo se realizará siguiendo el esquema de conexiones definido en el fichero config18f4550trainer.c. Figura 6- Conexión de pines ModEthernet ModEthernet Manual de Usuario V1.0 8

Web: www.microingenia.com Mail: info@microingenia.com Tel: (+34) 902 080 050 Foros: forum.microingenia.com Soporte: atcliente@microingenia.com Figura 8.- ModEthernet Figura 7.- 18F4550Trainer Código de Aplicación en C para el compilador de CCS PCWHD Versión 4.106 #include "config18f4550trainer.c" #define #define #define #define STACK_USE_MCPENC STACK_USE_ARP STACK_USE_ICMP STACK_USE_TCP #include "tcpip/stacktsk.c" #include "usb/usb_bootloader.h" #include "usb/usb_cdc.h" #define MY_HTTP_SOCKET 80 int8 HTTPSocket=INVALID_SOCKET; // Microchip VendorID // MAC: 00-04-A3-XX-XX-XX void MACAddrInit(void) MY_MAC_BYTE1=0x00; MY_MAC_BYTE2=0x04; MY_MAC_BYTE3=0xA3; MY_MAC_BYTE4=0x00; MY_MAC_BYTE5=0x00; MY_MAC_BYTE6=0x01; void IPAddrInit(void) //Dirección IP ModEthernet Manual de Usuario V1.0 9

MY_IP_BYTE1=192; MY_IP_BYTE2=168; MY_IP_BYTE3=1; MY_IP_BYTE4=111; //Pasarela de red MY_GATE_BYTE1=192; MY_GATE_BYTE2=168; MY_GATE_BYTE3=1; MY_GATE_BYTE4=1; //Mascara de subred MY_MASK_BYTE1=255; MY_MASK_BYTE2=255; MY_MASK_BYTE3=255; MY_MASK_BYTE4=0; void HTTPPut(char c) TCPPut(HTTPSocket, c); // Funcion para crear el cuerpo de la web, establece la conexión inicial con la página, la creación de la página se realiza mediante un sencillo código HTML void HTTPTask(void) static enum HTTP_ST_CONNECT=0, HTTP_ST_WAIT_CONNECT=1, HTTP_ST_GET=2, HTTP_ST_PUT=3, HTTP_ST_DISCONNECT=4 state=0; static TICKTYPE timeout_counter; static char lc, lc2; char c; char content[250]; if (HTTPSocket==INVALID_SOCKET) state=http_st_connect; if (!TCPIsConnected(HTTPSocket)) state=http_st_wait_connect; if (TickGetDiff(TickGet(), timeout_counter) > TICKS_PER_SECOND*60) state=http_st_disconnect; switch(state) case HTTP_ST_CONNECT: HTTPSocket=TCPListen(MY_HTTP_SOCKET); if (HTTPSocket!=INVALID_SOCKET) //printf("\r\nhttp: Listening"); state=http_st_wait_connect; timeout_counter=tickget(); case HTTP_ST_WAIT_CONNECT: timeout_counter=tickget(); if (TCPIsConnected(HTTPSocket)) state=http_st_get; //printf("\r\nhttp: Connected"); case HTTP_ST_GET: ModEthernet Manual de Usuario V1.0 10

if (TCPIsGetReady(HTTPSocket)) while (TCPGet(HTTPSocket, &c)) if ( (c=='\n') && (lc2=='\n') ) state=http_st_put; //printf("\r\nhttp: Got Page Request"); lc2=lc; lc=c; case HTTP_ST_PUT: if (TCPIsPutReady(HTTPSocket)) //printf("\r\nhttp: Putting Page Response"); sprintf(content, "<HTML><HEAD><TITLE>Microingenia Electronics</TITLE></HEAD><BODY><H1>Test ModEthernet V1.0</H1>"); sprintf(&content[0]+strlen(content),"</body></html>"); printf(httpput, "HTTP/1.1 200 OK\r\n"); printf(httpput, "Content-Type: text/html\r\n"); printf(httpput, "Content-Length: %u\r\n",strlen(content)); printf(httpput, "\r\n"); printf(httpput, "%s", content); //printf("\r\nhttp: Flushing..."); TCPFlush(HTTPSocket); //printf("\r\nhttp: Flushed!"); state=http_st_get; case HTTP_ST_DISCONNECT: if (TCPIsPutReady(HTTPSocket)) //printf("\r\nhttp: Force Disconnect"); TCPDisconnect(HTTPSocket); state=http_st_wait_connect; void main(void) ON(LedR); OFF(LedV); MACAddrInit(); IPAddrInit(); StackInit(); ON(LedV); OFF(LedR); while() StackTask(); HTTPTask(); ModEthernet Manual de Usuario V1.0 11