Diseño y desarrollo del programa de auriculares TWS

2020-06-07 13:36:42 fandoukeji

Con el advenimiento de la era omnidireccional de la comunicación móvil, los productos Bluetooth portátiles y compactos están ganando cada vez más favores. En los últimos años, los auriculares Bluetooth TWS y los productos de pasarela de audio se han desarrollado rápidamente y se han convertido en un punto brillante en el campo de Bluetooth. Los auriculares Bluetooth TWS y la puerta de enlace de audio pueden garantizar una conexión de voz rápida y estable dentro de los 10 m. La puerta de enlace de audio no solo es un terminal inalámbrico, sino que también se conecta directamente a los auriculares Bluetooth TWS para hablar. Su función más importante es servir como un punto de acceso para auriculares y ampliar la corta gama de equipos, como módulos GSM y terminales de voz fijos.


Bluetooth es una tecnología de comunicación inalámbrica de radiofrecuencia de corto alcance de 214 GHz con una banda de frecuencia de trabajo que se puede usar libremente en todo el mundo. Utiliza conexiones inalámbricas de corto alcance y bajo costo para reemplazar las conexiones de cable, proporcionando así una red de datos existente y pequeños dispositivos periféricos. La interfaz proporciona una conexión unificada. Bluetooth HeadSet utiliza la tecnología Bluetooth para lograr la comunicación inalámbrica entre los auriculares Bluetooth TWS y las puertas de enlace de audio (como los teléfonos móviles), lo que proporciona una respuesta manos libres a las llamadas de teléfonos móviles. En el modelo Bluetooth HeadSet, los dos primeros roles deben ser claros: uno es AG (AudioGateway), que actúa como una puerta de enlace de audio, que se puede usar como entrada de audio y salida de audio; el otro es HS (HeadSet), que es un auricular Bluetooth TWS, él es Un dispositivo que actúa como entrada y salida de audio remoto Bluetooth y proporciona algunos métodos de control remoto.


1. Proceso de desarrollo de auriculares TWS

En el desarrollo de auriculares Bluetooth TWS (Bluetoothheadset, HS) y puertas de enlace de audio (audiogateway, AG), adoptamos la solución de desarrollo de Bluetooth totalmente integrada de la compañía británica CSR, y diseñamos con el chip Bluetooth externo BlueCore22 como núcleo. CSR proporciona a los desarrolladores varios perfiles básicos de firmware de nivel inferior (fireware) para implementar las funciones de la pila de protocolos centrales de Bluetooth. El trabajo que hemos realizado se basa en el firmware del perfil de auriculares, utilizando la API de aplicación proporcionada hacia arriba, para escribir aplicaciones de auriculares y pasarela de audio que sean adecuadas para las necesidades reales y cumplan con la especificación Bluetooth, y se combinen con la entidad de hardware. Implemente completamente todas las funciones de HS / AG. Escribir un programa integrado Bluetooth en una PC requiere un entorno de compilación cruzada de Linux. El software correspondiente de depuración, simulación y descarga de Bluetooth se basa en el sistema operativo Windows. La forma de resolver esta contradicción es utilizar el software Cygwin, que proporciona una biblioteca del sistema Unix basada en Win32API, que puede simular el entorno Linux que se ejecuta en la plataforma Windows. Ingrese el comando makebc02 en Cygwin, la aplicación y el firmware correspondiente se compilarán en un archivo de descarga .xdv, y a través del puerto paralelo de la PC a la interfaz SPI del chip, y finalmente todo el software se integrará en la memoria Flash del módulo Bluetooth.


深圳TWS耳机方案开发公司

2. Desarrollo de hardware de auriculares Bluetooth TWS

El chip Bluetooth BlueCore22External de CSR es totalmente compatible con las especificaciones Bluetooth V1.1 y V1.2, integra radiofrecuencia, procesador de señal de banda base, microcontrolador y 32KBRAM, y 8MBFlash externo se utiliza para almacenar la pila de protocolos Bluetooth y los programas de aplicación. La interfaz aérea del módulo Bluetooth proporciona tres métodos de codificación de compresión de 64KbpsA-law PCM, μ-law PCM y CVSD (modulación incremental de pendiente variable continua), por lo que de acuerdo con el método de codificación seleccionado por el software, se debe usar el códec correspondiente con un rendimiento de 64Kbps o más . Utilizamos un método de desarrollo totalmente integrado, donde todas las pilas y aplicaciones de software Bluetooth se ejecutan en un solo chip e interactúan con los usuarios a través de botones y LED.


