Електронний замок із ключем iButton (DS1990A) на мікроконтролері. Універсальний електронний замок – іммобілайзер із ключами iButton

Пристрій зібрано на мікроконтролері ATtiny2313, до якого підключено зовнішню енергонезалежну пам'ять EEPROM - 24C16. Доступні вихідники, перевірено роботу "на залізі". Контролер доступу працює із ключами типу DS1990, підтримує до 500 шт. Програмування контролера доступу через майстер ключ або через джампери на платі.
Контролер доступу крім кнопки відкриття замка має кінцевик, який відстежує час не закритих дверей. Час спрацювання сигналу програмується перемичкою JP2 (від 10 с до 127 с).

Контролер на електронні ключі DS1990A.

Підтримує до 500 ключів. Пристрій виконаний на мікроконтролері AVR: ATtiny2313.

Принципова схемазчитувача ключів i-Button DS1990 (клацніть за схемою збільшення):

Інструкція з програмування

Робочий режим – при подачі 12В на контролер світлодіод блимає 1Гц.
Режим програмування - світлодіод блимає 2 Гц.
При натисканні на кнопку "OPEN" серія коротких звукових сигналів під час відкриття замка.
Кінцевий датчик дверей (NC) стежить за несанкціонованим проходом без ключа.

Контролер подає звукові сигнали, якщо:
1 - Після відкриття дверей, двері залишилися відчиненими більше запрограмованого часу проходу.
2 - Відкриття дверей без запрограмованого ключа або кнопкою "OPEN", контролер починає видавати короткі подвійні звукові сигнали до моменту закриття дверей.

Увага! Запрограмувати час очікування зачинених дверей МОЖНА ТІЛЬКИ ПЕРЕМИЧКОЮ JP2.

Звукові сигнали

1 короткий сигнал – ключ записаний у пам'ять контролера.
2 короткий сигнал- ключ уже записаний у пам'яті контролера.
5 коротких сигналів - вихід з режиму програмування.
1 довгий сигнал – пам'ять ключів стерта з контролера.
короткі сигнали 20сек. - Пам'ять ключів заповнена.

Запис МАЙСТЕР Ключа та часу відкривання замку

1 - Вимкнути живлення контролера.
2 - Натиснути кнопку "OPEN"
3 - Утримуючи кнопку підключити живлення до контролера через 5 сек. контролер "ПИСКНЕТ",
світлодіод блиматиме з частотою 2 Гц.
4 – Відпустити кнопку.
5 - Піднесіть ключ до зчитувача, пролунає одиночний звуковий сигнал,
Майстер ключ ЗАПИСАН, при цьому запише час відкриття замку 1 сек.

6 - Утримуючи ключ на зчитувачі - вважаємо звукові сигнали,
кількість визначає необхідний час відривання замку, збільшення 1 сек. Але не більше 32 сек.
7 - Вимикаємо живлення контролера або витримуємо паузу 20 сек.

Стирання всієї пам'яті ключів.

1 – Робочий режим.
2 - Натискаємо кнопку "OPEN" і утримуючи підносимо до зчитувача МАЙСТЕР ключ і тримаємо, через 10 сек. пролунає тривалий звуковий сигнал - пам'ять ключів стерта.
3 - Відпускаємо кнопку забираємо ключ.

Додавання нових ключів

1 - Підносимо Майстер-ключ до зчитувача утримуємо 5 сек, пролунає 2 короткі звукові сигнали, світлодіод блиматиме з частотою 2 Гц.
2 - Піднявши по черзі до зчитувача додаткові ключі - пролунає короткий звуковий сигнал, - ключ ЗАПИСАН, якщо пролунає 2 короткі звукові сигнали - СПРАВКА ЗАПИСАТИ ДУБЛІКАТ КЛЮЧА.
3 - Записуємо необхідну кількість (до 500) ключів. Пауза між ключами, що записуються, не більше 20 сек.
4 - Відключаємо живлення контролера або витримуємо паузу 20 сек.

Програмування контролера доступу через ДЖАМПЕРИ JP1, JP2, JP3, JP4

JP1 - Час роботи РЕЛЕ, збільшення 1 сек.
JP2 - Час очікування закриття дверей, збільшення 1 сек.
JP3 - Додавання нових ключів (максимум - 500).
JP4 - Стирає всі ключі з пам'яті контролера.

