Принципи організації та робота послідовної шини USB

Основні причини виникнення помилок в збережених даних. Базові принципи Побудова та функціонування алгоритмів розпізнавання та виправлення помилок в кодових послідовностях на прикладі простих кодів Хемінга. Функціональні можливості послідовної шини USB.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 02.10.2010
Размер файла 224,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

2

Курсова робота

на тему

"Принципи організації та робота послідовної шини USB"

Завдання до курсової роботи

Згідно з номером свого варіанта виконати курсову роботу у слідкуючій послідовності:

1. Розкрити тему - принципи організації та робота послідовної шини USB.

2. Розкрити тему "Представлення даних в ЕОМ".

3. Використовуючи таблицю ASCII кодів перекладіть своє прізвище або ім'я (але менш аніж 5 літер) у послідовність цифр 16-річної системи числення, а потім у послідовність двійкових біт.

4. Користуючись викладеним теоретичним матеріалом доповніть послідовність двійкових біт бітами коду Хемінга.

5. Змініть значення N-ного біту отриманої послідовності на протилежне та покажіть можливість його відновлення (де N - це ваш номер за журналом академічної групи). У доповнення до N-того біту також змініть на протилежне значення (35 - N) біту. Чи є можливість тепер відновити інформацію? Наведіть пояснення.

6. Написати програму, яка дозволяє кодувати слова довжиною до 10 літер за схемою "ASCII-код > двійковий код > код Хемінга".

7. Написати програму, яка дозволяє знаходити одну помилку в двійковій послідовності коду Хемінга та відновлювати її. Програма також має бути спроможною робити перетворення за схемою "код Хемінга > двійковий код > ASCII-код". Перевірте її роботу, застосовуючи результати з попереднього завдання.

Реферат

Помилки у збережених даних можуть виникати з різних причин. Наприклад, сплеск напруги електроживлення обумовлює помилки в оперативній пам'яті, а порушення властивостей магнітного носія при нагріванні, електромагнітному або механічному впливі веде до зміни збереженої інформації на дисках, дискетах і магнітній стрічці. Для захисту від таких помилок використовуються коди, що можуть виявляти та виправляти помилки. При цьому кожному слову в пам'яті особливим образом додаються додаткові біти. Коли слово зчитується додаткові біти застосовуються для перевірки наявності помилок. Такі коди використовують збереження цілісності даних.

Для практичного застосування і розуміння суті збереження даних в пам'яті комп'ютера необхідне усвідомлення кола завдань, які можуть бути вирішені за допомогою кодів Хемінга. Для цього необхідним є розуміння базових принципів побудови та функціонування алгоритмів розпізнавання та виправлення помилок в кодових послідовностях.

Предметом розгляду даної курсової роботи є коди Хемінга - принципи функціонування у поєднанні з функціональними можливостями на прикладі простих кодів Хемінга.

Курсова робота містить 45 сторінок друкованого тексту, 9 малюнків, 9 таблиць, 1 формулу, та 1 додаток. Використано 12 літературних джерел.

Текст документу набрано та відформатовано за допомогою текстового процесора Word 2007 фірми Microsoft.

Ключові слова: запам'ятовуючий пристрій, нагромаджувач, елемент пам'яті, кеш-пам'ять, пам'ять з прямою адресною вибіркою, субмікронна технологія, швидкодія.

Зміст

  • Вступ
    • 1. Теоретична частина
    • 1.1 Принципи організації та робота послідовної шини USB
    • 1.2 Представлення даних в ЕОМ
    • 2. Практична частина
    • 2.1 Переклад Символів імені у послідовність цифр 16-річної системи числення
    • 2.2 Доповнення послідовності двійковими бітами коду Хемінга
    • 2.3 Заміна на протилежне значення біту і можливість його виправлення
    • 2.4 Написання програми кодування слова
    • Висновки
    • Літературні джерела
    • Додатки

Перелік умовних позначень, символів і нестандартних скорочень

АЛП - арифметико-логічний пристрій

ASCII - American Standard Code for Information Interchange - американський стандартний код для обміну інформацією

ВІС - висока ступінь інтеграції

Unіversal Serіal Bus - універсальна послідовна шина

Devіce - пристрій

Compound Devіce - комбінація пристроїв

Logіcal Devіce - логічний пристрій

Host Controller - хост-контроллер

Hub - Хаб (концентратор)

Upstream Port - висхідний порт

Downstream Ports - спадні порти

Root Hub - корнєвій хаб

ПП - периферійний пристрій

DMA - Dіrect Memory Access

DRAM - Dynamic Random Access Memory - динамічна пам'ять із довільним доступом.

ЗП - запам'ятовуючий пристрій

ЕОМ - електронно-обчислювальна машина

ЕП - елемент пам'яті

ЛЗЗ - лінії запису-зчитування

ОЗП - оперативний запам'ятовуючий пристрій

ППЗП - перепрограмованою запам'ятовуючий пристрій

ПК - персональний комп'ютер

ША - шина адреси (адресна шина)

ШД - шина даних

ШК - шина керування

КП - кеш-пам'ять

Вступ

Інформація як відомості про об'єкт або явище відображається у вигляді конкретних даних, що представлені у буквенно-цифровій, числовій, текстовій, звуковій, графічній або іншій зафіксованій формі. Дані можуть передаватися, оброблятися, зберігатися.

Інформацію (повідомлення) можна виразити в різноманітних формах: від природних для людини сигналів (звуків, жестів) до їх письмових позначень. Наочним прикладом перетворення форми подання інформації може бути переклад з однієї природної мови спілкування на іншу. Для запису слів використовується алфавіт - набір символів, що дозволяє кожному слову поставити у відповідність визначену послідовність символів - літер, тобто можна сказати, що кожне слово кодується.

Залежно від того, де і яким чином представляється інформація, використовується відповідне кодування. Так для запису (кодування) чисел в десятковій системі числення використовуються 10 символів. Для запису слів - літери.

Для кодування інформації в комп'ютері найзручніше (з технічних причин) використовувати мову, алфавіт якої містить всього два символи. Їх умовно позначають нулем та одиницею, а мову цю називають мовою двійкових кодів. За допомогою цих символів можна представити все розмаїття інформації. Одиницею виміру інформації є біт - він позначає „місце”, на яке можна „записати" 0 або 1.

В комп'ютерах інформація кодується відповідно до алфавіту двійкових чисел - кодової таблиці. За загальноприйнятим стандартом ASCII (американський стандарт для обміну інформацією) кодами від 32 до 127 записуються цифри та літери англійського алфавіту, з 128 символу - кодування символів національних алфавітів, деяких математичних знаків тощо.

При кодуванні відбувається перетворення елементів даних у відповідні їм числа - кодові символи. Кожному елементу відповідає унікальна сукупність кодових символів, яка називається кодовою комбінацією. Множина можливих кодових символів називається кодовим алфавітом, а їхня кількість m - є основою коду.

Щоб із закодованої послідовності символів отримати інформацію, треба знати принцип кодування алфавіту, тобто знати, що означає кожен символ. І якщо ми маємо такий алфавіт, то процес отримання інформації із закодованої називається декодуванням.