3. Arquitectura del software de auriculares Bluetooth TWS

La arquitectura del protocolo Bluetooth utiliza un enfoque por capas, que incluye el protocolo central Bluetooth y algunos protocolos patentados. El perfil del auricular define el protocolo de especificación Bluetooth utilizado en las aplicaciones HS y AG e indica algunos mensajes y procesos en la especificación Bluetooth, que pueden considerarse como una sección longitudinal de la pila de protocolos. Los auriculares mono y las puertas de enlace de audio son totalmente compatibles con el perfil de auriculares en la especificación Bluetooth. Su sistema de software es básicamente el mismo, pero los procedimientos en la capa de aplicación son diferentes.


Entre ellos, la banda base, la gestión de enlace (LMP), el protocolo de control y adaptación de enlace lógico (L2CAP) y el protocolo de búsqueda de servicio (SDP) son las partes centrales de la parte inferior de la pila de Bluetooth, que completan respectivamente el salto de frecuencia y el desmontaje y montaje de marcos de datos, el filtrado de flujo de datos y Funciones como transmisión, control de enlace, calidad de servicio (QoS), multiplexación de protocolos y descubrimiento de servicios. El protocolo de emulación de cable serie (FCCOMM) brinda la capacidad de reemplazar cables y brinda servicios para servicios avanzados que utilizan líneas seriales como mecanismo de transmisión.


La banda base Bluetooth es compatible con ACL (conexión asíncrona sin conexión) y SCO (conexión síncrona 2 orientada) en el mismo enlace de radiofrecuencia. ACL se utiliza para la transmisión de datos asíncrona, y SCO es adecuado para voz sincrónica. Entre HS y AG, la aplicación se basa en la conexión RFCOMM basada en ACL para enviar y recibir comandos AT, para realizar contestación de llamadas e intercambiar MIC, parámetros de ganancia de volumen del altavoz y otras operaciones de control. El flujo de voz basado en SCO se envía directamente a la transmisión de banda base por alto nivel, que también es la clave para garantizar el procesamiento de voz en tiempo real.


De acuerdo con las normas de perfil, tanto HS como AG pueden iniciar el establecimiento de ACL. Después de que la ACL se construye con éxito, se puede establecer un SCO en cualquier momento. Puede ser que el AG inicie la iniciativa SCO, o después de recibir el AT + AKPD del HS (lo que indica que se activa la tecla TALK del auricular), el AG responde al establecimiento del SCO, pero esencialmente solo el AG tiene el derecho de decidir finalmente cuándo generar el SCO. Del mismo modo, la eliminación de ACL y SCO también es responsabilidad de AG.


深圳TWS耳机PCBA设计

4. Implementación de software del proceso de construcción de la cadena Bluetooth

El programa de aplicación Bluetooth se ejecuta en la máquina virtual en el chip y adopta un método de transmisión de mensajes. El planificador es responsable de recopilar eventos de mensajes e iniciar las funciones de tareas correspondientes.


4.1 Inicialización


Primero inicialice la función de biblioteca de auriculares, registre el servicio de encabezado correspondiente con SDP y configure el tipo de dispositivo (classofdevice). Si hay un dispositivo que ya ha sido emparejado, la aplicación envía un mensaje CM_ADD_SM_DEVICE_REQ para registrarlo como un dispositivo confiable en el administrador de enlaces, lo que simplifica los pasos de autenticación de ambas partes y acelera la construcción de la cadena.


4.2 Emparejamiento


La solicitud de emparejamiento CM_PAIR_REQ coloca el dispositivo en modo de emparejamiento y luego puede consultar la dirección Bluetooth de la otra parte e intercambiar un código de identificación personal (PIN) para la autenticación. Solo si los códigos PIN ingresados en ambos dispositivos son los mismos, la autenticación puede tener éxito. Finalmente, la clave de enlace (tecla de enlace) utilizada para la comunicación se genera en función del código PIN, la dirección de Bluetooth y el número aleatorio y se llama a la función PsStore () para almacenarla en Flash para su reutilización Se usa cuando se conecta.


