WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Реалізація функцій DOS (CD, MD, RD, Date, Time, Dir) - Курсова робота

Реалізація функцій DOS (CD, MD, RD, Date, Time, Dir) - Курсова робота

Рисунок 8. Читання даних в протоколі Microwire

Протокол SPI

Протокол SPI схожий на протокол Microwire, але має кілька відмінностей:

- SPI здатний передавати дані зі швидкістю до 3 Мбіт у секунду.

- Розрядність даних у SPI пакеті дорівнює 8 біт.

- Передавач у SPI має можливість призупинити передачу даних.

- Дані в SPI можуть передаватися у виді безлічі байтів, що

називаються "блок" чи "сторінка".

Як і в протоколі Microwire, у SPI спочатку передається байт, що містить команду для приймаючого пристрою. Потім йде необов'язкова 16-розрядна адреса, після чого випливають 8-розрядні дані. Як було зазначено вище, протокол SPI дозволяє передавати кілька байтів (рис. 9). У протоколі SPI використовується симетричний тактовий сигнал, що має однакову тривалість високого і низького рівня. Вихідні дані повинні бути видані на лінію принаймні за 30 нс. до надходження переднього фронту тактового сигналу, а зчитування повинне відбуватися за 30 нс. до заднього фронту.

Рисунок 9. Запис даних в протоколі SPI

При реалізації протоколів Microwire чи SPI можна спростити схему з'єднання, якщо підключити вхід Din і вихід Dout до однієї лінії (рис. 10). При такому способі з'єднання мікроконтролер повинен відключити свій вихідний драйвер, коли закінчить послідовну передачу даних. Після цього він може приймати дані, що надходять від іншого пристрою. Резистор між виводами даних слугує для обмеження струму в тих випадках, коли і мікроконтролер, і периферійний пристрій видають дані на лінію зв'язку.

Рисунок 10 Підключення входу "DI" та виходу "DО" до одної лінії

Мережі

Коли термін "мережа" вживається стосовно до мікроконтролерів, то маються на увазі шини, що використовуються для підключення додаткових пристроїв і для забезпечення зв'язку між мікроконтролерами. У такий спосіб мережа мікроконтролерів відрізняється від локальної мережі, такий як "Ethernet", що ймовірно приходить на розум при слові "мережа".

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

У таких мережах мається "ведучий" ("master") — інтелектуальний пристрій, що може ініціювати передачу даних. Пристрої, що відповідають на запити, але не можуть їх ініціювати, називаються "ведомі" ("slaves"). Мікроконтролерна мережа може мати декілька "ведучих" пристроїв, у цьому випадку мережний протокол вимагає включення схеми арбітражу, що дозволить різним "ведучим" пристроям передавати дані не порушуючи інших повідомлень.

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

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

Протокол І2С

Найбільш популярний протокол для мережі мікроконтролерів - І2С, що призначений для зв'язку пристроїв у багатопроцесорних системах. Цей стандарт був розроблений компанією Philips наприкінці 70-х років, як метод реалізації інтерфейсу між мікропроцесорами і периферійними пристроями, що не вимагає прокладки численних ліній для передачі між пристроями всіх розрядів адреси, даних і сигналів керування. Протокол І2С дозволяє розділяти мережні ресурси між декількома ведучими процесорами ("multimastering").

Шина І2С містить дві лінії: лінія SDA, що слугує для передачі даних, і лінія SCL, по якій передається синхросигнал, використовуваний для стробування даних. Обидві лінії підключені через резистори до шини живлення ("підтягнуті" до високого рівня потенціалу), що дозволяє декільком пристроям керувати їхнім станом шляхом з'єднання за схемою "монтажне І". Шина І2С для керування стереосистемою може мати вид, показаний на рис. 11.

Рисунок 11. Приклад І2С мережі

Двопровідна лінія використовується для визначення початку передачі даних, а також для передачі самих даних. Щоб почати передачу даних, шина переводиться в стартовий стан. При відсутності переданих даних шина знаходиться в стані (пасивному), що очікує ("idle"). При цьому на обох лініях сигнали не надходять, і на них встановлений високий рівень сигналу (потенціал Vcc). Щоб ініціювати передачу даних, "ведучий" пристрій, запитує керування шиною, установлює низький рівень спочатку на лінії SDA, а потім на лінії SCL (стартовий стан). У процесі пересилання даних такий стан шини є неробочим, тому що прийом переданих даних виробляється тільки при високому (активному) рівні синхросигналу на лінії SCL. Щоб закінчити передачу даних виконуються зворотні дії: на лінії SCL встановлюється високий рівень сигналу, а потім у такий же стан переводиться лінія даних SDA (рис. 12).

Рисунок 12 Форма сигналів на шині І2С

Дані передаються синхронним способом, причому першим посилається старший біт (рис. 2.40). Після передачі 8 біт ведучий пристрій переводить лінію даних у "0" стан, що плаває, очікуючи підтвердження прийому даних від відомого пристрою. Таким підтвердженням є установка відомим пристроєм низького рівня сигналу на лінії SDA. Після біта підтвердження на обох лініях встановлюється низький рівень. Потім виробляється пересилання наступного байта, чи шина переводиться в стан кінця передачі. Це означає, що передача завершена, і приймач може готуватися до наступного запиту даних.

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

Існує дві максимальні швидкості передачі даних по шині І2С: "стандартний режим" ~ до 100 Кбіт/с і "швидкий режим" - до 400 Кбіт/с (рис. 2.41).

Рисунок 14. Тимчасова діаграма сигналів на шині І2С

Формат команди, що надходить від ведучого пристрою до відомого, показаний на рис. 15. Адреса одержувача містить 7 біт. Існує незатверджений ("вільний") стандарт, відповідно до якого чотири старших біти використовуються для вказівки типу пристрою, а наступні три біти використовуються для вибору одного з восьми пристроїв цього типу чи служать для більш точного визначення типу пристрою. Тому що цей стандарт не є обов'язковим, то деякі пристрої вимагають вказівки в якості трьох останніх адресних біт визначених кодів, тоді як інші, наприклад мікросхеми пам'яті EEPROM використовують ці біти для вибору адресата усередині пристрою. Існує також 10-розрядний стандарт для передачі адреси, у якому перші 4 біти містять 1, а біт, що випливає має значення 0, останні 2 біти є старшими бітами адреси, а завершальні 8 біт адреси передаються в наступному байті. Усе це означає, що дуже важливо розподілити адреси між пристроями, підключеними до шини.

Перші чотири біти адреси звичайно служать для визначення типу обираних пристроїв у відповідності з наступним угодою:

0000 - Зарезервована адреса

0010 - Синтезатор голосу

0011 - Аудіо - інтерфейс

0100 - Звуковий генератор

0111 - Жидкокристалічний чи світлодіодний дисплей

1000 - Відео — інтерфейс

1001 - аналогово-цифровий і цифро-аналоговий інтерфейси

1010 - Послідовна пам'ять

1100 - Керування радіоприймачем

1101 - Годинник/календар

1111 - Зарезервовано для використання 10-розрядної адреси

Рисунок 15. Формат передачі даних по шині І2С

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

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

Loading...

 
 

Цікаве