Sunteți pe pagina 1din 219

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DE LA DEFENSA
DIRECCIÓN GENERAL SECTORIAL
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL
U.N.E.F.A.

RED DE COMUNICACIÓN 1-WIRE® PARA LOS SISTEMAS DE


DESARROLLO DE MICROCONTROLADORES PIC (iBOARD) DE LA
EMPRESA ROSO C.A.

BR. DÍAZ LORETO, WILKING ALEXANDER


BR. MADERER CÁRDENAS, LUÍS ALBERTO

MAYO DE 2007
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DE LA DEFENSA
DIRECCIÓN GENERAL SECTORIAL
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL

RED DE COMUNICACIÓN 1-WIRE® PARA LOS SISTEMAS DE


DESARROLLO DE MICROCONTROLADORES PIC (iBOARD) DE LA
EMPRESA ROSO C.A.

Trabajo Especial de Grado presentado a la Universidad Nacional Experimental


Politécnica de la Fuerza Armada Nacional como requisito para optar al título de:
INGENIERO ELECTRÓNICO MENCIÓN CONTROL

TUTOR: AUTORES:
Ing. José Manuel Rodríguez Solano Díaz Loreto, Wilking Alexander
Ingeniero Electricista Maderer Cárdenas, Luís Alberto
CIV Nq 84644

MARACAY, MAYO DE 2007

ii
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DE LA DEFENSA
DIRECCIÓN GENERAL SECTORIAL
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL
U.N.E.F.A.

APROBACIÓN DEL TUTOR

En mi carácter de Tutor del Trabajo Especial de Grado presentado por los

ciudadanos: Luís Alberto Maderer Cárdenas y Wilking Alexander Díaz Loreto, para

optar al grado de Ingeniero Electrónico Mención Control, cuyo título es: RED DE

COMUNICACIÓN 1-WIRE® PARA LOS SISTEMAS DE DESARROLLO DE

MICROCONTROLADORES PIC (IBOARD) DE LA EMPRESA ROSO C.A.,

considero que dicho trabajo reúne los requisitos méritos suficientes para ser sometido

a la presentación pública y evaluación por parte del jurado examinador que se

designe.

En la ciudad de Maracay, a los 27 días de mes de Abril de 2.007.

JOSÉ MANUEL RODRÍGUEZ SOLANO

INGENIERO ELECTRICISTA
C.I. E-81.044.088
CIV Nq 84644

iii
APROBACIÓN DEL JURADO EXAMINADOR

RED DE COMUNICACIÓN 1-WIRE® PARA LOS SISTEMAS DE


DESARROLLO DE MICROCONTROLADORES PIC (IBOARD) DE LA
EMPRESA ROSO C.A.

POR:
Díaz Loreto, Wilking Alexander
Maderer Cárdenas, Luís Alberto

Este trabajo ha sido aprobado en nombre de la Universidad Nacional


Experimental Politécnica de la Fuerza Armada Nacional por el siguiente jurado:

PRESIDENTE
MsC. William Cuervo
C.I.

MIEMBRO PRINCIPAL MIEMBRO PRINCIPAL


Ing. Carlos Blanchard Dr. Néstor Mogollón
C.I. C.I.

MIEMBRO SUPLENTE
Ing. Mariana Ramos
C.I.

Maracay, _________ de 2007

iv
DEDICATORIA

A Jesús nuestro Salvador, por guiarme en los

momentos difíciles y darme fortaleza para continuar la

marcha.

Con mucho amor, a mi Madre linda, razón de mis

alegrías, fuente de mis fortalezas y de mis esperanzas.

Wilking Alexander Díaz Loreto

Primero que nada a ti, mi reina María Lionza, por

ser mi protectora y la única que guía mis pasos por el

mejor de los caminos.

A ti mamá por tu constante dedicación y esfuerzo

en lograr que sea lo mejor.

A ti papá por ser el mejor ejemplo a seguir y por

siempre apoyarme cuando te necesito.

Y por su puesto a mi presente y futuro, mi amiga,

compañera y amante, a ti mi amor.

Luís Alberto Maderer Cárdenas

v
AGRADECIMIENTOS

A Dios todopoderoso, que en nombre de su hijo Jesús escuchó mis y oraciones


peticiones, permitiéndome llevar a buen término esta etapa de mi vida.
A mi Madre querida, quien de manera especial, representa mi principal
apoyo y fuente interminable de comprensión y amor, que nunca desvaneció frente a
las dificultades y que me proporciona el aliento para seguir adelante. A mi padre,
quien estuvo siempre pendiente de mí. A mi novia y amiga Milagros, por animarme a
seguir por el camino, por su ayuda y comprensión en todo momento. A mis
familiares, tías, tíos, primos y en especial a mi Abuela Carmen, por tenerme presente
en sus oraciones y por su sincero amor. A mis primos Natalia y Jerson por apoyarme
siempre y estar siempre presentes cuando necesito de su ayuda.
Al Sr. Barrios, por estar siempre dispuesto a ayudarme en lo necesario y por
siempre proporcionarme sus sabios consejos. A Yuraima, quien junto al Sr. Barrios
me hizo sentir en familia durante mi estadía en Maracay.
A mi tutor Ing. José Rodríguez, por prestarme su colaboración y facilitarme
las herramientas en el desarrollo del proyecto. Agradezco su invaluable dedicación y
su disposición para orientarme con importantes consejos que impidieron en todo
momento que me alejara de la senda a seguir para la culminación del proyecto.
Al Dr. Héctor Morales que me prestó su colaboración en la corrección del
libro. A la Sra. Sonia, al Sr. Luís y a Lis por toda la ayuda que me ofrecieron. A los
profesores, de los cuales pude adquirir gran cantidad de conocimiento a lo largo de
mi carrera. A la Prof. Soraya por su constante apoyo, dedicación y por sus valiosos
consejos. A mi casa de estudio UNEFA por darme la oportunidad de convertirme en
un excelente profesional.
A las personas que de alguna u otra manera tuvieron que ver en el desarrollo
de este proyecto. A todos ellos, mil gracias por prestarme su ayuda, que Dios los
colme de bendiciones.
Wilking Alexander Díaz Loreto

vi
AGRADECIMIENTOS

A Dios, mi señor, por cuidarme siempre y alejarme de las cosas malas,


gracias por permitir que hoy escriba estas palabras.
A mi reina, la única, por ser aquella que ilumina mi sendero de la vida, por
cuidar cada pasó que doy y por ayudarme a cumplir este sueño.
A mis padres por apoyarme en los momentos más difíciles, por quererme
como lo hacen, por ser mis amigos y por darme todo lo que un hijo necesita para
llevar a cabo las metas más grandes en la vida, a ustedes los mejores.
A mi novia por ser la luz de mis ojos y permitir que tomara su corazón a
cambio del mío, te amo y espero hacerlo toda mi vida.
A mi hermana por estar siempre a mi lado y darme su amor y cariño cuando
lo necesito.
A mis tres amigos, que sin ustedes jamás hubiese llegado, fueron esas noches
largas de estudio, dedicación y esfuerzo lo que permitieron, no solo que ganaran mi
aprecio y mi amistad, si no que llegáramos juntos hasta el final
A mi tutor el ing. José Rodríguez, por ser excelente persona, sabio consejero y
buen amigo, en usted siempre conseguí ese apoyo incondicional. Su dedicación y
esmero, para que este proyecto se finalizara de la mejor manera, hoy se ven
recompensados.
Y por último a la UNEFA por ser excelente universidad, por permitir que este
sueño se lleve a cabo y por ser mi segunda casa.

Gracias a todos…Luís Alberto Maderer Cárdenas

vii
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DE LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL

RED DE COMUNICACIÓN 1-WIRE® PARA LOS SISTEMAS DE


DESARROLLO DE MICROCONTROLADORES PIC (IBOARD) DE LA
EMPRESA ROSO C.A.

AUTORES: Br. Díaz Loreto, Wilking Alexander


Br. Maderer Cárdenas, Luís Alberto
TUTOR: Ing. José Manuel Rodríguez Solano

RESUMEN

En el presente trabajo especial de grado se desarrolló la red de comunicación


para sistemas basados en microcontroladores, mediante la utilización del protocolo
1-Wire® de Dallas Semiconductor Inc. Surge con el requerimiento de la empresa
ROSO Electric Suply C.A. de integrar su producto “iBOARD” en una red de
comunicación 1-Wire®. Pudiéndose incorporar, tanto los dispositivos iBOARD,
como los sensores y elementos finales de control 1-Wire® en un único bus de fácil
adaptación a las necesidades particulares de cada usuario. El sistema consta de un
hardware llamado “Módulo Electrónico de Interfaz para la Comunicación” que
realiza la función de intérprete físico entre la iBOARD y la red 1-Wire®, el mismo
fue diseñado y probado por los desarrolladores de acuerdo a las especificaciones de la
empresa. Asimismo, se desarrolló un componente de software ActiveX para el
manejo de la red, con el cual se mantiene la comunicación con las iBOARD
conectadas, con esto se agrega a la red, la capacidad de interactuar con los
dispositivos iBOARD de forma versátil, pudiendo el usuario final ajustarla a sus
propios requerimientos. El desarrollo del proyecto permitió añadir a la tarjeta
iBOARD la capacidad de intercambiar datos y compartir recursos mediante la
intervención de un equipo maestro ó computador personal en una red 1-Wire®,
agregando una importante característica al producto de la empresa ROSO en cuanto a
soluciones para el monitoreo y control de variables. El dispositivo desarrollado puede
ser implementado en la integración a la red 1-Wire® de otros sistemas que dispongan
de comunicación serial.

Palabras Clave: Red 1-Wire®, iBOARD, ActiveX, dispositivos 1-Wire®,


Interconexión, Microprocesadores PIC, modulo de interfaz.

viii
INTRODUCCIÓN

A través de los años, con la continua evolución de la electrónica se han

desarrollado estándares para sistemas de gran modularidad y conectividad, sin

embargo, con esta estandarización se han creado limitaciones en el campo de

aplicación de los mismos, ocasionando que el usuario final no tenga una completa

libertad de ajustarlos perfectamente a sus necesidades. De igual manera se hace un

uso, cada vez mayor, de protocolos de comunicación normalizados, lo cual, es un

tema en constante discusión y evolución, ya que cada uno de ellos está especialmente

optimizado para distintos esquemas de automatización y por consiguiente, responden

a intereses y necesidades diferentes e inherentes a los distintos proveedores. Cada

protocolo tiene un rango de aplicación; fuera del mismo, disminuye en rendimiento o

aumenta la relación costo/prestación.

En el presente proyecto se plantea agregar al dispositivo denominado

“iBOARD”, fabricado por la empresa ROSO Electric Supply C.A., la capacidad de

interconectarse en una red con otros dispositivos similares e intercambiar datos

mediante un dispositivo maestro que gestione la interacción de los mismos. Se elige

la red 1-Wire® para el desarrollo del proyecto, debido a la gran inversión de recursos

por parte de la empresa en la fabricación de productos que interactúen con este

protocolo, adicionalmente, se realiza una comparación entre las características


2

resaltantes entre protocolos y buses similares al 1-Wire®. La incorporación de la

iBOARD® dentro de una red, la convierte en un producto con una excelente

capacidad de interconexión, pudiendo interactuar, tanto con otras tarjetas del mismo

tipo, como con la gran gama de dispositivos 1-Wire® fabricados por Dallas

Semiconductor Inc. Con esta característica, se puede conformar una aplicación más

completa en el control y monitoreo de variables, compartir recursos, valores y

muchos otros elementos de una manera sencilla.

La arquitectura de la red planteada dispone como elemento maestro a un

computador personal (PC), lo que agrega al sistema grandes capacidades como: la

instrumentación basada en el mismo, las altas velocidades de procesamiento y la

posibilidad de almacenamiento masivo de datos. Aunque muchos sistemas han sido

conectados a computadores desde los años 70, su versatilidad estaba limitada, a baja

memoria y velocidad de procesamiento. Sin embargo, durante el inicio de la década

de los 90 los PC de 16 y 32 bits ya se podían adquirir a un bajo costo, con grandes

capacidades de memoria, altas velocidades y una excelente resolución para presentar

o mostrar información. Estas importantes características han agregado inherentemente

un ambiente muy amigable para el usuario de PC, estimulando el desarrollo de

instrumentación basada en el mismo e impulsando lo que se ha denominado

“instrumentación virtual”, donde, por medio del desarrollo de programas, el

computador personal puede ser operado como cualquier instrumento físico, por

ejemplo: un osciloscopio o un analizador de espectro.


3

En relación a las diferencias entre un instrumento virtual (basado en el PC) y

un instrumento tradicional se puede afirmar, que radican en la capacidad de

manipular su software, permitiendo así, la posibilidad de que la aplicación: sea

definida por el usuario, tenga la posibilidad de conectarse en redes y conserve la

capacidad de actualizarse o adaptarse al proceso requerido.

El contenido del presente libro está estructurado en capítulos, dispuestos de tal

forma, que el lector pueda comprender los planteamientos que se exponen y el

proceso de desarrollo del sistema; todo esto de una manera gradual y siguiendo las

fases cursadas por los desarrolladores durante la elaboración de la aplicación final:

El Capítulo I, contiene una descripción del problema, se exponen los

objetivos planteados y alcances del proyecto. En este también se exponen la

justificación y las limitaciones del estudio.

En el Capítulo II, se presentan los estudios realizados anteriormente sobre el

tema, además, se pretende introducir al lector en la teoría tratada en el cuerpo del

proyecto, explicando de una manera resumida los aspectos de mayor importancia.

En el Capítulo III, se detallan las estrategias, técnicas y procedimientos

metodológicos utilizados en el desarrollo del proyecto y en sus distintas fases.

Además, se enumeran los pasos seguidos para la construcción del hardware y para la

realización de la validación del sistema.


4

Dentro del Capítulo IV, se exponen los requerimientos del sistema y se

establecen sus generalidades y sus fundamentos, la selección de las tecnologías y los

dispositivos a utilizar, también, se plantea el esquema preliminar de la aplicación.

El Capítulo V, trata en detalle el proceso de diseño y construcción del

prototipo para el módulo de interfaz de hardware, se describe la ubicación y la

conexión de los elementos utilizados, y además se presentan los costos de

fabricación, realizando un estudio del proyecto desde el punto de vista económico

En el Capítulo VI se describe el proceso de diseño del software, ofreciendo

una explicación detallada con respecto a la estructura de los programas y a los

protocolos para la comunicación. Se muestra el diagrama de flujo, pseudocódigo y el

código de programa de cada uno de los programas incluidos en las etapas del sistema.

El Capítulo VII, describe el proceso de implementación de los Módulos

Electrónicos de Interfaz para la Comunicación y se detallan los resultados arrojados

por las pruebas y las validaciones llevadas a cabo, igualmente se analiza el

desempeño del sistema, con varias aplicaciones específicas.

Las Conclusiones y Recomendaciones resumen los logros obtenidos por los

desarrolladores a lo largo del proyecto con respecto a los objetivos planteados en sus

inicios, asimismo, se proponen las posibles mejoras que podrán agregarse al sistema

en el futuro, por parte de investigadores interesados en este tema.


CAPÍTULO I

EL PROBLEMA

1.1. PLANTEAMIENTO DEL PROBLEMA

En la actualidad, la utilización de instrumentos virtuales en asociación con

actuadores externos, representa una solución en la ejecución del control y monitoreo

con alta eficiencia, para procesos que requieren de una baja o mediana escala de

seguridad. Sin embargo, la implementación de dispositivos de control basados en

microcontroladores, como componentes centrales en la automatización, representa

algunos desafíos; ya que no cuentan con las avanzadas prestaciones de comunicación,

interconexión y software que poseen los sistemas tradicionales basados en

controladores lógicos programables (PLCs).

No obstante a lo anterior, en la actualidad muchas empresas hacen uso de las

prestaciones de los microcontroladores para generar soluciones de automatización a

nivel industrial, tal es el caso de la empresa ROSO Electric Supply C.A.; que se

dedica entre otras cosas, al control y automatización de procesos industriales, al igual

realiza instalaciones para el monitoreo de una gran gama de variables disponibles en

el entorno industrial y comercial. Esta compañía tiene más de cinco años fabricando

el dispositivo iBOARD®, concebido con fines didácticos, pero luego implementado

en aplicaciones de automatización y control debido a sus excelentes prestaciones.


6

La iBOARD® es una tarjeta de desarrollo para microcontroladores de la línea

PIC 16F8XX de microchip, cuyas características principales son su costo reducido en

comparación con otros sistemas de desarrollo y su amplio rango de utilización. Estas

tarjetas no poseen un puerto de comunicación que permita el intercambio de datos, de

manera que no se puede establecer una interacción entre las variables de una tarjeta

con las de otra. Esto ha representando un inconveniente para la incorporación del

producto iBOARD dentro de aplicaciones industriales y ha impedido, hasta ahora, la

incursión de la misma en dicho mercado, ocasionando que la empresa ROSO utilice

dichas tarjetas solo para el control de un número reducido de variables en procesos

simples y en entornos didácticos o de aprendizaje, permitiendo así, verificar y

experimentar la versatilidad de los instrumentos virtuales en las instituciones de

educación superior.

En relación a lo anterior, la empresa plantea el desarrollo de una tecnología de

interfaz que permita interconectar sus sistemas iBOARD® basados en

microcontroladores PIC16F876, en un solo bus lo suficientemente eficaz, económico

y fundamentado en el protocolo 1-Wire®, mediante el cual, la información podrá

llegar a un computador, que se encargue de monitorear y controlar cada uno de los

dispositivos conectados. El sistema interconectado en red, será capaz de adaptarse

fácilmente a las necesidades del usuario final, cumpliendo con los paradigmas de un

instrumento virtual; siendo el usuario, capaz de adaptar, modificar y corregir el

software de su aplicación.
7

. Para solucionar lo antes expuesto, se plantea en primer lugar, la construcción

de un módulo electrónico de interfaz que permita comunicar a los dispositivos

iBOARD con un maestro en la red, e inclusive establecer la comunicación entre los

mismos mediante el maestro, todo esto con la utilización del mismo bus 1-Wire®; y

en segundo lugar el diseño y programación de una herramienta de software que

permita al computador, y por tanto al usuario, modificar e importar las variables de

las iBOARD disponibles en la red, y así, utilizarlas en una aplicación específica.

1.2. OBJETIVOS DEL PROYECTO

1.2.1. OBJETIVO GENERAL

Implementar una red de comunicación 1-Wire® para los sistemas de desarrollo de

microcontroladores PIC (iBOARD®) de la empresa ROSO C.A.

1.2.2. OBJETIVOS ESPECÍFICOS

x Identificar los requerimientos de diseño de hardware y software para interfaz de

comunicación.

x Diseñar el hardware del dispositivo que permita la traducción entre la

comunicación serial asíncrona de la iBOARD® y el bus con protocolo 1-Wire®.


8

x Desarrollar los diagramas de flujo y los algoritmos de programación para el

microcontrolador a ser utilizado en la construcción de la interfaz de

comunicación.

x Programar las rutinas para el acceso a la interfaz de comunicación por parte del

microcontrolador PIC16F876 de la iBOARD® y una herramienta de software

basada en controles ActiveX, que permita la comunicación entre el computador y

la red.

x Realizar el montaje de los prototipos de la interfaz de comunicación.

x Validar el funcionamiento del sistema desarrollado.

1.3. JUSTIFICACIÓN

Con la implementación de los resultados del proyecto se soluciona la

problemática de la empresa ROSO C.A. en relación a la incursión del producto

iBOARD dentro de aplicaciones industriales, ya que hasta ahora se ha visto

restringida por el hecho de no poseer un puerto de comunicación que permita el

intercambio de datos en una red. La iBOARD® contará con una funcionalidad que

permitirá a la empresa establecer e instalar aplicaciones más compatibles con sus

productos de software destinados al manejo de múltiples dispositivos 1-Wire®,

beneficiando en forma directa a sus clientes, que tendrán la posibilidad de adquirir un

sistema más completo, añadiendo nuevas características de conectividad. Igualmente,


9

se beneficiarán en forma indirecta todas aquellas instituciones de educación superior

que incluyen en su pensum de estudio la enseñanza del control e instrumentación

virtual, haciendo uso de las tarjetas iBOARD® en sus prácticas y laboratorios.

Con el desarrollo de este proyecto, se podrán realizar aplicaciones más

complejas con la iBOARD®, en cuanto a la cantidad de variables, relaciones entre

ellas, accesibilidad, versatilidad, entre otros aspectos resaltantes.

Un sistema basado en microcontroladores, que sea capaz de incorporarse a una

red de comunicación con un protocolo confiable, reduce considerablemente el tiempo

de desarrollo de una aplicación de control, ya que, si se incluyen estas características

dentro de su interfaz de operación, el usuario puede enfocar su esfuerzo a resolver el

proyecto de automatización, evitando la labor de desarrollar el protocolo para el

enlace entre los módulos implementados; y lo que es más, con la capacidad de

intercambiar información es posible formar una red operativa, mediante la cual, se

ejecute un control distribuido en un sistema medianamente complejo, como por

ejemplo los sistemas de supervisión y visualización de variables destinadas al registro

y calidad de los productos en una línea de producción.

Con la configuración de un solo bus 1-Wire®, es posible realizar la conexión

física de hasta 100 dispositivos (en teoría). Esto permite, que un dispositivo con

capacidad de comunicación serial estándar (como la iBOARD®), envíe los datos

adquiridos a través de la red de comunicaciones 1-Wire® a otros dispositivos que


10

manejen este protocolo. Pudiendo así obtener mediante el computador o dispositivo

maestro, las distintas variables presentes en la red de una forma invisible al usuario en

cuanto a los procedimientos realizados en el software o en el hardware para su

obtención, con solo indicar el identificador del dispositivo conectado a la red e

igualar el valor de una función a una variable cualquiera.

1.4. ALCANCE

El desarrollo del proyecto llevó a cabo la generación de una tecnología,

mediante la cual, se interconectó e incorporó a la red 1-Wire®, las tarjetas iBOARD®

fabricadas por ROSO C.A. que incluyen en su sistema un microcontrolador

PIC16F876 ATOM.

Para cumplir con el propósito de incorporar la iBOARD® a la red 1-Wire®,

se identificaron los parámetros establecidos por la empresa para el diseño de

hardware y software de la interfaz de comunicación, prestando especial atención a la

red de interconexión, al tipo de dispositivos electrónicos utilizados y a la herramienta

de software desarrollada

Como parte del sistema desarrollado, se diseñó un Módulo Electrónico de

Interfaz para la Comunicación (MEIC) que cumple con la tarea de comunicar física y

eléctricamente a la iBOARD® en la red, expandiendo sus posibilidades de conexión.


11

En relación al componente de software necesario para la comunicación del

sistema, se generaron los algoritmos y diagramas de flujo de todos los programas

incluidos en las diferentes etapas del mismo, visualizando así, claramente los

lineamientos para su generación.

Para la utilización de la iBOARD® dentro de la red, se programó una

herramienta de software para el manejo de las variables, empleando el lenguaje de

programación orientado a objetos desarrollado por Microsoft denominado “Visual

Basic 6.0”. Luego se utilizó la tecnología de los controles ActiveX para agregar

versatilidad y facilidad en la generación de aplicaciones destinadas a sistemas de

control. Adicionalmente, se incluyó en el PIC16F876 de la iBOARD®,

específicamente dentro de la aplicación de usuario, una pequeña porción de código

que permite establecer la comunicación efectiva con la red 1-Wire®, asimismo, se

desarrolló el programa del microcontrolador PIC16F628 ubicado en la interfaz de

hardware, el cual, realiza el intercambio de información entre la iBOARD® y la red.

Para la implementación de la interfaz de comunicación se realizó la

construcción de diez prototipos, elaborando el circuito impreso e incluyendo los

dispositivos electrónicos necesarios para su funcionamiento. A fin de validar la

operatividad de los mismos, se llevaron a cabo un conjunto de pruebas que

permitieron obtener las principales características del sistema e identificar sus

parámetros de funcionamiento.
12

La interfaz de hardware para la conexión a la red 1-Wire®, se diseñó

específicamente para la iBOARD®. Por lo que no se contempló probarla e

implementarla en otros sistemas distintos.

1.5. LIMITACIONES

x La empresa ROSO C.A., distribuye a nivel nacional componentes

electrónicos, entre los cuales se encuentran: microcontroladores ATOM,

diversos sensores (temperatura, humedad, presión y otros) y

fundamentalmente dispositivos 1-Wire®, por lo cual se establece como un

requerimiento de diseño la utilización del protocolo de comunicación 1-

Wire® de Dallas Semiconductor Inc.

x La velocidad promedio de comunicación de una red 1-Wire® no supera los

14.5 kbps, lo que impide establecer una comunicación entre la iBOARD® y el

PC a una velocidad mayor que la implementada.


CAPÍTULO II

MARCO TEÓRICO

2.1. INTRODUCCIÓN

En función del objetivo planteado, en este capítulo se describirán aspectos

técnicos propios del hardware, aspectos teóricos para una mejor compresión del

problema y los recursos utlizados para su solución, entornos de programación,

elementos de hardware y las herramientas utilizadas. Se dispone de diversas fuentes

de información, que permiten: abordar temas que sirven como base para una mejor

comprensión de las técnicas y procedimientos usados en el diseño e implementación

del sistema; y adquirir los conocimientos necesarios en cuanto a los aspectos

involucrados durante el desarrollo del proyecto.

En principio, se muestran algunos estudios anteriores que sirvieron como

consulta, en los cuales, se presentan los aspectos reelevantes en relación al problema

tratado, posteriormente se desarrollan definiciones y explicaciones necesarias para la

comprensión del trabajo, además de las especificaciones propias de los dispositivos

utilizados en el hardware del proyecto proporcionadas por las empresas fabricantes.


14

2.2. ESTUDIOS PREVIOS

El amplio campo de aplicación de los microcontroladores en la electrónica,

aunado a la posibilidad de su inclusión en el área de la instrumentación virtual, ha

despertado el interés de un gran número de individuos y empresas vinculadas al

medio en la realización de gran cantidad de estudios y diseños, generando diversas

aplicaciones de control e instrumentación. Pudiendo mencionar entre otros:

Castillo, F., Niño, A. (2006) Desarrollo de una plataforma tecnológica con

fines didácticos para la enseñanza de la instrumentación virtual. Trabajo especial de

grado para optar al titulo de ingeniero electrónico, UNEFA. Este Trabajo de

investigación proporcionó orientación a los desarrolladores en relación de la

programación necesaria para la implementación del software del proyecto, además de

algunas herramientas y experiencias en la adquisición de datos y variables externas.

Ruiz O., Andrés Felipe (2.006). “Implementación de una red Modbus/TCP”

Trabajo especial de grado para optar al titulo de Ingeniero Electrónico, Universidad

del Valle, Facultad De Ingeniería, Escuela de Ingeniería Eléctrica y Electrónica.

Santiago de Cali-Colombia. Este trabajo de grado suministró conocimientos y

experiencias sobre los protocolos de comunicación industrial, al igual que su

segmentación dentro de las capas del modelo OSI, información que fue muy útil en la

evaluación de las ventajas y desventajas del protocolo utilizado.


15

Tabares T., Juan C. (2006) “Sistema de Control de Humedad, Temperatura y

Riego para Invernaderos Industriales”. Trabajo especial de grado para optar al titulo

de ingeniero electrónico, UNEFA. Aportó gran experiencia en el manejo del PIC

16F876 incluido en la tarjeta iBOARD® y su interacción con el medio externo.

Campos, C. y Pérez R. (1998). Implementación de un sistema de desarrollo

utilizando los microcontroladores PIC de Microchip Technology. Guadalajara-

México. Trabajo Especial de grado, Centro Universitario de Ciencias Exactas e

Ingeniería de la Universidad de Guadalajara. Se diseñó un sistema de desarrollo para

microcontroladores PIC, partiendo de un análisis de los módulos internos que

componen a este tipo de microcontroladores. La revisión de este documento permitió

establecer fundamentos básicos a la hora de diseñar un componente de hardware para

lograr un alto grado de funcionalidad.

2.3. BASES TEÓRICAS

En el presente apartado se desarrollarán todos aquellos temas de relevancia en

la compresión del problema, así como también, los aspectos que sustentan o sirven

como base para el desarrollo del proyecto y de la solución planteada.

2.3.1. Microcontrolador

Enrique Mandabo (2002) indica que un Microcontrolador es un circuito


16

integrado (CI) que contiene toda la estructura de una microcomputadora, es decir,

contiene la Unidad de Proceso Central (CPU), la Memoria de Acceso Aleatorio

(RAM), la Memoria solo de Lectura (ROM), los circuitos de entrada y salida (I/O),

entre otros.

Hace unos treinta años, los sistemas de control se implementaban usando

exclusivamente lógica de componentes, lo que hacía que fuesen dispositivos de gran

tamaño y muy pesados. Para lograr una velocidad más alta y mejorar la eficiencia de

estos dispositivos de control, se desarrolló una tecnología de integración que produjo

una reducción de su tamaño cumpliendo así con un proceso de miniaturización, que

permitió la fabricación de un controlador que integrase todos sus componentes en un

sólo chip. A esto, es a lo que se le conoce con el nombre de microcontrolador, un

computador dentro de un sólo chip, según Iván Cueva, en su ensayo titulado “el papel

de los microcontroladores en la electrónica”.

El microcontrolador es un CI de tamaño muy reducido y de bajo costo, que

por lo general se utiliza para controlar otros circuitos o dispositivos electrónicos,

mecánicos, etc. El nombre PIC no es un acrónimo, en realidad, el nombre completo

es PICmicro, aunque generalmente se utiliza como: Controlador de Interfaz Periférico

(del inglés: Peripheral Interface Controller). (MsC. Eduardo Sánchez Arellano, 2005)

Los PICs emplean un conjunto de instrucciones del tipo RISC “Conjunto de

Reducido de Instrucciones de cómputo” (en inglés, Reduced Instruction Set


17

Computer), cuyo número puede variar desde 35 para PICs de gama baja a 70 para los

de gama alta. Con el RISC se suele ejecutar la mayoría de las instrucciones con un

solo pulso de reloj.

Hoy en día, existen una gran cantidad de modelos de microcontroladores

PICs (ver Figura Nº 2.1) que incluyen distintos periféricos como, módulos de

comunicación serial, UARTs, núcleos de control de motores, etc. Adicionalmente,

estos poseen una memoria de programa que va desde 512 a 32.000 palabras (una

palabra corresponde a una instrucción en ensamblador, y puede ser 12, 14 o 16 bits,

dependiendo de la familia específica de PICmicro).

Figura Nº 2.1: Distintos modelos de microcontroladores de Microchip Technology Inc.


Fuente: http://es.wikipedia.org/wiki/Microcontrolador (2.007)

2.3.1.1. Características de un Microcontrolador PIC

Algunas características de los PICmicro que se pueden mencionar entre otras:

son sistemas digitales cerrados, poseen poca capacidad de RAM interna (bytes o

Kb), no requieren de decodificadores E/S (entrada/salida) o de memoria, cuentan con


18

una velocidad de salida de algunos MIPS “Mega Instrucciones Por Segundo”, están

orientados a operaciones de E/S, su costo de implementación es reducido, resulta

sencilla su utilización, gozan de dos o tres modos de direccionamiento y casi todos

son del tipo RISC.

Un microcontrolador, típicamente consta de:

x CPU o procesador: Es el cerebro del sistema que procesa todos los datos que

viajan a lo largo del bus.

x Memorias: Está formada por una no volátil (ROM, EEPROM, FLASH) donde se

almacenan los programas y una volátil (RAM) donde se almacenan los datos.

x Reloj principal: Normalmente todos los microcontroladores tienen incorporados

circuitos osciladores para el funcionamiento de éstos.

x Puertos E/S (Entrada/Salida): Soportan las líneas que comunican al

microcontrolador con los periféricos externos.

x Perro guardián (Watchdog en inglés): Contador que reinicia al microcontrolador

cada vez que se desborda. Sirve para evitar fallos de funcionamiento, por lo que

hay que inicializarlo periódicamente.

x Protección ante fallo de alimentación: Circuito que resetea al microcontrolador

cuando la tensión de alimentación baja de un cierto límite.

x Temporizadores: Para controlar períodos de tiempo.


19

x Convertidores A/D y D/A. (Analógico/Digital y Digital/Analógico)

x Moduladores de anchura de impulsos PWM.

x Puertos de comunicación.- Tanto serie como paralelo.

x Control de interrupciones

2.3.1.2. Tipos de Arquitecturas en los Microcontroladores

Arquitectura Von Neumann

La unidad central de proceso (CPU), está conectada a una memoria única como

en el gráfico de la Figura Nº 2.2, en esta memoria se guardan las instrucciones del

programa y los datos. El tamaño de la unidad de datos o instrucciones está fijado por

el ancho del bus que comunica la memoria con la CPU. Así, un microprocesador de 8

bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más

unidades de 8 bits de longitud. Si tiene que acceder a una instrucción o dato de más

de un byte de longitud, tendrá que realizar más de un acceso a la memoria.

BUS

Figura Nº 2.2: Esquema de la Arquitectura Von Neumann


Fuente: Díaz W. y Maderer L. (2.007)
20

Arquitectura Harvard

