Conception et développement du programme d'écouteurs TWS

2020-06-06 17:57:24 fandoukeji

Avec l'avènement de l'ère de la communication mobile omnidirectionnelle, les produits Bluetooth portables et compacts gagnent de plus en plus de faveur. Au cours des dernières années, les écouteurs Bluetooth TWS et les produits de passerelle audio se sont développés rapidement et sont devenus une tache lumineuse dans le domaine du Bluetooth. Le casque Bluetooth TWS et la passerelle audio peuvent assurer une connexion vocale rapide et stable dans un rayon de 10 mètres. La passerelle audio n'est pas seulement un terminal sans fil, elle se connecte également directement au casque Bluetooth TWS pour parler. Sa fonction la plus importante est de servir de point d'accès pour les écouteurs et d'élargir la courte gamme d'équipements tels que les modules GSM et les terminaux vocaux fixes.


Bluetooth est une technologie de communication sans fil par radiofréquence à courte portée de 214 GHz avec une bande de fréquence qui peut être utilisée librement dans le monde entier.Il utilise des connexions sans fil à courte portée et à faible coût pour remplacer les connexions par câble, fournissant ainsi un réseau de données existant et de petits périphériques. L'interface fournit une connexion unifiée. Le casque Bluetooth utilise la technologie Bluetooth pour établir une communication sans fil entre les casques TWS Bluetooth et les passerelles audio (comme les téléphones portables), offrant ainsi une réponse mains libres aux appels des téléphones portables. Dans le modèle Bluetooth HeadSet, les deux premiers rôles doivent être clairs: l'un est AG (AudioGateway), qui agit comme une passerelle audio, qui peut être utilisée à la fois comme entrée audio et sortie audio; l'autre est HS (HeadSet), qui est un casque Bluetooth TWS, il est Un appareil qui agit comme une entrée et une sortie audio à distance Bluetooth et fournit des méthodes de contrôle à distance.


1. Processus de développement du casque TWS

Dans le développement de casques Bluetooth TWS (Bluetoothheadset, HS) et de passerelles audio (audiogateway, AG), nous adoptons la solution de développement Bluetooth entièrement intégrée de la société britannique de RSE et concevons avec la puce Bluetooth BlueCore22External comme noyau. CSR fournit aux développeurs plusieurs profils de base de micrologiciels de niveau inférieur (fireware) pour implémenter les fonctions de la pile de protocoles de base Bluetooth. Le travail que nous avons effectué est basé sur le micrologiciel du profil du casque, en utilisant l'API d'application fournie vers le haut, pour écrire des applications de casque et de passerelle audio adaptées aux besoins réels et conformes aux spécifications Bluetooth, et combinées avec l'entité matérielle. Mettre en œuvre complètement toutes les fonctions de HS / AG. L'écriture d'un programme intégré Bluetooth sur un PC nécessite un environnement de compilation croisée Linux. Les logiciels de débogage, de simulation et de téléchargement Bluetooth correspondants sont tous basés sur le système d'exploitation Windows. La façon de résoudre cette contradiction consiste à utiliser le logiciel Cygwin, qui fournit une bibliothèque système Unix basée sur Win32API, qui peut simuler l'environnement Linux exécuté sur la plate-forme Windows. Entrez la commande makebc02 dans Cygwin, l'application et le firmware correspondant seront compilés dans un fichier de téléchargement .xdv, et via le port parallèle du PC à l'interface SPI de la puce, et enfin tous les logiciels seront intégrés dans la mémoire Flash du module Bluetooth.


深圳TWS耳机方案开发公司

2. Développement matériel du casque Bluetooth TWS

La puce Bluetooth BlueCore22External de CSR est entièrement compatible avec les spécifications Bluetooth V1.1 et V1.2, intègre la radiofréquence, le processeur de signal en bande de base, le microcontrôleur et 32KBRAM, et 8MBFlash externe est utilisé pour stocker la pile de protocoles Bluetooth et les programmes d'application. L'interface hertzienne du module Bluetooth offre 64 Kbps PCM de loi A, PCM de loi μ et CVSD (modulation incrémentielle à pente variable continue) trois méthodes de codage de compression, donc selon la méthode de codage sélectionnée par le logiciel, le codec correspondant avec une performance de 64 Kbps ou plus doit être utilisé . Nous utilisons une méthode de développement entièrement intégrée, où toutes les piles et applications logicielles Bluetooth s'exécutent sur une seule puce et interagissent avec les utilisateurs via des boutons et des LED.


