חדשות היום

תכנון מפושט של קדמן ECG בעזרת מיקרו-ממיר ®

אלקטרו-קרדיוגראמה (ECG) היא רישום הפעילות החשמלית על-פני משטח הגוף המיוצרת על-ידי הלב. מידע ממדידת ה-ECG נאסף באמצעות אלקטרודות-עור הממוקמות במקומות קבועים על-פני הגוף. אות ה-ECG מאופיין על-ידי שישה שיאים ועמקים המזוהים על-ידי אותיות עוקבות של האלף-בית P, Q, R, S, T ו-U (איור 1).

איור 1. צורת אות ה-ECG.

מאמר זה מציע כמה רעיונות של מימוש זול של מוניטור ECG. המבנה שלו מחייב שימוש במחשב אישי. על אף שהמאמר נערך תוך התחשבות בבטיחות המטופל, הרעיונות המוצגים בו אינם עונים בהכרח על כל דרישות הבטיחות של המערכת; על-כן על המשתמש בהם לוודא שבתכנון מסוים, המוצר בשלמותו ממלא את קריטריוני הבטיחות הדרושים. 

ראשית, אנו מביאים סקירה של טופולוגיית ECG אנלוגית טיפוסית. לאחר מכן יוצג מעגל המבצע המרה אנלוגית לדיגיטלית, סינון דיגיטלי והגברה דיגיטלית – הכול תוך שימוש במיקרו-ממיר – מערכת-על-שבב משולבת הכוללת ממיר D/A, מיקרו-בקר וזיכרון הבזק. המאמר מוסיף לאחר מכן לדון בשיקולים בבחירת הרכיבים ותכנות המיקרו-ממיר.

דרישות מאלקטרו-קרדיוגרף

הקדמן (front-end) של ECG צריך להיות מסוגל לטפל באותות חלשות ביותר החל מ-0.5 מילי-וולט עד 5.0 מילי-וולט, המשולבים עם רכיב ז”י של עד ±300 מילי-וולט- הנובעים מהמגע בין האלקטרודה והעור- בתוספת רכיב מוד משותף (common mode) של עד 1.5 וולט, הנובע מהפוטנציאל בין האלקטרודות וההארקה. רוחב הפס השימושי של אות ECG, יכול לנוע מ-0.5 הרץ עד 50 הרץ, בהתאם ליישום – עבור יישום ניטור ביחידות טיפול נמרץ – ועד 1 קילו-הרץ עבור מדידות של פוטנציאל מאוחר (בגילוי קוצב-לב). יישום קליני רגיל של ECG הוא בעל רוחב-פס של 0.05 הרץ עד 100 הרץ.

אותות ECG עלולים להיפגם על-ידי צורות שונות של רעש. מקורות הרעש העיקריים הם הפרעות מקו ההזנה: קליטת 50-60 הרץ והרמוניות ממקור ההזנה הראשירעש ממגע האלקטרודה: מגע שונה בין האלקטרודה והעור, היוצר הסטת קו הבסיסחפצים בתנועה: שינויים בקו הבסיס הנגרמים על-ידי שינוים בעכבת אלקטרודה-עורהתכווצות שרירים: אותות מסוג אלקטרו-מיוגרם (EMG) נוצרים ומתערבבים עם אותות ה-ECG נשימה, הגורמת הסטה בקו הבסיס הפרעות אלקטרו-מגנטיות מהתקנים אלקטרוניים אחרים, כאשר תילי האלקטרודות משמשים כאנטנות, ו-רעש מהתקנים אלקטרוניים אחרים, לרוב בעלי תדרים גבוהים.

לשם גילוי משמעותי ומדויק, יש לנקוט בצעדים כדי לסנן או לסלק את כל מקורות הרעש הנ”ל.

שרשרת אותות ECG טיפוסית