La arquitectura Harvard posee la unidad central de proceso conectada a dos

memorias (una con las instrucciones y otra con los datos) por medio de dos buses

diferentes como se observa en la Figura Nº 2.3. Una de ellas contiene solamente las

instrucciones del programa (Memoria del programa) y la otra, solo almacena los datos

(Memoria de datos). Ambos buses son totalmente independientes y pueden ser de

distintos tamaños. Para un microprocesador del tipo RISC, el conjunto de

instrucciones y el bus de memoria de programa pueden diseñarse de tal manera, que

todas las instrucciones tengan la longitud de una sola posición de memoria de

programa.

BUS BUS

Figura Nº 2.3: Esquema de la Arquitectura Harvard


Fuente: Díaz W. y Maderer L. (2.007)

2.3.2. Microcontrolador PIC16F876 ATOM

El ATOM es un microcontrolador (ver Figura Nº 2.4), que posee un amplio

rango de funciones programables. Para la programación por parte del usuario, cuenta

con un compilador basado en el lenguaje Basic, el cual se ejecuta desde un PC y


21

traduce a lenguaje de máquina, el programa que el usuario realiza en un lenguaje de

alto nivel.

El lenguaje ATOM es una versión de BASIC dirigido a las aplicaciones de

control. Este es basado en el Mbasic de Basic Micro, con un agregado de funciones

para el manejo de las capacidades de hardware que incluye el ATOM. El PIC

“ATOM” posee la capacidad de programarse en lenguaje de alto nivel con

instrucciones similares al BASIC del PC. El mismo, permite llegar a niveles tan

detallados como el lenguaje ensamblador, pudiendo manipularse el contenido de los

registros, e incluso de los bits de estos, logrando entender con gran detalle el

funcionamiento de los recursos de hardware.

Figura Nº 2.4: Microcontrolador PIC ATOM


Fuente: Manual de usuario del sistema de desarrollo iBOARD®. (2.007)

El ATOM Basic incluye características como: 384 bytes de memoria RAM, 8

kilo palabras de memoria de programa Flash re-programable, 256 bytes de EEPROM,

convertidor Analógico/Digital de 4 canales y 10 bits de resolución, una (01) USART

(comunicación serial), dos (02) módulos CPP (Capture/Compare/PWM), tres (03)

Timers o temporizadores (TMR0, TMR1 y TMR2), hasta ocho (08) posibles fuentes
22

de interrupción, entre otras. Esto hace al microcontrolador “ATOM” un dispositivo

útil para todos, ya sea desde un principiante hasta un experto. El ATOM está basado

en el muy utilizado microcontrolador PIC 16F876, probado como uno de los PICs

más robustos y destacados de su gama. A continuación se presenta la distribución de

los terminales del PIC16f876.

Figura Nº 2.5: Descripción de los terminales del PIC16F876


Fuente: Microchip Technology Inc., Hoja de Datos del PIC16F876 (1999)

El microcontrolador ATOM posee varias fuentes de interrupción, siendo las

más importantes:

x Interrupción Externa (EXTINT). Se presenta cuando el terminal RB0 cambia de

estado. Esta interrupción responde a un determinado flanco de la señal.

x Interrupción del Puerto B (RBINT). Se produce cuando alguno de los terminales

de RB4 a RB7 cambia su estado. Esta interrupción responde a los niveles lógicos

no al flanco.
23

x Timer 0 (TMR0INT). Los microcontroladores poseen temporizadores (timers)

que permiten efectuar muchas labores como: conteo de pulsos, generación de

bases de tiempo, ejecución periódica de segmentos del programa, medición de la

duración de pulsos, entre otras cosas.

x Timer 1 (TMR1INT). Interrupción generada al desbordarse un registro de 16 bits

llamado TMR1. Puede utilizarse con el oscilador del ATOM o con un oscilador

externo conectado a RB8.

x Interrupción por puerto serial (RCINT). Esta interrupción indica cuando ha

llegado un dato al USART del ATOM.

Tabla A: Descripción de los terminales de conexión del PIC ATOM


Fuente: Microchip Technology Inc., Hoja de Datos del PIC16F876 (1999)

El PIC ATOM es del tipo RISC y posee una arquitectura basada en el modelo

Hardvard, como se muestra en el diagrama de bloques de la Figura Nº 2.6.


24

Figura Nº 2.6: Diagrama de Bloques del PIC 16F876


Fuente: Microchip Technology Inc., Hoja de Datos del PIC16F876 (1999)

2.3.3. Sistema de Desarrollo para Microcontroladores PIC iBOARD®

Es una unidad compacta, la cual posee los elementos básicos para trabajar con

microcontroladores de una forma fácil y rápida utilizando las prestaciones de estos

dispositivos. Como se observa en la Figura Nº 2.7, la iBOARD® esta diseñada a base


25

de Microcontrolador PIC16F876 “ATOM” y esta concebido para que el usuario

desarrolle sus propias aplicaciones permitiendo incorporar al microcontrolador

“ATOM” en múltiples tareas, ya sea en casa, oficina, y/o aplicaciones industriales.

Figura Nº 2.7: Fotografía de la tarjeta iBOARD


Fuente: www.roso-control.com (2.006)

2.3.4. Características del Sistema iBOARD®

El sistema de desarrollo iBOARD®, esta construido para realizar aplicaciones

muy rápidas; puede ser instalado en un protoboard o simplemente formar parte de una

aplicación final desarrollada por el usuario. Entre sus características resaltantes

destacan:

x Posee 16 terminales de E/S digitales disponibles, etiquetados con los nombres

P00 a P15.
26

x Tiene 4 terminales de E/S digitales o analógicas etiquetadas con los nombres AX0

a AX3.

x Una (01) salida analógica con altavoz piezoeléctrico preconectado al pin P03.

x Cuatro (04) salidas digitales con LEDs preconectados a los terminales P04 a P07.

x Interfaz de programación lista para conectar directamente al PC, a través del

puerto serial (RS232 o USB con la versión actual)

x Un Microcontrolador PIC 16F876 “ATOM” con su resonador de 20 Mhz

incluido.

x Se alimenta directamente desde el puerto USB del computador (versión actual) o

posee una fuente de poder y regulador de 5 Vdc incluido (versión anterior) que

permite la alimentación a la regleta de proyectos.

x Pulsador de reset para reiniciar al microcontrolador.

x LED para indicar la alimentación del sistema.

x LED para indicar la actividad del puerto serial durante la escritura y depuración

(debug) de los programas.

x Se conecta de forma sencilla a cualquier protoboard permitiéndole realizar gran

cantidad de pruebas y montajes.

x Puede utilizarse como programador para el microcontrolador, utilizando el PIC en

una aplicación simple comercial o personal.


27

2.3.5. El BasicMicro IDE

El BasicMicro IDE es un programa desarrollado por la empresa Basic Micro

para programar los BasicATOM con el lenguaje ATOM Basic (ver Figura Nº 2.8).

Un IDE “Integrated Development Enviroment” o Ambiente de Desarrollo Integrado

es el software usado para realizar todas las tareas asociadas al uso del ATOM. Utiliza

herramientas muy avanzadas que permiten editar y crear una aplicación, depurarla,

compilarla y finalmente ensamblarla para trasferirla al microcontrolador.

Mediante esta herramienta se escribe el código de comandos que debe ejecutar

el microcontrolador para obtener los resultados deseados, modificando para ello, los

registros internos que posee y utilizando las capacidades que aporta el

microcontrolador PIC. De esta manera se cuenta con un sistema capaz de adaptarse a

cualquier aplicación que el usuario desee.

Figura Nº 2.8: Fotografía Entorno de Programación Basic Micro IDE


Fuente: Díaz W. y Maderer L. (2.007)
28

Elementos del Entorno de Programación:

Ventana de Edición: esta es una ventana multi-documentos. Se pueden tener varios

programas (ventanas) abiertos al mismo tiempo, mientras que el IDE trabajará y

compilará el programa que esté seleccionado.

Ventana de Exploración: se utiliza para acceder a todos los archivos de la

computadora a través del árbol de carpetas. Tiene la posibilidad de filtrar los archivos

con terminación .bas, .asm, .hex, .inc.

Barra de Herramientas de Usuario: este menú contiene las herramientas básicas de

manejo y edición de archivos.

Ventana de Salida: como se observa en la Figura Nº 2.9, esta ventana puede cumplir

varias funciones de acuerdo a cual de las pestañas de la parte inferior esté

seleccionada.

Figura Nº 2.9: Fotografía Ventana de salida del Basic Micro IDE


Fuente: Díaz W. y Maderer L. (2.007)

En la pestaña “Build” se muestra información acerca de la compilación, la

RAM y memoria de programa disponible, los errores y su ubicación en caso de que la

compilación no se pueda realizar. La pestaña “Debug” es muy útil para obtener datos
29

e información del programa que se ejecuta en el microcontrolador BasicATOM. El

BasicMicro IDE incluye terminales de comunicación serial RS-232. Se pueden tener

hasta 4 terminales conectados a la vez, con la limitación del número de puertos COM

del computador. Cada comunicación, se establece según los parámetros indicados en

los cuadros de la parte superior de cada pestaña Terminal. Los parámetros son:

velocidad de comunicación, número de puerto COM, paridad, control de flujo y eco.

2.3.6. Instrumentación Virtual

La rápida adopción de la PC en los últimos 20 años generó una revolución en

la instrumentación de ensayos, mediciones y automatización. Un importante

desarrollo resultante de la ubicuidad de la PC es el concepto de instrumentación

virtual, el cual ofrece variados beneficios a ingenieros y científicos que requieran

mayor productividad, precisión y rendimiento. El concepto de instrumentación virtual

nace a partir del uso del computador personal (PC) como "instrumento" de medición

de señales tales como temperatura, presión, caudal, etc. Es decir, el PC comienza a

ser utilizado para realizar mediciones de fenómenos físicos representados en señales

de corriente y/o voltaje. Sin embargo, el concepto de "instrumentación virtual" va

más allá de la simple medición de corriente o voltaje, ya que también involucra el

procesamiento, análisis, almacenamiento, distribución y despliegue de los datos e

información relacionados con la medición de una o varias señales específicas. Es

decir, el instrumento virtual no se conforma con la adquisición de la señal, sino que


30

también involucra la interfaz hombre-máquina, las funciones de análisis y

procesamiento de señales, las rutinas de almacenamiento de datos y la comunicación

con otros equipos.

2.3.6.1. El instrumento virtual

El instrumento virtual es definido como una capa de software y hardware que

se le agrega a un PC, en tal forma, que permite a los usuarios interactuar con la

computadora como si estuviesen utilizando su propio instrumento electrónico "hecho

a la medida". Un instrumento virtual consiste de una computadora del tipo industrial,

o una estación de trabajo, equipada con poderosos programas, hardware económico,

como placas para inserción y manejadores (drivers) que cumplen, en conjunto, las

funciones de instrumentos tradicionales. Aunque la PC y la tecnología de circuitos

integrados han experimentado avances significativos en las últimas dos décadas, es el

software, el que realmente provee la ventaja para construir sobre la potente base de

hardware, creando los instrumentos virtuales y proporcionando mejores maneras de

innovar y de reducir los costos significativamente.

Para construir un instrumento virtual, sólo se requiere de un PC, una tarjeta de

adquisición de datos (PCMCIA, ISA, XT, PCI, etc.) y el software apropiado. Estos

tres (3) elementos son claves en la conformación de un instrumento virtual, añadiendo

en ocasiones un módulo para el acondicionamiento de señales.


31

2.3.6.2. Elementos de un Instrumento Virtual

El Software, es la clave del instrumento virtual, ya que éste es el que sustituye

al instrumento tradicional. El software juega un rol vital en el desarrollo de sistemas

de adquisición de datos y control, además de dirigir la interacción de las

especificaciones de hardware. El software se elige de acuerdo a las necesidades y

preferencias del usuario. Muchos factores afectan la elección del software incluyendo

aplicaciones, requerimientos, el hardware del computador, sistema operativo y el

hardware de instrumentación. También, mediante el software se puede crear la

interfaz de usuario que mejor satisfaga el objetivo de la aplicación y el de aquéllos

que van a interactuar con ella.

Las Tarjetas de interfaz con el PC, Los componentes con los cuales se hace la

interfaz con el computador pueden ser de dos tipos: tarjetas insertadas dentro del

computador (en inglés, “plug in”) e instrumentos con puertos de comunicación

operando independientemente. Las tarjetas de adquisición de los datos deben poseer

la capacidad de acondicionar las señales, pero es necesario mencionar que el

"acondicionamiento de señales" es opcional, porque dependiendo de cada señal, se

puede o no requerir amplificación, atenuación, filtraje, aislamiento, etc. de cada señal.

2.3.6.3. Estrategia base para diseños de Instrumentación Virtual.

A la hora de diseñar un sistema basado en el uso de instrumentos virtuales,

deben tomarse en cuenta algunos factores de importancia.


32

x Identificar los tipos de señales de entrada y salida. Cuando se usa una tarjeta de

adquisición de datos se debe identificar los tipos de sensores y señales de entrada

y salida con los que se trabajará.

x Escoger un método de acondicionamiento de señal. Muchos tipos de señales,

provenientes de diversos sensores, deben acondicionarse antes de ser conectados a

la tarjeta de adquisición de datos.

x Escoger una tarjeta de adquisición adecuada.

x Escoger el cableado adecuado para la conexión entre la tarjeta y el computador.

x Seleccionar el método de programación adecuado (Software).

La flexibilidad, el bajo costo de mantenimiento, la capacidad de re-uso, la

personalización de cada instrumento, la rápida incorporación de nuevas tecnologías,

el bajo costo por función, el bajo costo por canal, etc. son algunos de los beneficios

que ofrece la instrumentación virtual.

2.3.7 Comunicación Serial

El concepto de comunicación serial es sencillo. El puerto serial envía y recibe

paquetes de información, un dato por vez. Aún y cuando esto es más lento que la

comunicación en paralelo, que permite la transmisión de múltiples datos a la vez, este

método de comunicación es más sencillo y según lo establecido en la especificación

IEEE 488 puede alcanzar mayores distancias. Igualmente, esta especificación indica
33

que para una comunicación en paralelo el largo del cable para el equipo no puede ser

mayor a 20 metros, con no más de 2 metros entre cualesquiera de los dispositivos; por

otro lado, utilizando comunicación serial el cable puede llegar a los 1200 metros.

(National Instruments, 2006)

Entre las características principales de la comunicación serial, se encuentran

la velocidad de transmisión, los bits de datos, los bits de parada y los métodos para la

detección de los errores.

Velocidad de transmisión: un baudio representa el número de cambios de estado por

segundo que presenta una señal en una línea de comunicación. Los Baudios y los Bits

por segundo no son lo mismo, la diferencia está en que cada cambio de estado en la

señal no transmite necesariamente un bit, de forma que las dos medidas no son

equivalentes.

Bits de datos: Se refiere a la cantidad de bits en la transmisión. Cuando se envía un

paquete de información, el tamaño de ese paquete no necesariamente será de 8 bits.

El número de bits que se envía depende en el tipo de información que se transfiere.

Métodos para la detección de los errores: Dependiendo del protocolo utilizado, este

método puede afianzarse en la detección de paridad en los paquetes de información,

el código de redundancia cíclica (CRC) o la comprobación mediante algoritmos de

cálculo, entre otros.


34

2.3.8. El concepto de 1-Wire®

El bus 1-Wire®, desarrollado por Dallas Semiconductor Inc., permite la

implementación de una comunicación serial asincrónica entre un maestro y uno o

varios dispositivos esclavos, por medio de un único terminal de E/S de datos. El

maestro por lo general suele ser un microprocesador. Cada dispositivo esclavo tiene

una dirección única que lo identifica grabada en ROM por su fabricante, lo cual

garantiza un direccionamiento estricto de los mismos.

2.3.9. Tecnología 1-Wire®

Como se puede observar esquemáticamente en la Figura 2.10, los productos

1-Wire® proveen combinaciones de memorias, mezcladores de señal, y funciones de

autenticación mediante una interfaz patentada de un solo contacto. Con la

comunicación y la alimentación entregadas sobre un protocolo serial, los dispositivos

1-Wire® son incomparables en su habilidad de proveer funciones de codificación en

sistemas donde la interconexión debe ser minimizada.

Figura Nº 2.10: Ilustración de un red 1-Wire®


Fuente: http://www.maxim-ic.com/1-Wire.cfm (2.007)
35

Dallas Semiconductor/Maxim Inc. proporciona la tecnología llamada 1-

Wire®, que usa un cable (más referencia de tierra) para lograr la comunicación y la

alimentación de los dispositivos a la vez. Un bus maestro puede alimentar múltiples

esclavos mediante un único par de conductores entorchados. Un aspecto importante

de esta tecnología, es que cada esclavo posee un número serial único grabado en su

memoria de solo lectura (ROM “Read Only Memory”) desde fábrica, la cual, es

irrepetible en algún otro dispositivo. De tal manera, un dispositivo puede ser

seleccionado en la comunicación utilizando el número serial único para direccionarlo.

La red 1-Wire® es un Bus de bajo costo basado en la comunicación digital de

un PC o microcontrolador mediante un par de conductores entorchados con

componentes 1-Wire®. La red es definida como “open-drain” y de arquitectura

maestro/esclavo y utiliza un resitor de “pull-up” a la fuente nominal de 5V.

Un sistema basado en la red 1-Wire® consiste en tres elementos:

1) Un bus maestro controlado por software como el TMEX™ iButton® viewer.

2) El cableado y los conectores asociados.

3) Los dispositivos 1-Wire®.

El sistema permite un control seguro ya que ningún nodo esta autorizado para

hablar si no es solicitado por el maestro y no es permitida la comunicación entre

esclavos. Los datos en la red 1-Wire® son transferidos mediante intervalos de

tiempo, por ejemplo para escribir un uno en el esclavo, el bus maestro pone el bus en
36

bajo por 15µs. Para escribir un cero lógico, el maestro pone el bus en bajo por lo

menos 60µs para proveer un margen de tiempo para el peor de los casos. El reloj del

sistema no es necesario, ya que cada dispositivo 1-Wire® es auto sincronizado

mediante su propio oscilador interno con el flanco de bajada del maestro.

La energía para la operación del chip es obtenida del bus durante los periodos

en los cuales no se realiza ninguna comunicación, o cuando la línea de DATA se

encuentra a 5V mediante un rectificador de media onda en cada esclavo. Siempre que

la línea de datos es puesta en alto, el diodo en el rectificador de media onda entra en

conducción y carga el capacitor dentro del chip. Cuando el voltaje de la red cae por

debajo del voltaje del capacitor se polariza en inverso evitando que el capacitor se

descargue.

La carga resultante provee la fuente de energía al esclavo los intervalos

cuando la red está en bajo. La cantidad de carga perdida durante este tiempo es

repuesta cuando la línea regresa al estado alto. Este concepto de “robo” de energía de

la red usando rectificadores de media onda es referido como “alimentación parasita”.

Cuando ocurre la comunicación, el maestro reinicia la red poniendo el bus en bajo por

menos de 480µs, lo libera, y se produce un pulso de presencia desde un esclavo

conectado a la línea. Si un pulso de presencia es detectado, el accederá a su dirección

única, controlando la información mediante la generación de slots de tiempo y

esperando la respuesta desde el esclavo. A continuación se presenta un esquema que

indica los diagramas de tiempo de una red 1-Wire®.


37

Figura Nº 2.11: Diagramas de tiempo en la red 1-Wire®


Fuente: www.wikipedia.com (2.007)

2.3.10. Programación Orientada a Objetos (POO)

La Programación Orientada a objetos como paradigma, es una forma de

pensar, una filosofía, de la cual surge una cultura nueva que incorpora técnicas y

metodologías diferentes. La OOP como paradigma, es una postura ontológica: el

universo computacional está poblado por objetos, cada uno responsabilizándose por

sí mismo, y comunicándose con los demás por medio de mensajes.


38

La POO desde el punto de vista computacional es un método de

implementación, en el cuál, los programas son organizados como grupos cooperativos

de objetos, cada uno de los cuales representa una instancia de alguna clase, y estas

clases, todas son miembros de una jerarquía de clases unidas vía relaciones de

herencia.

2.3.10.1 Fundamentos de la POO

El paradigma orientado a objetos se basa en el concepto de objeto. Un objeto

es aquello que tiene estado (propiedades más valores), comportamiento (acciones y

reacciones a mensajes) e identidad (propiedad que lo distingue de los demás objetos).

La estructura y comportamiento de objetos similares están definidos en su clase

común; los términos instancia y objeto son intercambiables. Una clase es un conjunto

de objetos que comparten una estructura y comportamiento común. La diferencia

entre un objeto y una clase es que un objeto es una entidad concreta que existe en

tiempo y espacio, mientras que una clase representa una abstracción, la "esencia" de

un objeto, tal como son. De aquí que un objeto no es una clase, sin embargo, una

clase puede ser un objeto.

Existen una serie de principios fundamentales para comprender como se

modela la realidad al crear un programa bajo el paradigma orientado a objetos. Estos

principios son: la abstracción, el encapsulamiento, la modularidad, la jerarquía, el

paso de mensajes y el poliforfismo.


39

a) Principio de Abstracción: Mediante la abstracción la mente humana modela la

realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible

implementación de objetos del programa que simulen el funcionamiento de los

objetos reales. Los seres humanos no piensan en las cosas como un conjunto de cosas

menores; por ejemplo, no ven un cuerpo humano como un conjunto de células. Los

humanos entienden la realidad como objetos con comportamientos bien definidos. No

necesitan conocer los detalles de porqué, ni cómo funcionan las cosas; simplemente

solicitan determinadas acciones en espera de una respuesta; cuando una persona desea

desplazarse, su cuerpo le responde comenzando a caminar.

b) Principio de Encapsulamiento, permite a los objetos elegir qué información es

publicada y qué información es ocultada al resto de los objetos. Para ello los objetos

suelen presentar sus métodos como interfaz pública y sus atributos como datos

privados e inaccesibles desde otros objetos. Para permitir que otros objetos consulten

o modifiquen los atributos de los objetos, las clases suelen presentar métodos de

acceso. De esta manera el acceso a los datos de los objetos es controlado por el

programador, evitando efectos laterales no deseados. Con el encapsulado de los datos

se consigue que las personas que utilicen un objeto sólo tengan que comprender su

interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo la

complejidad de utilización.
40

c) Principio de Modularidad, se propone al programador dividir su aplicación en

varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada

uno de ellos con un sentido propio. Esta fragmentación disminuye el grado de

dificultad del problema al que da respuesta el programa, pues se afronta el problema

como un conjunto de problemas de menor dificultad, además de facilitar la

comprensión del programa.

d) Principio de Jerarquía, la mayoría de los humanos ve de manera natural el mundo

como objetos que se relacionan entre sí de una manera jerárquica. Por ejemplo, un

perro es un mamífero, y los mamíferos son animales, y los animales seres vivos. Del

mismo modo, las distintas clases de un programa se organizan mediante la jerarquía.

La representación de dicha organización da lugar a los denominados árboles de

herencia como se observa en la Figura Nº 2.12

Figura Nº 2.12: Esquema de la jerarquía de clases de los objetos


Fuente: http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/Prologo.htm

Las relaciones entre objetos definen el comportamiento del sistema. Se dice

que un objeto es un actor, si su única función es operar sobre otros objetos. El objeto

es un servidor si solo es manejado por otros objetos y es un agente si tiene ambas


41

propiedades. Se dice que los objetos actúan entre sí mediante mensajes, es decir,

acciones que pide el objeto transmisor que ejecute el objeto receptor.

Un objeto consta de:

x Tiempo de vida: La duración de un objeto en un programa siempre está

limitada en el tiempo. La mayoría de los objetos sólo existen durante una

parte de la ejecución del programa. Los objetos son creados mediante un

mecanismo denominado instanciación, y cuando dejan de existir se dice que

son destruidos.

x Estado: Todo objeto posee un estado, definido por sus atributos. Con él se

definen las propiedades del objeto, y el estado en que se encuentra en un

momento determinado de su existencia.

x Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus

métodos, para que el resto de objetos que componen los programas puedan

interactuar con él.

Las clases son abstracciones que representan a un conjunto de objetos con un

comportamiento e interfaz común. Una clase no es más que una plantilla para la

creación de objetos. Cuando se crea un objeto se ha de especificar de qué clase es el

objeto creado, para que el compilador comprenda las características del objeto.
42

Las clases presentan el estado de los objetos a los que representan mediante

variables denominadas atributos. Cuando se instancia un objeto el compilador crea en

la memoria dinámica un espacio para tantas variables como atributos tenga la clase a

la que pertenece el objeto.

Los métodos son las funciones mediante las cuales, las clases representan el

comportamiento de los objetos. En dichos métodos se modifican los valores de los

atributos del objeto, y representan las capacidades del objeto.

Las propiedades de un objeto son elementos expuestos por el componente a

fin de que el programador pueda personalizarlo, modificando sus atributos con el fin

de adaptarlo a sus necesidades, por ejemplo, estableciendo colores, dimensiones,

títulos, enlaces a bases de datos, conexiones con servidores, etc. Al igual que otros

elementos, van heredándose unas a otras. Existen algunas propiedades que no pueden

modificarse, pero la mayoría de las mismas son modificables tanto en fase de diseño

como de ejecución. Algunas no están disponibles en tiempo de diseño aunque sí en

tiempo de ejecución. Otras son de sólo lectura y no pueden ser modificadas en

ninguno de los dos tiempos.

Un método de un objeto es un procedimiento o función que permite realizar

una determinada acción en el componente, pertenece a un determinado componente

que identifica de forma unívoca para que se ejecute de forma precisa y ordenada sólo

cuando le corresponda. Se puede heredar de una clase a otra.


43

Un evento de un objeto es una señal generada por el objeto, ante un suceso

concreto y que la aplicación puede aprovechar para ejecutar alguna acción. Dicho

suceso puede ser externo, como la pulsación de una tecla, o bien interno como la

recepción de una señal por parte del sistema operativo.

2.3.11. Controles ACTIVEX

Antes de definir lo que es un control ActiveX, habrá que entender lo que es un

objeto OLE. Un objeto OLE (en inglés, Object Linking and Embedding) significa el

estándar de vinculación e incrustación de objetos. OLE es un entorno unificado de

servicios basados en objetos con la capacidad de personalizar esos servicios y de

ampliar arbitrariamente la arquitectura a través de servicios personalizados, con la

finalidad global de permitir una integración rica entre los componentes. OLE

proporciona un estándar consistente que permite a los objetos, aplicaciones y

componentes ActiveX, comunicarse entre sí con la finalidad de usar el código de los

demás. Los objetos no necesitan conocer por anticipado con qué objetos se van a

comunicar, ni su código necesita estar escrito en el mismo lenguaje.

Cabrera Martínez y Cabrerizo Membrilla, en su proyecto titulado “Algoritmos

genéticos con ActiveX” señalan que un objeto ActiveX se define como aquel objeto

que se apega al Modelo de Objetos Componentes (COM “Component Object

Model”) definido por Microsoft, el cual posee las siguientes características:


44

x Se encuentra aplicado como código binario, por consiguiente, puede estar escrito

en cualquier lenguaje fuente.

x El objeto está encapsulado en un archivo ejecutable o en una biblioteca de vínculo

dinámico.

x El objeto contiene datos de dos tipos: datos de presentación, que se requieren para

presentar la pantalla o para imprimir, y datos internos. Puede considerar los dos

tipos de datos como propiedades que son privadas para el objeto.

x El objeto contiene funciones para manipular sus datos.

x El objeto proporciona una interfaz estándar para que otros objetos se comuniquen

con él.

x El objeto participa en la disposición en formación, proceso de pasar argumentos

de funciones y valores de retorno entre procesos y máquinas.

Con un ActiveX no necesita de algún código fuente, ya que el código original

se ha convertido en un control ActiveX con su traducción en lenguaje de máquina,

además, es posible utilizarlo sin el apoyo de un programa en especial. Los controles

ActiveX ofrecen un marco de reutilización de código, ya que son independientes del

lenguaje, pueden conseguir esta independencia del lenguaje, ya que su código se

encripta en forma binaria, no como código fuente. Sea cual sea la herramienta de

desarrollo utilizada, el resultado será un control ActiveX comprensible como binario

por cualquier programa compatible con los objetos OLE. (Cabrera Martínez y

Cabrerizo Membrilla).
45

La independencia del lenguaje no es la única ventaja que se extrae del empleo

de código reutilizable en forma binaria, por ejemplo, después de convertir un

algoritmo en un control ActiveX, podrá suministrarse a otros programadores sin

necesidad de desvelar el resto del código fuente. Además, los algoritmos dejarán de

estar limitados a las herramientas de desarrollo. Toda aplicación que contemple en

sus controles al estándar ActiveX, podrá hacer uso de este código.

Las aplicaciones ActiveX están conceptualmente divididas en servidores,

objetos que hacen que sus métodos y propiedades estén disponibles para los demás, y

clientes, aplicaciones que usan objetos de servidor expuestos, métodos y propiedades.

Algunos tipos de servidores, por ejemplo controles ActiveX, pueden disparar eventos

que pueden ser después respondidos por el código de un cliente.

El ActiveX tiene presencia en la programación del lado del servidor y del lado

del cliente, aunque existan diferencias en el uso en cada uno de esos dos casos. Los

controles ActiveX tienen la peculiaridad de ser herramientas que facilitan el trabajo

de crear un programa, ya que los mismos son líneas de código empaquetados que

están predefinidos y cumplen funciones específicas, lo cual, produce que el

programador no tenga la necesidad de crear determinada lógica del programa.

Los controles ActiveX se desarrollan con entornos de Microsoft para la

creación de aplicaciones Windows, como pueden ser Visual Basic Script, Visual

Basic Pro o Visual C.


46

2.3.12. Entorno Visual Basic

Visual Basic, es una herramienta de programación y ya es considerada un

lenguaje estructurado, lo que permite crear programas modularmente, mediante

subrutinas y módulos, capaz de crear programas ya competitivos con otros lenguajes

de alto nivel.

Visual Basic posee una gran sencillez de manejo. Si a esto se le añade el

entorno gráfico Windows, el aprovechamiento al máximo de las posibilidades de

Windows en cuanto a intercambio de información, de sus librerías, de sus drivers y

controladores, manejo de bases de datos, etc. el producto resultante puede ser algo

que satisfaga todas las necesidades de programación en el entorno Windows.

2.3.12.1. Características Generales de Visual-Basic

Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en

la que estas, se desarrollan en gran parte a partir del diseño de una interfaz gráfica. En

una aplicación Visual Basic, el programa está formado por una parte de código puro,

y otras partes asociadas a los objetos que forman la interfaz gráfica. Es por tanto un

término medio entre la programación tradicional, formada por una sucesión lineal de

código estructurado y la programación orientada a objetos.


47

2.3.11.2. Pantalla Principal (Visual Basic6.0)

Figura Nº 2.13: Aspecto del entorno de desarrollo de aplicaciones VB.


Fuente: Tutorial Visual Basic - Guía del Estudiante Cáp. 2. (2005).

Figura Nº 2.14: Ventana de Formulario en Visual Basic.


Fuente: Tutorial Visual Basic - Guía del Estudiante Cáp. 2. (2005).

2.3.13. Funciones API TMEX

La empresa Dallas Semiconductor Inc., en su carácter de suplidor de

componentes 1-Wire®, suministra un software (dedicado a desarrolladores) de

manera gratuita llamado “1-Wire® SDK para Windows”, en este se incluyen un

conjunto de funciones API (“Application Program Interface”) empaquetadas en el


48

formato dll. Estas dll pueden ser utilizadas por los desarrolladores de software para

establecer comunicación con una red 1wire.

Las denominadas API, es la plataforma que proporciona el fabricante para

acceder a los dispositivos y a la RED 1-Wire® desde un computador. Básicamente, se

definen como un conjunto de subprogramas o funciones de bajo nivel programadas en

un entorno que depende tanto del lenguaje de programación como del sistema

operativo utilizado. Actualmente el fabricante proporciona cuatro diferentes API, las

cuales son:

1-Wire® Public Domain (PD): Conjunto completo de códigos y funciones abiertas en

lenguaje “C”, los cuales, soportan la conexión con un PC a través de un adaptador

tipo serial denominado DS9097U ó equivalente.

1-Wire® API for JAVA (OWAPI): Conjunto completo de códigos y funciones abiertas

en lenguaje “JAVA”, los cuales, soportan la conexión con un PC a través de un

adaptador tipo serial denominado DS9097U ó equivalente y casi la totalidad de los

dispositivos 1-Wire®.

1-Wire® COM (OWCOM): Modelo de componentes objetos (COM) que implementa

un interfaz en base a códigos y funciones escritas y utilizadas por el API de JAVA

(OWAPI), el cual, es accesible a través de lenguajes de programación como el Java y

el Visual Basic Script.


49

TMEX API: Utilizadas para el desarrollo del control OCX del proyecto, estas son un

conjunto completo de funciones independientes del lenguaje (DLL’s), proveen

soporte a todos los dispositivos y adaptadores de RED 1-Wire® que trabajen bajo la

plataforma Windows™ de 32 Bits. El API TMEX, está diseñado para trabajar en

aplicaciones multiprocesos y multitareas.

