Está en la página 1de 12

UNIVERSIDAD TECNOLOGICA METROPOLITANA

FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

PROTOCOLO 1-WIRE
Aplicación de Microcontroladores con
Lenguajes de Alto Nivel
Francis D. Soto P.; francissotop@hotmail.com

1. PRESENTACION

En el presente informe se entregara la


información necesaria para comprender el
funcionamiento y la correcta utilización del
protocolo 1-Wire. Ademas a través de un claro
y sencillo ejemplo se verificara su
Figura 1
funcionamiento gracias a disponer un potente
simulador de circuitos como es Proteus de
Una red de dispositivos 1-Wire está
Isis, ademas de contar con el conocimiento
conformada por un maestro y uno o más
adquirido durante el desarrollo del curso.
esclavos que poseen un único pin de datos de
tipo “opendrain”, al que se conecta una
2. ABSTRACT
resistencia de “Pull Up” anclada a +5VDC
(nominal), Figura 2. Una de las características
This report will submit the information
de la tecnología 1-Wire, es que cada
needed to understand the operation and
dispositivo esclavo tiene una única e
correct use of the 1-Wire protocol. Through a
irrepetible identificación grabada en su
clear and simple example we will verified its
memoria ROM al momento de su fabricación.
operation due to have a powerful circuit
simulator such as Proteus Isis, besides having
the knowledge acquired during the class.

3. PROTOCOLO DE TRANSMICION 1-
WIRE

Dallas Semiconductor ha desarrollado


una poderosa tecnología llamada 1-Wire, la
cual, utiliza un sólo conductor más su
conexión a tierra para efectuar las
comunicaciones y la transmisión de energía
entre un dispositivo maestro y múltiples
esclavos, Figura 1
Figura 2
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

El BUS 1-Wire, permite realizar una descargue. La carga almacenada en el


comunicación serial asincrónica entre un condensador alimentará al circuito
dispositivo maestro y uno o varios dispositivos esclavo.
esclavos, utilizando un único pin de E/S del
microcontrolador. Podemos señalar algunas • Las redes de dispositivos 1-Wire
características de éste bus: pueden tener fácilmente una longitud
desde 200m y contener unos 100
• Utiliza niveles de alimentación dispositivos.
CMOS/TTL con un rango de operación
que abarca desde 2.8V hasta 6V. • Todas las tensiones mayores que 2,2
Voltios son consideradas un 1 lógico
• Tanto el maestro como los esclavos mientras que como un 0 lógico se
transmiten información de forma interpreta cualquier voltaje menor o
bidireccional, pero, sólo en una igual a 0,8 V.
dirección a la vez, de ésta manera la
comunicación es realizada en forma • La transferencia de información es a
“half duplex”. 16.3Kbps en modo “Standard” y hasta
a 142Kbps en modo “overdrive”.
• Toda la información es leída o escrita
comenzando por el bit menos 4. DESCRIPCION DEL PROTOCOLO 1-
significativo (LSB). WIRE

• No se requiere del uso de una señal de Podemos describir al protocolo 1-Wire


reloj, ya que, cada dispositivo 1-Wire como una secuencia de transacciones de
posee un oscilador interno que se información, la cual, se desarrolla según los
sincroniza con el del maestro cada vez siguientes pasos: la Inicialización, comandos y
que en la línea de datos aparezca un funciones de ROM, comandos y funciones de
flanco de bajada. control y memoria, transferencia de bytes o
datos.
• La alimentación de los esclavos se
puede hacer utilizando el voltaje propio 4.1 INICIALIZACIÓN
del BUS. Para ello, cada circuito
esclavo posee un rectificador de media Todas las comunicaciones en el bus 1-
onda y un condensador, durante los Wire comienzan con una secuencia de un
períodos en los cuales no se efectúa pulso de Reset y Presencia. El pulso de reset
ninguna comunicación, la línea de provee una forma limpia de iniciar las
datos se encuentra en estado alto comunicaciones, ya que, con él se sincronizan
debido a la resistencia de “Pull Up”; en todos los dispositivos esclavos presentes en el
esa condición, el diodo entra en bus. Un Reset es un pulso que genera el
conducción y carga al condensador. maestro al colocar la línea de datos en estado
Cuando el voltaje de la red cae por lógico bajo por unos 480µs, Figura 3, y luego
debajo de la tensión del condensador, de 15 a 60µs los esclavos responderán
el diodo se polariza en inverso poniendo en bajo la linea durante 60 a 240µs.
evitando que el condensador se
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

