Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 8Л.doc
Скачиваний:
2
Добавлен:
21.11.2019
Размер:
829.95 Кб
Скачать

13

Міністерство транспорту та зв’язку україни львівський коледж державного університету інформаційно-комунікаційних технологій

Навчальна дисципліна: Обчислювальна техніка та мікропроцесори

Лабораторія: обчислювальної техніки, мікропроцесорних систем і мереж

Спеціальність 5.05090308 Монтаж, обслуговування

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

РОЗГЛЯНУТО

на засіданні циклової комісії фундаментальних дисциплін

Протокол №

від ”___”______2009 р.

Голова комісії_________О.Лабаз

ЗАТВЕРДЖУЮ

Заступник директора з НВР

____________Я.Плешівський

„___”________2009 р.

ІНСТРУКЦІЯ

ДО ЛАБОРАТОРНОЇ РОБОТИ №8

Дослідження роботи spі – інтерфейсу мікроконтролера

Склали викладачі:

к.т.н. Б.А.Бохонко

С.О. Леонов


Львів – 2009

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

Здобути навиків у роботі з послідовним синхронним інтерфейсом периферійних пристроїв SPI (Serial Peripheral Interface) на лабораторному стенді.

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

РЕАЛІЗАЦІЯ ВВОДУ/ВИВОДУ ІНФОРМАЦІЇ В МІКРО КОНТРОЛЕРАХ

З ВИКОРИСТАННЯМ SPI - ІНТЕРФЕЙСУ

Послідовний синхронний інтерфейс периферійних пристроїв SPI використовується в багатьох мікроконтролерах базової серії сімейства AVR.

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

Через інтерфейс типу SPI можна швидко і просто міняти дані між ведучим мікроконтролером ( Master ) і з одним чи декількома блоків ( Slave ).

Рисунок 1 Схематичне позначення інтерфейсу SPI

Інтерфейс SPI складається із чотирьох ліній: такту SCK, ліній передачі даних MOSI й MISO, а також входу розблокування /SS, що активізується сигналом низького рівня. Вони виконані у вигляді альтернативних функцій порту В (Р1).

Таблиця 1 – Функції розрядів портів В (Р1) для ліній інтерфейсу SPI

Лінія

Вивід

Функція

/SS

PortВ / Розряд 4

Дозвіл (Slave Select)

MOSI

Port В/ Розряд 5

Лінія даних (Master Out Slave In)

MISO

Port В/ Розряд 6

Лінія даних (Master In Slave Out)

SCK

Port В/ Розряд 7

Тактові імпульси (Shift Cloc)


При передачі даних через інтерфейс SPI обмін даними завжди відбувається між двома пристроями: Master і Slave. Кожен мікро контролер сімейства AVR, з вбудованим інтерфейсом SPI, може бути сконфігурований на режимі роботи як Master, так і Slave за допомогою встановлення/скидання розряду MSTR у регістрі управління інтерфейсу SPI (SPCR (SPI Control Register)). При цьому Master бере на себе активну частину обміну даними, викликаючи передачу й управляючи процесом. Пристрій (Slave) не може саме бути активним. Він приймає або передає дані тільки тоді, коли відбувається його активізація з боку провідного пристрою по лінії /SS (Slave Select - вибір пристрою). Це можна зрівняти із сигналом /CS (Chip Select - вибір кристала) при використанні блоків пам'яті RAM або EPROM. Провідний пристрій також генерує тактові імпульси для передачі по вихідній лінії SCK. Для веденого блоку вивід SCK є входом, через який він одержує від Master-пристрою такт.

Рисунок 2 –Структура регістру управління SPCR

Якщо Slave активізується ведучим пристроєм по лінії /SS, то починається обмін даними: Як що Master МК, він записує підлягаючій передачі байт у свій регістр даних SPDR послідовного інтерфейсу SPI. Це призводить до початку формування передачі даних через інтерфейс SPI. За допомогою кожного виробленого тактового імпульсу Master переміщає один біт даних на вихід MOSI (Master Out Slave In - вихід провідного, вхід веденого), a Slave одночасно у зворотному напрямку передає один біт на вхід MISO (Master In Slave Out - вхід провідного, вихід веденого) провідного блоку. Із цієї причини інтерфейс SPI можна порівнювати з 16-розрядним регістром циклічного зсуву, розділеним на два 8-розрядних зсуваючих регістрах, перший з яких перебуває в провідному пристрої, а другий - у веденому. У результаті, протягом циклу SPI, що складається з восьми тактових імпульсів, Master і Slave обмінюються байтами даних.