У сучасному світі збереження інформації відіграє дуже важливу роль. Методи кодування і декодування являють собою інструменти, за допомогою яких інформація перетинає кілометри різної відстані, не втрачаючи первинний образ. Таким чином, на даному етапі розвитку сучасних технологій у сфері збереження інформації, на перший план виходять методи і принципи підвищення конфіденційність і збереження даних.

У даній курсовій роботі розглядаються питання, що до основних принципів і методів організації пам'яті комп'ютера та представлення в ній даних. Також піднімаються питання практичного усвідомлення процесів кодування, декодування та виправлення помилок у кодах даних.

1. Теоретична частина

1.1 Принципи організації та робота послідовної шини USB

Збільшення числа пристроїв, що підключають до персонального комп'ютера, і, відповідно, розвиток зовнішніх інтерфейсів привело до досить неприємної ситуації: з одного боку, комп'ютер повинен мати безліч різних рознімань, а з іншого боку - більша частина з них не використається. Така ситуація визначається історичним розвитком інтерфейсів ПК - кожен інтерфейс мав своє спеціалізоване рознімання. Наприклад, до послідовного порту можна підключити миша або модем, до паралельного - принтер або сканер, для клавіатури стало необхідно мати два порти - старий клавіатурний й PS/2 і т.д. Більше того, до одного порту можна підключити тільки один пристрій (якщо не вважати підключення "прозорих" ключів захисту, але це, скоріше, виключення). Крім цієї проблеми, численність різноманітних підключень додає й інші "радості":

практично для кожного із пристроїв необхідне виділення апаратного переривання (ІRQ);

більша частина пристроїв вимагає наявності зовнішнього блоку харчування;

кожен пристрій має своїм, придуманим розроблювачем, протокол обміну, багаторазово збільшуючи необхідну кількість драйверів, як у пам'яті, так й в інсталяції операційної системи;

конфігурування величезного числа пристроїв, багато хто з яких не підтримують специфікації Plug and Play, - практично нездійсненна робота для звичайного користувача;

величезне число різноманітних шлейфів, що тягнуться від комп'ютера, перетворює його перестановку в складну проблему.

Природно, що виробники комп'ютерного "заліза" задумалися про створення єдиного й універсального інтерфейсу. На початку 1996 року була опублікована версія 1.0 нового інтерфейсу, названого USB, а восени 1998 - специфікація 1.1, що виправляє проблеми, виявлені в першій редакції. Навесні 2000 року була опублікована версія 2.0, у якій предусматривалось 40-кратне підвищення пропускної здатності шини. Так, спецификации 1.0 й 1.1 забезпечують роботу на швидкостях 12 Мбіт/с й 1,5 Мбіт/с, а специфікація 2.0 - на швидкості 480 Мбіт/с. При цьому передбачається зворотна сумісність USB 2.0 з USB 1. x, тобто "старі" USB 1. x пристрою будуть працювати з USB 2.0 контролерами, щоправда, на швидкості 12 Мбіт/с. Швидкість 480 Мбіт/с досягається тільки при одночасному використанні USB 2.0 контролера й USB 2.0 периферії.

Споконвічно в групу розроблювачів входили компанії Compaq, DEC, ІBM, Іntel, Mіcrosoft., NEC й Northern Telecom, а потім кількість зацікавлених учасників сталася розширюватися. Шина USB розроблялася для забезпечення механізму взаємодії комп'ютерних і телефонних систем (CTІ, Computer Telephony Іntegratіon), однак незабаром члени комітету розробки зрозуміли, що USB може задовольнити потреби багатьох додатків і всі сфери комп'ютерної телефонії.

Розроблювачі шини орієнтувалися на створення інтерфейсу, що володіє наступними властивостями:

легко реалізоване розширення периферії ПК;

дешеве рішення, що дозволяє передавати дані зі швидкістю до 12 Мбіт/с (480 Мбіт/с для USB 2.0); П повна підтримка в реальному часі голосових, аудио - та відеопотоків;

гнучкість протоколу змішаної передачі ізохронних даних й асинхронних повідомлень;

інтеграція з пристроями;

охоплення всіляких конфігурацій і конструкцій ПК;

забезпечення стандартного інтерфейсу, здатного швидко завойовувати ринок;

створення нових класів пристроїв, що розширюють ПК.

Специфікація USB визначає наступні функціональні можливості

інтерфейсу:

простота використання для кінцевого користувача:

простота кабельної системи й підключень;

приховання подробиць електричного підключення від кінцевого

користувача;

пристрої, що самоідентифікуються, з автоматичним конфігуруванням;

динамічне підключення й переконфігурування периферійних пристроїв;

широкі можливості роботи:

пропускна здатність від декількох Кбайт/с до декількох Мбайт/з; підтримка одночасно як ізохронної, так й асинхронної передачі даних;

підтримка одночасних операцій з багатьма пристроями (mukіple connectіons);

підтримка до 127 пристроїв на шині; передача різноманітних потоків даних і повідомлень; підтримка складених пристроїв (тобто периферійний пристрій, що виконує кілька функцій); низькі накладні витрати передачі даних;

рівномірна пропускна здатність:

гарантована пропускна здатність і низькі затримки голосових й аудіоданих;

можливість використання всієї смуги пропущення; гнучкість:

підтримка різних розмірів пакетів, які дозволяють набудовувати функції буферизації пристроїв;

керування потоком (flow control) даних на рівні протоколу;

надійність:

контроль помилок й відновлення на рівні протоколу;

динамічне додавання й видалення пристроїв прозоро для конечного користувача;

підтримка ідентифікації несправних пристроїв;

виключення неправильного з'єднання пристроїв;

вигода для розроблювачів:

простота реалізації й впровадження;

об'єднання з архітектурою Plug and Play;

дешева реалізація:

дешеві канали зі швидкістю роботи до 1,5 Мбайт/с;

оптимізація для інтеграції з периферією;

застосовність для реалізації дешевої периферії;

дешеві кабелі й рознімання;

використання вигідних товарних технологій;

можливість простого відновлення.

Практично всі поставлені завдання були вирішені, і навесні 1997 року стали з'являтися комп'ютери, обладнані розніманнями для підключення USB - пристроїв.

У лютому 2004 року корпорація Іntel разом з Agere, Systems, HP, Mіcrosoft Corporatіon, NEC, Phіlіps Semіconductors й Samsung Electronіcs оголосила про створення групи Wіreless USB Promoter Group (група впровадження бездротового USB). У завдання консорціуму входить просування першої високошвидкісної технології для бездротового підключення зовнішніх пристроїв Wіreless USB на швидкості 480 Мбіт/з (що порівняно з характеристикою стандарту USB 2.0) з дальністю дії при низькому енергоспоживанні до 10 метрів.

Загальна архітектура шини.

Звичайна архітектура шини USB має на увазі підключення одного або декількох USB-пристроїв до комп'ютера (мал.1). Комп'ютер у такій конфігурації є головним керуючім пристроєм і називається хостом. Підключення пристроїв до хосту здійснюється за допомогою кабелів. Для з'єднання комп'ютера й використається хаб. Комп'ютер має настроєний хаб, називаний кореневим хабом.

Малюнок 1. Звичайна архітектура USB

Фізична й логічна архітектура шини.

Фізична архітектура USB-шини визначається наступними правилами (мал.2):

пристрої підключаються до хосту;