b) Match ROM:

Seguido de una identificación de 64


bits, este comando permite al maestro
direccionar a un dispositivo en especifico
cuando existe mas de un esclavo. El
dispositivo que coincida con la identificación
esperara por la instrucción siguiente, mientras
que el resto de los esclavos esperaran por el
Figura 3 pulso de reset.

4.2 COMANDOS Y c) Skip ROM:


FUNCIONES DE ROM
Permite direccionar de forma directa,
Una vez que el microcontrolador recibe sin la necesidad de enviar la identificación.
el pulso de presencia de los dispositivos Este comando solo es utilizable cuando existe
esclavos, se puede enviar un comando de un solo esclavo, de lo contrario ocurrirá una
ROM. Los comandos de ROM son comunes a colisión de datos cuando todos respondan.
todos los dispositivos 1-Wire y se relacionan
con la búsqueda, lectura y utilización de la d) Search ROM:
dirección de 64 bits que identifica a esclavos.
La Tabla 1, muestra los comandos de ROM A través de este comando se puede
utilizados con los dispositivos 1-Wire. leer los 64 bits de identificación de todos los
dispositivos esclavos conectados. Se utiliza un
Comando Codigo método de eliminación de 3 pasos para
distinguir cada dispositivo conectado, se
Read ROM 33h explicara en extenso mas adelante. Estos
Match ROM 55h pasos son: leer un bit, leer el complemento del
bit y entonces escribe el valor deseado de ese
Skip ROM CCh
bit.
Search ROM F0h
Tabla 1 4.3 COMANDOS Y
FUNCIONES DE CONTROL Y
a) Read ROM MEMORIA

Permite al maestro leer el código de 8 Son funciones propias del dispositivo


bits de la familia, los 48 bits de numero de 1-Wire. Incluyen comandos para leer/escribir
serie y 8 bits CRC, es decir lee la en localidades de memoria, leer memorias de
identificación de 64 bits del dispositivo “scratchpad”, controlar el inicio de la
esclavo. Este comando solo funciona si existe conversión de un ADC, iniciar la medición de
un solo dispositivo, ya que de lo contrario una temperatura o manipular el estado de un
ocurrirá una colisión de datos cuando todos bit de salida, entre otros. Cada dispositivo
los esclavos transmitan al mismo tiempo. define su propio conjunto de comandos.
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

4.4 TRANSFERENCIA DE
DATOS

La lectura y escritura de datos en el


bus 1-Wire se hace por medio de “Slots”, 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 al menos 1 µs y esperar unos 15
µs para entonces leer el estado de la misma.
El estado lógico de la línea en ese momento,
estará determinado por el dispositivo esclavo.
La Figura 4., muestra el proceso de lectura de
un “Slot” típico,

Figura 4
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

Al momento de efectuar la escritura de


un bit en el bus ocurre algo similar, el maestro
produce un pulso de entre 1µs y 15µs de
duración, para luego colocar en el bus al bit
que se desea transmitir. Este bit deberá
permanecer en el bus al menos 60µs, Figura
5.

Figura 5
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

6. CONEXION ENTRE UN
5. TOPOLOGIAS DE CONEXION MICROPROCESADOR Y LOS
ENTRE DISPOSITIVOS DISPOSITIVOS ESCLAVOS

La Figura 6., muestra las diferentes En la práctica, se puede utilizar


topologías de interconexión entre dispositivos cualquier pin de entrada – salida del
en una red 1-Wire. La topología exclusiva microcontrolador- para efectuar la conexión a
también denominada 1:1, es la más simple de dispositivos esclavos 1-Wire, incluso cada pin
todas, se permite en este tipo de topología la del microcontrolador puede implementar
conexión sólo de un dispositivo maestro con cualquiera de las topologías anteriormente
un dispositivo esclavo. Es muy utilizada para mencionadas con un sólo dispositivo esclavo
la medición de parámetros en dispositivos o con muchos de ellos conectados en forma
esclavos tipo “stand alone” como por ejemplo: simultánea. La única consideración que hay
los dispositivos iButton de Dallas que tener es la colocación de una resistencia
Semiconductor. de “Pull Up” generalmente de valor 2KΩ,
antes mencionadas. Esto se puede observar
en la Figura 7., en la cual, se han conectado
dos dispositivos esclavos 1-Wire a través del
pin PORTB<1>.

