Articulo de referencia

1 cable

Un iButton en un llavero de plástico, como el que se usa para el billete inteligente Akbil de Estambul. Un anillo Java con un iButton integrado. 1-Wire es un bus serie semidúple...

Un iButton en un llavero de plástico, como el que se usa para el billete inteligente Akbil de Estambul.
Un anillo Java con un iButton integrado.

1-Wire es un bus serie semidúplex cableado diseñado por Dallas Semiconductor que proporciona comunicación de datos de baja velocidad (estándar 16,3 kbit/s; "sobremarcha" a 10× [ 1 ] ) y tensión de alimentación a través de un único conductor . [ 2 ] 

1-Wire es similar en concepto a I²C , pero con velocidades de datos más bajas y mayor alcance. Se suele utilizar para comunicarse con dispositivos pequeños y económicos , como termómetros digitales e instrumentos meteorológicos. Una red de dispositivos 1-Wire con un dispositivo maestro asociado se denomina MicroLAN . El protocolo también se utiliza en pequeñas  llaves electrónicas de 16 mm, conocidas como llaves Dallas o iButton .

Una característica distintiva del bus es la posibilidad de usar solo dos conductores  : datos y tierra. Para lograr esto, los dispositivos 1-Wire integran un pequeño condensador (~800 pF ) para almacenar carga, que alimenta el dispositivo durante los períodos en que la línea de datos está activa. 

Ejemplo de uso

Los dispositivos 1-Wire están disponibles en diferentes formatos: circuitos integrados , encapsulados tipo TO-92 (como los que se usan habitualmente para transistores) y una versión portátil llamada iButton o llave Dallas, que es un pequeño dispositivo de acero inoxidable similar a una pila de reloj . Los fabricantes también producen dispositivos más complejos que un solo componente que utilizan el bus 1-Wire para comunicarse.

Los dispositivos 1-Wire pueden ubicarse en diferentes partes de un sistema. Pueden ser uno de los muchos componentes de una placa de circuito impreso dentro de un producto, o un componente individual dentro de un dispositivo, como una sonda de temperatura. También pueden conectarse al dispositivo que se está monitorizando. Algunos sistemas de laboratorio se conectan a dispositivos 1-Wire mediante cables con conectores modulares o cable CAT-5 . En estos sistemas, los conectores RJ11 (6P2C o 6P4C , comúnmente utilizados en telefonía) son muy populares.

Los sistemas de sensores y actuadores se pueden construir conectando varios componentes 1-Wire. Cada componente 1-Wire contiene toda la lógica necesaria para operar en el bus 1-Wire. Algunos ejemplos son los registradores de temperatura , los temporizadores, los sensores de voltaje y corriente, los monitores de batería y la memoria . Estos se pueden conectar a una PC mediante un convertidor de bus. Las interfaces USB , serie RS-232 y puerto paralelo son soluciones comunes para conectar una MicroLAN a la PC host. Los dispositivos 1-Wire también se pueden conectar directamente a microcontroladores de diversos fabricantes.

Los iButtons se conectan a los sistemas de bus 1-Wire mediante conectores con contactos que tocan la tapa y la base del cartucho. Como alternativa, la conexión puede ser semipermanente, con un conector en el que se inserta el iButton , pero del que se puede extraer fácilmente.

Cada chip 1-Wire tiene un código de identificación único. Esta característica hace que los chips, especialmente los iButtons , sean llaves electrónicas idóneas. Algunos usos incluyen cerraduras, alarmas antirrobo, sistemas informáticos, accesorios homologados por el fabricante, relojes de control horario y llaves de mensajería y mantenimiento para cajas fuertes inteligentes.

Los iButtons se han utilizado como billetes inteligentes Akbil para el transporte público en Estambul . También pueden ejecutar programas de tarjetas inteligentes como Java Card 2.0, como lo ejemplifica el "Java Ring" de 1998. [ 3 ]

Fuentes de alimentación