Джампер виконують свою функцію при постійному замиканні на час використання.

Друкована плата:

Зовнішній вигляд зібраного пристрою:

«Час роботи РЕЛЕ»- JP1 на всьому протязі замикання джампера блимає червоний світлодіод із частотою 1 Гц. та звучить короткий звуковий сигнал біпера. З кожним звуковим та світловим сигналом (зелений світлодіод) до змінної "Час роботи РЕЛЕ" додається по 1 секунді. Усього може бути від 1 сек до 32. Відрахувавши потрібна кількістьсекунд зніміть перемичку.

«Час очікування зачинених дверей»
- JP2 протягом усього замикання джампера блимає червоний світлодіод із частотою 1 гц. та звучить короткий звуковий сигнал Біпера. З кожним звуковим і світловим зеленим сигналом змінна "Час очікування закритих дверей" додається по 1 секунді, всього може бути від 5 сек до 126. Відрахувавши потрібну кількість секунд, зніміть джампер.

«Додавання нових ключів»- JP3 протягом всього замикання джампера червоний світлодіод блимає з частотою 2 Гц. Підносячи ключ до зчитувача при вдалому зчитуванні пролунає короткий звуковий сигнал біпера і світлодіод блимає зеленим кольором- Ключ записаний. Якщо ключ уже записаний у пам'яті, то при спробі записати його знову лунає 2 короткі сигнали біпера. При спробі записати в пам'ять більше 500 ключів постійно блимає червоний світлодіод із частотою 2 Гц. та періодично звучить короткий звуковий сигнал біпера. Зніміть джампер.

«Стирання всіх ключів із пам'яті контролера»- JP4 через 3 с після замикання видається 5 коротких сигналу біпера, пауза, потім безперервно звучить біпер на час стирання (приблизно 10сек) - пам'ять ключів стерта. Заберіть джампер.

До вашої уваги представлена ​​схема електронного замка із ключем таблеткою iButtonмоделі DS1990A (Touch Memory) Ключ є пристроєм, який має в своїй пам'яті унікальний серійний номер. Унікальність полягає в тому, що серійний номер складається з 48 біт і, як наслідок цього, кількість можливих варіантівскладає 281474976710656.

Опис електронного замку

Замок зібраний на мікроконтролері фірми Microchip PIC16F628A (627A, 648A). Після подачі живлення мікроконтролер посилає імпульс скидання тривалістю 500 мкс і через 70 мкс перевіряє відповідь від DS1990A. Якщо відповіді немає, мікроконтролер чекає ще приблизно 80 мс і знову передає імпульс скидання. За таким алгоритмом перевіряється підключення ключа до замка.

Якщо відповідь є, то DS1990A підключений до замку. Потім надсилається команда "читати ROM" (33h), після чого мікроконтролер переходить на прийом і записує в ОЗУ переданий таблеткою DS1990A номер, де порівнює його із записаним номером в EEPROM. Якщо він збігається з одним з них, то подається звуковий сигнал і встановлюється високий рівень на виводі RA1 протягом 1,5 секунд. Оптопара DA1 (АОТ122А) відкриє VT1 (КТ972, BD677, BD679, BD681), що управляє електромагнітним на 12 вольт.

Процес запису номера ключа в EEPROM: додати ключ до замка та після звукового сигналу натиснути кнопку SA1. Ця кнопка повинна бути розташована в прихованому, недоступному для сторонніх людеймісці.

Для очищення всіх номерів з EEPROM необхідно при вимкненому живленні натиснути кнопку SA1, подати живлення та утримувати кнопку протягом 5 секунд. Після очищення EEPROM замок подасть звуковий сигнал. Загальна кількістьсерійних номерів, які можна записати на згадку не більше 21.

Щоб мікроконтролер не постраждав від статичного розряду, у схемі застосовано стабілітрон VD1 (КС156А, 1N4733A, BZX55C5V1) на 5В. У цьому замку можна використовувати будь-який мікроконтролер PIC16F627A, PIC16F628A, PIC16F648A. Для мікроконтролера PIC12F629/PIC12F675 є своя прошивка. Запитати схему можна від .

При програмуванні слід виставити такі біти.

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