По закінченні передачі даних у регістрі стану інтерфейсу SPI SPSR (як у конфігурації Master, так й у конфігурації Slave) встановляється прапор переривання SPIF (SPI Interrupt Flag). Цей прапор вказує на закінчення передачі й викликає запит на переривання після того як у регістрі керування SPCR буде встановлений розряд SPIE (SPI Interrupt Enable - дозвіл на переривання від інтерфейсу SPI), а в регістрі стану SREG- розряд 1 загального дозволу переривань. У режимі "Master" поточна передача даних може бути завчасно закінчена видачею в лінію /SS сигналу 1. Лічильник розрядів і внутрішня логіка Slave у результаті скидаються, режим "Slave" стає неактивним і вихід цього пристою переходить у високоімпедансний стан (третій стан - відключено).

Розряд WCON – конфлікт запису. Коли під час видачі даних МК по інтерфейсу, інший пристрій в системі об’єднаній інтерфейсом SPI, теж починає робити передачу даних.

Рисунок 3. Структура регістру стану SPSR

Рисунок 4 - Підключення декількох пристроїв до інтерфейсу SPI

Як показано на рис.4, до інтерфейсу в якості ведених блоків можуть бути одночасно під’єднано кілька периферійних пристроїв, але активованим буде тільки той з них, на вхід /SS яког через порт В (Р1) провідного пристрою буде поданий рівень логічного 0. Виходи MISO незадіяних ведених блоків перебувають у високоомному стані та не впливають на процес передачі даних. Блокам G1 та Gn відповідають повноцінні інтерфейси SPI, у яких дані передаються в обох напрямках. Блок G2, з погляду провідного блоку, є тільки блоком видачі (як приклад такого блоку можна привести цифро аналоговий перетворювач із інтерфейсом SPI). Блок G3 по виконанню аналогічний блоку G2, але тільки як блок прийому.

Коли інтерфейс SPI відключений (розряд SPE у регістрі SPCR має 0) то ці чотири лінії функціонують як самі звичайні лінії вводу/виводу, стан яких визначається по стану регістра напрямку передачі даних DDRB порту В. Однак, якщо інтерфейс SPI активний (розряд SPE у регістрі SPCR має логічну 1), то в загальному випадку діє наступне правило, входи інтерфейсу SPI після установки розряду SPE у регістрі керування SPCR автоматично конфігуруються, як входи, а відповідний розряд у регістрі напрямку передачі даних буде переписаний. Виходи інтерфейсу SPI повинні бути визначені програмою користувача за допомогою установки відповідного розряду в регістрі напрямку передачі даних. Лінія SCK є виходом, коли інтерфейс SPI працює в режимі "Master", і входом; коли інтерфейс SPI сконфігурований для роботи в режимі "Slave" (розряд MSTR у регістрі керування SPCR). При роботі в режимі "Slave" інтерфейс ігнорує свій вхід SCK доти, поки на його лінії /SS не з'явиться сигнал низького рівня.

Сигналі лінії SCK формуються діленням внутрішніх тактових імпульсів системної синхронізації Ф центрального процесора. Коефіцієнт ділення може бути обраний за допомогою розрядів SPR1 та SPR0 регістра керування SPCR. Коли Master починає передачу даних, то генеруються вісім тактових імпульсів, які синхронізують передачу. Щоб гарантувати надійну постановку біта даних, він зсувається вперед за допомогою одного фронту тактового сигналу SCK, а за допомогою іншого фронту приймається. Вибір фронту сигналу залежить від протоколу передачі даних.

Рисунок 5 - Часова діаграма передачі по інтерфейсу SPI

На рисунку 5 - біти даних приймаються по наростаючому фронті тактового сигналу SCK, а подальший зсув здійснюється за допомогою спадаючого фронту цього імпульсу. Master передає біт даних на свій вихід MOSI, і тільки по закінченні часу t SETUP слідує наростаючий фронт тактового сигналу SCK, щоб гарантувати, що біт після прийому стабільно встановлений. Після того як з'явився спадаючий фронт тактового сигналу SCK, Master очікує період часу t Valid, щоб переконатися в наявності біта даних від Slave, який можна було б прийняти за допомогою наступного фронту тактового сигналу SCK. Тривалість часу t HILO, імпульсу високого рівня тактового сигналу SCK, а також періодів часу t SETUP та t Valid залежить від вимог, висунутих виготівником до параметрів периферійних пристроїв, що підключаються через інтерфейс SPI. Для того щоб можна було підключати більш повільні периферійні пристрої, частота тактового сигналу SCK може бути поділена аж до Ф/128.

