
Буклет Лабораторні роботи МСТЗІ
.pdf
(США), який спеціально призначений для побудови охоронних систем (Рис. 2).
а) б) в) Рис. 2. Будова (а), конструкція (б) та зовнішній вигляд (в) PIR-давача LHi 968
Давач має два чутливих елементи, включених за диференційною схемою(Рис. 2.а). Такий спосіб включення дає змогу позбутися хибних спрацювань, викликаних вібрацією, зміною температури і сонячного освітлення, які однаково впливають на обидва елементи і взаємнокомпенсуються. Для обмеження діапазону ІЧ-випромінювання LHi 968 має вбудований ІЧ-фільтр. При переміщенні людини в зоні дії давача спочатку активізується один чутливий елемент, а потім другий, внаслідок чого формуються два імпульси протилежної полярності (Рис. 3.а).
а) б)
Рис. 3. Сигнал на виході PIR-давача (а) та конструкція лінзи Френеля (б)
Для збільшення дальності дії давача застосовують лінзи Френеля. З їх використанням зона виявлення збільшується з 2-3 метрів до приблизно 25-30 метрів. Лінзи Френеля, на відміну від звичайних лінз, мають набагато менші розміри, обумовлені їх конструкцією (Рис. 3.б).
Типова структурна схема детектора руху з PIR-давачем представлена на Рис. 4.
Рис. 4. Структурна схема інфрачервоного детектора руху
40

Сигнал від PIR-давача з амплітудою порядку1 мВ подається на багатокаскадний (переважно 2-х каскадний) підсилювач з загальним коефіцієнтом підсилення близько декількох тисяч. Смуга пропускання підсилювача обмежується на рівні 10доГц для ослаблення високочастотних завад. Далі сигнал поступає на вхід компаратора або АЦП. Мікроконтролер здійснює додаткову обробку сигналу і приймає рішення про спрацювання давача. Компаратор або АЦП можуть бути як окремими мікросхемами так і внутрішніми модулями МК.
2. Формування і обробка сигналів PIR-давачів
Типова схема формування сигналу PIR-давача зображена на Рис. 5.
Рис. 5. Схема формування сигналу в детекторі руху
До складу схеми входять:
·RC-фільтр живлення (R8, C6, C7);
·Шунтуючий резистор та згладжуючий конденсатор (R9, C8);
·Перший каскад підсилення та фільтрації(операційний підсилювач DA1.1, R1, C1, C2, R2, R3);
· Розділюючий конденсатор, який відсікає постійну складову і пропускає лише змінну складову сигналу (C3);
·Подільник для формування напруги зміщення VOffset = 2.5 В (R5, R6);
·Другий каскад підсилення та фільтрації (операційний підсилювач DA1.2, R4, C5).
Два операційних підсилювачі утворюють |
активний фільтр зі смугою пропускання |
Df -3 дБ = 0,485...5,13 Гц (Рис. 6) та максимальним |
коефіцієнтом підсилення UК= 1924 (на |
частоті 1,54 Гц).
У випадку потрапляння людини в зону чутливостіPIR-давача на виходіAnalog_Out формується сигнал представлений наРис. 7.а. Сигнал містить постійну складову– напругу зміщення VOffset , на яку накладені позитивна і негативна півхвилі. При відсутності людини в зоні
спостереження вихідний сигнал складається з напруги зміщення на яку накладені внутрішні та зовнішні шуми (Рис. 7.б).
Подальшу обробку сигналу здійснюють як аналоговими (з допомогою компараторів) так і цифровими методами (з допомогою АЦП). В обох випадках, щоб визначити чи було спрацювання давача, потрібно виділити сигнал руху з шумів та завад та порівняти його з
41