Las fuentes de alimentación, pantallas y portátiles Mac equipados con conectores Apple MagSafe y MagSafe-2 utilizan el protocolo 1-Wire para enviar y recibir datos desde y hacia el portátil Mac conectado, a través del pin central del conector. Los datos incluyen el modelo, la potencia y el número de serie de la fuente de alimentación; y comandos del portátil para enviar la máxima potencia e iluminar los diodos emisores de luz rojos o verdes del conector. [ 4 ]

Las fuentes de alimentación de los portátiles Dell utilizan el protocolo 1-Wire para enviar datos a través del tercer cable al ordenador portátil sobre la potencia, la corriente y el voltaje. El portátil rechazará la carga si el adaptador no cumple con los requisitos. [ 5 ]

Protocolo de comunicación

En cualquier red MicroLan, siempre hay un maestro a cargo, que puede ser una computadora personal o un microcontrolador . El maestro inicia la actividad en el bus, lo que simplifica la prevención de colisiones. El software del maestro incorpora protocolos para detectar colisiones. Tras una colisión, el maestro reintenta la comunicación necesaria.

Una red 1-Wire es un único cable de drenaje abierto con una única resistencia de polarización . Esta resistencia eleva la tensión del cable a 3 o 5 voltios. El dispositivo maestro y todos los esclavos tienen una única conexión de drenaje abierto para controlar el cable y un mecanismo para detectar su estado. A pesar del nombre "1-Wire", todos los dispositivos deben tener un segundo conductor para la conexión a tierra , lo que permite que fluya una corriente de retorno a través del cable de datos. [ 6 ] La comunicación se produce cuando un maestro o un esclavo baja brevemente la tensión del bus, es decir , conecta la resistencia de polarización a tierra a través de su MOSFET de salida. El cable de datos está en estado alto cuando está inactivo, por lo que también puede alimentar un número limitado de dispositivos esclavos.  Se pueden alcanzar velocidades de datos de 16,3 kbit/s. [ 7 ] : 40 También existe un modo de sobremarcha que acelera la comunicación en un factor de 10. [ 7 ] : 39

Un bus 1-Wire corto puede controlarse desde un único pin de E/S digital en un microcontrolador. También se puede utilizar un transmisor-receptor asíncrono universal (UART). [ 8 ] Existen chips controladores y puentes 1-Wire específicos . También hay disponibles chips puente para bus serie universal . Los chips puente son especialmente útiles para controlar cables de más de 100 m. El fabricante ha probado pares trenzados  de hasta 300 metros , es decir , cables telefónicos. Estas longitudes extremas requieren ajustes en las resistencias pull-up de 5 a 1 kΩ . [ 7 ] : 40–41

El maestro inicia una transmisión con un pulso de reinicio , que pone el cable a 0 voltios durante al menos 480 μs . Esto reinicia todos los dispositivos esclavos del bus. Posteriormente, cualquier dispositivo esclavo, si está presente, indica su existencia mediante un pulso de "presencia": mantiene el bus en estado bajo durante al menos 60 μs después de que el maestro lo libere.  

Para enviar un número binario "1", el maestro del bus envía un pulso bajo muy breve ( 1–15 μs ). Para enviar un número binario "0", el maestro envía un  pulso bajo de 60 μs. El flanco descendente (negativo) del pulso se utiliza para activar un multivibrador monoestable en el dispositivo esclavo. El multivibrador del esclavo lee la línea de datos aproximadamente 30  μs después del flanco descendente. El temporizador interno del esclavo es un temporizador analógico económico. Tiene tolerancias analógicas que afectan su precisión de temporización. Por lo tanto, los pulsos se calculan para que estén dentro de los márgenes. En consecuencia, los pulsos "0" deben tener  una duración de 60 μs, y los pulsos "1" no pueden ser más largos de 15  μs.