3. Architecture du logiciel du casque Bluetooth TWS

L'architecture du protocole Bluetooth utilise une approche en couches, y compris le protocole de base Bluetooth et certains protocoles propriétaires. Le profil du casque définit le protocole de spécification Bluetooth utilisé dans les applications HS et AG et indique certains messages et processus dans la spécification Bluetooth, qui peuvent être considérés comme une section longitudinale de la pile de protocoles. Les casques mono et les passerelles audio sont entièrement compatibles avec le profil du casque dans la spécification Bluetooth. Leur système logiciel est fondamentalement le même, mais les procédures sur la couche application sont différentes.


Parmi eux, la bande de base, la gestion de liaison (LMP), le protocole de contrôle et d'adaptation de liaison logique (L2CAP) et le protocole de recherche de service (SDP) sont les éléments centraux du bas de la pile Bluetooth, qui complètent respectivement le saut de fréquence et le désassemblage de trame de données, le filtrage du flux de données et Fonctions telles que la transmission, le contrôle de liaison, la qualité de service (QoS), le multiplexage de protocoles et la découverte de services. Le protocole d'émulation de câble série (FCCOMM) offre la possibilité de remplacer les câbles et fournit des services pour les services avancés qui utilisent les lignes série comme mécanisme de transmission.


La bande de base Bluetooth prend en charge ACL (asynchrone sans connexion) et SCO (connexion synchrone orientée 2) sur la même liaison radioélectrique. ACL est utilisé pour la transmission de données asynchrone et SCO convient pour la voix synchrone. Entre HS et AG, l'application s'appuie sur une connexion RFCOMM basée sur ACL pour envoyer et recevoir des commandes AT, pour répondre à un appel et échanger MIC, des paramètres de gain de volume de haut-parleur et d'autres opérations de contrôle. Le flux vocal basé sur SCO est directement envoyé à la transmission en bande de base par haut niveau, ce qui est également la clé pour assurer un traitement vocal en temps réel.


Conformément à la réglementation sur les profils, HS et AG peuvent tous deux lancer l'établissement de l'ACL. Une fois l'ACL créée avec succès, SCO peut être établi à tout moment. Il se peut que l'AG lance l'initiative SCO, ou après avoir reçu l'AT + AKPD du HS (indiquant que la touche TALK du casque est déclenchée), l'AG répond à l'établissement du SCO, mais essentiellement l'AG a le droit de décider finalement quand générer le SCO. De même, la suppression d'ACL et de SCO relève également de la responsabilité d'AG.


深圳TWS耳机PCBA设计

4. Mise en œuvre logicielle du processus de construction de la chaîne Bluetooth

Le programme d'application Bluetooth s'exécute sur la machine virtuelle de la puce et adopte une méthode de lecteur de messages. Le planificateur est responsable de la collecte des événements de message et du démarrage des fonctions de tâche correspondantes.


4.1 Initialisation


Initialisez d'abord la fonction de bibliothèque de casques, enregistrez le service d'en-tête correspondant auprès de SDP et définissez le type de périphérique (classofdevice). Si un périphérique a déjà été couplé, l'application envoie un message CM_ADD_SM_DEVICE_REQ pour l'enregistrer en tant que périphérique de confiance dans le gestionnaire de liens, ce qui simplifie les étapes d'authentification des deux parties et accélère la création de la chaîne.


4.2 Appariement


La demande d'appairage CM_PAIR_REQ met l'appareil en mode d'appairage, puis peut interroger l'adresse Bluetooth de l'autre partie et échanger un code d'identification personnel (PIN) pour l'authentification. L'authentification ne peut réussir que si les codes PIN saisis aux deux extrémités sont identiques. Enfin, la clé de lien (linkkey) utilisée pour la communication est générée en fonction du code PIN, de l'adresse Bluetooth et du nombre aléatoire et la fonction PsStore () est appelée pour la stocker sur le Flash pour une réutilisation Utilisé lors de la connexion.


4.3 connexion