пороговими рівнями VTR+, VTR-. Якщо сигнал вийшов за вказані межі вважається, що відбулося спрацювання детектора і виявлено порушника.
Рис. 6. Амплітудно-частотна характеристика схеми формування сигналу детектора руху
Рівні спрацювання компараторів (VTR-, VTR+) вибирають з таких міркувань: вони повинні бути достатньо низькими, щоб не пропустити спрацювання давача і одночасно достатньо високими, щоб давач не спрацьовував від перешкод.
а) |
б) |
Рис. 7. Сигнал на виході PIR-давача при наявності (а) та відсутності (б) людини
Головними джерелами шумів і завад дляPIR-сенсорів є внутрішні шуми, переміщення повітряних потоків, що створює коливання температури, а також електромагнітні та механічні завади.
Внутрішній шум самого PIR-давача наводиться в технічній документації і переважно не перевищує 50 мкВ-пп (типове значення шуму LHi 968 становить 20 мкВ від піку до піку, максимальне – 50 мкВ в смузі частот 0.3…10 Гц). Для давачів які розміщені поза приміщеннями
42

завади викликані переміщенням повітря становлять приблизно250 мкВ, в приміщеннях – 180 мкВ. Рівень електромагнітних та механічних завад не перевищує 100 мкВ.
Таким чином, максимальний |
рівень |
завадVNoise становить 250 |
мкВ. З врахуванням |
|
коефіцієнта підсилення аналогової схеми будемо мати: |
|
|||
VTriger |
= VNoise |
´ K U = 250 мкВ ´1924 = 481 мВ. |
|
|
VTR- |
= VOffset |
- VTriger |
= 2.5 - 0.481 = 2.019 В. |
|
VTR + |
= VOffset |
+ VTriger |
= 2.5 + 0.481 = 2.981 В. |
|
Мікроконтролер з допомогою АЦП повинен відстежувати напругу на виходіAnalog_Out |
||||
схеми і при виході її |
за межі спрацюванняVTR-, VTR+ включати |
світлову чи звукову |
сигналізацію, замикати контакти реле для спрацювання якогось пристрою чи передавати сигнал тривоги на охоронний пульт.
Програмна реалізація детектора руху складається з трьох елементів: основної програми, підпрограми обробки переривання від таймеру і підпрограми аналого-цифрового перетворення.
Для досягнення низького енергоспоживання аналого-цифрове перетворення і обробка оцифрованих даних повинні бути зведені до мінімуму, достатнього для визначення факту вторгнення в контрольовану зону. У проміжках між опитуванням PIR-сенсора МК повинен бути
в режимі пониженного енергоспоживання Idle.
Після ініціалізації периферійних модулів та затримки приблизно TSet секунд (вказується в технічній документації), потрібної для виходу PIR-давача на робочий режим, МК переходить в режим пониженого енергоспоживання (РПЕ) і очікує переривання від таймеру, який пробуджує МК кожні TADC секунд. В підпрограмі обслуговування цього переривання виконуються дві основні функції – здійснюється нова вибірка АЦП і її значення порівнюється з пороговими рівнями та включається світлодіод на час TAlarm, якщо зафіксовано спрацювання PIR-давача.
Блок-схема основної програми та підпрограми обслуговування переривання наведені на
Рис. 8.а, б.
а) б) в)
Рис. 8. Блок схема основної програми (а), підпрограми обробки переривання (б) та підпрограми аналого-цифрового перетворення (в)
43