איור 2 מציג דיאגרמה מלבנית של אלקטרו-קרדיוגרף חד-ערוצי טיפוסי. בשרשרת זו ברור שכל הסינון מבוצע במישור האנלוגי, בעוד שהמיקרו-מעבד, המיקרו-בקר או ה-DSP משמש בעיקר עבור תקשורת ומטרות אחרות במורד הזרם. כך שתכונות המחשוב הגדולות של הליבה הדיגיטלית אינן תמיד זמינות כדי לטפל באות במצבו הגולמי. בנוסף, מסננים אנלוגיים מתוחכמים עשויים להיות יקרים במסגרת התכנון הכולל, בשל חוסר הגמישות שלהם – והמקום, העלות וההספק שהם דורשים.

איור 2. אלקטרוקרדיוגרף חד-ערוצי

 

מעגל מוצע

 

שרשרת האות ניתנת לפישוט על-ידי שימוש במיקרו-ממיר ADuC842, המאפשר שילוב של ה-ADC, המסננים והמיקרו-מעבד בתוך מעגל משולב יחיד. יתרונות נוספים הם גמישות מימוש המסנן והבידוד במישור הדיגיטלי. תכנון המערכת המוצעת מוצג באיור 3.

 

עיבוד המבוא האנלוגי

הקדמןfront end)) האנלוגי משתמש בשיטה הרגילה עם מגבר מכשור (IA) ומגבר אופרציונלי בעל משוב הפרשי (common mode) עבור רגל ימין. ה-IA הוא ה-AD620, מגבר מכשור זול ומדויק בעל ביצועי dc מצוינים: CMR>>100 dB עד קרוב ל-1 קילו-הרץ, מתח היסט 50 מיקרו-וולט, זרם מיקדם בעל מבוא נמוך (1 ננו-אמפר מרבי) ורעש מתח -מבוא נמוך (0.28 מיקרו-וולט מ-0.1 הרץ עד 10 הרץ). 

ה-AD620 דורש רק נגד כיול-שבח חיצוני יחיד, RG. הנגדים 2R ו-3R משנים את משוואת השבח הרגילה ל-[Gain = 1 + 49.4 k/RG + (49.4 k/2)/22 k]. כדי למנוע את רוויית המוצא, השבח השימושי מוגבל על-ידי ניד(swing) המוצא ומתח המבוא המרבי ל-IA. עם ספק כוח של 5± וולט, ניד המוצא של ה-AD620 הוא כ-3.8± וולט; והמבוא המרבי הוא  5± מילי-וולט ועוד היסט  dcמשתנה במצב רגיל של עד 300± מילי-וולט, המאפשר שבח מרבי של 12.45. כאן ההגבר נקבע בצורה שמרנית ל-8 1%)±), תוך שימוש ב-

RG=8.45 kW .