2.3.14. Modelo OSI

En 1977, la Organización Internacional de Estándares (ISO), integrada por

industrias representativas del medio, creó un subcomité para desarrollar estándares de

comunicación de datos que promovieran la accesibilidad universal y una

interoperabilidad entre productos de diferentes fabricantes. El resultado de estos

esfuerzos es el Modelo de Referencia Interconexión de Sistemas Abiertos OSI (en

inglés, “Open Systems Interconnected”). (Cisco Networking Academy, 2007)

El Modelo OSI es un lineamiento funcional para tareas de comunicaciones y,

por consiguiente, no especifica un estándar de comunicación para dichas tareas. Sin

embargo, muchos estándares y protocolos cumplen con los lineamientos del Modelo

OSI. Como se mencionó anteriormente, OSI nace de la necesidad de uniformizar los

elementos que participan en la solución del problema de comunicación entre equipos

de cómputo de diferentes fabricantes.


50

2.3.14.1 Estructura del Modelo OSI de ISO

El objetivo perseguido por OSI establece una estructura que presenta las

siguientes particularidades:

Estructura multinivel: se diseñó una estructura multinivel con la idea de que cada

nivel se dedique a resolver una parte del problema de comunicación. Esto es, cada

nivel ejecuta funciones específicas.

El nivel superior utiliza los servicios de los niveles inferiores: cada nivel se comunica

con su similar en otras computadoras, pero debe hacerlo enviando un mensaje a

través de los niveles inferiores en la misma computadora. La comunicación inter-

nivel está bien definida. El nivel N utiliza los servicios del nivel N-1 y proporciona

servicios al nivel N+1.

Puntos de acceso: entre los diferentes niveles existen interfaz llamadas "puntos de

acceso" a los servicios.

Dependencias de Niveles: cada nivel es dependiente del los niveles inferior y superior.

Encabezados: en cada nivel, se incorpora al mensaje un formato de control. Este

elemento de control permite que un nivel en el dispositivo receptor se entere de que

su similar en el dispositivo emisor esta enviándole información. Cualquier nivel dado,


51

puede incorporar un encabezado al mensaje. Por esta razón, se considera que un

mensaje esta constituido de dos partes: encabezado e información.

Figura Nº 2.15: Gráfico de los Niveles del Modelo OSI


Fuente: Academia Cisco Systems (2007)

2.4. BASES LEGALES

Más que bases legales, para el desarrollo de este proyecto se utilizaron un

conjunto de normas que sirvieron como referencia en algunas fases del mismo:
52

x ANSI Y32.16-1975 / IEEE Std.200-1975 “Standard Reference Designations for

Electrical and Electronics Parts and Equipments”. De esta norma se extrajeron los

fundamentos para la designación y numeración de los dispositivos dentro del

circuito impreso, al igual que para establecer la mejor ubicación de los

dispositivos en la placa del circuito.

x IEEE Std. 1100-1999 IEEE Recommended Practice for Powering and Grounding

Electronic Equipment. Sirvió de referencia para realizar un correcto plano de

tierra en las placas prototipo del sistema, además se tomó en consideración para

proveer una correcta alimentación a los circuitos involucrados y para la

protección de los elementos susceptibles.

x Ley de propiedad intelectual Publicada en la Gaceta Venezolana Oficial Nº 24873

del 14 de octubre de 1955, la cual trata los aspectos de los derechos de propiedad

intelectual, propiedad industrial y de las patentes, en el marco legal venezolano.


CAPÍTULO III

MARCO METODOLÓGICO

3.1. TIPO DE PROYECTO

El presente proyecto se encuentra enmarcado dentro de la modalidad de

“Diseño e Implementación”. Según el Manual de Normas y Procedimientos para la

realización del Trabajo Especial de Grado de Pregrado de la Universidad Nacional

Experimental Politécnica de la Fuerza Armada (UNEFA, 2000).

El presente proyecto se encuentra sustentado en un proceso de investigación

documental, el cual, sustenta los fundamentos utilizados durante su desarrollo. Todo

esto, llevó a la obtención de una propuesta, que fue implementada y validada.

3.2. ÁREA DEL PROYECTO

3.2.1. Área de Aplicación

El proyecto se enmarca en el campo de la electrónica, específicamente en el

establecimiento de redes de comunicación, diseño y desarrollo de circuitos

microelectrónicos y programas informáticos de aplicación en el control de variables.

El proyecto se encuentra enfocado a la integración y generación de tecnologías, que


54

permitirán a la empresa optimizar los servicios prestados en cuanto a la

automatización y el control. En el proyecto se genera un conjunto de software y un

módulo de hardware, este último, realizado mediante un estudio de los recursos

disponibles para cumplir con las especificaciones requeridas en el sistema.

3.2.2. Área de Trabajo

El desarrollo del proyecto tiene lugar en el contexto de la empresa privada

ROSO C.A., ubicada en Valencia - Edo. Carabobo y sus resultados serán aplicados

por la misma, representando un aumento de las capacidades como proveedor de

soluciones para la industria nacional y también en el sector educativo.

3.3. MÉTODOS, TÉCNICAS Y PROCEDIMIENTOS

3.3.1. Método para el acceso a los dispositivos 1-Wire®

El protocolo 1-Wire®se puede describir como una secuencia de transacciones

de información, las cuales según la Dallas/Semiconductor Inc. en su reporte técnico

sobre la red 1-Wire®, se desarrollan según los siguientes pasos:

Inicialización: todas las comunicaciones en el bus 1-Wire® comienzan con

una secuencia de un pulso de Reset y Presencia. El pulso de Reset provee una forma
55

limpia de iniciar las comunicaciones, ya que, con él se sincronizan todos los

dispositivos esclavos presentes en el bus. El pulso de presencia es realizado por los

dispositivos esclavos para indicar que se encuentran conectados y operativos en la red.

Comandos y Funciones del ROM: Una vez que el dispositivo maestro recibe

el pulso de presencia de los dispositivos esclavos, se puede enviar un comando de

ROM, los cuales son comunes para todos los dispositivos con esta tecnología, y se

relacionan con la búsqueda, lectura y utilización de la dirección de 64 bits que

identifica a cada dispositivo esclavo.

Comando y Funciones de Control y Memoria: incluyen comandos para

leer/escribir en localidades de memoria, leer memorias de scratchpad, controlar el

inicio de conversión de un A/D, iniciar la medición de temperatura, manipular el

estado de un bit de salida, etc. Son funciones propias de cada dispositivo 1-Wire®.

Transferencia de Datos: la lectura y escritura de datos en el bus 1-Wire® se hace por

medio de lotes (slots) o pulsos para indicar el tipo de proceso, la generación de estos

es responsabilidad del maestro. Cuando el maestro lee información del bus, debe

forzar la línea de datos a estado bajo durante menos de 1µs y esperar unos 15µs para

leer el estado de la misma. El estado lógico de la línea en ese momento, esta

determinado por el dispositivo esclavo. Al momento de efectuar la escritura de un bit

ocurre algo similar, el maestro produce un pulso entre 1µs y 15µs de duración, para
56

luego colocar en el bus al bit que se desea transmitir. Este bit debe permanecer en el

bus al menos 60µs.

3.3.2. Técnicas Utilizadas para la Programación:

Elaboración de Diagramas de flujo: Es un esquema para representar

gráficamente un algoritmo. Se basa en la utilización de diversos símbolos para

representar operaciones específicas. Se les llama diagramas de flujo porque los

símbolos utilizados se conectan por medio de flechas para indicar la secuencia de

operación. Para hacer comprensibles los diagramas a todas las personas, los símbolos

se someten a una normalización; es decir, se usaron símbolos estandarizados. La

simbología utilizada para la elaboración de diagramas de flujo es variable y debe

ajustarse a un patrón definido previamente.

Elaboración de Pseudocódigos: Esta técnica consiste en la mezcla del

lenguaje de programación que se emplea, con el lenguaje propio de la persona que lo

desarrolla, para realizar el diseño de un programa. Se considera un primer borrador,

dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de

programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una

computadora. Se puede definir como un lenguaje de especificaciones de algoritmos y

utiliza palabras que indican el proceso a realizar, representando de manera narrativa,

los pasos que debe seguir un algoritmo para dar solución a un problema determinado.
57

Programación Lineal: el programa residente en el microcontrolador sigue línea a

línea un código lógico que se ejecuta secuencialmente.

Programación estructurada: una programación estructurada es aquella que debe ser

modular, los modulo deben ser diseñados en forma descendente, cada modulo se

debe codificar utilizando las tres estructuras de control básicas, que son secuencia,

selección y repetición.

Programación Modular: el programa residente en el microcontrolador no sigue una

secuencia lineal si no depende de condiciones para ejecutar rutinas separadas en

pequeños grupos que tienen un fin específico.

Programación Orientada a objetos: La idea detrás de la programación

orientada a objetos, es que un programa de computadora puede verse como una

colección compuesta de unidades individuales, u objetos, que actúan entre sí,

contrarios a la visión tradicional, en la cual, el programa es visto como una colección

de funciones o simplemente como un listado de instrucciones a la computadora. Cada

objeto es capaz de recibir mensajes, procesar datos, y enviar mensajes a otros objetos.

Cada objeto puede ser visto como una máquina independiente pequeña o actor con un

rol o responsabilidad en particular.

Uso del programador: Para transferir el código de un ordenador al

microcontrolador PIC normalmente se usa un dispositivo llamado programador. La


58

mayoría de PICs que Microchip distribuye hoy en día incorporan ICSP (In Circuit

Serial Programming, programación serie incorporada) o LVP (Low Voltage

Programming, programación a bajo voltaje), lo que permite programar el PIC

directamente en el circuito destino. Para la ICSP se usan los terminales RB6 y RB7

como reloj y datos, y el MCLR para activar el modo programación aplicando un

voltaje de unos 11 voltios. Existen muchos programadores de PICs, desde los más

simples que dejan al software los detalles de comunicaciones, a los más complejos,

que pueden verificar el dispositivo a diversas tensiones de alimentación e

implementar en hardware casi todas las funcionalidades. Muchos de estos

programadores complejos incluyen PICs preprogramados, como interfaz para enviar

las órdenes al PIC que se desea programar.

Utilización del Software Compilador: esta herramienta traduce un código

escrito en un determinado lenguaje de programación a otro lenguaje de programación,

generando de esta manera un programa equivalente. Usualmente el segundo lenguaje

es código de máquina, pero también puede ser simplemente texto. Este proceso de

traducción se conoce como compilación. La razón principal para utilizar un

compilador, es traducir un programa de un lenguaje de alto nivel, a otro lenguaje de

nivel inferior (típicamente lenguaje de máquina). De esta manera un programador

puede diseñar un programa en un lenguaje cercano a como piensa un ser humano,

para luego compilarlo a un programa manejable por una computadora.


59

3.3.3. Técnicas para la Recolección de Datos

Observación Directa: Mediante esta técnica, se logró la integración tanto, de los

elementos de software como los de hardware, permitiendo evaluar constantemente el

nivel de funcionalidad y la recurrencia de los errores. Mediante el registro de estos datos,

se logra el análisis del proceso de comunicación. Con esta técnica se logra la

optimización de los resultados durante el período de diseño y de pruebas, verificando de

forma práctica el cumplimiento de los requerimientos y las estimaciones del diseño.

Entrevista no estructurada (no formalizada): Se utilizó numerosas veces, ya

que fue necesario el aprovechamiento de la experiencia y el conocimiento del

personal de la empresa. Se obtuvo gran cantidad de información con esta técnica,

debido a que muchos de los aspectos relacionados con el proyecto, son determinados

por las aplicaciones prácticas que constantemente se le asigna al dispositivo

iBOARD® en el contexto de los servicios prestados por la empresa.

Revisión de información Teórica: Se realizó una extensa investigación y

recolección de la información de interés para el desarrollo del proyecto y para la

comprensión de todas las características técnicas de los dispositivos utilizados como: los

protocolos de comunicación, interfaz de comunicación, especificaciones eléctricas,

funcionamiento interno, modos de operación, formas y lenguajes de programación, etc.

Para esto, se consultaron estudios previos sobre el tema (desarrollados por autores en la

UNEFA y otras universidades), manuales técnicos de los circuitos integrado y


60

microcontroladores, manuales sobre los estándares de los protocolos de comunicación

implementados, libros relacionados con los lenguajes de programación involucrados y

medios electrónicos.

3.3.4. Técnicas para el Diseño y Fabricación de los Prototipos:

La metodología aplicada para el diseño y fabricación de los circuitos impresos

y la terminación de la fase de construcción del prototipo planteado en el proyecto, se

puede resumir en una serie de pasos señalados a continuación:

x Investigación sobre las prestaciones y ventajas que proporciona cada uno de los

dispositivos con los cuales dispone la empresa.

x Estudio de las factibilidades económicas y técnicas de la utilización de cada

dispositivo.

x Realización de un esquema de conexiones entre los dispositivos del sistema,

estableciendo la descripción de los pines (en inglés, “pinout”) y la

correspondencia entre los terminales de un dispositivo con los otros.

x Se procede a realizar un montaje preliminar de prueba en la “placa para

prototipos”, lo que permite realizar varios ensayos en cuanto a la conexión

eléctrica del sistema y sus dispositivos, al igual que permite la realización de

pruebas de desempeño y funcionamiento.


61

x Una vez obtenida la configuración deseada del hardware, se procede a realizar un

bosquejo de la tarjeta impresa del módulo de interfaz, donde se ubica de cada uno

de los dispositivos en el espacio y se definen las posibles formas y tamaños que

poseerán los buses o pistas de conexión.

x Culminado el bosquejo preliminar del sistema, se realiza su digitalización

mediante el programa ExpressPCB (Software de uso libre, de la empresa con el

mismo nombre), editando cuidadosamente todos los tamaños y medidas en la

tarjeta, de manera que coincidan perfectamente con los elementos escogidos.

x Se construyen prototipos del sistema y se construyen tarjetas de circuito impreso

con el método de corrosión del cobre, para comprobar la funcionalidad del diseño

planteado y las conexiones eléctricas internas. Tambien se decide ordenar la

fabricación de un número considerable de módulos electrónicos de interfaz,

contratando los servicios de la empresa expresspcbTM especializada en la

fabricación de PCB (“Printed Circuit Board”, en inglés), esto permite al prototipo

tener una excelente apariencia, acabado, resistencia y durabilidad.

x Se procede a soldar cada uno de los componentes en la tarjeta del circuito,

situando cada uno de ellos, según lo indica el esquema planteado, utilizando para

ello, diversos métodos para la soldadura superficial y comprobando

periódicamente la continuidad entre los puntos comunes en la tarjeta con un

multímetro
62

Herramienta para el Diseño de los Circuitos Impresos:

Para la generación de las pistas conductoras que permiten la conexión

eléctrica de cada uno de los elementos dentro del circuito impreso, se utilizó la

herramienta informaítica programa ExpressPCB, el cual posee un entorno gráfico y

amigable (véase Figura 3.1) ayudando en gran medida a la cuidadosa elaboración de

dicha tarjeta

Figura Nº 3.1: Pantalla del Programa ExpressPCB


Fuente: Díaz W. y Maderer L. (2.007)

Con la utilización de esta herramienta se puede obtener una vista muy

detallada de las características que posee el circuito impreso. Cuenta con la capacidad

de dibujar las pistas del circuito con un grosor específico y de ubicar los contactos

que servirán para fijar los componentes con empaque para soldadura superficial SOIC
63

(Small Outline Integrated Circuits, en inglés), estableciendo el espaciado exacto entre

sus terminales de conexión. El programa permite la generación y la revisión de ambas

caras de la tarjeta de una manera sencilla, permitiendo incorporar al diseño: las

descripciones, indicaciones y los nombres de los componentes. En la Figura Nº 3.2

se muestran algunas de las herramientas del programa utilizadas por los

desarrolladores.

Figura Nº 3.2: Herramientas del Programa ExpressPCB


Fuente: Díaz W. y Maderer L. (2.007)
64

3.3.5. Procedimiento para el Análisis de la Información:

Para realizar una estructuración de los datos existentes, buscando discriminar

cuales son los de verdadera utilidad, se realizó un estudio cualitativo de los

requerimientos que el proyecto exige, con lo cual, se pudo seleccionar la información y

los dispositivos que serán el punto de partida para el diseño y posterior desarrollo del

módulo de interfaz para la red 1-Wire®. Además, se realizaron diversas pruebas y

validaciones, con las cuales, se probó el desempeño del sistema en cuanto a la

comunicación y la operatividad, tomando en cuenta los tiempos de acceso, tasa de

transferencia en la red y asegurando de esta forma, el cumplimiento de los requerimientos

necesarios en el sistema.

3.4. FASES DEL PROYECTO:

3.4.1. Fase I. Identificación de los Requerimientos del Sistema: se realizó una

búsqueda de información, con la finalidad de entender a profundidad las

características del problema y sus posibles soluciones. Con esta información, se logra

una mejor comprensión de la naturaleza del problema y de las razones de los

desarrolladores para proponer la solución contenida dentro del proyecto.

3.4.2. Fase II. Búsqueda de Información Técnica: Consistió en la recopilación e

interpretación de los manuales técnicos de: los dispositivos 1-Wire® utilizados en el


65

proyecto, el microcontrolador en la tarjeta “iBOARD®” y todos los dispositivos

implementados en la interfaz de comunicación. Igualmente, se estudió el protocolo de

comunicación empleado en el desarrollo del proyecto.

3.4.3. Fase III. Desarrollo del Hardware para el Módulo de Comunicación: Se

construyó el hardware, según las características arrojadas por la solución planteada y

los dispositivos escogidos para su implementación. Se realizó el diseño y

construcción de la circuitería en PCB mediante el programa ExpressPCB, tomando en

cuenta la ubicación más conveniente para cada dispositivo y la forma de conexión

entre la interfaz y los elementos de la red.

3.4.4. Fase IV. Desarrollo de los Diagramas de Flujo, Pseudocódigos y

Algoritmos de Programación para los Microcontroladores en el Hardware: se

llevó a cabo la familiarización con el lenguaje de programación orientado a objetos,

que se utilizó para el desarrollo de los controles ActiveX, permitiendo comunicación

entre el hardware y el software del sistema. Se desarrollaron los algoritmos de

comunicación utilizados por los distintos elementos para la lectura, la escritura y la

sincronización de las variables a lo largo de la estructura del sistema.

3.4.5. Fase V. Programación del Microcontrolador en la IBOARD®: Se

incluyeron las rutinas necesarias en la iBOARD® para que establezca comunicación

directa con el dispositivo de interfaz, llevando a cabo la lectura o escritura de las

variables.
66

3.4.6. Fase VI. Programación del Microcontrolador en la Interfaz de Hardware:

se programó el microcontrolador del módulo de comunicación con el algoritmo

generado anteriormente, para realizar la interfaz entre la red y la IBOARD®.

3.4.7 Fase VII. Construcción de los Controles ActiveX: Se realizó la construcción

de los controles ActiveX (correspondiente al software que gerencia las variables) en

el entorno programación Visual Basic 6.0. Estos controles, permiten la interlocución

entre el computador y el hardware diseñado, y por consiguiente la comunicación entre

el PC y las tarjetas iBOARD® conectadas a la red 1-Wire®. Este control, permite

obtener el valor de las variables deseadas por el usuario en un momento determinado,

a partir del conjunto de variables disponibles en la red.

3.4.8. Fase VIII. Construcción de Hardware: Se acoplaron los componentes

diseñados durante el proyecto, a fin de verificar y corregir fallas preliminares del

sistema.

3.4.9. Fase IX. Integración del Software: se implementaron las diferentes etapas del

sistema, cada una con su componente de software, verificando y corrigiendo las fallas

de compatibilidad y sincronización entre las mismas. Por medio de este proceso, se

logra realizar el intercambio de información o la integración, entre el computador y la

iBOARD® en la red.
67

3.4.10. Fase X. Puesta a Punto del Sistema: Se ajustó el sistema hasta lograr un

resultado de calidad y que cumple con los objetivos generales y específicos del

proyecto.

3.4.11. Fase XI. Validación del Sistema: Se realizó la conexión de los módulos de

interfaz a la red 1-Wire® y se verificó la comunicación y/o funcionamiento bajo los

distintos parámetros relacionados con la comunicación y la operatividad

3.4.12. Fase XII. Documentación: Se desarrolló en paralelo con todas las demás

fases. Su propósito fue la elaboración de todos los documentos que conforman el

proyecto y los necesarios dentro de la empresa con la generación de la red de

comunicación para su producto,

3.5. CRONOGRAMAS DE ACTIVIDADES DEL PROYECTO:

En las siguientes páginas se muestran los cronogramas para la realización de

las actividades relacionadas con el desarrollo del proyecto, ilustradas a través del

tiempo en un diagrama de Gantt. Se muestran tanto, el cronograma planificado

inicialmente en la Tabla B, como el cronograma cumplido realmente en la Tabla

C.
3.5.1. Cronograma Propuesto Inicialmente

Duración (Semanas)
ACTIVIDADES MES 1 MES 2 MES 3 MES 4 MES 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1.INVESTIGACIÓN
TEÓRICA

2.ADIESTRAMIENTO
Y ADAPTACIÓN AL
ENTORNO DE
PROGRAMACIÓN
3.DISEÑO DEL
HARDWARE Y
SOFTWARE
4.IMPLEMENTACIÓN
DEL HARDWARE E
INTERACCIÓN CON
SOFTWARE
5.PUESTA PUNTO
DEL SISTEMA

6.ELABORACIÓN DE
DOCUMENTACIÓN

Tabla B: Diagrama de Gantt del cronograma de actividades propuesto inicialmente


Fuente: Díaz W. y Maderer L. (2.007)
3.5.2. Cronograma Cumplido Durante el Desarrollo

Duración (Semanas)
ACTIVIDADES MES 1 MES 2 MES 3 MES 4 MES 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
7.INVESTIGACIÓN
TEÓRICA

8.ADIESTRAMIENTO
Y ADAPTACIÓN AL
ENTORNO DE
PROGRAMACIÓN
9.DISEÑO DEL
HARDWARE Y
SOFTWARE
10.IMPLEMENTACIÓ
N DEL HARDWARE
E INTERACCIÓN
CON SOFTWARE
11.PUESTA PUNTO
DEL SISTEMA

12.ELABORACIÓN DE
DOCUMENTACIÓN

Tabla C: Diagrama de Gantt del cronograma de actividades cumplido


Fuente: Díaz W. y Maderer L. (2.007)
CAPITULO IV

DISEÑO DEL MÓDULO DE INTERFAZ

4.1. REQUERIMIENTOS DE DISEÑO

La empresa requiere incorporar a su producto iBOARD®, la capacidad de

conectarse a la red que constantemente instala y configura, la red 1-Wire®. Para ello,

desea utilizar recursos accesibles y obtener resultados aceptables en cuanto a

funcionalidad y rapidez.

Para la elaboración del Módulo Electrónico de Interfaz para Comunicación 1-

Wire®, la empresa establece que se deberán seleccionar los dispositivos para la

estructuración del sistema, tomando como referencia los dispositivos disponibles en

su almacén y/o de fácil adquisición para la misma. Dichos dispositivos,

preferiblemente deben pertenecer a la gama de productos 1-Wire® de la Dallas

Semiconductor y a la gama de PIC´s de Microchip Inc. Soportados por el compilador

MBasic, ya que la empresa regularmente importa y distribuye dichos componentes.

El Módulo Electrónico de Interfaz para la interconexión con la red, debe ser lo

más compacto posible, teniendo preferencia por utilización de dispositivos con

encapsulado SOIC “Small Outline Integrated Circuits” para soldadura superficial,


71

evitando de esta manera desperdicio del espacio disponible en las placas de circuito

impreso.

En cuanto a la rapidez para el intercambio de los datos, la empresa establece

que esta red pueda ser utilizada en la implementación de procesos de mediana y

pequeña escala de complejidad, sin que se produzcan retardos considerables que

puedan afectar la comunicación. Por lo tanto, se requiere que el tiempo de respuesta

del sistema sea lo suficientemente corto para lograr cumplir con las exigencias de las

aplicaciones antes mencionadas.

Los dispositivos que se requieren integrar a la red 1-Wire®, mediante el

Modulo Electrónico de Interfaz, son del tipo iBOARD®, los cuales son fabricados por

ROSO CONTROL C.A. para la generación de soluciones a nivel empresarial y

educacional. Todas las variables manejadas por los sistemas de desarrollo para

microcontroladores iBOARD® conectados a la red, podrán ser accedidas con este

sistema de forma sencilla, con solamente igualar una variable cualquiera dentro de la

aplicación de usuario, a una función que regresará un Byte de información

suministrado por alguno de los dispositivos conectados. Dicho dispositivo, será

especificado con un nombre particular de identificación (“Tagname”) que será

proporcionado como argumento de la función o en su defecto será necesario

proporcionarle el serial de identificación ROM del dispositivo requerido.


72

El software para la gestión y control de las variables del sistema debe estar

elaborado de tal forma que resulte sencilla su utilización por parte del usuario final,

que pueda ser incluido y adaptado fácilmente en una aplicación final y además, debe

ser capaz de ejecutar todas las operaciones necesarias (de manera transparente al

usuario) para la comunicación con red y con los dispositivos conectados a ella.

4.2. SELECCIÓN DE TECNOLOGÍAS

Al momento de realizar un proyecto que esté basado en la utilización y diseño

de un hardware o software, es necesario tomar en cuenta una serie de factores para

realizar una buena selección de los componentes o elementos que se incluirán dentro

del sistema, según la empresa ROSO C.A. estos pueden ser: el costo de la tecnología,

la disponibilidad de los recursos, la calidad de los productos obtenidos, los costos de

producción, la inversión requerida, el rendimiento, la flexibilidad de operación y la

posibilidad de incluir mejoras a futuro. En función a factores como estos, se realiza

una selección de algunos de los componentes del sistema como se especifica en los

siguientes puntos.

4.2.1. Selección del Dispositivo 1-Wire® Incluido en el Módulo Electrónico de

Interfaz

Después de una extensa búsqueda, llevada a cabo por los desarrolladores,


73

entre los dispositivos 1-Wire® que ofrece la Maxim/Dallas Semiconductor Inc., se

llega a la conclusión de utilizar los canales de salida disponibles en los switches

direccionables. Dichos dispositivos, son concebidos para proporcionar señales

digitales en sus respectivos canales, sirviendo esto, para activar y desactivar otros

circuitos conectados a ellos. Lo anterior, unido a la capacidad de sensar el estado

lógico en el que se encuentra cada uno de sus canales, son la características

determinantes, por la cuales, son utilizados en una aplicación muy diferente a la

dispuesta por el fabricante del mismo, dentro de este proyecto.

Se plantea la posibilidad de mantener una comunicación con el Bus maestro

mediante el puerto de datos (Data) del switch 1-Wire®, pudiendo así, colocar en los

estados lógicos correspondientes a cada uno de los canales existentes, según

corresponda al dato que se requiere enviar desde el maestro a los dispositivos del bus.

Estos datos serán tomados por los circuitos conectados a los canales del switch.

La principal ventaja de realizar la conversión de los datos de entrada al

dispositivo (por el canal I/O 1-Wire®) a una señal digital sencilla en los canales PIO

(Pines de Entrada Salida) del switch, consiste en que el microcontrolador (circuito

conectado a los canales del switch) podrá captar los datos y los cambios lógicos sin

inconveniente alguno. Otra de las características, que justifica fuertemente la

utilización de esta arquitectura, radica en que se dispone de un número de

identificación (ROM) único para cada Módulo Electrónico de Interfaz para la


74

Comunicación (MEIC), el cual, poseen todos los chips de la red 1-Wire®. Mediante

este número de identificación, se puede realizar el reconocimiento del número de

elementos conectados al bus maestro, seleccionar un dispositivo específico del

sistema para mantener comunicación, conocer la familia y el uso de cada uno de los

elementos conectados al sistema.

A la hora de realizar la escogencia del switch 1-Wire® a utilizar, se tomó en

cuenta el número de canales de entrada/salida disponibles, la rapidez en la ejecución

de los cambios de estado, la capacidad para sensar el estado actual de cada canal y la

capacidad de mantener en memoria esta información mediante lach (unidad básica de

memoria). Fueron probados distintos dispositivos de este tipo para el diseño del

prototipo del Módulo Electrónico de Interfaz. Durante esta fase de selección, se

utilizaron los dispositivos DS2406 y DS2413 identificando su desempeño como

elemento de transición entre las etapas del hardware incluidas en el prototipo.

Obteniendo resultados de velocidad que no se ajustaron a los deseados, de acuerdo a

las necesidades del sistema.

Al analizar cada una las características mencionadas para la de selección del

dispositivo, se decide utilizar el integrado cuyo número de parte es DS2408,

fabricado por la empresa Dallas Semiconductor Inc. El mismo, posee 8 canales

direccionables de E/S, lo que permite el envío de un Byte por cada operación de

comunicación. Además, este posee una característica de gran importancia, ya que


75

cuenta con un terminal llamado “STRB” (Strobe), el cual puede ser configurado para

cumplir con la función de generar un pulso, cada vez que se produce una carga de

datos en los canales o cada vez que se lleva a cabo un chequeo del estado lógico de

los canales. Este canal resulta ideal para sincronizar la interrupción externa del

microcontrolador, lo cual, le permitirá tomar los datos (o enviarlos) en el momento

indicado y realizar las operaciones necesarias, una vez generada la interrupción.

Debido a la cantidad de canales que posee el DS2408, se requiere el empleo

de un PIC adicional de apoyo, como se ha mencionado anteriormente, ubicado en la

interfaz de hardware, el cual, se encargue: de recibir los datos provenientes del

dispositivo maestro mediante su conexión con el DS2408 y de comunicar las

variables disponibles en la iBOARD®, mediante una comunicación serial entre

microcontroladores.

4.2.2. Selección del Microcontrolador Incluido en el Módulo Electrónico de

Interfaz

Los microcontroladores disponen generalmente de una gran variedad de

dispositivos de entrada/salida, como convertidores de analógico a digital,

temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN.


76

Los microcontroladores más utilizados son los: AVR de ATMEL, ARM,

MSP430 y PIC de MICROCHIP. A continuación, se detallan las principales

diferencias entre ellos.

Los microcontroladores ARM “Microprocesador RISC Avanzado (en inglés,

Advanced RISC Machine) son dispositivos de altas prestaciones, con un núcleo RISC

de 16/32bits. El mercado de los ARM es uno de los que ha crecido más rápidamente

en cuanto a microcontroladores se refiere. Los precios de los ARM son similares a los

dispositivos de 8 bit, sin embargo, proveen mucho más poder y periféricos que

cualquier dispositivo de 8 bit.

El microcontrolador MSP430 es de muy poco consumo, con un núcleo de 16-

Bit RISC. Pueden correr hasta 8 Mhz y tiene un consumo de tan solo 250uA por

MIPS, lo cual lo hace perfecto para dispositivos portátiles. Estos microcontroladores

poseen una arquitectura Von Neuman, por lo tanto las instrucciones se toman de 1 a 4

bytes y utilizan de 1 a 6 ciclos de reloj.

Los microcontroladores PIC son unos de los más populares. Microchip tiene

cientos de diferentes microcontroladores desde los pequeños en encapsulados SOT23

hasta los 84-PLCC. Ellos pueden correr hasta 40Mhz y ejecutar instrucciones cada 4

ciclos de reloj.
77

Para el diseño de un sistema con microcontroladores se pueden elegir

dispositivos de una gran gama de fabricantes y así satisfacer la necesidad en cuestión.

Por consiguiente, es necesario establecer algunos criterios para la selección del

dispositivo; según la empresa ROSO C.A., se deben tomar en cuenta las siguientes

características para la selección de un microcontrolador:

1. Disponibilidad en el mercado local. Algunos microcontroladores son mas

comúnmente encontrados en las casas de electrónica que otros. No es conveniente

emprender un proyecto basado en cierto microcontrolador que no está disponible

en el mercado local ya que podría no satisfacer la demanda y detener el desarrollo

del proyecto.

2. Disponibilidad de información y herramientas de desarrollo. Actualmente la

mayoría de los fabricantes de microcontroladores ofrecen información suficiente

para entender la operación y funcionamiento de sus dispositivos. El punto débil de

algunos fabricantes es la pobre distribución de sus herramientas de desarrollo

(programadores, emuladores, software, etc.) o bien su elevado costo.

3. Existen individuos y/o empresas que poseen los recursos necesarios para adquirir

las últimas tecnologías disponibles, sin embargo, la mayoría prefiere ahorrar

recursos, por lo que el precio resulta un punto de importancia en la selección de

un fabricante de microcontroladores.

4. El modelo de microcontrolador específico que se debe elegir depende de la

aplicación, aunque se puede hacer juicios sobre la capacidad de un


78

microcontrolador tomando en cuenta su capacidad de memoria, la cantidad de

puertos de entrada y salida, los periféricos, la velocidad a la cual ejecuta las

instrucciones, entre otras.

Cumpliendo con lo anteriormente mencionado, se seleccionan los

microcontroladores PIC de MICROCHIP, por las siguientes características:

x Son económicos, en comparación con los fabricados por otras empresas. Los

dispositivos como el PIC16FXXX llegan a disminuir su valor cuando se compran

