12.1. Загальна характеристика цифро-аналогових перетворювачів
Цифро-аналогові перетворювачі (ЦАП) призначені для перетворення цифрової інформації в аналогову форму у вигляді напруги (іноді струму). Їх використовують у системах керування технологічними процесами, в аналогових мікропроцесорах, в дисплеях, графопобудовниках, робототехніці. Цифро-аналогове перетворення полягає в тому, що для вхідного паралельного n-розрядного коду Х=X12–1+X22–2+…+Xi2–i+…+Xn2–n, де Xi – цифри 0 або 1, а 2–і – вага i-го розряду, спочатку отримують струм IХ, пропорційний значенню числа Х, а потім перетворюють його у вихідну напругу. Значення струму IХ визначається сумою еталонних струмів Ii, які створюються для кожного розряду числа IХ =X1I1+X2I2+…+XiIi+…+XnIn, причому підсумовуються струми тільки тих розрядів, для яких Хi=1.Значення еталонів струму Ii пропорційні вазі позиції двійкового числа і зменшуються у два рази при переході від старшого i-го розряду до сусіднього молодшого з номером i+1.
12.2. Схеми цифро-аналогових перетворювачів
Структура ЦАП вміщує: резистивну або транзисторну матрицю для формування еталонних струмів; ключі для комутації еталонних струмів згідно з вхідним кодом до спільної точки підсумовування; операційний підсилювач (ОП) для перетворення струму IХ у вихідну напругу; допоміжні схеми для узгодження з вхідними рівнями сигналів; стабілізоване джерело опорної напруги UОП. Резистивні матриці будують або з набору двійково-зважених за номіналами резисторів, або у вигляді сходового (багатоланкового) ланцюжка резисторів лише двох номіналів R–2R. Схема ЦАП з резистивною матрицею на основі двійково-зважених опорів виду R–2R–…–2n-1 R показана на рис. 12.1. У цій схемі опір резисторів матриці подвоюється при переході від старшого розряду до молодшого, а еталонні струми зменшуються у два рази. Наприклад, якщо для першого, найстаршого розряду взяти значення струму I1=1 мА, то для другого розряду I2=0,5 мА, для третього I3=0,25 мА і т. д.
Рис. 12.1. Схема ЦАП із зваженими резисторами
Ключі К1 – Кn керуються рівнями напруги, які відображають цифри «нуль» і «один» відповідних розрядів вхідного коду. Джерело опорної напруги UОП найчастіше буває зовнішнім, але у деяких випадках його вбудовують у мікросхему ЦАП. На вході ОП завжди є практично нульовий потенціал, тому додавання розрядних струмів визначається співвідношенням (12.1)
Напругу на виході ЦАП розраховують за формулою (12.2) де Rоз=R/2– опір у ланцюгу оберненого зв’язку підсилювача.
12.3. Двійкові коди, використовувані у цифро-аналогових перетворювачах
Введення інформації в ЦАП здійснюється, в основному, в паралельному коді. У ЦАП використовують три основних двійкових коди: прямий, зміщений і доповняльний (рис. 12.2). Прямий код зручний при перетворенні сигналів систем стеження тому, що при переході через нуль не міняються старші розряди коду, а це дозволяє реалізувати лінійний перехід від малих позитивних до малих негативних вихідних напруг. Для перетворення позитивних і негативних кодів використовують знаковий розряд, який керує перемиканням вихідної напруги ЦАП (рис. 12.2, а).
а б в Рис. 12.2. Вихідні напруги ЦАП для кодів: а – прямого; б – зміщеного; в – доповняльного
Для виключення комутуючих елементів із схеми ЦАП використовують зміщений код, що є найпростішим (рис. 12.2, б). У доповняльному коді (рис. 12.2, в) позитивні числа перетворюються так, як і в прямому коді, а негативні – двійковим доповненням відповідного позитивного числа (інверсія всіх розрядів з подальшим додаванням одиниці в молодший розряд).
12.4. Основні параметри і характеристики цифрово-аналогових перетворювачів
Основними параметрами ЦАП є число розрядів вхідного цифрового коду, роздільна здатність, похибки перетворення, діапазон вихідних сигналів, динамічні параметри (табл. 12.1). Таблиця 12.1
Тип мікросхеми
Розрядність, n
Максимальне відхилення ?лд, %
Час установлення tуст, мкс
Технологія
К427ПА4 К572ПА2 КМ1118ПА1 К1108ПА3 КМ1148ПА1
16 12 8 8 10
0,0015 0,025 0,75 0,5 0,75
20 15 0,02 0,05 1
КМОН Біполярна Біполярна Біполярна Біполярна
Число розрядів n вхідного коду для різних типів ЦАП дорівнює від восьми до вісімнадцяти. Число розрядів визначає максимальну кількість кодових комбінацій на вході ЦАП, що дорівнює 2n.Діапазон зміни вихідної напруги (без урахування знака) визначається із співвідношення (5.2) при Хi = 1, i = 1, 2, …, n: Uвих max = Uоп(2–1+2–2+…+2–n) = Uоп(1–2–n), якщо n = 10, Uоп = 10 В, то Uвих max = 10 В. Роздільна здатність h характеризується мінімальним квантом вихідної напруги, який відповідає зміні вхідного коду на одиницю молодшого розряду: h=Uоп/2n?10 мВ для попереднього прикладу. Абсолютна похибка перетворення ?А – відхилення вихідної напруги від розрахункової в кінцевій точці характеристики перетворення. Типова похибка ЦАП не перевищує 1/2 молодшого розряду. Нелінійність ?л – максимальне відхилення реальної характеристики перетворення від теоретичної (прямої лінії, що з’єднує точку нуля і мінімального вихідного сигналу). Диференціальна нелінійність ?д – максимальне відхилення різниці двох аналогових сигналів сусідніх кодів від значення молодшого розряду. Параметри ?А, ?л і ?д виражаються в частках молодшого розряду або у відсотках від повної шкали вихідної напруги. Час установлення tуст – інтервал часу від подачі вхідного коду до моменту досягнення вихідним сигналом сталого значення із заданою похибкою (зазвичай 1/2 молодшого розряду). Цей час визначає загальну швидкодію ЦАП. Залежно від значень параметрів виділяють прецизійні (dл < < 0,1%) і швидкодіючі (tуст ? 100 нс) ЦАП. Розрізняються ЦАП структурою резистивної матриці (зважені резистори або R – 2R), елементною базою, функціональною повнотою, узгоджувальними пристроями, числом джерел живлення та ін. Реалізуються ЦАП у вигляді гібридних і напівпровідникових мікросхем. Більшість мікросхем ЦАП – напівпровідникові, функціонально закінчені. Ряд ЦАП використовують зовнішні джерела опорної напруги і вихідні операційні підсилювачі. Живлення ЦАП може здійснюватися від одного або від кількох джерел, що визначається елементною базою. Перспективами розвитку ЦАП є підвищення швидкодії та точності, зручність узгодження з мікропроцесорами, зниження споживаної потужності.
12.5. Загальна характеристика аналого-цифрових перетворювачів
Аналого-цифрові перетворювачі (АЦП) призначені для перетворення аналогової інформації (звичайно у вигляді напруги) у цифровий код. Застосовують АЦП у мікропроцесорних системах, у цифрових вимірювальних приладах. Області застосування їх багато в чому аналогічні ЦАП, оскільки вони часто використовуються спільно, наприклад, в автоматизованих системах керування (АСК) (рис. 12.3).
Рис. 12.3. Аналого-цифровий і цифро-аналоговий перетворювачі в контурі керування Основними параметрами і характеристиками АЦП є: число розрядів n вихідного коду; роздільна здатність h ??мінімальний квант вхідної напруги, за якої вихідний код змінюється на одиницю молодшого розряду; нелінійність ?л ??максимальне відхилення вихідного коду від розрахункового значення у всьому діапазоні шкали; абсолютна похибка ?А ??найбільше відхилення вихідного коду від розрахункового в кінцевій точці шкали; час перетворення tпр ? інтервал від моменту початку перетворення до появи на виході сталого коду; часто замість tпр швидкодія АЦП характеризується частотою перетворення; діапазон і полярність вхідної напруги, число джерел живлення, струм споживання, можливість спільної роботи з мікропроцесорами. У АЦП застосовуються такі методи перетворення: послідовної лічби (з використанням ЦАП або з двотактним інтегруванням); порозрядного кодування (послідовного двійкового наближення); паралельної дії (зчитування); паралельно-послідовні (комбіновані).
12.6. Основні параметри і характеристики аналого-цифрових перетворювачів
У АЦП використовують методи порозрядного кодування, послідовної лічби з двійковим інтегруванням і паралельного перетворення. Мікросхеми АЦП виконують за гібридною і напівпровідниковою технологією. У останні роки випускають, в основному, напівпровідникові АЦП. Основні параметри і характеристики деяких напівпровідникових АЦП наведені в табл. 12.2.Деякі АЦП є функціонально закінченими, але більшість вимагають додаткових зовнішніх елементів: операційних підсилювачів, джерел опорної напруги, генераторів тактових імпульсів, резисторів і конденсаторів. Таблиця 12.2
Тип мікросхеми
Розрядність, n
Максимальне відхилення, ?ЛД, %
Час перетворення TП, мкс
Технологія
Примітка
КР572ПВ3 К1107ПВ1 М1107ПВ6 К1108ПВ2
8 6 10 12
± 0,75 ± 0,5 ± 1,5 ± 1
7,5 0,1 0,06 0,9
КМОН Біполярна Біполярна Біполярна
МК, СМ — ФЗ, СМ ФЗ
Примітка. У табл. 12.2: СМ – сумісність з мікропроцесорами; ФЗ –функціональна закінченість; МК – багатоканальність. Мікросхеми АЦП звичайно мають діапазон зміни вхідної напруги 0 – 10 В, а деякі АЦП допускають використання двопо-лярного вхідного сигналу. Розрядність АЦП становить 6 – 12, причому ряд АЦП допускають нарощування розрядності. Швидкодія АЦП визначається, в основному, методом перетворення і елементною базою (ТТЛШ, ЕЗЛ, КМОН). Найбільшу швидкодію мають АЦП паралельної дії на базі ЕЗЛ-елементів (tпр ? 20 нс). Перетворювачі за рівнями вихідних сигналів узгоджуються з ТТЛШ-, ЕЗЛ- і КМОН-мікросхемами. Більшість сучасних АЦП сумісні з мікропроцесорними пристроями. Вихідні ланцюги в таких АЦП мають три стійких стани (лог.0, лог.1 і Z). Вихідним кодом АЦП найчастіше є двійковий. У АЦП з двійковим інтегруванням застосовується двійково-десятковий код для сполучення з індикаторами і вимірювальними приладами. Тут для представлення кожного десяткового знака використовуються чотири двійкових розряди. Використовуються також обернений і додатковий коди. Деякі АЦП – це ВІС аналого-цифрової системи збирання даних, що включає в свій склад, крім перетворювача, багатоканальний мультиплексор, оперативний запам’ятовуючий пристрій, схеми буферів і керування. Основними напрямками вдосконалення АЦП є: -підвищення швидкодії основних вузлів, особливо компараторів; -використання АЦП комбінованої дії; -підвищення точності перетворення, зокрема, збільшення розрядності до 16 і більше; -зниження споживаної потужності; -досягнення зручності та гнучкості застосування, особливо узгодження з мікропроцесорними пристроями.
12.7. Загальна характеристика перетворювачів кодів
Перетворювачем коду називається функціональний вузол комп'ютера, призначений для перетворення двійкового коду з однієї форми в іншу. Для подання інформації використовують різноманітні двійкові та двійково-десяткові коди: прямий, обернений, доповняльний і їхні модифікації, циклічний з лишком три та інші. Існує велика кількість кодів, які забезпечують: простоту виконання арифметико-логічних операцій; зручність переведення чисел з десяткової системи в двійковий код; надійність виконання заданих алгоритмів функціонування і ефективний контроль результатів обчислень; зменшення апаратних витрат при побудові цифрових пристроїв. Найбільш поширеними є прямий, обернений і доповняльний коди, які забезпечують представлення знака числа і заміну операції віднімання додаванням (табл. 12.3). До перетворювачів коду відносяться шифратори і дешифратори, однак за традицією ці функціональні вузли виділені в окремі самостійні класи.
Таблиця 12.3
Коди для додатних чисел
Коди для від’ємних чисел
десятковий
прямий
обернений
доповняльний
десятковий
прямий
обернений
доповняльний
+0
0,000
0,000
0,000
–0
1,000
1,111
0,000
+1
0,001
0,001
0,001
–1
1,001
1,110
1,111
+2
0,010
0,010
0,010
–2
1,010
1,101
1,110
+3
0,011
0,011
0,011
–3
1,011
1,100
1,101
+4
0,100
0,100
0,100
–4
1,100
1,011
1,100
+5
0,101
0,101
0,101
–5
1,101
1,010
1,011
+6
0,110
0,110
0,110
–6
1,110
1,001
1,010
+7
0,111
0,111
0,111
–7
1,111
1,000
1,001
Прямий, обернений і доповняльний коди використовуються для записування знака числа, заміни операції віднімання чисел додаванням їхніх кодів, а також для визначення переповнення розрядної сітки. Для представлення знака числа у них відводиться знаковий розряд, який розташовується зліва від числа і відділяється комою. У знаковий розряд записується нуль – для позитивного числа і одиниця – для негативного.
12.8. Перетворювач прямого коду в обернений
У прямому двійковому коді ХПР = ХЗН Xn-1,…, X1 один розряд, звичайно старший, відображає знак числа, інші – значення цифрових розрядів; при цьому для додатного числа ХЗН = 0, а для від’ємного ХЗН = 1. Обернений код додатного двійкового числа збігається з прямим кодом, а для від’ємного числа цифрові розряди прямого коду інвертуються. У процесі перетворення прямого коду в обернений значення знакового розряду ХЗН використовується як керуючий сигнал, що забезпечує отримання такого виразу
: , (12.3) де Yi – значення i-го розряду оберненого коду; Xi – значення і-го розряду додатного вхідного числа (ХЗН = 0); – значення і-го розряду від’ємного вхідного числа (= 1).
Рис. 12.4. Схема перетворювача прямого коду в обернений
Схема п'ятирозрядного перетворювача прямого коду в обернений, побудована на елементах «виключальне ЧИ» відповідно до виразу (4.21), показана на рис. 12.4.
12.9. Перетворювач прямого коду в доповняльний
Доповняльний код додатного двійкового числа збігається з його прямим і оберненим кодами. Доповняльний код від’ємного двійкового числа утворюється з його оберненого коду додаванням до молодшого розряду одиниці. Таким чином, операція перетворення прямого коду в доповняльний не є порозрядною і виконується значно складніше, ніж отримання оберненого коду. Відповідність між прямим і доповняльним кодами на прикладі чотирьох цифрових розрядів (беззнакових) наведена в табл. 12.4.
Знаковий розряд прямого коду використовується як керуючий сигнал: якщо ХЗН = 0, то вихідний код повторює значення вхідного; при ХЗН = 1 реалізується перетворення згідно з табл. 12.4.
Таблиця 12.4
Прямий код
Доповняльний код
Прямий код
Доповняльний код
X4
X3
X2
X1
Y4
Y3
Y2
Y1
X4
X3
X2
X1
Y4
Y3
Y2
Y1
Карта Карно відповідно до табл. 12.4 для отримання мінімальних форм функцій перетворення прямого коду в доповняльний показана на рис. 12.5.
Рис. 12.5. Карта Карно для функцій перетворювача прямого коду в доповняльний: а – Y1; б – Y2; в – Y3; г – Y4
На основі карт Карно з врахуванням знакового розряду ХЗН прямого коду для функцій Y1, Y2, Y3, Y4, що представляють виходи перетворювача, отримуємо: (12.4) У загальному вигляді для Yi справедливе рівняння: (12.5)
Схема перетворювача прямого коду в доповняльний на основі виразів (12.4) і (12.5) показана на рис. 12.6, а. Даний перетворювач характеризується високою швидкодією. Час встановлення вихідного коду визначається трьома затримками поширення сигналу, однак в міру зростання номера розряду лінійно зростає й необхідне число входів використовуваних елементів ЧИ.
Рис. 12.6. Схеми перетворювачів прямого коду в доповняльний
Другий варіант схеми перетворювача (рис. 12.6, б) використовує тільки двовходові елементи ЧИ, при цьому диз'юнктивна сума змінних утворюється послідовним способом. У такій реалізації схема перетворювача спрощується, однак час встановлення вихідного коду істотно збільшується. Практичне правило отримання доповняльного коду полягає в тому, що праворуч від першої одиниці (враховуючи і саму одиницю) в прямому коді числа значення розрядів – незмінні, а зліва від одиниці (крім знакового) – інвертуються. Наприклад, для прямого коду 10100100 доповняльним буде код 11011100. Для перетворення в доповняльний код багаторозрядних двійкових чисел часто використовують переведення числа в обернений код і подальшого додавання одиниці до його молодшого розряду за допомогою суматора.
12.10. Перетворювач двійкових чисел у код Грея Код Грея утворений послідовністю двійкових чисел, в яких два будь-яких сусідніх числа відрізняються тільки одним розрядом (табл. 12.5). Перше і останнє числа вважаються сусідніми. Код Грея, який називають циклічним, відноситься до незважених двійкових кодів. Достоїнствами коду Грея є: зручність кодування кутових переміщень; простота кодуючої логіки; скорочення часу перетворення у зв'язку зі зміною значення тільки одного розряду; висока ефективність захисту від збоїв. Недоліками коду Грея є ускладнення при виконанні арифметичних операцій і цифро-аналогових перетворень. Тому при необхідності код Грея перетворюють у двійковий код. Таблиця 12.5
X4
X3
X2
X1
I4
I3
I2
I1
X4
X3
X2
X1
I4
I3
I2
I1
За даними табл. 12.5 в клітинки карт Карно (рис. 12.7) внесено значення розрядів I1, I2, I3, I4 коду Грея. За допомогою карт Карно отримуємо такі вирази для розрядів коду Грея:
(12.6) Схема перетворювача прямого коду в код Грея на основі співвідношень (12.6) показана на рис. 12.8.
Рис. 12.7. Карта Карно для коду Грея: а – I1, б – I2, в – I3, г – I4 За аналогічною методикою, використовуючи табл. 12.5 і нові заповнення карт Карно, отримуємо обернене перетворення коду Грея в прямий код: (12.7) Схема перетворення коду Грея в прямий код на основі співвідношень (12.7) показана на рис. 12.9.
Рис.12.8. Перетворювач прямого коду в код Грея
Рис.12.9. Перетворювач коду Грея в прямий код
12.11. Перетворювач двійково-десяткових чисел в код семисегментного індикатора
Візуальне відображення двійково-десяткових чисел часто виконується за допомогою семисегментних індикаторів на основі електролюмінісцентних приладів, рідких кристалів або світлодіодних матриць. Кількість семисегментних індикаторів визначається розрядністю чисел, що відображаються на світловому табло – звичайно – шість і більше десяткових цифр. Десятковий код відображуваної цифри, що виводиться з комп'ютера, поступає на вхід двійково-десяткового перетворювача, виходи якого а, b, с, …, g підключаються до відповідних сегментів індикатора (рис. 12.10, а).
Рис. 12.10. Підключення перетворювача до індикатора (а) і відображення цифр (б) Одиничне значення вихідного сигналу перетворювача викликає світіння сегмента, підключеного до цього виходу. Комбінації одиничних сигналів на виходах перетворювача утворять зображення десяткової цифри в своєму розряді (рис. 12.10, б). Відповідність між двійково-десятковим числом і необхідними для відображення десяткової цифри наборами сегментів наведена в табл. 12.6. Таблиця 12.6
X4
X3
X2
X1
a
b
c
d
e
f
g
X4
X3
X2
X1
a
b
c
d
e
f
g
На основі даних табл. 12.6 і після їхньої мінімізації за допомогою карт Карно отримуємо систему логічних рівнянь для видів перетворювачів кодів:
Схема перетворювача двійково-десяткового коду в керуючі сигнали семисегментного індикатора показана на рис. 12.11.
Рис. 12.11. Схема перетворювача коду «8421» в код семисегментного індикатора (для виходів а, b, с)
12.12. Двійково-десяткові перетворювачі У комп'ютерах широко використовується двійково-десяткове кодування, в якому кожна десяткова цифра зображується чотирирозрядним двійковим кодом, тобто тетрадою двійкових символів. Число різних двійково-десяткових кодів визначається числом можливих комбінацій по десять із 16 комбінацій, які допускаються тетрадою. Десяткові числа можуть представлятися в коді «з лишком 3», в коді з вагою «5421» або «2421» (код Айкена) та ін. Найбільш поширеним є код прямого заміщення «8421», в якому кожна десяткова цифра 0, 1, …, 9 замінюється її двійковим еквівалентом 0000, 0001, …, 1001. Такий код називають також зваженим Д-кодом. Наприклад, число 72910 у двійково-десятковому коді записується у вигляді трьох тетрад: 0111001010012-10. Для Д-кодів розроблені машинні алгоритми операцій додавання, віднімання, множення, ділення та інші. Операції над десятковими числами (десяткова арифметика) входять до складу команд комп'ютерів різних класів. Особливістю Д-кодів є наявність десяти дозволених і шести заборонених комбінацій двійкових символів в тетраді. Поява забороненої комбінації при виконанні операцій над числами свідчить про виникнення помилки або ж про необхідність корекції результату. У розрядній сітці машини двійково-десяткові коди представляються у формі з плаваючою або фіксованою крапкою. При цьому від’ємні числа відображаються в прямому, оберненому або доповняльному кодах. Для Д-кодів не виконується умова отримання оберненого коду інвертуванням розрядів тетради. Застосування Д-кодів у комп'ютерах не вимагає виконання різного роду перетворень: двійково-десяткових чисел у двійкові та навпаки. Наприклад, за допомогою шифратора забезпечується порівняно простий спосіб введення в машину десяткових цифр двійково-десятковим кодом. Значення однієї тетради Д-коду, доповнення тетради до дев'яти «9-Д» (обернений код) і до десяти «10-Д» (доповняльний код), а також коди з «лишком 3» і з вагою «5421» наведені в табл. 12.7 Систему мінімальних логічних виразів оберненого двійково-десяткового коду отримуємо за допомогою карт Карно (рис. 12.12), в які вносяться значення розрядів Y1–Y4 за даними табл. 12.7. Таблиця 12.7
Код Д
Код «9-Д»
Код «10-Д»
Код «Д+3»
Код «5421»
X4
X3
X2
X1
Y4
Y3
Y2
Y1
F4
F3
F2
F1
Z4
Z3
Z2
Z1
E4
E3
E2
E1
На основі карт Карно отримуємо систему рівнянь для розрядів Y1 – Y4 оберненого Д-коду: (12.8)
Рис. 12.12. Карти Карно для отримання оберненого Д-коду; знаком «х» помічені невизначені набори: a – Y1, б – Y2, в – Y3, г – Y4 Із виразів (12.7) випливає, що значення другого розряду тетради прямого і оберненого Д-кодів збігаються. Схема перетворювача прямого Д-коду в обернений на основі співвідношень (12.8) показана на рис. 12.13, а. Можливий і інший спосіб побудови перетворювача Д-коду в обернений: спочатку інвертуються цифри всіх тетрад (виходить код з лишком шість) і потім відбувається віднімання з кожної тетради числа мінус 0110, що еквівалентне додаванню в доповняльному коді плюс 1010 (без урахування перенесень між тетрадами). Наприклад, А = –148, прямий Д-код = 1 0001 0100 1000; після інвертування маємо: АПР=1 1110 1011 0111; після додавання плюс 1010 одержуємо значення оберненого Д-коду: АОБ = 1 1000 0101 0001.
Рис. 12.13. Схеми перетворювачів Д-коду в обернений: а – на основі логічних рівнянь; б – з використанням елемента “виключальне ЧИ”
Схема перетворювача на основі інвертування і корекції тетрад показана на рис. 12.13, б. В даній схемі інвертування значень розрядів тетрад здійснюється логічними елементами «виключальне ЧИ», а корекція реалізується типовою мікросхемою чотирирозрядного комбінаційного суматора. Доповняльний Д-код тетради виходить з оберненого додаванням одиниці до молодшого розряду.