44-48 Siteplayer
25/5/05
08:16
Página 44
N Ó I CCurso A de Programación M 44 ASitePlayer SP1 (3) R G O R P RESISTOR
Curso de programación y utilización del módulo SitePlayer TM SP1. El integrado constituye un auténtico Web Server que permite interactuar con cualquier dispositivo electrónico a través de una página de Internet absolutamente normal. El objetivo del presente Curso es dar a conocer la técnica de programación del módulo a través de diversos ejemplos prácticos que utilizan la red para comunicar con diversos dispositivos remotos. Capítulo tercero.
Por Roberto Nogarotto
C
omo se indicaba en el primer capítulo del presente Curso, el método de realización de una aplicación completa basada en el módulo SitePlayer puede estudiarse en dos fases principales: la creación de la página web y la creación de un archivo de definiciones que se “descarga” en el módulo junto con la página web. Además, si el módulo va conectado a un microcontrolador, obviamente, habrá de escribirse el programa de gestión de la comunicación entre el propio microcontro-
lador y el módulo. Una vez terminados la página web y el archivo de definiciones, un software específico llamado SitePlayerLinker permitirá obtener el archivo único de programación del módulo y descargarlo en su interior a través de la conexión Ethernet. Las páginas web se crean utilizando el lenguaje html. En el presente capítulo del curso se conocerán los diversos programas diseñados con la finalidad de hacer comprensibles las pocas instrucciones utilizadas incluso a aquellos lectores que tengan muy poco o ningún
conocimiento de este lenguaje. Previamente se analizará con cierto detalle cómo se crea el archivo de definiciones.
EL ARCHIVO DE DEFINICIONES El archivo de definiciones puede considerarse dividido en tres secciones básicas: la de definiciones. la de objetos y la de exportaciones. En la primera se establecen una serie de parámetros que el Linker utiliza para generar el archivo en formato binario, además de ciertos paráme-
44-48 Siteplayer
25/5/05
08:16
Página 45
tros que definen el modo de funcionamiento del módulo. La segunda define los objetos, que son las variables utilizadas por el módulo para comunicar con el mundo exterior, que en este caso es el microcontrolador PIC. Finalmente, en la tercera sección se establece qué archivos se generarán durante el proceso de “linking”. Pero conviene estudiar com más detalle cada una de estas secciones.
sitio. Además, el módulo SitePlayerSP1, antes de permitir una descarga, verifica que el PC que ha solicitado esta operación esté integrado en la misma red local.
«SECCIÓN DE DEFINICIONES»
$INITIALIP [XXX.XXX.XXX.XXX]
Las definiciones deben comenzar con el símbolo “$” (dólar). Los comentarios irán precedidos del símboloo “;” (punto y coma). A consímbol tinuación se analizarán las definiciones más importantes disponibles. Se utilizará la sintaxis siguiente: entre corchetes se indicará el argumento de la definición y se indicará a continuacón el valor de defecto del módulo.
$DHCPON [ON/OFF] DEFAULT: ON Con esta instrucción se concreta si el módulo debe tener una dirección IP fija, en cuyo caso este parámetro se situará en Off, o si la dirección IP es del tipo dinámic dinámicoo y se obtiene de un servidor que utiliza el protoc pro tocolo olo DHCP DHCP (Dy (Dynami namicc Host Configuration Protocol). Si este parámetro está en On y el módulo no consigue obtener una dirección IP de un servidor, servidor, utilizará la dirección IP IP definid definidaa por la directiva directiva $InitialIP.
$DEVICENAME [NOMBRE] Con esta directiva puede asociarse a cada módulo una denominación concreta, aunque no puede sobrepasar los 64 caracteres de longitud.
$DOWNLOADPASSWORD [PASSWORD] Esta función permite especificar una password con una longitud máxima de 16 caracteres. El módulo pide esta password cada vez que se pretende descargar en él un nuevo
$INCLUDE [FILENAME] Si se desea entrar un archivo (por ejemplo, una librería de objetos), este comando permite especificar exactamente el camino y el nombre del archivo a incluir.
Con esta orden se especifica la dirección IP inicial del módulo, dirección módulo, en formato de punto decimal (si está deshabilitada la función DHCP), o bien la dirección dirección IP si no se puede obtener una asignación del servidor (estando habilitada la modalidad DHCP).
$PARSE [EXTENSIÓN] Con esta directiva puede indicarse en qué tipo de archivo, además de en los html, deben buscarse los objetos.
$POSTIRQ [ON/OFF] DEFAULT: OFF Colocando en On esta definición se habilita la patilla 11 del módulo para generar un impulso de 5 microsegundos cada vez que se reciban datos vía Ethernet, aunque sólo cuando éstos modifiquen los que ya se encuentran en memoria.
$SITEFILE [FILENAME] Cuando el programa SiteLinker elabora un directorio para crear una página web descargable en el módulo SitePlayer, se crea también un archivo binario con extensión .SBD. Esta orden permite insertar el nombre que debe atribuirse a este archivo.
$SITEPASSWORD [PASSWORD] Se aplica a proteger todos los archivos que residen en un directorio dado.
$SITEPATH [PATH] Indica al programa SiteLinker dónde residen los archivos que constituyen la aplicación Web Server. El argumento de esta función es el recorrido (path) completo del archivo. Por ejemplo: $Sitepath "C:\Program SitePlayer\SP_Root"
Files\
especifica que los archivos que constituyen la aplicación Web Server están contenidos en el directorio C:\ProgramFiles\SitePlayer\SP_Root . Por tanto, todos los archivos presentes en el directorio indicado se elaboran y constituyen la raíz (root) del sitio del SitePlayer SitePlayer..
«SEZIONE OGGETTI» Se denominan “objetos” aquellas variables mediante las cuales el SitePlayer puede comunicarse con el mundo exterior. En general, el SitePlayer está en comunicación con un microcontrolador programado, como es el caso del programador/demoboard FT497; el diálogo se establece mediante la lectura y eventual modificación de estos objetos. Por otra parte, estos objetos del SitePlayer también representan objetos en las páginas web. Por ejemplo: suponiendo que se desee presentar en pantalla la temperatura de un local o estancia. lo primero que habrá que hacer es definir un objeto en el SitePlayer y en la página web, caracterizado con el mismo nombre en ambas ubicaciones. El microcontrolador, tras haber leído el valor de la temperatura mediante una sonda termométrica, se dirigirá por la puerta serie a modificar el valor del objeto; el SitePlayer,, cada vez que un navegaSitePlayer dor (browser) le requiera el envío de una página web, procederá a enviarla actualizando el objeto con el mismo nombre de la página. Los objetos tienen una longitud máxima de 32 caracteres, comprendiendo indiferentemente letras y números, pero el primer carácter debe ser obligato-
N Ó I C A M 45 A R G O R P RESISTOR
44-48 Siteplayer
25/5/05
08:16
Página 46
riamente una letra. Véase a continuación un ejemplo de defición de un objeto: Temperatura db 25 Esta definición crea un objeto llamado Temperatura: es del typo byte (db) y su valor por defecto es 25. Los objetos que pueden definirse son del tipo bit (formados por un solo bit; se utiliza el especificador DBIT), byte o línea (formados por 8 bits, especificando DB), palabra (word) (16 bits, con DW) y, finalmente, doble (double) (32 bits, con DD). La ubicación de los objetos en la memoria se indica mediante la directiva ORG, que es una función muy similar a la directiva homónima de los c ompiladores Assembler. En el módulo SitePlayer los objetos pueden situarse en el espacio de memoria comprendido entre las direcciones 0000h y 02FFh, si bien alguna de las localizaciones queda reservada a la gestión del protocolo UDP. Más adelante se verá cómo se especifican los objetos en las páginas web y cómo el microcontrolador accede a ellos a través de la puerta serie. Además de los objetos que se acaban de conocer, y que se aplicarán a los ejemplos de programa previstos para el programador/demoboard FT497, existe toda una serie de objetos que no se tratarán en profundidad: el Serial Port Output Object,
N Ó I C A M 46 A R G O R P RESISTOR
utilizado para enviar una línea directamente a través de la puerta serie del SitePlayer, la Serial Peripheral Interface (SPI) Object, que se utiliza para aprovechar la SPI del SitePlayer (la SPI es un útil sistema de interfaz serie para establecer comunicación con dispositivos que utilizan este canal, como memorias, convertidores, controladores de motores, etc.). Finalmente, existen una serie de objetos que supervisan el envío de datos con el protocolo UDP.
«SECCIÓN EXPORTACIÓN» En esta sección se define qué archivos (y en qué posición) se crearán durante la elaboración del SiteLinker. Estos archivos serán útiles para insertarlos en programas escritos en C, Visual Basic, Assembler o HTML. Obviamente, si no son necesarios se puede omitir esta función.
INSERTAR LOS OBJETOS EN LAS PÁGINAS WEB Ya se ha visto cómo se definen los objetos y cómo éstos constituyen el canal de comunicación, así que puede pasarse a conocer en qué forma pueden definirse en el interior de una página web. Para insertar un objeto en una página html basta con insertar el nombre del objeto (recuérdese que debe coincidir exactamente con el nombre indicado en el archivo de definiciones) precedido por el
símbolo “^”. Un sencillo sencillo ejemplo de de cómo se inserta un objeto en lenguaje html ayudará a la comprensión del método: La temperatura es ^Temperatura Visualizando con un navegador este sencillo archivo, aparecerá la frase “La temperatura es ^Temperatura”. Sin embargo, cuando el programa se carga en el SitePlayer y luego se busca con el navegador, el lugar de ^Temperatura aparece ocupado por el valor numérico asumido en ese mismo instante por el objeto Temperatura.
«MODIFICADORES» Sobre los objetos pueden ejecutarse operaciones matemáticas, lógicas o de gestión de líneas. Utilizando operaciones matemáticas puede conseguirse que al browser no se envíe el valor numérico del objeto sino el valor modificado por una operación matemática dada. Por ejemplo: se podría enviar no el valor del objeto temperatura sino el mismo aumentado por un factor 2, o bien enviar separadamente las cifras que componen componen el objeto. Las operaciones que pueden ejecutarse sobre el objeto antes de enviarlo se resumen en la tabla incluida en esa página.
Estas dos imágenes muestran lo que visualizaría el navegador si la página residiera en un servidor normal (izquierda) o en el SitePlayer (derecha). como puede verse, SitePlayer procede a sustituir el texto ^Temperatura por el valor correspondiente.
44-48 Siteplayer
25/5/05
08:16
Página 47
Modificador e s Operación
^objeto:n ^objeto+n ^objeto-n ^objeto*n ^objeto/n ^objeto&n ^objeto|n ^objeto~n ^objeto#n ^objeto$n ^objeto'n
aplicables a los Objetos
Significado del modificador Visualiza la n-ésima cifra de Objeto, partiendo de la derecha. Por ejemplo, si objeto vale 35, ^objeto:1 visualiza sólo la cifra 5. Suma a Objeto y visualiza el total. Resta n a Objeto y visualiza el total. Multiplica Objeto por n y visualiza el total. Divide Objeto por n y visualiza el total. Ejecuta el AND lógico entre n y Objeto y visualiza el total. Ejecuta el OR lógico entre n y Objeto y visualiza el total. Ejecuta el XOR lógico entre n y Objeto y visualiza el total. Ejecuta el AND lógico entre n y Objeto y visualiza "CHECKED" si el resultado es distinto de cero; si el resultado es cero no visualiza nada. Si Objeto = n visualiza "CHECKED"; en caso contrario no visualiza nada. Restituye Restit uye el enésimo bit de Objeto desde la derecha (el primer bit es cero).
N Ó I C A M 47 A R G O R P RESISTOR
EL AMBIENTE DE DESARROLLO DEL MÓDULO SITEPLAYER: EL SITELINKER Ya se sabe cómo crear objetos e insertarlos en las páginas web y en los archivos de definiciones, de modo que ya puede entrarse en el método de elaboración de los archivos de las páginas web y del archivo de definiciones para obtener un archivo único que se descargará en el módulo SitePlayer. El programa que permite ejecutar estas tareas es el llamado
SiteLinker y es suministrado por la casa NetMedia, fabricante de SitePlayer. Una vez arrancado este programa, en pantalla del PC aparece una ventana principal que permite ejecutar algunas órdenes. La primera de ellas es abrir un archivo de definiciones (con extensión .SPD): para ello es necesario ejecutar el comando Open (Abrir) contenido en el menú File (Archivo). Pueden abrirse dos tipos de archivos: con extensión .spd o con extensión .spb. Estos últimos (*spb) están ya
compilados y, por tanto, puede descargarse en el módulo directamente. Una vez abierto un archivo, en el menú Download (Descargar) se dispone de varios comandos que permiten compilar el programa (Make download file) (Crear archivo descargable), efectuar la programación del módulo (Download SitePlayer) (Descargar en SitePlayer) o compilar y programar el módulo sin solución de continuidad (Make and download) (Crear y Descargar). Antes de efectuar la
OFERTA DEL MES Programad Prog ramador or Lecto Lectorr para tarjetas tarjetas Smart Smart Card Card (Resistor (Resistor 181 - Pag. 6 y 9) El kit incluye todos los componentes, la placa taladrada y serigrafiada, el microcontrolador programado, el cable de de conexion al PC, el software de gestión gestión una Smart Card de 2 kbits. El software también puede adquirirse se paradamente (cód SFW269). Peden obtenerse tarjetas SmartCard adicionales. (cód CPC2K).
Cód FT269 Antes Eur 48 Ahora Aho ra Eur Eur 39 Pedidos a Revistas Profesionales, S. L. C/Valentín Beato 42, 3ª plta. 28037 Madrid. Tel.: 91 304 87 64. Fax: 91 327 13 03 03 o rellenar el cupón adjunto
44-48 Siteplayer
25/5/05
08:16
Página 48
El Ambiente SiteLinker
N Ó I C A M 48 A R G O R P RESISTOR
programación es preciso especificar la dirección IP atribui atribuida da al módulo a programar.. Para ello debe llamarse el programar comando IP Address for Download (Direcc (Di rección ión IP par paraa desc descarg argar) ar),, contenido en el menú Configure (Configurar). El comando DownloadPassword del mismo menú define la palabra clave que el SiteLinker envía al módulo para poder descargar. Obviamente, esta palabra clave debe
DISPONIBILIDAD DEL
ser igual que la instalada previamente en el módulo que se quiere programar. Una vez iniciada la creación del archivo a descargar, que tendrá extensión .SPD, la pantalla de SiteLinker mostrará una serie de informaciones: la principal tarea que desarrolla el Linker es, sobre todo, la búsqueda de todos los objetos definidos en el archivo de definiciones. Si no es posible
encontrar la correspondencia de algún objeto, este incidencia se señala en pantalla. Si todo el proceso se ejecuta correctamente, se indica el número de objetos presentes y la cantidad de memoria flash ocupada. Si, además, se había actuado el comando Make and Download File (Crear y Descargar Archivo), se pone inmediatamente en marcha la programación del módulo.
MATERIAL El módulo SitePlayer está disponible montado y verificado (cód. SP1) al precio de Eur 42,00: el conjunto híbrido resultante implementa un Web Server, un controlador Ethernet 10baseT, una memoria Flash para almacenar las páginas Web y un dispositivo de interfaz serie. Para mejorar el aprendizaje y facilitar el trabajo profesional con el SitePlayer se dispone del circuito demoboard/programador en kit (cód. FT497K) al precio de Eur 48,00. El kit incluye la placa de circuito imprso taladrada y serigrafiada, un PIC16F876, 8 leds, 1 dipswitch de 8 polos, 1 trimmer, 1 sensor de temperatura, salida PWM, salida analógica, conector Ethernet, conector para programación “incircuit” del PIC. El kit comprende todos los componentes y los listados de demostración a nivel fuente (fuente Basic para PIC; páginas HTML; archivos de definición SPD), etc. El kit no comprende el módulo SitePlayer, el alimentador de red y el programador del PIC (cód. FT386K, Eur 86,00). Los precios incluyen el IV IVA. A.
Puede Pue de adquir ir ir sus módulos módulos SitePla yer y complement complement os os en: