stringtranslate.com

1 cable

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

1-Wire es un bus serial semidúplex cableado diseñado por Dallas Semiconductor que proporciona comunicación de datos de baja velocidad (16,3 kbit/s [1] ) y voltaje de suministro a través de un solo conductor . [2]

El concepto de 1-Wire es similar al de I 2 C , pero con velocidades de datos más bajas y un alcance mayor. Se utiliza normalmente 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 conocidas como llave Dallas o iButton .

Una característica distintiva del bus es la posibilidad de utilizar solo dos conductores: datos y tierra. Para lograr esto, los dispositivos 1-Wire integran un pequeño condensador (~800 pF ) para almacenar la 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 paquetes: circuitos integrados , un paquete estilo TO-92 (como el que se usa normalmente para transistores) y una forma portátil llamada iButton o llave Dallas, que es un pequeño paquete de acero inoxidable que se parece a una pila de reloj . Los fabricantes también producen dispositivos más complejos que un solo componente que usan el bus 1-Wire para comunicarse.

Los dispositivos 1-Wire pueden adaptarse a diferentes lugares de un sistema. Puede ser uno de los muchos componentes de una placa de circuitos dentro de un producto. También puede ser un componente único dentro de un dispositivo, como una sonda de temperatura. Puede estar conectado a un dispositivo que se esté monitoreando. Algunos sistemas de laboratorio se conectan a dispositivos 1-Wire mediante cables con conectores modulares o cable CAT-5 . En dichos sistemas, los conectores RJ11 ( enchufes modulares 6P2C o 6P4C , comúnmente utilizados para teléfonos) son populares.

Se pueden construir sistemas de sensores y actuadores conectando entre sí muchos componentes 1-Wire. Cada componente 1-Wire contiene toda la lógica necesaria para funcionar en el bus 1-Wire. Algunos ejemplos son los registradores de temperatura , los temporizadores, los sensores de tensión y corriente, los monitores de batería y la memoria . Estos se pueden conectar a una PC mediante un convertidor de bus. Las interfaces de puerto paralelo , serial RS-232 y USB son soluciones populares para conectar un MicroLan a la PC host. Los dispositivos 1-Wire también se pueden interconectar directamente a microcontroladores de varios proveedores.

Los iButtons se conectan a los sistemas de bus 1-Wire mediante conectores con contactos que tocan la "tapa" y la "base" del recipiente. Alternativamente, la conexión puede ser semipermanente con un conector en el que se encaja 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 adecuadas. Algunos usos incluyen cerraduras, alarmas antirrobo, sistemas informáticos, accesorios aprobados por el fabricante, relojes de control de asistencia 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 .

Fuentes de alimentación

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

Las fuentes de alimentación originales de Dell para portátiles utilizan el protocolo 1-Wire para enviar datos a través del tercer cable a la computadora portátil sobre los valores nominales de potencia, corriente y voltaje. La computadora portátil se negará a cargar si el adaptador no cumple con los requisitos. [4]

Protocolo de comunicación

En cualquier MicroLan, siempre hay un maestro a cargo de todo, 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 en el bus. Los protocolos están integrados en el software del maestro para detectar colisiones. Después de una colisión, el maestro vuelve a intentar la comunicación requerida.

Una red 1-Wire es un único cable de drenaje abierto con una única resistencia pull-up . La resistencia pull-up tira del cable hasta 3 o 5 voltios. El dispositivo maestro y todos los esclavos tienen cada uno una única conexión de drenaje abierto para accionar el cable y una forma de detectar el estado del cable. A pesar del nombre "1-Wire", todos los dispositivos también deben tener un segundo conductor para una conexión a tierra para permitir que fluya una corriente de retorno a través del cable de datos. [5] La comunicación se produce cuando un maestro o esclavo baja brevemente el bus, es decir , conecta la resistencia pull-up a tierra a través de su MOSFET de salida. El cable de datos está alto cuando está inactivo, por lo que también puede alimentar un número limitado de dispositivos esclavos. Se pueden lograr velocidades de datos de 16,3 kbit/s. También hay un modo de sobremarcha que acelera la comunicación por un factor de 10.

Un bus 1-Wire corto puede ser controlado desde un solo pin de E/S digital en un microcontrolador. También puede utilizarse un receptor-transmisor asíncrono universal (UART). [6] Hay disponibles chips puente y controladores 1-Wire específicos . También hay disponibles chips "puente" de bus serie universal . Los chips puente son particularmente ú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Ω .

