Міністерство освіти і науки України
ДВНЗ «Прикарпатський національний університет імені Василя Стефаника»
Фізико-технічний факультет
Кафедра комп‘ютерної інженерії та електроніки
Курсова робота
на тему: Принцип побудови перетворювачів кодів
Студента IІI курсу, групи KI-31
напряму 6.050102
«Комп’ютерна інженерія»
Керівник
.
Національна шкала: ______________
Університетська шкала: ___________
Оцінка ECTS: ____
Члени комісії: _________ _____________________
(підпис) (прізвище та ініціали)
_________ _____________________
(підпис) (прізвище та ініціали)
_________ _____________________
(підпис) (прізвище та ініціали)
Івано-Франківськ - 2015 р
ЗМІСТ
Вступ……………………………………………………………………………….3
Розділ 1. Способи реалізації перетворювачів коду……………………………4
1.1. Перетворювач BCD від 0 до 99 у двійковий код ……………………….4
1.2. Перетворювач двійкового коду від 0 до 255 в BCD…………………….5
1.3. Перетворювачі вхідного коду в доповненні до 9 і 10…………………...7
Розділ 2.Побудова коду Грея…………………………………………………….8
2.1.Використання коду Грея…………………………………………………..9
2.2.Алгоритми перетворення коду Грея……………………………………..10
2.3. Перетворювач коду Грея в двійковий код(8-4-2-1)…………………….11Розділ 3. Перетворювачі комбінаційного типу………………………………..13Розділ 4. Код Джонсона…………………………………………………………15
Висновки…………………………………………………………………………16
Список використаної літератури………………………………………………17
ВСТУП
Мікросхеми перетворювачів кодів (англ. сonverter) служать для перетворення вхідних двійкових кодів у вихідні двійково-десяткові і навпаки вхідних двійково десяткових кодів у вихідний двійковий. Вони використовуються доволі рідко, так як застосування двійково-десяткових кодів обмежено вузькою областю, наприклад, вони застосовуються в схемах багаторозрядної десяткової індикації. До того ж при правильній організації схеми часто можна обійтись без перетворення в двійково-десятковий код, наприклад, вибираючи лічильники, котрі працюють в двійково-десятковому коді.
В сучасних цифрових компютерах головне місце займає двійкова система числення (позиційна система з постійною основою, рівній 2) і прямі її похідні(вісімкова і шістнадцяткова системи). Однак і інші системи не були забуті. Наприклад, при двійково-десятковому кодуванні чисел кожній десятковій цифрі відводиться по чотири двійкові цифри (біта), ваги котрих можуть бути рівні не тільки 8–4–2–1, але і, скажімо, 2–4–2–1.
Коди 7421, 5421, 3321, 2421 – це приклади ДДК зі штучним порядком ваг. Особливістю зваженихДДК зі штучним порядком ваг є відсутність взаємно однозначної відповідності між десятковими цифрами та їх двійковими кодами. Будь – який двійковий код відповідає одній десятковій цифрі але десяткова цифра може бути подана декількома двійковими кодами.
1. МЕТОДИ РЕАЛІЗАЦІЇ ПЕРЕТВОРЮВАЧІВ КОДІВ
1.1 Перетворювач двійково-десяткового коду від 0 до 99 в двійковий код
Для перетворення двійково-десяткових кодів від 0 до 99 достатньо двох мікросхем ПР6 (рис.1.), які необхідно відкаскадувати для збільшення розрядності.
Мікросхеми ПР6 мають виходи ЕО при нульовому рівні на якому всі виходи активні, а при одиничному - переходять в стан одиниці. Перетворювач ПР6 має додаткові виходи А, В, С, які не приймають участь в основному перетворенні.
Двійково-десятковий код без молодшого розряду на вході ПР6 перетворюється в двійковий код без молодшого розряду на виході ПР6. Молодший розряд не приймає участь у перетворенні, він безпосередньо передається з входу на вихід. Одна мікросхема ПР6 обробляє вхідні коди в діапазоні від 0 (двійково-десятковий код 00 000) до 39 (код 11 1001).
/
Рис. 1.1. Перетворювач двійково-десяткового коду з 0 до 99 в двійковий код
1.2 Перетворювач двійкового коду від 0 до 255 в двійково-десятковий код
Для перетворення двійкових кодів від 0 до 255 необхідно три мікросхеми ПР7 (рис.2.), які необхідно каскадувати для збільшення розрядності.
Мікросхеми ПР7 мають виходи -ЕО при нульовому рівні на якому всі виходи активні, а при одиничному - переходять в стан одиниці.
Двійковий код без молодшого розряду на вході ПР7 перетвориться в двійково-десятковий код без молодшого розряду на виході ПР7. Одна мікросхема ПР7 може обробляти вхідні коди в діапазоні від 0 (двійковий код 000000) до 63 (код 111111). Молодші розряди вхідних кодів передаються на вихід без обробки в обхід мікросхеми, так як вони однакові як в двійковому, так і в двійково-десятковому кодах.
/
Рис. 1.2. Перетворювач двійкового коду від 0 до 255 в двійково-десятковий код.Ще одним прикладом перетворювача двійкового коду від 0 до 255 в двійково-десятковий код може служити мікросхема DM74185A виробництва фірми Texas Instruments. /
Рис .1.2а.Перетворювач двійкового коду від 0 до 255
1.3 Перетворювачі вхідного коду в доповненні до 9 і в доповнення до 10
Наявність додаткових виходів А, В, С у мікросхеми ПР6 дозволяє перетворити двійково-десятковий код від 0 до 9 в код доповнення до 9 або до 10 (рис.3.) Тобто сума вхідного и вихідного кодів в цьому випадку рівна, відповідно, 9 або 10. Наприклад, при вхідному коді 6 на виході схеми А буде код 3, а на виході схеми В - код 4. В схемі В при вхідному коді 0 на виході також формується код 0. Як і всі інші виходи мікросхеми ПР6, виходи А, В, С мають тип ОК. Такі схеми "доповнювачів" застосовуються рідко.
/
Рис.1.3. Перетворювачі вхідного коду в доповнення до 9 (а) і в доповнення до 10 (б)
2. ПОБУДОВА КОДУ ГРЕЯ
Зустрічаються в цифровій техніці і непозиційні системи. Найбільш відомий з них – код Грея, який також називають рефлексним (відбитим) двійковим кодом. Кодів з такими ж характеристиками багато, але для коду Грея існує простий алгоритм переводу чисел в двійковий позиційний код и навпаки.
Код Грея – непозиційний код з одним набором символів (0 и 1) для кожного розряду. Таким чином, на відміну від римської системи числення число в коді Грея не являєтся сумою цифр. Щоб показати відповідність послідовності чисел коду Грея можна скористатися таблицею, але є і відповідне правило побудови цієї послідовності.
Молодший розряд в послідовності чисел в коді Грея приймає значення 0 и 1, потім наступний старший розряд стає одиничним и молодший розряд приймає свої значення вже в зворотньому порядку (1, 0). Цим і пояснюється назва коду - зворотній. Відповідно, два молодших розряди приймають значення 00, 01, 11, 10, а потім, при наступному старшому розряді, ті самі значення в зворотньому порядку (10, 11, 01, 00). Нижче подано таблицю, яка показує перші вісім чисел в двійковому коді і в коді Грея.
N
двійковий код
код Грея
N
двійковий код
код Грея
0
000
000
4
100
110
1
001
001
5
101
111
2
010
011
6
110
101
3
011
010
7
111
100
Рис.2.1.Числа в двійковому коді та коді Грея
2.1.Використання коду Грея
Завдяки своєму основному параметру (відмінність сусідніх чисел тільки в одному розряді) код Грея застосовується, например, в побудованих на кодових дисках визначниках кутового положення вала. В оптичному кодовому диску одиниці і нулі кодуються прозорими та непрозорими областями. З одної сторони диск просвічується орієнтованою вздовж його радіусу світловою щілиною, з другої сторони розміщуються фотодіоди. Зчитуючий з фотодіодів двійковий код і вказує кут повороту диска. Нижче показані 3-розрядні диски на позиційному коді і коді Грея (в силу обмеженості засобів диски «розрізані» посередині останнього кута і «витягнуті» в стрічку, як це робиться і для карт земної кулі):
позиційний код
/
код Грея
/
Рис.2.1.Використання коду Грея на кодових дисках
Недоліком кодування позиційним двійковим кодом заключаєтся в тому, що при зміні непарного коду парним зчитаний з фотодіоду код може виявитись неправильним. Характеристики фотодіодів зазвичай не идентичні і при зміні відразу декількох розрядів вихідні рівні фотодіодів можуть змінитись не строго одночасно. Наприклад, при переході від третього кута до четвертого або від сьомого кута до нульового міняються всі розряди і деякий час на виході фотодіодів можна отримати будь-яке значенне від 0 до 7. В коді Грея при переходах помилка не буде перевищувати один кут.
2.2.Алгоритми перетворення коду Грея
Як сказано вище, алгоритм переводу чисел в коді Грея в позиційний код простий: кожнийй розряд в позиційному коду рівний сумі по модулю 2 цього і всіх більш старших розрядів в коді Грея. Старші розряди, відповідно, співпадають. На мові C цей алгоритм може виглядати так:
unsigned gray2bin (unsigned v) {
unsigned sum = v, length = BITS;
while (length > 0) v >>= 1, sum ^= v, length –;
return sum;
}
Цей код являє собою дослівний перехід на мову C основного алгоритму, але його можно оптимізувати за рахунок накопичення проміжних сум в самому числі:
for (unsigned i = 1; i < BITS; i <<= 1) v ^= (v >> i);
Оскільки кількість ітерацій тут являється вже логарифмом від числа біт і мало навіть для дуже великих чисел, то цей цикл краще розгорнути:
v ^= v >> 1; /* для 2-розрядних чисел */
v ^= v >> 2; /* для 4-розрядних чисел */
v ^= v >> 4; /* для 8-розрядних чисел */
v ^= v >> 8; /* для 16-розрядних чисел */
Перехід з позиційного коду в код Грея ще простіший: кожен розряд в коді Грея рівний сумі по модулю 2 цього та наступного старшого розряду в позиційному коді. На мові C цей алгоритм реалізується виразом v^(v>>1). Реалізації на мові C цих алгоритмів також представлені в окремому файлі [GRAY.C].
Код Грея відрізняється від позиційного коду тільки інтерпретацією значення біт в числі, тому числа в різних кодах можна зберігати в одних і
тихже ж змінних. Більше того, одне і те ж значення змінної також можна відкрити по-різному – це просто дасть різні числа.
2.3.Перетворювач коду Грея в двійковий код 8-4-2-1.
Широке застосування в обчислювальній техніці знаходять перетворювачі кодів, що перетворюють числову інформацію з однієї двійковій форму в іншу
Особливість коду Грея полягає в тому, що при переході до кожного наступного в коді змінюється значення тільки одного двійкового розряду. У коді Джонсона перехід до подальшого числу здійснюється шляхом послідовної заміни 0 на, починаючи праворуч до заповнення всіх розрядів 1, а потім заміною 1 на 0, до заповнення нулями. Коди з доповненням до 9, 10 з «надлишком 9» використовуються для виконання додавання і віднімання двійково-десяткових чисел. Для перетворення кодів можна користуватися двома методами: методом, заснованим на перетворенні вихідного двійкового коду в десятковий і наступного перетворення десяткового подання в необхідний двійковий код; метод синтезу логічного пристрою комбінаційного типу безпосередньо реалізує дане перетворення.
Код Грея є циклічним кодом, який використовується в системах контролю цифрових пристроїв, в перетворювачах механічних переміщень в цифровий код і т.д. Дві сусідні цифрові комбінації коду Грея відрізняються завжди значеннями тільки одного розряду. Такі комбінації утворять ланцюг завдовжки 2 n, де n – число розрядів в коді Грея. Синтезується перетворювач повинен формувати для кожної комбінації коду Грея відповідну комбінацію коду 8-4-2-1.Задача синтезу зводиться до синтезу системи логічних функцій y 3, y 2, y 1, y 0 від змінних x 3, x 2, x 1, x 0. Карти Карно для цих функцій дозволяють отримати структурні формули для формування розрядів y 3, y 2, y 1, y 0 вихідного коду. Дужкові перетворення всіх отриманих за картками вихідних формул (МДНФ) з використанням тотожностей
алгебри логіки призводять до логічних виразів на основі операції (що виключає АБО):/
Рис 2.2.Приклади перетворень різних типів коду
3. КОМБІНАЦІЙНІ ПРИСТРОЇ
Комбінаційні пристрої,які в цифровій техніці називаються перетворювачами кодів, багаточисленні та різноманітні по функціональним типам. До таких перетворювачів відносять пристрої для переводу чисел з однієї системи числення в іншу, пристрої для зміни принципу представлення дискретної інформації, пристрої для керування знаковими індикаторами, пристрої для отримання заданого представлення від”ємних чисел.Розглянемо методи побудови деяких з них.Ввід та вивід інформації в обраховуючі та інші цифрові пристрої часто пов”язані з необхідністю перетворення (переводу) чисел з десяткової системи числення у двійкову та навпаки. В тих випадках, коли потрібно забезпечити високу продуктивність таких перетворень, доцільно використовувати спеціальні перетворювачі комбінаційного типу.Розглянемо побудову комбінаційних перетворювачів з десяткової системи числення у двійкову.Нехай задано 3-розрядне десяткове число: /,де /.Позначимо / тетраду двійково-десяткового представлення X, а вагу кожного десяткового розряду в попередньому вираженні представимо як суму цілих степенів числа 2:/Відкривши дужки та згрупувавши доданки по степеням числа 2, отримаємо/Таким чином, молодший розряд числа в двійковій системі /, рівний цифрі / десяткового представлення, другий розряд /визначається двійковою
сумою / і / третій / сумою / і переносу з другого розряду.Структура перетворювача, побудованого на основі двійкових одно розрядних суматорів та напівсуматорів, показана на рис./
Рис.3.1.Структура перетворювача на основі суматорів
4. КОД ДЖОНСОНА
Код Джонсона — двійкова система числення, в якій два сусідні значення розрізняються лише в одному двійковому розряді.Принципи формування коду Джонсона:
1. Код Джонсона є кодом із надлишком, тобто для числа розрядів більше 2 в коді Джонсона для кодування деякого числа станів потрібне більше число розрядів, ніж в двійковому арифметичному коді.
2. Код Джонсона є захищеним від перешкод кодом. Це означає, що кожна подальша комбінація відрізняється від попередньої значенням лише одного розряду. У схемотехніці лічильників цю властивість усуває одночасне перемикання багатьох елементів, характерне для двійкових лічильників при деяких переходах. Одночасне перемикання багатьох елементів створює такі струмові імпульси в ланцюгах живлення схем, які можуть викликати збої в роботі схеми.
3. Код Джонсона є циклічним кодом. Тобто остання комбінація відрізняється від першої також значенням лише одного розряду.
4. Формування коду Джонсона здійснюється з боку правих у бік лівих розрядів, а введення кожного нового розряду здійснюється до тих пір, доки у всіх розрядах не стоятимуть одиниці. Після цього в тому ж порядку (з боку правих у бік лівих розрядів) заповнюються нулі до тих пір, поки лише в старшому розряді не залишиться одиниця.
Приклад. Чотирибітний код Джонсона.
0000
0001
0011
0111
1111
ВИСНОВКИ
Мікросхеми перетворювачів кодів (англ. сonverter) служать для перетворення вхідних двійкових кодів у вихідні двійково-десяткові і навпаки вхідних двійково десяткових кодів у вихідний двійковий.
Код Грея – непозиційний код з одним набором символів (0 и 1) для кожного розряду. Таким чином, на відміну від римської системи числення число в коді Грея не являєтся сумою цифр. Щоб показати відповідність послідовності чисел коду Грея можна скористатися таблицею, але є і відповідне правило побудови цієї послідовності.
До переваг коду Грея відносять: зручність кодування кутових переміщень, простота кодуючої логіки, скорочення часу перетворення у зв'язку із зміною значення тільки одного розряду, висока ефективність захисту від збоїв.
Недоліками коду Грея є ускладнення при виконанні арифметичних операцій і цифро-аналогових перетворень. Тому при необхідності код Грея перетворюють в двійковий код.
Код Джонсона — двійкова система числення, в якій два сусідні значення розрізняються лише в одному двійковому розряді.
Код Джонсона є циклічним кодом. Тобто остання комбінація відрізняється від першої також значенням лише одного розряду.
.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Бірюков С.А. Цифрові пристрої на МОП-інтегральнихмікросхемах / Бірюков С.А. .- М.: Радіо і зв'язок, 2007 .- 129с.: Іл. .- (Масоварадіобібліотека; Вип.1132).
2. Букрєєв І.М. Мікроелектронні схеми цифрових пристроїв / Букрєєв І.М. , Горячев В.І., Мансуров Б.М. .- 3-е изд., Перераб. і доп. .- М. : Радіо і зв'язок, 2009 .- 416с.
3. Гольденберг Л.М. Цифрові пристрої на інтегральних схемах в техніці зв'язку / Гольденберг Л.М., Бутільскій Л.М., Поляк М.М. .- М: Зв'язок, 2009 .- 232с.
4. Шило В.Л. Популярні цифрові мікросхеми: Довідник / Шило В.Л. .- М.: Металургія, 2008 .- 349с. .- (Масоварадіобібліотека; Вип.1111).
5. Цифрові та аналогові системи передачі: Підручник для вузів / Іванов В.І., Гордієнко В.М., Попов Г.Н. та ін; Підред.Іванова В.І. .- М.: Радіо і зв'язок, 2007 .- 232с.: Іл. .- Бібліогр.: С.229-230 .- ISBN 5-256-01226-6.
6. Букрєєв І.М. Мікро електронні схеми цифрових пристроїв / Букрєєв І.М., Мансуров Б.М., Горячев В.І. .- 2-е вид., Перераб.і доп. .- М.: Сов.радіо, 2008 .- 368с.: Іл. .- Бібліогр.: С.364-366.