Clave de hardware exclusivo para el conector de audio de 3.5 mm para iOS / Android

2

Aquí está la situación. Digamos que hay un conjunto de pequeños dispositivos suministrados con un conector de audio de 3.5 mm. Cada uno de estos dispositivos representa una especie de valor de clave de hardware único (digamos solo un número o una cadena). Digamos también que hay una aplicación para iPhone / Android, que necesita detectar que uno de estos dispositivos está conectado al inicio o que el estado del complemento (desconectar un dispositivo y conectar otro) ha cambiado. La aplicación debe tener pleno conocimiento de si hay alguna enchufada y, en caso afirmativo, cuál exactamente. No hay otra interacción necesaria hasta ahora.

¿Cuál sería la solución más fácil (para un chico que nunca se ocupó de cualquier tipo de hardware) y la más barata (en producción de tales dispositivos enchufables de 3,5 mm) para la situación?

He buscado, y la mayoría de los ejemplos son bastante complejos y se refieren a dispositivos más sofisticados, como sensores externos, microcontroladores programables (Arduino, Hijack, etc.), lo que me parece un tanto excesivo. Pero corrígeme si ese es el camino a seguir.

    
pregunta user22055

1 respuesta

3

Supuesto : el producto final deseado es algún tipo de dongle de protección de copia / identificación de hardware para que el software se ejecute en un teléfono inteligente.

Pasando de lo simple a lo más confiable, aquí hay dos opciones:

  1. Ping-back de sonido : analógico puro, sin microcontrolador

    • Dongle consiste en un circuito como se describe a continuación, conectado a 3.5 "(o 2.5", lo que sea) conector de auriculares TRRS, para ser conectado a la toma de auriculares del teléfono inteligente.
    • La aplicación en el teléfono inteligente emite un tono de audio en una serie de ráfagas (duración variable de encendido / apagado) en un canal de audio predefinido (izquierdo o derecho) del auricular.
    • El circuito del dongle recoge la energía por separado de cada canal de auriculares: considere un rectificador de puente de diodo Schottky alimentado por la señal de audio, y con un diodo Zener como un regulador de derivación ... uno en cada canal de auriculares.
    • Si la señal de audio está presente en ambos canales (es decir, en la reproducción de música normal, por ejemplo), el voltaje neto entre los canales recolectados será bajo o nulo, por lo que el resto del dispositivo simplemente no se encenderá, o lo hará de manera intermitente (variación de audio entre canales)
    • Si, por otro lado, existe una señal de sonido constante en un solo canal, es decir, se establece una diferencia de voltaje entre los dos canales recolectados, esto se usará para alimentar un oscilador de frecuencia de audio simple de cualquier tipo, emitiendo un predefinido frecuencia ( el infame temporizador 555 no funcionará, también consume mucha energía ... quizás una variante de baja potencia ), que emite al canal del micrófono del conector del auricular.
    • La aplicación del teléfono inteligente recibe una entrada de micrófono y detecta si la señal entrante es la frecuencia esperada y ninguna otra, dentro de los componentes analógicos y las tolerancias de diseño. Además, puede verificar si la señal de entrada del micrófono existe solo mientras la señal de salida de audio esté presente, tenga en cuenta las ráfagas de tonos variables mencionadas anteriormente.
    • Si es así, entonces el dongle es válido, la aplicación está en marcha.
    • Tenga en cuenta que esta forma de dongle es trivial a la fisuración, al empalmar un osciloscopio o incluso un dispositivo de grabación de audio, entre el dongle y el zócalo.
  2. Reconocimiento de desafío de ID único a través de audio. Utiliza un microcontrolador de bajo consumo.

    • Dongle vuelve a cosechar el poder de los canales de los auriculares para alimentarse a sí mismo, como se indica arriba
    • La aplicación en el teléfono inteligente genera repetidamente una secuencia numérica única como un tono DTMF con un marcador de inicio, en un canal de audio predefinido (izquierdo o derecho) del auricular.
    • El ADC del microcontrolador se utiliza para muestrear el DTMF entrante, para extraer la secuencia numérica una vez que se identifica el marcador de inicio.
    • Si la secuencia no es válida conocida según lo programado en el código del microcontrolador, no se hace nada.
    • Para una secuencia válida, una secuencia numérica correspondiente se genera mediante una transformación predefinida, tan compleja como se desee.
    • Esta secuencia resultante es emitida como tonos DTMF por el microcontrolador, a través del canal del micrófono de la toma de auriculares.
    • La aplicación para teléfonos inteligentes recibe esta secuencia DTMF y se valida con el algoritmo de transformación. Si se comprueba el resultado, el dongle es válido y la aplicación está en marcha.
    • Se recomienda un microcontrolador de bajo consumo, como la familia MSP430 de Texas Instruments, para este tipo de diseño.
    • La generación de DTMF de código abierto y el código fuente de detección se pueden encontrar para muchos microcontroladores, y por supuesto para Java o cualquier otro idioma en el que se codificará la aplicación del teléfono inteligente.
respondido por el Anindo Ghosh

Lea otras preguntas en las etiquetas