фізичне з'єднання пристроїв між собою здійснюється по топології багатоярусної зірки, вершиною якої є кореневий хаб;

центром кожної зірки є хаб;

кожен кабельний сегмент з'єднує між собою дві крапки: хост із хабом або функцією (див. далі), хаб з функцією або іншим хабом;

до кожного порту хаба може підключатися периферійний пристрій або інший хаб, при цьому допускається до 5 рівнів каскадування хабів, не вважаючи кореневого.

Малюнок 2. Фізична архітектура USB

Деталі фізичної архітектури сховані від прикладних програм і системному ПО, тому логічна архітектура виглядає як звичайна зірка, центром якої є прикладне ПО, а вершинами - набір кінцевих крапок (мал.3).

Малюнок 3. Логічна архітектура USB

Складові USB.

Шина USB складається з наступних елементів:

Хост-контроллер - це головний контролер, що входить до складу системного блоку комп'ютера й управляє роботою всіх пристроїв на шині USB. Для стислості ми будемо писати просто "хост". На шині USB допускається наявність тільки одного хоста. Системний блок персонального комп'ютера містить один або три хоста, кожний з яких управляє окремою шиною USB. Пристрій може являти собою хаб, функцію або їхню комбінацію.

Хаб - пристрій, що забезпечує додаткові порти на шині USB. Інакше кажучи, хаб перетворить один порт Upstream Port у безліч портів Downstream Ports. Архітектура допускає з'єднання декількох хабов (не більше 5). Хаб розпізнає підключення й відключення пристроїв до портів і може управляти подачею харчування на порти. Кожний з портів може бути дозволений або заборонений і зконфігурований на повну або обмежену швидкість обміну. Хаб забезпечує ізоляцію сегментів з низькою швидкістю від високошвидкісних. Хаб може обмежувати струм, споживаний кожним портом.

Корнєвій хаб (Root Hub) - це хаб, що входить до складу хоста. Функція (Functіon) - це ПП або окремий блок периферійного пристрою, здатний передавати й приймати інформацію із шини USB. Кожна функція надає конфігураційну інформацію, що описує можливості ПП й вимоги до ресурсів. Перед використанням функція повинна бути зконфігурована хостом - їй повинна бути виділена смуга в каналі й обрані опції конфігурації. Logіcal Devіce USB являє собою набір кінцевих крапок.

Приклади USB-пристроїв.

Звичайний USB-пристрій являє собою USB-функцію з портом для підключення. Типовими прикладами функцій є:

покажчики: миша, планшет, світлове перо;

пристрою уведення: клавіатура, сканер;

пристрою висновку: принтер, звукові стовпчики, монітор;

телефонний адаптер ІSDN;

флеш-диски.

Частий USB-пристрій має убудований хаб, що дозволяє підключати до нього інші пристрої.

Миша й клавіатура.

Підключення USB-миші може бути виправдане при необхідності звільнити дорогоцінний послідовний порт, наприклад, для підключення встаткування. Однак для миші залишається ще порт PS/2, тому USB-миша, взагалі ж, не дуже актуальний пристрій, за винятком можливості конфігурування частоти опитування (звичайна послідовна миша передає 40-60 пакетів даних у секунду, тоді як USB-миша можна зконфігурувати на значно більшу частоту), що оцінять аматори комп'ютерних ігор.

Використання USB-клавіатури, мабуть, цікаво тільки можливістю підключення USB-миші прямо до клавіатури, а також економією системних ресурсів.

Якщо вже ви вирішили використати USB-мишу або US У-клавіатуру, обов'язково встановите всі відновлення (servіce pack) для операційної системи. Без них із цими пристроями виникають проблеми. Наприклад, "чиста" Wіndows 2000 "губить" їх при виході зі сплячого режиму. Крім того, для використання їх у старих операційних системах, наприклад, в DOS, необхідно включати відповідну опцію в BІOS.

Монітори.

Багатьох користувачів персонального комп'ютера назва "USB-монітор" уводить в оману, що найчастіше будується на аналогії зі звуковими USB-колонками. Дійсно, USB-колонки не вимагають звукової карти, однак USB-монітор все-таки вимагає графічний адаптер (відеокарту). "USB" у назві означає наявність USB-портів, що дозволяють підключати USB-пристрою безпосередньо до монітора, а також можливість програмного конфігурування настроювань монітора по USB-інтерфейсі. При виборі монітора звертайте увагу на підтримку USB 2.0 і потужність USB-хаба, убудованого в монітор.

Перехідники USB-to-COM й USB-to-LPT.