Al recibir datos, el maestro envía un pulso de 0 voltios de 1 a 15 μs para iniciar cada bit. Si la unidad esclava transmisora ​​quiere enviar un "1", no hace nada y el bus pasa a la tensión de polarización positiva. Si la unidad esclava transmisora ​​quiere enviar un "0", pone la línea de datos a tierra durante 60 μs .

La secuencia básica consiste en un pulso de reinicio seguido de un comando de ocho bits, y luego los datos se envían o reciben en grupos de ocho bits.

Cuando se transfiere una secuencia de datos, los errores pueden detectarse con un CRC de ocho bits (protección de datos débil) .

Muchos dispositivos pueden compartir el mismo bus. Cada dispositivo en el bus tiene un número de serie de 64 bits, de los cuales ocho se utilizan como suma de verificación, lo que permite un "universo" de 2⁵⁶ ( más de 7,2 × 10¹⁶ ) identidades de dispositivo únicas. El byte menos significativo del número de serie es un número de ocho bits que indica el tipo de dispositivo. El byte más significativo es un CRC estándar de ocho bits (para el bus 1-Wire). [ 7 ] : 14

Existen varios comandos de difusión estándar, así como comandos específicos para dirigirse a un dispositivo concreto. El maestro puede enviar un comando de selección, seguido de la dirección de un dispositivo específico. El siguiente comando solo se ejecuta en el dispositivo seleccionado.

El protocolo de enumeración de bus 1-Wire, al igual que otros protocolos de identificación , es un algoritmo que el maestro utiliza para leer la dirección de cada dispositivo en el bus. Dado que la dirección incluye el tipo de dispositivo y un CRC, la recuperación de la lista de direcciones también produce un inventario fiable de los dispositivos en el bus. Para encontrar los dispositivos, el maestro difunde un comando de enumeración y luego una dirección, "escuchando" después de cada bit de la dirección. Si la dirección de un esclavo coincide con todos los bits de dirección enviados hasta el momento, devuelve un 0. El maestro utiliza este comportamiento simple para buscar sistemáticamente secuencias válidas de bits de dirección. El proceso es mucho más rápido que una búsqueda por fuerza bruta de todos los números posibles de 56 bits, porque tan pronto como se detecta un bit no válido, se sabe que todos los bits de dirección subsiguientes son no válidos. El espacio de direcciones de 56 bits se busca como un árbol binario, [ 7 ] : 51 lo que permite encontrar hasta 75 dispositivos por segundo. [ 7 ] : 53 El orden en que se descubren las direcciones de los dispositivos mediante este protocolo de enumeración es determinista y depende únicamente del tipo de dispositivo y del número de serie. Invirtiendo los bits de estos 56 bits se obtiene el orden de descubrimiento para los dispositivos utilizando el algoritmo publicado por Maxim (algoritmo definido en la Nota de aplicación 187 [ 9 ] ). El algoritmo de búsqueda puede implementarse de forma alternativa, buscando inicialmente rutas con bits de dirección iguales a 1, en lugar de 0. En este caso, invirtiendo los 56 bits de dirección y luego revirtiéndolos se obtiene el orden de descubrimiento.

La ubicación de los dispositivos en el bus a veces es importante. En estos casos, un microcontrolador puede usar varios pines, o el fabricante dispone de un dispositivo 1-Wire que puede activar o desactivar el bus. Por lo tanto, el software puede explorar dominios de bus secuenciales . [ 7 ]

Códigos de la familia ROM

El ID de ROM de 64 bits de cada dispositivo 1-Wire termina con un código de familia de 8 bits. En la mayoría de los casos, este byte se asigna a un único número de pieza, por lo que leerlo del bus suele ser suficiente para identificar el dispositivo; por ejemplo, 0x10 (termómetro DS18S20), [ 10 ] 0x01 (número de serie del silicio DS2401), [ 11 ] o 0x2D (EEPROM de 1 kbit DS2431). [ 12 ]

