Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки.doc
Скачиваний:
12
Добавлен:
09.11.2019
Размер:
6.91 Mб
Скачать

4.4. Порядок виконання лабораторної роботи

  1. Вивчити принципи роботи аналого-цифрового перетворювача.

  2. Вивчити методику роботи з АЦП навчального стенду.

  3. Розробити алгоритм для виконання індивідуального завдання (Таблиця 1).

  4. Розробити програму для виконання індивідуального завдання.

  5. Ввести текст програми мнемокодами асемблера використовуючи текстовий редактор і зберегти асемблерну програму на диску ПК.

  6. Транслювати збережену програму в шістнадцятковий код.

  7. Завантажити програму в стенд ОЕОМ. Переконатися в правильному виконанні індивідуального завдання, змінюючи вхідну напругу АЦП за допомогою змінного резистора R19. При негативному результаті провести відлагодження алгоритму та програми.

  8. Звіт з лабораторної роботи повинен містити блок-схему алгоритму роботи програми і асемблерні мнемокоди складеної програми.

  9. Варіанти індивідуальних завдань.

Таблиця1. Завдання до л.р. №4

Індивідуальне завдання

1

Організувати шестирозрядне аналого-цифрове перетворення; цифровий код перетворення відображати на статичному індикаторі.

2

Циклічно опитувати АЦП; пропорційно вхідній напрузі засвічувати світлодіоди на лінійці світлодіодів HL1-HL8.

3

При вхідній напрузі АЦП

  • 0...1 В засвітити статичний індикатор;

  • 1...2 В засвітити лінійку світлодіодів;

  • 2...3 В засвітити динамічний індикатор;

  • 3...4 В засвітити знакосинтезуючий індикатор;

  • 4...5 В засвітити усі пристрої відображення інформації.

4

Циклічно опитувати АЦП; пропорційно вхідній напрузі засвічувати розряди динамічного індикатора.

5

Циклічно опитувати АЦП; пропорційно вхідній напрузі засвічувати стовпці знакосинтезуючого індикатора.

6*

Циклічно опитувати АЦП, відображати значення вхідної напруги на статичному індикаторі з роздільною здатністю 0,1В.

6.5. Контрольні запитання

  1. Методи і типи АЦП.

  2. Статичні параметри АЦП.

  3. Поняття дискретності, квантування, роздільної здатності.

  4. Характеристика перетворення, диференціальна нелінійність АЦП, відхилення коефіцієнта перетворення.

  5. Динамічні параметри АЦП.

  6. Час перетворення, час затримки запуску, час циклу перетворення, максимальна частота перетворення.

  7. Апаратні реалізації АЦП.

  8. Приклади практичного застосування АЦП.

  9. Побудова схем АЦП за допомогою мікросхем ЦАП.

Лабораторна робота №5

Використання ОМК для організації інтерфейсу І2С і послідовної передачі даних.

5.1. Мета роботи

Розробка програм роботи ОМК для послідовної асинхронної передачі даних по шині І2С.

5.2. Теоретичні відомості.

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

Пристрої, що підключаються до шини І2С також працюють за таким принципом. Коли один із приладів являється ведучим (master), а інші веденими (slave), то така організація шини називається master-організацією і являється найбільш типовим випадком (рис.1)

Рис.1. Master-організація шини І2С.

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

Перша версія шини І2С (Inter-Integrated Circuit Bus) була випущена фірмою Philips в 1992 році (специфікація версії 1.0).

Унікальність шини І2С полягає у тому, що управляти всіма підпорядкованими пристроями можна лише по двом лініям (якщо не рахувати загальний провідник схеми). Slave-абонент повинен мати два виводи, які об’єднуються з такими ж виводами інших slave-пристроїв, а також з master-абонентом.