en grandes volúmenes.

x Se encuentra una gran gama de dispositivos, en el mercado nacional, con

diferentes tamaños de memorias y cantidad de periféricos.

x La empresa ROSO C.A cuenta con las herramientas de desarrollo para este tipo

de microcontroladores.

x Se adaptan perfectamente con el dispositivo 1-Wire® seleccionado.

x Existe una gran cantidad de información disponible, para el desarrollo de

proyectos con estos microcontroladores.

De entre la diversa gama de dispositivos microcontroladores fabricados por la

empresa MICROCHIP, se seleccionan aquellos que contienen un oscilador o reloj

interno, esto como requerimiento de la empresa y con el principal fin de evitar añadir

un componente que aumente el costo del Módulo Electrónico de Interfaz.

Adicionalmente, se limita la escogencia del microcontrolador a aquellos que poseen


79

un número de terminales acorde a los necesarios para establecer comunicación entre

iBOARD® y el switch 1-Wire® seleccionado. Por último, se restringe la selección del

microcontrolador a la disponibilidad en el mercado nacional y al costo del mismo.

Tomando en cuenta lo mencionado se selecciona el PIC16F628, debido a que

sus características se ajustan en gran medida a los requerimientos del sistema, además

existe disponibilidad del mismo en la empresa y como valor agregado a la selección

de este dispositivo, se resalta el hecho de que el mismo puede ser programado

haciendo uso de la herramienta BasicMicro IDE 5.2. Las instrucciones de alto nivel

provistas por esta herramienta, permiten programar al PIC de una manera más

sencilla y rápida que con otros lenguajes.

4.2.3. Comparación del Bus Serial del Sistema con Otros Similares

A pesar de que este proyecto está limitado la utilización de la red 1-Wire®

para establecer comunicación entre el PC y las iBOARD®, se realiza una breve

comparación entre los buses seriales que poseen características similares a las del 1-

Wire® a fin de resaltar, tanto las ventajas como las desventajas de utilizar esta

tecnología. En este proyecto, es necesaria la utilización de un protocolo de

comunicación mediante el cual, se realice la interacción entre los elementos

conectados a la red. En relación a esto, es necesario establecer la comparación entre

varios buses de tipo serial, con la finalidad de establecer las ventajas, desventajas y
80

similitudes que posee el bus seleccionado por la empresa para desarrollar el proyecto

(el bus serial 1-Wire®), con respecto a otros buses de la misma categoría o

naturaleza. Estableciendo una matriz gráfica, que abarca las características y

variaciones de los sistemas de bus serial comúnmente utilizados, obtenemos lo

mostrado en la Tabla D. En la misma, se tienen 16 posibles combinaciones, de las

cuales, sólo 4 corresponden a productos comercialmente conocidos.

DIRECCIONAMIENTO Y SELECCIÓN

SINCRONIZACIÓN POR PROTOCOLO LÍNEA DE SELECCIÓN IMPEDANCIA

1-Wire®,
LIN bus, INDETERMINADA
AUTO- SensorPath
SINCRONIZADA RS-485, LVDS,
CAN, USB 2.0,
FireWire DETERMINADA

LINEA DE RELOJ SPITM,


2 TM
I C, SMBus MICROWIRE INDETERMINADA
TM

TERMINACIÓN CONEXIÓN TERMINACIÓN


EN UNA LÍNEA DIFRENCIAL EN UNA LÍNEA
MODO DE TRANSMISIÓN

Tabla D: Tabla comparativa de características entre los buses comúnmente usados


Fuente: DALLAS/MAXIM Semiconductor Inc., nota de aplicación 3967

Escoger un bus de comunicaciones no es una tarea sencilla; además de la tasa

de transmisión, la secuencia de bits y el voltaje utilizado, es necesario prestar mucha

atención a algunos aspectos como (Ver Tabla D) la forma de realizar la selección de

los dispositivos periféricos (por hardware o por software), como se mantienen

sincronizados los dispositivos con el maestro (con una línea de reloj o mediante una
81

información incluida en la trama de datos), la manera en que se transmiten lo datos;

por una sola línea (alternando entre altos y bajos) o por dos líneas en conexión

diferencial (ambas líneas cambian su voltaje simultáneamente, pero opuestamente), si

los extremos de las líneas de comunicación son eléctricamente terminados mediante

una impedancia determinada (típico de los sistemas de señales diferenciales) o si

terminan en una simple línea solamente. Entre los buses similares al 1-Wire® se

encuentran: LIN Bus y Sensor PathTM y por lo tanto, es posible establecer una

comparación entre los mismos, como se puede observar en la Tabla E.

1-WIRE LIN BUS Sensor PATHTM


TAMAÑO DE LA En la tarjeta y puede llegar a
40m aprox. En la tarjeta
RED FÍSICA 30m aprox.
Disponibles controladores para
CONVERTIDORES Disponible para el Integrados Super-I/O
RS-232, I2C, USB y generales
DE RED puerto de pines de y puerto de
para puerto de pines de
(SOFTWARE) microcontroladores microcontroladores
microcontroladores
CONVERTIDORES Gratis para varias plataformas Disponible para
DE RED incluyendo los de microcontroladores No disponible
(HARDWARE) microcontroladores Freescale
Entre la línea de datos
FUENTE DE (comúnmente) y con fuente Entre las líneas de
Vcc
ALIMENTACIÓN local Vcc (en algunos datos
dispositivos)
Dependiente de los
VELOCIDAD DE Mas de 15kbps (estándar) o
Mas de 20kbps datos, mayor a
TRANSMISION 125kbps (en overdrive)
20kbps
No aplica,
RECONOCIMIENTO Mediante el comando de red
direccionamiento No soportado
EN LA RED “Search ROM”
por mensajes
Gran variedad de funciones de
SELECCIÓN DE Limitadas funciones
dispositivos, incluyendo Limitado a sensores
LAS FUNCIONES utilizadas en
números de serial, de voltaje y
DE LOS aplicaciones de
instrumentación, seguridad, temperatura y ADCs
DISPOSITIVOS Automoción
memorias, etc.
Tabla E: Tabla de características entre buses similares
Fuente: DALLAS/MAXIM Semiconductor, nota de aplicación 3967
82

Solo el SensorPath está limitado por las medidas de la tarjeta de las

aplicaciones, en cambio, bajo ciertas condiciones y utilizando un apropiado hardware

y software controlador de red, la distancia del bus 1-Wire® puede ser expandida

significativamente. Para las redes basadas en protocolos, solo son necesarios los

controladores de software para generar las formas de onda para la identificación y

direccionamiento un nodo esclavo en la red y para transmitir y recibir datos desde y

hasta un dispositivo. Cada elemento en la red 1-Wire® puede ser alimentado durante

la operación. Puede suministrarse remotamente la energía necesaria mediante una

línea de datos, este método es llamado “alimentación parásita”. La característica de

reconocimiento que posee la red 1-Wire® permite al maestro identificar los números,

tipos y direcciones de los dispositivos esclavos en la red

Dentro del grupo simple de los buses de bajo costo, el 1-Wire® posee la

mayor cantidad de funciones de dispositivos y convertidores de red, comparado con

el LIN Bus y el SensorPath. El I2C y SMBus (que se encuentran entre los de simple

línea) requieren una línea de reloj y una fuente de poder Vcc, además de la línea de

datos y la referencia de tierra, pero proporcionan una impresionante selección de

funciones de dispositivos.

Existen varias familias de chips 1-Wire® disponibles en el mercado, entre

ellos se pueden mencionar sensores de temperatura, de humedad, switches, memorias

EEPROM, contadores, relojes de tiempo real, etc. Todos los dispositivos compatibles
83

se agregan al bus como esclavos y en todos los casos, se debe disponer de un

elemento que cumpla con la función de maestro, el cual inicia todas las

comunicaciones con el resto de los componentes de la red.

Todos los dispositivos 1-Wire® contienen una identificación única de 64 bits

de longitud (identificador), que se compone de tres campos distintos: el código de

familia, el número de serie y el CRC. El identificador del dispositivo es de carácter

físico y se encuentra dentro del mismo. En el mismo se encuentra un byte que

representa el código de familia a la cual pertenece, que es usado para determinar el

tipo de dispositivo presente, y por consiguiente, el tipo de servicio que provee. La

dirección del dispositivo posibilita la unicidad en el direccionamiento y por tanto la

ubicación del mismo en la red, adicionalmente el código CRC se utiliza para proteger

los datos a transmitir, de los posibles errores.

Cuando una aplicación, que usa la red 1-Wire®, es ejecutada, no es requisito

esencial tener a disposición el número, el tipo y la dirección de los dispositivos

presentes, el proceso de descubrimiento de los dispositivos, permite al maestro el uso

del canal, de manera tal, que obtiene toda la información necesaria acerca de los chips

conectados. Una vez, que el maestro conoce la dirección, el tipo de familia y los

servicios provistos por el esclavo, comienza la interacción. No obstante, la selección

de dispositivos puede ser usada cuando se conoce el tipo de dispositivo y su

dirección, ahorrando tiempo en casos específicos.


84

La implementación de una aplicación, utilizando la red 1-Wire® como

método de interconexión entre dispositivos, resulta poco onerosa, cuando se compara

con otros buses importantes, esto es así, debido al bajo costo que poseen los circuitos

integrados 1-Wire®. Los costos de implementación en aplicaciones específicas, en

muchos casos se pueden convertir en factores limitantes para todos aquellos

desarrolladores que desean realizar aplicaciones a pequeña y mediana escala. De

igual manera, puede representar un inconveniente en el ámbito estudiantil, ya que es

sabido, que la mayoría de los estudiantes no cuentan con los altos presupuestos,

necesarios para la adquisición de ciertas tecnologías. Por lo tanto, la utilización de la

red 1-Wire® representa una ventaja, tanto para la empresa donde se desarrolla el

proyecto, como para los usuarios finales, los cuales, podrán contar con una alternativa

a la hora de realizar diversos proyectos en el área de automatización y control virtual.

4.3. FUNDAMENTOS DEL DISEÑO EN EL PROYECTO

4.3.1. Introducción

El diseño de la interfaz para la iBOARD®, consiste en un Módulo Electrónico

(Hardware) capaz de funcionar como traductor (mejor conocido como Driver) entre el

bus 1-Wire® y el microcontrolador PIC ATOM. Para ello, se consideró la utilización

de algunos de los CI 1-Wire® producidos por la Dallas Semiconductor.


85

4.3.2. De la Red 1-Wire®

La topología de la red 1-Wire® se apoya en una configuración tipo bus y con

un orden jerárquico de los dispositivos Maestro/MúltiplesEsclavos, con lo cual, se

deduce que es el dispositivo maestro quien controla el tráfico de los datos a través del

bus, es decir, se encarga de establecer la base de tiempo para la transmisión, así como

también, selecciona los dispositivos con los cuales establecerá la comunicación. Este

tráfico de información, se rige por los estándares de la red 1-Wire®, tanto para la

escritura, como para la lectura de los bits.

Todos los dispositivos que utilizan la red 1-Wire® deben cumplir a cabalidad

con los intervalos de tiempo (en inglés, time slots) establecidos por el protocolo (y

generados por el maestro), hecho por el cual, no es posible diseñar un programa en el

microcontrolador ATOM para implementar dicha forma de comunicación. Esto se

debe, a que los intervalos de tiempo manejados están por el orden de los

microsegundos (µs), lo que representa una limitación para el ATOM, ya que no puede

ejecutar todas las instrucciones necesarias en dicho tiempo. Un ejemplo claro, está en

que la duración del pulso de sincronización que el dispositivo maestro genera cada

vez que coloca un bit en el bus, ya que el mismo tiene una duración que puede variar

entre 1us y 15us. En las Figuras siguientes se puede observar el proceso de escritura

(Figura Nº 4.1) y lectura de 1 bit en el bus 1-Wire® (Figura Nº 4.2).


86

Figura Nº 4.1: Diagrama de tiempo en la escritura de un uno (1) en el bus.


Fuente: Libro de estándares de los iButton. “Book of DS19XX iButton Standards”.
Dallas/MAXIM (2.007)

Figura Nº 4.2: Diagrama de tiempo en la escritura de un cero (0) en el bus.


Fuente: Libro de estándares de los iButton. “Book of DS19XX iButton Standards”.
Dallas/MAXIM (2.007)
87

Figura Nº 4.3: Diagrama de tiempo del pulso de Reset en el bus.


Fuente: Libro de estándares del los iButton. “Book of DS19XX iButton Standards”
Dallas/MAXIM (2.007)

4.3.3. Del planteamiento inicial de la interfaz de comunicación

Con la implementación de un programa en el ATOM, que intente la

sincronización en forma directa con la red 1-Wire®, se presenta el inconveniente

relacionado a que tanto la velocidad de transmisión, como los tiempos de duración de

los cambios lógicos dentro de la trasmisión en el bus 1-Wire®, pueden variar

dependiendo de la cantidad de dispositivos conectados, impidiendo esto, la

generación de un algoritmo que se ajuste de manera eficaz a este tipo de variaciones.

De igual forma que no se podría realizar un algoritmo lo suficientemente

eficiente, como para lograr que el dispositivo maestro seleccione una sola iBOARD®

(de un conjunto de iBOARD®s conectadas) para mantener una comunicación estable


88

y sincronizada, debido a que las mismas no contienen un número único de

identificación que la diferencie de todas las demás.

El microcontrolador ATOM, posee la capacidad de comunicarse a través de

sus canales de E/S con dispositivos 1-Wire®, pero sólo en la calidad de maestro, es

decir, se encarga de realizar el pulso de reset (como una función diseñada desde su

fabricación) y de generar la base de tiempo (time slots) con los pulsos

correspondientes para recibir y enviar los datos. Entonces, si se quisiera conectar al

ATOM con otro dispositivo maestro (el PC), sería incompatible e imposible su

comunicación.

Para la lograr una comunicación eficiente entre la iBOARD® y la red 1-Wire®

se necesita un módulo de interfaz o traductor (Drive), el cual, incluye tanto

componentes de hardware, como de software, ubicándose entre el bus 1-Wire® y la

iBOARD®, como se muestra en la Figura Nº 4.4.

Modulo de interfaz

Bus 1-Wire

Figura Nº 4.4: Diagrama de Integración del Módulo de Interfaz con la iBOARD®.


Fuente: Díaz, W. y Maderer L. (2.007)
89

El módulo de interfaz puede ser incluido en el circuito impreso del iBOARD®

(obteniendo así, un instrumento muy completo), o bien en un módulo externo para

todas aquellas tarjetas pertenecientes a versiones anteriores.

4.3.4. De la arquitectura planteada para la interfaz de comunicación

Con la arquitectura planteada, se asegura que el procedimiento para el acceso

a las tarjetas iBOARD®, por parte del maestro (el Computador), pueda ser realizado

de forma similar, al ejecutado para acceder a cualquier otro dispositivo 1-Wire®.

Contando además con la seguridad, de que cada módulo de interfaz tendrá un número

único de identificación, pudiendo conectarse hasta 100 dispositivos en un mismo bus

(teóricamente, según los estándares y especificaciones del protocolo 1-Wire®), o

bien, tantos switchs pueda aceptar el protocolo 1-Wire® sin presentar errores.

Para la recepción de los datos por parte del dispositivo maestro, se realiza el

sensado de los canales del switch 1-Wire® en el módulo de interfaz, ya que su estado

lógico será modificado por el microcontrolador a conveniencia, de acuerdo a los bits

de información que se deseen trasmitir. Es decir, para la lectura de la información, el

maestro deberá enviar el comando a ejecutar por el dispositivo conectado al Módulo,

para luego determinar el estado de los canales, cuantas veces sea necesario hasta

completar la información requerida.


90

El proceso de reconocimiento, lectura, escritura y sincronización llevado a

cabo en el sistema se realizará a grosso modo, como lo indica el diagrama de flujo

de la Figura Nº 4.5:

INICIO DE LA
APLICACIÓN

RECONOCIMIENTO DE LOS
DISPOSITIVOS
CONECTADOS A LA RED

DISCRIMINAR CUALES DE LOS


DISPOSITIVOS, PERTENECEN A LA FAMILIA
DE LOS SWITCHES DIRECCIONABLES

AGRUPAR LOS SERIALES DE LOS


SWITCHES QUE PERTENEZCAN A UN
MODULO ELECTRÓNICO DE INTERFAZ

ASIGNAR UN TAGNAME A LOS


IBOARD ENCONTRADOS Y
AGRUPARLOS EN UN VECTOR

¿ESTABLECER
COMUNICACIÓN CON SI SELECCIONAR UN TAGNAME
UN DISPOSITIVO DISPONIBLE EN LA RED
LISTADO?

NO ENVÍA EL
COMANDO
“SINCRONIZAR”

NO ¿SALIR DEL ENVÍA EL


PROGRAMA? SI COMANDO
¿DESEA
“ENVIAR” Y
ENVIAR? UN BYTE DE
SI INFORMACIÓN
NO
FIN DEL ENVÍA EL
PROGRAMA COMANDO
“RECIBIR” Y SI ¿DESEA
RECIBE UN RECIBIR?
BYTE DE
INFORMACIÓN
NO

Figura Nº 4.5: Diagrama de flujo de los procedimientos


Fuente: Díaz W. y Maderer L. (2.007)
91

4.3.5. De la Interfaz en Detalle

El maestro detecta la presencia de dispositivos en la red mediante un pulso de

reset y a la vez, sincroniza los relojes internos de cada dispositivo con el propio,

luego, se producirán los pulsos de presencia de los elementos conectados y el maestro

será capaz de identificar a cada dispositivo mediante su número identificación ROM

de 64 bits, además, podrán enumerar los dispositivos conectados e identificar sus

familias. De esta forma, el maestro puede reconocer cuantos Módulos Electrónicos de

Interfaz se encuentran conectados al bus y podrá iniciar o mantener una

comunicación con cualquiera de ellos, con sólo realizar la selección del mismo

mediante el direccionamiento con su serial ROM de 64 Bits particular.

Se establece, para una correcta ejecución de la comunicación, que el maestro

debe enviar un dato o código, el cual, es interpretado por el dispositivo final como un

comando para ejecutar las rutinas de lectura, las rutinas de escritura o las rutinas de

sincronización. Mediante este comando, el dispositivo conectado al switch podrá

identificar, si en el siguiente intervalo de comunicación escribirá o leerá el estado de

los canales, para obtener o enviar respectivamente los datos de información.

Para sincronizar la transmisión de datos entre la iBOARD® y el maestro, se

hace uso de la interrupción por fuente externa disponible en el microcontrolador

ATOM por el terminal 21 “RB0/INT”, con la cual, se indica al programa en la

iBOARD®, que se requiere de su atención para llevar a cabo el proceso de recepción


92

o de envío de la información. En este proceso se hace uso de dos terminales del

microcontrolador ATOM, escogidos para cumplir con la función de Rx (Recepción) y

Tx (Envío), mediante los cuales, se acoplará con el Módulo Electrónico de Interfaz

para la Comunicación, MEIC.

4.3.6. De la integración de dispositivos

La integración entre los elementos del hardware del sistema, cumpliendo con

lo establecido en los fundamentos de diseño mencionados hasta esta parte del

documento, puede ser apreciada gráficamente en la Figura Nº 4,6.

Microcontrolador
16F628

Rx

DS2408 Tx

RTZ

Bus 1-Wire

Figura Nº 4.6: Diagrama de Integración del Hardware para la comunicación


Fuente: Díaz W. y Maderer L. (2.007)
93

En la gráfica anterior (Figura Nº 4.6) se observa que el Módulo Electrónico de

Interfaz se encuentra conectado al bus maestro y que dicho módulo consta de un

DS2408 y de un Microcontrolador PIC16F628, de manera que el maestro podrá

seleccionar al DS2408 deseado y mantener una comunicación con el módulo a través

del mismo. El maestro indicará el comando para establecer el estado lógico de todos

los canales, transmitiendo un código, que será reconocido en el programa del

microcontrolador PIC16F628, el cual, indicará las operaciones a realizar

seguidamente. Entre las operaciones posibles se encuentran: solicitud de la

identificación del producto (comando FAh), recepción de un Byte de información

(comando FCh), envío de un Byte de información (comando FFh) y la sincronización

de los contadores de envío y recepción (comando AAh).

El microcontrolador PIC16F628 será interrumpido por fuente externa debido a

los efectos del canal STROBE del DS2408, leyendo así, el comando a ejecutar e

identificando las rutinas correspondientes a dicho comando. Este realizará el envío de

información a la tarjeta iBOARD® mediante la comunicación serial, con la utilización

de un canal (Rx) y la recepción de la misma por el terminal que dispone de la función

“Receptor/Transmisor Universal Asíncrono” USART (en inglés, Universal

Asynchronous Receiver/Transmitter). Este proceso, permitirá al iBOARD® disponer

de los datos recibidos o enviar los requeridos por el Maestro, evitando al máximo la

disminución de sus capacidades, debido al empleo de un microcontrolador adicional.


94

En resumen, para incorporar la iBOARD® a la red 1-Wire® se empleó un

Módulo Electrónico de Interfaz para Comunicación, el cual, contiene un chip

DS2408; que recibe los comandos y datos del bus maestro y los envía al

microcontrolador PIC16F628. Entonces, este microcontrolador se encarga de

identificar el comando enviado, procesar las instrucciones relacionadas con el mismo

y posteriormente de solicitar o enviar los datos en forma serial a la iBOARD®

mediante dos canales de E/S que cumplirán funciones de transmisión y de recepción

de forma independiente (Comunicación Full Duplex).

4.4. TOPOLOGÍA DE LA RED DE COMUNICACIONES

La topología de conexión entre los elementos, es un factor sumamente

importante a la hora de establecer una red de comunicaciones, donde se produzca el

intercambio de información, ya que esto afectará en gran mediada las características

del sistema, como por ejemplo, la forma en que los dispositivos accederán al medio

común. En el caso particular de este proyecto, debido a que se utiliza un bus

comercial (el 1-Wire®) se hará uso de una topología de bus para la configuración e

instalación del sistema, en el cual, los dispositivos se encuentran conectados a una

única línea de datos común a todos; este esquema de conexión se puede observar

gráficamente en la Figura Nº 4.7.


95

Topología de red tipo Bus

Modulo de interfaz

Maestro

Convertido
r Modulo de interfaz

Modulo de interfaz

Modulo de interfaz

Figura Nº 4.7: Figura que muestra la topología del sistema


Fuente: Díaz W. y Maderer L. (2.007)

En la figura superior se evidencia la presencia de un dispositivo gestor de los

recursos del sistema (Maestro) representado por el computador personal, el cual, se

encarga de manejar el intercambio de las variables presentes en las distintas

iBOARD® conectadas. El maestro será el encargado de disponer los espacios de

tiempo, en que se podrá establecer y mantener la rutina de comunicación con un

determinado dispositivo de la red. El maestro, es capaz de identificar los dispositivos

conectados al sistema, discriminar cuantos de ellos corresponden a los módulos para

las iBOARD® mediante la lectura de la identificación del producto “Product ID” y

manejar el intercambio de los datos con los mismos, pudiendo así, seleccionar

cualquiera de las iBOARD® disponibles.


96

4.5. DESCRIPCIÓN DE LOS DISPOSITIVOS IMPLEMENTADOS

4.5.1. Descripción de las Características del dispositivo DS2408

El DS2408 en un chip 1-Wire® con 8 canales de entradas/salidas

programables. Los pines de I/O proporcionan una resistencia a la salida de 100 ohm.

Tiene un protocolo robusto que asegura, que los cambios en los canales ocurran libres

de errores. La salida STROBE puede ser usado para registrar los estados lógicos de

los canales en un circuito externo como un convertidor D/A o un bus de datos en el

microcontrolador. Los terminales de conexión de este dispositivo se encuentran

descritos en la Tabla F.

El dispositivo DS2408 posee las siguientes características:

x Ocho canales programables.

x Actividad individual para cada Latch de captura

x Terminal de salida STROBE que sincroniza los estados lógicos de I/O con un

circuito externo de lectura/escritura.

x Serial de registro único ROM asignado desde fábrica, con una longitud de 64

bits, lo que garantiza la selección de un dispositivo en particular y libre de

errores.

x Puede comunicarse con dispositivos mediante una señal digital simple a

15.3kbps. o a 100kbps usando el protocolo 1-Wire®.


97

TERMINALES
FUNCIÓN
DEL DS2408
2 Canal 0
3 Fuente de poder opcional
4 Interfaz 1-Wire®
5 Tierra
7 Canal 7
8 Canal 6
9 Canal 5
10 Salida STROBE
11 Canal 4
12 Canal 3
13 Canal 2
14 Canal 1

Tabla F: Descripción de los Terminales del DS2408


Fuente: Díaz W. y Maderer L. (2.007) basado en la hoja de datos del Integrado

El diagrama de flujo correspondiente a la operación y al acceso de este

dispositivo se encuentra disponible para su revisión en el segmento de los anexos de

este documento, en el cual, se proporciona una muestra un fragmento de la hoja de

datos diseñada por el fabricante para el dispositivo DS2408.

4.5.2. Descripción de las Características del microcontrolador PIC16F628

El PIC 16F628 incorpora tres características importantes como: procesador tipo

RISC (Procesador con un Conjunto Reducido de Instrucciones), procesador

segmentado y Arquitectura Harvard.


98

Con estos recursos el PIC es capaz de ejecutar instrucciones solamente en un

ciclo de instrucción. Con la estructura segmentada se pueden realizar

simultáneamente las dos fases en que se descompone cada instrucción, ejecución de

la instrucción y búsqueda de la siguiente. La separación de los dos tipos de memoria

son los pilares de la arquitectura Harvard, esto permite acceder en forma simultánea e

independiente a la memoria de datos y a la de instrucciones. El tener memorias

separadas permite que cada una tenga el ancho y tamaño más adecuado. Así en el PIC

16F628 el ancho de los datos es de un byte, mientras que la de las instrucciones es de

14 bits.

Características principales:

x Conjunto reducido de instrucciones (RISC). Solamente 35 instrucciones.

x Oscilador interno de 4MHz

x Las instrucciones se ejecutan en un sólo ciclo de máquina excepto los saltos (goto

y call), que requieren 2 ciclos. Aquí hay que especificar que un ciclo de máquina

se lleva 4 ciclos de reloj, si se utiliza el reloj interno de 4MHz, los ciclos de

máquina se realizarán con una frecuencia de 1MHz, es decir que cada instrucción

se ejecutará en 1µs.

x Opera con una frecuencia de reloj de hasta 20MHz (ciclo de máquina de 200ns).

x Memoria de programa: 2048 locaciones de 14 bits.

x Memoria de datos: Memoria RAM de 224 Bytes (8 bits por registro).


99

x Memoria EEPROM: 128 Bytes (8 bits por registro).

x 16 Terminales de I/O que soportan corrientes de hasta 25 mA

x 3 Temporizadores

x Módulos de comunicación serie, comparadores, PWM.

Otra característica de los PICs es el manejo de los bancos de registros. En línea

general, los registros se clasifican como de uso general y de uso específico o de

funciones especiales. Los registros de uso general pueden ser usados directamente por

el usuario, sin existir restricciones. Pueden servir para almacenar resultados que se

reciben desde el registro W (acumulador), datos que provienen de las puertas de

entradas, etc. Los registros de uso específicos no pueden ser usados directamente por

el usuario, estos registros controlan prácticamente todo el funcionamiento del

microcontrolador. La descripción de los terminales del PIC16F628 se muestra en la

Figura Nº 4.9.

Figura Nº 4.9: Figura que muestra los terminales del PIC16F628


Fuente: Díaz W. y Maderer L. (2.007)
100

Descripción de los puertos del PIC16F628

PORTA RA0-RA7:

x Los terminales RA0-RA4 y RA6–RA7 son bidireccionales y manejan señales TTL.

x El terminal RA5 es una entrada Schmitt Trigger que sirve también para entrar en el

modo de programación cuando se aplica una tensión igual a Vpp.

x El terminal RA4 puede configurarse como reloj de entrada para el contador TMR0

x Los pines RA0-RA3 sirven de entrada para el comparador analógico.

PORTB RB0-RB7:

x Los terminales RB0-RB7 son bidireccionales y manejan señales TTL.

x Por software se pueden activar las resistencias de pull-up internas, que evitan el uso

de resistencias externas en caso de que los terminales sean entradas.

x El terminal RB0 se puede utilizar como entrada de pulsos para provocar una

interrupción externa

x Los pines RB4-RB7 están diseñados para detectar una interrupción por cambio de

estado.

Otros terminales:

x VDD: terminal de alimentación positiva. De 2 a 5,5 Vcc

x VSS: terminal de alimentación negativa. Se conecta a tierra o a 0 Vcc


101

x MCLR: Master Clear (Reset). Si el nivel lógico de este terminal es bajo (0 Vcc),

el microcontrolador permanece inactivo.

x OSC1/CLKIN: Entrada de oscilador externo.

x OSC2/CLKOUT: Salida del oscilador. El PIC 16F628 dependiendo de cómo se

configure puede proporcionar una salida de reloj por medio de este terminal.
CAPITULO V

SOFTWARE DEL MÓDULO ELECTRÓNICO DE INTERFAZ PARA LA


COMUNICACIÓN

5.1. INTRODUCCIÓN

El presente capítulo expone lo referente al desarrollo de los programas de

aplicación que se incluyen en la iBOARD®, Módulo Electrónico de Interfaz para la

Comunicación MEIC y en el control ActiveX desarrollado para comunicar las tarjetas

iBOARD® con la red 1-Wire®.

Para la utilización del Sistema por parte del usuario final, se enfocó el proceso

de desarrollo de tal forma, que el producto a obtener resultara lo más práctico y

sencillo de utilizar, con lo cual, el usuario realizará sus propias aplicaciones sin

mayores inconvenientes. Para la utilización del sistema, es necesario disponer de

ciertos elementos como sistemas que permitan la adquisición y manejo de los datos

(como las tarjetas iBOARD®), los Módulos de Interfaz que permitan la

Comunicación de cada tarjeta con la red, una red de uno o más dispositivos con bus

1-Wire®, un computador personal (PC), un software de control para la red (Control

ActiveX iboard_control) y una aplicación de software que permita al usuario una

visualización y manipulación de los datos de una manera amigable. La programación

o elaboración del software del sistema, incluyendo los programas cargados en los
103

dispositivos de interfaz y la aplicación de control de red, se llevó a cabo en diversas

etapas del desarrollo del proyecto. Se realizaron un gran número de modificaciones,

transformaciones y mejoras a medida que surgieron ideas más eficaces para realizar

las operaciones necesarias, permitiendo cumplir con los requerimientos establecidos.

5.2. DISEÑO DEL SOFTWARE DEL SISTEMA

El software desarrollado para el funcionamiento correcto del sistema está

formado por tres componentes; el primero es el programa incluido en el Módulo

Electrónico de Interfaz para la Comunicación (en adelante, MEIC), específicamente

en el microprocesador PIC16F628; el segundo constituido por el programa incluido

en microprocesador PIC16F876 de la tarjeta iBOARD® y el tercero es el control

ActiveX “iboard_Control” situado en el Computador Personal (PC). A continuación,

se provee una explicación básica de las propiedades y la secuencia que poseen cada

uno de los programas para lograr el funcionamiento de la red según los objetivos

planteados. Se proporcionan los diagramas de flujo de cada programa, además se

presenta el pseudocódigo como recurso adicional para el entendimiento del mismo y

finalmente se tiene el código incluido en cada una de las etapas de hardware según el

lenguaje utilizado por cada compilador.


104

5.2.1. SOFTWARE EN EL MICROCONTROLADOR PIC16F876 DE LA

IBOARD®

5.2.1.1. Diagrama de Flujo del Programa en la iBOARD®

En la Figura Nº 5.1 se muestra el diagrama de flujo donde se indican los

procesos realizados por la porción de código que tiene que incluirse en la iBOARD®.

Figura Nº 5.1: Diagrama de Flujo del Programa en la iBOARD


Fuente: Díaz W. y Maderer L. (2007)
105

5.2.1.2. Pseudocódigo del Algoritmo del Programa en la iBOARD®:

Configuración de la interrupción
Configuración con flanco de subida
Deshabilitación de la interrupción externa
Declaración de variables y constantes
Declaración de variables y constantes de la comunicación 1-Wire®
Apartado para la declaración de variables y constantes del usuario
Pausa de 1000ms
Ejecución de los comandos de la aplicación de usuario
Habilitación de la interrupción externa
Rutina de la interrupción externa (RUT1_WIRE)
Deshabilitar interrupción externa
Recibe en forma serial por PINRX1_WIRE el comando a ejecutar
Si el comando recibido es:
Comando enviar datos CMD_ENVIAR (FE)
Envía en forma serial por PINTX1_WIRE un dato del vector
de datos, de la posición indicada por la variable
CONT1_WIREA
Si la variable CONT1_WIREA es:
Menor que NBYTES1_WIREA
Aumenta CONT1_WIREA una unidad
Mayor o igual a NBYTES1_WIREA
Inicializa en 0 a CONT1_WIREA
Comando recibir datos CMD_RECIBIR (FC)
Recibe en forma serial por PINRX1_WIRE el dato y lo guarda
en del vector de datos, en la posición indicada por la
variable CONT1_WIREB
Si la variable CONT1_WIREB es:
Menor que NBYTES1_WIREB
Aumenta CONT1_WIREB una unidad
Mayor o igual a NBYTES1_WIREB
Inicializa en 0 a CONT1_WIREB.
Comando Sincronizar CMD_SINC (AA)
Inicializa en 0 el CONT1_WIREA
Inicializa en 0 el CONT1_WIREB
Devuelve el control al programa del usuario