Varias personas han creado bases de datos en línea de códigos familiares a partir de la amplia gama de dispositivos de memoria, autenticación, identificación y monitoreo de batería 1-Wire. [ 13 ]

Ejemplo de comunicación con un dispositivo

Las siguientes señales fueron generadas por una FPGA , que actuaba como controladora para la comunicación con un chip DS2432 ( EEPROM de 1 kbit con motor SHA-1), y medidas con un analizador lógico. Un nivel lógico alto en la salida 1-Wire indica que la salida de la FPGA está en modo triestado y que el dispositivo 1-Wire puede poner el bus en nivel bajo. Un nivel bajo indica que la FPGA pone el bus en nivel bajo. La entrada 1-Wire es la señal del bus medida. Cuando el tiempo de muestreo de entrada es alto, la FPGA muestrea la entrada para detectar la respuesta del dispositivo y recibir los bits.

Herramientas de desarrollo

Al desarrollar o solucionar problemas del bus 1-Wire, el análisis de las señales de hardware resulta fundamental. Los analizadores lógicos y de bus son herramientas que recopilan, analizan, decodifican y almacenan señales para facilitar la visualización de las formas de onda de alta velocidad.

Véase también

Referencias

  1. "Lectura y escritura de dispositivos 1-Wire a través de interfaces seriales" . Maxim Integrated . Consultado el 21 de diciembre de 2022 .
  2. "Descripción general de la tecnología 1-Wire y su uso" . Analog Devices . Archivado del original el 27 de junio de 2023. Consultado el 21 de julio de 2023 .
  3. Una introducción al Java Ring Archivado el 18 de julio de 2011 en Wayback Machine , por Stephen M. Curry , JavaWorld.com , 1 de abril de 1998.
  4. ""Desmontaje y análisis del conector MagSafe de Apple"" . rightTo.com . Consultado el 18 de julio de 2017 .
  5. "Hacking Dell Laptop Charger Identification" . hackaday.com . Consultado el 30 de noviembre de 2015 .
  6. "Tutorial en línea de 1-Wire. Este tutorial le brindará una descripción general del protocolo 1-Wire, su funcionamiento en dispositivos y soluciones de aplicación" . Archivado del original el 2 de mayo de 2009. Consultado el 13 de marzo de 2009 .
  7. 1 2 3 4 5 6 7
  8. "Uso de una UART para implementar un maestro de bus de 1 cable" . Analog Devices . 10 de septiembre de 2002. Consultado el 3 de diciembre de 2024 .
  9. "1 Algoritmo de búsqueda de cables (Nota de aplicación 187)" (PDF) . Consultado el 2 de octubre de 2020 .
  10. "DS18S20 – Termómetro digital de alta precisión de 1 cable (hoja de datos)" (PDF) . Analog Devices . Consultado el 25 de abril de 2025 .
  11. "DS2401 – Número de serie de silicio (hoja de datos)" (PDF) . Analog Devices . Consultado el 25 de abril de 2025 .
  12. "DS2431 – EEPROM de 1024 bits y 1 cable (hoja de datos)" . Analog Devices . Consultado el 25 de abril de 2025 .
  13. "Base de datos de códigos familiares 1-Wire" . Jumtee Security . Consultado el 25 de abril de 2025 .
  • Dispositivo de 1 cable
  • Acceso, lectura y escritura en dispositivos 1-Wire mediante UART
  • Implementación de un controlador de bus 1-Wire mediante UART
  • iButton , iButtonLink
  • Directrices para redes 1-Wire de larga distancia fiables
  • Cómo elegir el maestro 1-Wire adecuado para aplicaciones integradas
  • OWFS  : sistema de archivos 1-Wire para Linux
  • Guías para trabajar con 1-Wire, para programadores e ingenieros.
  • Cómo hacer funcionar los sensores 1-Wire en Linux usando OWFS
  • Tutorial de Arduino de 1 cable
  • Guía para escribir software para 1-Wire/MicroLan usando Lazarus , "el Delphi gratuito".