Ресурси пам’яті і обчислювальної потужності мікроконтролераAT90S2313 дають змогу реалізувати і більш складні алгоритми виявлення, зокрема цифрову фільтрацію сигналу, програмну зміну чутливості та ін.
Інфрачервоні детектори руху широко застосовуються не тільки в охоронних системах, але і в системах автоматичного управління освітленням, відкривання дверей, кранів, а також для зупинки роботи машин при виникненні небезпеки для людини.
Слід відзначити, що в останній час при побудові детекторів руху спостерігається тенденція, яка полягає у інтеграції всіх складових частин(крім МК) у межах однієї мікросхеми. Прикладом може бути сімейство інфрачервоних давачів DigiPyro з цифровим виходом (Рис. 9).
Рис. 9. Структурна схема детекторів сімейства DigiPyro
Ці мікросхеми містять PIR-давач з двома |
чутливими елементами, інфрачервоний фільтр |
зі смугою пропускання 5.5-14 мкм, 14-розрядний |
АЦП, фільтр низької частоти 2-го порядку для |
ослаблення шумів і завад, вбудований генератор тактових імпульсів для АЦП та інтерфейсу Direct Link, однопровідний 15-розрядний інтерфейс Direct Link, що розташовані у одному корпусі з 3-ма виводами. Оскільки чутливі елементи генерують сигнали позитивної і негативної амплітуди детектор потребує напруги зміщення для обробки сигналу, яка виробляється внутрішнім джерелом опорної напруги.
Мікроконтролеру слід лише періодично зчитувати вихідний код мікросхеми сімейства DigiPyro через інтерфейс Direct Link для визначення факту спрацювання давача. Такий підхід значно спрощує реалізацію та підвищує завадозахищеність кінцевого пристрою, зменшує його габарити та ціну.
Спряження мікроконтролерів з АЦП
В якості АЦП детектора руху можна використати12-розрядний перетворювач MAX1241 фірми MAXIM (США) з послідовним інтерфейсом (Рис. 10).
Рис. 10. Структура та розташування виводів мікросхеми MAX1241
44

|
Вивід |
|
|
|
|
Призначення |
|
VDD |
Напруга живлення від 2.7 В до 5.25 В. |
||||||
АIN |
Аналоговий вхід: напруга в діапазоні від 0 до VREF. |
||||||
|
|
|
Вхід переводу АЦП в режим пониженого енергоспоживанняShutdown (при |
||||
|
|
|
|
SHDN |
= 0 струм споживання становить 15 мкА). АЦП здійснює всі операції |
||
SHDN |
|||||||
|
|
|
коли на вивід |
SHDN |
подається високий рівень або він є плаваючим. |
||
REF |
Вхід опорної напруги. Шунтується конденсатором ємністю мінімум 0.1 мкФ. |
||||||
|
|
|
Діапазон від 1 В до VDD. |
Земля.
Вибір мікросхеми при CS =0. Запуск аналого-цифрового перетворення по
спадаючому фронту. Якщо CS =1 вивід DOUT є у високоімпедансному стані.
Вихід даних в послідовному форматі. Дані видаються по спадаючому фронту
сигналу SCLK. DOUT є у високоімпедансному стані коли наCS присутній високий рівень.
Вхід подачі тактових імпульсів – синхронізують послідовну передачу даних з виводу DOUT і визначають швидкість перетворення. Максимальна тактова частота – 2.1 МГц.
Максимальна частота дискретизації становить 73 кГц, при цьому споживана потужність – 3 мВт, в режимі пониженого енергоспоживання – 5 мкВт.
Напруга на вході АЦП Vx та код АЦП N x пов’язані залежністю:
Vx = N x ×VREF ,
4096
– опорна напруга, прикладена до виводу REF.
Поки триває перетворення вивід DOUT знаходиться в нульовому стані, після закінчення перетворення (EOC – End Of Conversion) вивід сигналізує про це переходом у високий стан. Дані видаються починаючи з старшого розряду (Рис. 11).
Якщо АЦП перебував в режимі Shutdown, то після того як на виводі SHDN встановилась логічна 1 повинно пройти не менше10 мкс поки можна буде здійснювати наступне перетворення (Рис. 11).
Рис. 11. Алгоритм функціонування МАХ1241
Для обміну даними з МК використовуються 3 виводи АЦП: на вхід CS МК подає сигнал старту перетворення (по спадаючому фронті), по входу SCLK подає імпульси синхронізації послідовної передачі даних з АЦП, а з виходу DOUT – приймає результати перетворення біт за бітом (дані є дійсними по спадаючому фронту імпульсів SCLK).
Алгоритм роботи з АЦП MAX1241 наступний. В початковому стані на виводі CS МК
45