Chaque extrémité peut demander une connexion RFCOMM en tant que maître ou esclave. Il convient de noter que seul l'AG peut alors émettre CM_SCO_CONNECT_REQ pour demander l'établissement d'une connexion SCO. Si les deux parties retrouvent le bon état, la liaison vocale est connectée.


5. Schéma de conception principal du système d'écouteurs Bluetooth TWS

Les modules fonctionnels de base du système Bluetooth sont illustrés à la figure 1. Ses modules fonctionnels comprennent une unité d'antenne, un contrôleur de liaison, une gestion de liaison et des fonctions logicielles.


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

5.1 Spécifications techniques sans fil


L'antenne Bluetooth est une antenne microruban et l'interface sans fil Bluetooth est conçue sur la base de la puissance de transmission sans fil conventionnelle de 0 dBm, qui est conforme aux réglementations de la bande ISM de la Commission des communications des États-Unis (FCC). L'application de la technologie à spectre étalé permet d'augmenter la puissance à 100 dBm, ce qui peut répondre aux besoins de différents pays. Au Japon, en Espagne et en France, en raison des bandes de fréquences relativement étroites spécifiées localement, une conversion logicielle interne peut être utilisée.


5.2 Spécifications techniques de la bande de base Bluetooth


La bande de base décrit la partie de traitement du signal numérique de l'appareil, c'est-à-dire le contrôleur de liaison Bluetooth. Elle complète le protocole de bande de base et d'autres procédures de liaison de bas niveau. Il comprend principalement les aspects suivants:


(1) L'établissement d'une connexion réseau; (2) Type de liaison et type de paquet: le type de liaison détermine le mode de paquet qui peut être utilisé sur une liaison spécifique. La technologie de bande de base Bluetooth prend en charge deux types de liaison: c'est-à-dire une connexion orientée synchronisation Type SCO (principalement utilisé pour la voix) et ACL de type déconnecté asynchrone (principalement utilisé pour les données par paquets). (3) Correction d'erreurs: le contrôleur de bande de base adopte trois méthodes de correction d'erreurs: codage de correction d'erreur directe de taux 1ö3 (FEC), codage de correction d'erreur directe de taux 2ö3 (FEC) et retransmission automatique des données (ACL). (4) Authentification et cryptage: la partie bande de base Bluetooth offre aux utilisateurs des mécanismes de protection et de confidentialité des informations au niveau de la couche physique. L'authentification est basée sur l'algorithme "Request Response". L'authentification est un élément clé du système Bluetooth. Elle permet aux utilisateurs d'établir un domaine de confiance pour les appareils Bluetooth personnels, par exemple en permettant uniquement au propre ordinateur portable du propriétaire de communiquer via son propre téléphone portable. Le cryptage est utilisé pour protéger les informations personnelles connectées. La clé est gérée par le niveau supérieur du programme. Les protocoles et applications de transmission réseau peuvent fournir aux utilisateurs un mécanisme de sécurité solide.


Sixièmement, la structure de la pile de protocoles du modèle d'application HeadSet

La pile de protocoles Bluetooth utilise une structure en couches, comme le montre la figure 2.


图2 蓝牙协议栈

Les fonctions de chaque couche sont brièvement présentées comme suit:


La bande de base est la couche physique de Bluetooth.Elle est principalement responsable du codage et du décodage du canal physique, du contrôle de synchronisation de la couche inférieure et de la gestion des liaisons lors de la transmission d'un seul paquet.Le champ d'adresse et le champ de contrôle sont ajoutés aux données de chargement d'origine. Et effectuez la détection ou la correction des erreurs.