El maestro inicia una transmisión con un pulso de reinicio , que lleva el cable a 0 voltios durante al menos 480  μs . Esto reinicia todos los dispositivos esclavos en el bus. Después de eso, cualquier dispositivo esclavo, si está presente, muestra su existencia con un pulso de "presencia": mantiene el bus bajo durante al menos 60 μs después de que el maestro libera el bus.

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 iniciar un multivibrador monoestable en el dispositivo esclavo. El multivibrador en el 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. Por lo tanto, los pulsos "0" deben tener una duración de 60 μs y los pulsos "1" no pueden tener una duración superior a 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 ​​desea enviar un "1", no hace nada y el bus pasa al voltaje elevado. Si la unidad esclava transmisora ​​desea enviar un "0", conecta la línea de datos a tierra durante 60 μs .

La secuencia básica es 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 se pueden detectar con un CRC de ocho bits (protección de datos débil).

Muchos dispositivos pueden compartir el mismo bus. Cada dispositivo del bus tiene un número de serie de 64 bits, de los cuales ocho bits se utilizan como suma de comprobación, lo que permite un "universo" de 2 56 (sobre 7,2 × 10 16 ) 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 (para el bus 1-Wire) de ocho bits. [7]

Existen varios comandos de transmisión estándar, así como comandos que se utilizan para direccionar un dispositivo en particular. El maestro puede enviar un comando de selección y luego la dirección de un dispositivo en particular. El siguiente comando lo ejecuta solo el dispositivo direccionado.

El protocolo de enumeración de bus 1-Wire, al igual que otros protocolos de singularizació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 confiable de los dispositivos en el bus. Para encontrar los dispositivos, el maestro transmite un comando de enumeración y luego una dirección, "escuchando" después de cada bit de una 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 de fuerza bruta de todos los números de 56 bits posibles, porque tan pronto como se detecta un bit no válido, se sabe que todos los bits de dirección posteriores son inválidos. El espacio de direcciones de 56 bits se busca como un árbol binario, lo que permite encontrar hasta 75 dispositivos por segundo. El orden en el que se descubren las direcciones de los dispositivos mediante este protocolo de enumeración es determinista y depende solo del tipo de dispositivo y el número de serie. La inversión de bits de estos 56 bits da como resultado el orden de descubrimiento para dispositivos que utilizan el algoritmo publicado de Maxim (algoritmo definido en la Nota de aplicación 187 [8] ). El algoritmo de búsqueda se puede implementar en una forma alternativa, buscando inicialmente rutas con bits de dirección iguales a 1, en lugar de 0. En este caso, la inversión de los 56 bits de dirección y luego su inversión da como resultado el orden de descubrimiento.

La ubicación de los dispositivos en el bus es a veces importante. Para estas situaciones, un microcontrolador puede utilizar varios pines, o el fabricante tiene un dispositivo 1-Wire que puede apagar o encender el bus. Por lo tanto, el software puede explorar dominios de bus secuenciales . [7]

Ejemplo de comunicación con un dispositivo

Las siguientes señales fueron generadas por un FPGA , que era el maestro para la comunicación con un chip DS2432 ( EEPROM ), y medidas con un analizador lógico. Un nivel lógico alto en la salida 1-Wire significa que la salida del FPGA está en modo triestado y el dispositivo 1-Wire puede bajar el bus. Un nivel bajo significa que el FPGA baja el bus. La entrada 1-Wire es la señal de bus medida. En el tiempo de muestreo de entrada alto, el FPGA muestrea la entrada para detectar la respuesta del dispositivo y recibir bits.

Herramientas de desarrollo

Al desarrollar y/o solucionar problemas del bus 1-Wire, el examen de las señales de hardware puede ser muy importante. Los analizadores lógicos y los analizadores de bus son herramientas que recopilan, analizan, decodifican y almacenan señales para simplificar 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 desde el original el 2023-06-27 . Consultado el 2023-07-21 .
  3. ^ ""Desmontaje y exploración del conector Magsafe de Apple"". rightTo.com . Consultado el 18 de julio de 2017 .
  4. ^ "Hackeo de identificación de cargador de laptop Dell". hackaday.com . Consultado el 30 de noviembre de 2015 .
  5. ^ "Tutorial en línea de 1-Wire. Este tutorial le brindará una descripción general del protocolo 1-Wire, su funcionamiento y soluciones de aplicación". Archivado desde el original el 2009-05-02 . Consultado el 2009-03-13 .
  6. ^ "Uso de un UART para implementar un bus maestro de 1 cable".
  7. ^ ab "iButton Overview" (PDF) . Archivado desde el original (PDF) el 27 de enero de 2009 . Consultado el 18 de diciembre de 2008 .081218 maxim-ic.com
  8. ^ "Algoritmo de búsqueda de 1 cable (nota de aplicación 187)" (PDF) . Consultado el 2 de octubre de 2020 .

Enlaces externos