Figura 6

La topología lineal y ramificada


extienden el alcance de la red 1-Wire hasta Figura 7
una distancia de aproximada de 200 metros.
En ellas, los dispositivos esclavos pueden En la práctica, es mucho más fácil
interconectarse en forma secuencial y/o a manejar un sólo dispositivo esclavo por cada
través de ramificaciones. pin del microcontrolador, esto elimina la
necesidad de conocer a priori el serial del
Por último, la topología tipo estrella, la dispositivo. Como hay uno sólo dispositivo en
cual, en la práctica es la más utilizada, permite la línea o pin de conexión, el microcontrolador
la conexión de ramas a través de un punto puede acceder a la memoria del dispositivo
común denominado nodo de conexión, sin esclavo a través de la función de ROM CCh
embargo, esta topología limita la cantidad de Skip ROM.
dispositivos esclavos en comparación con las
anteriores, ya que, incrementa la capacitancia
equivalente en el punto central de conexión al
estar las ramas conectadas en paralelo.
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

7. CALCULO DEL CRC-8, presenten en la ID de 64 bits.


IDENTIFICACION DE ERRORES
• Cualquier grupo de errores de hasta 8
Cuando se transmite información en bits incorrectos.
forma serial, es necesario verificar la posible
existencia de errores que pudieran ocurrir • La gran mayoría de los errores de más
durante la comunicación. Existen varios de 8 bits incorrectos.
métodos para efectuar este chequeo. Uno de
los más simples consiste en añadir un bit extra
a cada byte transmitido de modo que el
número de unos contenidos en el paquete de
9 bits siempre sea par o impar. Este
procedimiento se le conoce como verificación
de paridad y permite encontrar errores que
ocurren en un bit, pero no es confiable cuando
cambia más de un bit dentro del byte.

Uno de los mecanismos de detección


de errores más eficientes es el Chequeo de
redundancia Cíclica (del inglés Cyclic
redundancy Check) conocido por sus iniciales
CRC. El CRC de un conjunto de datos, es un
número de cierta cantidad de bits que
contiene el resultado de la aplicación de una
expresión matemática al mencionado conjunto
de datos. Así, si el CRC es de 4 bits se
denominará CRC4, si es de 8 bits se llamará
CRC8, si es de 16 bits será CRC16, etc.

El algoritmo utilizado para el cálculo de


CRC de Dallas Semiconductor (DOW CRC),
Figura 8, cuyo resultado se incluye en la
identificación de los dispositivos 1-Wire. Este
CRC es de 8 bits y se calcula introduciendo
los primeros 56 bits, correspondientes al serial
del dispositivo y el código de la familia a la
que pertenece el dispositivo. Los errores
detectables por el CRC8 implementado por
Dallas Semiconductors son:

• Cualquier número impar de errores


sobre los 64 bits transmitidos.

• Todos los errores de dos bits que se Figura 8


UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

comando SKIP ROM. También puede


El cálculo del CRC8 puede hacerse de utilizarse el comando READ ROM para leer la
varias formas. La primera de ellas es identificación del esclavo y direccionarlo. Pero,
evidentemente por hardware, siguiendo el ¿Qué hacer cuando existe más de un
esquema de la Figura 8. Cuando se dispositivo en la red 1-Wire al mismo tiempo?.
implementa por software, una forma simple de Quizás, podríamos leer manualmente los
hacerlo, es por medio de una tabla de 256 seriales de identificación de todos los esclavos
bytes, la cual, es llamada repetidas veces a a conectar en el bus. Con el comando READ
medida que se introducen los bytes hasta ROM, leeríamos su identificación (serial) para
obtener el valor definitivo del CRC. Este luego almacenarla en una memoria EEprom
método es muy sencillo, pero presenta el externa o en la memoria EEprom del
inconveniente de requerir el uso de 256 bytes microcontrolador. Posteriormente, se deberá
de la memoria del microcontrolador. repetir el procedimiento con todos los demás
dispositivos hasta llegar al último. Una vez
La Figura 9 muestra un iButton típico identificado cada dispositivo y su serial, El
de Dallas Semiconductor. La figura presenta microcontrolador maestro podrá enviar a la
una fotografía frontal del dispositivo, en la red 1-Wire el comando Match ROM 55h
cual, se pueden observar claramente el serial seguido del serial de identificación del
de 64 bits del dispositivo compuesto de: 48 dispositivo en particular con el cual desee
bits (6 bytes) del serial único, 8 bits (1 bytes) comunicarse, de esta forma, el dispositivo
de CRC y 8 bits (1 bytes) de la familia del esclavo elegido quedará activo y los demás
dispositivo. dispositivos 1-Wire en la red quedarán fuera
de línea hasta que se produzca en la red una
condición de RESET.