встановлює 1 |
рівень сигналу, а на SCLK – нульовий. Запуск |
перетворення |
здійснюється |
|||
|
|
|
||||
встановленням нульового рівня на виводіCS (по спадаючому фронту). Поки АЦП здійснює |
||||||
перетворення |
лінія DOUT переходить з |
|
високоімпедансного |
в нульовий стан, лінія SCLK |
||
повинна утримуватись в нульовому |
стані. АЦП сигналізує |
про закінчення |
перетворення |
переводом виводу DOUT у високий стан (Рис.12).
Після цього МК повинен сформувати на SCLK 12 тактових імпульсів, по спаду кожного з яких на виході DOUT будуть з’являтися біти результату перетворення(D11-D0) починаючи з старших розрядів. Зчитавши останній біт МК повинен залишити лінію SCLK в нульовому стані,
а лінію CS повернути в 1. На цьому цикл перетворення і зчитування інформації завершено (Рис. 12). Наступне перетворення може початись не раніше ніж через часt CS = 240 нс. Блок-схема одного циклу аналого-цифрового перетворення наведена на Рис. 8.в.
Рис. 12. Часова діаграма роботи АЦП МАХ1241
Рис. 13. Основні часові параметри МАХ1241
Параметр |
Значення |
Одиниці |
Параметр |
Значення |
Одиниці |
tCONV |
5.5 (мін.), 7.5 (макс.) |
мкс |
fSCLK |
2.1 (макс.) |
МГц |
tACQ |
1.5 (макс.) |
мкс |
tCH |
200 (мін.) |
нс |
tDO |
20 (мін.), 200 (макс.) |
нс |
tCL |
200 (мін.) |
нс |
tDV |
240 (макс.) |
нс |
tCS0 |
50 (мін.) |
нс |
tTR |
240 (макс.) |
нс |
tCS |
240 (мін.) |
нс |
Робота з таймерами
Для оцифрування сигналу відPIR-давача з певним періодомTADC можна використати вбудовані таймери МКAT90S2313. Генерація часових інтервалів з допомогою таймерів/лічильників Т0 або Т1 здійснюється наступним чином:
Для 8-розрядного таймера Т0 потрібно:
1.Занести відповідну константуN (від 0 до 255) в регістр лічби таймера/лічильника
TCNT0.
2.Задати коефіцієнт ділення DIV тактової частоти з допомогою розрядівCS02…CS00 регістра управління таймером TCCR0 (Рис. 14).
46