У останнім часомширокого поширення набули замки, ключем до яких є електронна таблетка iButton (або touch memory) фірми Dallas Semiconductor. Такі замки часто використовуються на дверях під'їздів, а також у багатьох закладах. Крім того, ключі iButton часто застосовуються для розрахунків на автозаправних станціях та інших місцях. Таким чином, у багатьох вже є ключі iButton від чогось. Тому при проектуванні саморобного замку раціонально використовувати в ньому ключі, що вже є у користувача. Саме так і зроблено у пропонованому замку: з ним можуть працювати будь-які типи ключів, тому що використовується тільки записаний у ПЗУ iButton серійний номер, який є в будь-якому типі. До того ж, команда читання цього номера та сама для всіх типів ключів (33H). Код сімейства, який відрізняється у різних типівможе бути будь-яким. Він сприймається як одна цифра серіального номера. Потрібно відзначити, що найдешевшим типом ключів є DS1990A.

Замок проектувався для індивідуального використання та має просту конструкцію. на вхідні дверізовні розташовується тільки панелька для iButton та світлодіод відчинення дверей. Відкриття дверей зсередини здійснюється за допомогою кнопки. Як виконавчий механізм використовується стандартна клямка з електромагнітом, який розрахований на напругу 12В. Коди ключів зберігаються в незалежній пам'яті і можуть стиратися і додаватися користувачем. Для захисту від несанкціонованого перепрограмування замка використовується майстер-ключ. Загалом у пам'ять можна записати 9 ключів. Ця кількість продиктована можливостями 1-розрядного індикатора номера ключа, що програмується. Якщо використовувати ще й літери, можна збільшити сумарну кількість ключів до 15. Це робиться шляхом заміни значення константи MAXK в програмі. У такий же спосіб можна і зменшити максимальну кількість ключів.


Мал. 1. Принципова схема замку

Принципова схема замку показана малюнку 1. Основою конструкції є микроконтроллер U1 типу AT89C2051 фірми Atmel. До порту P1 підключено 7-сегментний індикатор, який використовується під час програмування ключів. Для цих цілей призначена і кнопка SB1, підключена до порту P3.7. Зберігання серійних номерів ключів здійснюється у мікросхемі EEPROM U3 типу 24C02, підключеної до портів P3.4 (SDA) та P3.5 (SCL). Зовнішня панелька для iButton підключається до порту P3.3 через роз'єм XP2 та елементи захисту VD4, R3, VD5 та VD6. Підтягуючий резистор R4 вибраний згідно зі специфікацією однопровідної шини. Паралельно до зовнішньої панельки підключена ще й внутрішня панелька XS1, яка використовується для програмування ключів. Кнопка відчинення дверей підключена до порту P3.2 через роз'єм XP1 та такі ж елементи захисту, як і для iButton. Виконавчим пристроєм замку є електромагніт, що підключений через термінал XT1. Електромагнітом керує ключ VT3, в якості якого використовується потужний МОП-транзистор типу IRF540. Діод VD7 захищає від викидів самоіндукції. Ключем VT3 керує транзистор VT2, який інвертує сигнал, що надходить з порту P3.0 і забезпечує рівні 0/12В, що управляють, на затворі VT3. Інверсія потрібна для того, щоб виконавчий пристрій не спрацьовував під час скидання мікроконтролера, коли на порту є рівень логічної одиниці. 12-вольтові керуючі рівні дозволили застосувати звичайний МОП-транзистор замість дефіцитного низькопорогового (logick level). Для індикації відкриття замка використовується світлодіод, який управляється тим самим портом, що й електромагніт, але через транзисторний ключ VT1. Світлодіод підключається через той самий роз'єм, що і iButton. Оскільки пристрій має працювати цілодобово без обслуговування, для підвищення надійності встановлено супервізор U2 типу ADM1232. Він має вбудований сторожовий таймер та монітор живлення. На порту P3.1 мікроконтролер формує періодичні імпульси скидання сторожового таймера.