Інтерфейс будь-якого пристрою, що підключається до шини І2С (рис.2), складається з двох транзисторів з відкритим стоком (колектором) і двох буферних елементів з високим вхідним опором. Один із виводів названий SDA (Serial Data Line), призначений для зв’язку з лінією послідовних даних. Другий вивід має скорочену назву SCL (Serial Clock Line), передбачений для зв’язку з лінією синхронізації.

Відомо, що по будь-яким цифровим шинам передаються сигнали, які характеризуються двома електричними станами – „0” і „1” („низький рівень” і „високий рівень”). Стан, коли обидві лінії (SCL і SDA) встановлені в „1” вважається вільним шинним станом. Шина в цей момент не зайнята і готова до трансляції даних (інакше кажучи шина знаходиться в стані очікування). Для забезпечення логічних станів до шини підключаються два зовнішніх резистори Rpu (pull-up resistors), що „підтягують” лінію до напруги живлення Uжив. На рис.2 ці резистори підключені ззовні, але інколи вони входять безпосередньо до складу master-абонента.

Головною відмінністю master-абонента є генерація ним SCL імпульсів.

Важливим критерієм використання тієї чи іншої шини являється її технічні характеристики. Шина І2С відноситься до класу двонапрямлених асинхронних шин з послідовною передачею даних і як наслідок із достатньо низькою пропускною здатністю. Тому її майже не використовують у складі персональних комп’ютерів, а переважно для узгодження роботи пристроїв, що входять до складу побутової техніки.

Рис.2. Апаратна реалізація шини І2С.

Основні технічні характеристики шини І2С по специфікації 1,0 приведені в таблиці 1.

Табл.1. Технічні характеристики шини І2С.

Найменування параметрів

Значення параметрів

Швидкість обміну low-speed

не більше 100 кбіт/с

Швидкість обміну fast-speed

не більше 400 кбіт/с

Кількість адресованих пристроїв (7 біт)

до 128

Сумарна довжина лінії SCL і SDA

не більше 4 м

Сумарана надлишкова ємність відносно загального провідника

не більше 400 пФ

Вхідна ємність на кожен вивід абонента

не більше 10 пФ

З таблиці 1 слідує, що шина І2С не підходить для зв’язку віддаленнях абонентів, тому може використовуватися у складі одного приладу. Цей висновок випливає із невеликої довжини ліній SDA і SCL.

Пропускна здатність шини визначається як параметрами інтерфейсів, так і надлишковими (паразитними) параметрами лінії SCL і SDA. На рис.3 зображені ці паразитні параметри:

  • Спр – розподілена ємність лінії відносно загального провідника;

  • Свх – вхідна ємність інтерфейсу;

  • Lпр – індуктивність провідника лінії.

Рис.3. Паразитні параметри, що впливають на пропускну здатність шини І2С.

У протоколі обміну по шині використовуються не лише статичні стани лінії („0” і „1”), а і фронти імпульсів („0” → „1” і „1” → „0”). Наявність паразитних параметрів „затягує” фронти і спади імпульсів (рис.4), що може порушити нормальний обмін даних.

Рис.4. „Затягування” імпульсу при передачі по шині як результат впливу паразитних параметрів.

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

Отже, до шини І2С можуть бути підключені інтерфейси трьох типів: low-speed, fast-speed, Hs-mode. Зрозуміло, що обмін даними може бути здійснений зі швидкістю, яка доступна найповільнішому інтерфейсу. В табл.2 наведені можливі швидкості обміну по сумісній шині.

Табл.2. Швидкість обміну даними у поєднаних шинах.

Напрямок передачі

Конфігурація шини І2С

Hs + fast + low

Hs + fast

Hs + low

Fast + low

Hs – Hs

0 ... 3.4 Мбіт/c

0 ... 3.4 Мбіт/c

0 ... 3.4 Мбіт/c

-

Hs – fast

0 ... 100 кбіт/с

0 ... 400 кбіт/с

-

-

Hs – low

0 ... 100 кбіт/с

