- •Кафедра спеціалізованих комп’ютерних систем
- •Пояснювальна записка до дипломної роботи
- •Загальна частина
- •Аналіз способів кодування інформації
- •1.2. Перевірка парності
- •1.3.1. Вимоги складності
- •1.3.2. Двійкова арифметика без урахування переносів
- •1.4 Код хеммінга
- •1 Біт перевіряє біти 1,3,5,7,9,11,13,15,17,19,21.
- •001011100000101101110 Вийде 001001100000101101110
- •1.5 Код Ріда - Соломона
- •2. Спеціальна частина
- •2.1 Розробка пристрою кодування інформації методом ХемМінга
- •2.2 Розробка пристрою декодування інформації методом Хемінга
- •2.3 Реалізація кодерА - декодера на базі імс к555вж1
- •2.3.1 Цоколевка імс к555вж1 (sn74ls630)
- •2.3.2 Розробка принципової схеми пристрою
- •2.3.3 Принцип роботи пристрою
- •3. Економічна частина
- •4 Охорона праці та техніки безпеки
- •4.1 Потенційно небезпечні та шкідливі виробничі фактори
- •4.2 Забезпечення електробезпеки
- •4.3 Забезпечення санітарно-гігієнічних вимог до приміщень навчальних лабораторій
- •4.4 Протипожежний захист
- •Висновок
- •Список використанної літератури
2.2 Розробка пристрою декодування інформації методом Хемінга
Рис.2.5 — Схема декодера
Схема декодера складається з трьох основних блоків: блоку аналізу, блоку керування і блоку виправлення. Декодер здійснює декодування з виправленням помилки, що сталася.
На шину даних виставляється 32 бітне слово, яке доповнюється 6-ма бітами контрольних розрядів, тобто загалом отримуємо 38 бітний код. Він надходить до блоку аналізу, де пройшовши алгоритми перевірки генерує запит на сингали керування і одночасно надходить до блоку виправлення. Згідно керуючих сингалів у блоці виправлення відбувається декодування коду відносно контрольних розрядів та алгоритму виправлення. Виправлене декодоване слово з розрядністю в 32 біти виставляться на шину даних, таким чином отримавши вхідне слово без пошкоджень.
Рис.2.6 — Схема блоку аналізу
Блок аналізу за допомогою блоків KR1, KR2, KR4, KR8, KR16 і KR32 заново перевіряє парність вище згаданих розрядів і за допомогою шести елементів виключне АБО порівнює їх з контрольними розрядами, що прийшли по шині. Якщо контрольні розряди порушені, то формуються 6 сигналів помилки, які передаються в блок керування. Так само блок аналізу вилучає з 38-ми бітного слова біти парності і передає 32-х бітне слово в блок виправлення.
Рис.2.7 — Схема блоку керування
Блок керування являє собою дешифратор 6/32, зібраний на базі елементів І. Згідно з комбінацією вхідних сигналів, блок управління активує той чи інший керований інвертор блоку виправлення.
Рис.2.8 — Схема блоку виправлення помилок
Блок виправлення безпосередньо проводить виправлення слова, що прийшло із блоку аналізу згідно з сигналами блоку керування. Він являє собою 32-а керованих інвертора, на інформаційні входи яких подається слово з помилкою, а на керуючі входи – код з блоку керування. Згідно з поданим сигналом активується той чи інший інвертор, який і виправляє помилку, і слово виводиться з дешифратора.
Рис.2.9 — Схема керованого інвертора
Керований інвертор зібраний на базі двох елементів НІ, елемента І, та елемента виключне АБО-НІ. Є безпосередньо виконавцем виправлення помилки. Його таблиця істинності наведена нижче.
Табл.2.1 — Таблиця істинності керованого інвертора
Вхід |
Сигнал керування |
Вихід |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
2.3 Реалізація кодерА - декодера на базі імс к555вж1
Рис.2.10 — Блок-схема кодера-декодера
32-х бітне слово розділяється на два слова по 16 біт. Далі кожна з половин потрапляє в свій 16-бітный кодер. Генеруються контрольні біти, і на лінію передачі виводяться два 22-х бітних модифікованих кода Хеммінга. На лінії передачі є досить висока вірогідність внести помилку. Далі кожен 22-х бітний код зчитується своїм декодером. Перевіряється на наявність помилок. Якщо знайдені помилки, вони виправляються, і виводяться два слова по 16 біт, які і складають передане 32-х бітне слово.
2.3.1 Цоколевка імс к555вж1 (sn74ls630)
Рис.2.11 — Цоколевка ІМС К555ВЖ1 (SN74LS630)
• D0-D15 - входи/виходи даних;
• CB0-CB5 - входи/виходи синдрому;
• S0, S1 - входи керування;
• SEF - прапор помилки;
• DEF - прапор невиправляємої помилки.
• Всі виходи з трьома станами
Схема використовує модифікований код Хеммінга, щоб генерувати 6-бітовий синдром для 16 розрядного слова. Завдяки цьому, одиночні помилки схемою виправляються; подвійні помилки, а також помилки типу всіх нулів або всіх одиниць тільки виявляються, потрійні та більші помилки можуть бути не виявлені. У випадку подвійної помилки, обидва неправильні біта можуть бути в слові пам'яті, обидві в слові синдрому, або по одному біту в слові пам'яті і слові синдрому. Протягом циклу запису, схема формує 6-розрядне перевірочне слово з 16 розрядного слова даних. Корекція помилки виконується ідентифікацією неправильного біта та його інверсією. Коли виправлене слово видається з порту даних, з порту CBi видається синдром, який вказує на неправильний біт.
Табл. 2.2 – Функції схеми виправлення помилок
Цикл пам'яті |
Входи керування |
Функції ІМС |
Шина даних |
Шина синдрому |
Прапори помилок |
||
S0 |
S1 |
SEF |
DEF |
||||
Write (Запис) |
Low (низький) |
Low (низький) |
Генерувати контрольне слово |
Вхідні дані |
Вихідне контрольне слово |
Low (низький) |
Low (низький) |
Read (Зчиту-вання) |
High (високий) |
Low (низький) |
Зчитувати дані та контрольне слово |
Вхідні дані |
Вхідне контрольне слово |
Low (низький) |
Low (низький) |
Read (Зчиту-вання) |
High (високий) |
High (високий) |
Замкнути і дозволити прапори |
Замкнуті дані |
Замкнуте контрольне слово |
Дозволено |
|
Read (Зчиту-вання) |
Low (низький) |
High (високий) |
Виправляти дані та генерувати синдром |
Вихідні виправ-лені дані |
Вихідний синдром |
Дозволено |
Табл. 2.3 – Таблиця помилок
Контрольне слово |
16-розрядне слово даних |
|||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
CB0
|
● |
● |
|
● |
● |
|
|
|
● |
● |
● |
|
|
● |
|
|
CB1
|
● |
|
● |
● |
|
● |
● |
|
● |
|
|
● |
|
|
● |
|
CB2
|
|
● |
● |
|
● |
● |
|
● |
|
● |
|
|
● |
|
|
● |
CB3
|
● |
● |
● |
|
|
|
● |
● |
|
|
● |
● |
● |
|
|
|
CB4
|
|
|
|
● |
● |
● |
● |
● |
|
|
|
|
|
● |
● |
● |
CB5
|
|
|
|
|
|
|
|
|
● |
● |
● |
● |
● |
● |
● |
● |
Табл. 2.4 – Виправлення
Загальне число помилок |
Прапори помилок |
Виправлення даних |
||
16-бітові дані |
6-бітове контрольне слово |
SEF |
DEF |
|
0 |
0 |
Low (низький) |
Low (низький) |
Не застосовується |
1 |
0 |
High (високий) |
Low (низький) |
Корекція |
0 |
1 |
High (високий) |
Low (низький) |
Корекція |
1 |
1 |
High (високий) |
High (високий) |
Переривання |
2 |
0 |
High (високий) |
High (високий) |
Переривання |
0 |
2 |
High (високий) |
High (високий) |
Переривання |
Табл. 2.5 – Синдроми помилок
Комірка помилки |
Код синдрому помилки |
|||||
CB0 |
CB1 |
CB2 |
CB3 |
CB4 |
CB5 |
|
D0 |
Low (низький) |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
D1 |
Low (низький) |
High (високий) |
Low (низький) |
Low (низький) |
High (високий) |
High (високий) |
D2 |
High (високий) |
Low (низький) |
Low (низький) |
Low (низький) |
High (високий) |
High (високий) |
D3 |
Low (низький) |
Low (низький) |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
D4 |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
D5 |
High (високий) |
Low (низький) |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
D6 |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
Low (низький) |
High (високий) |
D7 |
High (високий) |
High (високий) |
Low (низький) |
Low (низький) |
Low (низький) |
High (високий) |
D8 |
Low (низький) |
Low (низький) |
High (високий) |
High (високий) |
High (високий) |
Low (низький) |
D9 |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
Low (низький) |
D10 |
Low (низький) |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
D11 |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
D12 |
High (високий) |
High (високий) |
Low (низький) |
Low (низький) |
High (високий) |
Low (низький) |
D13 |
Low (низький) |
High (високий) |
High (високий) |
High (високий) |
Low (низький) |
Low (низький) |
D14 |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
Low (низький) |
Low (низький) |
D15 |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
Low (низький) |
Low (низький) |
CB0 |
Low (низький) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
CB1 |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
CB2 |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
High (високий) |
CB3 |
High (високий) |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
High (високий) |
CB4 |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
Low (низький) |
High (високий) |
CB5 |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
Low (низький) |
Помилка відсутня |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |
High (високий) |