تحويل الإشارات
الصوت، درجة الحرارة وشدة الضوء هي إشارات تماثلية، أما الحاسوب والمتحكم فلا يفهمان إلا الأرقام. لكي يقيس الحاسوب درجة حرارة أو يسجّل صوتا يجب أن نحوّل الجهد التماثلي إلى كلمة رقمية، ولكي يُسمعنا موسيقى مخزونة في ذاكرته يجب أن نحوّل الكلمات الرقمية إلى جهد من جديد. في هذا الفصل نتعرف على المحوِّلين اللذين يربطان بين العالمين، ونتعلم كيف نحسب جهد الخرج، الكلمة الرقمية وقدرة التمييز.
- نشرح لماذا نحوّل الإشارة التماثلية إلى رقمية وبالعكس، ونرسم المخطط الصندوقي لنظام كامل.
- نحوّل كلمة ثنائية إلى عدد عشري وبالعكس، ونحسب عدد المستويات 2n.
- نحسب قدرة التمييز ΔV وجهد الخرج Vo لمحوِّل رقمي إلى تماثلي حسب كلمة الدخل.
- نحلل محوِّلا من نوع شبكة السلم R–2R مع مكبر عمليات ونحسب جهد خرجه.
- نحسب الكلمة الرقمية في خرج محوِّل تماثلي إلى رقمي حسب جهد الدخل.
- نشرح طريقة عمل محوِّل «جهد الدرجات» ونحسب زمن التحويل.
הצורך בהמרת אותות אנלוגיים לספרתיים ולהיפך – الحاجة إلى تحويل الإشارات التماثلية إلى رقمية وبالعكس (Why Convert Signals)
تعلمنا في الفصل 1 أن الإشارة التماثلية متصلة وتأخذ أي قيمة، وأن الإشارة الرقمية مبنية من بتات قيمة كل منها 0 أو 1. المجسات تُخرج إشارات تماثلية، والسماعات والمحركات تحتاج إلى إشارات تماثلية، لكن المعالجة نفسها تتم اليوم في دوائر رقمية. لذلك نحتاج إلى دائرتين تنقلان الإشارة من عالم إلى آخر:
لماذا نعالج الإشارة بشكل رقمي؟ – מדוע ספרתי:
- مناعة ضد الضجيج: في الإشارة الرقمية يوجد مستويان فقط، ولذلك تشويش صغير على الجهد لا يغيّر 0 إلى 1. في الإشارة التماثلية كل تشويش يضاف إلى الإشارة ولا نستطيع فصله عنها.
- التخزين: الأرقام تُخزن في الذاكرة بدون أن تتغير مع الزمن، ونستطيع نسخها مرات كثيرة بدون أن تفقد من جودتها.
- المعالجة: المعالج يُجري على الأرقام عمليات حسابية ومنطقية بحسب برنامج، ونغيّر عمل النظام بتغيير البرنامج فقط، بدون تغيير الدائرة.
تذكير: الأعداد الثنائية – תזכורת: מספרים בינאריים:
| الرمز | المعنى | وحدة القياس |
|---|---|---|
| N | القيمة العشرية للكلمة، و b0 ... bn−1 بتاتها | — |
| n | عدد البتات | — |
| M | عدد المستويات: عدد الكلمات المختلفة الممكنة | — |
| Nmax | أكبر قيمة عشرية، حين تكون كل البتات 1 | — |
نكتب الكلمة تحت الأوزان، ونجمع أوزان البتات التي قيمتها 1 فقط:
نبحث في كل مرة عن أكبر وزن لا يزيد عن الباقي، نطرحه، ونكتب 1 في مكانه:
استعملنا الأوزان 64 , 32 , 4 ، فنكتب 1 في أماكنها و 0 في بقية الأماكن:
(ب) نكتب العدد 37 ككلمة من 8 بتات.
(ج) كم مستوى يوجد لكلمة من 6 بتات؟
המרת אות ספרתי לאנלוגי. חישוב מתח המוצא בתלות במילת המבוא הספרתית. כושר ההבחנה – تحويل إشارة رقمية إلى تماثلية: جهد الخرج حسب كلمة الدخل وقدرة التمييز (D/A Conversion)
للمحوِّل DAC يوجد n مداخل رقمية، مدخل لكل بت، ومخرج تماثلي واحد. يحتاج المحوِّل أيضا إلى جهد مرجعي Vref (מתח ייחוס) ثابت ودقيق، ومنه يبني جهد الخرج.
كلمة من n بتات تأخذ 2n قيمة مختلفة فقط، ولذلك جهد الخرج لا يتغير بشكل متصل، بل يقفز من مستوى إلى مستوى في درجات متساوية.
| الرمز | المعنى | وحدة القياس |
|---|---|---|
| ΔV | قدرة التمييز: جهد الدرجة الواحدة | [V] |
| Vref | الجهد المرجعي ( n هو عدد البتات) | [V] |
| N | القيمة العشرية لكلمة الدخل | — |
| Vo | جهد الخرج | [V] |
| VFS | جهد السلّم الكامل: أكبر جهد خرج، حين تكون كل البتات 1. هو أصغر من Vref بدرجة واحدة | [V] |
(أ) قدرة التمييز.
(ب) جهد الخرج للكلمة 1011.
(ج) أكبر جهد خرج.
(أ) قدرة التمييز:
(ب) نحوّل الكلمة إلى عدد عشري، ثم نضرب في قدرة التمييز:
(ج) أكبر جهد خرج نحصل عليه للكلمة 1111:
إذا أدخلنا إلى المحوِّل كل الكلمات بالترتيب، من الصفر حتى أكبر كلمة، ورسمنا جهد الخرج، نحصل على شكل درج. الشكل التالي مرسوم لمحوِّل من 3 بتات جهده المرجعي 8 V ، أي ΔV = 1 V.
تأثير عدد البتات: كلما زاد عدد البتات صغرت الدرجة وصار جهد الخرج أقرب إلى إشارة متصلة. الجدول التالي محسوب لجهد مرجعي Vref = 10.24 V:
| عدد البتات n | عدد المستويات 2n | قدرة التمييز ΔV |
|---|---|---|
| 4 | 16 | 640 mV |
| 6 | 64 | 160 mV |
| 8 | 256 | 40 mV |
| 10 | 1024 | 10 mV |
ממיר D/A מסוג רשת סולם נגדים R–2R, חישובים בממיר – محوِّل رقمي إلى تماثلي من نوع شبكة السلم R–2R (R–2R Ladder DAC)
كيف نبني دائرة يتناسب جهد خرجها مع قيمة الكلمة؟ الفكرة: كل بت يساهم في الخرج بمقدار يتناسب مع وزنه، ثم نجمع المساهمات كلها. الدائرة التي تجمع هي المكبر الجامع الذي تعلمناه في الفصل 2.
الفكرة البسيطة: مقاومات موزونة – נגדים משוקללים:
نوصل كل بت إلى المدخل العاكس للمكبر الجامع عبر مقاومة. للبت الأعلى وزنا نختار المقاومة الأصغر R ، ولكل بت بعده مقاومة مضاعفة: 2R ، 4R ، 8R. هكذا يمرّر كل بت نصف تيار البت الذي قبله. جهد البت هو VH عندما قيمته 1 و 0 V عندما قيمته 0.
المدخل العاكس هو أرضي افتراضي (0 V) ، ولذلك تيار كل بت قيمته 1 هو جهده مقسوما على مقاومته. في الكلمة 1010 البتان b3 و b1 قيمتهما 1:
التياران يجتمعان ويمران في مقاومة التغذية الراجعة Rf:
الإشارة السالبة ناتجة عن المكبر العاكس.
شبكة السلم – רשת סולם נגדים R–2R:
لكل بت يوجد مفتاح ذو وضعين. عندما قيمة البت 1 يوصل المفتاح المقاومة 2R إلى المدخل العاكس لمكبر العمليات، وعندما قيمته 0 يوصلها إلى الأرضي. المدخل العاكس هو أرضي افتراضي جهده 0 V ، إذن:
الفكرة الثانية: المقاومة التي نراها من كل عقدة نحو اليمين هي R. نبدأ من الطرف الأيمن للسلم ونبسّط خطوة بعد خطوة:
الصورة تتكرر عند كل عقدة: التيار الواصل إلى العقدة يجد أمامه فرعين متساويين، المقاومة 2R النازلة وبقية السلم التي محصلتها 2R أيضا. لذلك ينقسم التيار عند كل عقدة إلى نصفين متساويين. المقاومة التي يراها المصدر المرجعي هي R ، وتياره I = VrefR ، ومنه:
I3 = I2 ، I2 = I4 ، I1 = I8 ، I0 = I16. التيار IT الذي يصل إلى المكبر هو مجموع تيارات البتات التي قيمتها 1 فقط، وهو يمر في Rf:
| الرمز | المعنى | وحدة القياس |
|---|---|---|
| Vo | جهد الخرج، و Vref الجهد المرجعي | [V] |
| Rf | مقاومة التغذية الراجعة | [Ω] |
| R | مقاومة الشبكة (المقاومات الأفقية) | [Ω] |
| N | القيمة العشرية للكلمة من n بتات | — |
| ΔV | قدرة التمييز (مقدار الدرجة) | [V] |
المقاومة التي يراها المصدر المرجعي هي R ، فتيار المصدر:
التيار ينقسم إلى نصفين عند كل عقدة:
في الكلمة 1010 المفتاحان b3 و b1 في الوضع 1 ، فتياراهما يصلان إلى المكبر:
فحص بواسطة القانون، مع N = 10:
لنفس المحوِّل مقدار الدرجة هو ΔV = RfR·Vref2n = 0.5 V ، ولكل كلمة Vo = −N·ΔV. نلاحظ في الجدول أن البت b3 وحده يعطي نصف الجهد المرجعي، وكل بت بعده يعطي نصف مساهمة البت الذي قبله:
| الكلمة | القيمة العشرية N | جهد الخرج Vo |
|---|---|---|
| 0001 | 1 | −0.5 V |
| 0010 | 2 | −1 V |
| 0100 | 4 | −2 V |
| 1000 | 8 | −4 V |
| 1111 | 15 | −7.5 V |
המרת אות אנלוגי לספרתי. חישוב מילת המוצא הספרתית בתלות במתח המבוא התקבילי. חישוב כושר ההבחנה – تحويل إشارة تماثلية إلى رقمية: كلمة الخرج حسب جهد الدخل وقدرة التمييز (A/D Conversion)
المحوِّل ADC يعمل بالاتجاه المعاكس: يقيس جهد الدخل Vi ويُخرج العدد الذي يقول كم درجة كاملة يحتوي هذا الجهد. هذا يشبه قياس طول بمسطرة مقسمة إلى ملمترات: نقرأ عدد الملمترات الكاملة، وما هو أقل من ملمتر لا نراه.
| الرمز | المعنى | وحدة القياس |
|---|---|---|
| ΔV | قدرة التمييز: أصغر تغيّر في جهد الدخل يغيّر كلمة الخرج | [V] |
| Vi | جهد الدخل التماثلي | [V] |
| N | القيمة العشرية لكلمة الخرج: نأخذ الجزء الصحيح فقط من ناتج القسمة | — |
| Vi,max | جهد الدخل الذي تبدأ عنده أكبر كلمة (كل البتات 1) | [V] |
نأخذ الجزء الصحيح فقط، ونحوّله إلى كلمة ثنائية من 3 بتات:
الكلمة تمثل الجهد N·ΔV ، والباقي هو خطأ التكميم:
(أ) ما هي قدرة التمييز؟
(ب) أي كلمة نحصل عليها للجهد Vi = 0.45 V؟
(ج) أي جهد دخل يلائم الكلمة 11001000؟
(د) أي كلمة نحصل عليها للجهد Vi = 3 V؟
(أ) نحوّل الكلمة المعطاة إلى عدد عشري. هذا العدد هو عدد الدرجات التي يحتويها الجهد 1.2 V:
(ب) نقسم الجهد على قدرة التمييز ونحوّل إلى كلمة ثنائية:
(ج) نحوّل الكلمة إلى عدد عشري ونضرب في قدرة التمييز:
(د) نفحص أولا الجهد الذي تبدأ عنده أكبر كلمة:
الجهد 3 V أعلى من هذه القيمة، فالمحوِّل وصل إلى نهاية مجاله ويُخرج أكبر كلمة: 11111111.
ממיר A/D מסוג "מתח מדרגות" – محوِّل تماثلي إلى رقمي من نوع «جهد الدرجات» (Counter-Ramp ADC)
كيف نبني محوِّل ADC؟ أبسط طريقة تستعمل ما تعلمناه حتى الآن: نبني جهدا يصعد درجة بعد درجة بواسطة عدّاد ومحوِّل DAC ، ونقارنه مع جهد الدخل بواسطة مُقارن. عدد الدرجات التي صعدناها حتى تجاوزنا جهد الدخل هو الكلمة المطلوبة.
- في بداية التحويل نصفّر العدّاد، فيكون N = 0 وجهد الدرجات VDAC = 0 V.
- ما دام Vi > VDAC يكون خرج المُقارن في المستوى المرتفع، والبوابة AND تمرّر نبضات الساعة إلى العدّاد.
- مع كل نبضة ساعة يزداد العدّاد بواحد، وجهد الدرجات يصعد درجة واحدة ΔV.
- عندما يصبح VDAC أكبر من Vi ينتقل خرج المُقارن إلى المستوى المنخفض، فتُغلق البوابة ويتوقف العدّاد.
- العدد الذي بقي في العدّاد هو كلمة الخرج. بعد قراءتها نصفّر العدّاد ونبدأ تحويلا جديدا.
| الرمز | المعنى | وحدة القياس |
|---|---|---|
| tc | زمن التحويل: من بداية العدّ حتى توقف العدّاد | [s] |
| N | عدد النبضات التي عدّها العدّاد، وهو قيمة كلمة الخرج | — |
| TCLK | زمن الدورة لإشارة الساعة، و fCLK ترددها | [s] |
| tc,max | أطول زمن تحويل، حين يصل العدّاد إلى أكبر كلمة | [s] |
(أ) كلمة الخرج.
(ب) زمن التحويل.
(ج) أطول زمن تحويل ممكن.
مقدار الدرجة وزمن الدورة لإشارة الساعة:
(أ) جهد الدرجات يصعد 0.5 V مع كل نبضة. بعد 6 نبضات يكون VDAC = 3 V ، وهو ما زال أصغر من Vi. بعد النبضة رقم 7 يصبح VDAC = 3.5 V ، أكبر من 3.3 V ، فيتوقف العدّاد:
(ب) العدّاد عدّ 7 نبضات:
(ج) في أسوأ حالة يعدّ العدّاد حتى الكلمة 1111:
(أ) لمحوِّل من 8 بتات.
(ب) لمحوِّل من 10 بتات.
(أ) لمحوِّل من 8 بتات:
(ب) لمحوِّل من 10 بتات:
لماذا هذا المحوِّل بطيء؟ لأنه يصعد درجة واحدة فقط في كل نبضة ساعة، ويبدأ دائما من الصفر. كل بت إضافي يضاعف عدد الدرجات، وبذلك يضاعف تقريبا أطول زمن تحويل، كما رأينا في المثال: زيادة بتّين جعلت الزمن أطول بأربع مرات تقريبا. عيب آخر: زمن التحويل ليس ثابتا، بل يتعلق بجهد الدخل. لذلك يلائم هذا المحوِّل إشارات تتغير ببطء، مثل درجة الحرارة، وأفضليته أنه بسيط ورخيص. توجد محوِّلات أسرع، مثل محوِّل التقريب المتتالي (SAR) والمحوِّل الوميضي (Flash) ، لكنها خارج مادة هذا الفصل.
ملخّص قوانين الفصل:
| القانون | الصيغة |
|---|---|
| القيمة العشرية لكلمة من n بتات | N = bn−1·2n−1 + ... + b1·21 + b0·20 |
| عدد المستويات وأكبر قيمة | M = 2n , Nmax = 2n − 1 |
| قدرة التمييز (معطى Vref) | ΔV = Vref2n |
| قدرة التمييز (معطى أكبر جهد خرج VFS) | ΔV = VFS2n − 1 |
| جهد الخرج في محوِّل DAC | Vo = N·ΔV |
| محوِّل شبكة السلم R–2R | Vo = −RfR·Vref·N2n |
| كلمة الخرج في محوِّل ADC (الجزء الصحيح) | N = ViΔV |
| زمن التحويل في محوِّل «جهد الدرجات» | tc = N·TCLK |
| أطول زمن تحويل | tc,max = (2n − 1)·TCLK |
قاموس المصطلحات – מילון מונחים:
| بالعربية | بالعبرية (كما تظهر في الامتحان) | English |
|---|---|---|
| تحويل الإشارات | המרת אותות | Signal conversion |
| محوِّل تماثلي إلى رقمي | ממיר אנלוגי לספרתי (A/D) | Analog-to-Digital Converter (ADC) |
| محوِّل رقمي إلى تماثلي | ממיר ספרתי לאנלוגי (D/A) | Digital-to-Analog Converter (DAC) |
| بت | סיבית | Bit |
| الكلمة الرقمية | מילה ספרתית | Digital word |
| البت الأعلى وزنا | הסיבית המשמעותית ביותר | MSB |
| البت الأدنى وزنا | הסיבית הפחות משמעותית | LSB |
| قدرة التمييز (الدرجة) | כושר הבחנה (רזולוציה) | Resolution (step) |
| الجهد المرجعي | מתח ייחוס | Reference voltage |
| جهد السلّم الكامل | מתח סקלה מלאה | Full-scale voltage |
| شبكة السلم | רשת סולם נגדים | R–2R ladder |
| خطأ التكميم | שגיאת כימוי (קוונטיזציה) | Quantisation error |
| محوِّل «جهد الدرجات» | ממיר "מתח מדרגות" | Counter (staircase) ADC |
| العدّاد | מונה | Counter |
| المُقارن | משווה | Comparator |
| زمن التحويل | זמן המרה | Conversion time |
| الضجيج | רעש | Noise |
أسئلة للتمرين:
(أ) 1101.
(ب) 10010110.
(أ) 77.
(ب) 200. كم مستوى يوجد لكلمة من 6 بتات، وما هي أكبر قيمة لها؟
(أ) ما هي قدرة التمييز؟
(ب) ما هو جهد الخرج للكلمة 01100100؟
(ج) أي كلمة تعطي Vo = 6 V؟
(أ) تيار المصدر المرجعي I.
(ب) التيار I3.
(ج) قدرة التمييز.
(د) جهد الخرج.
(أ) ما هي قدرة التمييز؟
(ب) أي كلمة نحصل عليها للجهد 3.5 V؟
(ج) ما هو جهد الدخل الذي تبدأ عنده الكلمة 11111111؟
(أ) عند أي عدد يتوقف العدّاد؟
(ب) ما هو زمن التحويل؟
(ج) ما هو أطول زمن تحويل ممكن؟
(أ) مقدار الدرجة ΔV.
(ب) زمن الدورة لإشارة الساعة وترددها.
(ج) كلمة الخرج.
(د) زمن التحويل.
שאלות בגרות – أسئلة بجروت للفصل 9
| البند | المطلوب | الإجابة النهائية |
|---|---|---|
| البند أ | قدرة التمييز (الدقّة) | في الحل الكامل |
| البند ب | القيمة الثنائيّة في الخرج | Vin=2V → 01100100 ; Vin=3.045V → 10011000 |
| البند ج | مجال جهد الدخل من أجل القيمة 01100001₂ | في الحل الكامل |
| البند | المطلوب | الإجابة النهائية |
|---|---|---|
| البند أ | قدرة التمييز (الدقّة) | في الحل الكامل |
| البند ب | الكلمة الثنائيّة لجهود الدخل | 200 mV → 00001010₍₂₎ ; 5.1 V → 11111111₍₂₎ |
| البند ج | جهد الدخل للكلمة 10101001₍₂₎ | Vi = 3.38 V |
| البند | المطلوب | الإجابة النهائية |
|---|---|---|
| البند أ | الجهد في الطرف A₀ عند إضاءة 6 lux | VA₀ = 2.5 V |
| البند ب | البرنامج بلغة C (Arduino) | في الحل الكامل |