-

0 ... 100 кбіт/с

-

fast -low

0 ... 100 кбіт/с

-

-

0 ... 100 кбіт/с

fast - fast

0 ... 100 кбіт/с

0 ... 400 кбіт/с

-

0 ... 100 кбіт/с

low - low

0 ... 100 кбіт/с

-

0 ... 100 кбіт/с

0 ... 100 кбіт/с

Передача будь-якого біта по шині відбувається по умові стробування даних SDA по лінії SCL. Припустимо, що master-пристрій виставив біт даних „0” або „1” на лінію SDA. Slave-пристрій отримає цей біт тільки тоді, коли на лінії SCL відбудеться перепад сигналу з низького рівня на високий (так званий додатній перепад). Звідси слідує перше правило організації протоколу шини: зміна інформації на лінії SDA може відбуватися тільки при нульовому стані лінії SCL.

Рис.5. Передача біта по шині І2С.

Для розпізнання початку і кінця передачі до специфікації шини були введені умови Start і Stop. На рис.6 представлена умова Start, а на рис.7 – умова Stop. У документації умова Start має умовне позначення „S”, умова Stop – „P”.

Умова Start утворюється при від’ємному перепаді сигналу на лінії SDA при одиничному стані лінії SCL. І навпаки, умова Stop виникає при додатному перепаді лінії SDA при одиничному стані лінії SCL. Ці стани завжди мають генеруватися master-пристроями. Таким чином, спрощено інформаційний пакет, що передається по шині І2С має вигляд зображений на рис.8.

Рис.8. Інформаційний пакет на шині І2С.

Передача даних по шині відбувається по 8 бітів, після чого слідує сигнал підтвердження (acknowledge). Сигнал підтвердження свідчить про те, що дані прийняті і оброблені. На рис.9 зображено процес передачі байта даних по шині І2С.

Рис.9. Передача байта по шині І2С.

Після обробки стану Start передавач послідовно виставляє на лінію SDA дані, починаючи з старшого біта (MSB) і закінчуючи молодшим (LSB). Дані стробуються по лінії SCL імпульсами 1...8.

Лінія SDA приймача (slave-абонента) в момент прийому інформаційних бітів (MSB-LSB) повинна бути виставлена в одиничний стан. В момент від’ємного перепаду імпульса 8 на лінії SCL slave-абонент повинен виставити на лінію SDA нульовий рівень, тим самим приймач підтверджує нормальний прийом байта. Передавач (master-абонент) повинен виставляти на лінію SDA одиничний стан. Завдяки тому, що лінія організована за способом „монтажне І”, її стан буде визначатися лише slave-абонентом. Передавач повинен перевірити стан лінії SDA, потім видати 9-й стробуючий імпульс з яким slave-абонент виставить на лінію SDA високий рівень, перевірить виконання цієї операції і потім продовжить передачу (рис.10). У випадку відсутності підтвердження нормального прийому (сигнал АСК має високий рівень) передавачу бажано виконати умову Stop і повторити передачу.

Рис.10. Стан acknowledge.

Третя ситуація, яка може виникнути при отриманні сигналу АСК, пов’язана із затримкою обробки даних в slave-абоненті, як показано на рис.11.

Рис.11. Затримка стану acknowledge.

Затримка звільнення лінії SDA не свідчить про неправильний обмін інформації, тому master-абоненту достатньо зачекати на закінчення АСК і продовжити передачу. В документації стан acknowledge умовно позначається літерою „А”. Якщо байт, що передавався по шині, являється останнім у пакеті, master-пристрій замість перевірки сигналу АСК може виставити стан Stop, і slave-абонент повинен звільнити лінію SDA.