המגבר האופרציונלי המשמש במעגל המשוב במוד המשותף של רגל ימין הוא ה-OP97, מגבר אופרציונלי בעל הספק נמוך ודיוק גבוה ובעל דחיית מוד משותף גבוהה ביותר114) dB מינימום). מעגל זה עושה שימוש בגרסה מהופכת של הפרעה במוד המשותף אל רגל ימין של המטופל, במגמה לבטל את ההפרעה. המגבר האופרציונלי הוא בעל שבח עבור מתח המוד המשותף של 91 [viz., R4/(R2 || R3) = 1 MW/11 kW],, עם rolloff של 1.6 הרץ וקטעון מעביר-נמוכים של כ-160 הרץ לצורכי יציבות                                                              [f–3 dB = 1/(2p x (10 kW x 0.1 mF)]  .

בידוד דיגיטלי

בידוד דיגיטלי הוא ליבת ממשק ה-RS232 למחשב האישי, המוצעת בדוגמה זו למטרות תצוגה. המבודד הוא ADuM1301, מבודד דיגיטלי דו-כיווני המבוסס על טכנולוגיית iCoupler® של Analog Devices  -טכנולוגיה המונעת את קשיי התכנון הקשורים לרוב עם מצמדים אופטיים (יחסי מעבר זרם בלתי ודאיים, פונקציות מעבר לא-ליניאריות וכד’).

הוא גם משיג קצבי נתונים גבוהים עם צריכת הספק נמוכה יותר מאשר מצמדים אופטיים. ל-ADuM1301 שלושה ערוצי בידוד עצמאיים, כאשר שניים מהם מנוצלים כאן – אחד לשידור, השני לקליטת נתונים. (תכונה נוספת של ה-ADuM1301 שאיננה דרושה כאן, היא היכולת לחבר/לנתק את מבוא/מוצא הנתונים). ההספק הדרוש עבור צד המדידה של ה-ADuM1301 נלקח מהמגבר/מייצב ADP3607-5, המספק מוצא קבוע של 5 וולט. ההספק עבור המחשב האישי מבודד כליל מהמעגל. ניתן להפיקו מהמחשב (כמו כאן) או ממקור אחר. 

הספק בטוח

ההספק המבודד מסופק על-ידי סוללה, הנטענת בתחנת טעינה כאשר איננה בשימוש. כדי לטפל באות מבוא דו-קוטבי, דרוש מקור של 5± וולט עבור ה-AD620  וה-OP97. המגבר/מייצב ADP3607-5 והמהפך ADP3605 משמשים כספק כוח מיוצב המספק מתחים מיוצבים חיוביים ושליליים מסוללה יחידה של 3 וולט.

ה-ADP3607 הוא מכפיל מתח בעל מוצא מיוצב וקבל ממותג המסוגל לספק עד 50 מילי-אמפר. הוא יכול לפעול ממתח מבוא נמוך עד כדי 3 וולט, והוא מוצע בגרסה בעלת ייצוב קבוע של 5 וולט (ADP3607-5) הנמצא בשימוש כאן (הוא גם ניתן להשיג בגרסה מיוצבת בתחום של 3 עד 9 וולט באמצעות נגד חיצוני. הוא יכול לספק מתח חיובי אף יותר גדול בעזרת דרגת משאבה חיצונית המורכבת מרכיבים פסיביים).

מהפך המתח בעל קבל ממותג ADP3605, עם מתח מוצא מיוצב, מסוגל לספק עד 120 מילי-אמפר. הוא מוצע עם ייצוב קבוע של 3- וולט (ADP3605-3) או משתנה באמצעות נגדים חיצוניים בתחום של 3- עד 6- וולט (מתח שלילי גדול יותר ניתן להשיג על ידי הוספת דרגת “משאבה” חיצונית כמו עם ה-ADP3607). דרוש ספק מתח של 5- וולט, עם מתח מבוא של 5+ וולט, כך ש-R נקבע ל-31.6 kW 1%)±), על ידי שימוש במשוואה VOUT=1.5R/9.5kW. 

שני מתחי הספק 5 V) ±) מיוצרים על-ידי “משאבות” בעלות מטען קיבולי, שאינן יכולות לספק מתחים לא בטיחותיים – אפילו לא בתנאי תקלה – מאחר שהן אינן דורשות כל סלילים. התקנים אלה מכילים גם מוד השבתה, המאפשר הפחתת המתח של ההתקנים על-ידי המיקרו-ממיר כאשר המערכת איננה בשימוש. 

איור 3. תצורת ECG מוצעת.

בטיחות המטופל

 

בנוסף לבידוד הדיגיטלי וספק הכוח הבטוח, הנגדים הטוריים Rx1, Rx2 ו-Rx3 מספקים הגנה עבור המטופל – כדי למלא אחרי תקני AAMI (Association for the Advancement of Medical Instrumentation) לגבי רמות זרם בטוחות (ראה סימוכין). תקנים אלה דורשים שזרמי ההארקה rms או זרמי התקלה של האלקטרוניקה יהיו מתחת ל-50 מיקרו-אמפר. 

עיבוד אותות

המיקרו-ממיר ADuC842 מצויד היטב למילוי משימות עיבוד הנתונים העיקריים. הוא מכיל ADC 12-ביט מהיר וציוד אנלוגי היקפי אחר בעל ביצועים גבוהים, ליבת מיקרו-מעבד מהירה 8052, זיכרון הבזק 62 KB  משולב עבור הקוד, וציוד עזר שימושי נוסף כמתואר באיור 4.