Живлення пристрою здійснюється від вбудованого блоку живлення, що містить трансформатор T1, випрямний міст VD9-VD12 та інтегральний стабілізатор U4. Як резервного джерелаживлення використовується батарея BT1-BT10 з 10-ти NiMH-акумуляторів типорозміру AA ємністю 800мА/год. При живленні пристрою від мережі акумуляторна батарея заряджається через резистор R10 струмом приблизно 20мА, що становить 0.025C. Режим заряджання малим струмом називають крапельним (trickle charge). У такому режимі акумулятори можуть бути як завгодно, контроль кінця процесу зарядки не потрібно. Коли акумулятори виявляються повністю зарядженими, енергія, що забирається ними від джерела живлення, перетворюється на тепло. Але оскільки струм зарядки дуже маленький, тепло, що виділяється, розсіюється в навколишній простір без скільки-небудь помітного збільшення температури акумуляторів.

Конструктивно пристрій виконаний у корпусі розміром 150х100х60мм. Більшість елементів, включаючи трансформатор живлення, змонтовано на друкованій платі. Акумулятори розміщуються у стандартних пластмасових утримувачах, які закріплені всередині корпусу поруч із платою. В принципі, можна використовувати й інші типи акумуляторів, наприклад 12-вольтову кислотну батарею, що не обслуговується, застосовується в охоронних системах. Для підключення виконавчого пристрою на платі є термінали типу TB-2, решта зовнішніх ланцюгів підключаються через малогабаритні роз'єми з кроком контактів 2.54мм. Роз'єми розташовані на друкованій платі та зовні корпуси недоступні. Провіди виходять із корпусу через гумові ущільнювачі. Оскільки індикатор HG1, кнопка SB1 та панель для iButton XS1 використовуються лише під час програмування, вони розміщені на платі всередині пристрою. Це спрощує конструкцію корпусу та робить його більш захищеним від зовнішніх впливів. На бічній панелі корпусу розміщено лише світлодіод індикації увімкнення VD13. Схема зовнішніх з'єднань показано на рис. 2.


Мал. 2. Схема зовнішніх з'єднань

При відкриванні дверей електромагніт подається імпульс тривалістю 3 секунди. Логіка роботи пристрою така, що якщо кнопку відчинення дверей утримувати, весь час електромагніт буде під напругою і, відповідно, двері будуть відчиненими.

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

Для програмування нового ключа потрібно виконати такі дії:

  1. Натиснути кнопку програмування.
  2. На індикаторі з'явиться літера P, що означає вхід у режим програмування.
  3. Торкнутися майстер-ключом панельки.
  4. На індикаторі з'явиться цифра «1», яка позначає номер ключа, що програмується.
  5. Кнопкою вибрати потрібний номер.
  6. Торкніться будь-яким ключем панелі.
  7. Цифра на індикаторі почне блимати, що говорить про готовність до програмування.
  8. Торкніться панелі тим ключем, код якого потрібно занести на згадку.
  9. У разі успішного програмування, цифра на індикаторі перестане блимати і почне горіти постійно.
  10. Для виходу з режиму програмування потрібно почекати 5 секунд, після чого індикатор згасне.

Схематично процес програмування нового ключа показано на рис. 3.


Мал. 3. Програмування нового ключа

Якщо потрібно запрограмувати кілька ключів, можна відразу перейти від пункту 9 до пункту 5 і повторити пункти 5 – 9 необхідне число раз.

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

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


Мал. 4. Стирання зайвого ключа

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

Код майстер-ключ записується в ПЗУ програм мікроконтролера, починаючи з адреси 2FDH. Довжина коду складає 8 байт. Послідовність цифр має бути така сама, як і на корпусі touch-memory, читати потрібно зліва направо. Тобто. за адресою 2FDH заноситься значення контрольної суми, потім за адресами 2FEH – 303H шість байт серійного номера, починаючи зі старшого байта, та, нарешті, за адресою 304H – код сімейства. Наприклад, код може виглядати так: 67 00 00 02 D6 85 26 01.

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


Мал. 5. Блок-схема основного циклу програми

