Manual Micro Core ETH

download Manual Micro Core ETH

of 27

Transcript of Manual Micro Core ETH

  • 7/25/2019 Manual Micro Core ETH

    1/27

    1

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    MANUAL DE USUARIO

    Medicin y control a travs deInternet.

    Ver 1.2

  • 7/25/2019 Manual Micro Core ETH

    2/27

    2

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Introduccin

    El Micro Core ETH es una herramienta de desarrollo que se puede accesar a travs

    de Internet. Nos facilita el acceso a informacin de estado de variables digitales,analgicas, puertos de comunicacin etc.

    Tambin nos permite cambiar el estado es decir controlar dispositivos del entornocomo ser lmparas, motores, vlvulas etc. Y como limite nuestra imaginacin.

    El usuario accede a un servidor web alojado en el mdulo a travs de una direccinweb, como serhttp://mchpboarddesde una veloz interface grfica.

    La programacin se puede llevar a cabo con diversos lenguajes de programacin.De fabrica viene con una modificacin del ejemplo proporcionado por Microchip con

    su stack TCP/IP y las pginas web programadas en AJAX (HTML, CSS, JavaScript y XML).

    http://mchpboard/http://mchpboard/http://mchpboard/http://mchpboard/
  • 7/25/2019 Manual Micro Core ETH

    3/27

    3

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Pin-Out

    El Micro Core ETH incorpora un regulador de 3.3V, lo que permite alimentarlo con

    5V o 3.3V. Se proporcionan las seales de dos interfaces SPI, la USART, los pinesde programacin para Pickit 2 y Pickit 3.

  • 7/25/2019 Manual Micro Core ETH

    4/27

    4

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Esquemtico

    La fuente de alimentacin consiste en un regulador TC1262-3.3 de Microchip. La

    tensin mxima de entrada admisible es de 5.5v. Tanto el micro controlador como lamemoria se alimentan a 3.3v.

    La memoria 25LC1024 est conectada al SPI1 del PIC. Estos pines tambin estndisponibles en el header ya que se puede multiplexar el BUS SPI a travs del CS.

  • 7/25/2019 Manual Micro Core ETH

    5/27

    5

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    El conector RJ45 que utilizamos (MagJack) contiene los inductores necesarios para

    adaptar los niveles de tensin, con lo cual no son necesarios componentes externosmas all de los que se ven en el diagrama:

    El PIC necesita un XTAL externo de 25 MHz para funcionar correctamente. Si no esposible encontrar esta frecuencia en el mercado local se pueden utilizar los cristalesde las placas de red que por lo general son de 25 MHz

  • 7/25/2019 Manual Micro Core ETH

    6/27

    6

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Configuracin

    Vamos a realizar las conexiones de hardware y la configuracin del softwarenecesaria para conectar el mdulo a la red. En primer lugar alimentaremos el MCEMicro Core ETH con 5 o 3.3v, de este modo se debe encender el LED de Power.

    La placa viene programada de fbrica como cliente DHCP con lo cual podemos

    conectarla a un ROUTER con DHCP habilitado para que le asigne una direccin IP.El nombre de la placa por NETBIOS es mchpboard.

    Para acceder a la interface de usuario, basta con escribir http://mchpboarden elnavegador web (la PC debe estar conectada en la misma red que la placa)

    Conexin a PC: conectar un cable UTP/STP cruzado al terminar RJ45.Conexin a Router: conectar un cable UTP/STP recto al terminar RJ45.

    En el explorador Web ingresar a http://mchpboardo la IP: 169.254.1.1en el caso de conexin

    directa a la PC.

    Power

    Alimentacin

  • 7/25/2019 Manual Micro Core ETH

    7/27

    7

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Lo que vemos en el explorador web es la pagina que viene cargada por defecto en lamemora 25LC1024. Los LEDs estn mapeados en el puerto RBX con lo cualpodemos conectar 4 LEDs en los pines RJ0, RJ1, RJ2 y RC0 para controlarlosdesde Ethernet.

  • 7/25/2019 Manual Micro Core ETH

    8/27

    8

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    TCP/IP Stack Introduccin

    Esta versin modificada est basada en la distribucin original: Microchip TCP/IPstack v5.42.06. La idea era hacerla compatible con el Micro Core ETH para queacepte memorias de 1 Mbit como la 25LC1024.Hay que tener en cuenta que se puede compilar el stack para ser usado en microsque no tienen controlador Ethernet incorporado como el 18F4550 (en este caso hayque agregarle un ENC28J60 de Microchip) y para aquellos que si traen uncontrolador integrado como el 18F97J60.

    Para comenzar a trabajar con el stack necesitaremos los siguientes programas:

    Microchip MPLAB X

    Microchip C18 Student EditionLibreras de Microchip para Ethernet

    El programa de ejemplo que est incorporado fue compilado con MPLAB X 2.05 yC18.

    Dentro del Microchip TCP/IP Stack abrir la carpeta TCPIP / Demo Appquecontiene el proyecto TCPIP Demo App-C18

    Este es el proyecto general que contiene los encabezados y todos los archivos delStack.

  • 7/25/2019 Manual Micro Core ETH

    9/27

    9

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    TCP/IP Stack Configuration Wizard

    Podemos tener una buena idea de las posibilidades del Stack estudiando en detalleel Microchip TCP/IP Configuration Wizard. Si bien esta aplicacin nos permitemodificar parmetros de la red como la direccin IP y MAC; seleccionar entreprotocolos como HTTP y FTP, no permite que el usuario agregue su propio cdigo.

    Al momento de implementar un sistema necesariamente debemos programar lasfunciones en C con el MPLAB.

    Lo primero que debemos hacer es seleccionar la carpeta desde la cual vamos atrabajar, es decir, donde est instalado el Stack. El proyecto bsico se encuentra en:C:\Microchip Solutions\TCPIP \Demo App.

    El TCP/IP Configuration Wizardes una aplicacin grfica que permite modificar losparmetros del stack, se instala junto con las libreras de Microchip y la ruta pordefecto es: InicioProgramasMicrochipMicrochip TCPIP Stack-TCP/IPConfiguration Wizard.

  • 7/25/2019 Manual Micro Core ETH

    10/27

    10

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Podemos agregar soporte para distintos servicios: Servidor Web, Cliente de email,Telnet, FTP y SSL. Adems soporte para el mdulo WI-FI de Microchip o ZeroG.

    En esta instancia vamos a agregar Servidor Web, que permite acceder a un pginapor medio de una direccin IP y Cliente de emailmediante el cual podremos enviarun email automticamente ante un determinado evento, por ejemplo, si sube latemperatura por encima de un umbral.

    Como mencionamos anteriormente, cada servicio que deshabilitamos por medio delasistente es comentado en el Stackpara que el C18 no lo compile.En esta instanciacabe mencionar que el Stackde Microchip est organizado en varios archivos, losencabezados que habilitan los servicios se encuentran en el archivo: TCPIPConfig.h

  • 7/25/2019 Manual Micro Core ETH

    11/27

    11

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Por medio del TCP/IP Configuration Wizard podemos agregar funciones especiales.Por ejemplo, una aplicacin sumamente til es hacer un conversor RS232Ethernet:

    as todos los paquetes que ingresen por el conector de red sern retransmitidos porla UART del PIC y viceversa. De esta forma podemos darle conectividad Ethernet asistemas que originalmente solo tenan comunicacin RS232.

    Otra funcin interesante es medir el tiempo de viaje de un paquete entre el cliente yel host, lo que comnmente denominamos PING. El stack nos devuelve el tiempo deviaje en milisegundos.

  • 7/25/2019 Manual Micro Core ETH

    12/27

    12

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Vamos ahora a definir el nombre de Host, es decir un nombre con el cualidentificaremos a nuestra placa en la red. Si tenemos habilitado el servicio de DNS

    podemos asociar un nombre a la placa que ser ms fcil de recordar que ladireccin IP. Por otra parte, como la IP puede ser asignada por el servidor en formadinmica, resulta conveniente definir un nombre de Host.

    Vinculado estrechamente al nombre de Host se encuentra la direccin MAC.Recordemos que por norma la MAC debe ser unvoca, por lo tanto, al momento decomercializar nuestro desarrollo es necesario adquirir un bloque de direcciones MACa la IEEE. Existen memorias de Microchip que tienen pregrabada una MAC y quepodemos vincular el microcontrolador a travs de la interface SPI o I2C. Claro quepara hacer pruebas podemos utilizar la MAC por defecto que trae el Stack.

  • 7/25/2019 Manual Micro Core ETH

    13/27

    13

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Vamos a definir el nombre de la pgina principal, es decir aquella que se va amostrar por defecto, en este caso: index.htm

    Un parmetro importante es la cantidad de conexiones que vamos a permitir. Estohace referencia a la cantidad de usuarios que pueden monitorear el sistemasimultneamente. Cmo mximo pueden ser 32, pero debemos considerarparmetros como ancho de banda y estabilidad de la red antes de establecerlo, yaque una excesiva demanda puede deteriorar el rendimiento del sistema.

  • 7/25/2019 Manual Micro Core ETH

    14/27

    14

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Podemos establecer diferentes ubicaciones para almacenar la pgina web que verel usuario final de nuestro web server. La misma puede estar en la memoria de

    programa del microcontrolador o en una memoria externa del tipo EEPROM.

    Si bien vemos otras opciones como memoria Flash y sistema FAT, las mencionadasanteriormente son las ms representativas ya que determinan si la pgina estalojada en la memoria del micro o en una memoria externa.

    La placa Micro Core ETH utiliza la memoria 25LC1024. Esta memoria es del tipoEEPROM , tiene una capacidad de 1Mbit y se conecta al PIC por SPI. Eligiendo unamemoria externa disponemos de toda la memoria de programa para escribir nuestrocdigo y alojar el StackTCP/IP.

  • 7/25/2019 Manual Micro Core ETH

    15/27

    15

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Una vez configurados los parmetros bsicos de nuestra aplicacin a travs delMicrochip TCP/IP Configuraton Wizard, estamos en condiciones de compilar el Stack

    y cargarlo en el PIC.

  • 7/25/2019 Manual Micro Core ETH

    16/27

    16

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Necesitamos, entonces, compilar el Stack, para lo cual abrimos el proyectoTCPIP/Demo App/C18-PICDN2_ETH97.Xdesde el MPLAB y ejecutamos la

    compilacin haciendo click en Buil dall.

    Dentro de la carpeta TCPIP Demo App encontramos varios proyectos preparadospara utilizar con micros de 8 a 32 bits. Es interesante destacar que los parmetrosconfigurados con el asistente sirven para cualquier proyecto, esto se debe a que slose est modificando el archivo de cabecera TCPIPConfig.h. Ntese queseleccionamos el proyecto TCPIP/Demo App/C18-PICDN2_ETH97.Xya que vamosa trabajar con un micro de la familia PIC18 (8bits).

  • 7/25/2019 Manual Micro Core ETH

    17/27

    17

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    TCPIPConfig.h

    El archivo TCPIPConfig.hse utiliza para habilitar o deshabilitar funciones del stackcomo DNS, FTP, SNTP, SSL y UART dependiendo de las caractersticas de nuestraaplicacin y la memoria disponible en el micro. Por ejemplo, para habilitar el clienteNTP, debemos incluir la sentencia: #define STACK_USE_SNTP_CLIENT

    Dentro de TCPIPConfig.h es posible especificar si la pgina web va a estar en lamemoria de programa o en la memoria EEPROM externa.

    Si el website va a estar alojado en la memoria de programa debemos comentar lasentencia: #define MPFS_USE_EEPROMe incluir el archivo MPFSImg2.cen elproyecto.

    Tambin se puede definir la direccin MAC a travs de MY_DEFAULT_MAC_BYTE5y el nombre de la placa mediante MY_DEFAULT_HOST_NAME(ej:http://mchpboard).

    MainDemo.c

    En el archivo MainDemo.cencontramos el mapeo de puertos, la configuracin de losregistros de la USART, los ADC y la inicializacin de la placa. Por ejemplo

    ADCON0=0x0D; // Lnea 1471-Para seleccionar AN3 como entrada analgica.

    CustomHTTPApp.c

    Por ltimo, el tercer archivo que necesitamos para una aplicacin bsica esCustomHTTPApp.c, en el cual se encuentran las funciones callback, es decir aquellasque interactan con la pagina web.

    http://mchpboard/http://mchpboard/http://mchpboard/
  • 7/25/2019 Manual Micro Core ETH

    18/27

    18

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Funciones

    En esta seccin vamos a ver como interactuar con el microcontrolador desde lapagina web. Vamos a desarrollar un ejemplo para monitorear el estado de un puerto yluego le vamos a agregar control remoto, es decir, cambiar el estado del puerto desdela interface web.

    Monitoreo a distancia:Para monitorear el estado de un puerto desde la web necesitamos hacer tres cosas:

    Mapear e inicializar el puerto en el micro. (HardwareProfile.h, MainDemo.c)Crear una funcin callback. (CustomHTTPApp.c)Insertar una variable dinmica en la pagina web. (status.xml, index.html)

    Luego compilamos el sitio web con MPFS2.exe, compilamos el proyecto con C18

    desde el MPLAB y por ltimo grabamos el firmware y la web en la memoria externa.

  • 7/25/2019 Manual Micro Core ETH

    19/27

    19

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    HardwareProfile.h

    En este archivo simplemente asociamos un puerto con un nombre fcil de recordar,por ejemplo si colocamos un LED en RF3 (pin 22 del PIC18F97J60):

    #define LED_TRIS (TRISFbits.TRISF3)#define LED_IO (PORTFbits.RF3)

    MainDemo.c

    Vamos a definir RF3 como salida e inicializarlo en cero. Este proceso est fuera delloop principal, por lo que solo se va a ejecutar al reiniciar el micro:

    static void InitializeBoard(void){

    LED_TRIS = 0;LED_IO = 0;//Continua la inicializacin de los otros puertos.

    }

  • 7/25/2019 Manual Micro Core ETH

    20/27

    20

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    CustomHTTPApp.c

    La funcin callback contiene el nombre y el valor de la variable dinmica ( led) queva a ser mostrada en la web.Un error muy comn es enviar directamente al buffer Ethernet el estado del ledmediante la variable int LED_IO.Hay que tener en cuenta que SOLO SE PUEDEN ENVIAR STRINGS PORETHERNET, por lo que en numerosas ocasiones usamos itoa o ftoa para convertirlos tipos de dato.

    ROM BYTE ESTADO_LED_UP[] = ON";ROM BYTE ESTADO_LED_DOWN[] = OFF";

    void HTTPPrint_led(void){

    TCPPutROMString(sktHTTP, (LED_IO?ESTADO_LED_UP:ESTADO_LED_DOWN));}

    En este caso, en lugar de usar los conversores de tipo, creamos dos variablesauxiliares ESTADO_LED_UP y ESTADO_LED_DOWN para mostrar el estado delled mediante ON, OFF.

    status, index.html

    Hay que incluir en el sitio web la variable dinmica led, para esto vamos a modificarstatus.xml e index.html:

    status.xmlcontiene todas las variables dinmicas que se actualizan (leds,temperatura y pulsadores).

    Agregamos la lnea correspondiente a la nueva variable dinmica:

    ~led~

  • 7/25/2019 Manual Micro Core ETH

    21/27

    21

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Entre se indica el nombre del divisor que se va a utilizar en el index para definir laposicin de la variable.

    Index.htmlfinalmente es el archivo que ve el usuario final. Donde aparezca el webserver lo va a reemplazar con ON, OFF segn el valor de LED_IO.

  • 7/25/2019 Manual Micro Core ETH

    22/27

    22

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    MPFS

    Microchip PIC File System es el sistema de archivos que utiliza el micro para leer lapagina web. Una vez que tenemos nuestro site terminado con los archivos html, jpgo gif debemos convertirlos al sistema MPFS para luego, poder cargarlos en lamemoria.

    La aplicacin MPFS.exe convierte el conjunto de archivos que componen la paginaweb a dos formatos posibles:

    .bin (para cargar el website en la memoria EEPROM externa)

    .c (para cargar el website en la memoria de programa)

    Es importante tener en cuenta que al agregar o quitar variables de nuestra web, semodifica el archivo HTTPPrint.h por lo que hay que volver a compilar el proyectoantes de cargar la aplicacin en el micro controlador.

  • 7/25/2019 Manual Micro Core ETH

    23/27

    23

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    MPFSUPLOAD

    El MPFS.exe es el programa que convertir los archivos de nuestra web en elarchivo binario final que es el que utilizar el Micro Core ETH.

    Ajustamos los parmetros de seguridad:

  • 7/25/2019 Manual Micro Core ETH

    24/27

    24

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    Cuando pulsamos OK. El programa nos muestra el resultado:

    Hay dos formas de almacenar la pagina web:

    1 -En la EEPROM, mediante mpfsupload. Para esto ejecutamos en el explorador deinternet: http://mchpboard/mpfsupload o bien http://169.254.1.1/mpfsupload ycargamos el archivo MPFSImg2.bin generado previamente con MPFS.exe

    2 -En la memoria de programa, para esto necesitamos compilar todo el proyectonuevamente (a menos que tengamos un bootloader).

    Debemos incluir en el proyecto el archivo MPFSImg2.c generado con MPFS.exe ycomentar la sentencia #define MPFS_USE_EEPROM en el archivo TCPIPConfig.h.

    De esta forma estaramos prescindiendo de la memoria EEPROM externa con elconsecuente ahorro de dinero y espacio fsico en la placa. Sin embargo slo esposible con paginas web pequeas ya que la memoria de programa del 18F97J60queda prcticamente completa con todas las funciones del stack habilitadas.

  • 7/25/2019 Manual Micro Core ETH

    25/27

    25

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    SMTP

    Para poder enviar emails desde el MCE WebServer debemos habilitar el clienteSMTP, dejando de comentar la sentencia STACK_USE_SMTP_CLIENTen elarchivo TCPIPConfig.h.

    El proceso se puede invocar en cualquier momento, por ejemplo si sube latemperatura, si se presiona un pulsador, etc. El mail del ejemplo enva el estado detodas las variables a la direccin que se especifique.

    Antes de intentar enviar un mail con la funcin SMTPSendMail()debemos verificar sino hay otro mail en proceso, para eso utilizamos en primer trmino

    SMTPBeginUsage()como indica el diagrama.

    Si nuestro servidor de correo saliente requiere autorizacin, utilizamosSMTPClient.Server, SMTPClient.Usernamey SMTPClient.Passwordpara setear losparmetros.

    Por ltimo incluimos los campos De, Para, Asunto y Mensaje antes de llamar aSMTPSendMail().

  • 7/25/2019 Manual Micro Core ETH

    26/27

    26

    MICRO CORE ETHHardware y Microchip TCP/IP Stack

    www.ytdcontrol.com.ar

    if(SMTPBeginUsage()){

    // Note that these strings must stay allocated in

    // memory until SMTPIsBusy() returns FALSE. To// guarantee that the C compiler does not reuse this// memory, you must allocate the strings as static.static BYTE RAMStringTo[] = "[email protected]";static BYTE RAMStringBody[] = "Message generated by stack " TCPIP_STACK_VERSION " \r\n\r\nButtons:

    3210";RAMStringBody[sizeof(RAMStringBody)-2] = '0' + BUTTON0_IO;RAMStringBody[sizeof(RAMStringBody)-3] = '0' + BUTTON1_IO;RAMStringBody[sizeof(RAMStringBody)-4] = '0' + BUTTON2_IO;RAMStringBody[sizeof(RAMStringBody)-5] = '0' + BUTTON3_IO;SMTPClient.Server.szROM = (ROM BYTE*)"mail"; // SMTP server addressSMTPClient.ROMPointers.Server = 1;SMTPClient.Username.szROM = (ROM BYTE*)"mchpboard";

    SMTPClient.ROMPointers.Username = 1;SMTPClient.Password.szROM = (ROM BYTE*)"secretpassword";SMTPClient.ROMPointers.Password = 1;SMTPClient.To.szRAM = RAMStringTo;SMTPClient.From.szROM = (ROM BYTE*)"\"SMTP Service\" ";SMTPClient.ROMPointers.From = 1;SMTPClient.Subject.szROM = (ROM BYTE*)"Hello world! SMTP Test.";SMTPClient.ROMPointers.Subject = 1;SMTPClient.Body.szRAM = RAMStringBody;SMTPSendMail();MailState++;}

    RESUMEN

    Para compilar exitosamente en principio el proyecto ejemplo y luego introducir algn cambio propio de ustedesdeben utilizar el TCP/IP Cconfiguration Wizard del stack de Microchip, que bsicamente lo que hace esmodificarnos los cdigos .C y .H de forma grafica e intuitiva, Luego de utilizarlo compilamos y descargarmos elHEX a nuestra placa.

    Ahora toca el turno de modificar nuestra Web que cargaremos al Micro Core RTH y que descargaremos a travsdel MPFS.exe o utilizaremos la funcin de file upload que ya tiene nuestro mdulo.

    1. TCP/IP Configuration Wizard2. Compilacion con MPLABX3. Grabacion del Microcontrolador4. Conectamos el Micro Core ETH a Ethernet5. Convertimos nuestra Web con el MPFS.exe6. Descargamos el archivo binario a la memoria del Micro Core ETH

  • 7/25/2019 Manual Micro Core ETH

    27/27