4.3 conexión


Cualquier extremo puede solicitar una conexión RFCOMM como maestro o esclavo. Vale la pena señalar que solo el AG puede emitir CM_SCO_CONNECT_REQ para solicitar el establecimiento de una conexión SCO. Si ambas partes recuperan el estado correcto, se conecta el enlace de voz.


5. Esquema de diseño principal del sistema de auriculares Bluetooth TWS

Los módulos funcionales básicos del sistema Bluetooth se muestran en la Figura 1. Sus módulos funcionales incluyen unidad de antena, controlador de enlace, gestión de enlace y funciones de software.


图1 蓝牙系统的基本功能模块

5.1 Especificaciones técnicas inalámbricas


La antena Bluetooth es una antena microstrip, y la interfaz inalámbrica Bluetooth está diseñada en base a la potencia de transmisión inalámbrica convencional de 0dBm, que cumple con las regulaciones de banda ISM de la Comisión de Comunicaciones de los Estados Unidos (FCC). La aplicación de la tecnología de amplio espectro permite aumentar la potencia a 100 dBm, lo que puede satisfacer las necesidades de diferentes países. En Japón, España y Francia, debido a las bandas de frecuencia relativamente estrechas especificadas localmente, se puede utilizar la conversión interna de software.


5.2 Especificaciones técnicas de la banda base Bluetooth


La banda base describe la parte de procesamiento de señal digital del dispositivo, es decir, el controlador de enlace Bluetooth. Completa el protocolo de banda base y otros procedimientos de enlace de bajo nivel. Incluye principalmente los siguientes aspectos:


(1) El establecimiento de una conexión de red; (2) Tipo de enlace y tipo de paquete: el tipo de enlace determina qué modo de paquete se puede usar en un enlace específico. La tecnología de banda base Bluetooth admite dos tipos de enlace: es decir, conexión orientada a la sincronización Tipo SCO (utilizado principalmente para voz) y tipo ACL desconectado asíncrono (utilizado principalmente para paquetes de datos). (3) Corrección de errores: el controlador de banda base adopta tres métodos de corrección de errores: codificación de corrección de errores de avance de velocidad 1ö3 (FEC), codificación de corrección de errores de avance de velocidad 2ö3 (FEC) y retransmisión automática de datos (ACL). (4) Autenticación y encriptación: la parte de banda base Bluetooth proporciona a los usuarios mecanismos de protección y confidencialidad de la información en la capa física. La autenticación se basa en el algoritmo "Solicitar respuesta". La autenticación es una parte clave del sistema Bluetooth. Permite a los usuarios establecer un dominio de confianza para dispositivos Bluetooth personales. Por ejemplo, solo la computadora portátil del propietario puede comunicarse a través del teléfono móvil del propietario. El cifrado se utiliza para proteger la información personal conectada. La clave es administrada por el nivel superior del programa. Los protocolos y aplicaciones de transmisión de red pueden proporcionar a los usuarios un fuerte mecanismo de seguridad.


Sexto, la estructura de pila de protocolos del modelo de aplicación HeadSet

La pila del protocolo Bluetooth utiliza una estructura en capas, como se muestra en la Figura 2.


图2 蓝牙协议栈

Las funciones de cada capa se presentan brevemente de la siguiente manera:


La banda base es la capa física de Bluetooth; es la principal responsable de la codificación y decodificación del canal físico, el control de temporización de la capa inferior y la gestión del enlace durante la transmisión de un solo paquete. El campo de dirección y el campo de control se agregan a los datos de carga originales. Y llevar a cabo la detección o corrección de errores.


La capa LC (LinkControl) es responsable de responder a los comandos LM de la capa superior (como ejecutar comandos LM para establecer el enlace de transmisión del paquete de datos y mantener el enlace) durante la transmisión de un lote de paquetes de datos.


La capa LM (LinkManager) es el protocolo de la capa de administración de enlaces de la pila de protocolos Bluetooth; es responsable de traducir los comandos HCI de la capa superior en operaciones que pueden ser aceptadas por la banda base, establecer enlaces ACL (datos) y SCO (voz) y permitir que los dispositivos Bluetooth ingresen al estado de ahorro de energía. Modo de trabajo, etc.