Для обробки подій, пов'язаних із програмуванням, є дві підпрограми: PROGT та PROGS, блок-схеми яких наведені на рис. 6. Перша викликається під час зчитування коду ключа як програмування, друга – при натисканні кнопки програмування (NUMBER). Процес програмування розбитий на 3 фази. При натисканні кнопки NUMBER здійснюється вхід програмування, тобто. перехід до фази 1. У цьому на індикатор виводиться буква «P». Коди ключів, що зчитуються після цього, перевіряються на збіг з кодом майстер-ключа, оскільки тільки він може дозволити продовжити програмування. Якщо такий збіг стався, здійснюється перехід до фази 2. На індикатор виводиться номер поточного ключа, який кнопка NUMBER може змінювати. Якщо знову буде зареєстровано торкання ключа, то відбудеться перехід до фази 3. Ще один торкання ключа призведе до запам'ятовування його коду та повернення до фази 2. Натисканням кнопки NUMBER також можна повернутися до фази 2, але без зміни вмісту пам'яті. Будь-яка дія в режимі програмування викликає перезавантаження таймера повернення, який має інтервал 5 секунд і перевіряється в основному циклі. Якщо буде виявлено обнулення цього таймера, відбувається вихід з режиму програмування.


Мал. 6. Блок-схеми підпрограм, що використовуються під час програмування коду ключа

Наведені на рис. 5 і 6 блок-схеми є спрощеними, проте загальну логіку побудови програми вони зрозуміти дозволяють.

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

Завантажити файли:
lock.asm – вихідний текст програми замку.
lock.bin – відтрансльована програма.

Якийсь час тому з'явився проект "ІМІТАТОР TOUCH-MEMORY DS1990A", тобто. відмичка. Тепер до Вашої уваги пропонується замок до цієї відмички. Замок має просту конструкцію та призначений в основному для індивідуального використання. Замок працює з будь-якими типами ключів iButton, тому можна застосовувати вже наявні ключі, призначені для інших цілей. Усього в пам'ять може бути записано до 9 ключів, хоча цю кількість можна легко збільшити. Для авторизації процесу програмування використовується майстер-ключ, код якого занесений до ПЗП і не може бути стертий або змінений звичайною процедурою програмування замка.

Останнім часом широкого поширення набули замки, ключем до яких є електронна таблетка iButton (або touch memory) фірми Dallas Semiconductor. Такі замки часто використовуються на дверях під'їздів, а також у багатьох закладах. Крім того, ключі iButton часто застосовуються для розрахунків на автозаправних станціях та інших місцях. Таким чином, у багатьох вже є ключі iButton від чогось. Тому при проектуванні саморобного замку раціонально використовувати в ньому ключі, що вже є у користувача. Саме так і зроблено у пропонованому замку: з ним можуть працювати будь-які типи ключів, тому що використовується тільки записаний у ПЗУ iButton серійний номер, який є в будь-якому типі. До того ж, команда читання цього номера та сама для всіх типів ключів (33H). Код сімейства, що відрізняється у різних типів, може бути будь-яким. Він сприймається як одна цифра серіального номера. Потрібно відзначити, що найдешевшим типом ключів є DS1990A.

Замок проектувався для індивідуального використання та має просту конструкцію. На вхідних дверях зовні розташовується тільки панелька для iButton та світлодіод відчинення дверей. Відкриття дверей зсередини здійснюється за допомогою кнопки. Як виконавчий механізм використовується стандартна клямка з електромагнітом, який розрахований на напругу 12В. Коди ключів зберігаються в незалежній пам'яті і можуть стиратися і додаватися користувачем. Для захисту від несанкціонованого перепрограмування замка використовується майстер-ключ. Загалом у пам'ять можна записати 9 ключів. Ця кількість продиктована можливостями 1-розрядного індикатора номера ключа, що програмується. Якщо використовувати ще й літери, можна збільшити сумарну кількість ключів до 15. Це робиться шляхом заміни значення константи MAXK в програмі. У такий же спосіб можна і зменшити максимальну кількість ключів.


Мал. 1. Принципова схема замку

