Автор работы: Пользователь скрыл имя, 13 Апреля 2014 в 23:40, курсовая работа
Кодовые замки являются эффективным средством предотвращения доступа посторонних лиц к охраняемым помещениям. К их достоинствам можно отнести простоту в обращении, надёжность, возможность обеспечить высокую степень защиты, относительную лёгкость смены кода (по сравнению со сменой обычного механического замка). Также немаловажными являются отсутствие необходимости изготовления ключей при предоставлении доступа большому количеству людей и невозможность физической потери ключа. Недостатком таких систем можно назвать возможность для злоумышленника подсмотреть код или подобрать его.
Введение………………………………………………………...…………….. 2
Разработка структурной схемы…………………………….……..……… 3
Принцип действия замка………………………………….….………. 4
Разработка принципиальной схемы………………...….……..…………. 6
Выбор элементов схемы…………………………………..………….. 7
Обоснование выбора микроконтроллера…………..……....………... 9
Разработка алгоритма управляющей программы.…………………….. 12
Разработка управляющей программы………………………………….. 13
Заключение………………………………………………………………….. 28
Список использованной литературы…………………………………….… 29
Приложение 1……...………………………………………………………… 30
Приложение 2…………………………………………………………...…… 31
Приложение 3………………………………………………………………… 32
Содержание
Введение……………………………………………………….
Заключение……………………………………………………
Список использованной литературы…………………………………….… 29
Приложение 1……...………………………………………………………… 30
Приложение 2…………………………………………………………...…… 31
Приложение 3………………………………………………………………… 32
Введение
Кодовые замки являются эффективным средством предотвращения доступа посторонних лиц к охраняемым помещениям. К их достоинствам можно отнести простоту в обращении, надёжность, возможность обеспечить высокую степень защиты, относительную лёгкость смены кода (по сравнению со сменой обычного механического замка). Также немаловажными являются отсутствие необходимости изготовления ключей при предоставлении доступа большому количеству людей и невозможность физической потери ключа. Недостатком таких систем можно назвать возможность для злоумышленника подсмотреть код или подобрать его. Однако, при большой разрядности кода или наличии конструктивных особенностей, препятствующих подбору кода, таких как ограничение количества попыток или введение временной задержки между неудачными попытками, эта задача сильно затрудняется, поэтому последний недостаток нельзя назвать существенным.
В данном курсовом проекте осуществляется разработка электронного кодового замка с функцией дверного звонка и изменением пароля на микроконтроллере ATtiny2313.
Рисунок 1.1 – Структурная схема устройства
Введение кода доступа происходит посимвольно на клавиатурной матрице размером 4х3 и завершается после окончания контрольного промежутка времени (1с), то есть через 1 секунду после прекращения манипуляций с клавиатурой, при этом фильтруются случайные переключения контактов при нажатии клавиш и одновременном нажатии нескольких клавиш. Длина кода возможна любая, она ограничена только размером ОЗУ и EEPROM микроконтроллера. Матричная организация уменьшает количество занятых выводов МК.
Проверка кода доступа происходит сравнением введённого значения с тем, которое было установлено при конфигурировании кода доступа (которое было записано в EEPROM контроллера).
При нажатии кнопки звонка генерируются мелодии, записанные в памяти микроконтроллера. Они сохраняется в ПЗУ в виде отсчётов сигнала. Генерация звукового сигнала совершается с помощью пьезоэлектрического динамика подачей на него периодического сигнала звуковой частоты.
Изменение пароля происходит следующим образом: ввод старого пароля, проверка введенного пароля, если правильно введён, проверка режима записи, если замок находится в режиме записи, то ввод нового пароля, контрольный промежуток времени (1с.), открытие двери.
Замок имеет два режима работы. Режим "Записи кода" и режим "Работы". Для выбора режима предназначен переключатель S14 (см. Рисунок 2.1). Если контакты этого переключателя разомкнуты - замок находится в режиме "Работа", если замкнуты - в режиме "Запись кода". В режиме "Записи кода" хозяин квартиры нажимает кнопки набора кода в любом порядке и в любых комбинациях. Микроконтроллер отслеживает все изменения на клавиатуре и записывает их в ОЗУ. Причем не берется во внимание время удержания той либо иной комбинации. В память записывается лишь факт смены комбинаций. Длина кодовой последовательности ограничена только размерами ОЗУ. Сигналом к окончанию ввода кода служит прекращение манипуляций с клавиатурой. Процессор считает, что ввод кода закончился, если состояние клавиатуры не изменилось в течение одной секунды. В процессе набора код записывается в ОЗУ. При обнаружении паузы в 1 секунду процессор переписывает код в свою внутреннюю долговременную память (EEPROM). Этот код представляет собой последовательность байтов, отражающих все состояния клавиатуры во время набора. После того, как коды будут записаны, замок можно перевести в режим «Работа» (разомкнув контакты S14).
В режиме «Работа» замок постоянно находится в ожидании нажатия кнопок (S1...S12). То есть, ждет ввода кода. Для того, что бы дверь открылась, необходимо повторить те же самые манипуляции с кнопками, которые были сделаны в режиме записи кода . Микроконтроллер так же, как и в предыдущем случае отслеживает эти манипуляции, и записывает полученный таким образом код в ОЗУ. По окончании ввода кода (не нажимая
кнопок в течении 1 секунды) программа переходит в режим сверки кода. Она сравнивает код находящийся в ОЗУ и код, записанный в EEPROM. Сначала сравнивается длина обоих кодов. Затем коды сверяются побайтно. Если сравнение прошло успешно, микроконтроллер подает сигнал на ключ механизма открывания замка (VT2). Транзистор открывается и подает питание на реле K1, которое и открывает замок. Тут можно сделать по разному. Например, контакты реле K1 могут включать соленоид замка.
Кроме собственно замка это устройство выполняет так же роль дверного звонка. Для этого в схеме есть кнопка звонка (S13) и звуковой излучатель (VF1). В качестве усилителя звука используется ключ на транзисторе VT1. Программа сделана таким образом, что при прекращении звука на выходе PB3 контроллера всегда устанавливается логический ноль. Ключ закрывается и ток через транзистор и динамик VF1 не идет. Таким образом удалось обойтись без разделительной емкости. Дверной звонок работает независимо от кодового замка. Правда только в режиме ожидания кода. Когда код уже начали набирать, звонок отключается. При нажатии на кнопку звонка звучит одна из восьми записанных в память мелодий. При каждом нажатии новая мелодия. Мелодия звучит, пока нажата кнопка.
Рисунок 2.1 – Принципиальная схема кодового замка
Во-первых, за основу возьмём микроконтроллер ATtiny2313 (D1), так как для нашей задачи особо высокопроизводительного микроконтроллера не требуется, а эта модель полностью соответствует нашим требованиям, а также она имеет преимущества и особенности , которые были перечислены выше.
Для более точного подсчёта времени и корректного воспроизведения звука возьмём кварцевый резонатор (Q1) рассчитанный на частоту 4МГц. Для его корректной работы также необходимо выбрать С1 и С2, формирующие цепи согласования кварцевого резонатора. Емкости конденсаторов C1 и C2, подключаемых между выводами резонатора и общим проводом, зависят от частоты и типа резонатора. Для кварцевого резонатора на частоту 4 МГц, например, емкость каждого конденсатора составляет порядка 22 пФ.
Для подключения звукового излучателя (динамика) применяется ключевой каскад на транзисторе VT1. Это самый простой способ получить звук достаточной громкости, учитывая, что наш сигнал это прямоугольные импульсы с амплитудой, почти равной напряжению питания. Транзисторный каскад нужен лишь для повышения нагрузочной способности.
Микроконтроллер имеет два встроенных таймера/счетчика. Для формирования звука лучше подходит шестнадцатиразрядный таймер. Чем больше разрядов, тем с большей точностью можно выбирать его коэффициент деления.
Это очень важно для создания нотного стана. Поэтому для формирования звука выберем шестнадцатиразрядный таймер Т1. Теперь определимся с режимом работы нашего таймера. Для генерации звука удобнее всего использовать режим СТС (сброс по совпадению). Нам просто нужно выбрать такой коэффициент деления, чтобы на выходе таймера получить колебания в звуковом диапазоне частот.
Теперь определимся с тем, как наш сигнал будет попадать на внешний вывод микроконтроллера. Микроконтроллер предусматривает прямой вывод сигнала на один из своих выходов. Причем предусмотрены отдельные выходы для каждого из каналов совпадения. Для канала А подобный выход называется ОС1А. Он совмещен с третьим разрядом порта РВ и является альтернативной функцией данного контакта.
Подключение и отключение сигнала совпадения к внешнему выводу ОС1А производится программным путем. Это позволяет программе в нужный момент включать или выключать звук. Так как для вывода звука мы будем использовать один из разрядов порта РВ, то для подключения датчиков воспользуемся другим портом. А именно портом PD.
Однако подобная схема имеет и свой недостаток. В отсутствие звукового сигнала на выходе PB3 микроконтроллера обязательно нужно установить низкий логический уровень. Высокий логический уровень приведет к тому, что транзистор VT1 будет постоянно открыт. Это вызовет недопустимо большой ток через головку VF1. Постоянно протекающий ток через обмотку динамика вызовет излишнюю потерю мощности и может даже вызвать выход из строя, как транзистора, так и динамика. При составлении программы необходимо учесть этот момент.
Переключатель S14 предназначен для выбора режима работы. Если контакт переключателя S14 (на вход PB7 «0») замкнут, замок переходит в режим «Запись». Разомкнутые контакты (на PB7 «1») соответствуют режиму «Работа».
Переключатель S13 предназначен для звонка. Если контакт переключателя S13 (на вход PB6 «0») замкнут, звонок звенит. Разомкнутые контакты (на PB6 «1») – звонок прекращается.
Схема управления механизмом замка состоит из транзисторного ключа VT1 и электромагнитного реле К1. Резистор R2 ограничивает ток базы ключа. Диод VD1 служит для защиты от напряжения самоиндукции, возникающей на катушке реле. Питание реле осуществляется от отдельного источника + 12 В (питание микроконтроллера +5 В). Если в качестве VT1 применять транзистор КТ315, то электромагнитное реле может иметь рабочее напряжение +12 В и рабочий ток не более 250 мА. Контакты реле должны быть рассчитаны на управление исполнительным механизмом (соленоидом).
Звуковая часть и сам микроконтроллер питаются от напряжения +5 В. А электромагнит замка питается от отдельного источника + 12 В. Напряжение питания, подаваемое на микроконтроллер, обязательно должно
быть стабилизированным. Питание на электромагнит стабилизировать совершенно необязательно. Для повышения громкости звонка и для защиты от помех питание для звуковой схемы можно осуществлять от напряжения, поступающего на вход стабилизатора.
Обычно напряжение на входе стабилизатора равно +7...+11 В. Поэтому можно электромагнит и звуковую схему запитывать от одного нестабилизированного источника +12 В. Те же 12 В можно подавать на вход стабилизатора, с выхода которого снимать напряжение +5 В для микроконтроллера.
Для экономии и уменьшения количества занятых выводов применяем матричную организацию клавиатуры 3х4. Выводы подключаются к порту PORTD.
Каждый вывод строчек клавиатуры подтянут к «плюсу» резистором 2 кОм. Это нужно для того, чтобы в случае, если ни одна кнопка не нажата, на входы контроллера приходила «1». Если этого не сделать – на входе будет так называемое 3-е состояние – не пойми чего. Это не пойми чего, контроллер может понять совершенно произвольно. Может посчитать «нулем», может – «единицей», что вызовет ложные «нажатия» клавиш.
Рисунок 2.2 – Расположение выводов ATtiny2313
Микросхема ATtiny2313 представляет собой восьмиразрядный микроконтроллер с внутренней программируемой Flash – памятью размером 2 Кбайт. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
AVR ядро объединяет богатую
систему команд и 32 рабочих регистра
общего назначения. Все 32 регистра
непосредственно связаны с
ATtiny2313 имеет следующие характеристики:
В режиме Idle происходит приостановка центрального процессора, остальные системы продолжают работать. Выход из этого режима возможен как по внешнему прерыванию, так и по внутреннему. Например, при переполнении таймера.