Конвертери USB-to-COM й USB-to-LPT незамінні в тих випадках, коли послідовні й паралельні порти в системі вже зайняті (або "спалені", що з урахуванням відсутності на них гальванічної розв'язки досить актуально). Як треба з назви, ці пристрої дозволяють підключати до USB-порту пристрою з послідовним (миша, модем) і паралельним (принтер, сканер) інтерфейсами. Перехідник USB-to-COM буде також корисний користувачам ноутбуків, тому що в них є всього один послідовний порт.

Сканери.

Основний інтерес USB-сканера полягає, напевно, у відсутності зовнішнього харчування, що скорочує число необхідних розеток. Швидкість роботи таких сканерів нічим не відрізняється від звичайних, тому що основний визначальної є не швидкість передачі даних, а швидкість руху сканирующей голівки.

Модеми.

Розроблювачі USB не пройшли й повз модеми. Природно, такі модеми не вимагають зовнішнього харчування й працюють повністю від шини. З одного боку, це дозволило значно зменшити розміри самих модемів, але з інший, такі модеми мають всі достоїнства й недоліки програмних модемів (soft modem). На багатьох USB-модемах виробники зменшили число індикаторів стану або використають програмне відображення, що не дуже, зручно.

Звукові стовпчики.

На відміну від моніторів, приставка "USB" для звукових стовпчиків означає більше глобальні зміни в пристрої. USB-колонки не вимагають звукової карти, а перетворення сигналу в аналоговий відбувається в самих колонках через убудований аналого-цифровий перетворювач. Важливо! Варто відрізняти поняття "USB-стовпчика" від "стовпчика з харчуванням від USB" ("USB Powered" або "Powered Speaker"). Другий варіант являє собою звичайні стовпчики, що вимагають звукової карти, але без окремого блоку харчування. Крім наклейки, їх можна відрізнити за додатковим розніманням до звукової карти. При підключенні до шини такі стовпчики навіть не зорієнтуються системою як новий пристрій.

Деякі труднощі можуть виникнути при відтворенні музичних дисків: прослуховувати диски стандарту CD-DA можливо тільки тоді, коли в CD-ROM є підтримка Dіgіtal Playback (цифрове програвання). Якість звуку, одержувана при використанні USB-стовпчиків, значно вище, ніж із застосуванням звичайних стовпчиків разом з більшістю звукових карт. Єдине обмеження - комп'ютер повинен мати достатню продуктивність для забезпечення безперервного потоку даних на стовпчики, інакше будь-який рух миші здатний привести до зникнення звуку. Слід зазначити, що потік даних, переданих на USB-стовпчики, досить великий, що створює помітний трафік від комп'ютера до стовпчиків. Із цієї причини рекомендується підключення стовпчиків безпосередньо до комп'ютера або до найближчого хабу.

Флеш-диски.

Флеш-диски з USB-інтерфейсом претендують стати сучасним аналогом дискет. Сполучаючи всі переваги дискет, вони мають значні переваги:

флеш-диск можна підключити практично до будь-якого сучасного комп'ютера без вимикання;

диск може бути завантажувальним;

спеціальний перемикач дозволяє заблокувати запис на диск, і він буде доступний тільки для читання;

підтримується практично всіма операційними системами;

швидкість запису перевищує запис на дискету, хоча й повільніше звичайного жорсткого диска;

відсутня вічна проблема дискет - збійні сектори;

ударостійкість близько 1000 G (значно більше будь-якого сучасного жорсткого диска);

час зберігання даних - не менш 10 років;

число циклів запису - не менш мільйона;

обсяг диска значно більше звичайної дискети: якщо дискета вміщає 1,2 Мбайт, то флеш-диск уміщає 64, 128 або 256 Мбайт.

Передача даних.

Інтерфейс USB надає розроблювачеві безліч можливостей, рятуючи його від самостійної реалізації байтових протоколів обміну, підрахунку контрольних сум й інших турбот, необхідних для забезпечення надійного зв'язку із пристроями.

Принципи передачі даних.

Механізм передачі даних є асинхронним і блоковим. Блок переданих даних називається VSB-фреймом або USB-кадром і передається за фіксований часовий інтервал. Оперування командами й блоками даних реалізується за допомогою логічної абстракції, названої каналом. Зовнішній пристрій також ділиться на логічні абстракції, називані кінцевими крапками. Таким чином, канал є логічним зв'язуванням між хост-контроллером і кінцевою крапкою зовнішнього пристрою. Канал можна зрівняти з відкритим файлом.

Для передачі команд (і даних, що входять до складу команд) використається канал за замовчуванням, а для передачі даних відкриваються або потокові канали, або канали повідомлень.

Механізм переривань.

Для шини USB сьогодення механізму переривань (як, наприклад, для послідовного порту) не існує. Замість цього хост-контроллер опитує підключені пристрої на предмет наявності даних про переривання. Опитування відбувається у фіксовані інтервали часу, звичайно кожні 1-32 мс. Пристрою дозволяється посилати до 64 байт даних. З погляду драйвера, можливості роботи з перериваннями фактично визначаються хост-контроллером, що і забезпечує підтримку фізичної реалізації USB-інтерфейсу.

Можливість прямого доступу до пам'яті.

Пристрою USB-шини не мають прямого доступу до системної пам'яті DMA. Вони ізольовані від системних ресурсів USB-інтерфейсом хост-компьютера й не підтримують способу DMA передачі даних у звичному змісті. Проте, USB-інтерфейс хост-компьютера забезпечує "ілюзію" підтримки DMA для логічних каналів, що забезпечують доступ до кінцевих крапок усередині підключених до шини пристроїв. У міру одержання даних від підключених USB-пристроїв інтерфейс хост-контроллера використає DMA-доступ для того, щоб помістити отримані із пристрою дані в системну пам'ять,

Режими передачі даних.

Пропускна здатність шини USB, що відповідає специфікації 1.1, становить 12 Мбит/с (тобто 1,5 Мбайт/с). Специфікація 2.0 визначає шину із пропускною здатністю 400 Мбайт/с. Смуга пропущення ділиться між всіма пристроями, підключеними до шини. Шина USB має три режими передачі даних (табл.1):

низькошвидкісний (LS, Low-speed);

повношвидкісний (FS, Full-speed);

високошвидкісний (HS, Hіgh-speed, тільки для USB 2.0).

Таблиця 1. Категорії USB-пристроїв по необхідній продуктивності

Категорія

Пристрої

Властивості

Низькошвидкісні 1,5 Мбіт/с

Діалогові пристрої:

клавіатура;

миша;

світлове перо;

ігрові приставки.

низька вартість, простота використання "гарячого" підключення/відключення, підключення декількох пристроїв до одного порту

Повношвидкісні 12 Мбіт/с

Голосовий, аудіо - та стислий відеопотік:

телефонна станція;

широкополосна мережа;

пристрій звукозапису мікрофон.

всі властивості низькошвидкісної категорії,

гарантована смуга пропущення,

гарантована величина запізнювання

Високошвидкісні до 480 Мбіт/с (тільки для USB 2.0)

Відео - та дискові накопичувачі:

відеокамери;

USB-диски;

пристрою резервного копіювання.

всі властивості повношвидкісної категорії,

висока смуга пропущення

1.2 Представлення даних в ЕОМ

Електронні схеми комп'ютера будуються на цифрових (дискретних) логічних елементах, які можуть перебувати в двох стійких станах. Носієм інформації в комп'ютері є напруга, яка може мати високий (high) або низький (low) рівні. Високий рівень напруги називається логічною одиницею, а низький - логічним нулем.

Числові величини комп'ютері (в тому числі коди символів) представлені в двійковій позиційній системі числення (системі числення з основою 2) Це означає, що для запису будь-якого числа можуть використовуватися лише дві цифри 0 та 1. Двійкова цифра має назву біт. Кожен біт може приймати значення 0 або 1, які в роботі електронних схем представляються відповідно низьким (low) та високим (high) рівнями напруги. Використання двійкової позиційної системи числення зумовлене простотою реалізації логічних елементів, здатних працювати з двійковою інформацією.

Одиницею інформації в комп'ютері є один біт. Один біт може приймати лише одне з двох можливих значень, а тому не може бути використаний для представлення великої кількості інформації. Для представлення чисел довільної величини використовується комбінація з 8 біт - байт (Byte). Один байт може зберігати числове значення в межах від 0 до 255. При необхідності представлення чисел більшої величини використовується комбінація двох (машинне слово - Word), чотирьох (подвійне машинне слово - Double Word) байт.

Комп'ютер може маніпулювати інформацією на рівні байтів, тобто одиницею інформації, з якою працюють підсистеми комп'ютера є комбінація з восьми біт.

Будь-яка інформація в комп'ютері представлена числовими величинами. Кожному текстовому або псевдографічному символу ставиться у відповідність числовий код ASCII в межах від 0 до 255, тобто текстові значення трансформуються в послідовність числових кодів, розмірністю 1 байт, кожен з яких представляє один з символів.

В основу функціонування комп'ютера покладено принцип програмного керування Чарлза Беббіджа. Цей принцип передбачає наявність обчислювача та програми. Обчислювач - пристрій, який здатний здійснювати над даними елементарні операції, виконання яких в необхідній послідовності приводить до потрібного результату. Такі елементарні операції називаються командами або інструкціями обчислювача. Послідовність команд (інструкцій) називається алгоритмом, а представлення цієї послідовності в формалізованому вигляді, придатному для виконання обчислювачем (т. з. машинне представлення) - програмою обробки. В процесі обробки дані, які підлягають перетворенню, та програма керування процесом перетворення, повинні знаходитись в пам'яті комп'ютера. Для занесення програми і даних до пам'яті призначені пристрої вводу-виводу.

Враховуючи вищенаведене, спрощена структурна схема комп'ютера набуває вигляду:

Малюнок 4. Структурна схема комп'ютера.

На даній схемі (мал.4) зображено основні компоненти комп'ютера:

CPU (Central Processing Unit) - центральний процесор;

MM (Memory Module) - модуль пам'яті;

IOD (Input\Output Devices) - пристрої вводу-виводу.

Широкими стрілками зазначені інформаційні зв'язки між структурними елементами, тобто можливі шляхи транспортування інформації. Тонкі стрілки відображають зв'язки керування та підзвітності пристроїв.

Модуль пам'яті реалізує функції тимчасового збереження даних та кодів команд програми в процесі виконання останньої. Взаємодія центрального процесора з пам'яттю забезпечується можливістю виконання двох операцій: читання з пам'яті - дані, що зберігаються в пам'яті стають відомими центральному процесору, та запису до пам'яті - результати роботи центрального процесора можуть бути занесенні до пам'яті з метою тимчасового їх зберігання.

Взаємодія користувача з комп'ютером здійснюється через пристрої вводу-виводу. Пристрої вводу-виводу надають можливість останньому здійснювати керівництво процесом виконання програми, а також забезпечують вивід (відображення) результатів роботи в зручному для користувача форматі (оскільки двійкова форма представлення результатів роботи не є найзручнішою для сприйняття людиною).

Центральний процесор відіграє в системі роль обчислювача і реалізує виконання програми обробки даних, що знаходяться в пам'яті; програма перед запуском також розміщується в пам'яті. Процес обробки даних полягає в послідовному читанні центральним процесором з пам'яті команд програми із наступним їх виконанням над даними і формуванням проміжних (тимчасових) результатів. Виконання у необхідному порядку сукупності операцій, описаних програмою приводить до правильного результату, який є метою здійснення обчислень.

Кожна команда програми, представлена в пам'яті в двійковому форматі, є однією із набору команд, які можуть бути виконані центральним процесором. Множина команд центрального процесора називається його операційним ресурсом. Команди, що не входять до операційного ресурсу процесора, останнім не виконуються; при цьому робота програми аварійно завершується. Принцип програмного керування Беббіджа реалізується апаратно-програмною моделлю обчислювача, яка використовує цикл керування Дж. Фон-Неймана. (Мал.5).

Даний цикл розбиває процес виконання команди на чотири етапи (фази):

1. Вибірка команди з пам'яті;

2. Декодування команди;

3. Інкримент лічильника команд;

4. Збереження результату;

До операційного ресурсу процесора входять команди, які не формують результату (наприклад - порожня операція (No OPeration - NOP)), а тому фаза 4 може бути пропущена.

Малюнок 5. Цикл керування Фон-Неймана.

Доведено, що для реалізації довільного алгоритму достатньо операційного ресурсу, до якого входять лише 4 команди:

пересилка даних з комірки в комірку;

інкримент (або дикремент) лічильника;

умовний перехід по співпаданню слів;

безумовна зупинка.

Операційний ресурс реальних процесорів складається зі 100-400 команд, що значно спрощує процес програмування. Пам'ять комп'ютера (мал.6) представлена у вигляді неперервного масиву комірок, кожна з якої може зберігати один байт інформації. Кожній комірці пам'яті ставиться у відповідність її номер в масиві. Комірки нумеруються, починаючи з нуля; номер комірки називається адресою, а кількість комірок в масиві називається розміром або об'ємом пам'яті в байтах.

Пам'ять комп'ютера реалізує три основні функції: прийняття даних (запис інформації), видача даних (читання інформації) та збереження інформації. Процес читання або запису з\до пам'яті називається зверненням або доступом до пам'яті.

Малюнок 6. Логічна організація пам'яті.

Пам'ять комп'ютера реалізує три основні функції: прийняття даних (запис інформації), видача даних (читання інформації) та збереження інформації. Процес читання або запису з\до пам'яті називається зверненням або доступом до пам'яті.

Модуль пам'яті забезпечує звернення (доступ) до будь-якої комірки пам'яті в межах масиву, при цьому ідентифікація комірки, до якої здійснюється звернення, реалізується шляхом безпосереднього вказування її номера в масиві, тобто адреси.

Для вказування адреси використовується набір ліній електричного зв'язку, за кожною з яких передається одна двійкова цифра адреси шляхом встановлення низького або високого рівня напруги. Така сукупність ліній електричного зв'язку, які несуть сигнали одного функціонального призначення, називається шиною. Набір ліній, призначених для встановлення адреси комірки пам'яті, нашивається шиною адреси або адресною шиною. Кількість лінй в наборі називається шириною або розрядністю шини і повинна бути достатньою для адресації всіх комірок пам'яті в масиві.

В загальному випадку розрядність адресної шини, яка необхідна для адресації всіх комірок модуля пам'яті заданого об'єму, визначається формулою 1.

(1),

де N -кількість комірок в модулі (об'єм модуля пам'яті).

До складу модуля пам'яті входить спеціальна електронна схема, яка називається дешифратором адреси. Дешифратор адреси аналізує адресу, встановлену на адресній шині і однозначно визначає комірку пам'яті, до якої має місце звернення.

Запис та читання даних реалізуються за допомогою шини даних - набору ліній електричного зв'язку, за кожною з яких передається один біт інформації. Кількість ліній в наборі називається шириною або розрядністю шини даних і має бути не меншою 8 (для передачі одного байту інформації).

Центральний процесор (далі по тексту - мікропроцесор або процесор) є ядром комп'ютера і забезпечує виконання програми, розміщеної в оперативній пам'яті. Процес виконання полягає в послідовному читанні кодів команд програми з пам'яті із наступним їх виконанням.

Структурна схема мікропроцесора наведена на мал.7.

Малюнок 7. Структурна схема мікропроцесора.

АЛП реалізує процес виконання команд та збереження проміжних результатів цього процесу. До його складу входять блок регістрів - регістрова пам'ять та електронні схеми додавання (суматор), множення (помножувач) та виконання порозрядних (логічних) операцій. Кожна з таких електронних схем має одночасний доступ до інформації двох регістрів регістрової пам'яті, а результат роботи схеми може бути зафіксований в будь-якому із цих регістрів.

В процесі виконання команди АЛП керується послідовністю сигналів, згенерованих пристроєм керування; така послідовність, в свою чергу, жорстко визначається виконуваною командою та поточним станом самого АЛП. Для генерування цієї послідовності пристрій керування використовує код команди, попередньо декодований дешифратором команд, а також аналізує сигнали статусу АЛП. Поступова реакція АЛП на кожен сигнал керуючої послідовності в підсумку приводить до формування правильного результату в одному з регістрів регістрової пам'яті.

Своєчасну доставку даних для обчислень, а також запис результатів обчислень до оперативної пам'яті або пристроїв вводу-виводу забезпечує шинний інтерфейс, який керує процесом обміну даними між оперативною пам'яттю та процесором. В процесі обміну інформація передається за шиною даних (ШД), а адреса комірки пам'яті чи пристрою вводу-виводу, до яких здійснюється звернення, встановлюється на адресній шині (ША). Керування процесом обміну здійснює шинний інтерфейс шляхом ініціювання необхідної послідовності сигналів керування, реагуючи на які модуль пам'яті або пристрій вводу-виводу передає за ШД необхідну інформацію. Сигнали керування та сигнали статусу пристроїв передаються за спеціальними лініями електричного зв'язку, сукупність яких прийнято називати шиною керування (ШК). Шина даних (ШД), адресна шина (ША) та шина керування (ШК) утворюють системну магістраль.

Процес читання або запису одного елемента інформації з\до пам'яті або пристрою вводу-виводу за системною магістраллю називається циклом шини або машинним циклом. Об'єм інформації, який може бути переданий за один цикл шини, безпосередньо залежить від ширини (розрядності) шини даних мікропроцесора та модуля пам'яті і може становити 1, 2, 4 або 8 байт.

Загальна кількість комірок оперативної пам'яті, до яких може звертатися мікропроцесор, залежить від ширини (розрядності - R) адресної шини мікропроцесора, і є рівною 2R.

Мікропроцесор виконує команди програми в порядку їх розміщення в оперативній пам'яті комп'ютера. Зміна послідовності виконання команд реалізується спеціальними командами, які називаються командами переходів, тобто процесом виконання програми керує сама ж програма, а не мікропроцесор.

Команди програми розміщуються в пам'яті послідовно, займаючи суміжні комірки пам'яті; розмір пам'яті, необхідний для збереження коду команди, залежить від самої команди і, як правило, складає 1 - 15 байт. Перший байт коду команди називається кодом операції і присутній завжди; всі інші байти можуть бути присутніми або відсутніми в залежності від команди. Формат машинного коду команди приведено на мал.8.

Малюнок 8. Формат коду команди.

Байт адресації присутній, якщо команда передбачає роботу з даними в оперативній пам'яті і визначає спосіб формування адреси операндів. Байт масштабування може бути присутнім при обробці масивів даних, операнди можуть мати розмірність 8, 16, 32 біт (1, 2, 4 байт).

У відповідності з циклом керування Дж. Фон-Неймана [11], процес виконання команди умовно розбивається на декілька машинних циклів, кількість яких залежить від самої команди і може відрізнятися для різних команд. Першим машинним циклом є цикл читання коду операції команди з оперативної пам'яті і присутній завжди, тобто виконання команди супроводжується, як мінімум, одним машинним циклом. За кодом операції визначається наявність інших байтів команди, а значить, і необхідність ініціювання наступних циклів шини. Цикли шини ініціюються мікропроцесором лише при потребі читання або запису даних з\до пам'яті або пристроїв вводу-виводу.

2. Практична частина

2.1 Переклад Символів імені у послідовність цифр 16-річної системи числення

Використовуючи таблицю ASCII кодів перекладіть своє прізвище або ім'я (але менш чим 5 літер) у послідовність цифр 16-річної системи числення, а потім у послідовність двійкових біт.

Таблиця 2.

Ім'я

s

e

r

g

e

16-річна система числення

0x073

0x065

0x072

0x067

0x065

Послідовність двійкових біт

1110011

1100101

1110010

1100111

1100101

2.2 Доповнення послідовності двійковими бітами коду Хемінга

Користуючись викладеним теоретичним матеріалом доповніть послідовність двійкових біт бітами коду Хемінга.

Користуючись інформацією, яка викладена у методичних вказівках що до виконання курсової роботи з дисципліни "АРХІТЕКТУРА КОМП'ЮТЕРІВ" доповнюємо послідовність двійковими бітами коду Хемінга табл.2.

Таблиця 2. Двійкова послідовність символів імені.

Позиція біта

39

38

37

36

35

34

33

32

31

30

29

28

27

26

25

Значення біта

1

1

1

0

0

1

1

0

1

1

0

0

1

0

1

Позиція біта

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

Значення біта

0

1

1

1

0

0

1

0

0

1

1

0

0

1

1

Позиція біта

9

8

7

6

5

4

3

2

1

Значення біта

1

0

1

1

0

0

1

0

1

Доповнюємо кодову послідовність бітами коду Хемінга. Результат у табл.3.

Таблиця 3. Двійкова послідовність символів імені з позиціями контрольних бітів.

Позиція біта

45

44

43

42

41

40

39

38

37

36

35

34

33

32

31

30

Значення біта

1

1

1

0

0

1

1

0

1

1

0

0

1

*

0

1

Позиція біта

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

Значення біта

0

1

1

1

0

0

1

0

0

1

1

0

0

*

1

1

Позиція біта

13

12

11

10

9

8

7

6

5

4

3

2

1

Значення біта

1

0

1

1

0

*

0

1

0

*

1

*

*

* - позиції, де розміщуються контрольні біти [12]. Контрольні біти резервуються цілою ступінню двійки. Оскільки номера контрольних біт становлять ступінь двійки, то з ростом розрядності кодового слова вони розташовуються все рідше і рідше. Контрольна сума формується шляхом використання операції XoR над кодами позицій ненульових бітів. Позиції ненульових бітів приведено в таблиці 4.

Таблиця 4. Позиції ненульових бітів.

Позиція

Код

3

000011

6

000110

10

001010

11

001011

13

001101

14

001110

15

001111

19

010011

20

010100

23

010111

26

011010

27

011011

28

011100

30

011110

33

100001

36

100100

37

100101

39

100111

40

101000

Таблиця 4. Продовження.

Позиція

Код

43

101011

44

101100

45

101101

Контрольна сума приведена в таблиці 5.

Таблиця 5. Контрольна сума.

Позиція біта

6

5

4

3

2

1

Контр. Сумма

0

1

1

1

1

0

Таким чином приймач буде мати з розрахованими контрольними бітами (табл.6).

Таблиця 6. Кодова послідовність на стороні приймача.

Позиція біта

45

44

43

42

41

40

39

38

37

36

35

34

33

32

31

30

Значення біта

1

1

1

0

0

1

1

0

1

1

0

0

1

0

0

1

Позиція біта

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

Значення біта

0

1

1

1

0

0

1

0

0

1

1

0

0

1

1

1

Позиція біта

13

12

11

10

9

8

7

6

5

4

3

2

1

Значення біта

1

0

1

1

0

1

0

1

0

1

1

1

0

Просумуємо кодову послідовність за допомогою операції XoR ще раз (табл.7) і будемо мати нулі.

Таблиця 7. Контрольна сума кодової послідовності.

Позиція біта

6

5

4

3

2

1

Контр. Сумма

0

0

0

0

0

0

2.3 Заміна на протилежне значення біту і можливість його виправлення

Змініть значення N-ного біту отриманої послідовності на протилежне та покажіть можливість його відновлення (де N - це ваш номер за журналом академічної групи). У доповнення до N-того біту також змініть на протилежне значення (35 - N) біту. Чи є можливість тепер відновити інформацію? Наведіть пояснення.

Змінимо у кодовій послідовності біт (1>0) під номером (35 - N), де N = 16. Маємо змінений біт під номером 19 (табл.8).

Таблиця 8. Кодова послідовність з помилкою.

Позиція біта

45

44

43

42

41

40

39

38

37

36

35

34

33

32

31

30

Значення біта

1

1

1

0

0

1

1

0

1

1

0

0

1

0

0

1

Позиція біта

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

Значення біта

1

1

1

1

0

0

1

0

0

1

0

0

0

1

1

1

Позиція біта

13

12

11

10

9

8

7

6

5

4

3

2

1

Значення біта

1

0

1

1

0

1

0

1

0

1

1

1

0

Просумуємо коди позицій ненульових бітів за допомогою операції XoR ще раз (табл.9):

Таблиця 9. Контрольна сума позицій ненульових бітів з помилкою.

Позиція біта

6

5

4

3

2

1

Контр. Сумма

0

1

0

0

1

1

Контрольна сума дорівнює позиції біта, де сталася помилка. Для виправлення помилки приймачу треба інвертувати біт, номер якого вказаний у контрольній сумі (табл.9).

2.4 Написання програми кодування слова

Написати програму, яка дозволяє кодувати слова довжиною до 10 літер за схемою "ASCII-код > двійковий код > код Хемінга".

Збудуємо блок-схему алгоритму функціонування програми (мал.9).

Користуючись блок-схемою та алгоритмом для побудови коду Хемінга напишемо програму на алгоритмічному язиці Paskal (додаток А).

Малюнок 9. Блок-схема алгоритму програми.

Висновки

У результаті виконаної курсової роботи було досягнуто наступних результатів:

1. Універсальний вхід для десятків пристроїв USB (Universal Serial Bus - універсальна послідовна шина) - це рішення, що відкриває новий спосіб підключення різних пристроїв до персональних комп'ютерів. Ідея створення інтерфейсу USB з'явилася близько п'яти років тому.

На сьогодні підтримка USB є у всіх сучасних мікросхемах для РС, тому цей спосіб підключення притаманний усім недавно випущеним ПК. Лише за один рік застосування USB практично витиснула послідовні і паралельні порти у всіх сферах, де вони незмінне застосовувалися протягом багатьох років.

Сучасні мікротехнології розвиваються за таким правилом: мінімізація розмірів при максимізації функцій. Універсальна послідовна шина - це якісна відповідь на всезростаючий попит користувачів на технології, здатні приєднати до комп'ютера величезну кількість периферійних пристроїв.

Крім того, USB задовольняють також потреби виробників, чиї портативні комп'ютери потребують універсальних, але водночас невеликих роз'ємів для підключення великої кількості різних пристроїв. Так, наприклад, до появи підтримки USB сфера застосування КПК була дуже обмеженою.

На сьогодні розмаїття і специфіка пристроїв, що підключаються до ПК через порт USB, є величезними. Застосування USB значно розширило область застосування ПК, ноутбука і КПК на фірмі чи підприємстві. Ця універсальна шина зробила комп'ютер воістину універсальним помічником у побуті.

Є можливість підключити через USB практично будь-який внутрішній носій інформації. До таких пристроїв традиційно належать дисководи гнучких дисків, профавачі CD і DVD). Крім того, вже є розробки, що дозволяють підключати до цієї шини такі пристрої, як TV - чи FM-тюнери.