Принципова схема замку показана малюнку 1. Основою конструкції є микроконтроллер U1 типу AT89C2051 фірми Atmel. До порту P1 підключено 7-сегментний індикатор, який використовується під час програмування ключів. Для цих цілей призначена і кнопка SB1, підключена до порту P3.7. Зберігання серійних номерів ключів здійснюється у мікросхемі EEPROM U3 типу 24C02, підключеної до портів P3.4 (SDA) та P3.5 (SCL). Зовнішня панелька для iButton підключається до порту P3.3 через роз'єм XP2 та елементи захисту VD4, R3, VD5 та VD6. Підтягуючий резистор R4 вибраний згідно зі специфікацією однопровідної шини. Паралельно до зовнішньої панельки підключена ще й внутрішня панелька XS1, яка використовується для програмування ключів. Кнопка відчинення дверей підключена до порту P3.2 через роз'єм XP1 та такі ж елементи захисту, як і для iButton. Виконавчим пристроєм замку є електромагніт, що підключений через термінал XT1. Електромагнітом керує ключ VT3, в якості якого використовується потужний МОП-транзистор типу IRF540. Діод VD7 захищає від викидів самоіндукції. Ключем VT3 керує транзистор VT2, який інвертує сигнал, що надходить з порту P3.0 і забезпечує рівні 0/12В, що управляють, на затворі VT3. Інверсія потрібна для того, щоб виконавчий пристрій не спрацьовував під час скидання мікроконтролера, коли на порту є рівень логічної одиниці. 12-вольтові керуючі рівні дозволили застосувати звичайний МОП-транзистор замість дефіцитного низькопорогового (logick level). Для індикації відкриття замка використовується світлодіод, який управляється тим самим портом, що й електромагніт, але через транзисторний ключ VT1. Світлодіод підключається через той самий роз'єм, що і iButton. Оскільки пристрій має працювати цілодобово без обслуговування, для підвищення надійності встановлено супервізор U2 типу ADM1232. Він має вбудований сторожовий таймер та монітор живлення. На порту P3.1 мікроконтролер формує періодичні імпульси скидання сторожового таймера.

Живлення пристрою здійснюється від вбудованого блоку живлення, що містить трансформатор T1, випрямний міст VD9-VD12 та інтегральний стабілізатор U4. Як резервне джерело живлення використовується батарея BT1-BT10 з 10-ти NiMH-акумуляторів типорозміру AA ємністю 800мА/год. При живленні пристрою від мережі акумуляторна батарея заряджається через резистор R10 струмом приблизно 20мА, що становить 0.025C. Режим заряджання малим струмом називають крапельним (trickle charge). У такому режимі акумулятори можуть бути як завгодно, контроль кінця процесу зарядки не потрібно. Коли акумулятори виявляються повністю зарядженими, енергія, що забирається ними від джерела живлення, перетворюється на тепло. Але оскільки струм зарядки дуже маленький, тепло, що виділяється, розсіюється в навколишній простір без скільки-небудь помітного збільшення температури акумуляторів.

Конструктивно пристрій виконаний у корпусі розміром 150х100х60мм. Більшість елементів, включаючи трансформатор живлення, змонтовано на друкованій платі. Акумулятори розміщуються у стандартних пластмасових утримувачах, які закріплені всередині корпусу поруч із платою. В принципі, можна використовувати й інші типи акумуляторів, наприклад 12-вольтову кислотну батарею, що не обслуговується, застосовується в охоронних системах. Для підключення виконавчого пристрою на платі є термінали типу TB-2, решта зовнішніх ланцюгів підключаються через малогабаритні роз'єми з кроком контактів 2.54мм. Роз'єми розташовані на друкованій платі та зовні корпуси недоступні. Провіди виходять із корпусу через гумові ущільнювачі. Оскільки індикатор HG1, кнопка SB1 та панель для iButton XS1 використовуються лише під час програмування, вони розміщені на платі всередині пристрою. Це полегшує конструкцію корпусу і робить його більш захищеним від зовнішніх впливів. На бічній панелі корпусу розміщено лише світлодіод індикації увімкнення VD13. Схема зовнішніх з'єднань показано на рис. 2.


Мал. 2. Схема зовнішніх з'єднань

При відкриванні дверей електромагніт подається імпульс тривалістю 3 секунди. Логіка роботи пристрою така, що якщо кнопку відчинення дверей утримувати, весь час електромагніт буде під напругою і, відповідно, двері будуть відчиненими.

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

Для програмування нового ключа потрібно виконати такі дії:

