Умные устройства безопасности на микроконтроллерах Atmel
Покупка
Издательство:
ДМК Пресс
Автор:
Бирюков Андрей Александрович
Год издания: 2017
Кол-во страниц: 162
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-558-5
Артикул: 712380.01.99
В книге подробно рассматривается разработка устройств на базе микроконтроллеров Atmel. С их помощью предлагается собрать ряд полезных в быту устройств безопасности, таких как датчики света, температуры, кодовые замки и других. Издание будет полезно как начинающим радиолюбителям, так и профессионалам.
Тематика:
ББК:
УДК:
- 621: Общее машиностроение. Ядерная техника. Электротехника. Технология машиностроения в целом
- 654: Электросвязь (организация и эксплуатация)
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.02: Инфокоммуникационные технологии и системы связи
- 11.03.03: Конструирование и технология электронных средств
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
www.дмк.рф Сегодня на рынке имеется множество различных недорогих микроконтроллеров, с помощью которых даже начинающий может собрать интересные и полезные устройства. В книге рассматривается разработка практических устройств безопасности на основе микроконтроллеров фирмы Atmel. Предлагаемые решения не только позволят изучить принципы работы различных систем, но и самостоятельно собрать полезные в быту устройства. Книга будет интересна как начинающим радиолюбителям, так и опытным специалистам, которые смогут найти в ней полезные идеи для своих устройств. Бирюков А. А. Андрей Бирюков окончил факультет прикладной математики и физики МАИ. Последние 12 лет работает в области информационной безопасности. В настоящее время основное направление деятельности – защита автоматизированных систем управления технологическими процессами (АСУТП). Постоянный автор журнала «Системный администратор». Автор нескольких книг по информационной безопасности. Увлекается разработкой различных устройств, связанных с вопросами физической и информационной безопасности. Умные устройства безопасности на микроконтроллерах Atmel Интернет-магазин: www.dmkpress.com Книга - почтой: orders@alians-kniga.ru Оптовая продажа: “Альянс-книга” Тел.: (499)782-3889 books@alians-kniga.ru 9 785970 605585 ISBN 978-5-97060-558-5
А. А. Бирюков Умные устройства безопасности на микроконтроллерах Atmel Москва, 2017
УДК 621.398:654.924 ББК 32.968.9 Б64 Бирюков А. А. Б64 Умные устройства безопасности на микроконтроллерах Atmel. – М.: ДМК Пресс, 2017. – 162 с. ISBN 978-5-97060-558-5 В книге подробно рассматривается разработка устройств на базе микроконтроллеров Atmel. С их помощью предлагается собрать ряд полезных в быту устройств безопасности, таких как датчики света, температуры, кодовые замки и других. Издание будет полезно как начинающим радиолюбителям, так и профессионалам. УДК 621.398:654.924 ББК 32.968.9 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. © Бирюков А. А., 2017 ISBN 978-5-97060-558-5 © Оформление, издание, ДМК Пресс, 2017
СОДЕРЖАНИЕ Вступление ...........................................................................................................6 1 Что такое микроконтроллер Atmel ATTiny13 ........................17 1.1. Микроконтроллер – мозг устройства ...................................18 1.1.1. Обзор микроконтроллеров Atmel AVR ......................21 1.1.2. ATtiny13 – маленькая, но шустрая ..............................22 1.1.3. Особенности применения ...............................................24 1.1.4. Заключение ..........................................................................24 1.2. Ассемблер Atmel AVR .................................................................25 1.2.1. Почему именно ассемблер? ............................................25 1.2.2. Регистры ...............................................................................26 1.2.3. Стек и переменные ............................................................28 1.2.4. Проверка и пропуск ..........................................................29 1.2.5. Выполнение логических операций ..............................30 1.2.6. Побитовые операции ........................................................31 1.2.7. Арифметические операции ............................................32 1.2.8. Пересылаем данные ..........................................................32 1.2.9. Управление системой .......................................................33 1.2.10. Вызов процедур ................................................................33 1.2.11. Заключение ........................................................................34 1.3. Пишем первую программу ........................................................34 1.3.1. Электронный «Hello world» ...........................................35 1.3.2. Основные элементы программы ..................................36 1.3.3. Полный исходный код .....................................................39 1.3.4. Заключение ..........................................................................40 2 Компилируем, отлаживаем и заливаем .....................................41 2.1. Средства разработки ...................................................................42 2.1.1. Работа в AVR Studio ..........................................................42 2.1.2. Получаем hex-файл ...........................................................48 2.1.3. Программирование микроконтроллера с помощью AVRdude ....................................................................49 2.1.4. Заключение ..........................................................................51 2.2. Моделируем работу устройства ..............................................52 2.2.1. Системы моделирования ................................................52 2.2.2. Начало работы с ISIS Proteus ........................................53
СОДЕРЖАНИЕ 4 2.2.3. Учимся рисовать схемы ...................................................55 2.2.4. Оживляем схему ................................................................57 2.2.5. Отладка .................................................................................58 2.2.6. Заключение ..........................................................................61 3 Устройства для обнаружения различных событий .............62 3.1. Разрыв и замыкание цепи ..........................................................63 3.1.1. Простейший «антивор» ...................................................63 3.1.2. Передаем код одной кнопкой ........................................71 3.1.3. Заключение ..........................................................................83 3.2. Реагируем на различные явления с помощью датчиков...................................................................................................83 3.2.1. Обнаружение света ...........................................................84 3.2.2. Устройство для обнаружения перегрева ....................89 3.2.3. Датчик влажности .............................................................92 3.2.4. Обнаруживаем движение ................................................96 3.2.5. Датчик удара ........................................................................99 3.2.6. Датчики дыма и газа .......................................................103 3.2.7. Заключение ........................................................................107 4 По мотивам кухонных таймеров… .............................................108 4.1. Работаем со временем ...............................................................109 4.1.1. Циклы для таймера .........................................................109 4.1.2. Таймер ..................................................................................110 4.1.3. Программируемый таймер ...........................................113 4.2. Заключение ...................................................................................121 5 Охранные системы на ATTiny13 ..................................................122 5.1. Основы разработки безопасных устройств .......................123 5.1.1. Надежность ........................................................................123 5.1.2. Безопасность .....................................................................125 5.2. Прикладные задачи ....................................................................127 5.2.1. Скрытый кодовый замок ...............................................127 5.2.2. Не влезай… .........................................................................135 5.2.3. Закладка в автомобиле ..................................................138 5.2.4. Интеграция с ПК и Raspberry .....................................143 5.3. Концепции других устройств .................................................148
СОДЕРЖАНИЕ 5 5.3.1. ATTiny vs Arduino ...........................................................148 5.3.2. ESP8266 и Интернет вещей .........................................150 5.3.3. Onion – темная луковица IoT ......................................151 5.4. Заключение ...................................................................................151 Подведение итогов .......................................................................................152 Приложение .....................................................................................................154 П.1. Микроконтроллеры семейства AtmelATTiny .................154 П.2. Команды ассемблера AtmelATTiny .....................................155 П.3. Где взять исходный код ...........................................................161 П.4. Библиография ............................................................................161
ВСТУПЛЕНИЕ Развитие микроэлектроники привело к появлению достаточно мощных, но при этом недорогих микроконтроллеров, с помощью которых радиолюбители могут разрабатывать собственные устройства. На рынке имеется множество различной литературы, посвященной различным микроконтроллерам. Значительная часть этих книг носит справочный характер, то есть в них большое внимание уделяется общим технологиям, применяемым в том или ином микроконтроллере, рассматривается система команд языка Ассемблер для данного семейства микроконтроллеров. Несомненно, данный тип книг очень полезен, но в них, как правило, не делается упора на разработку практических устройств, а ведь это следующий шаг при практическом изучении микроконтроллеров. Поэтому, на мой взгляд, имеется определенная потребность в практическом описании устройств, их схемах, исходных кодах прошивок с комментариями, а также способах их применения. Конечно, часть этой информации можно найти в Интернете. При написании своей книги я использовал материалы некоторых наиболее интересных ресурсов. Однако данная информация в большинстве своем отрывистая или неполная, например прошивка устройства представлена в виде скомпилированного hexфайла, без исходных кодов, что не позволяет изучить этот код и подправить его под свои нужды. Кроме того, часто примеры нужных устройств приводятся не под ту номенклатуру деталей, и прежде всего микроконтроллер, которые хотелось бы использовать. В таком случае также могут возникнуть сложности с внесением исправлений в схему устройства и исходный код. В своей книге я делаю попытку исправить приведенные выше недостатки практических описаний устройств. Рассмотрев базовые основы программирования микроконтроллеров, я перейду к рассмотрению практических устройств. Все примеры будут содержать список необходимых для данного устройства деталей, схему, исходный код прошивки с комментариями, а также блок-схему, на которой будет представлен алгоритм работы программы. Данная блок-схема, во-первых, позволит лучше понимать, как работает программа, а вовторых, при необходимости читатель сможет самостоятельно реализовать данный алгоритм на другом языке программирования. Обо всем этом мы поговорим в моей книге. Все приведенные устройства построены на базе микроконтроллера ATTiny 13 фирмы Atmel. Выбор именно этого микроконтроллера не случаен. Конечно, в линейке Atmel имеется много интересных и более мощных контроллеров для решения различных задач. Од
С ЧЕГО НАЧАТЬ 7 нако для разработки тех устройств, о которых пойдет речь в книге, данная микросхема является наиболее подходящей по следующим причинам: невысокая стоимость (около $1), наличие АЦП, требования к питанию от 2,7 до 5,5 В, объема энергонезависимой памяти в 1 Кб и оперативной в 64 байта вполне достаточно для решения большинства задач. Кроме того, маленький размер позволяет делать миниатюрные, портативные устройства. Почему устройства безопасности? Будучи по роду своей деятельности специалистом по информационной безопасности, я немало внимания уделяю аспектам, связанным с физической безопасностью. Причем здесь речь идет не только о средствах, предназначенных для предотвращения хищений и другой криминальной активности, но и о пожарной безопасности, утечек газа, протечек воды и тому подобных угроз. Таким образом, я считаю, что устройства безопасности являются необходимыми, и поэтому решил написать эту книгу. А зачем вообще что-то делать самому, ведь все можно купить? Сами радиолюбители и вообще люди, увлекающиеся различными хобби, вряд ли задаются подобным вопросом. А вот их близкие и знакомые довольно часто об этом спрашивают. Объясняют они это тем, что сейчас производители из Юго-Восточной Азии предлагают множество различных устройств по низким ценам. Казалось бы, зачем делать устройства самому, если их можно легко приобрести дешево через Интернет. Однако на практике я часто сталкиваюсь с ситуацией, когда готовые устройства либо не обладают нужным функционалом, либо имеют избыточные возможности, которые мешают их нормальному применению, или просто недостаточно качест венно сделаны, что также мешает их долговременной эксплуатации. Таким образом, зачастую недорогое, специально разработанное под конкретные задачи устройство собственного изготовления может лучше решать поставленные задачи, чем покупное. На этом, я думаю, вступление можно завершить. Думаю, мне удалось убедить читателя в полезности моей книги. С чего начать Новичку в области радиоэлектроники непросто разобраться в том, как работает даже самое простое устройство. Кроме того, при работе с микроконтроллерами необходимо наличие базовых знаний по программированию. Для того чтобы получить общее представление о работе электронных устройств, я рекомендовал бы прочесть книгу «Искусство схемотехники» П. Хоровица и У. Хилла [1]. В этой книге рассматриваются базовые аспекты электроники. О более специфич
ВСТУПЛЕНИЕ 8 ной литературе, связанной с микроконтроллерами Atmel, мы будем говорить в соответствующих разделах. Ну а теперь поговорим о том, что нам потребуется для работы. Необходимые инструменты Радиолюбительство традиционно ассоциируется с паяльниками, припоем, печатными платами и прочим оборудованием. Все это нам, несомненно, потребуется при сборке готового устройства. Но для быстрого «прототипирования», то есть разработки прототипа макета будущего устройства, нам потребуются другие компоненты. Прежде всего нам необходима беспаечная макетная плата. Применение такой платы позволяет проверить, наладить и протестировать схему еще до того, как устройство будет собрано на готовой печатной плате. Это дает возможность избежать ошибок при конструировании, а также быстро внести изменения в разрабатываемую схему и тут же проверить результат. Понятно, что макетная плата, безуслов но, экономит массу времени и является очень полезной в мастерской радиолюбителя. Самый важный плюс беспаечной монтажной платы – это отсутствие процесса пайки при макетировании схемы. Данное обстоятельство значительно сокращает процесс макетирования и отладки устройств. Беспаечная макетная плата состоит из пластмассового основания, в котором имеется набор токопроводящих контактных разъемов (рис. В.1). Рис. В.1. Беспаечная макетная плата
С ЧЕГО НАЧАТЬ 9 Представленная на рисунке плата имеет горизонтальные ряды контактов, подключенных к общему проводнику. А вот по вертикали эти ряды контактов изолированы друг от друга. Таким образом, если нам нужен прототип устройства, мы размещаем детали, подключая их в разные ряды контактов. Для подключения микросхем имеется специальная бороздка посередине. Над ней крепятся микросхемы, при этом левый и правый ряды ножек изолированы друг от друга. Еще одним полезным средством является набор монтажных перемычек, предназначенных для соединения удаленных друг от друга контактов. Конечно, можно использовать обычные провода, например можно «разобрать» кусок сетевого кабеля с витой парой. Однако такие проводки могут плохо держаться в макетной плате, в результате чего может возникать «дребезг контактов». Поэтому я бы рекомендовал использовать наборы готовых перемычек, например BBJ-65. Для работы любого электронного устройства необходимо электропитание. Для большинства описываемых в книге устройств для прототипирования достаточно питания 5 В. Случаи, когда используются батарейки с напряжением 3 В, будут рассматриваться особо. А для того чтобы подать на плату напряжение 5 В, проще всего взять старую зарядку от мобильного телефона соответствующего номинала и срезать с нее штекер, затем зачистить и залудить контакты проводов. Теперь необходимо надежно закрепить провода в плате, например с помощью изоленты. Затем, не забывая про полярность, с помощью перемычек выводим питание на собранный макет устройства. Думаю, с прототипированием устройств все понятно, теперь перейдем к рассмотрению элементной базы. Какие потребуются детали Перед началом разработки устройств нам потребуется некоторый набор деталей. Для большинства из них этот набор будет идентичен, отличаясь лишь двумя-тремя компонентами. Прежде всего нам нужен микроконтроллер. В последующих главах мы подробно рассмотрим всю номенклатуру микроконтроллеров линейки ATTiny от Atmel. Но для наших задач нам потребуется микроконтроллер ATTINY13A-PU. Обращаю внимание на индекс PU, продаются также детали с индексом SSU, однако для разработки устройств, приведенных в моей книге, необходимо использовать микроконтроллеры с индексом PU.