Для того, щоб обмін відбувався між master-абонентом і певним підпорядкованим пристроєм, необхідно щоб кожен slave-пристрій мав на шині свою власну адресу, за якою до нього можна звертатися. Адреси пристрою знаходяться у певних комірках внутрішньої пам’яті. Адреса може бути призначена або жорстко визначена. У випадку шини І2С адреси пристроїв, так звані slave-адреса, жорстко визначаються. Вони „закладаються” при виготовлені мікросхем і не можуть модифікуватися. Значення slave-адреси можна дізнатися із документації на відповідну мікросхему.

Оскільки всі абоненти шини не мають інших способів спілкування, крім обміну даними по лініям SCL і SDA, в момент початку передачі усі slave-абоненти „слухають” лінію на предмет розпізнавання своєї адреси. Впізнавши свою адресу абонент продовжує прийом даних і видачу сигналів АСК, а інші слідкують лише за моментом видачі сигналу Stop. У зв’язку з цим можливі три форматии передачі:

  • master транслює дані на slave;

  • master зчитує дані від slave;

  • комбінований формат трансляція/зчитування.

Історично склалося, що спочатку виник формат 7-бітної адресації, при якому здійснюється передача slave-адреси 7 бітами, а восьмий біт повинен містити признак операції „читання/запис” ( ). При 7-бітній адресації шині можуть розміщуватися лише 128 пристроїв з унікальними адресами. Реально приладів дещо менше, так як деякі адреси зарезервовані під деякі службові функції.

На рис.12 наведений формат передачі даних від master-пристрою до slave-абонента. Прямокутники, що відображаються на цьому і наступних рисунках сірим відтінком відносяться до напрямку передачі від master до slave, а білим кольором – від slave до master.

Рис.12. Master транслює дані на slave.

Слід зазначити , що перший біт, який передається slave-адресу пристрою, містить ознаку операції . Коли цей біт встановлений в „0”, то буде здійснюватися запис у slave-пристрій, коли в „1” – зчитування з нього.

На рис.13 наведений формат передачі даних від slave-абонента до master-пристрою.

Рис.13. Master зчитує дані від slave.

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

Рис.14. Комбінований формат.

Зазвичай комбіновані формати використовуються для роботи із послідовною пам’яттю (для зменшення часу доступу до даних). Єдиним нововведенням, яке введене в комбінований формат – повторна умова Start (repeated Start condition), яке зображується на рисунку „Sr”.

Як зазначалося вище, деякі slave-адреси використовуються не для прямої адресації пристроїв на шині І2С, а для службових повідомлень.

Таблиця 3. Службові адреси.

Slave-адреса

Опис службової адреси

0000 000

0

Загальний виклик

0000 000

1

Програмний Start

0000 001

х

Адреса шини CBUS

0000 010

х

Зарезервована для інших форматів шини

0000 011

х

Зарезервована на майбутнє

0000 1хх

х

Код режиму Hs-mode

1111 1хх

х

Зарезервована на майбутнє

1111 0хх

х

10-бітна адресація slave-абонента

Загальний виклик може адресувати усі пристрої, які підключені до шини І2С, у цьому випадку при отриманні загального виклику пристрої повинні підтвердити прийом видачею сигналу АСК. Пристрої, які не потребують загального виклику, можуть проігнорувати цю адресу не виставляючи сигнал АСК. Якщо пристрій виконаний таким чином, що обов’язково потребує дані загального виклику, то він себе поводить як звичайний slave-абонент. Другий байт, що слідує після загального виклику, зазвичай містить інформаційну частину. На рис. 15 зображений формат загального виклику.

Рис.15. Загальний виклик.

Інформаційна частина містить біт В, який у поєднанні з бітами 7...1 (позначених на рис.15 символом „Х”) регламентує призначення інформації, яка передається у даному випадку. Регламентуються наступні комбінації:

    • 0000 0110 (06h) – апаратне перезавантаження (скидання). При отриманні цієї комбінації всі абоненти, що реагують на загальний виклик, виконують рестарт (перезавантаження);

    • 0000 0100 (04h) – запис програмованої частини адреси slave-абонента з допомогою апаратних засобів. Всі абоненти, що відповіли на дану адресу будуть блоковані і не можуть бути перезавантажені;

    • 0000 0000 (00h) – цей код забороняється використовувати;

    • хххх ххх1 – використовується, коли на шині присутні багато поєднаних master/slave-абонентів.