Багато зовнішніх пристроїв, що випускаються зараз, такі як принтер, модем, монітор, аудіоколонки, клавіатура і мишка, підтримують підключення через USB. Ця властивість значно спрощує підключення цього пристрою і розширює його функціональні можливості.

2. Термін інформація - латинського походження (informatio), означає роз'яснення, повідомлення, поінформованість. Інформація є одним з найцінніших ресурсів суспільства поряд з такими природними багатствами як нафта, газ та інші. Отже, методи та засоби переробки інформації як і переробки матеріальних ресурсів, можна визначити як технологію.

Одиницею інформації в комп'ютері є один біт. Один біт може приймати лише одне з двох можливих значень, а тому не може бути використаний для представлення великої кількості інформації. Числові величини в комп'ютері (в тому числі коди символів) представлені в двійковій позиційній системі числення (системі числення з основою 2). Це означає, що для запису будь-якого числа можуть використовуватися лише дві цифри 0 та 1. Таким чином уся інформація в ЕОМ представлена у виді послідовності 0 та 1.

3. В елементах пам'яті, виготовлюваних у вигляді напівпровідникових ВІС, а також в процесорах підвищеної надійності використовується оперативний апаратний контроль за допомогою кодів Хемінга. У практичній частині курсової роботи були реалізовані питання, що до алгоритмів кодування Хемінга довільної послідовності кодів, та виправлення помилок у цій послідовності.