|
|
|
|
7 |
|
6 |
5 |
|
4 |
|
3 |
2 |
1 |
|
0 |
|
|
|
|
TCCR0 |
- |
|
- |
|
- |
|
- |
|
- |
CS02 |
CS01 |
|
CS00 |
|
|
|
Читання(R)/Запис(W) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
R |
R |
|
R |
R |
R |
R/W |
R/W |
R/W |
|
|||||||
|
Початкове значення |
0 |
|
0 |
0 |
|
0 |
|
0 |
0 |
0 |
|
0 |
|
|||
|
|
|
Рис. 14. Формат регістру TCCR0 МК AT90S2313 |
|
|
||||||||||||
|
|
Вибір джерел тактового сигналу для таймера/лічильника Т0 |
|
||||||||||||||
CS02 |
CS01 |
CS00 |
|
|
|
|
|
Джерело тактового сигналу |
|
|
|||||||
0 |
0 |
0 |
Таймер/лічильник |
|
зупинений |
|
|
|
|
|
|
|
|
||||
0 |
0 |
1 |
СК (тактовий сигнал МК) (DIV = 1) |
|
|
|
|
|
|
||||||||
0 |
1 |
0 |
СК/8 (DIV = 8) |
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
1 |
1 |
СК/64 (DIV = 64) |
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
0 |
0 |
СК/256 (DIV = 256) |
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
0 |
1 |
СК/1024 (DIV = 1024) |
|
|
|
|
|
|
|
|
3. Дозволити переривання від Т0 встановивши в 1 розряд TOIE0 регістра TIMSK (при цьому також повинен бути встановлений прапорець І загального дозволу переривань в регістрі
SREG).
При переході таймера/лічильника з стану0xFF в стан 0х00 встановлюється прапорець TOV0 регістра TIFR і генерується запит на переривання.
Тоді часовий інтервал, через який будуть генеруватись переривання буде становити:
T = DIV ´ (256 - N ) ,
FT
де DIV – коефіцієнт ділення тактової частоти(задається розрядами CS02-CS00); FT – тактова частота МК.
В підпрограмі обробки переривання потрібно передбачити перезавантаження регістра лічби TCNT0 константою N.
Для 16-розрядного таймера Т1:
1.Занести відповідну константу N (від 0 до 65535) в регістр лічби таймера/лічильника TCNT1. Фізично регістр TCNT1 розташований в двох регістрах TCNT1Н:TCNT1L. Для запису в регістр TCNT1 першим має бути завантажений старший байт.
2.Задати коефіцієнт ділення DIV з допомогою розрядів CS12…CS10 регістра управління таймером TCCR1В (Рис. 15).
|
|
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||
|
TCCR1B |
|
ICNC1 |
ICES1 |
|
- |
|
- |
CTC1 |
CS12 |
CS11 |
CS10 |
|
|
|
Читання(R)/Запис(W) |
|
|
|
|
|
|
|
|
|
|
|
||
|
R/W |
R/W |
|
R |
|
R |
R/W |
R/W |
R/W |
R/W |
|
|||
|
Початкове значення |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
||||
|
|
|
Рис. 15. Формат регістру TCCR1B МК AT90S2313 |
|
|
|||||||||
|
|
Вибір джерел тактового сигналу для таймера/лічильника Т1 |
|
|||||||||||
CS12 |
CS11 |
CS10 |
|
|
|
|
|
Джерело тактового сигналу |
|
|
||||
0 |
0 |
0 |
Таймер/лічильник |
зупинений |
|
|
|
|
|
|||||
0 |
0 |
1 |
СК (тактовий сигнал МК) (DIV = 1) |
|
|
|
|
|
||||||
0 |
1 |
0 |
СК/8 (DIV = 8) |
|
|
|
|
|
|
|
|
|
||
0 |
1 |
1 |
СК/64 (DIV = 64) |
|
|
|
|
|
|
|
|
|
||
1 |
0 |
0 |
СК/256 (DIV = 256) |
|
|
|
|
|
|
|
|
|
||
1 |
0 |
1 |
СК/1024 (DIV = 1024) |
|
|
|
|
|
|
|
При переході таймера/лічильника з стану0xFFFF в |
стан 0х0000 |
встановлюється |
прапорець TOV1 регістра TIFR і генерується запит на переривання. |
|
|
3. Дозволити переривання від таймеру 1 Твстановивши |
в 1 розряд |
TOIE1 регістра |
TIMSK. |
|
|
Часовий інтервал, через який будуть генеруватись переривання буде становити:
47