El código del programa a incluir en la iBOARD® se encuentra disponible

para su revisión en el apéndice A este proyecto.


106

5.2.1.3. Descripción del Programa de la iBOARD®

El programa incluido en la tarjeta iBOARD® cumple con las funciones de

proveer los datos solicitados por la red, recibir los datos entrantes desde la red 1-

Wire® y ejecutar los comandos relacionados con la sincronización del sistema. Para

el correcto funcionamiento del sistema, el usuario debe incorporar esta porción de

código dentro del programa de aplicación de la tarjeta, en otras palabras, debe colocar

todos los comandos de su aplicación particular en los espacios identificados como

“Variables del programa de usuario” y “Programa de Usuario”.

La porción de código incluida en el programa de la iBOARD® le permite al

usuario disponer de un vector de datos a enviar (VECDATOS1_WIREE) y otro

vector de datos a recibir (VECDATOS1_WIRER), cuya capacidad se encuentra

limitada por defecto a 8 Bytes de información. Con la utilización de estos vectores de

datos el usuario podrá, por ejemplo: compartir con el maestro de la red los valores de

las conversiones analógicas realizadas en cualquiera de sus canales y/o los estados de

sus entradas o salidas y podrá recibir datos necesarios en el programa o simplemente

el nuevo estado de sus terminales. Con respecto a la longitud de la trama de los datos,

la misma es determinada por el usuario, el cual, tomará la cantidad necesaria de datos

dentro de cada vector, pudiendo así tener tramas de 8, 16, 24, 32, 40, 48, 56 y 64

Bytes tanto para envío como para recepción. El usuario define cuantas posiciones

dentro del vector de datos enviará y cuantas recibirá, a través de las variables
107

“NBYTES1_WIREA” (en envío) y “NBYTES1_WIREB” (en recepción).

El programa del usuario será ejecutado continuamente dentro del

microcontrolador PIC16F876 hasta que se produzca una interrupción externa,

entonces, se recibirá un comando que puede ser: “CMD_ENVIAR” (254 dec),

“CMD_RECIBIR” (252 dec) y “CMD_SINC” (170 dec), con el cual se realizará la

acción requerida. Al ejecutar el comando CMD_SINC (sincronizar con la red) los

contadores de envío y recepción serán reiniciados, por lo tanto, después de realizar

una sincronización, la red puede requerir o suministrar tantos datos o Bytes de

información como se desee, de acuerdo a los valores máximos de posiciones

disponibles dentro de cada vectores. El usuario debe ejecutar el comando sincronizar

si desea solicitar o enviar el valor de la primera posición dentro de los vectores,

garantizando el no incurrir en errores de interpretación en los datos transportados.

La programación del PIC16F876 fue realizada utilizando la función de

programador disponible en la iBOARD®. Figura Nº 5.2.

Figura Nº 5.2: Fotografía del proceso de programación del programa en la iBOARD


Fuente: Díaz W. y Maderer L. (2007)
108

5.2.2. SOFTWARE DEL MÓDULO ELECTRÓNICO DE INTERFAZ PARA


LA COMUNICACIÓN 1-WIRE® (MEIC)

5.2.2.1. Diagrama de Flujo del Programa en el MEIC

Figura Nº 5.3: Diagrama de Flujo del Programa Principal en el


PIC16F628 del MEIC
Fuente: Díaz W. y Maderer L. (2007)
109

INICIO RUTINA
INTERRUPCION

DESHABILITA INTERRUPCIONES
Y AUMENTA EN UNO EN
CONTADOR DE INTERRUPCIONES

NO SI HAB=0 Y
¿BANDERA HAB=0 ¿BANDERA
CONTADOR DE
Ó HAB=2? HAB=1?
INTERRUPCIONES=0

SI NO

CONVERTIR LOS 8 PINES


DE COMUNICACIÓN EN
ENTRADAS Y OBTENER HAB=0 N=N+1 Y
SU ESTADO CONTADOR DE
INTERRUPCIONES = 1

GUARDA COMO
COMANDO RECIBIDO
DEL MAESTRO EL HAB=0
ESTADO DE LOS PINES
COMANDO
DE COMUNICACIÓN
RECIBIDO = 250

SI ¿BANDERA NO ¿BANDERA NO
FLAG=1? FLAG=2?
¿N•2?
NO
SI
GENERA
SI
INTERRUPCIÓN
EN LA IBOARD FLAG = 0

HAB=0 N=0
DATO RECIBIDO COMANDO=0
= COMANDO CONTADOR DE
RECIBIDO INTERRUPCIONES=0

COLOCA EN
EL BUFFER DE RETORNO A
SALIDA EL PROGRAMA
COMANDO PRINCIPAL
RECIBIDO

DATO=0 Y
BANDERA FLAG=0

Figura Nº 5.4: Diagrama de Flujo del Programa de la Interrupción en el


PIC16F628 del MEIC
Fuente: Díaz W. y Maderer L. (2007)
110

5.2.2.2. Pseudocódigo del Algoritmo del Programa en el MEIC

Configuración de la interrupción
Configuración con flanco de subida
Deshabilitación de la interrupción externa
Declaración de variables y constantes
Declaración de variables y constantes de la comunicación 1-Wire®
Pausa de 200ms
Configuración de la USART
Configuración a 9600 baudios
Configuración de los pines de entrada salida
Como salida al Pin A3 y Como entrada a los PINES_I/O (A7 A6 A1 A0 B7 B6 B5 B4)
Establece a la salida A3 en alto
Se inicializan las variables
FLAG=0 FLAG2=0 CONT1=0 CONT2=1 CONT3=0 DATO=0 HAB=0
DATOWORD=0 DATA “IBO”
Deshabilita las interrupciones externas
EJECUCIÓN DE LA APLICACIÓN PRINCIPAL
Examina el buffer de la USART en busca de los datos de entrada, si:
Existen datos en el buffer:
Realizar una entrada Serial de datos Por el PIN de la USART
Guarda los datos en la variable DATOAENVIAR
Borra el buffer de entrada
No existen datos en el buffer:
Ejecuta lo contenido en la etiqueta NADA_EN_BUFFER
Etiqueta NADA_EN_BUFFER
Si CONT1 es mayor o igual a CONT2 y HAB=0
Deshabilita la interrupción externa
Hace a CONT1=0 y CONT2=1
Si DATO es FF y FLAG es 2
Hace FLAG=2
Genera la interrupción en la IBOARD por el PIN A3
Envía en forma serial el COMANDO ENVIAR
Configura como salidas a los PINES_I/O
Coloca a los PINES I/O con los valores de DATO2
Hace a HAB=1
Aumenta en uno a la variable MODO
Si DATO es FA
Si FLAG2 es 0
Cambia el estado de la salida A2
Hace a FLAG2=1
Cambia el estado de la salida A2
111

Lee de la EEprom la identificación del dispositivo (IB)


Guarda el identificador en la variable DATO2
Configura como salidas a los PINES_I/O
Hace a HAB=3
DATO es FC
Hace a FLAG=1 y HAB=2
DATO es AA
Hace FLAG=0 y HAB=0
Genera la interrupción en la IBOARD por el PIN A3
Envía en forma serial el comando SINCRONIZAR
Borra el Buffer de salida de la USART
Habilita la interrupción externa
RUTINA DE LA INTERRUPCIÓN EXTERNA RUT1_WIRE
Aumenta el CONT1 en uno
Si HAB es igual a 0 o 2
Configura entradas a los PINES_I/O
Guarda el dato de entrada en la Variable DATOWORD
Iguala DATO=DATOWORD.LOWBYTE
Si FLAG es igual a 1
Genera interrupción en IBOARD por el PIN A3
Envía en forma serial el comando RECIBIR
Borra el buffer de salida de la USART
Envía en forma serial la variable DATO
Borra el buffer de salida de la USART
Hace a DATO=0 y FLAG=0
Si FLAG es igual a 2
Hace a FLAG=0
Hace a HAB=0
Si HAB es igual a 1
Hace a HAB=0
Hace a CONT1=0
HAB no es alguno de los valores anteriores
Hace a HAB=0
Aumenta CONT3 en uno
Hace CONT1=1
Hace DATO=FAh
Si CONT3 es mayor o igual a 3:
Hace a HAB=0
Hace a CONT1=3
Hace a CONT3=0
Hace a DATO=0
Hace a FLAG2=0
Retorna a la aplicación principal
112

5.2.2.3. Descripción del Programa en el PIC16F628 del MEIC

El programa incluido en el MEIC es totalmente transparente al usuario, este

tiene como función: proveer los datos solicitados por el maestro de la red 1-Wire®

originarios de la tarjeta iBOARD®, así como recibir los datos entrantes desde la red

1-Wire® y ejecutar los comandos relacionados con la sincronización, identificación

del producto y comunicación del sistema. Para que dicho sistema funcione

correctamente, el usuario debe interconectar el MEIC con la tarjeta iBOARD® e

incorporar en esta última, una porción de código dentro del programa de aplicación

de la tarjeta.

El código incluido en el MEIC, se encarga, en un ciclo infinito, de verificar el

estado del buffer de entrada de su puerto de comunicaciones UART, así este siempre

espera algún dato que envié la iBOARD®. Al momento de que el maestro de la red 1-

Wire®, solicite un Byte de dato al MEIC, este interrogará a la iBOARD® enviándole

el comando (FE) y acto seguido recibirá por parte de la iBOARD® un Byte, que

luego enviará al maestro a través de la red 1-Wire®. Si el maestro decide enviar un

dato a la iBOARD®, el MEIC provocará un interrupción en la iBOARD® para lograr

que esta dedique la atención en recibir el dato que el MEIC intentará enviar, para

lograr esto, una vez que el MEIC ha interrumpido a la iBOARD®, esta recibe el

comando (FC) y consecutivamente el dato que se desea enviar.


113

En ocasiones, el recibir y enviar datos consecutivamente, no es suficiente para

asegurar que estos llegan en un orden correcto (se dice que se ha perdido la

sincronización). Por esta razón, el MEIC dispone de un comando que permite al

usuario sincronizar los datos que se enviarán o recibirán desde el maestro a la

iBOARD® y viceversa. Solo es necesario incluir, previamente, una pequeña porción

de programa en la iBOARD® y enviar desde el maestro el comando (AA) para

sincronizar los datos que se intercambiarán entre la iBOARD® y el maestro en la red.

Para asegurar, que el dispositivo que ha respondido, es ciertamente una

iBOARD®, el MEIC dispone de una función que se encarga de enviar una cadena de

caracteres que lo identifican como una iBOARD® en la red 1-Wire®. Para utilizar

esta función solo es necesario enviar al MEIC el comando (FA) y luego recibir la

cadena “IB” para asegurar que el dispositivo es un iBOARD®. El MEIC, dispone de

una función que lo hace sumamente interesante al usuario, la cual le permite al mismo

poseer una identificación que hace única a cada iBOARD® en la red, logrando de

esta manera que cada iBOARD® conectada al maestro tenga una dirección

específica.

El programa incluido en el microcontrolador PIC16F628 del MEIC, se incluye

para su revisión en el Apéndice B del presente proyecto. En la Figura Nº 5.5 se

muestra el proceso de programación del PIC16F628 SOIC con el código del

programa mencionado.
114

Figura Nº 5.5: Fotografía del proceso de programación del PIC 16F628 SOIC
Fuente: Díaz W. y Maderer L. (2.007)

5.2.3. SOFTWARE PARA ESTABLECER LA COMUNICACIÓN EN LA RED.


ACTIVEX “IBOARDCONTROL.OCX”

5.2.3.1. Cómo Utilizar el ActiveX iboardcontrol.ocx

Para hacer uso del iboard_control.ocx en Visual Basic 6 lo primero que se

debe hacer es abrir un nuevo proyecto “exe estandar”. Una vez que se ha

seleccionado el tipo de proyecto, se desplegará una ventana que contiene un

formulario, sobre el cual, se hará referencia de uso del control diseñado. Para

comenzar antes de incluir el control al formulario, es necesario agregarlo a la paleta

de controles de Visual Basic 6, para ello es necesario hacer clic con el botón derecho

del Mouse y luego sobre el item “componentes…”. (Figura Nº 5.6)


115

Figura Nº 5.6: Agregando El OCX al Formulario


Fuente: Díaz W. y Maderer L. (2.007)

Luego de esto, se debe seleccionar el componente de una larga lista de

opciones, según la Figura Nº 5.7.

Figura Nº 5.7: Seleccionar el Componente iboardcontrol.ocx


Fuente: Díaz W. y Maderer L. (2.007)

Una vez incluido en control en la paleta de Visual Basic, se debe hacer clic

sobre el icono del mismo e insertarlo en el formulario. Ahora que el control se

encuentra incluido en el formulario y es posible ver las páginas de propiedades del

mismo. Una de las característica más importantes de las páginas de propiedades del
116

iboard_control.ocx es brindarle la posibilidad al usuario de identificar: primero el

puerto y el tipo de convertidor 1-Wire® conectado al puerto (si existiese) y segundo,

el número de iBOARD® conectadas a la red, sin necesidad de que el usuario escriba

la una línea de código (Observe Figura Nº 5.8).

Figura Nº 5.8: Páginas de Propiedades del iboardcontrol.ocx


Fuente: Díaz W. y Maderer L. (2.007)

Otra característica de alta importancia del iboard_control.ocx, es la posibilidad

de referirse a las iBOARD® en la red, en la forma que al usuario mejor le convenga,

en otras palabras, el usuario puede llamar a cada iBOARD® en la red con un

TagName a conveniencia como lo muestra la Figura Nº 5.8 en la parte derecha.

Por último, en tiempo de diseño, el iboardcontrol.ocx cuenta con un conjunto

de métodos, eventos y propiedades totalmente amigables al usuario, que permiten al

mismo desarrollar aplicaciones complejas en donde se incluyan a la iBOARD® en


117

una red 1-Wire®, como se muestran en las siguientes figuras. A continuación se

ofrece una descripción detallada de los mismos.

Figura Nº 5.9: Pantallas que muestran los métodos eventos y


las propiedades del iboardcontrol.ocx
Fuente: Díaz W. y Maderer L. (2.007)

5.2.3.2. Diagramas de Flujo de las Funciones del Programa

A continuación se muestran los diagramas de flujo de cada una de las

funciones incluidas dentro del código del Control ActiveX, permitiendo de esta

manera ofrecer un esquema gráfico para un mejor entendimiento de la secuencia

lógica de dicho programa.


118

5.2.3.2.1. Función Auto Buscar Puerto()

Figura Nº 5.10: Diagrama de Flujo de la Función Auto buscar Puerto


Fuente: Díaz W. y Maderer L. (2.007)
119

5.2.3.2.2. Función Inicializar()

Figura Nº 5.11: Diagrama de Flujo de la Función Inicializar()


Fuente: Díaz W. y Maderer L. (2.007)
120

5.2.3.2.3. Función Sincronizar()

Figura Nº 5.12: Diagrama de Flujo de la Función Sincronizar()


Fuente: Díaz W. y Maderer L. (2.007)
121

5.2.3.2.4. Función EnviarByte()

INICIO

Llamada a funcion
ConvertirSerial(Serial)

Llamada a funcion
Tag_Nameto_Seriall(Serial)

NO
Control
Habilitado
?
SI

Shandle=-1

Sesión Llamada a
Llamada a funcion
Valida funcion
TMExtendedStartSession() NO SI
? TMSETUP()

Setup
Llamada a funcion SI
=
TMTOUCHRESET()
1?
NO
Llamada a funcion
TMROM(SERIAL) Llamada a funcion
CodigodeErrores()

Llamada a funcion
TMTOUCHBYTE(5A,FC,NOT(FC),FF)

Llamada a funcion
TMTOUCHBYTE(Dato,NOT(Dato),FF)

Llamada a funcion
TMENDSESSION()

FIN

Figura Nº 5.11: Diagrama de Flujo de la EnviarByte()


Fuente: Díaz W. y Maderer L. (2.007)
122

5.2.3.2.5. Función LeerByte()

INICIO

Llamada a funcion
ConvertirSerial(Serial)
NO

Control
Habilitado
? SI

Shandle=-1

Sesión Llamada a
SI
Valida funcion
? TMSETUP()

NO
Llamada a funcion
TMExtendedStartSession()
Setup
SI
=
Llamada a funcion
TMTOUCHRESET() 1?
NO

Llamada a funcion
Llamada a funcion CodigodeErrores()
TMROM(SERIAL)

Llamada a funcion Llamada a funcion


TMTOUCHBYTE(5A,FF,NOT(FF),FF) Retardo(0.08)

Llamada a funcion Llamada a funcion


TMROM(SERIAL) TMTOUCHRESET()

Llamada a funcion
TMTOUCHBYTE(F5)
DATO=TMTOUCHBYTE(FF)

Llamada a funcion
LEERBYTE=DATO
TMENDSESSION()

FIN

Figura Nº 5.12 Diagrama de Flujo de la Función LeerByte()


Fuente: Díaz W. y Maderer L. (2.007)
123

5.2.3.2.6. Función ReadSwitchNew()

Figura Nº 5.13: Diagrama de Flujo de la Función ReadSwitchNew()


Fuente: Díaz W. y Maderer L. (2.007)
124

5.2.3.2.7. Función BuscarSerial()

INICIO

NO
Control
NO
Habilitado BuscarSerial=FALSE
J
SI ?
<
N#chps-1? SI

Shandle=-1
Seriales=” ”

J=0

BuscarSerial Sesión Llamada a


SI
= Valida funcion
TRUE ? TMSETUP()
SI NO
J=J+1
N#chips Llamada a funcion
> TMExtendedStartSession()
NO
0?
1
Flag Flag=0 Setup
NO SI
> N#Iboard=0 =
0? VectorTemporal=0 1?
NO
SI
N#Iboard=
N#Iboard+1 Llamada a funcion
Flag= TMNEXT() CodigodeErrores()

ArregloTemporal de seriales iboard


= ArregloTemporal=
ArregloTemporal de seriales serial del chip
NO encontrado

SI Productid(serial(J))
TRUE?
Byte 1 del
ArregloTemporal
= NO
41?
Llamada a funcion
Inicializar(serial(J))
SI

Seriales=Convertir a
string(Arreglo Temporal)
N#chips=N#chips+1
1
Seriales=Arreglo
Temporal de
seriales iboard

Llamada a funcion
TMENDSESSION()

FIN

Figura Nº 5.14: Diagrama de Flujo de la Función BuscarSerial()


Fuente: Díaz W. y Maderer L. (2.007)
125

5.2.3.2.8. Función ConvertirSerial()

Figura Nº 5.15: Diagrama de Flujo de la Función ConvertirSerial()


Fuente: Díaz W. y Maderer L. (2.007)
5.2.3.2.9. Función Retardo()
INICIO

NuevoTiempo=TiempodelSistema
+Tiempodeseado

Nuevo Tiempo NO
>
Tiempo del Sistema

SI

Ejecutar Eventos

FIN

Figura Nº 5.16: Diagrama de Flujo de la Función Retardo()


Fuente: Díaz W. y Maderer L. (2.007)
126

5.2.3.2.10. Función CodigodeErrores()

INICIO

Errores
SI
= Errores=11
0?
NO

Errores
SI SI
= Errores=12
2?

NO

Errores
SI
= Errores=13
3?
NO

Errores
= Errores=14
4?
NO

Errores
SI
= Errores=15
-200?

Errores
SI
< Errores=16
0?
NO

Errores=17

Activar evento Activar evento


CuandoError() CuandoError()

FIN

Figura Nº 5.17: Diagrama de Flujo de la Función CodigodeErrores()


Fuente: Díaz W. y Maderer L. (2.007)
127

5.2.3.2.11. Función Productid()

INICIO

Control
Habilitado
NO
?

SI
Llamada a funcion
ConvertirSerial(Serial)

N=0

N=N+1

Productid=
NO
False y N<4
? Llamada a funcion
TMENDSESSION()
SI
Shandle=-1

Sesión SI Llamada a
Llamada a funcion NO
TMExtendedStartSession()
Valida funcion
? TMSETUP()

Setup
Llamada a funcion
SI =
TMTOUCHRESET()
1?

NO
Llamada a funcion
TMROM(SERIAL) Llamada a funcion
CodigodeErrores()

Llamada a funcion
TMTOUCHBYTE(5A,FA,NOT(FA),FF)

Llamada a funcion
TMTOUCHRESET() Productid=FALSE

NO
Llamada a funcion
Dato= Llamada a funcion
TMROM(SERIAL)
73? DATO=ReadSwitchNew(Serial)
SI

Llamada a funcion
TMTOUCHBYTE(5A,FF,NOT(FF),FF)
Dato=
SI 66?

Llamada a funcion NO
DATO=ReadSwitchNew(Serial)

Productid=TRUE Productid=FALSE

FIN

Figura Nº 5.18: Diagrama de Flujo de la Función Producid()


Fuente: Díaz W. y Maderer L. (2.007)
128

5.2.3.3. Descripción de los Métodos, Propiedades y Eventos del ActiveX


iboard_control.ocx

5.2.3.3.1. Disponibles por el Usuario:

i) BuscarSerial ()

Este método del iboard_control.OCX, se utiliza para buscar en una red 1-

Wire® las iboard disponibles y automáticamente almacena el serial o dirección de

cada una de ellas en un vector.

En detalle, este método de control solo funciona, cuando se ha especificado un

puerto y un tipo de convertidor previamente y adicionalmente a esto el control está

habilitado. Una vez que el método verifica, que las tres condiciones mencionadas

anteriormente se cumplen, procede a establecer una sesión con el puerto indicado por

el usuario. En caso de que la sesión establecida no sea válida, el control llama a la

función CodigodeErrores y termina su función, en caso contrario haciendo uso de la

sesión establecida, se realiza la configuración o setup del puerto para comunicarse

con la red 1-Wire®, si la función TMEX que se encarga de esto, regresa un valor

distinto de uno, al igual que con la sesión invalida, el método llama a

CodigodeErrores y finaliza su función. En caso contrario, la función se encarga de

verificar la red 1-Wire® y a cada chip que encuentre en la red y le pregunta si es de la

familia del DS2408, este procedimiento se repite continuamente hasta encontrar el

último chip en la red.


129

Si encuentra al menos un chip DS2408 en la red, se llama a la función

Inicializar y luego a la función ProductID, con el serial de cada chip, aquellos chips

que respondan verdadero a la función ProductID serán seleccionados como

iBOARD®, almacenando su serial en un arreglo de seriales (Ver Tabla G). Una

manera simplificada de observar las descripciones de ésta y de todas las funciones del

iboardcontrol.ocx es remitiéndose a las Tablas mostradas a continuación.

ii) BuscarSerial ()

Tipo: Método
Propósito: Este método del Iboard_Control.OCX se utiliza para buscar todas
las tarjetas iBOARD® existentes en la red 1-Wire®, conectada a
un puerto del PC.
Ejemplo: If BuscarSerial=true then
Serial(1)=Tag_Nameto_Serial(“iboard1”)
End if
Para hacer uso correcto de esta función, es necesario haber
Comentario: especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizara, y además el control debe estar habilitado.
Si esta función consigue alguna tarjeta iBOARD® en la red
1wire, retornara el valor “TRUE” o Verdadero.
Véase También: Nuevo_Tag_Name, Puerto, Tipo de Puerto,
Tag_Nameto_Serial (“Tagname”).
Tabla G: Tabla de Características de la función BuscarSerial
Fuente: Díaz W. y Maderer L. (2.007)

iii) AutoBuscar_Puerto ()

Tipo: Método
Propósito: Este método del Iboard_Control.OCX se utiliza para buscar
automáticamente un puerto disponible en el PC, en donde se
encuentre un convertidor a red 1-Wire®, y para buscar el tipo de
convertidor si se encuentra.
Ejemplo: Call AutoBuscar_Puerto
Si esta función consigue algún convertidor en uno de los Puerto
130

Comentario: del PC, automáticamente sustituirá en el control, el Puerto y el


Tipo de Puerto. En el caso de que no se consiga puerto disponible
o algún convertidor a red 1-Wire®, la función sustituirá el valor
de la propiedad Puerto por 0 y el valor de la propiedad Tipo de
Puerto por 0
Para hacer uso correcto de esta función, es necesario haber
previamente habilitado el control.
Véase También: Puerto, Tipo de Puerto.
Tabla H: Tabla de Características de la función AutoBuscar_Puerto ()
Fuente: Díaz W. y Maderer L. (2.007)

iv) Inicializar (Serial)

Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza para enviar una


configuración inicial a los módulos de interfase entre la
iBOARD® y la red 1-Wire®

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Call Inicializar(serial(1)

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizará, y además el control debe estar habilitado.
Véase También: Nuevo_Tag_Name, Puerto, Tipo de Puerto,
Tag_Nameto_Serial(“Tagname”).
Tabla I: Tabla de Características de la función Inicializar()
Fuente: Díaz W. y Maderer L. (2.007)
v) LeerByte (Serial)

Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza para leer un byte


enviado desde la iBOARD®.

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
DatoRecibido=LeerByte(serial(1))
131

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizara, y además el control debe estar habilitado.
Esta función retorna un byte leído directamente de la iBOARD®.
También: EnviarByte (), Nuevo_Tag_Name, Puerto, Tipo de
Puerto,Tag_Nameto_Serial(“Tagname”).
Tabla J: Tabla de Características de la función LeerByte (Serial)
Fuente: Díaz W. y Maderer L. (2.007)

vi) EnviarByte (Dato, Serial)

Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza para enviar un


byte a una iBOARD®.

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
EnviarByte(DatoaEnviar , serial(1))

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizara, y además el control debe estar habilitado.
También: LeerByte (), Nuevo_Tag_Name, Puerto, Tipo de
Puerto,Tag_Nameto_Serial(“Tagname”).

Tabla K: Tabla de Características de la función EnviarByte (Dato, Serial)


Fuente: Díaz W. y Maderer L. (2.007)
vii) Sincronizar (Serial)

Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza para enviar un


byte de sincronización a una iBOARD®.

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Sincronizar(serial(1))

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizara, y además el control debe estar habilitado.
132

También: Nuevo_Tag_Name, Puerto, Tipo de Puerto,


Tag_Nameto_Serial(“Tagname”).

Tabla L: Tabla de Características de la función Sincronizar (Serial)


Fuente: Díaz W. y Maderer L. (2.007)

viii) Product_id (Serial)

Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza comprobar


cuantos dispositivos existentes en la red 1-Wire® son una
iBOARD®.

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
If Product_id(serial(1)=true then
Respuesta=”l serial 1 realmente corresponde a una iboard”
End if

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizará, y además el control debe estar habilitado.
Si esta función consigue alguna tarjeta iBOARD® en la red
1wire, retornará el valor “TRUE” o Verdadero.
Véase También: Nuevo_Tag_Name, Puerto, Tipo de Puerto,
Tag_Nameto_Serial(“Tagname”).
Tabla M: Tabla de Características de la función Product_id (Serial)
Fuente: Díaz W. y Maderer L. (2.007)

ix) Cuando_Error()

Tipo: Evento

Propósito: Este evento del Iboard_Control.OCX se dispara cuando ha


sucedido un error.

Ejemplo: Function Cuando_error()


If errores = 10 then
Resp=msgbox(“Error de comunicación N#”+error, , “”)
End if
End function
133

Comentario: Para mayor información del código de errores diríjase al apartado


4.3.3.4. en este capitulo
También: Lista de Errores, Cuando_Error()

Tabla N: Tabla de Características de la función Cuando_Error()


Fuente: Díaz W. y Maderer L. (2.007)
x) Puerto

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para especificar


el puerto que se utilizará para conectarse con la iBOARD®.

Ejemplo: Puerto=1
Tipo_de_Puerto=5
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))

Comentario: Esta propiedad tiene alta importancia, debido a que de ella


depende que se establezca correctamente la comunicación.
También: Puerto, Tipo de Puerto
Tabla O: Tabla de Características de la función Puerto
Fuente: Díaz W. y Maderer L. (2.007)

xi) Tipo_de_Puerto

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para especificar


el tipo de convertidor de puerto a la red 1-Wire®, que se utilizará
para conectarse con la iBOARD®.

Ejemplo: Puerto=1
Tipo_de_Puerto=5
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))

Comentario: Esta propiedad tiene alta importancia, debido a que de ella


depende que se establezca correctamente la comunicación.
134

También: Puerto, Tipo de Puerto

Tabla P: Tabla de Características de la función Tipo_de_Puerto


Fuente: Díaz W. y Maderer L. (2.007)

xii) Enabled

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para permitir la


operación o no del control durante el tiempo de ejecución.

Ejemplo: Puerto=1
Tipo_de_Puerto=5
Enabled=true
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))

Comentario: Esta propiedad tiene alta importancia, debido a que de ella


depende que los métodos y eventos del control se ejecuten o no.
También:

Tabla Q: Tabla de Características de la función Enabled


Fuente: Díaz W. y Maderer L. (2.007)

xiii) Errores

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para


especificar el tipo error que ha sucedido (en caso de existir).

Ejemplo: Function Cuando_error()


If errores = 10 then
Resp=msgbox(“Error de comunicación N#”+error, , “”)
End if
End function

Para mayor información del código de errores diríjase al


135

Comentario: aparatado 4.3.3.4


También: Lista de Errores, Cuando_Error()

Tabla R: Tabla de Características de la función Errores


Fuente: Díaz W. y Maderer L. (2.007)

xiv) Nuevo_Tag_Name

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para indicar un


nuevo nombre para utilizar en vez del serial.

Ejemplo: Puerto=1
Tipo_de_Puerto=5
Nuevo_Tag_Name=”LUIS”
Serial(1)=Tag_Nameto_Serial(“LUIS1”)
Leerbyte(serial(1))

Comentario: Los Nombres en mayúsculas son distintos a los nombres en


minúsculas para el control.

También: Tag_Nameto_Serial()

Tabla S: Tabla de Características de la función Nuevo_Tag_Name


Fuente: Díaz W. y Maderer L. (2.007)

xv) PoolTime

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para indicar


cada cuanto tiempo debe ser consultado el control.

Ejemplo: Timer1.interval=iboard1.pooltimer

Comentario: Los valores representados por esta propiedad son en milésimas de


segundos o milisegundos.
Tabla T: Tabla de Características de la función PoolTime
Fuente: Díaz W. y Maderer L. (2.007)
136

xvi) Iboard_en_Red

Tipo: Propiedad

Propósito: Esta propiedad del Iboard_Control.OCX se utiliza para identificar


cuantos dispositivos del tipo iBOARD® se encuentran en la red
1-Wire®.

Ejemplo: Puerto=1
Tipo_de_Puerto=5
If BuscarSerial=true then
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Label1.caption=iboard_en_Red
End if

Comentario: El número máximo de iBOARD® en red puede ser 100.


Tabla U: Tabla de Características de la función Iboard_en_Red(Serial)
Fuente: Díaz W. y Maderer L. (2.007)

5.2.3.3.2. Funciones Internas del Control:

i) ReadSwitchNew (Serial)
Tipo: Método

Propósito: Este método del Iboard_Control.OCX se utiliza para leer un byte


directamente del estado de los canales, del modulo de interfase
entre la iBOARD® y la red 1-Wire®, sin enviar los comandos de
recibir byte.

Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Byteleido=ReadSwitchNew(serial(1))

Comentario: Para hacer uso correcto de esta función, es necesario haber


especificado previamente en el control, el Puerto y el Tipo de
Puerto que se utilizará, y además el control debe estar habilitado.
Esta función retorna un byte con el estado de los canales, del
modulo de interfase entre la iBOARD® y la red 1-Wire®,.
Véase También: LeerByte (), Nuevo_Tag_Name, Puerto, Tipo de
Puerto,Tag_Nameto_Serial(“Tagname”).
Tabla V: Tabla de Características de la función ReadSwitchNew (Serial)
Fuente: Díaz W. y Maderer L. (2.007)
137

ii) Convertir_Serial (Serial)

Tipo: Método
Propósito: Este método del Iboard_Control.OCX se utiliza para convertir el
serial de string a un arreglo de 8 bytes
Si la cadena de caracteres que se pasa a la funcion contiene menos
Comentario: de 16 caracteres, esta dispara el evento cuando_error e indica el
error sucedido.
Tabla W: Tabla de Características de la función ReadSwitchNew (Serial)
Fuente: Díaz W. y Maderer L. (2.007)

5.2.3.4. Códigos de Error en el Programa

El iboard_control.ocx cuenta con una propiedad diseñada exclusivamente para

que el usuario pueda identificar el tipo de error que se ha producido (en caso de

existir). Los errores pueden ser de sintaxis o de comunicación.

5.2.3.4.1. Errores sintácticos

Los errores de sintaxis son aquéllos que aparecen mientras escribe el código.

El iboard_control.ocx comprueba el nombre, o tagname, bajo el cual el usuario se

está refiriendo a cada iBOARD® y le avisa si comete algún error, como escribirlo