ME (ManagementEntity) es una entidad de gestión, cuya función es descubrir dispositivos remotos y establecer conexiones con ellos, y proporcionar API de interfaz para las capas de aplicaciones y otras capas del sistema que necesitan administrar la piconet Bluetooth.


SE (SecurityManager) y ME trabajan juntos para permitir que el programa de aplicación establezca la autenticación y el cifrado. La autenticación y el cifrado reales se implementan mediante hardware.


El protocolo de control de enlace lógico (L2CAP) utiliza el concepto de canales para establecer diferentes rutas entre diferentes aplicaciones de dispositivos Bluetooth, pero solo admite enlaces ACL. La función principal es proporcionar la reutilización de protocolos para capas de aplicaciones de alto nivel, lo que les permite compartir enlaces de datos de bajo nivel. Agrupación y reensamblaje de grandes paquetes de datos más allá del soporte de la capa inferior, al tiempo que proporciona una gestión de calidad de los servicios de la capa superior.


El protocolo de búsqueda de servicio (SDP) es una parte extremadamente importante, ya que proporciona una forma para que los clientes SDP consulten al servidor SDP para obtener información de servicio. El servidor mantiene una lista de registros de servicio que describe las características del servicio relacionadas con el servidor. El cliente puede solicitar información de servicio, negocios y características comerciales del registro del servidor enviando una solicitud SDP y establecer una conexión entre dos o más dispositivos Bluetooth después de la consulta.


RFCOMM proporciona emulación de puerto serie, y la capa inferior de Bluetooth es responsable de proporcionar métodos de conexión inalámbrica, pero antes de eso, se han desarrollado muchas aplicaciones tradicionales basadas en métodos cableados. Si Bluetooth no puede resolver el problema de adaptarse a los protocolos tradicionales, es difícil convertirse en un Un estándar ampliamente utilizado. Con este fin, Bluetooth ha desarrollado un protocolo de adaptación como RFCOMM para admitir aplicaciones tradicionales.


Capa de control HeadSet: Implemente principalmente las funciones definidas por el perfil HeadSet, como el control de volumen del MIC (micrófono) de la puerta de enlace de audio, el control de volumen del SPK (altavoz), el establecimiento y la liberación del enlace SCO y la transferencia de audio.


Capa de aplicación del puerto de audio: son algunas funciones específicas de la aplicación. Las características de la aplicación que la capa de aplicación del auricular debe implementar son:


(1) Se puede establecer un enlace de audio cuando se recibe una llamada del AG, y el enlace de audio se puede desconectar una vez que finaliza la llamada. (2) Puede iniciar una llamada a un lugar distante y también puede desconectar el enlace de audio una vez que finaliza la llamada. (3) Transferencia de enlace de audio. (4) Control de volumen del control remoto AG.


蓝牙TWS耳机设计开发商

Siete, cadena de construcción Bluetooth HeadSet

Cuando la puerta de enlace de audio Bluetooth AG recibe una llamada e inicia un enlace con el HS, para que la comunicación de voz de la capa de aplicación sea confiable, se requiere la pila de protocolo Bluetooth para establecer un enlace de comunicación confiable. De acuerdo con el funcionamiento de la pila del protocolo Bluetooth, el establecimiento de la cadena desde la capa inferior hasta la capa superior generalmente pasa por los siguientes procesos:


(1) Establecer el enlace que es la capa de banda base de ACL; (2) Establecer el enlace de la capa L2CAP; (3) Realizar el proceso de consulta del SDP; (4) Establecer el enlace de la capa RFCOMM; (5) Después de establecer el enlace RFCOMM, el Transmita algunos comandos AT de la capa de control HeadSet a través del canal RFCOMM; (6) establezca un enlace SCO; (7) realice una comunicación de audio entre Bluetooth HS y AG de acuerdo con la acción de la capa de aplicación. El proceso de construcción de la cadena de la pila de protocolos Bluetooth se trata específicamente de la siguiente manera.


7.1 Establecer ACL, el enlace de la capa de banda base


