ADCs חיוניים להמרת כל מיני אותות אנלוגיים לדיגיטליים, אבל איך הם באמת עובדים?

טייק אווי מפתח

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

ממירים אנלוגיים לדיגיטליים (ADCs) שימושיים להפליא להפיכת תופעות בעולם האמיתי לערכים שאנו יכולים להשתמש בהם בפרויקטי תכנות. אבל איך ADC יכול להמיר אותות אנלוגיים לאותות דיגיטליים שאנחנו יכולים להשתמש בהם בכל מקום?

למה משמשים ADCs?

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

instagram viewer

מהו קצב דגימה? כיצד קצב הדגימה משפיע על ADC?

אחד מדדי הכותרת הקריטיים ביותר של ADC הוא קצב הדגימה: מספר הקריאות שנלקחו בכל שנייה.

אוסילוסקופ ברמה גבוהה מאוד עשוי לקחת עשרה מיליארד דגימות בשנייה. ה-MCP3008 ADC הקטן והעצום יכול לקחת מאתיים אלף צנועות יחסית. בעולם האודיו, קצב דגימה של 44,100 לשנייה (44.1 קילו-הרץ) אופייני.

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

מה זה Bitrate? האם קצב סיביות משפיע על האיכות של ADC?

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

כתבנו על בינארי ואיך זה עובד, אז אם אתה לא בטוח, זה מקום טוב להתחיל בו. כמה ביטים אנחנו צריכים? שוב, זה תלוי במה שאנחנו מנסים להשיג. לפעמים, אנו עשויים להיות מוגבלים על ידי הפרוטוקול שבו אנו משתמשים. לדוגמה, פרוטוקול MIDI 1.0 מוגבל לערכי שבעה סיביות (ולפעמים ארבע עשרה סיביות). במקרים אחרים, הגורם המגביל עשוי להיות התפיסה האנושית. אם הנאמנות המוגברת לא מייצרת שום שיפור מורגש בתוצאה, אולי זה לא כדאי.

כיצד ריבוי משפר את איכות ADC?

שבבי ADC פופולריים כמו ADS1115 וה MCP3008 להציע תשומות רבות. אבל מתחת למכסה המנוע, הם באמת מכילים רק ADC בודד. זה אפשרי בגלל המרבבים המובנים במכשירים אלה. מרבבים נמצאים בכל מקום בעולם האלקטרוניקה והטלקומוניקציה. הם מתגים דיגיטליים הפועלים כבקרת תעבורה עבור ה-ADC שלך. ה-ADC עשוי לדגום ערוץ אחד, ולאחר מכן את הבא, ולאחר מכן את הבא. אז אם יש לך שמונה ערוצים וקצב דגימה של 200,000, אתה יכול לסובב בכולם, לקחת 25,000 דגימות לכל ערוץ.

אילו סוגי ADC קיימים?

ADCs פועלים בדרכים שונות, בהתאם לעלות וליכולות הנדרשות.

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

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

SAR (רישום קירוב עוקב) ADCs עושים את עבודתם באמצעות סוג של חיפוש בינארי. נניח שיש לנו שמונה ביטים למלא. ה-SAR יתחיל מ-10000000, שהוא הערך האמצעי (00000000 הוא התחתון ו-11111111 הוא העליון). אם המתח חורג מנקודת אמצע זו, ה-SAR ישמור על הספרה השמאלית ביותר כ-1; אם לא, ה-SAR יקבע את הספרה השמאלית ביותר ל-0. אנו יכולים לחזור על התהליך עם הספרה הבאה וכן הלאה באופן רקורסיבי. זה יגרום לערך המנחש לנוע בהדרגה לעבר הערך האמיתי:

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

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

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

מהי תיאוריית ניקוויסט-שאנון?

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

זה ידוע בתור תדר Nyquist, על שם הפיזיקאי השוודי-אמריקאי הארי Nyquist. התיאוריה נקראת על שם ניקוויסט וקלוד שאנון (מתמטיקאי וקריפטוגרף בולט) אך לא על שם אדמונד וויטאקר, שהגה את הרעיון לפני אף אחד מהם.

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

או אפילו להזות צורות גל חדשות שאפילו לא היו קיימות קודם לכן:

הזיות אלו ידועות בשם כינויים.

הבעיה עם כינוי

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

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

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

זו לא בעיה ייחודית להמרה אנלוגית-דיגיטלית. ברבים מהמקרים הללו, אנו ממירים סוג אחד של אות דיגיטלי לאחר.

אז מה הפתרון? יש כמה. נוכל להחיל פילטר מיוחד כדי להתמודד עם החפצים האלה, וזה מה שהרבה ADCs עושים מתחת למכסה המנוע. לחלופין, אנחנו יכולים לקחת הרבה הרבה יותר דוגמאות ממה שאנחנו צריכים. ככל שניקח יותר דגימות, התמונה שלנו של הגל הופכת מדויקת יותר:

מדגם באיכות גבוהה יותר לקבלת התוצאות הטובות ביותר

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

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