רכיבי המפתח של המיקרו-ממיר בתכנון זה הם ה-ADC והליבה 8052. ה-ADC ממיר את המוצא האנלוגי של מגבר המכשור לאות דיגיטלי. התוכנה שנכתבה עבור הליבה 8052 מעבדת את האות הדיגיטלי כדי להפיק נתונים עבור עקבת ה-ECG הסופית. כמו בהרבה תכנוני מיקרו-ממירים אחרים, התוכנה כוללת הן קוד מורכב ברמה גבוהה הכתוב בשפת C והן רוטינות רגישות-לזמן הכתובות בקוד סף (assembly). במקרה זה, המימוש של מסננים מעבירי-פס ומסננים בוררים (notch) הוא ב-C, בעוד ה-ADC מבוקר על-ידי קוד הסף. קוד הסף, ביחד עם מהירות הממיר, מאפשר צבירה של דגימות מרובות, ומשפר את הרזולוציה המעשית של ה-ADC הרבה מעבר ל-12 הביטים הרגילים.

 

איור 5 נותן מושג טוב על יעילות המיקרו-ממיר. העקבה העליונה היא האות ממגבר המכשור המגיע ל-ADC. העקבה האמצעית מראה את התוצאות הראשוניות המושגות על-ידי סינון הקוד C, בעוד העקבה התחתונה מראה את התוצאה הסופית לאחר העיבוד של ההמרות המרובות, תוך שימוש בקוד הסף.

 

 

איור 4. דיאגרמה מלבנית של AduC842

 

 

איור 5. עקבות באוסילוסקופ.

 

עלינו להפוך עתה את המשוואה לקוד. קוד ה-C הייתה הבחירה האוטומטית עבור עיבוד כבד-באריתמטיקה זה, מאחר שתכנותו בשפת הסף היה דורש זמן רב מידי. מימוש משוואות המסנן ישירות היה בלתי-יעיל עם ה-ADuC842, מאחר שהוא לא בנוי לחישובי נקודה צפה. למזלנו אנחנו יכולים לשנות רק את קנה המידה של המקדמים ולממש את קוד הבוררים כ-:

 

iNOut = (4096L*iNIn-6627L*iNIn1+4096L*iNIn2+6211L*iNOut1-3598L*iNOut2)/4096;

זה מממש מסנן מסדר שני. אם כי אנחנו יכולים לחשב מסננים בעלי סדר גבוה יותר, נראה יותר מעשי לחבר בקסקדה מסננים מסדר שני. המימוש המוצג באיור 6 הוא עבור קסקדה של חמישה מסננים מעבירי-פס ושני מסננים בוררים. האות מוכפל פי 4 בכל אחד מהמסננים מעבירי-פס הראשון והשני. ההזזה ימינה ב-12 ביט משלימה את החלוקה ב-4096.

 

 

איור 6. החלק העיקרי של קוד ה-C

 

 

שים לב לשורות if(iAdc00>2400) iDac-= 1 ו-if(iAdc00<8000)iDac+= 1, אשר מווסתות את מוצא ה-DAC של ה-ADuC842 כדי לגרום למבוא מזיז-הרמה של ה-AD620 להעביר את המוצא של ה-AD620 לערך נוח עבור מבוא ה-ADC של המיקרו-ממיר. דבר זה רצוי כדי להקטין את השפעות היסטי ה-dc המשתנים הנובעות מההבדלים הקטנים באופן שבו האלקטרודות מונחות על העור. טכניקה דומה משמשת להבטיח שמתח המוצא ממורכז בתוך תחום המוצא שלו.

 

עיבוד בקוד סף

 

הפונקציות העיקרית של קוד הסף הן למדוד את אות המבוא בפרקי זמן סדירים ולוודא שחישובי הקוד C חוזרים בקצב הדרוש של 500 פעמים בשנייה. בשלב הראשון, תכנתנו Timer0 לרוץ ברציפות וליצור פסקים בכל 1 מילי-שנייה. כל פסק מתחל את Timer0, משיג תוצאה של המרת ה-ADC ומגדיל במעט משתנה, c2ms, המשמש לסנכרון הקוד C.  בשלב זה של פיתוח הקוד, השורות הראשונות של קוד ה-C היו:

 