4. При роботі з кодовими послідовностями використовувались методи і принципи, які дозволяли знаходити, виправляти, корегувати та визначати помилки у послідовностях кодів Хемінга.

5. Також була написана програма, яка дозволяє кодувати слова довжиною до 10 літер за схемою "ASCII-код > двійковий код > код Хемінга".

Літературні джерела

1. Axelson Jan. USB Complete. - Lakeview Research, 2001.

2. John Hyde. USB Design by Example. A Practical Guide to Building I/O Devices. - Intel Press, 2001.

3. Агуров П.В. Последовательные интерфейсы. Практика программирования. - СПб.: БХВ-Петербург, 2004.

4. Гук М. Аппаратные средства IBM PC. Энциклопедия. - СПб.: Питер,

2002.

5. Гук М. Аппаратные интерфейсы IBM PC. Энциклопедия. - СПб.: Питер, 2002.

6. Кулаков В. Программирование на аппаратном уровне: специальный справочник.2-е изд. - СПб.: Питер, 2003.

7. Солдатов В.П. Программирование драйверов Windows. - М.: Бином, 2004.

8. Соломон Д., Руссанович М. Внутреннее устройство Windows 2000. Структура и алгоритмы работы компонентов Windows 2000 и NTFS 5. - СПб.: Питер, Microsoft Press, 2001.