Previendo esta situación, todos los


dispositivos que emplean la tecnología 1-Wire,
soportan un comando de ROM llamado
Search ROM, el cual, permite al maestro
identificar los seriales independientes de cada
dispositivo conectado a la red en forma
automática.
Figura 9
8.1 Buscando dispositivos en
Cada iButton viene estampado de el Bus 1-Wire
fábrica con ésta numeración y por supuesto
cada iButton tendrá un serial de identificación La búsqueda de dispositivos en una
único. red 1-Wire deberá comenzar un “RESET”
realizado por el maestro, quien luego deberá
8. ALGORITMO DE SEARCH ROM enviar un comando Search ROM. En ese
momento, cada dispositivo esclavo enviará al
Cuando existe un sólo dispositivo bus el primer bit de su identificación, seguido
conectado al bus 1-Wire puede omitirse el del complemento del mismo. El maestro,
direccionamiento mediante el uso del deberá leer estos dos bits. Las combinaciones
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

posibles de estos dos bits, se muestran en la bus y almacenará el bit, en el cual, se produjo
Tabla 2 la colisión. Esto hará que los dispositivos
cuya ID fuese 1 en la posición donde se
ID BIT ~ID BIT Significado presentó la colisión, dejen de participar en la
búsqueda. El bit que se envía al bus se
Conflicto en el almacena en la variable temporal de la ID.
0 0 BUS, BUS en Ahora bien, el proceso de búsqueda continúa
corto circuito y al momento de presentarse otra colisión se
Todos los compara el bit en el que ésta ocurre con la
dispositivos posición del cero del párrafo anterior; si
0 1 coinciden, entonces se enviará un 1 por el bus
tienen un 0 en
este bit (ID bit se toma igual a 1). Si la posición de la
colisión actual es mayor que la anterior deberá
Todos los
escogerse un cero, mientras que, si es menor
1 0 dispositivos
debe repetirse el camino tomado en la
tienen un 1 bit
búsqueda pasada para ese mismo bit.
No hay
1 1 dispositivos 9. EJEMPLO DE FUNCINAMIENTO
conectados
Tabla 2 Para ejemplificar el funcionamiento del
protocolo 1-Wire realizaremos una sencilla
A continuación, el maestro escribirá un pero clara aplicación de este. Para ello
bit en el bus y cada esclavo comparará este utilizaremos el compilador PIC C CCS, y el
bit con el que él previamente había simulador Proteus. Para trabajar usaremos la
transmitido. En caso de que los bits sean PIC16f873, solo por disponer de una cantidad
diferentes, el esclavo entrará en estado de de memoria mas que necesaria para la
espera, del cual, sólo saldrá al producirse un programación, para el trabajo con 1-wire
nuevo reset. Si ambos bits coinciden, el usaremos la librería de licencia GNU de
esclavo trasmitirá el siguiente bit de su ID j.d.sandoz, ya que CCS no nos provee de una
seguido de su complemento. El proceso se librería.
repetirá hasta que se completen los 64 bits de
identificación en cada dispositivo esclavo. El ejemplo consistirá en enviar a una
memoria EEPROM DS2430, la cual es una
Pero, ¿Qué bit transmitió el maestro?. memoria de 256 bits, los caracteres
En el caso de las dos combinaciones correspondientes a la palabra UTEM, para
centrales mostrada en la Tabla 2, 01 y 10, el luego leerlos desde la misma, la acciones
maestro tomará el bit recibido ID BIT, lo realizadas serán visualizadas en un LCD. La
almacenará en una variable temporal donde al Figura 10 muestre el circuito del ejemplo.
final del proceso se obtendrán los 64 bits de la
ID de uno de los dispositivos