mal o utilizar un tagname, dedicado a una iBOARD® especifica, incorrectamente.

Los errores sintácticos son los errores más frecuentes. Se pueden corregir fácilmente

en el entorno de codificación en cuanto se producen. Al momento de que exista un


138

error de sintaxis, en el tagname, el iboard_control.ocx activará el evento

“CuandoError”, y la propiedad “Errores” tomará el valor decimal 10.

5.2.3.4.2. Errores de Comunicación

Los errores de comunicación son muy comunes cuando se intenta establecer un

intercambio de datos entre un dispositivo (periférico) y cualquier puerto disponible

del PC. Estos errores son mucho más complejos que los de sintaxis. El

iboard_control.ocx posee un código empaquetado que se encarga de verificar la causa

posible del error de comunicación que está sucediendo. A continuación se muestra

una lista valores que puede tomar la propiedad errores, de acuerdo al conflicto

presentado:

Número de Significado
Error
Error 11 Posible fallo del Setup (configuración)
Error 12 Setup (configuración) funcionó pero hay corto circuito de la
red 1-Wire®
Error 13 No existe la red 1-Wire®
Error 14 Setup (configuración) de puerto no soportado
Error 15 Sesión de comunicaciones con el Puerto inválida
Error 16 Puerto no existe
Error 17 Puerto no inicializado
Error 18 No se puede establecer comunicación con el MEIC o ha sido
desconectado de la red 1-Wire®.
Tabla X: Tabla de Errores de Comunicación en el iboard control.ocx
Fuente: Díaz W. y Maderer L. (2.007)
139

De igual manera que para los errores de sintaxis, al momento de que exista un

error en la comunicación, el iboard_control.ocx activara el evento “CuandoError”, y

la propiedad “Errores” tomará el valor decimal que variará de acuerdo a la lista

presentada anteriormente.

Finalmente, para que el usuario no se vea en la necesidad de consultar muy a

menudo la propiedad errores, el iboard_control.ocx cuenta con un evento que se

ejecuta cuando algún error haya sucedido. De esta forma, el usuario puede diseñar un

software basado en el AtiveX iboard_control.ocx, que asegure que el sistema indicará

que no existe comunicación con la iBOARD® por una razón específica. Los valores

de la propiedad errores, del iboard_control.ocx, de 0 a 9 están reservados para uso

interno del control.

5.2.3.5. Funciones TMEX utilizadas dentro del programa

TMEX API: Utilizadas para el desarrollo del control ocx del proyecto, en sí, estas

son un conjunto completo de funciones independientes del lenguaje (DLL’s), proveen

soporte a todos los dispositivos y adaptadores de RED 1-Wire® que trabajen bajo la

plataforma Windows™ de 32 Bits, son al mismo tiempo, las funciones que se

utilizarán para acceder a los diferentes dispositivos en la red 1-Wire®. El API

TMEX, está diseñado para trabajar en aplicaciones multi-procesos y multi-tareas.


140

Estas funciones se agrupan en seis bloques como muestra la Tabla “Y” y a

continuación se explica en forma breve la agrupación de las funciones TMEX API:

API-SESION API-ENLACE

API-RED API-TRANSPORTE

API-ARCHIVO API-DISPOSITIVO

Tabla Y: Tabla de Grupos para las API-TMEX


Fuente: Díaz W. y Maderer L. (2.007)

API-Sesión: Incluye todas las funciones que hacen uso exclusivo del BUS 1-Wire® a

través de cualquier interfaz de comunicación al PC. Esto es particularmente

importante cuando utilizamos el sistema operativo Windows™ 32 bits, ya que, en

forma simultánea diferentes programas podrían acceder a la red 1-Wire® y

entorpecer el normal funcionamiento de la misma. Todas las funciones incluidas en

éste API, hacen uso exclusivo del puerto de comunicaciones del PC mientras dure la

comunicación con el dispositivo 1-Wire®.

API-Enlace: Incluye todas las funciones primitivas de comunicación de la red 1-

Wire®. Funciones primitivas son aquellas que realizan un “reset” en la red 1-Wire®

antes de establecer alguna comunicación con un dispositivo esclavo, para luego leer o

escribir “bits” de información. Agrupa también ciertas funciones especiales que

determinan las características eléctricas de funcionamiento de la red, como es el caso,

de generación de pulsos de programación para escribir información en las memorias.


141

API-Red: Agrupa las funciones que permiten descubrir y seleccionar dispositivos en

la red 1-Wire®. Incluyen la totalidad de las funciones que trabajan con la memoria

ROM de los dispositivos.

API-Transporte: Bloque de funciones para la lectura y escritura en cualquier

memoria diferente a la ROM. Estas funciones están construidas en base a las

funciones encontradas en las API de Enlace y de RED.

API-Archivo: Funciones relacionadas a las estructuras de los archivos y

organización de la memoria dentro de los dispositivos, son construidas en base a las

funciones encontradas en las API de RED y de Transporte.

API-Dispositivo: Funciones específicas para cada dispositivo, son denominadas de

alto nivel, ya que, dependen en todo momento de un dispositivo en específico. Estas

funciones son construidas en base a las encontradas en las API de RED, Transporte,

Enlace y realizan operaciones tales como la lectura de la temperatura de un

dispositivo en particular.

Antes de verificar el conjunto de funciones que se utilizaron para el desarrollo

del control ocx, se hace interesante describir la red 1-Wire® utilizando el modelo

estándar de interconexión abierta OSI, destacando dentro de cada capa del mismo, las

funciones empleadas. Para describir la red 1-Wire®, sólo es necesario utilizar “cinco”

o “seis” de las siete capas del modelo OSI en referencia (Observar Figura Nº 5.19),
142

estas capas son: Física, Enlace, Red, Transporte, Sesión y Presentación; y se

describen a continuación:

Figura Nº 5.19: Diagrama de las Capas del Modelo OSI


Fuente: Díaz W. y Maderer L. (2.007)

Capa Física: Define las características eléctricas, los niveles lógicos de voltaje y la

temporización de toda comunicación dentro del BUS 1-Wire®. También define las

especificaciones de los dispositivos basados en los estándares relacionados a las

características eléctricas y la influencia de la capa física; en la interconexión con el

mundo exterior a través de uso de interfaz a microcontroladores ó adaptadores de

puertos de comunicación para computadoras personales (PC).

Capa de Enlace: Describe las funciones básicas de comunicación de los Enlace

Datos dispositivos 1-Wire® tales como: “Reset”, “Presencia” y la transferencia de

“bits”. Después de realizarse una función básica en esta capa, el control de la


143

comunicación es tomado enteramente por la capa de red. Las funciones de

programación pertenecientes a la capa de enlaces utilizados para el desarrollo del

control son:

x TMSetup, verifica si el adaptador de puertos está operativo.

x TMTouchByte, envía y recibe un “byte” de información a través de la red 1-Wire®.

x TMTouchReset, realiza un “reset” de todos los dispositivos en la red 1-Wire®.

Capa de Red: Determina la identificación de cada dispositivo en particular y su

capacidad de comunicación dentro de la red. Cada dispositivo 1-Wire® posee un

único e irrepetible serial de identificación, el cual, se grabó en fábrica en la memoria

ROM de cada dispositivo, a través de un proceso de criptografía láser, debido a que

este serial es parte de la memoria ROM, todos los comandos relacionados a la capa

de red estarán referidos a los comandos de ROM ó comandos de utilización de la

memoria ROM. Las funciones para acceder a los dispositivos esclavos en la red 1-

Wire®, utilizados para el desarrollo del control ocx, en forma individual, a través, de

la capa de red son:

x TMNext, encuentra el próximo dispositivo 1-Wire® en la red.

x TMRom, lee o selecciona el número de serial del dispositivo seleccionado en la red.

Capa de Transporte: Es la responsable de la transferencia de información “bits” o

“bytes” que no pertenezcan ó estén relacionados con la memoria ROM, como es la


144

transferencia de información desde la memoria RAM ó NVRAM de los dispositivos,

incluso en algunos dispositivos con memoria intermedia denominada “scratchpad”.

No todos los dispositivos 1-Wire® utilizan la capa de transporte, sólo aquellos que

tienen memoria adicional a la memoria ROM podrán utilizar esta capa. Las

funciones relacionadas a la capa de transporte no se utilizaron para el desarrollo del

iboard_control.ocx

Capa de Sesión: En la RED 1-Wire®, puede o no existir su equivalente en el modelo

estándar de interconexión abierta OSI, de la capa de Sesión, ello dependerá del

modelo y características en particular del dispositivo esclavo 1-Wire® y del tipo de

maestro utilizado: microcontrolador ó PC. Cuando se utiliza un computador y un

adaptador de comunicaciones a la red 1-Wire®, la capa de sección se utilizará para

iniciar la comunicación. La función relacionada a la capa de sesión utilizada en el

desarrollo del iboard_control.ocx es:

x TMEndSession, finaliza la sesión de comunicaciones con la red 1-Wire®.

Capa de Presentación: Define la estructura y la organización de la memoria de los

dispositivos. Esta capa soporta una gran cantidad de funciones de programación

parecidas a los archivos del sistema operativo MsDOS de Microsoft™. Las funciones

relacionadas a la capa de presentación no se utilizaron para el desarrollo del

iboard_control.ocx
CAPITULO VI

CONSTRUCCIÓN DEL MÓDULO ELECTRÓNICO DE INTERFAZ

6.1. INTRODUCCIÓN

El presente capítulo expone lo referente al diseño y construcción del software

del Módulo Electrónico de Interfaz, desarrollado para comunicar las tarjetas

iBOARD® con la red 1-Wire®.

En el proceso de elaboración del hardware, se construyeron varios prototipos a

raíz de diversas propuestas, las cuales fueron analizadas en cuanto a su versatilidad y

arquitectura, con la finalidad de obtener el diseño más eficaz y práctico a la hora de

ser acoplado con las tarjetas iBOARD®.

6.2. CONSTRUCCIÓN DEL CIRCUITO IMPRESO DE LA INTERFAZ DE

COMUNICACIÓN

Una vez seleccionados los componentes o dispositivos más adecuados durante

el diseño del modulo electrónico de interfaz, se procedió a realizar la construcción de

la placa de circuito impreso. Para esta tarea se tomaron consideraciones en cuanto al

espacio en la tarjeta impresa, a las conexiones entre los terminales de los

componentes y a sus funciones. Con esto, se aseguró que la ubicación de los


156

componentes dentro del circuito impreso cumpliría con las especificaciones de la

empresa de la mejor forma.

Por medio del programa de diseño en PCB, fue posible generar la tarjeta

prototipo de doble cara para la interfaz de hardware entre la iBOARD® y la red

1-Wire®, la cual, sirvió para comprobar el correcto funcionamiento del sistema. Se

construyeron tres (3) tarjetas del prototipo inicial, el diseño terminado de las mismas

se muestra en la Figura Nº 6.1, en la que se muestran las dos capas conductoras para

la interconexión de sus componentes; la capa superior con el color rojo y la capa

posterior con el color verde.

Figura Nº 6.1: Diseño de Tarjeta Prototipo del MEIC


Fuente: Díaz W. y Maderer L. (2.007)

Mostrando de manera independiente las dos capas del circuito impreso

diseñado en la Figura Nº 6.2 se muestra en la parte izquierda la capa superior y en la

parte derecha la capa posterior.


157

Figura Nº 6.2: Capa superior (izquierda) e Inferior (derecha) de la


Tarjeta Prototipo del MEIC
Fuente: Díaz W. y Maderer L. (2.007)

Posteriormente, se procedió a la transferencia de las pistas a la placa de

baquelita mediante un papel de transferencia especial para este tipo de aplicación, se

inició el proceso de corrosión con una solución de cloruro férrico, de modo que se

obtuvieron las pistas conductoras. Se realizó la fijación de todos los componentes en

esta placa mediante la soldadura con estaño. La Figura Nº 6.3. muestra la fotografía

real de las dos caras de uno de los prototipos MEIC construidos por los

desarrolladores.

Figura Nº 6.3: Fotografías reales de: capa superior (izquierda), capa Inferior (derecha)
de la Tarjeta Prototipo del MEIC construida.
Fuente: Díaz W. y Maderer L. (2.007)
158

Los desarrolladores crearon un MEIC externo que puede ser comercializado

por la empresa, para su utilización con las iBOARD® mediante una conexión física

con sus terminales. En la Figura Nº 6.4 se muestra el diseño en PCB de dicho

módulo.

Figura Nº 6.4: Diseño del PCB del Módulo Electrónico de Interfaz


Fuente: Díaz W. y Maderer L. (2.007)

Figura Nº 6.5: Capa superior (izquierda) e Inferior (derecha) de la


Tarjeta Prototipo del MEIC para dispositivos SOIC
Fuente: Díaz W. y Maderer L. (2.007)
159

6.2.1. Características del Módulo Electrónico de Interfaz para la Comunicación

La tarjeta diseñada posee como componentes fundamentales los siguientes

elementos (vea Tabla Y):

Cant. Descripción
1 Capacitor Tántalo .1 uf @ 35 Volt SMD
1 Conector 0.1" 36 pines Extensión [100]
1 Resistencias SMD 1206 10K OHM
1 Resistencias SMD 1206 220 OHM
2 Arreglo de 4 Resistencias SMD x 10K OHM [100]
1 PIC16F628-04 SOIC
1 DS2408 SOIC
BOARD Tarjeta impresa (PCB)
Tabla Nº Y: Tabla de componentes necesarios para un MEIC
Fuente: Díaz W. y Maderer L. (2.007)

En la Figura Nº 6.6 se muestra uno de los circuitos impresos de los Módulos

Electrónicos de Interfaz, a la izquierda se muestra la apariencia real de la capa

superior y a la derecha la apariencia de la capa inferior.

Figura Nº 6.6: Fotografías del Módulo Electrónico de Interfaz Externo


Capa superior (izquierda) y Capa inferior (Derecha)
Fuente: Díaz W. y Maderer L. (2.007)
160

El módulo posee un tamaño bastante reducido (1,8x2,3cm), lo que agrega gran

versatilidad en su utilización. En las Figura Nº 6.7 se muestra el MEIC externo con

todos los componentes incorporados en la tarjeta.

Figura Nº 6.7: Fotografía del Módulo Electrónico de Interfaz Externo con sus
componentes incorporados. Capa superior (izquierda) y Capa inferior (Derecha)
Fuente: Díaz W. y Maderer L. (2.007)

Las tarjetas y circuitos impresos desarrollados presentan las características

enumeradas a continuación:

1. Los orificios conductos que comunican eléctricamente las dos caras de la tarjeta

fueron ubicados de tal forma, que se permitieran establecer caminos directos entre

cada dispositivo.

2. Los ángulos de las esquinas en cada conductor no sobrepasó los 45 grados para

evitar pérdidas de los electrones circulantes a frecuencias altas.

3. Alrededor de todos los conductores y pistas de cobre se consideró el

establecimiento de un plano de tierra, el cual cubre los espacios vacíos, evitando

de esta manera, que se genere una capacitancia parásita entre las dos capas
161

conductoras separadas por la baquelita de fibra de vidrio (que puede ser un

material dieléctrico).

4. Para la fijación de los componentes en la tarjeta se utilizó un soldador con punta

de porcelana de 25W, ya que los dispositivos con empaque tipo SOIC son mucho

más sensibles a las altas temperaturas.

5. El grosor del estaño utilizado para la soldadura es de 0.5mm con un contenido de

resina limpiadora incorporado en su núcleo, para garantizar la correcta fijación

del dispositivo y evitar generar corto-circuitos en sus terminales.

6. Los puntos de soldadura se realizaron cuidadosamente, teniendo especial cuidado

en formar una burbuja sin irregularidades en la superficie.

6.2.2. Ubicación de Componentes y Conexiones

En la elaboración de los módulos prototipo, la tarjeta diseñada posee los dos

circuitos integrados principales situados en la cara superior de la tarjeta y la capa

posterior es utilizada para la interconexión entre los dispositivos, además el empaque

del PIC16f628 es del tipo DIP (“Dual-In-line Package”) debido a su método poco

dificultoso de inserción y las resistencias utilizadas son igualmente para inserción de

1/2W de potencia, esto debido a la disponibilidad de los componentes para el

momento. A diferencia de los módulos prototipo los módulos diseñados para la

empresa poseen circuitos integrados con empaque SOIC “Small Outline Integrated
162

Circuit” (Véase Figura 6.7) y cada uno de los dispositivos principales de la tarjeta se

encuentran en distintas capas de la tarjeta; el PIC16F628 se encuentra en la superior y

el DS2408 en la posterior. Asimismo, los condensadores y las resistencias son para

montaje superficial SMD (en inglés, Surface Mounted Device). La ubicación de los

componentes y el tipo de empaque utilizado para estos módulos, permitió ahorrar

gran cantidad de espacio dentro del circuito impreso, tanto a la hora de incluirlo en la

tarjeta iBOARD®, como al generar los Módulos Electrónicos de Interfaz.

La conexión entre los componentes dentro de los módulos de comunicación

obedece al esquema mostrado en la Tabla Z.

IBOARD PIC16F628 DS2408 R PULL UP


DES DES NRO PIN DES NRO PIN (kohm)
RX RB1 7 - - -
TX RB2 8 - - -
INT RA3 2 - - 0.330 en serie
- RA7 16 P0 2 10
- RB4 10 P1 14 10
- RB5 11 P2 13 10
- RB6 12 P3 12 10
- RB7 13 P4 11 10
- RA6 15 P5 9 10
- RA1 18 P6 8 10
- RA0 17 P7 7 10
- INT 6 RSTZ 10 10
GND Vss 5 GND 5 -
+5V Vdd 14 Vcc 3 -
- MCLR 4 - - 10
- - - I/O 4 4.7

Tabla Z: Tabla de conexiones entre los dispositivos de MEIC


Fuente: Díaz W. y Maderer L. (2.007)
163

Las conexiones de los dispositivos fueron realizadas evitando el cruce de

pistas y manteniendo un ángulo de 45 grados en cada cambio de dirección las

mismas. Adicionalmente, durante el diseño de la tarjeta, se tomó en cuenta la

ubicación de cada componente y su forma más factible de acoplamiento eléctrico.

El esquema eléctrico de conexiones mostrado en la Figura Nº 6.8, desarrollado

en el programa ExpressSCH, resume la interconexión de los terminales de todos los

dispositivos incluidos en la interfaz de hardware.

Figura Nº 6.8: Esquema eléctrico de conexiones en el MEIC


Fuente: Díaz W. y Maderer L. (2.007)
164

6.2.3. Costos de Fabricación del MEIC

Para la fabricación y construcción de cada Módulo Electrónico de Interfaz

para la comunicación 1-Wire® se utilizaron componentes específicos, la mayoría de

los cuales, fue necesario obtener mediante su importación, ya que no se fabrican en

Venezuela. Este factor, influye en los costos para la construcción de los módulos, sin

embargo, como la empresa es importadora de circuitos integrados y componentes

electrónicos para su propio uso y distribución, no representa un gran inconveniente su

adquisición.

La empresa establece que el costo de importación de cada componente es

calculado multiplicando el valor en bolívares (al cambio actual del Dólar

norteamericano) por 1.35 y la cifra resultante representa la suma de: el valor del

componente, el valor del envío y el valor del impuesto de nacionalización. En base a

lo descrito, se muestra en la Tabla AA el los costos generados por la compra de los

componentes correspondientes a un (1) Módulo Electrónico de Interfaz.

CÓDIGO DE CÓDIGO DE COSTO TOTAL


CANT. REF. DESCRIPCIÓN
FABRICANTE DIGIKEY US $ US $
1 C1 Condensador Tántalo .1 uf @ 35 Volt SMD T491A104K035AS 399-1643-1-ND 0,160 0,160
1 J1 Conector 0.1" 36 pines Extensión PTC36SAAN S1012-36-ND 0,756 0,756
1 R1 Resistencia SMD 1206 10K OHM N/A P10KECT-ND 0,029 0,029
1 R2 Resistencia SMD 1206 220 OHM N/A P220ECT-ND 0,029 0,029
2 RE,RF Arreglo de 4 Resistencias SMD x 10K OHM N/A MNR34103CT-ND 0,108 0,216
1 U1 PIC16F628-04/SO MICROCHIP PIC16F628-04/SO 4,030 4,030
1 U2 DS2408 DALLAS DS2408-ND 6,500 6,500
1 BOARD Tarjeta impresa ExpressPCB N/A 4,000 4,000
Subtotal Dólares 15,72
Subtotal Bolívares (Sub$*Cambio*Import) 45.627,30
Tabla AA: Tabla que muestra los costos asociados a un MEIC
Fuente: Díaz W. y Maderer L. (2.007)
165

Los costos enumerados anteriormente están basados en su adquisición al

momento del desarrollo del presente proyecto y pueden ser actualizados o

consultados a través de la página web de digikey. El valor del cambio a Bolívares por

cada Dólar es igual a 2.150,00Bs, valor que se encuentra reflejado en la Tabla AA

como “Cambio”, al igual que el multiplicador “Import” correspondiente a los cargos

generados por el proceso de importación, según la empresa.

6.3. ESTUDIO ECONÓMICO DEL PROYECTO

6.3.1. Fuentes de financiamiento del Proyecto.

La fuente de financiamiento del proyecto es exclusivamente del tipo interna, ya

que el capital invertido fue aportado por los responsables directos del proyecto, en

este caso la empresa ROSO Electric Suppy C.A. y los desarrolladores mismos,

cubrieron los gastos de desarrollo y producción en el proyecto. La empresa invirtió en

todas las fases del proyecto, abarcando la adquisición de los dispositivos de hardware

involucrados en el proyecto, las licencias para la utilización del software,

herramientas de desarrollo y construcción de los prototipos y demás implementos

necesarios para llevar a cabo los objetivos planteados.


166

También es de gran importancia mencionar (debido al valor económico al que

se encuentra asociado) el tiempo invertido por el recurso humano de la empresa,

representado por el personal técnico y el asesor del proyecto, al igual que el tiempo

invertido por los desarrolladores del proyecto durante todas las fases.

6.3.2. Costos del Proyecto

Todo proyecto origina egresos, por tanto, el establecimiento de los costos

totales, representa los gastos en que incurrieron los responsables directos del

proyecto. Entre algunos gastos tenemos (Para observar su valor monetario, remítase a

la Tabla BB):

6.3.2.1. Costos de Desarrollo

En este renglón se ubican los gastos originados por la adquisición de los

implementos y herramientas necesarios en las fases I, II, III, IV y V. En estos se

incluyen:

x Adquisición de programadores de los microcontroladores PIC (2 unidades

iBOARD® y 2 unidades iPROG).

x Adquisición y mantenimiento de las licencias del software de programación

(Visual Basic 6.0 PRO).


167

x Gastos de papelería y material de oficina, como resmas de papel, tóner y

cartuchos de tintas e impresoras.

x Egresos generados por la investigación en las fuentes bibliográficas y

electrónicas (por ejemplo: servicio banda ancha de Internet).

x Compra de elementos electrónicos necesarios en los montajes de prueba. Se

incluyen los costos originados por la importación de los componentes y

dispositivos necesarios en las diversas pruebas preliminares llevadas a cabo para

el diseño del hardware.

x Los gastos en comunicaciones telefónicas y electrónicas mantenidas entre los

desarrolladores del proyecto y los demás factores involucrados.

x Gastos de traslado, transporte, residencia, alimentación y manutención,

generados por el recurso humano involucrado en el proyecto durante el tiempo

abarcado en las distintas fases del proyecto.

6.3.2.2 Costos de Fabricación

x Adquisición de Implementos necesarios para el montaje de los componentes

en la interfaz de hardware como: cautines, pasta para soldar, estaño, pasta para

soldadura de elementos superficiales de empaque tipo SOIC.

x Costos de los componentes electrónicos necesarios en el hardware como:

PIC16F876, PIC16F628, DS2408 y resistencias. Representado por el valor de


168

los mismos más las comisiones generadas por su importación (desde el

exterior) y traslado (en el país).

x Gastos generados por la fabricación del circuito impreso para los prototipos

del sistema. También se incluyen los de fabricación del circuito impreso para

las iBOARD® con sistema desarrollado dentro de su circuito.

x Mano de obra del recurso humano involucrado.

6.3.2.3. Costos de Venta

x Costos del Embalaje del producto.

x Gastos generados por la publicidad del producto iBOARD® en su nueva

versión, al igual que para la promoción de los módulos de interfaz para la

comunicación 1-Wire® dirigidos a las versiones de iBOARD® anteriores.

Estos costos incluyen también la representación económica del tiempo

invertido por la empresa en la promoción y venta.

6.3.3. Presupuesto de Costos

En la siguiente tabla (Tabla BB) se enumeran los gastos correspondientes a los

aspectos mencionados anteriormente, organizados en cada mes de desarrollo del

proyecto y estableciendo subtotales que permiten obtener una clara visión de la

cantidad de recursos utilizados.


169

Costos / Meses 1 2 3 4 5
A) Costos de Desarrollo Bs. Bs. Bs. Bs. Bs.
1.-Programadores de PIC
180.000 *120.000 0 0 0
2.-Licencias de Software
400.000 0 0 0 0
3.-Insumos y Material de
*210.400 61.200 24.000 10.500 11.000
Oficina
4.-Bibliografía,
30.000 *26.000 *26.000 *26.000 *26.000
investigación e Internet
5.-Materiales para montajes
0 10.300 53.800 5.800 50.000
de Prueba
5.-Comunicaciones
*15.000 *20.000 *20.000 *20.000 *20.000
6.- Traslado, transporte,
residencia y *500.000 *500.000 *500.000 *500.000 *500.000
manutención (2 tesistas)
SUB TOTAL 1.335.400 737.000 623.800 562.000 607.000
B) Costos de Fabricación
7.-Implementos y
0 0 33.000 2.000 12.000
herramientas
8.-Dispositivos y
0 0 0 200.000 100.000
Componentes
9.-Importación de
0 0 0 66.000 0
Componentes
10.-Circuitos Impresos
0 0 0 500.000 0
(Placas)
SUB TOTAL 0 0 33.000 768.000 112.000
C) Gastos de Ventas.
11.-Embalaje y
0 0 0 0 68.000
presentación
12.-Promociones y
0 0 0 0 163.000
Publicidad
SUB TOTAL 0 0 0 0 231.000
TOTAL (por mes) 1.335.400 737.000 656.800 1.330.000 950.000
TOTAL GENERAL 5.009.200,00
Tabla BB: Presupuesto de Costos del Proyecto
Fuente: Díaz W. y Maderer L. (2.007)
170

6.3.4. Proyección de Ingresos

Los ingresos se establecen considerando las proyecciones de la demanda y el

respectivo precio unitario de los productos actuales. Mediante el pronóstico estimado

de ventas, se define el límite mínimo de productos que tienen que ser vendidos por la

empresa para que ocurra una recuperación de la inversión.

Debido a que la empresa ROSO Electric Suppy C.A. pretende agregar una

funcionalidad adicional y gran importancia a sus productos, mediante la

implementación del Módulo Electrónico de Interfaz para la red 1-Wire®, se hace

difícil establecer el precio de venta final de dichos productos, ya que todavía no se ha

realizado el presupuesto para dicha tarea. Además, esta empresa planea incluir la

capacidad de comunicación a través de la interfaz desarrollada, dentro de los

programas y aplicaciones generados por el personal de la empresa, haciendo así, que

la demanda del Módulo Electrónico de Interfaz aumente drásticamente, debido a que

es usuario final, poseerá el software para el manejo de la red, incentivando la

adquisición de los módulos de comunicación y de los productos que incluyan dicha

funcionalidad.

Los costos de producción actuales para la producción de un MEIC (Modulo

Electrónico de Interfaz para Comunicación 1-Wire®), se evidencian en la Tabla AA

en este capítulo.
171

Con el fin de establecer un aproximado de los ingresos, se estima que el valor

agregado que se sumará a cada uno de los productos de la empresa será de 68.440Bs

(si se incluye el módulo para la comunicación con la red 1-Wire®), basada esta cifra,

en costos de producción actuales y el margen de utilidad establecido por la empresa.

Entonces, según la siguiente fórmula:

Precio de Venta = Costo Total + Margen de Utilidad (50%)

Se obtiene:

Precio de venta = 45.627Bs + (45.627*0.5) Bs.

Precio de venta = 68.440Bs

Tomando en cuenta el monto anterior y realizando una proyección estimada

de ventas, se considera demanda y producción de 20 productos (incluyendo la nueva

funcionalidad) durante cada mes (Véase Tabla CC), a partir de su publicación. Las

ventas serán realizadas por los diversos medios disponibles en la empresa para su

mercadeo, como por ejemplo: por vía electrónica a través de la Internet, mediante los

distribuidores a lo largo de la geografía nacional y mediante la compra personal de

los productos.
172

Meses: 1 2 3 4 5 6
Unidades Vendidas: 20 20 20 20 20 20
Ingresos: 1.368.800 1.368.800 1.368.800 1.368.800 1.368.800 1.368.800
Costos de producción: 912.540 912.540 912.540 912.540 912.540 912.540
Utilidades obtenidas: 456.260 456.260 456.260 456.260 456.260 456.260

Meses 7 8 9 10 11 12
Unidades Vendidas: 20 20 20 20 20 20
Ingresos: 1.368.800 1.368.800 1.368.800 1.368.800 1.368.800 1.368.800
Costos de producción: 912.540 912.540 912.540 912.540 912.540 912.540
Utilidades obtenidas: 456.260 456.260 456.260 456.260 456.260 456.260
Tabla CC: Tabla de Proyecciones de Ventas e Ingresos por mes
Fuente: Díaz W. y Maderer L. (2.007)
Nota: Los valores presentados en las tablas son estimaciones realizadas por la

empresa y los desarrolladores del proyecto, las cuales, pueden presentar variaciones

dependiendo de los costos de producción, entre otros factores.

6.3.5 Punto de equilibrio del Proyecto

El punto de equilibrio muestra una situación, en la cual la empresa ni gana ni

pierde, y se realiza para determinar los niveles más bajos de producción o ventas sin

que se ponga en riesgo la viabilidad financiera del proyecto. Se utiliza para designar

un nivel de operaciones, en el cual el proyecto no causa ni pérdidas ni ganancias.

Para el cálculo del punto de equilibro del proyecto, según el Lic. Manuel

Cerrano en su curso de economía aplicada a los proyectos, se utiliza la siguiente

fórmula:
173

donde:

Costos Fijos (CF) son los costos implicados en desarrollo del proyecto.

Precio de Venta Unitario (PV) corresponde al valor agregado a cada producto

vendido por concepto de la funcionalidad agregada

Costo de Venta Unitario (CVU) representa el costo de producción de cada unidad (en

cuanto a lo que el módulo respecta)

Sustituyendo valores en la fórmula tenemos lo siguiente:

1.820.600
PEQ(unidades)
68.440  45.627

PEQ(unidades) 79.8 unidades

Lo que implica, que para alcanzar el punto de equilibrio, la empresa debe

vender aproximadamente 80 productos con el valor agregado de comunicación con la

red 1-Wire®. Para el cálculo de los Costos Fijos incluidos en la fórmula, sólo fueron

tomados en consideración los gastos realizados exclusivamente por la empresa durante

el desarrollo del proyecto, es decir, los no marcados con asterisco en la Tabla CC.

Ahora, para determinar los ingresos necesarios para estar en el punto de

equilibrio, según el Lic. Manuel Cerrano se emplea la siguiente fórmula:


174

Sustituyendo valores tenemos:

1.820.600
PEV (valores) 5.461.879 Bs.
45.627
1
68.440

La empresa necesita obtener ingresos de 5.461.879 Bs. por concepto de

ventas, para no ganar ni perder. Esto arroja, que la empresa recuperará el capital

invertido en el proyecto en aproximadamente 4 meses, según la estimación de una

venta de 20 unidades mensuales.

Punto de Equilibrio se representa Gráficamente en de la siguiente forma

(Figura Nº 6.9):

Figura Nº 6.9: Gráfica del Punto de Equilibrio del Proyecto y del Área de Ganancia.
Fuente: Díaz W. y Maderer L. (2.007)
CAPÍTULO VII

VALIDACIÓN DEL SISTEMA

7.1. INTRODUCCIÓN

Con los avances tecnológicos actuales, el diseño y desarrollo de un equipo no es

tarea sencilla, el alto grado de exigencia en la calidad y productividad que debe tener

el mismo para que sea beneficioso para el usuario final, hace aún más complicado el

obtener un resultado perfecto. Sin embargo, existen formas para corroborar la

funcionalidad del diseño, tal es el caso de la validación, que es la evidencia

documentada que provee un alto grado de seguridad de que un sistema específico o

equipo cumplirá con las especificaciones predeterminadas y sus atributos de calidad.

(Rebeca Rodríguez, 1994).

Atendiendo lo mencionado anteriormente, se puede afirmar la importancia de

cumplir con una fase o etapa de validación y puesta a punto del sistema, ya que esta

define, que tan buenos serán la calidad y el rendimiento del producto final.

7.2. VALIDACIÓN DEL HARDWARE DEL SISTEMA

Para validar el sistema, será necesario realizar una serie de pruebas distintas,

que permitan identificar un patrón común de funcionamiento (características


176

técnicas), en un conjunto de renglones específicos para cada módulo de interfaz para