1. Натисніть кнопку програмування.
2. На індикаторі з'явиться літера P, що означає вхід у режим програмування.
3. Торкнутися майстер-ключом панельки.
4. На індикаторі з'явиться цифра «1», яка позначає номер програмованого ключа.
5. Кнопкою вибрати потрібний номер.
6. Натисніть будь-який ключ панелі.
7. Цифра на індикаторі почне блимати, що говорить про готовність до програмування.
8. Торкніться панелі тим ключем, код якого потрібно занести на згадку.
9. У разі успішного програмування цифра на індикаторі перестане блимати та почне горіти постійно.
10. Для виходу з режиму програмування потрібно почекати 5 секунд, після чого індикатор згасне.

Схематично процес програмування нового ключа показано на рис. 3.


Мал. 3. Програмування нового ключа

Якщо потрібно запрограмувати кілька ключів, можна відразу перейти від пункту 9 до пункту 5 і повторити пункти 5 – 9 необхідне число раз.

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

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


Мал. 4. Стирання зайвого ключа

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

Код майстер-ключ записується в ПЗУ програм мікроконтролера, починаючи з адреси 2FDH. Довжина коду складає 8 байт. Послідовність цифр має бути така сама, як і на корпусі touch-memory, читати потрібно зліва направо. Тобто. за адресою 2FDH заноситься значення контрольної суми, потім за адресами 2FEH – 303H шість байт серійного номера, починаючи зі старшого байта, та, нарешті, за адресою 304H – код сімейства. Наприклад, код може виглядати так: 67 00 00 02 D6 85 26 01.

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


Мал. 5. Блок-схема основного циклу програми

Для обробки подій, пов'язаних із програмуванням, є дві підпрограми: PROGT та PROGS, блок-схеми яких наведені на рис. 6. Перша викликається під час зчитування коду ключа як програмування, друга – при натисканні кнопки програмування (NUMBER). Процес програмування розбитий на 3 фази. При натисканні кнопки NUMBER здійснюється вхід програмування, тобто. перехід до фази 1. У цьому на індикатор виводиться буква «P». Коди ключів, що зчитуються після цього, перевіряються на збіг з кодом майстер-ключа, оскільки тільки він може дозволити продовжити програмування. Якщо такий збіг стався, здійснюється перехід до фази 2. На індикатор виводиться номер поточного ключа, який кнопка NUMBER може змінювати. Якщо знову буде зареєстровано торкання ключа, то відбудеться перехід до фази 3. Ще один торкання ключа призведе до запам'ятовування його коду та повернення до фази 2. Натисканням кнопки NUMBER також можна повернутися до фази 2, але без зміни вмісту пам'яті. Будь-яка дія в режимі програмування викликає перезавантаження таймера повернення, який має інтервал 5 секунд і перевіряється в основному циклі. Якщо буде виявлено обнулення цього таймера, відбувається вихід з режиму програмування.


Мал. 6. Блок-схеми підпрограм, що використовуються під час програмування коду ключа

Наведені на рис. 5 і 6 блок-схеми є спрощеними, проте загальну логіку побудови програми вони зрозуміти дозволяють.

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

Файли:
lock.asm – вихідний текст програми замку.
l ock.bin – відтрансльована програма.

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
U1 МК AVR 8-біт

AT89C2051

1 До блокноту
U2 Супервізор живлення

TC1232

1 До блокноту
U3 EEPROM24C021 До блокноту
U4 Лінійний регулятор

LM7805

1 До блокноту
VT1 ТранзисторКТ3129А1 До блокноту
VT2 Біполярний транзистор

КТ3130А9

1 До блокноту
VT3 MOSFET-транзистор

IRF540

1 До блокноту
VD1, VD4 Стабілітрон

BZV55-B5V6

2 До блокноту
VD2, VD3, VD5, VD6 Випрямний діод

1N4148

4 До блокноту
VD7, VD8 Випрямний діод

FR307

2 До блокноту
VD9-VD12 Діодний містKBU4051 До блокноту
С1, С2 Конденсатор33 пФ2 До блокноту
С3 Конденсатор0.1 мкФ1 До блокноту
С4 33 мкФ1 До блокноту
С5 Електролітичний конденсатор10000 мкФ 16 В1 До блокноту
R1, R3 Резистор

330 Ом

2 До блокноту
R2, R4 Резистор

4.7 ком

2 До блокноту
R5, R6, R8, R9 Резистор

47 ком

4 До блокноту
R7, R19 Резистор

220 Ом

2 До блокноту
R10 Резистор

100 Ом

1 1 Вт