while(c2ms<2);           //used in first phase.                       

c2ms = 0;                     

iAdc00 = iAdc0;                       

 

בהתחלה, c2ms הוא אפס וקוד ה-C יחכה בקו while(c2ms<2);; לאחר 1 מילי-שנייה, קורה פסק של Timer0, ו-c2ms מוגדל ל-1. לאחר מילי-שנייה נוספת, c2ms מוגדל ל-2. כעת while(c2ms<2); איננו מתאים יותר והקוד C ממשיך על-ידי איפוס המונה c2ms וביצוע חישובי המסנן. לאחר מכן קוד ה-C מוריד את התוצאות לאורך שרשרת המשתנים המייצגת את התוצאות המושהות השונות המוכנות לשם האיטרציה הבאה של הלולאה. החלק הסופי של הלולאה הוא printf(…), השולח את התוצאה אל המחשב לשם תצוגה. עיבוד הנתונים במחשב האישי, החורג ממטרות מאמר זה, יכול להיות כה פשוט כמו הבאתו לגיליון האלקטרוני לשם תצוגה גרפית – או כה מורכב כמו שהמתכנן מתכוון לעשותו. פתרון זה יוצר את העקבה האמצעית באיור 5.

 

לשיפור התוצאה, קצב הפסקים של ה-Timer0  קוצר ל-1/32 מילישניות, והנתונים רוכזו ב-iAdc0, כדי לעשות שימוש במדידות מרובות במקום מדידה יחידה בלבד. באותו הזמן, ה-while שונה ל-while(c2ms<64) כך שהקוד C ימתין ל-64 מדידות אשר יצטברו לפני ביצוע כל לולאה במסנן. הערך של iAdc0 נשמר כ-iAdc00 לשם עיבוד נוסף, ואז ה-iAdc מאופס –מוכן לקלוט את 64 המדידות הבאות. איור 7 מראה את קוד הסף. פתרון משופר זה יוצר את העקבה התחתונה שבאיור 5.

 

איור 7. קוד הסף

 

שבח

 

שבח האות הוא תמיד שיקול חשוב בשרשרת אותות ECG. בתכנון המתואר לעיל, הוא תלוי במספר גורמים. השבח האנלוגי נקבע כ-8x, כפי שנאמר קודם לכן. בהמשך, שבח של 64X נוצר מצבירת 64 מדידות של אות זה. בהמשך, נוצר איבוד אות של 8X מהקוד iBIn=iAdc0>>3; ולבסוף, שבח של 4X פעמיים מעליית שתי המשוואות הראשונות של המסננים מעבירי-פס. התוצאה היא שבח כולל של G=(8×64/8)x4x4=1024, שהוא מקובל במעגלי ECG אנלוגיים.

 

איור 8. גרפים של מדידות מעשיות.

 

סיכום

 

איור 8 מראה תוצאות של מטופל המחובר בתצורת Einthoven lead I. כפי שניתן לראות, משיגים תוצאות טובות על אף הפשטות של החומרה האלקטרונית בה השתמשנו. המאמר מוכיח שניתן להשיג שיפורים משמעותיים בעזרת חומרה פשוטה בשילוב עם תשומת-לב לתוכנה. השיפור בדוגמה זו הוא לאו דווקא ברמה אופטימלית; מתכנן חרוץ יכול היה לשפר משמעותית את התוצאות. שיפורים נוספים ניתן להשיג אם משתמשים בקוד בעל תדרי מסנן שונים או מאפיינים מיוחדים אחרים. זיכרון הקוד של ה-ADuC842 הוא מבוסס- הבזק, ומאפשר התאמה לדרישות הלקוח לאחר ייצור מוצר מסוים – או אף כאשר צורכי המטופל משתנים. התוצאה סופית עשויה להיות ECG קומפקטי ולא יקר העונה לצורכי שוק בעל פוטנציאל נרחב.

מאת:

Enrique Company-Bosch (enrique.combos@analog.com)

Eckart Hartmann (eckart.hartmann@analog.com)

תגובות סגורות