השימוש במודול ביו-חישה לפיתוח התקנים לבישים לבריאות ולכושר גופני
באדיבות ‎DigiKey's North American Editors
2020-10-21
מתודלק בחלקו מהמודעות הבריאותית הגדולה יותר עקב COVID-19, העניין בהתקנים לבישים עם ביו-חישה ממשיך להניע את הביקוש לפתרונות יעילים יותר כדי לענות על דרישות המשתמשים עבור פונקציונליות רבה יותר ודיוק גבוה יותר בגורמי צורה קטנים יותר עם חיי סוללה מוארכים בעלות נמוכה יותר. עבור המתכננים זה מציב סדרה של אתגרים מתמשכים כאשר הם עובדים כדי לעמוד בחלונות זמן-יציאה-לשוק קצרים ובתקציבים מוגבלים. מה שפועל לטובתם הם החידושים בהתקני ביו-חישה, כולל אינטגרציה פונקציונלית גבוהה יותר ופתרונות תכנים מקיפים יותר.
מאמר זה דן במגמות בביו-חיישנים ובהתקנים לבישים ובאתגרים העומדים בפני המתכננים. לאחר מכן הוא מציג מודול ביו-חיישן למדידת קצב לב וסטורציית חמצן היקפית (SpO2) מבית Maxim Integrated, ומתאר כיצד המפתחים יכולים להשתמש בו ליישום יעיל יותר של התקנים לבישים המסוגלים לספק קצב לב מדויק ומדידות אחרות מבלי לפגוע בתקציבי ההספק המוגבל של מוצרים ניידים מוזני-סוללות.
דרישות תכנון עבור ביו-חישה
בעוד שמעקב אחר קצב הלב הוא דרישת ליבה במגוון רחב של התקנים לבישים לצרכנים, העניין במדידת SpO2 ממשיך לגדול. שימשה בעבר בעיקר אתלטים שרצו למטב את משטרי הכושר הגופני שלהם, מדידת SpO2 זכתה ליישום נרחב יותר, במיוחד בניטור-עצמי של סימנים לתפקוד נשימתי מופחת הקשורים למחלת COVID-19. עבור המפתחים, מתן פתרונות מתאימים לאוכלוסייה המודעת לבריאות המורגלת באלקטרוניקה לבישה מציג אתגרים משמעותיים ביחס לעלות, הספק, גורם צורה ומשקל.
ביו-חיישנים רבים מגיעים כעת עם תתי-מערכות קצה-קדמי אנלוגי משולבות, כך שהמפתחים אינם צריכים לבנות את שרשרות האותות ותתי-המערכות לעיבוד-הנוסף הנדרשות עבור מדידות בריאות וכושר גופני, אך למעטים מההתקנים המתקדמים הללו יש את השילוב הנכון עבור התקנים לבישים. כתוצאה מכך, הם לא פותרים את אתגרי התכנון המתעוררים כששואפים לעמוד בציפיות המשתמשים עבור התקני ביו-חישה לבישים זעירים שהם לא-פולשניים באותה מידה כמו סוגים אחרים של התקנים לבישים מובילים, כולל שעונים חכמים, רצועות כושר גופני ואוזניות אלחוטיות אמיתיות, בין היתר.
אתגרים נוספים הקשורים לשילוב תכנים יכולים להתעורר כאשר המפתחים צריכים להוסיף יכולת חישוב אחת או יותר של ביו-חישה לאותם סוגים לבישים פופולריים. כמו בכל סוג אחר של מוצרים אלקטרוניים אישיים ניידים מוזני-סוללות, הצרכנים דורשים במשתמע את חיי הסוללה המוארכים אפילו מהמוצר הקטן ביותר, ובדרך כלל בוחרים מוצרים אלה על בסיס אורך חיי הסוללה לא פחות מאשר על בסיס העלות והפונקציונליות.
כדי לעמוד בדרישות המשולבות הללו, המפתחים יכולים להשתמש במודול הביו-חישה MAXM86146 מבית Maxim Integrated עבור תכנון התקנים מותאמים-במיוחד ובמערכת ההערכה MAXM86146EVSYS מבוססת-MAXM86146 עבור בנייה מהירה של אב-טיפוס.
מודול הביו-חישה מציע פיתרון Drop-In
זמין במארז בגודל 0.88 x 4.1 x 4.5 מילימטר (מ"מ) עם 38 פינים, מודול הביו-חישה MAXM86146 מבית Maxim Integrated הוא פיתרון Drop-In שתוכנן במיוחד כדי לסייע בפיתוח מהיר של מוצרים לבישים קומפקטיים מוזני-סוללות עבור בריאות וכושר גופני. כדי לעמוד בדרישות הן עבור חיי סוללה מוארכים והן עבור יכולות ביו-חישה, המודול מקטין למינימום את צריכת ההספק תוך שמירה על מדידה מהירה ומדויקת של קצב הלב וה- SpO2.
לצד שתי פוטו-דיודות משולבות, המודול כולל קצה-קדמי אנלוגי (AFE) אופטי דו-ערוצי MAX86141 מבית Maxim Integrated, ומיקרו-בקר מבוסס-Cortex-M4 מבית Arm המהווה גרסה ממוטבת-ביו-חישה של המיקרו-בקר Darwin MAX32660 מבית Maxim Integrated (איור 1).
איור 1: מודול ביו-חישה MAX86146 מבית Maxim Integrated משלב AFE אופטי, מיקרו-בקר ופוטו-דיודות במארז קומפקטי. (מקור התמונה: Maxim Integrated)
צורך 10 מיקרו-אמפר (μA) בלבד ב- 25 דגימות-בשנייה (sps), ה- MAX86141 המשולב מספק תת-מערכת AFE אופטי מקיפה המתוכננת לבקר מספר דיודות פולטות אור (LED) המשמשות עבור מדידת קצב הלב וה- 2SpO. מנטרי קצב לב אופטיים משתמשים בדרך כלל בפוטו-פלטיסמוגרפיה (PPG), המנטר שינויים בנפח הדם בהיקף הנלווה לכל פעימה של הלב. לצורך מדידה זו, התקנים אלה משתמשים בדרך כלל באור ירוק באורך גל של 540 ננומטר (nm), הנספג בדם וגורם לפחות ארטיפקטים מכיוון שאור ירוק חודר פחות עמוק לתוך הרקמות לעומת אורכי-גל רבים אחרים. אוקסימטרי דופק אופטיים משתמשים גם ב- LED אדום (בדרך כלל nm 660) וגם ב- LED אינפרה-אדום (IR) (בדרך כלל nm 940) כדי למדוד את ההבדל בספיגה בין המוגלובין לבין דאוקסי-המוגלובין - הטכניקה העומדת בבסיס שיטות המדידה האופטית של 2SpO (ראו תכנון אוקסימטר דופק בעלות נמוכה באמצעות רכיבים מן-המדף).
כדי לבצע מדידות אופטיות אלו, על המפתח לוודא כי אותות הפוטו-דיודה הנקלטים מסונכרנים במדויק עם פולסי יציאת האור מנורות ה- LED המתאימות. ה- AFE MAX86141 המשולב של מודול MAXM86146 מספק שרשרות אותות נפרדים עבור בקרת ה- LED ועבור קליטת אותות הפוטו-דיודה. בצד היציאה, ה- AFE כולל שלושה דוחפי LED עם זרם גבוה ורעש נמוך עבור העברת פולסים לנורות LED ירוק עבור מדידת קצב הלב, כמו גם לנורות ה- LED האדום והאינפרה-אדום עבור מדידת ה- 2SpO. בצד הכניסה, ה- AFE מספק שני ערוצי קליטת אותות מהפוטו-דיודות, כל אחד עם ממיר ייעודי אנלוגילדיגיטלי (ADC) Bit-19. שני ערוצי קריאה אלו יכולים לפעול בנפרד או בשילוב שלהם כדי לספק שטח קרינה גדול יותר.
עבור בקרה על שרשרות האותות של ה- AFE ושל הפוטו-דיודה, קושחה הפועלת על המיקרו-בקר שעל-הלוח מתאימה את הגדרות ה- AFE כדי למקסם את יחס האות לרעש (SNR) ולהקטין למינימום את צריכת ההספק. כאשר אור הסביבה משתנה, מעגלי תיקון אור הסביבה (ALC) המובנים בתוך ה- MAX86141 המשולב מגיבים לשינויים הדרגתיים בתנאי התאורה. עם זאת, אור הסביבה יכול להשתנות במהירות במצבים מסוימים כגון כאשר המשתמש עובר במהירות בין אזורי צל לאור שמש בהיר וגורם לתקלות ב- ALC. כדי להתמודד עם מצב נפוץ זה, ה- MAX86141 כולל פונקציית גילוי-והחלפה של הגדר. כאן, ההתקן מזהה שינויים גדולים במדידות אור הסביבה מדגימות קודמות ומחליף דגימות נתוני אור סביבה מסוימים שמחוץ לתחום עם ערכי אקסטרפולציה העולים בקנה אחד עם שינוי איטי יחסית ברמות אור הסביבה.
מכיוון שהמיקרו-הבקר של המודול משתמש בקושחה שלו לניהול פעולת ה- AFE, הפעולות המפורטות הנדרשות לביצוע מדידות מדויקות של ה- HR וה- 2SpO הן שקופות למפתחים. באמצעות הגדרות קושחה, המודול מבצע מדידות אלו אוטומטית, תוך אחסון הנתונים הגולמיים והתוצאות המחושבות בחוצץ ראשון-נכנס-ראשון-יוצא (FIFO) עבור גישה למעבד מארח המערכת דרך הממשק הטורי C2I של המודול.
כיצד ה- MAX86146 מפשט את תכני התקנים לבישים
עם הפונקציונליות המשולבת הנרחבת שלו, מודול הביו-חישה MAX86146 דורש מעט רכיבים נוספים יחסית כדי להשלים תכן המסוגל לספק מדידות קצב לב ו- 2SpO מדויקות. עבור מדידות HR ו- 2SpO בו-זמנית, ניתן לשלב את ה- MAX86146 עם מרבב אנלוגי חיצוני עם רעש נמוך כגון מתג MAX14689 מבית Maxim Integrated המחובר לנוריות LED ירוק, אדום ו- IR בדידות (איור 2).
איור 2: כדי לבצע מדידות קצב לב ו- 2S בו-זמנית, מודול הביו-חישה MAX86146 מבית Maxim Integrated דורש כמה רכיבים נוספים מעבר לנוריות LED המתאימות, מרבב אנלוגי (MAX14689, משמאל) ומד-תאוצה לגילוי תנועה בעת ביצוע המדידות. (מקור התמונה: Maxim Integrated)
בנוסף, ה- MAXM86146 מתוכנן להשתמש בנתוני תנועה ממד-התאוצה התלת-צירי כדי לתקן את תנועת המשתמש במהלך מדידות קצב הלב, ולגלות תנועה במהלך מדידות 2SpO המחייבות את המשתמש להישאר במנוחה למשך הזמן קצר של המדידה. כאן המפתח יכול לחבר מד-תאוצה נתמך-קושחה ישירות ליציאות ה- SPI של ה- MAXM86146 או לחבר מד-תאוצה לשימוש כללי למעבד המארח.
אפשרות חיבור המארח מספקת גמישות רבה יותר בבחירת ההתקנים, ודורשת רק מד-תאוצה תלת-צירי לשימוש כללי כגון ה- MC3630 מבית Memsic עם יכולת של SPS 25. המפתחים עדיין צריכים לוודא שנתוני מד-התאוצה מסונכרנים עם דגימת נתוני קצב הלב. לשם כך, המיקרו-בקר שעל-הלוח משמיד או מבצע אינטרפולציה של דגימות מד-התאוצה לפי הצורך כדי לפצות על הסחיפה בין נתוני קצב-הלב לבין נתוני מד-התאוצה.
התחלה מהירה עם ערכת ההערכה ובניית אב-טיפוס מהירה MAXM86146
למרות שה- MAXM86146 מפשט את תכנון חומרת המערכת, מפתחים המעוניינים להעריך את ה- MAXM86146 או לבנות במהירות אב-טיפוס של היישומים שלהם יכולים לדלג על תכנון החומרה ולהתחיל מיד לעבוד עם ההתקן באמצעות מערכת ההערכה MAXM86146EVSYS. מוזן באמצעות USB או סוללת ליתיום פולימר (LiPo) של 3.7 וולט, ה- MAXM86146EVSYS כולל לוח חיישנים אופטיים (OSB) MAXM86146_OSB מבוסס-MAXM86146 המחובר באמצעות כבל גמיש ללוח הראשי לקליטת נתונים MAXSensorBLE מבוסס-(Bluetooth Low Energy (BLE (איור 3).
איור 3: מערכת ההערכה MAXM86146EVSYS מבית Maxim Integrated כוללת לוח מעבד ראשי מאופשר-BLE ולוח חיישנים מבוסס-MAXM86146 המחובר עם כבל גמיש. (מקור התמונה: Maxim Integrated)
לוח MAXSensorBLE משלב מיקרו בקר מארח MAX32620 מבית Maxim Integrated ומיקרו-בקר Bluetooth NRF52832 מבית Nordic Semiconductor. למעשה, לוח ה- MAXSensorBLE משמש כתכן ייחוס שלם עבור תכן לביש מאופשר-BLE. לצד תמיכה ברכיבים אקטיביים ופסיביים, תכן לוח MAXSensorBLE מגיע עם מעגל משולב לניהול הספקת-כוח (PMIC) MAX20303 מבית Maxim Integrated המתוכנן במיוחד להארכת חיי הסוללה של התקנים לבישים.
לוח החיישנים האופטיים MAXM86146_OSB משלב מודול ביו-חישה MAXM86146 עם מתג אנלוגי MAX14689 ומערך שלם של נוריות LED הנדרש לביצוע מדידות HR ו- 2SpO בו-זמנית. בנוסף, הלוח משלב מד-תאוצה תלת-צירי נתמך-קושחה המחובר ישירות למודול MAXM86146.
כדי להעריך את מודול MAXM86146 באמצעות מערכת ההערכה MAXM86146EVSYS, המפתחים מפעילים את המערכת באמצעות USB-C או סוללת LiPo, ומחברים במידת הצורך USB Dongle BLE למחשב אישי המריץ את יישום תוכנת מערכת EV MAXM86146 מבית Maxim Integrated. יישום Windows זה מספק ממשק משתמש גרפי (GUI) המאפשר למפתחים לשנות בקלות את הגדרות MAXM86146 ולצפות מיד בתוצאות המוצגות כשרטוטי נתונים. לצד מתן גישה לאוגרי ה-MAXM86146, ה- GUI מספק תפריטים אינטואיטיביים עבור הגדרת תצורות ואופני פעולה ותצורות שונים. לדוגמה, המפתחים יכולים להשתמש בלשונית אופן GUI כדי להגדיר רצפי LED שונים (איור 4, למעלה), ולהשתמש בלשונית תצורת GUI ליישום רצפי LED אלה עבור מדידות HR ו- SpO 2 (איור 4, למטה).
איור 4: ה- GUI של תוכנת מערכת MAXM86146 EV מבית Maxim Integrated מאפשר למפתחים להעריך את ביצועי ה- MAXM86146 על ידי הגדרת אופני פעולה שונים כגון רצפי LED (למעלה), ואז להשתמש ברצפים אלו (למטה) עבור מדידת קצב הלב וה- SpO2. (מקור התמונה: Maxim Integrated).
עבור פיתוח תוכנה מותאמת-במיוחד, חברת Maxim Integrated מספקת את חבילת התוכנה שלה של אלגוריתם 2SpO & Wearable HRM עבור MAXM86146. מאחר וה- MAXM86146 מספק מדידות קצב לב ו- SpO2 באמצעות קושחת המיקרו-בקר המשולבת שלו, תהליך קריאת הנתונים מתוך ההתקן הוא פשוט. חבילת התוכנה מבית Maxim Integrated מדגימה את תהליך האתחול של ההתקן, ולבסוף את קריאת הנתונים מתוך ה- MAXM86146 FIFO וניתוח פריטי הנתונים המסוימים (רשימה 1).
העתק
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]
רשימה 1: Snippet מחבילת התוכנה של Maxim Integrated המדגים את הטכניקה הבסיסית לקריאת מדידות ונתונים אחרים מתוך מודול הביו-חישה. (מקור הקוד: Maxim Integrated)
רשימה 1 ממחישה את השימוש ברוטינה ()execute_data_poll בשפת C כדי לקרוא את ערכי קצב הלב וה- SpO2 מתוך ה- MAXM86146. כאן, הקוד קורא את ה- FIFO של ההתקן לתוך חוצץ נתונים מקומי ואז ממפה את תוכן חוצץ הנתונים לתוך מופעים של כמה מבני תוכנה שונים בשפת C. לצד אחסון נתוני תצורה ומטא-נתונים אחרים במופעי מבנה אלו, הרוטינה מספקת לבסוף את מדידות קצב הלב וה- SpO 2 ב- mesOutput, מופע של מבנה mes_repor_t. המפתחים יכולים פשוט לבטל את ההערה בהצהרת printf הסופית כדי להציג את התוצאה על הקונסולה.
עבור מימוש התקני בריאות וכושר לבישים, התוכנה והחומרה MAXM86146 מפשטים משמעותית את הפיתוח. אולם עבור התקנים המיועדים להשיג את הרשאת מינהל המזון והתרופות האמריקני (FDA), על המפתחים לבצע בדיקות מתאימות בכדי לאמת את הביצועים ברמת ה- FDA של המוצרים הסופיים שלהם. למרות שה- MAXM86146 מבית Maxim Integrated והאלגוריתמים המשובצים שלו מספקים ביצועי מדידות בדירוג ה- FDA, המפתחים יצטרכו לוודא שכל המערכת שלהם - ולא רק החיישן - עומדת בדרישות הביצועים של ה- FDA.
סיכום
העניין בהתקנים לבישים המסוגלים לספק מדידות קצב לב ו- SpO2 מדויקות ממשיך לגדול, והוא מתודלק לאחרונה מהתפקיד של נתוני SpO2 במעקב אחר הסימפטומים של מחלת COVID-19. למרות שביו-חיישנים מיוחדים יכולים לספק מדידות אלו, מעטים מהפתרונות הקיימים מסוגלים לענות על הביקוש להתקנים קטנים יותר המסוגלים להאריך את חיי הסוללה בהתקנים לבישים רבי-פונקציות וקומפקטיים. כפי שהוצג, מודול הביו-חישה מבית Maxim Integrated, הנתמך על ידי ערכת בניית אב-טיפוס מהירה, מציע חלופה יעילה המספקת מדידות בדירוג-FDA עם צריכת הספק מינימלית.

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.