Documente Academic
Documente Profesional
Documente Cultură
MINISTERIO DE LA DEFENSA
DIRECCIÓN GENERAL SECTORIAL
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL
U.N.E.F.A.
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
TUTOR: AUTORES:
Ing. José Manuel Rodríguez Solano Díaz Loreto, Wilking Alexander
Ingeniero Electricista Maderer Cárdenas, Luís Alberto
CIV Nq 84644
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.
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
considero que dicho trabajo reúne los requisitos méritos suficientes para ser sometido
designe.
INGENIERO ELECTRICISTA
C.I. E-81.044.088
CIV Nq 84644
iii
APROBACIÓN DEL JURADO EXAMINADOR
POR:
Díaz Loreto, Wilking Alexander
Maderer Cárdenas, Luís Alberto
PRESIDENTE
MsC. William Cuervo
C.I.
MIEMBRO SUPLENTE
Ing. Mariana Ramos
C.I.
iv
DEDICATORIA
marcha.
v
AGRADECIMIENTOS
vi
AGRADECIMIENTOS
vii
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DE LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL
RESUMEN
viii
INTRODUCCIÓN
aplicación de los mismos, ocasionando que el usuario final no tenga una completa
tema en constante discusión y evolución, ya que cada uno de ellos está especialmente
la red 1-Wire® para el desarrollo del proyecto, debido a la gran inversión de recursos
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
conectados a computadores desde los años 70, su versatilidad estaba limitada, a baja
computador personal puede ser operado como cualquier instrumento físico, por
proceso de desarrollo del sistema; todo esto de una manera gradual y siguiendo las
Además, se enumeran los pasos seguidos para la construcción del hardware y para la
código de programa de cada uno de los programas incluidos en las etapas del sistema.
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
EL PROBLEMA
con alta eficiencia, para procesos que requieren de una baja o mediana escala de
nivel industrial, tal es el caso de la empresa ROSO Electric Supply C.A.; que se
el entorno industrial y comercial. Esta compañía tiene más de cinco años fabricando
manera que no se puede establecer una interacción entre las variables de una tarjeta
educación superior.
fácilmente a las necesidades del usuario final, cumpliendo con los paradigmas de un
software de su aplicación.
7
mismos mediante el maestro, todo esto con la utilización del mismo bus 1-Wire®; y
comunicación.
comunicación.
x Programar las rutinas para el acceso a la interfaz de comunicación por parte del
la red.
1.3. JUSTIFICACIÓN
intercambio de datos en una red. La iBOARD® contará con una funcionalidad que
física de hasta 100 dispositivos (en teoría). Esto permite, que un dispositivo con
maestro, las distintas variables presentes en la red de una forma invisible al usuario en
1.4. ALCANCE
PIC16F876 ATOM.
de software desarrollada
Interfaz para la Comunicación (MEIC) que cumple con la tarea de comunicar física y
incluidos en las diferentes etapas del mismo, visualizando así, claramente los
Basic 6.0”. Luego se utilizó la tecnología de los controles ActiveX para agregar
parámetros de funcionamiento.
12
1.5. LIMITACIONES
MARCO TEÓRICO
2.1. INTRODUCCIÓN
técnicos propios del hardware, aspectos teóricos para una mejor compresión del
de información, que permiten: abordar temas que sirven como base para una mejor
segmentación dentro de las capas del modelo OSI, información que fue muy útil en la
Riego para Invernaderos Industriales”. Trabajo especial de grado para optar al titulo
la compresión del problema, así como también, los aspectos que sustentan o sirven
2.3.1. Microcontrolador
(RAM), la Memoria solo de Lectura (ROM), los circuitos de entrada y salida (I/O),
entre otros.
tamaño y muy pesados. Para lograr una velocidad más alta y mejorar la eficiencia de
computador dentro de un sólo chip, según Iván Cueva, en su ensayo titulado “el papel
(del inglés: Peripheral Interface Controller). (MsC. Eduardo Sánchez Arellano, 2005)
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
PICs (ver Figura Nº 2.1) que incluyen distintos periféricos como, módulos de
estos poseen una memoria de programa que va desde 512 a 32.000 palabras (una
son sistemas digitales cerrados, poseen poca capacidad de RAM interna (bytes o
una velocidad de salida de algunos MIPS “Mega Instrucciones Por Segundo”, están
x CPU o procesador: Es el cerebro del sistema que procesa todos los datos que
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.
cada vez que se desborda. Sirve para evitar fallos de funcionamiento, por lo que
x Control de interrupciones
La unidad central de proceso (CPU), está conectada a una memoria única como
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
BUS
Arquitectura Harvard
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
programa.
BUS BUS
rango de funciones programables. Para la programación por parte del usuario, cuenta
alto nivel.
instrucciones similares al BASIC del PC. El mismo, permite llegar a niveles tan
registros, e incluso de los bits de estos, logrando entender con gran detalle el
Timers o temporizadores (TMR0, TMR1 y TMR2), hasta ocho (08) posibles fuentes
22
ú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 importantes:
de RB4 a RB7 cambia su estado. Esta interrupción responde a los niveles lógicos
no al flanco.
23
llamado TMR1. Puede utilizarse con el oscilador del ATOM o con un oscilador
El PIC ATOM es del tipo RISC y posee una arquitectura basada en el modelo
Es una unidad compacta, la cual posee los elementos básicos para trabajar con
muy rápidas; puede ser instalado en un protoboard o simplemente formar parte de una
destacan:
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.
incluido.
posee una fuente de poder y regulador de 5 Vdc incluido (versión anterior) que
x LED para indicar la actividad del puerto serial durante la escritura y depuración
para programar los BasicATOM con el lenguaje ATOM Basic (ver Figura Nº 2.8).
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,
el microcontrolador para obtener los resultados deseados, modificando para ello, los
computadora a través del árbol de carpetas. Tiene la posibilidad de filtrar los archivos
Ventana de Salida: como se observa en la Figura Nº 2.9, esta ventana puede cumplir
seleccionada.
compilación no se pueda realizar. La pestaña “Debug” es muy útil para obtener datos
29
hasta 4 terminales conectados a la vez, con la limitación del número de puertos COM
los cuadros de la parte superior de cada pestaña Terminal. Los parámetros son:
nace a partir del uso del computador personal (PC) como "instrumento" de medición
se le agrega a un PC, en tal forma, que permite a los usuarios interactuar con la
como placas para inserción y manejadores (drivers) que cumplen, en conjunto, las
software, el que realmente provee la ventaja para construir sobre la potente base de
adquisición de datos (PCMCIA, ISA, XT, PCI, etc.) y el software apropiado. Estos
preferencias del usuario. Muchos factores afectan la elección del software incluyendo
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
x Identificar los tipos de señales de entrada y salida. Cuando se usa una tarjeta de
el bajo costo por función, el bajo costo por canal, etc. son algunos de los beneficios
paquetes de información, un dato por vez. Aún y cuando esto es más lento que la
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.
la velocidad de transmisión, los bits de datos, los bits de parada y los métodos para la
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.
Métodos para la detección de los errores: Dependiendo del protocolo utilizado, este
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
Wire®, que usa un cable (más referencia de tierra) para lograr la comunicación y la
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
El sistema permite un control seguro ya que ningún nodo esta autorizado para
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
La energía para la operación del chip es obtenida del bus durante los periodos
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.
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
Cuando ocurre la comunicación, el maestro reinicia la red poniendo el bus en bajo por
pensar, una filosofía, de la cual surge una cultura nueva que incorpora técnicas y
universo computacional está poblado por objetos, cada uno responsabilizándose por
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.
común; los términos instancia y objeto son intercambiables. Una clase es un conjunto
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
realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible
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
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
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
se consigue que las personas que utilicen un objeto sólo tengan que comprender su
complejidad de utilización.
40
varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada
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
que un objeto es un actor, si su única función es operar sobre otros objetos. El objeto
propiedades. Se dice que los objetos actúan entre sí mediante mensajes, es decir,
son destruidos.
x Estado: Todo objeto posee un estado, definido por sus atributos. Con él se
métodos, para que el resto de objetos que componen los programas puedan
comportamiento e interfaz común. Una clase no es más que una plantilla para la
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
la memoria dinámica un espacio para tantas variables como atributos tenga la clase a
Los métodos son las funciones mediante las cuales, las clases representan el
fin de que el programador pueda personalizarlo, modificando sus atributos con el fin
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
que identifica de forma unívoca para que se ejecute de forma precisa y ordenada sólo
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
objeto OLE. Un objeto OLE (en inglés, Object Linking and Embedding) significa el
finalidad global de permitir una integración rica entre los componentes. OLE
demás. Los objetos no necesitan conocer por anticipado con qué objetos se van a
genéticos con ActiveX” señalan que un objeto ActiveX se define como aquel objeto
x Se encuentra aplicado como código binario, por consiguiente, puede estar escrito
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
x El objeto proporciona una interfaz estándar para que otros objetos se comuniquen
con él.
encripta en forma binaria, no como código fuente. Sea cual sea la herramienta de
por cualquier programa compatible con los objetos OLE. (Cabrera Martínez y
Cabrerizo Membrilla).
45
necesidad de desvelar el resto del código fuente. Además, los algoritmos dejarán de
objetos que hacen que sus métodos y propiedades estén disponibles para los demás, y
Algunos tipos de servidores, por ejemplo controles ActiveX, pueden disparar eventos
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
de crear un programa, ya que los mismos son líneas de código empaquetados que
creación de aplicaciones Windows, como pueden ser Visual Basic Script, Visual
de alto nivel.
controladores, manejo de bases de datos, etc. el producto resultante puede ser algo
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
formato dll. Estas dll pueden ser utilizadas por los desarrolladores de software para
un entorno que depende tanto del lenguaje de programación como del sistema
cuales son:
1-Wire® API for JAVA (OWAPI): Conjunto completo de códigos y funciones abiertas
dispositivos 1-Wire®.
TMEX API: Utilizadas para el desarrollo del control OCX del proyecto, estas son un
soporte a todos los dispositivos y adaptadores de RED 1-Wire® que trabajen bajo la
embargo, muchos estándares y protocolos cumplen con los lineamientos del Modelo
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
El nivel superior utiliza los servicios de los niveles inferiores: cada nivel se comunica
nivel está bien definida. El nivel N utiliza los servicios del nivel N-1 y proporciona
Puntos de acceso: entre los diferentes niveles existen interfaz llamadas "puntos de
Dependencias de Niveles: cada nivel es dependiente del los niveles inferior y superior.
conjunto de normas que sirvieron como referencia en algunas fases del mismo:
52
Electrical and Electronics Parts and Equipments”. De esta norma se extrajeron los
x IEEE Std. 1100-1999 IEEE Recommended Practice for Powering and Grounding
tierra en las placas prototipo del sistema, además se tomó en consideración para
del 14 de octubre de 1955, la cual trata los aspectos de los derechos de propiedad
MARCO METODOLÓGICO
ROSO C.A., ubicada en Valencia - Edo. Carabobo y sus resultados serán aplicados
una secuencia de un pulso de Reset y Presencia. El pulso de Reset provee una forma
55
Comandos y Funciones del ROM: Una vez que el dispositivo maestro recibe
ROM, los cuales son comunes para todos los dispositivos con esta tecnología, y se
estado de un bit de salida, etc. Son funciones propias de cada dispositivo 1-Wire®.
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
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
operación. Para hacer comprensibles los diagramas a todas las personas, los símbolos
programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una
los pasos que debe seguir un algoritmo para dar solución a un problema determinado.
57
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.
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
mayoría de PICs que Microchip distribuye hoy en día incorporan ICSP (In Circuit
directamente en el circuito destino. Para la ICSP se usan los terminales RB6 y RB7
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,
es código de máquina, pero también puede ser simplemente texto. Este proceso de
debido a que muchos de los aspectos relacionados con el proyecto, son determinados
comprensión de todas las características técnicas de los dispositivos utilizados como: los
Para esto, se consultaron estudios previos sobre el tema (desarrollados por autores en la
medios electrónicos.
x Investigación sobre las prestaciones y ventajas que proporciona cada uno de los
dispositivo.
bosquejo de la tarjeta impresa del módulo de interfaz, donde se ubica de cada uno
con el método de corrosión del cobre, para comprobar la funcionalidad del diseño
situando cada uno de ellos, según lo indica el esquema planteado, utilizando para
multímetro
62
eléctrica de cada uno de los elementos dentro del circuito impreso, se utilizó la
dicha tarjeta
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
desarrolladores.
los dispositivos que serán el punto de partida para el diseño y posterior desarrollo del
necesarios en el sistema.
características del problema y sus posibles soluciones. Con esta información, se logra
variables.
66
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
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
3.4.12. Fase XII. Documentación: Se desarrolló en paralelo con todas las demás
las actividades relacionadas con el desarrollo del proyecto, ilustradas a través del
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
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
conectarse a la red que constantemente instala y configura, la red 1-Wire®. Para ello,
funcionalidad y rapidez.
evitando de esta manera desperdicio del espacio disponible en las placas de circuito
impreso.
del sistema sea lo suficientemente corto para lograr cumplir con las exigencias de las
Modulo Electrónico de Interfaz, son del tipo iBOARD®, los cuales son fabricados por
educacional. Todas las variables manejadas por los sistemas de desarrollo para
sistema de forma sencilla, con solamente igualar una variable cualquiera dentro de la
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.
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,
una selección de algunos de los componentes del sistema como se especifica en los
siguientes puntos.
Interfaz
digitales en sus respectivos canales, sirviendo esto, para activar y desactivar otros
mediante el puerto de datos (Data) del switch 1-Wire®, pudiendo así, colocar en los
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.
dispositivo (por el canal I/O 1-Wire®) a una señal digital sencilla en los canales PIO
conectado a los canales del switch) podrá captar los datos y los cambios lógicos sin
Comunicación (MEIC), el cual, poseen todos los chips de la red 1-Wire®. Mediante
sistema para mantener comunicación, conocer la familia y el uso de cada uno de los
de los cambios de estado, la capacidad para sensar el estado actual de cada canal y la
memoria). Fueron probados distintos dispositivos de este tipo para el diseño del
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
microcontroladores.
Interfaz
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
Bit RISC. Pueden correr hasta 8 Mhz y tiene un consumo de tan solo 250uA por
poseen una arquitectura Von Neuman, por lo tanto las instrucciones se toman de 1 a 4
Los microcontroladores PIC son unos de los más populares. Microchip tiene
hasta los 84-PLCC. Ellos pueden correr hasta 40Mhz y ejecutar instrucciones cada 4
ciclos de reloj.
77
dispositivo; según la empresa ROSO C.A., se deben tomar en cuenta las siguientes
del proyecto.
3. Existen individuos y/o empresas que poseen los recursos necesarios para adquirir
un fabricante de microcontroladores.
x Son económicos, en comparación con los fabricados por otras empresas. Los
en grandes volúmenes.
x La empresa ROSO C.A cuenta con las herramientas de desarrollo para este tipo
de microcontroladores.
interno, esto como requerimiento de la empresa y con el principal fin de evitar añadir
sus características se ajustan en gran medida a los requerimientos del sistema, además
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
4.2.3. Comparación del Bus Serial del Sistema con Otros Similares
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
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
DIRECCIONAMIENTO Y SELECCIÓN
1-Wire®,
LIN bus, INDETERMINADA
AUTO- SensorPath
SINCRONIZADA RS-485, LVDS,
CAN, USB 2.0,
FireWire DETERMINADA
sincronizados los dispositivos con el maestro (con una línea de reloj o mediante una
81
por una sola línea (alternando entre altos y bajos) o por dos líneas en conexión
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
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
hasta un dispositivo. Cada elemento en la red 1-Wire® puede ser alimentado durante
reconocimiento que posee la red 1-Wire® permite al maestro identificar los números,
Dentro del grupo simple de los buses de bajo costo, el 1-Wire® posee la
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
funciones de dispositivos.
EEPROM, contadores, relojes de tiempo real, etc. Todos los dispositivos compatibles
83
elemento que cumpla con la función de maestro, el cual inicia todas las
ubicación del mismo en la red, adicionalmente el código CRC se utiliza para proteger
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
con otros buses importantes, esto es así, debido al bajo costo que poseen los circuitos
sabido, que la mayoría de los estudiantes no cuentan con los altos presupuestos,
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
4.3.1. Introducción
(Hardware) capaz de funcionar como traductor (mejor conocido como Driver) entre el
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
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
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
eficiente, como para lograr que el dispositivo maestro seleccione una sola iBOARD®
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
ATOM con otro dispositivo maestro (el PC), sería incompatible e imposible su
comunicación.
Modulo de interfaz
Bus 1-Wire
a las tarjetas iBOARD®, por parte del maestro (el Computador), pueda ser realizado
Contando además con la seguridad, de que cada módulo de interfaz tendrá un número
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
para luego determinar el estado de los canales, cuantas veces sea necesario hasta
de la Figura Nº 4.5:
INICIO DE LA
APLICACIÓN
RECONOCIMIENTO DE LOS
DISPOSITIVOS
CONECTADOS A LA RED
¿ESTABLECER
COMUNICACIÓN CON SI SELECCIONAR UN TAGNAME
UN DISPOSITIVO DISPONIBLE EN LA RED
LISTADO?
NO ENVÍA EL
COMANDO
“SINCRONIZAR”
reset y a la vez, sincroniza los relojes internos de cada dispositivo con el propio,
comunicación con cualquiera de ellos, con sólo realizar la selección del mismo
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
La integración entre los elementos del hardware del sistema, cumpliendo con
Microcontrolador
16F628
Rx
DS2408 Tx
RTZ
Bus 1-Wire
del mismo. El maestro indicará el comando para establecer el estado lógico de todos
los efectos del canal STROBE del DS2408, leyendo así, el comando a ejecutar e
de los datos recibidos o enviar los requeridos por el Maestro, evitando al máximo la
DS2408; que recibe los comandos y datos del bus maestro y los envía al
del sistema, como por ejemplo, la forma en que los dispositivos accederán al medio
comercial (el 1-Wire®) se hará uso de una topología de bus para la configuración e
única línea de datos común a todos; este esquema de conexión se puede observar
Modulo de interfaz
Maestro
Convertido
r Modulo de interfaz
Modulo de interfaz
Modulo de interfaz
manejar el intercambio de los datos con los mismos, pudiendo así, seleccionar
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
descritos en la Tabla F.
x Terminal de salida STROBE que sincroniza los estados lógicos de I/O con un
x Serial de registro único ROM asignado desde fábrica, con una longitud de 64
errores.
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
son los pilares de la arquitectura Harvard, esto permite acceder en forma simultánea e
separadas permite que cada una tenga el ancho y tamaño más adecuado. Así en el PIC
14 bits.
Características principales:
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
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 3 Temporizadores
funciones especiales. Los registros de uso general pueden ser usados directamente por
el usuario, sin existir restricciones. Pueden servir para almacenar resultados que se
entradas, etc. Los registros de uso específicos no pueden ser usados directamente por
Figura Nº 4.9.
PORTA RA0-RA7:
x El terminal RA5 es una entrada Schmitt Trigger que sirve también para entrar en el
x El terminal RA4 puede configurarse como reloj de entrada para el contador TMR0
PORTB RB0-RB7:
x Por software se pueden activar las resistencias de pull-up internas, que evitan el uso
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 MCLR: Master Clear (Reset). Si el nivel lógico de este terminal es bajo (0 Vcc),
configure puede proporcionar una salida de reloj por medio de este terminal.
CAPITULO V
5.1. INTRODUCCIÓN
Para la utilización del Sistema por parte del usuario final, se enfocó el proceso
sencillo de utilizar, con lo cual, el usuario realizará sus propias aplicaciones sin
ciertos elementos como sistemas que permitan la adquisición y manejo de los datos
Comunicación de cada tarjeta con la red, una red de uno o más dispositivos con bus
o elaboración del software del sistema, incluyendo los programas cargados en los
103
transformaciones y mejoras a medida que surgieron ideas más eficaces para realizar
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
finalmente se tiene el código incluido en cada una de las etapas de hardware según el
IBOARD®
procesos realizados por la porción de código que tiene que incluirse 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
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
código dentro del programa de aplicación de la tarjeta, en otras palabras, debe colocar
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
el nuevo estado de sus terminales. Con respecto a la longitud de la trama de los 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
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
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?
¿N2?
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
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
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
del producto y comunicación del sistema. Para que dicho sistema funcione
incorporar en esta última, una porción de código dentro del programa de aplicación
de la tarjeta.
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-
el comando (FE) y acto seguido recibirá por parte de la iBOARD® un Byte, que
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
asegurar que estos llegan en un orden correcto (se dice que se ha perdido la
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
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.
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)
debe hacer es abrir un nuevo proyecto “exe estandar”. Una vez que se ha
formulario, sobre el cual, se hará referencia de uso del control diseñado. Para
de controles de Visual Basic 6, para ello es necesario hacer clic con el botón derecho
Una vez incluido en control en la paleta de Visual Basic, se debe hacer clic
mismo. Una de las característica más importantes de las páginas de propiedades del
116
funciones incluidas dentro del código del Control ActiveX, permitiendo de esta
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
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
TMTOUCHBYTE(F5)
DATO=TMTOUCHBYTE(FF)
Llamada a funcion
LEERBYTE=DATO
TMENDSESSION()
FIN
INICIO
NO
Control
NO
Habilitado BuscarSerial=FALSE
J
SI ?
<
N#chps-1? SI
Shandle=-1
Seriales=” ”
J=0
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
NuevoTiempo=TiempodelSistema
+Tiempodeseado
Nuevo Tiempo NO
>
Tiempo del Sistema
SI
Ejecutar Eventos
FIN
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
FIN
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
i) BuscarSerial ()
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
con la red 1-Wire®, si la función TMEX que se encarga de esto, regresa un valor
Inicializar y luego a la función ProductID, con el serial de cada chip, aquellos chips
manera simplificada de observar las descripciones de ésta y de todas las funciones del
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
Tipo: Método
Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Call Inicializar(serial(1)
Tipo: Método
Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
DatoRecibido=LeerByte(serial(1))
131
Tipo: Método
Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
EnviarByte(DatoaEnviar , serial(1))
Tipo: Método
Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Sincronizar(serial(1))
Tipo: Método
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
ix) Cuando_Error()
Tipo: Evento
Tipo: Propiedad
Ejemplo: Puerto=1
Tipo_de_Puerto=5
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))
xi) Tipo_de_Puerto
Tipo: Propiedad
Ejemplo: Puerto=1
Tipo_de_Puerto=5
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))
xii) Enabled
Tipo: Propiedad
Ejemplo: Puerto=1
Tipo_de_Puerto=5
Enabled=true
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Leerbyte(serial(1))
xiii) Errores
Tipo: Propiedad
xiv) Nuevo_Tag_Name
Tipo: Propiedad
Ejemplo: Puerto=1
Tipo_de_Puerto=5
Nuevo_Tag_Name=”LUIS”
Serial(1)=Tag_Nameto_Serial(“LUIS1”)
Leerbyte(serial(1))
También: Tag_Nameto_Serial()
xv) PoolTime
Tipo: Propiedad
Ejemplo: Timer1.interval=iboard1.pooltimer
xvi) Iboard_en_Red
Tipo: Propiedad
Ejemplo: Puerto=1
Tipo_de_Puerto=5
If BuscarSerial=true then
Serial(1)=Tag_Nameto_Serial(“iboard1”)
Label1.caption=iboard_en_Red
End if
i) ReadSwitchNew (Serial)
Tipo: Método
Ejemplo: Serial(1)=Tag_Nameto_Serial(“iboard1”)
Byteleido=ReadSwitchNew(serial(1))
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)
que el usuario pueda identificar el tipo de error que se ha producido (en caso de
Los errores de sintaxis son aquéllos que aparecen mientras escribe el código.
está refiriendo a cada iBOARD® y le avisa si comete algún error, como escribirlo
Los errores sintácticos son los errores más frecuentes. Se pueden corregir fácilmente
del PC. Estos errores son mucho más complejos que los de sintaxis. El
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
presentada anteriormente.
ejecuta cuando algún error haya sucedido. De esta forma, el usuario puede diseñar un
que no existe comunicación con la iBOARD® por una razón específica. Los valores
TMEX API: Utilizadas para el desarrollo del control ocx del proyecto, en sí, estas
soporte a todos los dispositivos y adaptadores de RED 1-Wire® que trabajen bajo la
API-SESION API-ENLACE
API-RED API-TRANSPORTE
API-ARCHIVO API-DISPOSITIVO
API-Sesión: Incluye todas las funciones que hacen uso exclusivo del BUS 1-Wire® a
éste API, hacen uso exclusivo del puerto de comunicaciones del PC mientras dure la
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
la red 1-Wire®. Incluyen la totalidad de las funciones que trabajan con la memoria
funciones son construidas en base a las encontradas en las API de RED, Transporte,
dispositivo en particular.
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
describen a continuación:
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
control son:
este serial es parte de la memoria ROM, todos los comandos relacionados a la capa
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
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
iboard_control.ocx
parecidas a los archivos del sistema operativo MsDOS de Microsoft™. Las funciones
iboard_control.ocx
CAPITULO VI
6.1. INTRODUCCIÓN
COMUNICACIÓN
Por medio del programa de diseño en PCB, fue posible generar la tarjeta
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
inició el proceso de corrosión con una solución de cloruro férrico, de modo que se
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
por la empresa, para su utilización con las iBOARD® mediante una conexión física
módulo.
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)
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)
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
de esta manera, que se genere una capacitancia parásita entre las dos capas
161
material dieléctrico).
de porcelana de 25W, ya que los dispositivos con empaque tipo SOIC son mucho
del PIC16f628 es del tipo DIP (“Dual-In-line Package”) debido a su método poco
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
montaje superficial SMD (en inglés, Surface Mounted Device). La ubicación de los
gran cantidad de espacio dentro del circuito impreso, tanto a la hora de incluirlo en la
Venezuela. Este factor, influye en los costos para la construcción de los módulos, sin
adquisición.
norteamericano) por 1.35 y la cifra resultante representa la suma de: el valor del
consultados a través de la página web de digikey. El valor del cambio a Bolívares por
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,
todas las fases del proyecto, abarcando la adquisición de los dispositivos de hardware
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.
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):
incluyen:
en la interfaz de hardware como: cautines, pasta para soldar, estaño, pasta para
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
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
de ventas, se define el límite mínimo de productos que tienen que ser vendidos por la
Debido a que la empresa ROSO Electric Suppy C.A. pretende agregar una
realizado el presupuesto para dicha tarea. Además, esta empresa planea incluir la
funcionalidad.
en este capítulo.
171
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,
Se obtiene:
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
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
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
Para el cálculo del punto de equilibro del proyecto, según el Lic. Manuel
fórmula:
173
donde:
Costos Fijos (CF) son los costos implicados en desarrollo del proyecto.
Costo de Venta Unitario (CVU) representa el costo de producción de cada unidad (en
1.820.600
PEQ(unidades)
68.440 45.627
red 1-Wire®. Para el cálculo de los Costos Fijos incluidos en la fórmula, sólo fueron
el desarrollo del proyecto, es decir, los no marcados con asterisco en la Tabla CC.
1.820.600
PEV (valores) 5.461.879 Bs.
45.627
1
68.440
ventas, para no ganar ni perder. Esto arroja, que la empresa recuperará el capital
(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
7.1. INTRODUCCIÓN
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
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.
Para validar el sistema, será necesario realizar una serie de pruebas distintas,
del proyecto. En síntesis, esta fase de desarrollo tiene como objetivo principal, el
x La Comunicación
x La Operatividad
iBOARD® a la red 1-Wire® (Figura Nº 7.1), cada una, con su respectivo MEIC.
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
resulta ser de 12.7 baudios, para cada una de las diez iBOARD®, valor que fue
Tiempoenvio
Tiempo1Byte S
N # datos enviados
161s
Tiempo1bit 78,75ms / bit
255 * 8
1
TasaTransferencia baudios
tiempo1bit
1bit
TasaTransferencia 12,7baudios
78,75m
más, que el número de bits enviados, a través de una red de transmisión digital por
particular en este proyecto (ya que cada cambio en la señal representa un solo bit) se
le denomina “Baudio”.
Convertidor
USB-1-wire
BUS 1-WIRE
MEIC MEIC
MEIC
MEIC MEIC
BUS 1-WIRE
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
exitosa, la tasa de transferencia será de 128.20 baudios para cada una de las 10
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
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:
transmisión.
Este proceso se realizó de manera repetitiva hasta completar 255 datos enviados
Datos Errados
Tasa Errorbyte errores / bytes
Datos enviados
181
0,8
Tasa Errorbyte errores / bytes
255
§ 0,8 ·
¨ ¸
Tasa Errorbit © 255 ¹ errores / bits
8
en esto, se puede afirmar que el sistema de comunicaciones diseñado cumple con una
Wire®.
refiere al reducido número de dispositivos MEIC que fue posible desarrollar para la
componente del MEIC que se conecta a la red 1-Wire®, se podría afirmar que el
el bus Wire®.
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ó
los leds de cada iBOARD®. Una vez cumplido con el procedimiento descrito
Con los resultados presentados en esta Tabla, es posible afirmar que con un
tanto de IBOARD® que pueden ser conectadas a la red, de manera certificada por lo
especiales preestablecidas.
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
correcta, este error provoca que los chips se sobrecalienten a un alto nivel,
daños irreparables. Esta prueba ayudó a identificar el primer error del diseño, por
MEIC conectados a la red, sin embargo, no existe posibilidad de que los datos se
siguientes pruebas:
el tiempo de operación de los MEIC en la red. Se envía un dato a cada una de las
mantenían en comunicación con la red. En base a esto, se puede afirmar que los
los módulos de interfaz para la comunicación, y por ende las iBOARD® a la red 1-
186
comunicación con un maestro a través de dicha red. Por esta razón, se hace
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
1-Wire®
metros, con dos hilos para 1-Wire® y Tierra, con la finalidad de establecer la
187
consecutivas. Luego de realizada esta prueba, se obtuvo como resultado que con 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,
sistema. Por lo tanto, se hace necesario realizar un conjunto de pruebas que permitan
disponible o incorrecto.
propiedad “errores” del mismo toma el valor 18, indicando que se ha desconectado el
Para producir este error, solo basta con intentar establecer comunicación con
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)
“CuandoError” y la propiedad “errores” del mismo toma el valor 16, indicando que
resultados alcanzados a lo largo del intenso proceso llevado a cabo durante las
CONCLUSIONES
y la red 1-Wire®.
similares.
componen cada una de las etapas del sistema y que a su vez permiten la
guía para que el código desarrollado cumpliera con los objetivos planteados,
esto, puede ser realizado con sólo incluir el OCX del ActiveX iboard-control
x A través de una larga fase de puesta a punto se realizó una gran cantidad de
de información.
RECOMENDACIONES
de alimentación.
'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”
'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
'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
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
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
BIBLIOGRAFÍA
Libros:
McGraw Hill.
Caracas, Venezuela.
Revistas Especializadas:
2006, Noviembre 2.
x Libros
12).
x Documentos técnicos
http://digital.ni.com/public.nsf/websearch/2ad81b9060162e708625678c006dfc6
x Publicaciones
http://www.paho.org/Spanish/AD/THS/EV/bpm-validacion-procesos-fda.ppt#
en:http://www.itnogales.edu.mx/Microprocesadores%20I/Apuntes%20Micros
x Trabajos de Grado
en: http://proton.ucting.udg.mx/expodec/sep98/memoria/e04/e04.html
Católica de Chile.
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
sistema que ofrecen acceso a los servicios del sistema desde los procesos y
superiores del software. Uno de los principales propósitos de una API consiste en
Bit rate: (en español velocidad binaria, cadencia, tasa o flujo de bits) define el
transmisión digital o entre dos dispositivos digitales. Así pues, el bit rate es la
requiere de señal de reloj) que posee una sola línea, donde se transfiere la
creados.
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
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