Cuando el AG recibe una llamada, primero establece un enlace ACL con el HS. Este HS debe estar vinculado al AG por adelantado, o activar el HS en el estado inactivo. Esto se realiza a través del proceso de búsqueda de páginas. Cuando la ACL se establece con el proceso de búsqueda, el AG se define como el rol de Maestro, por lo que el AG primero inicia una consulta y obtiene la dirección Bluetooth del HS al consultar el AG. Luego, el AG inicia un proceso de página para el HS consultado bajo la unidad de la capa de aplicación. Cuando se recibe la respuesta devuelta por el HS, el enlace ACL entre el AG y el HS se ha establecido con éxito.


Una vez que se establece el enlace ACL, se puede utilizar para transmitir señales de llamada. La transmisión de la señal de llamada se completa con el comando AT RING. Las señales de llamada también se pueden enviar en el enlace SCO.


7.2 Establecer enlace de capa L2CAP


Después de establecer el enlace ACL, se establece el enlace L2CAP. El AG primero envía una señalización de solicitud de enlace en el canal de señalización, que requiere el establecimiento de L2CAP con una etiqueta de canal de 0x0040 (0x0001 ~ 0x003F están reservados por el protocolo y no pueden asignarse dinámicamente, y 0x0040 ~ 0xFFFF puede asignarse libremente). El PSM de este canal (servicio de protocolo Use) marque 0001, cuando la otra parte devuelve la señal de respuesta del enlace, indicando que se ha establecido el canal 0x0040. Luego configure este canal Después de configurar el canal, puede usar este canal L2CAP con CID 0x0040 para realizar una consulta SDP.


7.3 El proceso de consulta SDP


Usando el canal L2CAP con el CID de 0x0040 para realizar el proceso de consulta SDP, el primero es que el AG envía un paquete de consulta SDP en este canal L2CAP. El paquete de consulta SDP preguntará si el HS del servidor SDP tiene los servicios requeridos. Si la consulta es exitosa, cree un enlace L2CAP con la etiqueta 0x0041 en el enlace ACL. El PSM de este canal es 0003, que se utiliza para transmitir el flujo de datos RFCOMM. Al mismo tiempo, el enlace L2CAP etiquetado 0x0040 utilizado para la consulta SDP se desconecta.


7.4 Establecer enlace de capa RFCOMM


Cuando se establece el canal L2CAP con un CID de 0x0041, el proceso de construcción de la cadena RFCOMM sigue, como se muestra en la Figura 3. Primero construya un canal de control, el iniciador de cadena AG envía una trama SABM en el canal, es decir, se requiere Channel0 en la capa RFCOMM. Si el respondedor HS desea establecer un enlace, devuelve una trama UA, indicando que se ha establecido el canal Channel0 RFCOMM. . Este canal es un canal de control utilizado para transmitir tramas UIH que transportan mensajes y comandos de control. Si el respondedor HS no desea establecer un enlace, se devuelve una trama DM.


En segundo lugar, para establecer un canal de datos, primero se negocian los parámetros del canal de transmisión de datos. Los parámetros PN del comando de negociación incluyen la prioridad del canal Canal1 que se establecerá, la longitud máxima de trama, etc. Después de que las dos partes hayan negociado, se establece el canal de datos Canal1.


图3 RFCOMM的建链过程

Después de establecer el canal de datos de la capa RFCOMM, se transmiten los comandos de control de la capa de control HeadSet. Es decir, use la trama UIH para transmitir AT + CKPD = 200 y otros comandos en el canal de transmisión de datos Canal 1. Después de recibir la respuesta de la otra parte, puede comenzar a establecer el enlace SCO.


7.5 Establecer enlace SCO


Durante la inicialización, HCI envía un comando WRITE_VOICE_SETTING para establecer el estado del audio. Al recibir la solicitud del AG para establecer el enlace SCO, si HS lo permite, envía un comando HCI recibido. Después de completar el comando, el enlace SCO que transmite la señal de audio es Una vez construido, la comunicación de voz se puede llevar a cabo en este momento.


Ocho, el diseño de la máquina de estado de la capa de aplicación Bluetooth