las Comunicaciones o MEIC. La mayoría de las pruebas están dirigidas a la

comunicación del sistema, ya que en este factor, se encuentra la esencia fundamental

del proyecto. En síntesis, esta fase de desarrollo tiene como objetivo principal, el

conocer las condiciones y los cuidados apropiados para implementar sistema.

Entre las características técnicas que se desean identificar en el MEIC tenemos

las relacionadas en cuanto a:

x La Comunicación

a) Tiempos de Acceso a cada dispositivo.

b) Errores de transmisión para un número determinado de datos a enviar.

c) Número máximo posible de MEIC que se pueden conectar a la red 1-Wire®.

d) Errores de utilización inadecuada del hardware.

x La Operatividad

a) Estimación de tiempo máximo que puede estar conectado a la red, estar

encendido y comunicarse sin producir errores.

b) Conectar un número definido de MEIC a la red 1-Wire®, conjuntamente con

otros chips 1-Wire® y verificar el funcionamiento del sistema.

Con la finalidad de cumplir con cada uno de los parámetros definidos

anteriormente, se realizó lo siguiente:


177

7.2.1. PRUEBAS DE COMUNICACIÓN

7.2.1.1. Tiempos de Acceso a cada dispositivo.

Para cumplir con esta fase de prueba, se hizo necesario la conexión de 10

iBOARD® a la red 1-Wire® (Figura Nº 7.1), cada una, con su respectivo MEIC.

Posteriormente, se cumplió con los siguientes pasos: enviar un dato a cada

iBOARD® por igual, aumentando este dato en una unidad por cada vez que sea

enviado a todos los dispositivos de la red. Al completar 255 datos enviados a cada

iBOARD®, es posible obtener una relación de Dato(bits)/Tiempo(segundos), que

resulta ser de 12.7 baudios, para cada una de las diez iBOARD®, valor que fue

calculado de la siguiente manera:

Tiempoenvio
Tiempo1Byte S
N # datos enviados

161s
Tiempo1bit 78,75ms / bit
255 * 8

1
TasaTransferencia baudios
tiempo1bit

1bit
TasaTransferencia 12,7baudios
78,75m

A esta relación bits/tiempo se le conoce como tasa de transferencia, que no es

más, que el número de bits enviados, a través de una red de transmisión digital por

unidad de tiempo (segundo), a esta unidad, en las transmisiones digitales, y en


178

particular en este proyecto (ya que cada cambio en la señal representa un solo bit) se

le denomina “Baudio”.

Maestro MEIC MEIC

Convertidor
USB-1-wire

BUS 1-WIRE

MEIC MEIC

MEIC
MEIC MEIC

BUS 1-WIRE

MEIC MEIC MEIC

Figura Nº 7.1: Diagrama de conexión para el proceso de pruebas del Sistema


Fuente: Díaz W. y Maderer L. (2.007)

Es necesario resaltar, que la tasa de transferencia de datos calculada

anteriormente es válida, solo para la transmisión de un dato del PC a la iBOARD®,

sin tomar en cuenta los Bytes previos al envío o recepción de los datos, conocidos

como Bytes de comando. De esta manera, si se toman en cuenta los comandos que se

deben enviar previamente a la iBOARD® como los son: el serial o dirección


179

(8bytes); el comando lectura, escritura o sincronización (1 byte) y el dato de

información propiamente dicho (1 byte) con el fin de establecer una comunicación

exitosa, la tasa de transferencia será de 128.20 baudios para cada una de las 10

iBOARD®. Este valor calculado de la siguiente manera:

Tiempoenvio
Tiempo1byte S
N # datos enviados  (bytescomando * N # datos enviados )

161s
Tiempo1bit 7,89ms / bit
(255  (9 * 255)) * 8

1
TasaTransferencia baudios
tiempo1bit

1bit
TasaTransferencia 128,20baudios
7,89ms

7.2.1.2. Errores de Transmisión para un Número Determinado de Datos a

Enviar.

Para cumplir con esta fase de prueba, se conectaron diez iBOARD® a la red 1-

Wire® (Figura Nº 7.1) cada una con su respectivo MEIC y se siguieron los siguientes

pasos:

x Envío de un dato a cada una de las diez iBOARD® en la red.

x Petición a cada iBOARD® del dato enviado anteriormente.


180

x Comparación del dato recibido con el dato enviado, a fin de comprobar la

veracidad de la transmisión realizada.

x Si el dato recibido difiere al enviado, se está en presencia de un error de

transmisión.

x Una vez comprobado el dato enviado, se aumenta el mismo en uno y se procede a

enviarlo de nuevo a todas las iBOARD® de la red.

Este proceso se realizó de manera repetitiva hasta completar 255 datos enviados

y 255 datos recibidos de cada iBOARD®. Los resultados obtenidos fueron:

IBOARD® Datos Datos Recibidos Nº Bytes


Nº Enviados Correctamente Errados %Error
1 255 255 0 0%
2 255 255 0 0%
3 255 254 1 0,39%
4 255 255 0 0%
5 255 251 4 1,6%
6 255 254 1 0,39%
7 255 255 0 0%
8 255 255 0 0%
9 255 255 0 0%
10 255 253 2 0,78%
Promedio - 255 254,2 0,8 0,347%
Tabla DD: Tabla de resultados de la prueba de Errores de Transmisión
Fuente: Díaz W. y Maderer L. (2.007)

A continuación, mediante los resultados obtenidos anteriormente, se calculará

una tasa promedio de error por bit transmitido:

Datos Errados
Tasa Errorbyte errores / bytes
Datos enviados
181

0,8
Tasa Errorbyte errores / bytes
255

§ 0,8 ·
¨ ¸
Tasa Errorbit © 255 ¹ errores / bits
8

Tasa Errorbit 0,00039errores / bits

Se observa en la Tabla Nº DD que el porcentaje de error obtenido para cada

transmisión en muy bajo y calculando un promedio de todas, es aún menor. Basado

en esto, se puede afirmar que el sistema de comunicaciones diseñado cumple con una

relación de dato/error muy reducido, característica que ayuda a generar confiabilidad

de comunicación en el producto final.

7.2.1.3. Posible Número Máximo de MEIC que pueden conectarse a la red 1-

Wire®.

Existe un factor que impide directamente la realización de esta prueba, y se

refiere al reducido número de dispositivos MEIC que fue posible desarrollar para la

comprobación del proyecto, aspecto que impidió la conexión de un elevado número

de módulos electrónicos de interfaz a la red.

Ya que el sistema desarrollado fundamenta su funcionamiento en un chip 1-

Wire® y basa su desempeño en muchas de las características técnicas que


182

proporciona el fabricante para el mismo, es posible asociar muchos aspectos de

comunicación entre uno y otro, en otras palabras, debido a que el CI DS2408 es el

componente del MEIC que se conecta a la red 1-Wire®, se podría afirmar que el

número máximo de módulos electrónicos que se pueden conectar a la red coincide

con el número (teóricamente) máximo de DS2408 que el fabricante asegura, soporta

el bus Wire®.

No obstante, es necesario que en el proyecto se indiquen las especificaciones

técnicas mínimas para que se garantice al usuario final, un número comprobado de

MEIC que pueden ser conectados a la red, certificando su funcionalidad en la misma.

Para comprobar este aspecto, se realizó la siguiente prueba:

Se interconectó un total de doce iBOARD® en la red, enlazando cada una con

un MEIC, utilizando inclusive los diseños preliminares o prototipos, y se ejecutó el

siguiente procedimiento: conexión de ocho de los puertos I/O de la iBOARD® a un

LED cada uno (“Light Emitting Diode” en inglés), con la finalidad de indicar los 8

bits (haciendo uso de los 8 leds) correspondientes al dato recibido, entre cada envió

de datos, se ha de incluir una pausa que permita corroborar visiblemente el cambio en

los leds de cada iBOARD®. Una vez cumplido con el procedimiento descrito

anteriormente se obtuvieron los resultados descritos en la Tabla EE.


183

IBOARD® Datos Enviados Datos Recibidos


Nº (PC) (iBOARD®)
1 255 254
2 255 255
3 255 255
4 255 255
5 255 255
6 255 255
7 255 255
8 255 255
9 255 255
10 255 253
11 255 255
12 255 255
Tabla EE: Tabla de resultados de la prueba para corroborar Transmisión exitosa
Fuente: Díaz W. y Maderer L. (2.007)

Con los resultados presentados en esta Tabla, es posible afirmar que con un

número de 12 iBOARD® en la red, se puede establecer comunicación sin errores

significativos. Es necesario destacar que el número comprobado de MEIC, y por

tanto de IBOARD® que pueden ser conectadas a la red, de manera certificada por lo

desarrolladores en cuanto a su funcionalidad, es de 12 unidades. Dependerá del

usuario comprobar la funcionalidad para un número mayor, en caso de ser necesario.

Adicionalmente, es importante mencionar que el fabricante de los CI DS2408 asegura

el funcionamiento de un número máximo de 100 unidades bajo condiciones

especiales preestablecidas.

7.2.1.4. Errores de Utilización Inadecuada del Hardware

La validación y prueba de errores provocados de forma aleatoria por el

usuario es uno de los procesos más difíciles, debido a que no existe un patrón lógico
184

que permita inducirlos, ni tampoco una forma tangible de tabular los resultados de las

pruebas ejecutadas con los mismos. Por esta razón, las pruebas que se presentan a

continuación solo se explicarán, analizarán y verificarán brevemente a fin de obtener

resultados que ayuden a mejorar la funcionalidad del sistema desarrollado.

Para efectuar la primera prueba, se conecta un MEIC de forma invertida a la

correcta, este error provoca que los chips se sobrecalienten a un alto nivel,

provocando la necesidad de desconexión de los MEIC rápidamente, a fin de evitar

daños irreparables. Esta prueba ayudó a identificar el primer error del diseño, por

consiguiente, es tangible la necesidad de incluir un fusible en la siguiente versión del

MEIC, debido a que, en la versión actual, si existiese un corto circuito no se contaría

con una protección adecuada.

La segunda prueba consiste en invertir los canales, de envío y recepción de

datos en la iBOARD®. Este error de conexión provoca, que al tratar de establecer

comunicación con la iBOARD®, sólo se obtengan mensajes de error generados por el

control iboard_control.ocx. La tercera prueba de utilización del hardware en forma

inadecuada, consiste en conectar los módulos electrónicos de interfaz para la

comunicación a la red 1-Wire® sin conectarlos previamente a las iBOARD®.

Cuando se comete este error, el iboard_control.ocx reconoce un número específico de

MEIC conectados a la red, sin embargo, no existe posibilidad de que los datos se

transmitan en la red, sean respondidos por algún dispositivo conectado al módulo.


185

7.2.2. PRUEBAS DE OPERATIVIDAD

Para el cumplimiento de este aspecto de validación del sistema, se realizaron las

siguientes pruebas:

7.2.2.1. Certificación de tiempo de funcionamiento de un MEIC en la red

Para realizar esta prueba, se conectaron 4 iBOARD® a la red y se procedió de

la siguiente forma: en primer lugar se inicializa un contador, encargado de almacenar

el tiempo de operación de los MEIC en la red. Se envía un dato a cada una de las

iBOARD® y acto seguido se solicita a la misma, por ende, si ambos no coinciden al

menos 10 veces consecutivas, es posible que la iBOARD® no interactúe con la red y

automáticamente es necesario detener el contador y verificar el tiempo que mantuvo

una buena comunicación con la red. El proceso descrito se realizó cíclicamente

durante aproximadamente 25 horas, obteniendo como resultado que las iBOARD® se

mantenían en comunicación con la red. En base a esto, se puede afirmar que los

módulos electrónicos para la interfaz de comunicación pueden establecer

comunicación (de forma certificada por los desarrolladores) durante un tiempo

aproximado de 25 horas sin presentar fallas significativas.

7.2.2.2. Verificación del Funcionamiento del MEIC en Operación con otros

Chips 1-Wire® conectados a la Red.

La esencia fundamental del desarrollo del proyecto, consiste en interconectar

los módulos de interfaz para la comunicación, y por ende las iBOARD® a la red 1-
186

Wire®, no obstante, este no es el único dispositivo que puede establecer

comunicación con un maestro a través de dicha red. Por esta razón, se hace

imprescindible confirmar al usuario final, la posibilidad de incorporar el MEIC a la

Red 1-Wire® mientras existan otros dispositivos de distinta familia.

Para validar el funcionamiento de los módulos de interfaz para la comunicación

conjuntamente con otros dispositivos 1-Wire®, se conectaron 4 iBOARD®, 2 chips

DS2406 y 1 chip DS2413 a la red y se atendió el siguiente procedimiento: envío de

un dato a cada iBOARD®, seguidamente solicitarlo a la misma, en caso de que el

dato enviado no coincida con el recibido al menos 5 veces consecutivas, se puede

decir que la comunicación no es fiable. Una vez de realizada esta prueba, se observó

que la comunicación con las iBOARD® permanecía estable y sin errores notables,

por lo que es posible afirmar el buen funcionamiento de los módulos en la red, aún

cuando existan otros chips 1-Wire® comunicándose en la misma.

7.2.2.3. Confirmación de la Distancia de Operación entre el MEIC y el maestro

1-Wire®

A fin de comprobar una distancia aceptable, bajo la cual, se confirme el

funcionamiento de los módulos de interfaz para la comunicación, se interconectaron

dos iBOARD a la red, inicialmente con un conductor de 10 metros y finalmente de 50

metros, con dos hilos para 1-Wire® y Tierra, con la finalidad de establecer la
187

comunicación. Luego se cumplió con el siguiente procedimiento: se envió un dato a

ambas iBOARD y seguidamente se solicitó el mismo. Este procedimiento se repite

indefinidamente mientras el dato enviado y el recibido no difieran al menos 5 veces

consecutivas. Luego de realizada esta prueba, se obtuvo como resultado que con un

conductor de 50 metros de longitud se puede establecer una comunicación sin errores

significativos entre una iBOARD y el maestro 1-Wire®.

7.3. VALIDACIÓN DEL SOFTWARE DEL SISTEMA

Cuando un sistema depende no solo de un hardware, si no también de un

software, es necesario que tanto uno como otro (en unicidad) sean analizados,

depurados y corregidos, y de esta manera asegurar que el producto final del diseño,

cumple con un conjunto de especificaciones que le aseguran al usuario final, el

perfecto funcionamiento en condiciones especificas, de ambos componentes del

sistema. Por lo tanto, se hace necesario realizar un conjunto de pruebas que permitan

asegurar, bajo un conjunto de condiciones, el funcionamiento del software diseñado

para la interfaz de comunicaciones.

Las características principales a validar para el control_iboard.ocx, están

entrelazadas directamente con el código que identifica el error sucedido. De esta

forma, se pueden seleccionar el conjunto de aspectos por validar:


188

x Acción del iboard_control.ocx al desconectar el MEIC de la red mientras se

intenta establecer una comunicación con el mismo.

x Acción del iboard_control.ocx al intentar un inicio de sesión con un puerto no

disponible o incorrecto.

x Acción del iboard_control.ocx al desconectar la red 1-Wire® del puerto mientras

se ejecuta una comunicación con la misma.

Con la finalidad de cumplir con cada uno de los parámetros definidos

anteriormente, se ha de realizar lo siguiente:

7.3.1. Acción del iboard_control.ocx al Desconectar el MEIC de la Red Mientras

se Intenta Establecer una Comunicación con el mismo

Para validar la acción correcta, que ha de tomar el iboard_control.ocx al

identificar que algún MEIC se ha desconectado (mientras se intenta establecer

comunicación), se realizó la conexión de dos iBOARD mientras se establecía con las

mismas una comunicación continua. Al cabo de un tiempo que se desconecta el

MEIC de la red, el iboard_control.ocx acciona el evento “CuandoError” y la

propiedad “errores” del mismo toma el valor 18, indicando que se ha desconectado el

MEIC de la red. (Figura Nº 7.2)


189

Figura Nº 7.2: Fotografía del Momento en que se Produce un Error de Desconexión


Fuente: Díaz W. y Maderer L. (2.007)

7.3.2. Acción del iboard_control.ocx al Desconectar la Red 1-Wire® del Puerto

Mientras se Ejecuta una Comunicación con la misma.

En seguida de realizada la prueba anterior, se reconecta el MEIC a la red y una

vez obtenida nuevamente una conexión estable, se procede a desconectar la red 1-

Wire® del puerto, situación ante la cual, el iboard_control.ocx acciona el evento

“CuandoError” y la propiedad “errores” del mismo, toma el valor 17 indicando que

no existe red (Ver Figura Nº 7.3).


190

Figura Nº 7.3: Fotografía del Momento en que se Produce un Error


de Desconexión de la red
Fuente: Díaz W. y Maderer L. (2.007)

7.3.3. Acción del iboard_control.ocx al intentar un inicio de sesión con un

puerto no disponible o incorrecto.

Para producir este error, solo basta con intentar establecer comunicación con

un puerto, en el cual no exista conectado dispositivo alguno. Al intentar establecer

comunicación con un puerto donde no existe red, el iboard_control.ocx acciona el

evento “CuandoError” y la propiedad “errores” del mismo, la cual, toma el valor 17

indicando que no existe red 1-Wire® (Ver Figura Nº 7.4).


191

Figura Nº 7.4: Fotografía del Momento en que se produce el error de inicio Inválido
Fuente: Díaz W. y Maderer L. (2007)

En este mismo orden de ideas, cuando se intenta establecer comunicación con

un puerto no existente en el PC, el iboard_control.ocx acciona el evento

“CuandoError” y la propiedad “errores” del mismo toma el valor 16, indicando que

el puerto no existe (Ver Figura Nº 7.5).

Figura Nº 7.5: Fotografía del Momento en que se produce un error de inicio


en puerto inexistente.
Fuente: Díaz W. y Maderer L. (2007)
192

El conjunto de pruebas descritas y evaluadas anteriormente, permiten ensamblar

un conjunto de especificaciones técnicas que ayudarán al usuario a conocer las

limitaciones y precauciones, que se deben tener en cuenta, al utilizar este dispositivo

dentro de una aplicación cualquiera.

Características eléctricas Mínimo Típico Máximo unidades


Voltaje de operación 3.3 5 5.25 V
Consumo de corriente - 30 - mA
Características de comunicación Mínimo Típico Máximo unidades
Tasa de transmisión de datos - 128,2 - baudios
Error por bit transmitido - 0,00039 - error/bit
Numero confirmado de dispositivos en la red - 12 - -
Tiempo confirmado de comunicación en la red - 25 - horas
Distancia confirmada de comunicación - 50 - mts
Funcionamiento con otros Chips 1-Wire® en la red - SI - -
Tabla FF: Tabla de Especificaciones Obtenidas Mediante las
Pruebas al Sistema
Fuente: Díaz W. y Maderer L. (2007)
CONCLUSIONES Y RECOMENDACIONES

Una vez cumplidos de manera satisfactoria todos los objetivos planteados

en el Trabajo Especial de Grado, se presentan en este capítulo, los logros y

resultados alcanzados a lo largo del intenso proceso llevado a cabo durante las

fases de investigación, desarrollo, análisis, diseño, fabricación, configuración,

implementación y validación del sistema propuesto. También se hace referencia a

la utilidad asociada al Módulo Electrónico de Interfaz dentro de las operaciones y

actividades de la empresa ROSO Electric Suppy C.A., donde fue desarrollada la

Red de Comunicación 1-Wire® para los Sistemas de desarrollo de

Microcontroladores PIC (iBOARD®).

CONCLUSIONES

x Cumpliendo con los requerimientos planteados por la empresa para el diseño

del hardware y software, se desarrollaron los Módulos Electrónicos de Interfaz

y la herramienta de software para su interacción con el PC, logrando

comunicar los sistemas de desarrollo para microcontroladores PIC iBOARD®

y la red 1-Wire®.

x Con el diseño del dispositivo que permite la traducción entre la comunicación

serial de la iBOARD® y el bus 1-Wire® (MEIC), se agrega importancia a los

productos de la empresa, ya que mediante la utilización de los mismos, es

posible aprovechar las diversas ventajas y prestaciones que representa el


194

contar con una red de comunicaciones para el intercambio de información y la

interconexión entre diversos dispositivos.

x El Módulo Electrónico de Interfaz para la Comunicación es capaz de integrar,

física y eléctricamente a las tarjetas iBOARD® en la red, expandiendo

considerablemente sus capacidades de interconexión con otros dispositivos

similares.

x La realización de los diagramas de flujo y algoritmos de los programas que

componen cada una de las etapas del sistema y que a su vez permiten la

comunicación de la iBOARD® con el PC a través de la red 1wire, sirvieron de

guía para que el código desarrollado cumpliera con los objetivos planteados,

también ayudaron significativamente en la realización, de manera efectiva, de

modificaciones y remodelaciones en la estructura de los programas durante el

proceso de depuración de los códigos de programación.

x Con la utilización del Software ActiveX “iboard_control” es posible

establecer la comunicación con cualquiera de los dispositivos iBOARD®

presentes en la red 1-Wire®, pudiendo enviar o recibir tantos Bytes de

información como desee el usuario, con sólo especificar el Tag-Name

perteneciente a la iBOARD® con la cual desea establecer comunicación. Todo

esto, puede ser realizado con sólo incluir el OCX del ActiveX iboard-control

dentro de una aplicación compatible con el estándar para la comunicación

entre objetos OLE y que permita la escritura de algunas líneas de

programación para la administración de las variables.


195

x Todos los programas presentes en las etapas del hardware interactúan de

forma cónsona al momento de realizar la conexión con un dispositivo maestro

en la red. Esta compatibilidad, se logra después de diversas pruebas y

modificaciones que permitieron obtener un producto terminado, con las

características técnicas de confiabilidad requeridas por la empresa.

x Las características que posee el modulo fabricado en este proyecto, le

permiten adaptarse a gran cantidad de dispositivos que dispongan de

comunicación serial, como microcontroladores de diversas familias. Lo cual

implica, que las metas alcanzadas no se limitan únicamente a los sistemas de

desarrollo iBOARD®, sino que este sistema puede ser empleado en la

generación de soluciones utilizando una gran cantidad de productos.

x A través de una larga fase de puesta a punto se realizó una gran cantidad de

modificaciones a los programas del sistema, disminuyéndose los tiempos de

acceso de los dispositivos y resultando suficientemente cortos para cumplir

con las expectativas de la empresa para el sistema. Este intervalo de tiempo,

representa la rapidez del sistema cuando realiza, tanto el reconocimiento y la

selección de los dispositivos presentes, como el envío o recepción de los datos

de información.

x Las pruebas realizadas con respecto a los tiempos de actualización y tiempos

de comunicación, arrojaron resultados satisfactorios en cuanto a la

confiabilidad y rendimiento del sistema, teniendo que la tasa de transferencia

típica es de aproximadamente 128 baudios. Estos valores le permiten a la


196

empresa, considerar el uso del Módulo Electrónico de Interfaz para la

Comunicación 1-Wire® en otros dispositivos.

x Con el desarrollo del proyecto se soluciona el problema relacionado con el

hecho de no poseer un dispositivo que se pueda comunicarse con un protocolo

1-Wire® en ambas direcciones. Con la fabricación del Módulo Electrónico de

Interfaz, un sistema (con funciones intrínsecas de maestro 1-Wire®) puede

interconectarse fácilmente con otros similares en la red.

RECOMENDACIONES

x Se recomienda a la universidad, procurar la continuidad del presente estudio

mediante la creación de una línea de investigación relacionada con proyectos

sobre instrumentación virtual, aplicaciones mediante microcontroladores,

redes de comunicación, etc. Que permita el incremento en la realización de

proyectos de este tipo en el cuerpo de estudiantes de dicha institución.

x Para mejorar la seguridad en el hardware del dispositivo, se sugiere la

incorporación de un fusible que impida que los dispositivos en el MEIC

resulten perjudicados por cortocircuitos accidentales en la red o en su fuente

de alimentación.

x Mediante un estudio de los fundamentos aplicados en este proyecto, se podrán

conectar al MEIC dispositivos distintos a la iBOARD®, logrando así su


197

incorporación a la red 1-Wire® y obteniendo un conjunto mucho más extenso

de recursos dentro de la red.

x El usuario del MEIC podrá comprobar un dato recibido, enviándolo de nuevo

a la red y comparando que sean idénticos, ó si lo prefiere, podrá generar un

código de verificación CRC (“Código de Redundancia Cíclica”) después de

cada ocho Bytes de información, comprobando que la comunicación ha sido

exitosa. Por medio de este sistema el usuario podrá desarrollar su propio

protocolo de comunicaciones, estableciendo la forma más adecuada para la

comprobación y seguridad en la comunicación.


APÉNDICES
A) CÓDIGO DEL PROGRAMA DE LA IBOARD EN LENGUAJE MBASIC

1 'CONFIGURACION DE LA INTERRUPCION EXTERNA


2 SETEXTINT EXT_L2H 'CONFIGURACION CON FLANCO DE SUBIDA
3 ONINTERRUPT EXTINT,RUT1_WIRE 'SE ESTABLECE LA ETIQUETA Y EL TIPO DE LA INTERRUPCION
4 DISABLE EXTINT 'HABILITA LA INTERRUPCION
5 'DEFINICION DE VARIABLES Y CONSTANTES
6 PINTX1_WIRE CON 9 'PIN UTILIZADO PARA ENVIAR EL DATO A LA INTERFAZ 1-WIRE
7 PINRX1_WIRE CON 10 'PIN UTILIZADO PARA RECIBIR EL DATO DE LA INTERFAZ
8 NBYTES1_WIREA CON 7 ‘NUMERO DE BYTES DISPONIBLES A ENVIAR
9 NBYTES1_WIREB CON 7 'NUMERO DE BYTES DISPONIBLES A RECIBIR
10 VECDATOS1_WIREE VAR BYTE(8) 'VECTOR DE DATOS A ENVIAR
11 VECDATOS1_WIRER VAR BYTE(8) 'VECTOR DE DATOS A RECIBIR
12 CONT1_WIREA VAR BYTE 'VARIABLE PARA CONTAR LOS BITS ENVIADOS
13 CONT1_WIREB VAR BYTE 'VARIABLE PARA CONTAR LOS BITS RECBIDOS
14 CMD1_WIRE VAR BYTE 'COMANDO RECIBIDO
15 CMDVALID1_WIRE VAR BIT 'BANDERA PARA IDENTIFICAR COMANDO VALIDO
16 CMD_ENVIAR CON 254 'COMANDO QUE INDICA ENVIO DE DATOS
17 CMD_RECIBIR CON 252 'COMANDO QUE INDICA RECEPCION DE DATOS
18 CMD_SINC CON 170 'COMANDO QUE INDICA SINCRONIZACION
19 'INCIALIZACION DE LOS CONTADORES
20 CONT1_WIREA=0
21 CONT1_WIREB=0
22 'VARIABLES DEL PROGRAMA DE USUARIO
23 VALOR_DIGITAL1 VAR WORD 'ALMACENA EL VALOR DE LA CONVERSIÓN
24 VALOR_DIGITAL2 VAR WORD 'ALMACENA EL VALOR DE LA CONVERSIÓN
25 VALOR_DIGITAL3 VAR WORD 'ALMACENA EL VALOR DE LA CONVERSIÓN
26 VALOR_DIGITAL4 VAR WORD 'ALMACENA EL VALOR DE LA CONVERSIÓN
27 RELOJ_ADC CON 2
28 PAUSE 1000
29 'PROGRAMA DEL USUARIO
30
'**************************************************************************************************
31 PRINCIPAL:
32 OUTH=VECDATOS1_WIRER(CONT1_WIREB)
33 PAUSE 100 'RETARDO TIEMPO DE OPERACIONES DE USUARIO
34 ADIN AX0,RELOJ_ADC,AD_RON,VALOR_DIGITAL1
35 ADIN AX1,RELOJ_ADC,AD_RON,VALOR_DIGITAL2
36 ADIN AX2,RELOJ_ADC,AD_RON,VALOR_DIGITAL3
37 ADIN AX3,RELOJ_ADC,AD_RON,VALOR_DIGITAL4
38 VECDATOS1_WIREE(0)=VALOR_DIGITAL1.LOWBYTE
39 VECDATOS1_WIREE(1)=VALOR_DIGITAL1.HIGHBYTE
40 VECDATOS1_WIREE(2)=VALOR_DIGITAL2.LOWBYTE
41 VECDATOS1_WIREE(3)=VALOR_DIGITAL2.HIGHBYTE
42 VECDATOS1_WIREE(4)=VALOR_DIGITAL3.LOWBYTE
43 VECDATOS1_WIREE(5)=VALOR_DIGITAL3.HIGHBYTE
44 VECDATOS1_WIREE(6)=VALOR_DIGITAL4.LOWBYTE
45 VECDATOS1_WIREE(7)=VALOR_DIGITAL4.HIGHBYTE
46 ENABLE EXTINT 'HABILITA LA INTERRUPCION EXTERNA
47 GOTO PRINCIPAL 'REPETIR APLICACIÓN USUARIO INDEFINIDAMENTE
48 RETURN
49 '**********************************************************************************************
50 'SUBRUTINAS PARA INTERFAZ CON 1-WIRE
51 '**********************************************************************************************
52 RUT1_WIRE:
53 DISABLE EXTINT 'IMPIDE QUE OCURRA OTRA INTERRUP
54 SERIN PINRX1_WIRE,I9600,300,EMPTY1_WIRE,[CMD1_WIRE] 'RECIBE EL BYTE DE COMANDO
55 CMDVALID1_WIRE=1 'ESTABLECE BANDERA COMANDO VALIDO
56 IF CMD1_WIRE=CMD_ENVIAR THEN 'SI EL COMANDO ES FE ENVIA LOS DATOS
57 SEROUT PINTX1_WIRE,I9600,[VECDATOS1_WIREE(CONT1_WIREA)]
58 IF CONT1_WIREA<NBYTES1_WIREA THEN
59 CONT1_WIREA=CONT1_WIREA+1 'AUMENTA EL CONT DE ENVIO SI LLEGO AL MAX
60 ELSE
61 CONT1_WIREA=0 'REINICIA EL CONTADOR DE ENVIO SI LLEGO AL MAX.
62 ENDIF
63 ENDIF
64 IF CMD1_WIRE=CMD_RECIBIR THEN 'SI EL COMANDO ES FC RECIBE LOS DATOS
65 SERIN PINRX1_WIRE,I9600,300,EMPTY1_WIRE,[VECDATOS1_WIRER(CONT1_WIREB)]
66 IF CONT1_WIREB<NBYTES1_WIREB THEN
67 CONT1_WIREB=CONT1_WIREB+1 'AUMENTA EL CONT DE RECEPCION SI NO ESTA EN MAX.
68 ELSE
69 CONT1_WIREB=0 'REINICIA EL CONT DE RECEPCION SI LLEGO AL MAX.
70 ENDIF
71 ENDIF
72 IF CMD1_WIRE=CMD_SINC THEN 'SI EL COMANDO ES AA SE SINCRONIZA
73 SEROUT PINTX1_WIRE,I9600,[VECDATOS1_WIREE(CONT1_WIREA)] 'ENVIA UN DATO AL BUFER
74 CONT1_WIREA=0 'REINICIA EL CONTADOR DE ENVIO
75 CONT1_WIREB=0 'REINICIA EL CONTADOR DE RECEPCION
76 ENDIF
77 EMPTY1_WIRE: 'SI EL COMANDO NO ES CORRECTO
78 CMDVALID1_WIRE=0 'ESTABLECE LA BANDERA COMANDO RECIBIDO INVALIDO
79 RESUME
80 '*********************************************************************************************
B) CÓDIGO DEL PROGRAMA EN LENGUAJE MBASIC DEL PIC16F628 DEL MEIC
CPU = 16F628
MHZ = 4
CONFIG 16152
'CONFIGURACION DE LA INTERRUPCION EXTERNA
SETEXTINT EXT_L2H 'CONFIGURACION CON FLANCO DE SUBIDA
ONINTERRUPT EXTINT,RUT1_WIRE 'SE ESTABLECE LA ETIQUETA Y EL TIPO DE
INTERRUPCION
DISABLE EXTINT 'HABILITA LA INTERRUPCION
'DEFINICION DE VARIABLES Y CONSTANTES
DATO VAR BYTE
DATO2 VAR BYTE
DATORECIBIDO VAR BYTE
DATOAENVIAR VAR BYTE
FLAG VAR BYTE 'VARIABLE AUXILIAR
FLAG2 VAR BYTE
CONT1 VAR BYTE 'VARIABLE PARA CONTAR LOS BITS RECBIDOS
CONT2 VAR BYTE
CONT3 VAR BYTE
HAB VAR BYTE
DATOWORD VAR WORD
CMD_ENVIAR CON 254 'COMANDO QUE INDICA ENVIO DE DATOS DESDE IBADR
CMD_RECIBIR CON 252 'COMANDO QUE INDICA RECEPCION DE DATOS EN LA IBOARD
CMD_SINC CON 170 'COMANDO QUE INDICA SINCRONIZACION
SETHSERIAL H9600
PAUSE 200

'INCIALIZACION DE LAS VARIABLES


