המרה של D ל-A ? למה וכיצד

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

7:00
  /  
02.08.2006
  
המאמר נכתב ע"י motico ונערך ע"י LiorC

מספר בינארי הוא למעשה אוסף של אפסים ואחדים שמוגדרים כקבוצה. המספר הקטן ביותר שהקבוצה תגדיר הוא 0 והמספר הגדול האפשרי תלוי בכמות הקווים בקבוצה.
rnיחידת ה D/A מקבלת בכניסה קבוצת קוים שהצרוף הבינארי שלהם מגדיר מספר (Digital) וביציאה מהיחידה מופיע מתח יחסי למספר הבינארי שהוכנס ליחידה (Analog).



כשהקבוצה בנויה מ 8 קוים, המספר הגבוה האפשרי הוא 255 , שזה 2 בחזקת 8 פחות 1.
rnכשהקבוצה בנויה מ 12 קוים, המספר הגבוה האפשרי הוא 4095 , שזה 2 בחזקת 12 פחות 1.
rnכשהקבוצה בנויה מ 16 קוים, המספר הגבוה האפשרי הוא 65535 , שזה 2 בחזקת 16 פחות 1.
rnכשהקבוצה בנויה מ 24 קוים, המספר הגבוה האפשרי הוא 16777215 , שזה 2 בחזקת 24 פחות 1.

כשהמספר בכניסה ליחידת ה D/A קבוע, גם רמת מתח היציאה קבועה. במערכות שמע המספרים בכניסה מתחלפים בקצב גבוה, וזה גורם למתח היציאה לזוז (לעלות או לרדת) ולעקוב אחרי המספר בכניסה. אות היציאה המשתנה הוא למעשה האות האנלוגי שבסופו דבר במערכות שמע מועבר לרמקולים, או במערכות וידאו מועבר למסך.
rnאפשר לומר שתזוזה של מספר אחד ב 8 ביט תגרום לתזוזה של 1/256 מהמתח (כ 0.5%) ולעומת זאת, תזוזה של מספר אחד ב 16 ביט יגרום לתזוזה של 1/65535 מהמתח (כ 0.001%).
rnככל שמספר הביטים גדול יותר כך גדל הדיוק התיאורטי של ה D/A .
rnלמה תיאורטי? כי הדיוק המעשי תלוי גם במבנה (צורת היישום) וגם בדיוק של יחידת ההמרה.

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

rnלדוגמה: יחידת ה D/A בדיסק CD לשמע, מקבלת בכל שניה כ- 44000 מספרים שונים, וכל מספר מגדיר אחת מ- 65000 רמות מתח.

D/A קלאסי:

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




ניקח לדוגמה מספר בינארי שמיוצג בעזרת 8 ביט, משהו כמו "11000001". ההמרה למתח אנלוגי תתחיל מהביט העליון בשרטוט (MSB) בצורה כזאת שכל ביט מתחתיו ישוקלל בחצי.
rnבדוגמה המוצגת, כל קו שמוגדר כ- 1 יזרים זרם ונקבל:

rnבנגד העליון נקבל זרם של 1 חלקי 2
rnבנגד שמתחתיו נקבל זרם של 1 חלקי 4
rnבנגד התחתון ביותר נקבל זרם של 1 חלקי 256
rnשאר הנגדים מקבלים 0 מתח לכן אין בהם זרם
rn
rnובנוסחה כללית:
rn1/2+1/4+0/8+0/16+0/32+0/64+0/128+1/256 = 0.7539
rnמספר 0.7539 יכול להיות מידה של זרם או מידה של מתח. rn

חשוב: ההשפעה של הביט האחרון (יחסית לביט הראשון) היא רק 1/256, כלומר פחות מאחוז. מעשית, את שקלול הזרמים של כל ביט קובעים נגדים מדויקים בערכים שונים ואני מקווה שזה ברור שאם הדיוק של הנגד הראשון גרוע מאחד אחוז, זה יקלקל את כל הדיוק של הביט השמיני (שנדרש לדיוק של פחות מחצי אחוז).
rnנגדים של 1% לא קשה לייצר, כיום מייצרים אפילו נגדים בדיוק של 0.1%, ולכן אין בעיה גדולה (טכנולוגית וגם פיננסית) לבנות D/A של 8 ביט.
rnאבל במקרה שיש לנו D/A של 16 ביט (או יותר) הסיפור כבר שונה לחלוטין.
rnכאן מסתכמת תרומת הביט ה- 16 ב- 1/65000 שזה כאמור 0.001% !!!. זו כבר דרישת דיוק נגדים שהינה מעבר ליכולת יצור בכמויות .
rnבקיצור, D/A שבנוי בשיטה הסטנדרטית ומעל 10 ביט יקר מאד (או לא מדויק).

rnכדי לפתור את הבעיה בנו מנגנון בשיטה שונה – העבירו את השקלול של כל ביט לשקלול של זמן.

D/A בשיטת ה 1 ביט:

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