Даний електронний замок – іммобілайзер, як ключі для авторизації використовує ключі iButton (Dallas Touch Memory) типу DS1990. Кожен такий ключ має свій унікальний 64-бітний серійний номер, який є кодом доступу, що дозволяє власнику ключа, наприклад, відчинити двері.

Основні параметри електронного замку:

  • пам'ять до 15 ключів;
  • три режими роботи: моностабільний, бістабільний та з регульованим часом включення реле;
  • світлова індикація роботи замку (індикатор зчитувача);
  • харчування від 9 до 15 В/100мА;
  • струм споживання у режимі очікування: 6мА;
  • розміри плати: 34 46 мм;
  • робота схеми протестована в Proteus (посилання наприкінці статті)

Принципова схема замку показано малюнку нижче. Його основним елементом є мікроконтролер PlC12F675 із внутрішнім АЦП. У цьому випадку АЦП мікроконтролера використовується для налаштування параметрів замка.

Мікроконтролер тактується від внутрішнього RC-генератора із частою 4МГц. Схема запитана постійною напругою 12 В. Це може бути будь-який акумулятор або блок живлення з струмом навантаження не менше 100мА.

Діод VD2 захищає систему від неправильної полярності підключення напруги. Вхідна напруга подається на стабілізатор DAl типу 78L05, конденсатори C1…C4 виконують функцію живлення. У ролі виконавчого елемента використано мініатюрне релетипу JQC3FF (котушка 12 DC, контакти 10 А/230).

Вихідний сигнал з мікроконтролера (висновок 2) надходить на базу транзистор VT1, колектор якого включена котушка реле. Резистор R7 обмежує струм, що протікає через базу, тоді як діод VD1 захищає транзистор від ЕРС самоіндукції, що виникає в момент відключення реле.

Резистори R2 та R3 разом з R1, залежно від положення перемички JP2, визначають режим роботи замку:

  1. Якщо перемичка JP2 не встановлена, на вхід G4 через резистор R3 подається напруга високого рівня. У цьому випадку мікроконтролер переведе роботу замка на моностабільний режим. У цьому режимі дотик ключа до зчитувача призведе до увімкнення реле. Цей стан буде постійним аж до вимкнення живлення, незалежно від того, чи буде ключ знову доданий. Такий режим роботи може бути використаний для роботи як іммобілайзер в машині.
  2. Встановлення перемички на висновки переведе замок у бістабільний режим роботи. У цьому режимі кожне торкання ключа призведе до перемикання реле.
  3. Встановлення перемички на висновки визначає тимчасовий режим роботи. У цьому режимі дотик зареєстрованого ключа до зчитувача призведе до увімкнення реле на певний час. Цей час залежить від величини напруги, поданої на вхід мікроконтролера G4. Для завдання цієї величини використовується зібраний з елементів R2, R3 і R1. Час увімкнення реле знаходиться в діапазоні від l…30 секунд.

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

Дана схема протестована в Proteus:

Реєстрація ключів

Щоб замок міг реагувати на наш ключ, необхідно зареєструвати його в пам'яті мікроконтролера. Можливий запис до 15 ключів. Для переведення замка в режим реєстрації необхідно при вимкненому живленні встановити перемичку PROG та увімкнути живлення.

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

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

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

Після запису п'ятнадцятого ключа мікроконтролер вийде з процедури запису ключів і подальше збереження буде неможливим. Цей стан сигналізується одночасним блиманням обох світлодіодів. Тепер необхідно вимкнути живлення та зняти перемичку PROG. Після повторного включенняживлення замок буде готовий до роботи.

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

Працюючи в нормальному режимі, мікроконтролер постійно перевіряє, чи до зчитувача доданий зареєстрований ключ. У разі виявлення незареєстрованого ключа на одну секунду спалахне червоний діод, а при дотику до зчитувача зареєстрованого ключа призведе до включення реле замка в залежності від положення перемички J2.

Уся схема вмістилася на односторонній друкованій платі розміром 34х46 мм.

Слід мати на увазі, що всі зміни в конфігурації замка, такі як змінити час увімкнення реле або вибір режиму роботи (J2), будуть активними тільки після вимкнення та повторного вмикання напруги живлення замка.

(30,6 Kb, завантажено: 1 349)