OUTPUT A3
INPUT A7
INPUT A6
INPUT A1
INPUT A0
INPUT B7
INPUT B6
INPUT B5
INPUT B4
DATA "IBOARD" 'GUARDA EN LA EEPROM LA
IDENTIFICACION DEL DISPOSITIVO
OUT3=0
FLAG=0
FLAG2=0
CONT1=0
CONT2=1
CONT3=0
DATO = 0
HAB=0
DATOWORD=0
MODO=0
DISABLE EXTINT
SETEXTINT EXT_H2L
ENABLE EXTINT

'PROGRAMA PRINCIPAL
PRINCIPAL:
HSERSTAT 4,NADA_EN_BUFFER
HSERIN [DATOAENVIAR]
DATO2=DATOAENVIAR
HSERSTAT 0

NADA_EN_BUFFER:
IF (CONT1>=CONT2) AND HAB=0 THEN
DISABLE EXTINT
CONT1= 0
CONT2= 1
IF DATO=$FF OR FLAG=2 THEN
FLAG=2
OUT3=0
OUT3=1
PAUSE 50
OUT3=0
'SEROUT A1,I9600, [CMD_ENVIAR ]
HSEROUT [CMD_ENVIAR ]
HSERSTAT 1
DATO2=DATOAENVIAR
OUTPUT A7
OUTPUT A6
OUTPUT A1
OUTPUT A0
OUTPUT B7
OUTPUT B6
OUTPUT B5
OUTPUT B4
OUT7=DATO2.BIT0
OUT12=DATO2.BIT1
OUT13=DATO2.BIT2
OUT14=DATO2.BIT3
OUT15=DATO2.BIT4
OUT6=DATO2.BIT5
OUT1=DATO2.BIT6
OUT0=DATO2.BIT7
HAB=1
MODO=MODO+1
ELSEIF DATO=$FA
IF FLAG2=0 THEN
TOGGLE A2
FLAG2=1
ENDIF
TOGGLE A2
READ (CONT3-1),DATO2 'LEE DE LA EEPROM LA PALABRA IBOARD
OUTPUT A7
OUTPUT A6
OUTPUT A1
OUTPUT A0
OUTPUT B7
OUTPUT B6
OUTPUT B5
OUTPUT B4
OUT7=DATO2.BIT0
OUT12=DATO2.BIT1
OUT13=DATO2.BIT2
OUT14=DATO2.BIT3
OUT15=DATO2.BIT4
OUT6=DATO2.BIT5
OUT1=DATO2.BIT6
OUT0=DATO2.BIT7
HAB=3
ELSEIF DATO=$FC
FLAG=1
HAB=2
ELSEIF DATO=$AA
FLAG=0
HAB=0
OUT3=1
PAUSE 50
OUT3=0
HSEROUT [SINCRONIZAR]
HSERSTAT 1
ENDIF
ENDIF
ENABLE EXTINT
GOTO PRINCIPAL 'REPETIR INDEFINIDAMENTE

;SUBRUTINAS
;-----------------------------------------------------------------------------------------------
RUT1_WIRE:
DISABLE EXTINT 'IMPIDE QUE OCURRA OTRA INTERRUPCION
CONT1=CONT1+1
IF HAB=0 OR HAB=2 THEN
INPUT A7
INPUT A6
INPUT A1
INPUT A0
INPUT B7
INPUT B6
INPUT B5
INPUT B4
DATOWORD.BIT0=IN7
DATOWORD.BIT1=IN12
DATOWORD.BIT2=IN13
DATOWORD.BIT3=IN14
DATOWORD.BIT4=IN15
DATOWORD.BIT5=IN6
DATOWORD.BIT6=IN1
DATOWORD.BIT7=IN0
DATO=DATOWORD.LOWBYTE
IF FLAG=1 THEN
OUT3=1
PAUSE 50
OUT3=0
HSEROUT [CMD_RECIBIR]
HSERSTAT 1
PAUSE 100
HSEROUT [DATO]
HSERSTAT 1
DATO=0
FLAG=0
ELSEIF FLAG=2
FLAG=0
ENDIF
HAB=0
ELSEIF HAB=1
HAB=0
CONT1=0
ELSE
HAB=0
CONT3=CONT3+1
CONT1=1
DATO=$FA
IF CONT3>=3 THEN
HAB=0
CONT1=0
CONT3=0
DATO=0
FLAG2=0
ENDIF
ENDIF
RESUME
C) CÓDIGO DEL PROGRAMA PARA ESTABLECER LA COMUNICACIÓN EN
LA RED. ACTIVEX “IBOARDCONTROL.OCX”

'DECLARACIÓN DE FUNCIONES TMEX


'CAPA SE SESIÓN'
'---------------------------------------------------------------------------------------------------------------------------------------------
Private Declare Function TMExtendedStartSession Lib "IBFS32.DLL" (ByVal PortNum As Integer, ByVal PortType
As Integer, ByVal Reserved As Any) As Long
Private Declare Function TMEndSession Lib "IBFS32.DLL" (ByVal session_handle As Long) As Integer

'CAPA DE RED
'---------------------------------------------------------------------------------------------------------------------------------------------
Private Declare Function TMNext Lib "IBFS32.DLL" (ByVal session_handle As Long, state_buffer As Byte) As
Integer
Private Declare Function TMRom Lib "IBFS32.DLL" (ByVal session_handle As Long, state_buffer As Byte, ROM
As Integer) As Integer

'CAPA DE ENLACE
'---------------------------------------------------------------------------------------------------------------------------------------------
Private Declare Function TMSetup Lib "IBFS32.DLL" (ByVal session_handle As Long) As Integer
Private Declare Function TMTouchByte Lib "IBFS32.DLL" (ByVal session_handle As Long, ByVal outbyte As
Integer) As Integer
Private Declare Function TMTouchReset Lib "IBFS32.DLL" (ByVal session_handle As Long) As Integer

Option Explicit

'DECLARACIÓN DE VARIABLES UTILIZADAS EN LAS FUNCIONES DEL CONTROL


Dim SHandle As Long ' Manejador de la sesión de comunicación
Dim state_buffer(15360) As Byte ' Almacena los datos que llegan o salen del Puerto
Dim ROM(8) As Byte ' Arreglo Temporal 1 para almacenar el serial del dispositivo
Dim ROM2(8) As Integer ' Arreglo Temporal 2 para almacenar el serial del dispositivo
Dim CONTADOR2 As Integer ' Contador utilizado para recorrer los arreglos temporales
Dim Romstr As String ' String que almacena el serial del dispositivo
Dim seriales(20) As String ' Arreglo para almacenr todos los seriales
Const NumChars = "0123456789ABCDEF" ' Constante de las Funciones ToDec y FromDec
Const channel_acces As Integer = &H5A ' Constante para inicializar el modulo de interfaz
Const Read_channel As Integer = &HF5 ' Constante para inicializar el modulo de interfaz
Public PortNum As Integer ' Propiedad que contiene el numero del Puerto Serial
Public PortType As Integer ' Propiedad que contiene el Tipo de Adaptador 1-Wire
Public Numdispo As Integer ' Propiedad que indica numero de Iboards en la red

Function BuscarSerial() As Boolean


Dim FLAG As Integer ' Variable que almacena el valor retorno función
Dim i As Integer ' Variable de uso general
Dim J As Integer ' Variable de uso general
Dim k As Byte ' Variable de uso general
Dim numchip As Byte ' Variable que almacena N# de 2408 en la red 1-wire
Dim ARREGLO(10) As String 'Arreglo temporal de seriales 2408
Dim ARREGLO2(10) As String 'Arreglo temporal de seriales iboard

'INICIALIZACION DE VARIABLES
Errores = 0
Numdispo = 0
numchip = 0
If Enabled = True Then 'Si el control esta habilitado entonces
'INICIA UNA SESIÓN DE COMUNICACIÓN CON EL PUERTO
SHandle = -1 'Inicializa la variable que indica el estado de la sesión
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo
DoEvents 'Ejecutar eventos pendientes
Errores = TMSetup(SHandle) 'La propiedad errores se iguala a al valor que retorna la función Tmex
If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces
'Inicializa Variables
FLAG = 1
Numdispo = 0
DoEvents 'Ejecutar eventos pendientes
While FLAG > 0 'Mientras la variable que retorne la función Tmex sea mayor a cero hacer:
ROM2(0) = 0 ' Limpia el arreglo temporal
FLAG = TMNext(SHandle, state_buffer(0)) 'Verifica si hay otro Dispositivo 1wire en la red
Call TMRom(SHandle, state_buffer(0), ROM2(0)) 'Almacena el serial del dispositivo
DoEvents 'Ejecutar eventos pendientes
If ROM2(0) = 41 Then 'Si el primer byte del serial del dispositivo 1wire es 41(familia ds2408), entonces:
Romstr = "" 'Limpiar string temporal de seriales
'Se Convierte el arreglo temporal de seriales en un string temporal de seriales
For i = 7 To 0 Step -1
If (ROM2(i) <= &HF) Then Romstr = Romstr + "0"
Romstr = Romstr + Hex$(ROM2(i))
DoEvents 'Ejecutar eventos pendientes
Next i

ARREGLO2(numchip) = Romstr 'Almacenar los seriales de los dispositivos 2408 en un vector de seriales
numchip = numchip + 1 'Numero de 2408 rn la red, aumenta 1
End If
Wend 'Finaliza el bucle de busqueda de chips 2408 en la red 1-wire
If numchip > 0 Then 'Si hay almenos un 2408 en la red
If numchip >= 2 Then 'Si hay mas de 1 2408 en la red
numchip = numchip – 1 'Eliminar un chip del total contado
End If
BuscarSerial = True 'Se consiguio por lo menos un chip 2408 por lo que la
'función regresa "verdadero" o true
DoEvents 'Ejecutar eventos pendientes
For J = 0 To numchip - 1 'desde 0 hasta numero de 2408 menos 1 hacer:
Call Inicializar(ARREGLO2(J)) 'función para inicializar los 2408 de la red
If Product_id(ARREGLO2(J)) = True Then 'Si la función consultada devuleve True,
'el serial corresponde a una iboard
ARREGLO(numdispo) = ARREGLO2(numdispo) 'Guardar en el arreglo de seriales el serial
'de 2408 que respondió como iboard
Numdispo = Numdispo + 1 'Numero de iboard en la red aumenta en 1
End If
Next J
End If
For k = 0 To 10 'Desde 0 hasta 10
seriales(k) = ARREGLO(k) 'arreglo de seriales es igual a arreglo temporal de seriales iboard
Next k
Else 'Si la sesión no es valida
Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If
TMEndSession (SHandle) 'Cierra la sesión
Else 'Si el control no estaba habilitado
BuscarSerial = False 'La función BuscarSerial retorna false o "Falso"
For k = 0 To 10 'Desde 0 hasta 10
seriales(k) = "" 'Llena el arreglo de seriales con valores nulos
Next k
End If
End Function 'FIN DE LA FUNCION

-------------------------------------------------------------------------------------------------------------------------------
Function AutoBuscar_Puerto()
If Enabled = True Then
DoEvents
Dim X As Byte
Dim Dato As Byte
Dim Resultado As Boolean
Dim Commport As Integer 'Variable temporal que almacena el número del puerto
Dim Commtype As Integer 'Variable temporal que almacena el tipo de convertidor 1-wire
'Inicialización de las variables
Resultado = False

DoEvents 'Ejecutar eventos pendientes


For X = 1 To 10 'Desde X igual a 1 hasta 10 hacer:
DoEvents 'Ejecutar eventos pendientes
SHandle = TMExtendedStartSession(X, 5, vbNullString) 'Verifica si existe un convertidor 1wire en el puerto X
DoEvents 'Ejecutar eventos pendientes
If SHandle > 0 Then ' Si la sesión es correcta (si consigue ese tipo de convertidor en el puerto x) hacer:
DoEvents 'Ejecutar eventos pendientes
Dato = TMSetup(SHandle) 'Guarda en una variable el setup del puerto
DoEvents 'Ejecutar eventos pendientes
If Dato = 1 Then 'Si el setup es valido
DoEvents 'Ejecutar eventos pendientes
TMTouchReset (SHandle) 'Resetea la red 1-wire
DoEvents 'Ejecutar eventos pendientes
Commport = X 'El numero del puerto es el valor de X donde consigue
'el tipo de convertidor 1-wire y una sesión valida
Commtype = 5 'El tipo de puerto es el mismo con el que consiguió una sesión valida
Resultado = True 'Bandera de resultado es igual a true
Exit For 'Se sale del for
End If
End If
Next
DoEvents ' Ejecutar eventos pendientes
If Resultado Then ' Si Resultado = True, entonces
PortNum = Commport ' Encontro un puerto válido y
PortType = Commtype ' Muestra los mensajes respectivos
Else
PortNum = 0 ' Si Resultado = False, entonces
End If ' el puerto es 0 y el convertidos es 0
Else
PortNum = 0 ' Si el control no esta habilitado entonces
PortType = 0 ' El puerto es 0 y el tipo de convertidor=0
End If
End Function
Function Inicializar(SERIAL As String)
Dim i As Integer 'Variable de uso general
Dim FLAG As Integer 'Variable de uso general
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial

If Enabled = True Then 'Si el control esta habilitado entonces:

'INICIA UNA SESIÓN DE COMUNICACIÓN CON EL PUERTO


SHandle = -1 'Inicializa la variable que indica el estado de la sesión
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo

If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces


FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía uno por uno los bytes del
Next CONTADOR2 'arreglo temporal para establecer la comunicación con el chip 1-wire

FLAG = TMTouchByte(SHandle, &HCC) 'Envía un byte a un dispositivo de la red 1-wire


FLAG = TMTouchByte(SHandle, &H8D) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &H0) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &H8C) 'Envía un byte a un dispositivo de la red 1-wire
TMEndSession (SHandle) 'Finaliza la sesión
Else 'Si el setup no es valido
Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If 'Si el control no estaba habilitado
End If
End Function

Private Function ReadSwitchNew(SERIAL As String) As String


Dim Resultado As String 'Variable de uso general
Dim FLAG As Integer 'Variable de uso general
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial
SHandle = -1
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo
FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire

For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía uno por uno los bytes del
Next CONTADOR2 'arreglo temporal para establecer la comunicación con el chip 1-wire

FLAG = TMTouchByte(SHandle, Read_channel) 'Envía un byte a un dispositivo de la red 1-wire


Resultado = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
TMEndSession (SHandle) 'Finaliza la sesión
ReadSwitchNew = Resultado 'El valor leído es devuelto por la función
End Function

Function Leerbyte(SERIAL As String) As String


If Enabled = True Then 'Si el control esta habilitado entonces:
Dim Resultado As String 'variable de uso general
Dim FLAG As Integer 'variable de uso general
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial
SHandle = -1
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend 'Final del lazo

If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces


DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR2
DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &H0) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Pone en alto la línea 1-wire para leer su estado
Call retardo(0.03) 'Produce una espera de 30 milisegundos
DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR2

FLAG = TMTouchByte(SHandle, Read_channel) 'Envía un byte a un dispositivo de la red 1-wire


Resultado = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
TMEndSession (SHandle) 'Finaliza la sesión
Leerbyte = Resultado 'La función devuelve el valor leído
Call retardo(0.03) 'Produce una espera de 30 milisegundos
Else 'Si el setup no es valido
Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If
End If
End Function

Function Enviarbyte(Dato As Byte, SERIAL As String)


Dim i As Integer 'variable de uso general
Dim FLAG As Integer 'variable de uso general
'Inicialización de variables
Errores = 0

If Enabled = True Then 'Si el control esta habilitado entonces:


SERIAL = Tag_nameto_serial(SERIAL) 'Llamar a la función que convierte el tagname al serial
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial
SHandle = -1
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo
DoEvents 'Ejecutar eventos pendientes

If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces


FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR2
DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFC) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Not (&HFC)) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Dato) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Not (Dato)) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
TMEndSession (SHandle) 'Finaliza la sesión

Else 'Si el setup no es valido


Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If
End If
End Function

Function Sincronizar(SERIAL As String)


If Enabled = True Then 'Si el control esta habilitado entonces:
Dim i As Integer 'variable de uso general
Dim FLAG As Integer 'variable de uso general
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial
SHandle = -1
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo
DoEvents 'Ejecutar eventos pendientes

If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces


FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR2
DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HAA) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Not (&HAA)) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
TMEndSession (SHandle) 'Finaliza la sesión
Call retardo(0.08) 'Produce una espera de 80 milisegundos
Else 'Si el setup no es valido
Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If
End If
End Function

Function Product_id(SERIAL As String) As Boolean


Dim FLAG As Integer 'variable de uso general
Dim Resultado As String 'variable de uso general
Dim MOMENTANEO(3) As Byte 'variable de uso general
Dim CONTINTERNO As Byte 'variable de uso general

If Enabled = True Then 'Si el control esta habilitado entonces:


'Inicialización de las variables
CONTINTERNO = 0
Product_id = False
Call CONVERTIR_SERIAL(SERIAL) 'Llamar a la función convertir serial
While (Product_id = False And CONTINTERNO < 4) ' intenta establecer la comunicación con la iboard 4 veces
SHandle = -1
While (SHandle <= 0) 'Mientras no se establezca una sesión
SHandle = TMExtendedStartSession(PortNum, PortType, vbNullString) 'Trata de lograr un sesión
'valida con el puerto
Wend ' Final del lazo

If (TMSetup(SHandle) = 1) Then 'Si la sesión es valida entonces


FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFA) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Not (&HFA)) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Pone en alto la línea 1-wire para leer su estado
DoEvents 'Ejecutar eventos pendientes
FLAG = TMTouchReset(SHandle) 'Resetea la red 1-wire
FLAG = TMTouchByte(SHandle, &H55) 'Envía un byte a un dispositivo de la red 1-wire
For CONTADOR2 = 0 To 7
FLAG = TMTouchByte(SHandle, ROM(CONTADOR2)) 'Envía un byte a un dispositivo de la red 1-wire
Next CONTADOR2
FLAG = TMTouchByte(SHandle, channel_acces) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, Not (&HFF)) 'Envía un byte a un dispositivo de la red 1-wire
FLAG = TMTouchByte(SHandle, &HFF) 'Pone en alto la línea 1-wire para leer su estado
DoEvents 'Ejecutar eventos pendientes
MOMENTANEO(0) = ReadSwitchNew(SERIAL) 'Llama a la función para leer un byte sin comando
If MOMENTANEO(0) = 73 Then 'Si el byte leído es "i" (ascii) entonces
DoEvents 'Ejecutar eventos pendientes
MOMENTANEO(1) = ReadSwitchNew(SERIAL) 'Llama a la función para leer un byte sin comando
If MOMENTANEO(1) = 66 Then 'Si el siguiente byte leído es "b" (ascii)
Product_id = True 'El dispositivo que respondió es una iboard
Else
Product_id = False 'El dispositivo no es una iboard
End If
Else
Product_id = False 'El dispositivo no es una iboard
End If
DoEvents 'Ejecutar eventos pendientes
CONTINTERNO = CONTINTERNO + 1 'Contador de intentos de comunicación aumenta en 1
TMEndSession (SHandle) 'Finaliza la sesión
Else 'Si el setup no es valido
Call CodigoDeErrores 'Llamada a función de verificación del error sucedido
End If
Wend
End If
End Function

Private Function retardo(valor As Single)


Dim newtime As Single variable de uso general
newtime = Timer + valor 'nuevo tiempo es el valor actual del sistema + el tiempo deseado
Do While (newtime > Timer)
DoEvents 'Ejecutar eventos pendientes ' Ejecutar eventos pendientes mientras el tiempo actual
Loop 'sea menor al deseado
End Function

Private Function CONVERTIR_SERIAL(SERIAL As String)


If Len(SERIAL) = 16 Then 'Si la longitud de la cadena es igual a 16 entonces:
ROM(7) = ToDec(Mid(SERIAL, 1, 2), 16) 'Convierte los 16 caracteres en un 8 byte
ROM(6) = ToDec(Mid(SERIAL, 3, 2), 16) 'y los guarda en el arreglo temporal de seriales
ROM(5) = ToDec(Mid(SERIAL, 5, 2), 16) 'Convierte los 16 caracteres en un 8 byte
ROM(4) = ToDec(Mid(SERIAL, 7, 2), 16) 'y los guarda en el arreglo temporal de seriales
ROM(3) = ToDec(Mid(SERIAL, 9, 2), 16) 'Convierte los 16 caracteres en un 8 byte
ROM(2) = ToDec(Mid(SERIAL, 11, 2), 16) 'y los guarda en el arreglo temporal de seriales
ROM(1) = ToDec(Mid(SERIAL, 13, 2), 16) 'Convierte los 16 caracteres en un 8 byte
ROM(0) = ToDec(Mid(SERIAL, 15, 2), 16) 'y los guarda en el arreglo temporal de seriales
Else 'Si la cadena tiene un numero de caracteres distinto a 16
ROM(7) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(6) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(5) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(4) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(3) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(2) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(1) = 0 'Poner un valor nulo en el arreglo temporal de seriales
ROM(0) = 0 'Poner un valor nulo en el arreglo temporal de seriales
Errores = 10 'Error de serial o tagname
RaiseEvent CuandoError 'Ejecuta o activa el evento cuando error
End If

Function Tag_nameto_serial(tagname As String) As String


Dim numero As Byte 'variable de uso general

If tagname <> "" Then 'Si el tagname no es nulo entonces:


If Mid(tagname, 1, 6) = "iboard" Then 'Si el tagname es iboard
numero = Mid(tagname, 7, 1) 'Toma el valor siguiente al tagname como el
'numero de iboard
Tag_nameto_serial = seriales(numero - 1) 'La función devuelve el serial correspondiente al
'tagname
Else 'Si el tagname no es iboard
If Mid(tagname, 1, Len(tagname) - 1) = Nuevo_Tag_Name Then 'Si el tagname es el mismo que
'Nuevo_Tag_Name
numero = Mid(tagname, Len(tagname), 1) 'Toma el valor siguiente al nuevo tagname como el
'numero de iboard
Tag_nameto_serial = seriales(numero - 1) 'La función devuelve el serial correspondiente al
'tagname
Else
If Mid(tagname, 1, Len(tagname) - 2) = Nuevo_Tag_Name Then 'Si el tagname es el mismo que
'Nuevo_Tag_Name
numero = Mid(tagname, Len(tagname), 2) 'Pero el numero es mayor a 9 Toma el valor de los
'2 siguientes caracteres del nuevo tagname como
Tag_nameto_serial = seriales(numero - 1) 'el numero de iboard y la función devuelve el
Else 'serial correspondiente al nuevo tagname
Tag_nameto_serial = tagname 'Si el serial tiene una total de caracteres distinto a
End If '16 entonces la function retorna el mismo tagname
End If
End If
Else
tagname = "Error de Tagname"
End If
End Function

Function CodigoDeErrores()
Select Case Errores 'Selecciona, de acuerdo al valor retornado por la función
'tmsetup, el error que ha ocurrido
Case 0
Errores = 11 ' FALLO DEL SETUP
Case 2
Errores = 12 ' SETUP OK PERO HAY CORTOCIRCUITO
Case 3
Errores = 13 ' NO EXISTE RED
Case 4
Errores = 14 ' SETUP NO SOPORTADO
Case -200
Errores = 15 ' SESION INVALIDA
Case Is < 0
Errores = 16 ' ERROR
End Select

RaiseEvent CuandoError Ejecuta o activa el evento cuando error


End Function
236

BIBLIOGRAFÍA

Libros:

1. Angulo, J. Romero, S. y Angulo, I. (2000). Microcontroladores <<PIC>>

diseño practico de aplicaciones Segunda Parte: PIC16876X. España. Editorial

McGraw Hill.

2. UNEFA. (2000) Manual de normas y procedimientos para la realización del

trabajo especial de grado de pregrado. Caracas Venezuela

3. UPEL (2006). Manual de trabajos de grado de maestría y tesis doctorales.

Caracas, Venezuela.

Revistas Especializadas:

1. Castaño, J. González, M. (2001). Curso practico sobre Microcontroladores.


Cekit. Vol. 24.
2. Castaño, J. González, M. (2001). Curso practico sobre Microcontroladores.
Cekit. Vol. 25.

Documentos y Reportes Técnicos

1. Roso Electric Supply. (2006). iBOARD® sistemas de desarrollo para

microcontroladores PIC: Manual de usuario y primeros pasos. Versión 1.0.

(Documento Técnico): Disponible en http:\\www.roso-control.com. (Consulta:

2006, Noviembre 2.

Fuentes Electrónicas en Línea:

x Libros

1. Rodríguez, J (2005). Clases de Microcontroladores. (Documentos en Línea).

Disponible: www.roso-control.com. (Consulta: 2006, Diciembre, 01).


237

2. Rodríguez, J y Villegas, A. (2004). Sistema de desarrollo MDK-B28. (Libro

en Línea). Disponible: www.roso-control.com. (Consulta: 2006, Diciembre,

12).

3. CCNA 1: Networking Basics, Cisco Networking Academy, 2007. Contenido

del curso. Disponible por suscripción en: http://www.cisco.com/web/learning/

netacad/index.html. (Consulta: 2007, Marzo, 20).

x Documentos técnicos

1. Catálogo Digikey, (Documento en Línea). 2000. Digikey. Disponible:

www.digikey.com. (Consulta: 2007, febrero, 20).

2. Catálogo Jameco, (Documento en Línea). 2001. Jameco. Disponible:

www.Jameco.com. (Consulta: 2007, febrero, 20).

3. Hoja de datos del PIC 16F628, (Documento en Línea). 2004. MICROCHIP.

Disponible: www.microchip.com (Consulta: 2007, Enero, 06).

4. Hoja de datos del DS2408, (Documento en Línea). 2005. Dallas

Semiconductor. Disponible: www.maxim-ic.com. (Consulta: 2007, Febrero, 10).

5. Hoja de datos del PIC16F876, (Documento en Línea). 2000. MICROCHIP.

Disponible: www.roso-control.com. (Consulta: 2006, Diciembre, 05).

6. Serial Communication General Concepts. (Documento en Línea). 2006.

Reporte técnico de la Nacional Instruments Inc. Disponible en:

http://digital.ni.com/public.nsf/websearch/2ad81b9060162e708625678c006dfc6

2?OpenDocument (Consulta: 2007, Enero, 06)


238

x Publicaciones

1. Cabrera M., Julio y Cabrerizo M., Francisco. Proyecto: Algoritmos genéticos

con ActiveX. Disponible en: Http://Geneura.Ugr.Es/~Jmerelo/Degax/

(Consulta: 2007, Febrero 03).

2. Cerrano, Manuel (2005) Curso de economía aplicada a los proyectos.

Disponible en: http://www.aulafacil.com/proyectos/curso/Lecc-11.htm

(Consulta: 2007, Abril 15).

3. Cueva, Iván (2003). El papel de los microcontroladores en la electrónica.

Disponible en: http://ivancueva.tripod.com/ (Consulta: 2006, Octubre 29).

4. Mandabo, Enrique (2002). El microprocesador, su historia y evolución.

Disponible en: http://usuarios.lycos.es/irojasb/El_Microprocesador.htm

(Consulta: 2007, Febrero 03).

5. Rodríguez, Rebeca (2004). Taller de Validación. Disponible en:

http://www.paho.org/Spanish/AD/THS/EV/bpm-validacion-procesos-fda.ppt#

261,2,Temario. (Consulta: 2007, Abril 23).

6. Sánchez Arellano, Eduardo (2005). Curso de microcontroladores I. Disponible

en:http://www.itnogales.edu.mx/Microprocesadores%20I/Apuntes%20Micros

/Curso%20Microcontroladores.pdf (Consulta: 2007, Febrero 03).

x Trabajos de Grado

1. Calderón, J. (1998). Instrumentación Virtual (Reporte de Postgrado en

automatización e instrumentación). facultad de ingeniería de la Universidad de

los Andes. Disponible en: http:\\www.ing.ula.ve\~jesusc\id.htm. (Consulta:


239

2006, Noviembre 24).

2. Campos, C. y Pérez R. (1998). Implementación de un sistema de desarrollo

utilizando los microcontroladores PIC de Microchip Technology. Guadalajara-

México. Trabajo Especial de grado, Universidad de Guadalajara. Disponible

en: http://proton.ucting.udg.mx/expodec/sep98/memoria/e04/e04.html

3. Castillo, F., Niño, A. (2006). Desarrollo de una plataforma tecnológica con

fines didácticos para la enseñanza de la instrumentación virtual. Trabajo

especial de Grado. UNEFA.

4. Javier Ibáñez Vial. (2004) Sistema de Monitoreo de Baterías en Cabina de un

Vehículo de Tracción Eléctrica. Trabajo especial de grado. Universidad

Católica de Chile.

5. Tabares T., Juan C. (2006). Sistema de Control de Humedad Temperatura y

Riego para Invernaderos Industriales. Trabajo especial de Grado. UNEFA


208

2.1 GLOSARIO DE TÉRMINOS

1-Wire®: Es una tecnología desarrollada por Dallas Semiconductor, la cual

utiliza solo un conductor más su retorno o referencia a tierra para realizar la

comunicación entre un dispositivo maestro y múltiples esclavos. Esta única línea

de datos es de tipo open drain, por lo cual es necesario colocar una resistencia de

pull-up entre esta y la línea de alimentación. Cada dispositivo esclavo tiene una

única e irrepetible identificación de 64 bits grabadas en su memoria ROM.

API: (del inglés Application Programming Interface - Interfaz de

Programación de Aplicaciones) es un conjunto de especificaciones de

comunicación entre componentes software. Se trata del conjunto de llamadas al

sistema que ofrecen acceso a los servicios del sistema desde los procesos y

representa un método para conseguir abstracción en la programación,

generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los

superiores del software. Uno de los principales propósitos de una API consiste en

proporcionar un conjunto de funciones de uso general.

Bit rate: (en español velocidad binaria, cadencia, tasa o flujo de bits) define el

número de bits que se transmiten por unidad de tiempo a través de un sistema de

transmisión digital o entre dos dispositivos digitales. Así pues, el bit rate es la

velocidad de transferencia de datos.


209

Circuito integrado: pastilla o chip muy delgado en el que se encuentran

miles o millones de dispositivos electrónicos interconectados, principalmente

diodos y transistores, y también componentes pasivos como resistencia o

capacitores. Su área puede ser de un cm2 o incluso inferior. Algunos de los

circuitos integrados más avanzados son los microprocesadores que controlan

múltiples artefactos: desde computadoras hasta electrodomésticos, pasando por

los teléfonos móviles. Otra familia importante de circuitos integrados la

constituyen las memorias digitales.

Comunicación Vía 1-wire: Es un tipo de comunicación serial asíncrona (no

requiere de señal de reloj) que posee una sola línea, donde se transfiere la

información así como también la energía necesaria para alimentar dispositivos.

Control ActiveX: Es un conjunto de tecnologías desarrolladas por Microsoft

que permiten a los componentes de software interactuar entre sí en un ambiente

conectado de red, independientemente del lenguaje de desarrollo en que fueron

creados.

Instrumentación Virtual: Un instrumento virtual no es mas que un módulo

de software que intenta simular cada uno de los aspectos funcionales del

instrumento real basándose en todos los dispositivos físicos que pueden ser

accesibles para el ordenador (tarjetas de adquisición de datos, tarjetas DSP,

instrumentos accesibles vía GPIB, VXI, RS-232, etc.).


210

Interfaz Gráfica de Usuario (GUI): Es un método para facilitar la

interacción del usuario con el computador a través de la utilización de un conjunto

de imágenes, además de texto

Microcontrolador: Circuito Integrado o chip que incluye en su interior las

tres unidades funcionales de un ordenador: CPU, Memoria y Unidades de E/S, es

decir, se trata de un computador completo en un solo circuito integrado.

PCB: (del inglés Printed Circuit Board), es un medio para sostener

mecánicamente y conectar eléctricamente componentes electrónicos, a través de

rutas o pistas de material conductor, grabados desde hojas de cobre laminadas

sobre un sustrato no conductor. Los circuitos impresos son robustos, baratos, y

habitualmente de una fiabilidad elevada.

PIC: familia de microcontroladores tipo RISC fabricados por Microchip

Technology Inc. y derivados del PIC1650, originalmente desarrollado por la

división de microelectrónica de General Instruments. El nombre actual no es un

acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se

utiliza como Peripheral Interface Controller (Controlador de Interfaz Periférico).

Protocolo de Comunicación: Conjunto de reglas que deben ser respetadas

para que pueda ser realizado un proceso de comunicaciones.


211

Sistema: en este proyecto se le llama de este modo a todos aquellos

componentes, tanto de software como de hardware, que forman parte de un

conjunto de elementos y que acoplados son capaces de establecer una red de

comunicación a través de un bus 1-Wire®, a través de la cual, es posible

intercambiar información entre dispositivos basados en microcontroladores.

UART: siglas de Transmisor-Receptor Asíncrono Universal (en inglés,

"Universal Asynchronous Receiver-Transmitter"). Se trata de un componente que

utilizan ciertos sistemas digitales basados en microprocesador, para convertir los

datos en paralelo, como los manda la CPU, en serie, con el fin de comunicarse con

otro sistema externo. También realiza el proceso contrario, esto es, convierte los

datos serie, recibidos de un sistema externo, en paralelo para ser procesados por la

unidad central de procesamiento.

S-ar putea să vă placă și