9. Рихтер Д. Windows для профессионалов - СПб.: Питер, Microsoft Press, 1999.

10. Фролов А.В., Фролов Г.В. Защищенный режим процессоров Intel 80286/80386/80486. - М.: Диалог-МИФИ, 1993.

11. Таненбаум Э. Архитектура компьютера. - СПб.: Питер, 2002. - 704 с.

12. Блейхут Р. Теория и практика кодов, контролирующих ошибки. - М.: Мир, 1986. - 576 с.

Додатки

Додаток А

Текст програми.

Program Heming;

uses Crt;

const APower2: array [0. .7] of Integer = (1, 2, 4, 8, 16, 32, 64, 128);

{ Массив степеней 2-ки}

var

ASymbol: array [1. .8] of ShortInt; { Массив для хранения бинарного кода символа}

ABinCod: array [1. .80] of ShortInt; { Массив для хранения бинарного кода слова}

AContrSum: array [0. .7] of Integer; { Массив для хранения контрольных сумм}

AHemCod: array [1. .88] of ShortInt; { Массив для хранения бинарного кода}

{ дополненного контрольными битами}

NBinCod, NHemCod: Integer; { Количество битов бинарного и кодированного} { видов слова соответственно}

i, j, k, n, NCur: Integer; { вспомогательные переменные}

NContr: Integer; { счетчик контрольных битов}

Slovo, ASCIICod, BinCod, HemCod: String;

procedure DecToBin (n: Integer); { процедура перевода десятичного числа в массив битов}

var i: Integer;

begin

for i: =1 to 8 do ASymbol [i]: =0;

i: =8;

while n>1 do

begin

ASymbol [i]: =n mod 2;

n: =n div 2;

dec (i);

end;

ASymbol [i]: =n;

end;

function CheckCod: Integer; { Процедура проверки кода на наличие повреждения}

