Utiliser un module de biodétection pour développer des dispositifs corporels de santé et de fitness
Avec la contribution de Rédacteurs nord-américains de DigiKey
2020-10-21
Dynamisé en partie par une plus grande sensibilisation à la santé en raison de la COVID-19, l'intérêt pour les dispositifs corporels de biodétection stimule la recherche de solutions plus efficaces pour répondre à la demande des utilisateurs en matière de fonctionnalités et de précision supérieures dans des facteurs de forme plus petits, avec une autonomie batterie étendue et un coût inférieur. Pour les concepteurs, cela représente un ensemble de défis permanents alors qu'ils s'efforcent de respecter des délais et des budgets serrés. Les avancées réalisées dans le domaine des dispositifs de biodétection, notamment une meilleure intégration fonctionnelle et des solutions de conception plus complètes, jouent en leur faveur.
Cet article traite des tendances en matière de biocapteurs et de dispositifs corporels, et des défis auxquels sont confrontés les concepteurs. Il présente ensuite un module de biocapteur de fréquence cardiaque et de saturation en oxygène périphérique (SpO2) de Maxim Integrated et montre comment les développeurs peuvent l'utiliser pour mettre en œuvre plus efficacement des dispositifs corporels capables de fournir des mesures précises de la fréquence cardiaque et autres sans compromettre les budgets énergétiques serrés des produits portables alimentés par batterie.
Exigences de conception pour la biodétection
Alors que la surveillance de la fréquence cardiaque est une exigence de base dans une grande variété de dispositifs corporels grand public, l'intérêt pour la mesure SpO2 continue de croître. Autrefois largement utilisée par les athlètes cherchant à optimiser leurs programmes de mise en forme, la mesure SpO2 a trouvé une application plus répandue, notamment dans l'autosurveillance des signes de réduction de la fonction respiratoire associés à la COVID-19. Pour les développeurs, fournir des solutions appropriées à une population soucieuse de sa santé et habituée à l'électronique corporelle présente des défis importants en termes de coût, de puissance, de facteur de forme et de poids.
De nombreux biocapteurs sont désormais dotés de sous-systèmes analogiques intégrés en amont, de sorte que les développeurs n'ont pas à construire les chaînes de signaux et les sous-systèmes de post-traitement nécessaires aux mesures de santé et fitness, mais peu de ces dispositifs avancés offrent la bonne combinaison de capacités pour les dispositifs corporels. Par conséquent, ils ne permettent pas de résoudre les problèmes de conception qui se posent pour répondre aux attentes des utilisateurs en matière de dispositifs corporels de biodétection miniatures, tout aussi discrets que d'autres types de dispositifs corporels de pointe tels que les montres intelligentes, les bracelets de fitness et les écouteurs sans fil, entre autres.
D'autres défis liés à l'intégration de conception peuvent survenir lorsque les développeurs doivent ajouter une ou plusieurs capacités de biodétection à ces types de dispositifs corporels populaires. Comme pour tout autre type de produit électronique personnel portable alimenté par batterie, les consommateurs exigent implicitement une autonomie batterie étendue en choisissant généralement ces produits sur la base de la durée de vie de la batterie autant que sur le coût et les fonctionnalités.
Pour répondre à ces exigences combinées, les développeurs peuvent se tourner vers le module de biodétection MAXM86146 de Maxim Integrated pour la conception de dispositifs personnalisés et vers le système d'évaluation MAXM86146EVSYS basé sur le MAXM86146 pour le prototypage rapide.
Le module de biodétection offre une solution directe
Disponible dans un boîtier à 38 broches de 4,5 millimètres (mm) x 4,1 mm x 0,88 mm, le module de biodétection MAXM86146 de Maxim Integrated est une solution à insertion directe, conçue spécifiquement pour accélérer le développement de dispositifs corporels compacts alimentés par batterie pour les applications de santé et de fitness. Pour répondre à la fois aux exigences de capacités de biodétection et d'autonomie étendue des batteries, le module minimise la consommation d'énergie tout en maintenant une mesure rapide et précise de la fréquence cardiaque et SpO2.
En plus de deux photodiodes intégrées, le module inclut un circuit d'entrée analogique (AFE) optique à deux canaux MAX86141 de Maxim Integrated et un microcontrôleur basé Arm Cortex-M4 qui est une variante optimisée pour la biodétection du microcontrôleur Darwin MAX32660 de Maxim Integrated (Figure 1).
Figure 1 : Le module de biodétection MAX86146 de Maxim Integrated intègre un circuit d'entrée analogique optique, un microcontrôleur et des photodiodes dans un boîtier compact. (Source de l'image : Maxim Integrated)
Ne consommant que 10 microampères (μA) à 25 échantillons par seconde (éch./s), le MAX86141 intégré fournit un sous-système AFE optique complet conçu pour contrôler les multiples diodes électroluminescentes (LED) utilisées pour mesurer la fréquence cardiaque et la saturation SpO2. Les moniteurs optiques de fréquence cardiaque utilisent fréquemment la photopléthysmographie (PPG), qui surveille les variations du volume sanguin périphérique associées à chaque pulsation du cœur. Pour cette mesure, ces dispositifs utilisent généralement une lumière verte à une longueur d'onde de 540 nanomètres (nm), qui est absorbée par le sang et produit moins d'artefacts car la lumière verte pénètre moins profondément dans les tissus que de nombreuses autres longueurs d'ondes. Les oxymètres de pouls optiques utilisent à la fois une LED rouge (typiquement 660 nm) et une LED infrarouge (IR) (typiquement 940 nm) pour mesurer la différence d'absorption entre l'hémoglobine et la désoxyhémoglobine — la technique sous-jacente aux méthodes de mesure SpO2 (voir Concevoir un oxymètre de pouls à faible coût en utilisant des composants disponibles sur le marché).
Pour effectuer ces mesures optiques, le développeur doit s'assurer que l'acquisition des signaux des photodiodes est synchronisée précisément avec les impulsions de sortie de la lumière des LED appropriées. Le circuit d'entrée analogique MAX86141 intégré du module MAXM86146 fournit des chaînes de signaux séparées pour le contrôle des LED et pour l'acquisition des signaux des photodiodes. Côté sortie, le circuit d'entrée analogique inclut trois circuits d'attaque LED à fort courant et faible bruit pour la transmission des impulsions aux LED vertes pour la mesure de la fréquence cardiaque, et aux LED rouges et infrarouges pour la mesure SpO2. Côté entrée, le circuit d'entrée analogique fournit deux canaux d'acquisition des signaux de photodiodes, chacun avec un convertisseur analogique-numérique (CAN) 19 bits dédié. Ces deux canaux de mesure peuvent fonctionner séparément ou être utilisés en combinaison pour fournir une plus grande zone de rayonnement.
En contrôlant les chaînes de signaux de photodiodes et de LED AFE, le micrologiciel fonctionnant sur le microcontrôleur embarqué ajuste les paramètres AFE pour maximiser le rapport signal/bruit (SNR) et minimiser la consommation d'énergie. Lorsque la lumière ambiante change, le circuit de correction de la lumière ambiante (ALC) intégré dans le MAX86141 réagit aux changements progressifs des conditions d'éclairage. La lumière ambiante peut toutefois changer rapidement dans certaines situations, par exemple lorsque l'utilisateur passe rapidement de l'ombre à la lumière du soleil, ce qui entraîne des défaillances dans la correction de la lumière ambiante. Pour tenir compte de cette situation courante, le MAX86141 inclut une fonction de détection et de remplacement de clôture. Ici, le dispositif identifie les grandes variations dans les mesures ambiantes des échantillons précédents et remplace les échantillons individuels de données de lumière ambiante périphérique par des valeurs extrapolées, cohérentes avec un changement relativement lent des niveaux ambiants.
Comme le microcontrôleur du module utilise son micrologiciel pour gérer le fonctionnement du circuit d'entrée analogique, les opérations détaillées requises pour effectuer des mesures précises de la fréquence cardiaque et SpO2 sont transparentes pour les développeurs. En utilisant les paramètres du micrologiciel, le module effectue ces mesures automatiquement et stockent les données brutes et les résultats calculés dans une mémoire tampon FIFO (first-in first-out) à laquelle le processeur hôte du système peut accéder via l'interface série I2C du module.
Comment le MAX86146 simplifie la conception de matériel corporel
Grâce à ses nombreuses fonctionnalités intégrées, le module de biodétection MAX86146 requiert relativement peu de composants supplémentaires pour une conception capable de fournir des mesures précises de la fréquence cardiaque et SpO2. Pour des mesures simultanées de fréquence cardiaque et SpO2, le MAX86146 peut être intégré à un multiplexeur analogique à faible bruit externe tel que le commutateur MAX14689 de Maxim Integrated connecté à des LED vertes, rouges et infrarouges discrètes (Figure 2).
Figure 2 : Pour effectuer des mesures simultanées de la fréquence cardiaque et SpO2, le module de biodétection MAX86146 de Maxim Integrated ne requiert que peu de composants supplémentaires en dehors des LED appropriées, d'un multiplexeur analogique (MAX14689, à gauche) et d'un accéléromètre pour détecter les mouvements pendant les mesures. (Source de l'image : Maxim Integrated)
En outre, le MAXM86146 est conçu pour utiliser les données de mouvement d'un accéléromètre à trois axes afin de corriger le mouvement de l'utilisateur pendant les mesures de la fréquence cardiaque, et pour détecter le mouvement pendant les mesures SpO2 qui nécessitent que l'utilisateur reste au repos pendant la courte durée de la mesure. Ici, le développeur peut soit connecter un accéléromètre pris en charge par le micrologiciel directement aux ports SPI du MAXM86146, soit connecter un accéléromètre à usage général au processeur hôte.
L'option de connexion hôte offre une plus grande flexibilité dans le choix des dispositifs et ne requiert qu'un accéléromètre à trois axes à usage général tel que le MC3630 de Memsic fournissant 25 éch./s. Néanmoins, les développeurs doivent s'assurer que les données de l'accéléromètre sont synchronisées avec l'échantillonnage des données de fréquence cardiaque. Pour cela, le microcontrôleur embarqué décime ou interpole en interne les échantillons de l'accéléromètre selon les besoins pour compenser la dérive entre les données de fréquence cardiaque et celles de l'accéléromètre.
Démarrer rapidement avec l'évaluation et le prototypage rapide du MAXM86146
Bien que le MAXM86146 simplifie la conception matérielle du système, les développeurs qui souhaitent évaluer le MAXM86146 ou prototyper rapidement leurs applications peuvent ignorer la conception matérielle et commencer immédiatement à travailler avec le dispositif en utilisant le système d'évaluation MAXM86146EVSYS. Alimenté par USB ou par une batterie lithium-polymère (LiPo) de 3,7 volts (V), le MAXM86146EVSYS comprend une carte de capteur optique MAXM86146_OSB basée sur le MAXM86146, connectée par un câble flexible à une carte d'acquisition des données MAXSensorBLE compatible Bluetooth Low Energy (BLE) (Figure 3).
Figure 3 : Le système d'évaluation MAXM86146EVSYS de Maxim Integrated inclut une carte processeur principale compatible BLE et une carte de capteur basée sur le MAXM86146 et connectée par un câble flexible. (Source de l'image : Maxim Integrated)
La carte MAXSensorBLE intègre un microcontrôleur hôte MAX32620 de Maxim Integrated et un microcontrôleur Bluetooth NRF52832 de Nordic Semiconductor. En fait, la carte MAXSensorBLE sert de conception de référence complète pour une conception corporelle compatible BLE. En plus de prendre en charge les composants actifs et passifs, la conception de carte MAXSensorBLE est complétée par un circuit intégré de gestion de l'alimentation (PMIC) MAX20303 de Maxim Integrated, spécifiquement conçu pour étendre l'autonomie batterie des dispositifs corporels.
La carte de capteur optique MAXM86146_OSB combine un module de biodétection MAXM86146 avec un commutateur analogique MAX14689 et un ensemble complet de LED nécessaires pour effectuer des mesures simultanées de fréquence cardiaque et SpO2. De plus, la carte intègre un accéléromètre à trois axes pris en charge par un micrologiciel, directement connecté au module MAXM86146.
Pour évaluer le module MAXM86146 à l'aide du système d'évaluation MAXM86146EVSYS, les développeurs doivent mettre le système sous tension via USB-C ou une batterie LiPo, et connecter si nécessaire un dongle USB BLE à un ordinateur personnel exécutant l'application MAXM86146 EV System Software de Maxim Integrated. Cette application Windows fournit une interface utilisateur graphique (GUI) qui permet aux développeurs de facilement modifier les paramètres du MAXM86146 et d'observer immédiatement les résultats présentés sous forme de graphiques de données. En plus de fournir un accès aux registres du MAXM86146, l'interface graphique offre des menus intuitifs permettant de définir différents modes de fonctionnement et configurations. Par exemple, les développeurs peuvent utiliser l'onglet de mode GUI pour définir différentes séquences LED (Figure 4, en haut), et utiliser l'onglet de configuration GUI pour appliquer ces séquences LED aux mesures de fréquence cardiaque et SpO2 (Figure 4, en bas).
Figure 4 : L'interface utilisateur graphique MAXM86146 EV System Software de Maxim Integrated permet aux développeurs d'évaluer les performances du MAXM86146 en définissant différents modes de fonctionnement tels que des séquences LED (en haut), puis d'utiliser ces séquences (en bas) pour les mesures de fréquence cardiaque et SpO2. (Source de l'image : Maxim Integrated).
Pour le développement de logiciels personnalisés, Maxim Integrated fournit son progiciel Wearable HRM & SpO2 Algo for MAXM86146. Comme le MAXM86146 fournit des mesures de fréquence cardiaque et SpO2 avec son microcontrôleur intégré, le processus d'extraction des données du dispositif est simple. Le progiciel de Maxim Integrated démontre la procédure d'initialisation du dispositif, et la lecture des données depuis la mémoire FIFO du MAXM86146 et l'analyse des éléments de données individuels (Liste 1).
Copier
typedef struct{
uint32_t green_led_cnt;
uint32_t ir_led_cnt;
uint32_t red_led_cnt;
uint32_t hr;
uint32_t hr_conf;
uint32_t spo2;
uint32_t spo2_conf;
uint32_t scd_state;
} mes_repor_t;
typedef struct {
uint32_t led1;
uint32_t led2;
uint32_t led3;
uint32_t led4;
uint32_t led5;
uint32_t led6;
} max8614x_mode1_data;
typedef struct {
int16_t x;
int16_t y;
int16_t z;
} accel_mode1_data;
typedef struct __attribute__((packed)){
uint8_t current_operating_mode; // mode 1 & 2
// WHRM data
uint16_t hr; // mode 1 & 2
uint8_t hr_conf; // mode 1 & 2
uint16_t rr; // mode 1 & 2
uint8_t rr_conf; // mode 1 & 2
uint8_t activity_class; // mode 1 & 2
// WSPO2 data
uint16_t r; // mode 1 & 2
uint8_t spo2_conf; // mode 1 & 2
uint16_t spo2; // mode 1 & 2
uint8_t percentComplete; // mode 1 & 2
uint8_t lowSignalQualityFlag; // mode 1 & 2
uint8_t motionFlag; // mode 1 & 2
uint8_t lowPiFlag; // mode 1 & 2
uint8_t unreliableRFlag; // mode 1 & 2
uint8_t spo2State; // mode 1 & 2
uint8_t scd_contact_state;
} whrm_wspo2_suite_mode1_data;
void execute_data_poll( mes_repor_t* mesOutput ) {
[deleted lines of code]
status = read_fifo_data(num_samples, WHRMWSPO2_FRAME_SIZE, &databuf[0], sizeof(databuf));
if(status == SS_SUCCESS && num_samples > 0 && num_samples < MAX_WHRMWSPO2_SAMPLE_COUNT){
max8614x_mode1_data ppgDataSample;
accel_mode1_data accelDataSamp;
whrm_wspo2_suite_mode1_data algoDataSamp;
int sampleIdx = 0;
int ptr =0;
while( sampleIdx < num_samples ) {
ppgDataSample.led1 = (databuf[ptr+1] << 16) + (databuf[ptr+2] << 8) + (databuf[ptr+3] << 0);
ppgDataSample.led2 = (databuf[ptr+4] << 16) + (databuf[ptr+5] << 8) + (databuf[ptr+6] << 0);
ppgDataSample.led3 = (databuf[ptr+7] << 16) + (databuf[ptr+8] << 8) + (databuf[ptr+9] << 0);
ppgDataSample.led4 = (databuf[ptr+10] << 16)+ (databuf[ptr+11] << 8)+ (databuf[ptr+12] << 0);
ppgDataSample.led5 = (databuf[ptr+13] << 16)+ (databuf[ptr+14] << 8)+ (databuf[ptr+15] << 0);
ppgDataSample.led6 = (databuf[ptr+16] << 16)+ (databuf[ptr+17] << 8)+ (databuf[ptr+18] << 0);
accelDataSamp.x = (databuf[ptr+19] << 8) + (databuf[ptr+20] << 0);
accelDataSamp.y = (databuf[ptr+21] << 8) + (databuf[ptr+22] << 0);
accelDataSamp.z = (databuf[ptr+23] << 8) + (databuf[ptr+24] << 0);
algoDataSamp.current_operating_mode= (databuf[ptr+25]);
algoDataSamp.hr = (databuf[ptr+26] << 8) + (databuf[ptr+27] << 0);
algoDataSamp.hr_conf = (databuf[ptr+28]);
algoDataSamp.rr = (databuf[ptr+29] << 8) + (databuf[ptr+30] << 0);
algoDataSamp.rr_conf = (databuf[ptr+31]);
algoDataSamp.activity_class = (databuf[ptr+32]);
algoDataSamp.r = (databuf[ptr+33] << 8) + (databuf[ptr+34] << 0);
algoDataSamp.spo2_conf = (databuf[ptr+35]);
algoDataSamp.spo2 = (databuf[ptr+36] << 8) + (databuf[ptr+37] << 0);
algoDataSamp.percentComplete = (databuf[ptr+38]);
algoDataSamp.lowSignalQualityFlag = (databuf[ptr+39]);
algoDataSamp.motionFlag = (databuf[ptr+40]);
algoDataSamp.lowPiFlag = (databuf[ptr+41]);
algoDataSamp.unreliableRFlag = (databuf[ptr+42]);
algoDataSamp.spo2State = (databuf[ptr+43]);
algoDataSamp.scd_contact_state = (databuf[ptr+44]);
mesOutput->green_led_cnt = ppgDataSample.led1;
mesOutput->ir_led_cnt = ppgDataSample.led2;
mesOutput->red_led_cnt = ppgDataSample.led3;
mesOutput->hr = algoDataSamp.hr / 10;
mesOutput->hr_conf = algoDataSamp.hr_conf;
mesOutput->spo2 = algoDataSamp.spo2 / 10;
mesOutput->spo2_conf = algoDataSamp.spo2_conf;
mesOutput->scd_state = algoDataSamp.scd_contact_state;
/* printf(" greenCnt= %d , irCnt= %d , redCnt = %d ,"
" hr= %d , hr_conf= %d , spo2= %d , spo2_conf= %d , skin_contact = %d \r\n"
, mesOutput->green_led_cnt , mesOutput->ir_led_cnt , mesOutput->red_led_cnt
, mesOutput->hr , mesOutput->hr_conf , mesOutput->spo2 , mesOutput->spo2_conf , mesOutput->scd_state);
*/
[deleted lines of code]
Liste 1 : Un extrait du progiciel de Maxim Integrated démontre la technique de base pour extraire des mesures et d'autres données du module de biodétection. (Source du code : Maxim Integrated)
La Liste 1 illustre l'utilisation de la routine en langage C execute_data_poll() pour renvoyer un certain nombre de mesures de fréquence cardiaque et SpO2 du MAXM86146. Ici, le code lit la mémoire FIFO du dispositif dans la mémoire tampon locale databuf, puis mappe le contenu databuf sur des instances de quelques structures logicielles en langage C différentes. En plus du stockage des données de configuration et d'autres métadonnées dans ces instances de structure, la routine fournit finalement des mesures de fréquence cardiaque et SpO2 dans mesOutput, une instance de la structure mes_repor_t. Les développeurs peuvent simplement décommenter l'instruction printf finale pour afficher le résultat sur la console.
Pour implémenter un dispositif corporel de santé et de fitness, le logiciel et le matériel MAXM86146 simplifient considérablement le développement. Pour les dispositifs qui doivent obtenir l'approbation de la Food and Drug Administration (FDA) américaine, les développeurs doivent cependant effectuer des tests appropriés afin de vérifier les performances de niveau FDA de leurs produits finaux. Bien que le MAXM86146 de Maxim Integrated et ses algorithmes embarqués offrent des performances de mesure de grade FDA, les développeurs devront s'assurer que l'ensemble de leur système — et pas seulement le capteur — répond aux exigences de performance de la FDA.
Conclusion
L'intérêt pour des dispositifs corporels capables de fournir des mesures de la fréquence cardiaque et SpO2 précises continue de croître, stimulé plus récemment par le rôle des données SpO2 dans la surveillance des symptômes de la COVID-19. Bien que des biocapteurs spécialisés puissent fournir ces mesures, peu de solutions existantes sont en mesure de répondre à la demande en matière de dispositifs plus petits capables d'étendre l'autonomie des batteries dans des dispositifs corporels multifonctions compacts. Comme illustré, un module de biodétection miniature de Maxim Integrated, soutenu par un kit de prototypage rapide, offre une alternative efficace, fournissant des mesures de grade FDA avec une consommation d'énergie minimale.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