T = DIV ´ (65536 - N ) .
FT
У підпрограмі обробки переривання потрібно передбачити перезавантаження регістра лічби TCNT1 константою N.
Іншим способом формування часової послідовності є використання таймера Т1 в режимі порівняння. Даний режим полягає в неперервному(кожного такту) порівнянні вмісту регістра лічби таймера/лічильника з числом, яке знаходиться в регістрі порівнянняOCR1A. Як тільки вміст лічильника TCNT1 перевищить вміст регістра порівнянняOCR1A встановлюється прапорець відповідного переривання OCF1A в регістрі TIFR і генерується запит на переривання. Дозвіл переривання здійснюється встановленням в 1 прапорця OCIE1A регістра TIMSK.
При цьому, якщо розряд СТС1 регістра TCCR1B встановлений в 1, то при перевищені регістром лічби значення в регістрі порівняння OCR1A відбувається скид регістра лічби TCNT1 в стан 0х0000.
Регістр порівняння OCR1A фізично розташований у двох регістрах вводу-виводу: OCR1AH:OCR1AL. Оскільки регістр 16-розрядний, то для запису/читання використовується спеціальний тимчасовий регістр ТЕМР, аналогічно до читання/запису регістра TCNT1.
Часовий інтервал, через який будуть генеруватись переривання буде становити:
T = DIV ´ (N +1) , FT
де N – константа розташована в регістрах OCR1AH:OCR1AL.
Для дозволу переривань від таймерів в МКAT90S2313 служить регістр TIMSK – регістр маски переривань від таймерів/лічильників (Рис. 16).
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TIMSK |
TOIE1 |
OCIE1A |
- |
- |
TICIE1 |
- |
TOIE0 |
- |
Читання(R)/Запис(W) |
|
|
|
|
|
|
|
|
R/W |
R/W |
R |
R |
R/W |
R |
R/W |
R |
|
Початкове значення |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Рис. 16. Формат регістру TIMSK МК AT90S2313
Біти цього регістру мають наступне призначення:
TOIE1 – прапорець дозволу переривання по переповненню таймера/лічильника Т1. OCIE1A – прапорець дозволу переривання по події “Співпадіння ” таймера/лічильника Т1. TICIE1 – прапорець дозволу переривання по події “Захват” таймера/лічильника Т1. TOIE0 – прапорець дозволу переривання по переповненню таймера/лічильника Т0.
Приклад фрагменту програми налаштування таймера Т1 на роботу в режимі порівняння.
; Завантажити регістр порівняння OCR1A визначеною константою N ldi temp, high(N)
out OCR1AH, temp ldi temp, low(N) out OCR1AL, temp
ldi temp, (1<<OCIE1A) |
; Дозволити переривання при співпадінні TCNT1 та OCR1A |
out TIMSK, temp |
|
; Задати DIV = 1 і запустити таймер, вміст TCNT1 обнулюється при перевищені OCR1A ldi temp, (1<<CTC1) | (1<<CS10)
out TCCR1B, temp
sei |
; Дозволити переривання |
2. Хід виконання роботи
Створення та відладка програми детектора руху в середовищі AVR Studio 4 здійснюється аналогічно як в лабораторних роботах № 1 і № 2.
Після того як написана програма скомпільована та відлагоджена запустіть програму Proteus та відкрийте файл LR_3.dsn (Рис. 17).
48

На схемі розташовані: потенціометр PIR_SENSOR, який імітує PIR-давач та кола
підсилення (див. Рис. 5) і дає змогу з допомогою кнопок змінювати напругу на вході АЦП MAX1241 (DD2). Опорна напруга АЦП рівна5 В і формується джерелом постійної напруги V1. Мікроконтролер AT90S2313 (DD1) керує АЦП та світлодіодом D1.
Рис. 16. Схема для симуляції детектора руху в Proteus
Внесіть зміни у схему на Рис. 17 відповідно до свого варіанту.
Підключіть .hex файл до МК на схемі, як описано в лабораторній роботі № 1. Підключіть асемблерний файл, як описано в лабораторній роботі № 2.
Проведіть відладку системи змінюючи напругу на виходіPIR-давача та спостерігаючи реакцію системи. Переконайтесь у правильності функціонування детектора руху.
3.ЗАВДАННЯ
3.1Домашня підготовка до роботи
1.Вивчити теоретичний матеріал.
2.Вивчити основні властивості мікроконтролераAT90S2313, принципи побудови інфрачервоних детекторів руху необхідні для виконання лабораторної роботи.
3.Підготовити програму функціонування інфрачервоного детектора руху згідно індивідуального завдання уТабл. 1. Коефіцієнт підсилення аналогових кіл прийняти рівним 1924.
3.2Виконати в лабораторії
1. Створити проект в AVR Studio, ввести свою програму, провести її асемблювання.
2. В режимі покрокової відладки переконатися в правильності роботи ,програми перевірити дотримання заданих в завданні часових параметрів та умов спрацювання.
3. Відкрити файл LR_3.dsn у програмі Proteus, внести зміни у схему відповідно до свого
49