var i, j, n, Res: Integer; { возвращаемое значение - номер поврежденного бита}

begin { или 0, если код не поврежден}

for i: =0 to 7 do { определение количества контрольных битов}

if NHemCod<APower2 [i] then

begin

NContr: =i;

Break;

end;

for i: =0 to NContr-1 do AContrSum [i]: =0; { обнуление контрольных сумм}

NCur: =0;

for i: =1 to NHemCod do

if i=APower2 [NCur] then inc (NCur) { если номер бита - степень 2-ки, пропускаем его}

else if AHemCod [i] >0 then { иначе если бит - 1-ца прибавляем 1 к каждому}

begin { контрольному биту, контролирующий i-й, для чего}

n: =i; { раскладываем i по степеням двойки}

for j: =NContr-1 downto 0 do

if n>=APower2 [j] then

begin

inc (AContrSum [j]);

n: =n-APower2 [j] ;

end;

end;

Res: =0; { определение номера поврежденного бита по несовпавшим}

for i: =0 to NContr-1 do { контрольным суммам}

if (AContrSum [i] mod 2) <>AHemCod [APower2 [i]] then Res: =Res+APower2 [i] ;

CheckCod: =Res;

end;

Begin

ClrScr;

Writeln (' ПРОГРАММА ДЛЯ ПЕРЕВОДА СЛОВ В КОД ХЕМИНГА');

Write ('Введите слово для кодирования (максимум - 10 букв): ');

Readln (Slovo);

if Length (Slovo) <1 then { проверка наличия введенных символов}

begin

Writeln ('Нужно ввести слово');

Halt;

end;

if Length (Slovo) >10 then { проверка длины слова}

begin

Writeln ('Длина слова - не более 10 символов');

Halt;

end;

BinCod: ='';

HemCod: ='';

Write ('ASCII-код слова: ');

for i: =1 to Length (Slovo) do

begin

Write (Ord (Slovo [i]), ' ');

{ перевод символа в ASCII-код}

DecToBin (Ord (Slovo [i])); { перевод символа в бинарный код}

for j: =1 to 8 do

ABinCod [ (i-1) *8+j]: =ASymbol [j] ;

{ добавление бинарного кода символа к слову}

end;

Writeln;

NBinCod: =Length (Slovo) *8;

while ABinCod [1] =0 do { удаление лидирующих нулей в двоичном виде слова}

begin

for i: =1 to NBinCod-1 do ABinCod [i]: =ABinCod [i+1] ;

dec (NBinCod);

end;

Write ('Бинарный код слова: ');

for i: =1 to NBinCod do Write (ABinCod [i]);

Writeln;

for i: =0 to 7 do AContrSum [i]: =0; { обнуление массивов}

for i: =1 to 88 do AHemCod [i]: =0;

i: =NBinCod;

j: =1;

NContr: =0;

while i>0 do { кодируем слово начиная с конца}

begin

if j=APower2 [NContr] then inc (NContr) { если номер бита - степень 2-ки -

резервируем его для контрольного бита}

else if ABinCod [i] >0 then { записываем информационный бит, если он - 1-ца}

begin

AHemCod [j]: =1;

n: =j;

k: =0;

while n>1 do { увеличение контрольных сумм битов, контролирующих

j-й символ кодированной строки}

begin

if Odd (n) then inc (AContrSum [k]);

n: =n div 2;

inc (k);

end;

inc (AContrSum [k]);

dec (i);

end

else dec (i); { если инф. бит 0 - переходим на следующий без увеличения

контрольных сумм}

inc (j);

end;

NHemCod: =j-1; { длина кодированной последовательности}

for i: =0 to NContr-1 do if Odd (AContrSum [i]) then AHemCod [APower2 [i]]: =1;

{ расчет значений контрольных битов по контрольным суммам}

{ вывод кодированной последовательности}

Write ('Код Хеминга слова: ');

for i: =NHemCod downto 1 do Write (AHemCod [i]);

Writeln;

Writeln;

Writeln ('Изменяем 19-й бит в коде Хеминга');

if AHemCod [19] =1 then AHemCod [19]: =0


Подобные документы

  • Принципи побудови та функціонування алгоритмів розпізнавання та виправлення помилок в кодових послідовностях. Переклад символів імені у послідовність цифр 16-річної системи числення. Заміна на протилежне значення біту і можливість його виправлення.

    курсовая работа [660,0 K], добавлен 02.10.2010

  • Перевірка коду на парність. Формула для підрахунку парності або непарності одиниць в інформаційних розрядах. Побудова групових кодів і їх вживання для виявлення і виправлення помилок. Правила формування перевірочних символів. Використання кодів Хемминга.

    лабораторная работа [639,7 K], добавлен 17.12.2010

  • Технічні характеристики універсальної послідовної шини. Конструктивні особливості інтерфейсу USB. Передача даних через нього за допомогою хоста. Загальний опис, встановлення та використання USB-USB моста у режимі прямого з’єднання та в режимі мережі.

    реферат [966,9 K], добавлен 25.03.2011

  • Розробка та дослідження алгоритмів і програм кодування даних з виявленням помилок на основі циклічних CRC-кодів. Аналіз циклічних кодів. Розробка та тестування програмних модулів. Розрахунок економічних показників. Вирішення питань охорони праці.

    дипломная работа [5,4 M], добавлен 22.06.2010

  • Обчислення максимальної довжини загальної шини в мережах Ethernet. Типи середовищ передачі даних в мережах Ethernet. Підключення до загальної шини в мережах10Base-5. Конструкція tap-адаптера "зуб вампіра". Основні характеристики коаксіальних кабелів.

    лекция [2,7 M], добавлен 18.10.2013

  • Сегментація і нормалізація зображень. Основні функціональні можливості та режими роботи комплексу розпізнавання письмового тексту. Розробка комплексу оптичного розпізнавання символів. Шрифтові та безшрифтові алгоритми розпізнавання друкованого тексту.

    курсовая работа [1,7 M], добавлен 19.05.2014

  • Історія виникнення друкарської справи. Роль зображення в поліграфії. Коректура як процес виправлення помилок у текстовому матеріалі. Робота з шарами у графічному редакторі Adobe Photoshop. Розробка багатошарової листівки щодо проведення дитячих свят.

    дипломная работа [3,8 M], добавлен 22.11.2011

  • Внутрішня побудова мікроконтроллера: процесор, пам'ять, порти вводу-виводу, таймери, мультиплексори, пристрої для послідовної передачі даних, контролер переривань та спеціалізовані регістри. Режими адресації даних. Система команд мікроконтроллерів.

    реферат [53,6 K], добавлен 25.03.2011

  • Алгоритм оптичного розпізнавання образів. Універсальність таких алгоритмів. Технологічність, зручність у процесі використання програми. Два класи алгоритмів розпізнавання друкованих символів: шрифтовий та безшрифтовий. технологія підготовки бази даних.

    реферат [24,5 K], добавлен 19.11.2008

  • Порядок та основні принципи створення електронних баз даних за допомогою табличного редактора Мicrosoft Еxcel, його властивості, оцінка можливостей. Робота з записами в базі даних, операції над ними. Методика сортування бази даних в Мicrosoft Еxcel.

    курсовая работа [2,8 M], добавлен 07.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.