Рисунок 6 – Частота імпульсів в лінії SCK в залежності від розрядів SPR1, SPR0 (див. рис.2.)

При роботі в режимі "Master" вивід /SS може бути сконфігурований як звичайний вихід або як вхід для розпізнавання конфліктів в інтерфейсі SPI. Цей вибір визначається розрядом DDB4 у регістрі напрямку передачі даних порту В (Р1). Якщо цей розряд містить сигнал 1, то лінія функціонує як вихід, який не робить впливу на вибір ведучого при передачі по інтерфейсу SPI. Якщо розряд DDB4 у регістрі напрямку передачі даних установлений у сигнал 0, (вхід), лінія /SS повинна втримуватися в стані приймання сигналу.

Із цієї причини підпрограма обробки переривання від інтерфейсу SPI при його переході в режим Master завжди буде перевіряти ще раз, чи встановлений ще розряд MSTR, якщо існує можливість зовнішнього переходу /SS у стан 0. Коли розряд MSTR у результаті вимоги перейти в режим Slave зовні встановлений у стан 0. Програма користувача повинна подбати про те, щоб він знову був встановлений в 1 стан. Для передачі даних через інтерфейс SPI використаються два принципово різних формати передачі. Відповідний формат вибирається за допомогою розряду СРНА (Clock Phase - фаза синхронізації) регістра керування SPCR.

Для кожного із двох форматів передачі (СРНА = сигнал 0 і СРНА = сигнал 1 активна фаза синхронізації може бути обрана індивідуально за допомогою установки/скидання розряду CPOL у регістрі даних SPDR.

Щоб почати передачу даних Master переводить лінію /SS, приєднану до одного з його портів, у стан сигналу. 0. Для відповідного веденого блоку передача починається по спадаючому фронті цього сигналу. Його вихід MISO переходить із високоомного в активний стан, і старший розряд байта, що перебуває в його регістрі даних SPDR, з'являється на виході M1SO. Передачу даних Master починає записом підлягаючій передачі байта даних у свій регістр даних SPDR. Слідом за цим на виході MOSI провідного блоку з'являється розряд MSB. Старші розряди підлягаючій передачі байтів у провідних і веденому блоках за допомогою наростаючого фронту першого тактового імпульсу встановлюються на виході MOSI провідного блоку виході MISO вхідного блоку. По спадаючому фронті першого й кожного наступного тактового імпульсу вони переносяться на входи Master й Slave, а по наростаючому фронті наступний розряд зміщається.

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

Рисунок 7. Структура регістру даних SPDR

По наростаючому фронті першого й кожного наступного тактового імпульсу приймаються біти, розташовані на входах Master й Slave, а по спадаючому фронті наступний біт зрушується далі. Після восьмого тактового імпульсу передача даних завершена, прапори SPIF у регістрах стану провідних і веденого блоків установлені, а вміст здвигових регістрів будуть перенесено у відповідні приймальні буфери. Вихід MOSI провідного блоку повертається в стан спокою, а на виході MISO веденого блоку, як правило, перебуває старший розряд (MSB) байта, тільки що прийнятого провідним блоком. Одночасно зі скиданням лінії /SS у вихідний стан Master завершує передачу, Slave стає неактивним, а його вихід MISO переходить у високоомний стан.

Для того щоб при цьому режимі почати передачу даних, Master, переводить лінію /SS, приєднану до одного з його портів, у стан сигналу. 0. Блок Slave розблокований, і його вихід MISO переходить із високоомного в активний стан. Логічний рівень на MISO для цього випадку не визначений, але, як правило, на MISO перебуває молодший розряд байта, переданого під час попередньої передачі від Slave до Master.

Рисунок 8 - Формат передачі через інтерфейс SPI

Рисунок 9 - Формат передачі через інтерфейс SPI

Рисунок 10 – Схема SPI інтерфейсу, що реалізований на Альтері

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]