Cuando se produce una primera


discrepancia (se reciben dos ceros
consecutivos), el maestro colocará un 0 en el
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

cual se
escribirá
Dato a
TX Dato
transmitir
Finaliza la
TX Reset
transmicion
Tabla 3

Maestro Dato Acción


Indica que
comenzara
TX Reset
Figura 10 una
transmisión
La Tabla 3 indica el procedimiento que Respuesta del
se seguirá para realizar la comunicación y en esclavo,
este caso mostrando la transmicion. La Tabla RX Presence indicando que
4 muestra el procedimiento seguida para leer esta
los datos desde la memoria. preparado
Se comunica
Maestro Dato Acción
de forma
Indica que TX CCh directa ya que
comenzara hay un solo
TX Reset
una esclavo
transmisión
Se indica que
Respuesta del TX AAh se leerá la
esclavo, memoria
RX Presence indicando que
Indica la
esta
dirección de
preparado TX Dirección
memoria en la
Se comunica cual se leerá
de forma
Dato por
TX CCh directa ya que RX Dato
recibir
hay un solo
esclavo Finaliza la
TX Reset
transmicion
Se indica que
TX 0Fh se escribirá Tabla 4
en la memoria
Las tablas anteriores muestran los
TX Dirección Indica la pasos que debemos seguir para la
dirección de programación de las funciones que nos
memoria en la permitirán hacer el envió y la recepción de
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

datos desde la EEPROM

El algoritmo del ejemplo se ilustra a


continuación.

Figura 12

A través de esta función escribiremos


los datos de la forma exacta mostrada en la
Tabla 3.
Figura 11
Dado que el procedimiento de
Como ya sabemos primero debemos
recepción de datos ya fue ilustrado en la Tabla
iniciar el lcd, es la única inicializacion, ademas
4, no se considera necesario mostrar un
de las variables a utilizar en le programa, que
algoritmo que muestre nuevamente los pasos
debemos realizar ya que la librería 1-Wire solo
a seguir, ya que solo se diferencia en la el
utiliza un pin par la transmisión, este caso
comando de lectura y en la utilización de la
sera el pin RA0. Luego mostramos un
función onewire_read()
mensaje en el lcd y conjuntamente realizamos
el envió de los datos a la memoria EEPROM,
La codificación en C se presenta en
con la utilización de la función transmicion().
conjunto con este informe, al igual que el
ejemplo.
El mismo procedimiento se sigue para
leer los datos, solo que ahora usaremos la
función recepcion(). Ambas funciones se
10. CONCLUSIONES
explican a continuación.
El protocolo 1-Wire tiene como mayor
defecto que aun es de desarrollo exclusivo de
Dallas, por lo que no ha conseguido
masificarse. Sin embargo y si bien posee una
UNIVERSIDAD TECNOLOGICA METROPOLITANA
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELECTRICIDAD
ESCUELA DE ELECTRÓNICA
PROFESORES: IVAN CAMOUSSEIGT; GUILLERMO GONZALEZ
FECHA: 03-12-09

velocidad de transmisión menor a otros


protocolos como el I2C, las prestaciones que 11. REFERENCIAS
posee lo ponen a un nivel competitivo. El
hecho de manejar niveles TTL elimina la • http://es.wikipedia.org/wiki/1-Wire
necesidad de elementos intermedios que
realicen cambios en de voltajes; los • http://www.maxim-
dispositivos 1-Wire son muy pequeños, ya que ic.com/appnotes.cfm/an_pk/2420
solo necesitan 3 pines para lograr la
comunicación y la alimentación, lo que genera
• http://www.maxim-ic.com/products/1-
un gran ahorro de espacio. Pero una de sus
wire/
principales características es el CRC-8 que
permite una alta detección de errores, lo que
nos asegura que la información recibida sera • Datasheet DS2430
realmente la información que solicitamos para
realizar alguna tarea. Solo estas cuatro • http://www.roso-
características básicas presentadas nos control.com/Espanol/EDU/MICRO/20_
permiten darnos cuenta de la gran ventaja que Clases/10_Teoria/90_Tema_08/Tema_
es tener conocimiento sobre este protocolo 08.pdf
para futuros proyectos.

También podría gustarte