Una vez establecido el enlace de comunicación de la pila de protocolos, se puede realizar la comunicación de la capa de aplicación. La capa de aplicación tiene una máquina de estado principal en ejecución, como se muestra en la Figura 4. En función de las acciones y los comandos del usuario enviados por el AG, el proceso de solicitud del HS se ejecutará entre estados. Es posible que ya haya un enlace ACL entre el HS y el AG en el estado inactivo, pero no se ha establecido un canal RFCOMM y no existe un enlace SCO con señales de audio. Cuando el AG responde a eventos internos o solicitudes del usuario, inicia una solicitud de establecimiento de enlace. Cuando el HS recibe la solicitud de establecimiento de enlace, el HS y el AG comienzan a establecer enlaces ACL, L2CAP, RFCOMM. Después de que se establece el canal RFCOMM, el AG envía uno o más Un comando de instrucción de timbre AT + RING notifica al usuario del HS que ha llegado un enlace de audio entrante. En este momento, el estado cambiará al estado de llamada de la llamada entrante.


图4 应用层主状态机运行

Estado de llamada entrante En este momento, la pasarela de audio AG ha establecido canales ACL y RFCOMM con HS, y HS ha recibido la señal de llamada, lo que indica que la pasarela de audio requiere el establecimiento de un enlace SCO. Si el usuario no responde a la llamada, la pasarela de audio El canal RFCOMM finalizará y el estado volverá al estado inactivo nuevamente. Si el usuario presiona el botón Bluetooth en el HS, significa que acepta la solicitud de enlace de audio entrante. En este momento, el HS enviará el comando de control AT AT + CKPD al AG. Se establecerá un enlace SCO entre los dos y el estado cambiará al estado del enlace.


Estado de la llamada Cuando el usuario del HS presiona el botón Bluetooth en el HS, el usuario envía una solicitud para llamar a la puerta de enlace de audio. En este momento, el HS primero establecerá un enlace ACL y luego realizará una consulta SDP en la puerta de enlace de audio. Si la consulta SDP es exitosa, el HS abre el canal RFCOMM vinculado al AG y envía un comando AT + CKPD para solicitar el establecimiento de un enlace de audio SCO. Cuando se establece el enlace SCO, el estado pasará al estado conectado.Si el enlace SCO no se establece, el estado pasará al estado inactivo.


Estado del enlace En el estado del enlace, se han establecido ACL, L2CAP, RFCOMM, se ha realizado una consulta SDP y la llamada de audio está lista. Si el usuario habla con el HS, la voz se transmitirá al AG a través del enlace SCO, y la voz se transmitirá al otro extremo a través del AG.


Desconexión del enlace La desconexión del enlace se puede hacer a través del botón Bluetooth en el HS, o puede ser activada por los eventos internos del AG o la intervención del usuario. Cualquiera sea la causa, es esencialmente el resultado del lanzamiento del enlace AG. Si el HS envía una solicitud para desconectar el enlace y envía un comando AT + CKPD a la pasarela de audio para solicitar que la pasarela de audio desconecte el enlace, la pasarela de audio desconecta el enlace SCO y el canal RFCOMM. Cuando RFCOMM está desconectado, el estado pasará al estado inactivo. El enlace de ACL puede estar en un estado desconectado o en un estado de enlace.


Nueve, plan de implementación de Bluetooth HeadSet

Tomando como ejemplo la solución Bluetooth de Motorola, Motorola tiene mucha experiencia en tecnología avanzada de RF. La solución Bluetooth de Motorola puede usar UART, RS232, USB o SPI para conectarse al procesador principal, y el procesador principal puede procesar funciones como la pila en el protocolo Bluetooth y la interfaz del controlador principal a través de estas interfaces; esta solución Bluetooth es responsable de la implementación de Las funciones restantes de la pila (interfaz del controlador principal, protocolo de programa de gestión de enlace, banda base y frecuencia de radio). Y adopte el núcleo de procesador de operación de conjunto de instrucciones reducido (SISC) MCORETM de 32 bits de Motorola, que contiene un conjunto de dispositivos periféricos altamente flexible, adecuado para una variedad de diferentes soluciones de aplicaciones Bluetooth integradas.


para resumir


En los últimos años, el rápido desarrollo de la comunicación móvil, las computadoras portátiles e Internet ha provocado la creciente demanda de la gente por la transmisión de diversos datos e información que no sean la comunicación telefónica. La tecnología "Bluetooth" conecta varias computadoras portátiles y teléfonos celulares con circuitos inalámbricos, para que las computadoras y las comunicaciones se combinen más estrechamente, de modo que las personas puedan intercambiar y transmitir información de datos en cualquier momento y en cualquier lugar.