rnולמה הכוונה
:
rnאם כל ביט יתרום את חלקו בזמן (במקום במתח או זרם או התנגדות), נוכל להגדיל את הדיוק ללא בעיה מהסיבה הפשוטה, שקל לייצר זמנים מדויקים על פני זרמים מדויקים. אם נשתמש בדוגמה הקודמת, במקום לקבל מתח של 0.7539 נקבל זמן של 0.7539. ומה זה אומר, שישנו קו אחד שמוציא רמה של 1 לוגי למשך זמן של 0.7539 ושאר הזמן (עד 1.0000) הוא ברמה לוגית 0. יחידת הזמן יכולה להיות מילישנייה, עשירית מילישנייה או קטן יותר, הכל בהתאם למהירות השינוי הנדרש מה D/A.



ה"מילה הדיגיטאלית" נכנסת למנגנון שממיר את המספר לרוחב פולס, מה שמוגדר מנגנון Pule Wide Modulation ובקיצור PWM.
rnאות ה- PWM עובר פילטרים וביציאה מתקבל מתח שיחסי לרוחב ה PWM.

Tf מגדיר את זמן המחזור של תדר ה- PWM.
rnTp קובע את הזמן שביט היציאה ב 1 לוגי. רוחבו תלוי במספר שהוכנס למנגנון ה- PWM.
rnמתח היציאה הסופי (האנלוגי) שווה ל Tp מחולק ב Tt.

rnבדוגמה שבשרטוט הנ"ל, Tp הוא רבע מ Tt , ואם מתח היציאה הלוגי של ה PWM הוא 1 וולט, נקבל (אחרי כל הפילטרים) 0.25 וולט במדויק.
rnאין בעיה ליצור זמנים קצרים כדי להשיג דיוק רב ב 8 ביט, 12 ביט, 16 ביט ויותר.
rnתדר ה- PWM חייב להיות גבוה בהרבה מהתדר האנלוגי הרצוי ביציאה. מעשית מדובר בעשרות מגה לממיר D/A של 16 ביט עבור אותות שמע.
rnבקיצור, מהחלק הדיגיטאלי של ה- D/A יוצא קו אחד בלבד עם רמות מתח משתנות בזמן (לפני הפילטרים). ומכיוון שזה רק קו אחד (להבדיל מהסטנדרטי שיוצא 8,16 או יותר) זה מכונה D/A של 1 ביט.
rnההמרה בשיטה הנ"ל בעיתית כשיש צורך להמיר 24 ביט או כשתדר היציאה הנדרש הוא מאד גבוה כדוגמת אותות וידאו. תדר הנדרש ל- PWM מגיע לתדרים מאד גבוהים וזה מתחיל להיות לא מעשי. rn


D/A בשיטת מחלק המתח:

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

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

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





לדוגמה: אם המילה הבינארית שמתקבלת זו 1, אז המפסק הראשון מתחבר (כל שאר המפסקים האחרים כמובן מנותקים), ולמגבר מגיע המתח שנוצר על הנגד הראשון.
rnאם המילה הבינארית שמתקבלת זו 9, אז המפסק התשיעי מתחבר, ולמגבר מגיע מתח שנוצר על 9 נגדים שזה בדיוק המתח של נגד אחד כפול 9
rnאם המילה הבינארית שמתקבלת זו 90, אז המפסק התשעים מתחבר, ולמגבר עובר מתח שנוצר על 90 נגדים.
rnבקיצור, מתח היציאה שווה ליניארית למספר הבינארי שהוא מקבל.

rnD/A כזה הוא מאד מדויק וגם מגיב מהר, אבל "העונש" שיש לשלם על כך הוא חלקים מרובים. ממיר של 8 ביט נזקק כאמור ל- 256 נגדים ול- 256 מפסקים. ממיר של 16 ביט כבר נזקק ליותר מ- 65000 נגדים וליותר מ- 65000 מפסקים, ועוד לתוספת של מגברים פנימיים וכו… שלא לדבר על כמות החלקים שנדרשים לבנית ממיר של 24 …
rnכמות החלקים נשמעת גדולה, אבל להשוואה, בצ'יפ של מחשב בינוני יש כבר כחצי מליון רכיבים על פיסת הסיליקון עליה הוא בנוי, מה שמראה שכיום, בטכנולוגיה העכשווית, אין בעיה לדחוס הרבה מאד רכיבים בג'וק אחד, אפילו לא עבור D/A של 24 ביט. rn

לסיכום:
rn- ממיר בשיטת הזרמים (או המתחים) מצטיין במעט חלקים ובמהירות עבודה אבל מוגבל בדיוק.
rn- ממיר בשיטת ה- 1 ביט מצטיין בדיוק אבל מהירותו בינונית.
rn- ממיר בשיטת מחלק המתח מצטיין במהירות ובדיוק אבל בנוי מרכיבים רבים.

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

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



7:00
  /  
2.8.2006
  
המאמר נכתב ע"י motico ונערך ע"י LiorC

1