La couche LC (LinkControl) est chargée de répondre aux commandes LM de la couche supérieure (telles que l'exécution de commandes LM pour établir la liaison de transmission du paquet de données et maintenir la liaison) pendant la transmission d'un lot de paquets de données.


La couche LM (LinkManager) est le protocole de la couche de gestion des liens de la pile de protocoles Bluetooth.Il est chargé de traduire les commandes HCI de la couche supérieure en opérations pouvant être acceptées par la bande de base, d'établir des liaisons ACL (données) et SCO (voix) et de permettre aux appareils Bluetooth d'entrer dans l'état d'économie d'énergie. Mode de travail, etc.


ME (ManagementEntity) est une entité de gestion dont la fonction est de découvrir les périphériques distants et d'établir des connexions avec eux, et de fournir des API d'interface pour les couches d'application et autres couches système qui ont besoin de gérer le piconet Bluetooth.


SE (SecurityManager) et ME fonctionnent ensemble pour permettre au programme d'application de définir l'authentification et le chiffrement. L'authentification et le chiffrement réels sont implémentés par le matériel.


Le protocole de contrôle de liaison logique (L2CAP) utilise le concept de canaux pour établir différents chemins entre différentes applications de périphériques Bluetooth, mais il ne prend en charge que les liaisons ACL. La fonction principale est de fournir une réutilisation du protocole pour les couches d'application de haut niveau, leur permettant de partager des liaisons de données de bas niveau. Regroupement et réassemblage de gros paquets de données au-delà de la prise en charge de la couche inférieure, tout en assurant une gestion de la qualité des services de la couche supérieure.


Le protocole de recherche de services (SDP) est un élément extrêmement important. Il permet aux clients SDP d'interroger le serveur SDP pour obtenir des informations sur les services. Le serveur conserve une liste des enregistrements de service. La liste des enregistrements de service décrit les caractéristiques de service liées au serveur. Le client peut demander des informations de service, des caractéristiques commerciales et commerciales à partir de l'enregistrement du serveur en envoyant une demande SDP et établir une connexion entre deux ou plusieurs appareils Bluetooth après la requête.


RFCOMM fournit une émulation de port série, et la couche inférieure de Bluetooth est chargée de fournir des méthodes de connexion sans fil, mais avant cela, de nombreuses applications traditionnelles ont été développées sur la base de méthodes câblées.Si Bluetooth ne peut pas résoudre le problème de l'adaptation aux protocoles traditionnels, il est difficile de devenir un Un standard largement utilisé. À cette fin, Bluetooth a développé un protocole d'adaptation comme RFCOMM pour prendre en charge les applications traditionnelles.


Couche de contrôle du casque: implémentez principalement les fonctions définies par le profil du casque, telles que le contrôle du volume du MIC (microphone) de la passerelle audio, le contrôle du volume du SPK (haut-parleur), l'établissement et la libération de la liaison SCO et le transfert audio.


Couche d'application du port audio: il s'agit de certaines fonctions spécifiques à l'application.Les fonctionnalités d'application que la couche d'application du casque doit implémenter sont:


(1) Une liaison audio peut être établie lors de la réception d'un appel de l'AG, et la liaison audio peut être déconnectée après la fin de l'appel. (2) Peut initier un appel vers un endroit éloigné et peut également déconnecter la liaison audio une fois l'appel terminé. (3) Transfert de liaison audio. (4) Contrôle du volume de la télécommande AG.


蓝牙TWS耳机设计开发商

Seven, chaîne de construction Bluetooth HeadSet

Lorsque la passerelle audio Bluetooth AG reçoit un appel et établit une liaison avec le HS, afin de rendre la communication vocale de couche application fiable, la pile de protocoles Bluetooth est nécessaire pour établir une liaison de communication fiable. Selon le fonctionnement de la pile de protocoles Bluetooth, la mise en place de la chaîne du bas vers le haut passe généralement par les processus suivants:


(1) Établir le lien qui est la couche de bande de base de l'ACL; (2) Établir le lien de la couche L2CAP; (3) Effectuer le processus d'interrogation du SDP; (4) Établir le lien de la couche RFCOMM; (5) Une fois la liaison RFCOMM établie, le Transmettre certaines commandes AT de la couche de contrôle HeadSet via le canal RFCOMM; (6) établir une liaison SCO; (7) effectuer une communication audio entre Bluetooth HS et AG en fonction de l'action de la couche application. Le processus de création de chaîne de la pile de protocoles Bluetooth est spécifiquement discuté comme suit.


7.1 Établir ACL, la liaison de couche de bande de base


Lorsque l'AG reçoit un appel, il établit d'abord une liaison ACL avec le HS, qui doit être lié à l'AG à l'avance ou réveiller le HS à l'état dormant. Cela se fait via le processus de page. Lorsque l'ACL est établie par le processus de page, l'AG est défini comme le rôle de maître, de sorte que l'AG lance d'abord une requête et obtient l'adresse Bluetooth du HS en interrogeant l'AG. Ensuite, l'AG lance un processus de page vers le HS interrogé sous le lecteur de la couche application. Lorsque la réponse renvoyée par le HS est reçue, la liaison ACL entre l'AG et le HS a été établie avec succès.


Une fois la liaison ACL établie, elle peut être utilisée pour transmettre des signaux de sonnerie. La transmission du signal de sonnerie est terminée par la commande AT RING. Des signaux de sonnerie peuvent également être envoyés sur la liaison SCO.


7.2 Établir un lien de couche L2CAP


Une fois la liaison ACL établie, la liaison L2CAP est alors établie. L'AG envoie d'abord une signalisation de demande de liaison sur le canal de signalisation, demandant l'établissement de L2CAP avec une étiquette de canal de 0x0040 (0x0001 ~ 0x003F est réservé par le protocole et ne peut pas être alloué dynamiquement, 0x0040 ~ 0xFFFF peut être librement alloué), le PSM de ce canal (service de protocole Utiliser) marque 0001, lorsque l'autre partie renvoie le signal de réponse de liaison, indiquant que le canal 0x0040 a été établi. Configurez ensuite ce canal. Après avoir configuré le canal, vous pouvez utiliser ce canal L2CAP avec le CID 0x0040 pour effectuer une requête SDP.


7.3 Le processus de requête SDP


En utilisant le canal L2CAP avec le CID de 0x0040 pour effectuer le processus de requête SDP, le premier est que l'AG envoie un paquet de requête SDP sur ce canal L2CAP. Le paquet de requête SDP demandera si le HS du serveur SDP dispose des services requis. Si la requête aboutit, créez une liaison L2CAP avec l'étiquette 0x0041 sur la liaison ACL. Le PSM de ce canal est 0003, qui est utilisé pour transmettre le flux de données RFCOMM. Dans le même temps, le lien L2CAP étiqueté 0x0040 utilisé pour la requête SDP est déconnecté.


7.4 Établir un lien de couche RFCOMM


Lorsque le canal L2CAP avec un CID de 0x0041 est établi, le processus de construction de la chaîne RFCOMM suit, comme le montre la figure 3. Construisez d'abord un canal de contrôle, l'initiateur de chaîne AG envoie une trame SABM sur le canal, c'est-à-dire que Channel0 sur la couche RFCOMM est requis.Si le répondeur HS veut établir une liaison, il renvoie une trame UA, indiquant que le canal RFCOMM Channel0 a été établi. . Ce canal est un canal de contrôle utilisé pour transmettre des trames UIH transportant des messages et des commandes de contrôle. Si le répondeur HS ne souhaite pas établir de liaison, une trame DM est renvoyée.


Deuxièmement, pour établir un canal de données, les paramètres du canal de transmission de données sont d'abord négociés. Les paramètres de la commande de négociation PN incluent la priorité du canal Channel1 à établir, la longueur de trame maximale, etc. Une fois que les deux parties ont négocié, le canal de données Channel1 est établi.


图3 RFCOMM的建链过程

Une fois le canal de données de la couche RFCOMM établi, les commandes de contrôle de la couche de contrôle HeadSet sont transmises. Autrement dit, utilisez la trame UIH pour transmettre AT + CKPD = 200 et d'autres commandes sur le canal de transmission de données Canal 1. Après avoir reçu la réponse de l'autre partie, vous pouvez commencer à établir la liaison SCO.


7.5 Établir un lien SCO


Lors de l'initialisation, HCI envoie une commande WRITE_VOICE_SETTING pour définir l'état audio.Lors de la réception de la demande de l'AG pour établir la liaison SCO, si HS le permet, il envoie une commande HCI reçue. Une fois la commande terminée, la liaison SCO qui transmet le signal audio est Après sa construction, la communication vocale peut être effectuée à ce moment.


Huit, la conception de la machine d'état de la couche d'application Bluetooth

Une fois la liaison de communication de la pile de protocoles établie, la communication de la couche application peut être effectuée. La couche d'application a une machine d'état principale en cours d'exécution, comme illustré à la figure 4. Sur la base des actions et commandes de l'utilisateur envoyées par l'AG, le processus d'application HS s'exécutera entre les états. Il peut déjà y avoir une liaison ACL entre le HS et l'AG à l'état inactif, mais aucun canal RFCOMM n'est établi et aucune liaison SCO avec des signaux audio n'existe. Lorsque l'AG répond à des événements internes ou à des demandes d'utilisateurs, il lance une demande d'établissement de liaison. Lorsque le HS reçoit la demande d'établissement de liaison, le HS et l'AG commencent à établir des liaisons ACL, L2CAP, RFCOMM. Une fois le canal RFCOMM établi, l'AG envoie une ou plusieurs Une commande d'instruction de sonnerie AT + RING informe l'utilisateur HS qu'une liaison audio entrante est arrivée. À ce moment, l'état passe à l'état de sonnerie de l'appel entrant.


图4 应用层主状态机运行

État de la sonnerie des appels entrants À ce moment, la passerelle audio AG a établi des canaux ACL et RFCOMM avec HS, et le HS a reçu le signal de sonnerie, ce qui indique que la passerelle audio nécessite l'établissement d'une liaison SCO. Si l'utilisateur ne répond pas à la sonnerie, la passerelle audio Le canal RFCOMM sera terminé et l'état reviendra à l'état inactif. Si l'utilisateur appuie sur le bouton Bluetooth du HS, cela signifie que l'utilisateur accepte la demande de liaison audio entrante. À ce moment, le HS enverra la commande de contrôle AT AT + CKPD à l'AG. Une liaison SCO sera établie entre les deux et le statut passera à l'état de liaison.


État de l'appel Lorsque l'utilisateur HS appuie sur le bouton Bluetooth du HS, l'utilisateur envoie une demande pour appeler la passerelle audio. À ce moment, le HS établit d'abord une liaison ACL, puis effectue une requête SDP sur la passerelle audio. Si la requête SDP réussit, le HS ouvre le canal RFCOMM lié à l'AG et envoie une commande AT + CKPD pour demander l'établissement d'une liaison audio SCO. Lorsque la liaison SCO est établie, l'état passe à l'état connecté.Si la liaison SCO n'est pas établie, l'état passe à l'état inactif.


État de la liaison Dans l'état de la liaison, ACL, L2CAP, RFCOMM ont été établis et une requête SDP a été effectuée et l'appel audio est prêt. Si l'utilisateur parle au HS, la voix sera transmise à l'AG via la liaison SCO, et la voix sera transmise à l'extrémité distante via l'AG.


Déconnexion de liaison La déconnexion de liaison peut être effectuée via le bouton Bluetooth sur le HS, ou elle peut être déclenchée par les événements internes de l'AG ou l'intervention de l'utilisateur. Quelle qu'en soit la cause, c'est essentiellement le résultat de la libération du lien AG. Si le HS envoie une demande de déconnexion de la liaison et envoie une commande AT + CKPD à la passerelle audio pour demander à la passerelle audio de déconnecter la liaison, la passerelle audio déconnecte la liaison SCO et le canal RFCOMM. Lorsque RFCOMM est déconnecté, l'état passera à l'état inactif. La liaison ACL peut être dans un état déconnecté ou un état de liaison.


Neuf, plan de mise en œuvre du casque Bluetooth

Prenant l'exemple de la solution Bluetooth de Motorola, Motorola est très expérimenté dans la technologie RF avancée. La solution Bluetooth de Motorola peut utiliser UART, RS232, USB ou SPI pour se connecter au processeur principal, et le processeur principal peut gérer des fonctions telles que la pile sur le protocole Bluetooth et l'interface du contrôleur principal via ces interfaces; cette solution Bluetooth est responsable de la mise en œuvre Les autres fonctions de la pile (interface principale du contrôleur, protocole du programme de gestion des liaisons, bande de base et radiofréquence). Et adoptez le cœur du processeur MCORETM 32 bits à instruction de fonctionnement réduite (SISC) de Motorola, qui contient un ensemble de périphériques très flexible, adapté à une variété de différentes solutions d'applications Bluetooth intégrées.


Pour résumer


Ces dernières années, le développement rapide des communications mobiles, des ordinateurs portables et d'Internet a accru la demande des gens pour la transmission de diverses données et informations autres que la communication téléphonique. La technologie «Bluetooth» connecte divers ordinateurs portables et téléphones mobiles cellulaires à des circuits sans fil, ce qui rend l'ordinateur et la communication plus étroitement combinés, de sorte que les gens peuvent échanger et transmettre des informations sur les données à tout moment, n'importe où.