Програмний Start зручно використовувати тоді, коли пристрій, під’єднаний до шини І2С не містить апаратного інтерфейсу. Якщо вбудований інтерфейс І2С у мікроконтролері, то його дуже просто використовувати, достатньо запрограмувати мікроконтролер на переривання від шини і при наявності передачі буде виконуватися програма обробки даних, що поступають на шину. Якщо вбудованого інтерфейсу немає, то мікроконтролер повинен постійно опитувати шину на предмет отримання даних.

Адресу шини CBUS можливо використовувати при роботі з елементами, які обладнані цією шиною.

Наступні службові адреси відносять до адрес, що розширюють можливості шини І2С. Як зазначалося вище, спочатку шина мала 7-бітну адресацію і швидкість передачі до 100 кбіт/с. Але, навіть не дивлячись на ці незначні можливості, шина швидко здобула розповсюдження. Дуже швидко були реалізовані всі адреси та й швидкість передачі даних швидко росла, томущо покращувалася технологія виробництва мікросхем. Модернізована шина набула нових можливостей:

  • режим fast-speed з можливістю передачі до 400 кбіт/с;

  • режим Hs-mode – до 3,4 Мбіт/с;

  • адресація з допомогою 10 розрядів (до 1024 абонентів).

Оскільки форматом шини передбачена передача лише з 8 бітів, то 10-розрядні адреси необхідно передавати двома байтами. Перший байт має структуру 11110хх ( ), в якому біти позначені символом „х” являються старшими розрядами 10-бітної адреси slave-пристрою. Також у складі першого байта повинен бути переданий біт .

Адресація за допомогою 10 розрядів аналогічна 7-розрядній адресації, тобто базується на тих же принципах. Пристрій, отримавши службовий код у першому байті і розпізнавши можливість прийому 10-розрядної адреси підтверджує це і приймає другий байт. При співпаданні адреси з адресою, яка „зашита” всередині пристрою видається підтвердження АСК і ведеться прийом даних у звичайному режимі до появи стану Stop.

На рис.16 зображений формат передачі даних від master-абонента до slave-пристрою.

S

Slave-адреса

1 байт

(11110хх)

(0)

А1

Slave

2 байт

А2

DATA

A

......

DATA

P

Рис.16. Передача даних від master-абонента до slave-пристрою.

Slave-абоненти порівнюють перший отриманий байт зі своїми даними, якщо вони співпадають, то виставляють на сигнал АСК (А1 на рис.16). Очевидно, що можлива видача сигналу одночасно декількома пристроями, тому при отриманні другого байта тільки один абонент видасть сигнал АСК (А2). Інші пристрої, які раніше вдали сигнал АСК (А1), залишаться адресованими по першому байту до отримання сигналу Stop.

На рис. 17 наведений формат передачі даних від slave-абонента до master-пристрою.

S

Slave-адреса

1 байт

(0)

А1

Slave

2_байт

А2

Sr

Slave

1_байт

(1)

A3

Data

A

.....

DATA

A

P

Рис.17. Передача даних від slave-абонента до master-пристрою.

Спочатку master-пристрій першим байтом адресує всі slave-абоненти відповідним кодом і вони підтверджують його отримання відповідним кодом АСК (А1). Потім другим байтом адресується конкретний пристрій з видачею сигналу АСК (А2). Після виконання повторної умови Start (Sr) адресований slave-пристрій зберігає можливість звертатися до нього, тому достатньо повторити перший байт адреси, але вже з іншим значенням біта і отримати АСК(А3).