РефератыКоммуникации и связьРаРазработка электронного кодового замка

Разработка электронного кодового замка


РЕФЕРАТ


Курсовой проект состоит из 39 страниц, содержит 13 таблиц и 18 рисунков. Использовано 7 источников.


Ключевые слова: КОДОВЫЙ ЗАМОК, МИКРОКОНТРОЛЛЕР, КЛАВИАТУРА, ДАТЧИК, СВЕТОДИОД, ФУНКЦИОНАЛЬНАЯ СХЕМА, ПРОГРАММА.


Цель: спроектировать кодовый замок на основе микроконтроллера с архитектурой MCS-51, разработать функциональную схему устройства, написать программу для микроконтроллера.


Результат проектирования: был спроектирован кодовый замок, обладающий возможностью звуковой сигнализации о попытке подбора кода.


ВВЕДЕНИЕ

Кодовые замки являются эффективным средством предотвращения доступа посторонних лиц к охраняемым помещениям. К их достоинствам можно отнести простоту в обращении, надёжность, возможность обеспечить высокую степень защиты, относительную лёгкость смены кода (по сравнению со сменой обычного механического замка). Также немаловажными являются отсутствие необходимости изготовления ключей при предоставлении доступа большому количеству людей и невозможность физической потери ключа. Недостатком таких систем можно назвать возможность для злоумышленника подсмотреть код или подобрать его. Однако, при большой разрядности кода или наличии конструктивных особенностей, препятствующих подбору кода, таких как ограничение количества попыток или введение временной задержки между неудачными попытками, эта задача сильно затрудняется, поэтому последний недостаток нельзя назвать существенным. В данном курсовом проекте осуществляется разработка электронного кодового замка для наружной двери жилого дома с использованием микроконтроллера. Одним из требований является осуществление сигнализации при попытке подбора кода.


1. Разработка структурной схемы

Рассмотрим специфику данной задачи. Кодовый замок должен обеспечивать управление исполнительным устройством электромеханического замка, то есть должен управлять подачей напряжения, обеспечивающего отпирание двери. Предполагается, что замок открывается наличием напряжения на исполнительном устройстве и закрывается его отсутствием. Поэтому в системе должен присутствовать датчик открытия двери, чтобы можно было определить, когда дверь открыта, и подача питания уже не требуется.


Когда пользователь вводит верный код, он должен быть извещён о том, что замок открыт, и дверь можно открывать, то есть должна присутствовать индикация факта открытия замка.


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


Кодовый замок представляет собой систему, отказ или сбои в работе которой могут привести к возникновению серьёзных трудностей и неудобств у владельца охраняемого помещения, поэтому система должна быть надёжной и обеспечивать стабильную работу.


Учитывая то, что замок устанавливается на наружной двери дома, он должен быть способен функционировать в широком диапазоне температур.


Исходя из требований, предъявленных к устройству выше, электронный кодовый замок должен включать в себя следующие элементы:


- микроконтроллер;


- клавиатура;


- исполнительный элемент электромеханического замка;


- устройство сигнализации об открытии двери;


- устройство сигнализации о попытке подбора кода;


- датчик открытия двери.


Взаимодействие элементов изображено на структурной схеме устройства (Рисунок 1.1).




Рисунок 1.1 - Структурная схема устройства



2. Выбор и обоснование элементной базы


2.1 Выбор исполнительного элемента электромеханического замка

В настоящее время на рынке представлено большое количество различных электрозамков. Электрозамки управляются дистанционно, путем подачи напряжения, и могут быть использованы совместно с аудио- и видеодомофонами любых типов, кодовыми панелями, считывателями магнитных карт и электронных ключей и т.п. Электрозамки могут применяться для построения "шлюзовых" систем из двух и более дверей, а также в любых других случаях, когда необходимо дистанционно открывать дверь.


Различают два основных класса электрозамков: электромагнитные и электромеханические. Электромагнитные замки - это электромагнит в чистом виде: при подаче на него напряжения ответная механическая планка притягивается. Если нет напряжения, то нет и удержания.


За счет отсутствия механически перемещающихся деталей и простоты конструкции электромагнитные замки имеют самую высокую надежность. Усилие отрыва для электромагнитных замков исчисляется несколькими сотнями килограмм.


К недостаткам электромагнитных замков можно отнести то, что они открываются при отсутствии напряжения.


Часто электромагнитные замки используются в составе многоквартирных аудиодомофонных систем. В этом случае, он открывается кодом с вызывной панели или с трубки из квартиры, либо просто кнопкой внутри подъезда перед выходом.


В отличие от электромагнитных, электомеханические замки работают не непрерывно, а в импульсном режиме, то есть напряжение на замок подается кратковременно при его открытии, а все остальное время замок обесточен. При отсутствии напряжения открыть электромеханические замки изнутри можно расположенной на них механической кнопкой, а снаружи - ключом, который входит в комплект поставки. Конструктивно электромеханические замки бывают накладные и врезные.


Для питания электромеханических замков не обязательно использовать стабилизированное напряжение, но необходимо обратить внимание, чтобы источник питания был рассчитан на достаточно большие токи, необходимые для открытия электромеханических замков.


Для запирания двери жилого дома наиболее целесообразно использовать электромеханический замок, предназначенный для наружных дверей помещений. Рассмотрим электромеханический замок “ПОЛИС-13” отечественной фирмы “Оника”. Внешний вид замка показан на рисунке 2.1.1, его технические характеристики [2] – в таблице 2.1.1.




Рисунок 2.1.1 – Внешний вид замка “ПОЛИС-
13”



Таблица 2.1.1 –
Технические характеристики замка “ПОЛИС-13”























Напряжение питания 12 В
Ток потребления 0.5 А
Диаметр засовов 18 мм
Ход засовов 17 мм
Габаритные размеры корпуса 140x92x30 мм
Масса 1.4 кг
Рабочий диапазон температур -40...+60 град С

Для открытия замка необходимо подать на него напряжение 12В, при этом потребление тока составит 0,5А. При отключении напряжения замок закрывается под действием пружины. Микроконтроллер, непосредственно, не способен производить коммутацию цепей с большими напряжениями и токами. Кроме того, необходимо обеспечить гальваническую развязку выводов микроконтроллера и цепи привода замка. Для этих целей можно использовать оптопару с выходным каскадом на оптотиристоре, которая будет коммутировать напряжение в цепи базы npn транзистора. При подаче напряжения транзистор откроется и замкнёт цепь питания замка. По своим характеристикам нам подойдёт оптопара отечественного производства АОУ163А. Её характеристики приведены в таблице 2.1.2 [1].


Таблица 2.1.2 – Технические характеристики оптопары АОУ163А






























Количество каналов 1
Постоянное прямое входное напряжение Uвх., В 1.3
при входном токе Iвх., мА 10
Максимальный входной ток Iвх.макс., мА 25
Выходной каскад оптотиристор
Максимальный выходной ток Iвых.макс., мА 100
Максимальное выходное коммутируемое напряжение Uвых.ком.макс.,В 400

Сопротивление изоляции между входной и выходной


цепями, ГОм


100
Максимальное напряжение изоляции, В 1500
Рабочая температура, С -45...85



2.2 Выбор клавиатуры


Клавиатура является важной частью кодового замка, и должна быть устойчива к неблагоприятным воздействиям окружающей среды и действиям злоумышленников, особенно если замок устанавливается на наружной двери дома. В данном устройстве используется клавиатура AK-207 фирмы Accord, выполненная из металла и имеющая защиту от влаги. Внешний вид клавиатуры представлен на рисунке 2.2.1, технические характеристики клавиатуры – в таблице 2.2.1 [3]. В таблице 2.2.2 приводится назначение контактов клавиатуры [3].


Таблица 2.2.1 - Технические характеристики клавиатуры AK-207

















Контакты 20 мA, 24 В
Сопротивление контактов 200 Ом макс.
Ресурс нажатий на каждую кнопку 1000000
Рабочая температура, С от -20 до +60
Температура хранения, С от -40 до +65


Рисунок 2.2.1 – Внешний вид клавиатурыAK-207


Таблица 2.2.2 - Назначение выводов клавиатуры
























Номер вывода Назначение
1 Колонка 2
2 Ряд 1
3 Колонка 1
4 Ряд 4
5 Колонка 3
6 Ряд 3
7 Ряд 2


2.3 Выбор устройства сигнализации открытия двери


Для извещения пользователя о том, что дверь открыта, будет использоваться световая сигнализация. Для этого подойдёт светодиод зелёного цвета АЛ336И. Его технические характеристики представлены в таблице 2.3.1 [1].


Таблица 2.3.1 – Характеристики светодиода АЛ336И

































Материал GaP
Цвет свечения зеленый
Длина волны, нм 563
Минимальная сила света Iv мин., мКд 20
при токе Iпр., мА 10
Видимый телесный угол, град 5
Форма линзы круглая
Максимальное прямое напряжение, В 2.8
Максимальное обратное напряжение, В 2
Максимальный импульсный прямой ток, мА 60
Рабочая температура ,С -60...70


2.4 Выбор устройства сигнализации о попытке подбора кода


При попытке подбора кода замка для уведомления об этом жильцов дома целесообразно использовать звуковой сигнал. Для этого можно использовать излучатель звука со встроенным генератором рабочей частоты. Такое устройство не требует подачи на вход высокочастотного сигнала для его работы. Достаточно просто обеспечить напряжение питания. Пьезоэлектрический излучатель звука SMA-21-P10 фирмы Sonitron обладает подходящими характеристиками [1] (таблица 2.4.1). Внешний вид устройства показан на рисунке 2.4.1.


Таблица 2.4.1 – Характеристики излучателя звука SMA-21-P10



























Тип пьезоэлектрический
Встроенный генератор есть
Частота, Гц 3300
Номинальное рабочее напряжение, В 1.5-24
Максимальный ток , мА 3.8
Интенсивность звука, дБ 85
Толщина корпуса h, мм 9
Диаметр(ширина) корпуса d, мм 21
Рабочая температура, С -20...70


Рисунок 2.4.1 – Внешний вид излучателя звука
SMA-21-P10
2.5 Выбор датчика открытия двери

Для определения момента открытия двери будет использоваться контактный герконовый датчик фирмы Aleph. В номенклатуре Aleph представлены герконы различного применения: накладные или врезные на деревянные и металлические двери, с различным максимальным зазором между контактами. Тип контактов у всех моделей — нормально замкнутые. Рассмотрим характеристики датчиков данной фирмы, представленные в таблицах 2.5.1, 2.5.2 и 2.5.3.


Таблица 2.5.1 - Технические характеристики датчика DC-1523












Габаритные размеры, мм. Геркон: 60х14х13
Зазор мм. 15
Коммутируемое напряжение 130В, 0,5А, 10Вт
Примечание Для деревянных дверей

Таблица 2.5.2 - Технические характеристики датчика DC-1811












Габаритные размеры, мм. Геркон: 31х25 (диаметр)
Зазор мм. 35
Коммутируемое напряжение 28 В, 0,5 А, 3 Вт
Примечание Для металлических дверей

Таблица 2.5.3 - Технические характеристики датчика DC-2541












Габаритные размеры, мм. Геркон: 61х18х15
Зазор мм. 22
Коммутируемое напряжение 28 В, 0,5 А, 3 Вт
Примечание Для деревянных и металлических дверей

Для этой цели нам подходит датчик DC-2541 (рисунок 2.5.1). Его технические характеристики приведены в таблице 2.5.3.




Рисунок 2.5.1 – Внешний вид датчика
DC-2541



2.6 Выбор микроконтроллер
а


Основными требованиями, предъявляемыми к микроконтроллеру в этом проекте, являются:


- наличие параллельных портов ввода-вывода в количестве, достаточном для подключения всех устройств, входящих в структурную схему системы;


- достаточно высокая надёжность и стабильность работы;


- возможность работы в расширенном температурном диапазоне.


Для выполнения поставленной задачи подходят микроконтроллеры с архитектурой MCS-51, поскольку они доступны, относительно просты, и их возможностей вполне достаточно для обеспечения функционирования данного устройства.


Первым двум требованиям удовлетворяют все производимые на данный момент микроконтроллеры с архитектурой MCS-51. Большинство моделей имеют модификации, рассчитанные на расширенный температурный диапазон. Исходя из этого, выбор производился из наиболее дешёвых изделий известных фирм, чтобы минимизировать стоимость системы. В итоге, был выбран микроконтроллер AT89S51 фирмы Atmel.


Корпорация Atmel (США), являясь на сегодняшний день одним из признанных мировых лидеров в производстве изделий современной микроэлектроники, хорошо известна на российском рынке электронных компонентов. Основанная в 1984 году, фирма Atmel определила сферы приложений для своей продукции как телекоммуникации и сети, вычислительную технику и компьютеры, встраиваемые системы контроля и управления, бытовую технику и автомобилестроение.


Atmel выпускает широкий спектр микроконтроллеров, основанных на архитектуре MCS-51. Данная линейка микроконтроллеров включает изделия в корпусах стандартных типоразмеров с поддержкой функции внутрисистемного программирования, а также, производные разновидности микроконтроллеров (ROMLESS, ROM, OTP и FLASH) в малогабаритных корпусах с 20-ю выводами. Некоторые из устройств, также, имеют поддержку высокоскоростного (х2) режима работы ядра, который, по- требованию, удваивает внутреннюю тактовую частоту для CPU и периферийных устройств.


AT89S51 – экономичный высокопроизводительный КМОП 8-разрядный микроконтроллер с 4 кБ внутрисхемно программируемой флэш-памятью. Устройство производится с использованием технологии Atmel энергонезависимой памяти большой емкости и совместимо по системе команд и расположению выводов со стандартным микроконтроллером 80C51. Встроенная флэш-память может быть запрограммирована внутрисхемно или с помощью обычного программатора энергонезависимой памяти. За счет комбинации 8-разрядного ЦПУ с внутрисхемно программируемой флэш-памятью на одном кристалле AT89S51 от Atmel является мощным микроконтроллером, обеспечивающим высокую гибкость и рентабельность решений для многих задач встроенного управления.


AT89S51 (рисунок 2.6.1) имеет следующие стандартные характеристики: 4 кБ флэш-памяти, 128 байт ОЗУ, 32 линии ввода-вывода, сторожевой таймер, два указателя данных, два 16-разрядных таймера-счетчика, 5-векторная 2-уровневая система прерываний, полнодуплексный последовательный порт, встроенный генератор и схема тактирования. Кроме того, AT89S51 разработан со статической логикой для работы на частоте вплоть до 0 Гц и поддерживает два программно настраиваемых режима снижения энергопотребления:


В режиме холостого хода (Idle) останавливается ЦПУ, но ОЗУ, таймеры-счетчики, последовательный порт и система прерываний продолжают функционировать. В экономичном режиме (Power-down) сохраняется информация в ОЗУ, но остановлен генератор, выключены все остальные функциональные блоки до внешнего запроса на прерывание или аппаратного сброса.


Отличительные особенности микроконтроллерaAT89S51:


- cовместимость с серией MCS-51;


- 4 кБ флэш-памяти с внутрисхемным программированием (ISP) Износостойкость: 1000 циклов записи/стирания;


- рабочий диапазон питания 4.0…5.5В;


- полностью статическое функционирование : 0 …33 МГц;


- три уровня защиты памяти программ;


- внутреннее ОЗУ размером 128 x 8;


- 32 программируемые линии ввода-вывода;


- два 16-разрядных таймера-счетчика;


- шесть источников прерываний;


- полнодуплексный канал последовательной связи на УАПП;


- режимы снижения потребления: холостой ход и экономичный;


- восстановление прерываний при выходе из экономичного режима;


- сторожевой таймер;


- двойной указатель данных;


- флаг выключения питания;


- быстрое время программирования;


- гибкое внутрисхемное программирование (побайтный или постраничный режимы) [5].


Структурная схема микроконтроллера [4] представлена на рисунке 2.6.2.



Рисунок 2.6.1 - Внешний вид и расположение выводов
AT89S51

Назначение основных выводовмикросхемы:


- VCC – напряжение питания;


- GND – земля;


- VDD – напряжение питания, подводимое только к ядру и встроенной памяти программ;


- P0,P1,P2,P3 – двунаправленные порты ввода-вывода;


- EA – доступ к внешней памяти;


- RxD – выход приёмника UART;


- TxD – выход передатчика UART;


- PSEN – переключатель разрешения внешней памяти;


- ALE – разрешение защёлкивания старшей части адреса при доступе к внешней памяти


- XTAL1, XTAL2 – выводы для подсоединения внешнего кварцевого резонатора;


- RESET – вход сброса [5].




Рисунок 2.6.2 – структурная схема микроконтроллера AT89S51


Микроконтроллер выпускается в нескольких вариантах [5] (таблица 2.6.1).


Таблица 2.6.1 – варианты исполнения микроконтроллера












































Частота, МГц Напряжение питания, В Код для заказа Корпус Температурный диапазон
24 4.0…5.5 AT89S51-24AC 44A Коммерческий (0…+70°С)
AT89S51-24JC 44J
AT89S51-24PC 40P6
24 4.5…5.5 AT89S51-24AI 44A Коммерческий (-40…+85°С)
AT89S51-24JI 44J
AT89S51-24PI 40P6
33 4.5…5.5 AT89S51-33AC 44A Коммерческий (0…+70°С)
AT89S51-33JC 44J
AT89S51-33PC 40P6

Для выполнения поставленной задачи, как было сказано выше, нам нужен микроконтроллер, рассчитанный на коммерческий диапазон температур


(-40…+85°С). Тип корпуса в данном случае роли не играет, так как в корпусе кодового замка входной двери дома достаточно места для расположения любого из них.


2.7 Выбор стабилизатора напряжения


Для питания микроконтроллера элементов необходим стабилизированный источник питания напряжением +5В. В качестве стабилизатора лучше всего использовать микросхему КР142ЕН5. Она обеспечивает достаточную стабильность выходного напряжения и осуществляет фильтрацию помех, амплитуда которых может достигать 1В. При установке ее на дополнительный радиатор максимальный ток нагрузки составляет около 2А. Помимо этого микросхема имеет защиту от короткого замыкания.


Серия КР142ЕН5 - трехвыводные стабилизаторы с фиксированным выходным напряжением в диапазоне от 5В до 27 В, могут найти применение в широком спектре радиоэлектронных устройств. Диапазон напряжений, перекрываемых данной серией стабилизаторов, позволяет использовать их в качестве источников питания, логических систем, измерительной техники, устройств высококачественного воспроизведения и других радиоэлектронных устройств. Несмотря на то, что основное назначение этих приборов - источники фиксированного напряжения, они могут быть использованы и как источники с регулированием напряжения и тока путем добавления в схемы их применения внешних компонентов. Внешние компоненты могут быть использованы для ускорения переходных процессов. Входной конденсатор необходим только в том случае, если регулятор находится на расстоянии более 5 см от фильтрующего конденсатора источника питания. Внешний вид и типовая схема включения приведены на рисунках 2.7.1 и 2.7.2 соответственно. Технические характеристики представлены в таблице 2.7.1.


Основные особенности:


- Встроенная защита от перегрева;


- Встроенный ограничитель тока КЗ;


- Коррекция зоны безопасной работы выходного транзистора;


- Диапазон температур хранения -55 ... +150С;


- Рабочий диапазон температур кристалла -45 ... +125С.



Рисунок 2.7.1 – Внешний вид и расположение выводов стабилизатора КР142ЕН5А


Назначение выводов стабилизатора КР142ЕН5А:


- 1 – вход;


- 2 – общий;


- 3 – выход.



Рисунок 2.7.2 – Типовая схема включения стабилизатора


Таблица 2.7.1 - Электрические характеристики стабилизатора КР142ЕН5А:











































































<
/tr>
























































Наименование Обозначение Условия измерения Мин. Тип. Макс. Единица измерения
Выходное напряжение Vout Tj=25°C 4.9 5.0 5.1 B

7B<Vin<20B


5mA<Iout<1.0A


Pt<15Вт


4.75 - 5.25 B
Нестабильность по входному напряжению

Vo


line


Tj=25°C 7B<Vin<25B - 3 100 mB
8B<Vin<12B - 1 50 mB
Нестабильность по току нагрузки

Vo


load


Tj=25°C 5mA<Iout<1.5A - 15 100 mB

250mA<


Iout<750mA


- 5 50 mB
Ток покоя Iq Tj=25°C,Iout=0 - 4.2 8.0 mA
Нестабильность тока покоя Iq 7B<Vin<25B - - 1.3 mA
5mA<Iout<1.0A - - 0.5 mA
Выходное напряжение шума Vn Ta=25°C, 10Гц<f<100кГц - 40 - mkB
Коэффициент подавления пульсации Rrej f=120Гц 62 78 - дБ
Падение напряжения Vdrop Iout=1.0A, Tj=25°C - 2.0 - B
Выходное сопротивление Rout f=1 кГц - 17 - мОм
Ток КЗ Ios Tj=25°C - 750 - mA
Максимальный выходной ток Io peak Tj=25°C - 2.2 - A
Температурная нестабильность выходного напряжения

Vout


Tj


Iout=5mA, 0°C<Tj<125°C - 1.1 - мВ/°C

3. Построение принципиальной электрической схемы


3.1 Сопряжение микроконтроллера и клавиатуры


В данном устройстве используется динамический опрос клавиатуры, так как выбранная двенадцатикнопочная клавиатура имеет всего семь выводов и подключить каждую кнопку к отдельному выводу порта микроконтроллера не представляется возможным, хотя микроконтроллер и имеет достаточное количество свободных портов. Кроме того, такой способ включения упрощает схему и уменьшает число портов, занятых клавиатурой (рисунок 3.1.1).



Рисунок 3.1.1 - Схема сопряжения МК и клавиатуры

Для работы с клавиатурой используются 7 выводов порта P0. Все четыре ряда кнопок опрашиваются по очереди. Для опроса первого ряда на выводах P0.1-P0.3 программно устанавливаются единицы, а на выводе P0.0 – ноль. Теперь если нажать любую кнопку первого ряда, вывод P0.0 замкнётся с выводом P0.4, P0.5 или P0.6, и на нём установится ноль. Если ни одна кнопка не нажата, на выводах P0.4, P0.5 и P0.6 будет единица за счёт подтягивающих резисторов R6-R8, которые создают на выводах высокий потенциал. Резисторы возьмём равными 4,7КОм. Аналогично опрашиваются оставшиеся три ряда кнопок на клавиатуре. При нажатии на кнопку имеет место явление дребезга контактов, однако эту проблему можно решить программно. Для этого при нажатии кнопки вводится задержка, по длительности равная переходному процессу в цепи, что позволяет избежать ложных срабатываний кнопок. Величина задержки подбирается экспериментально для каждого типа оборудования. Для примера будем используется задержка длительностью 5 мс. У такого способа есть недостаток – он замедляет работу программы, однако в данном случае это не имеет значения, так как для выполнения поставленной задачи не требуется большое быстродействие. За те 5 мс, которые программа ждёт, пользователь просто не успеет нажать на другую кнопку.



3.2 Сопряжение микроконтроллера и исполнительного элемента электромеханического замка


Для коммутации цепи питания привода электромеханического замка используются NPN-транзистор Q1 и оптопара OC1 (рисунок 3.2.1). Таким образом обеспечивается замыкание цепи с большими токами и напряжениями и гальваническая развязка цепей микроконтроллера и привода замка. Здесь используется широко распространённый транзистор отечественного производства КТ815А, характеристики которого (таблица 3.2.1) удовлетворяют требуемым (напряжение 12В и ток 0,5А) с некоторым запасом.


Таблица 3.2.1 – Параметры транзисторов серии КТ815






















































Наимен. тип Uкб
Uкэ
, В

max(и), мА

max(т), Вт
h21э
Iкбо
, мкА
fгр.
, МГц
Uкэн
, В
КТ815А n-p-n 40 30 1500(3000) 1(10) 40-275 50 3 <0.6
КТ815Б 50 45 1500(3000) 1(10) 40-275 50 3 <0.6
КТ815В 70 65 1500(3000) 1(10) 40-275 50 3 <0.6
КТ815Г 100 85 1500(3000) 1(10) 30-275 50 3 <0.6

Оптопара подключается к порту P0.0 микроконтроллера через резистор R2, ограничивающий ток. Входное напряжение оптопары 1,3В при токе 25 мА, значит, падение напряжения на резисторе должно быть (5-1,3)В=3,7 В. Тогда номинал сопротивления будет 3,7В/0,025А=148 Ом. Ближайшее значение ряда номинальных сопротивлений 150 Ом. Выходной каскад оптопары открывается низким уровнем на выводе микросхемы и закрывается высоким. Когда он открыт, напряжение подаётся на базу транзистора Q1 и он открывается, замыкая цепь привода замка. Рассчитаем сопротивление резистора R3. Для этого воспользуемся законом Ома [7]. Через цепь коллектор-эмиттер протекает ток 0,5А. Коэффициент передачи транзистора по току равен 40, значит ток база-эмиттер будет равен 0,5А/40=0,0125А. На базу подаётся 5В, а на базовом переходе транзистора падает 1,2В, поэтому сопротивление резистора будет равно (5-1,2)В/0,0125А=304 Ом. Возьмём резистор на 300Ом. Для того чтобы транзистор самопроизвольно не открываться обратным током коллектора, ставится шунтирующий резистор R10. Пусть через него протекает ток, в три раза меньший, чем ток базы транзистора. Падение напряжения на базовом переходе 1,2В. Тогда сопротивление R10 будет равно 1,2В/(0,0125А/3)=288 Ом. Используем резистор 270 Ом. Так как привод замка основан на индуктивности, то по закону электромагнитной индукции при коммутации в ней возникают обратные токи. Диод D2 шунтирует индуктивность в обратном направлении и препятствует появлению обратных токов в цепи. По своим характеристикам нам подходит диод КД208А. Его максимальное обратное напряжение 100 В, прямой ток 1 А.



Рисунок 3.2.1 - Схема сопряжения микроконтроллера и исполнительного элемент
а электромеханического замка


3.3 Сопряжение микроконтроллера и устройства сигнализации открытия двери


Зелёный светодиод D3 подключается к порту P2.2 микроконтроллера через ограничивающий резистор R4 (рисунок 3.3.1). Диод включается высоким уровнем сигнала на выводе. Максимальное прямое напряжение на диоде 2,8В при токе 10мА. Как раз такой ток способен обеспечить один вывод порта этого микроконтроллера. Сопротивление резистора будет равно (5-2,8)В/0,01=220Ом



Рисунок 3.3.1 - Схема сопряжения МК и светодиода
3.4 Сопряжение микроконтроллера и устройства звуковой сигнализации

Пьезоэлектрический излучатель звука LS1 подключается к выводу P2.1 микроконтроллера через резистор R5, ограничивающий ток, и включается при появлении сигнала высокого уровня на выводе микросхемы. Напряжение питания динамика 1,5-24В, возьмём 3В. Максимальный ток 3,8мА. Сопротивление резистора будет равно (5-3)В/0,0038А=526,32Ом. Используем резистор 530Ом.



Рисунок 3.4.1 - Схема сопряжения микроконтроллера и
динамика
3.5 Сопряжение микроконтроллера и датчика открытия двери

Датчик подключается к выводу порта P0.7 через резистор R9, который подтягивает напряжение на выводе до единицы, когда контакты датчика разомкнуты (рисунок 3.5.1). При замыкании контактов напряжение +5В замыкается на землю, и на выводе порта появляется ноль. Длина провода от резистора к датчику много больше длины провода к микроконтроллеру, поэтому подтягивающий резистор R9 возьмём номиналом 1КОм, а для борьбы с помехами используем конденсатор С6 на 100пФ.



Рисунок 3.5.1 - Схема сопряжения микроконтроллера и датчика открытия двери
3.6 Подключение микроконтроллера к цепям, обеспечивающим его работу

Подключение микроконтроллера к цепям питания, сброса, внешнему кварцевому резонатору и выводу блокировки работы с внутренней памятью (рисунок 3.6.1) является стандартным, рекомендованным производителем [4].




Рисунок 3.6.1 - Схема подключения микроконтроллера



4. Разработка алгоритма работы системы
и программного обеспечения


Алгоритм функционирования программы кодового замка включает в себя следующие основные блоки:


- включение;


- ввод кода;


- проверка введённого кода;


- контроль количества попыток ввода кода;


- открытие замка;


- закрытие замка;


- световая индикация;


- звуковой сигнал.


На рисунке 4.1 представлена блок-схема алгоритма работы программы.


Рассмотрим алгоритм функционирования программы более подробно.


- Включение устройства


При подаче питания производится инициализация переменных: для хранения адреса ячейки памяти с текущей введённой цифрой кода используется регистр r0, для количества попыток ввода – память данных по адресу 38h. Затем выключаются светодиод и динамик установкой в 0 соответствующих битов порта p2. Настраивается таймер t0, который будет далее использоваться для формирования программной задержки. Режим – 16-битный таймер. Далее задаётся адрес для первой цифры кода и количество попыток ввода.


- Ввод кода


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



Рисунок 4.1 - Блок-схема работы программы

- Проверка введённого кода


Когда введены все цифры кода, производится последовательная проверка всех цифр, начиная с последней (метка code_wrong). Здесь для примера выбран шестизначный код “123456” В случае несовпадения цифры кода с заданной проверяется количество оставшихся попыток ввода кода (метка code_wrong).


- Контроль количества попыток ввода кода


Если все попытки ввода израсходованы, включается звуковой сигнал длительностью 1 с. Для формирования задержки используется подпрограмма delay. Во время действия звукового сигнала устройство не реагирует на нажатия клавиш.


- Открытие замка


Открытие замка производится установкой бита p2.0.


- Закрытие замка


Закрытие замка производится сбросом бита p2.0.


- Световая индикация


Световая индикация включается установкой бита p2.2 и выключается его сбросом.


- Звуковой сигнал


Звуковой сигнал включается установкой бита p2.1 и выключается его сбросом.


- Формирование программной временной задержки.


1) Формирование задержки длительностью 5 мс.


Подпрограмма реализации временной задержки использует метод программных циклов. При этом в некоторый рабочий регистр загружается число, которое затем в каждом проходе цикла уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из цикла. Время задержки при этом определяется числом, загруженным в рабочий регистр, и временем выполнения команд, образующих программный цикл.


mov r2,#0ffh


loop3:


djnz r2,loop3


Команда mov выполняется за 1 машинный цикл, команда djnz – за 2. При тактовой частоте 24 МГц каждый машинный цикл выполняется за 0,5 мкс. Таким образом, максимальная длительность задержки, реализуемая с помощью одного цикла, составляет (1+255*2)*0,5=255,5 мкс (в регистре r2 значение 255). Задержка большой длительности может быть реализована методом вложенных циклов.


delay2: ;задержка 5 мс


mov r3,#13h


loop4:


mov r2,#0ffh


loop3:


djnz r2,loop3


djnz r3,loop4


ret


Так, максимальная длительность задержки при использовании двух циклов составляет (1+((1+2*255)+2)*255)/2=65408 мкс=65,41 мс. Рассчитаем значение регистра r3 для формирования задержки длительностью 5 мс. Очевидно, что в регистр r2 нужно загрузить максимальное значение 255. При расчёте нужно учесть, что на выполнение команд call и ret требуется по 2 машинных цикла на каждую. (2+2+1+((1+2*255)+2)*X)/2=5000. X=19,42. В регистр заносим значение 13h.


2) Формирование задержки длительностью 1 с.


При формировании задержки длительностью 1 с используется таймер T0.


delay: ;задержка 1 с


movr1,#1fh


loop1:


mov th0,#0h


mov tl0,#0h


setb tcon.4


loop2:


jb tcon.4,loop2


djnzr1,loop1


ret


В 16-битном режиме (диапазон значений таймера 0-65535) при тактовой частоте 24МГц таймер позволяет формировать задержки длительностью до 32767,5 мкс. Для создания задержки в 1 с таймер должен переполниться 1/ 0,0327675=30,52 раз. Таким образом, в регистр r1 нужно загрузить значение 1fh.


5. Описание среды разработки программного обеспечения


При разработке и отладке программного обеспечения для данного проекта использовался пакет ProView. ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя все компоненты, необходимые для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:


- стандартный интерфейс Windows;


- полнофункциональный редактор исходных текстов с выделением синтаксических - элементов цветом;


- организатор проекта;


- транслятор с языка C;


- ассемблер;


- отладчик;


- встроенную справочную систему.


Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows. Пользователи, знакомые с любым из этих изделий, будут комфортно чувствовать себя в ProView. Первый этап разработки программы – запись её исходного текста на каком-либо языке программирования. Затем производится компиляция или трансляция его в коды системы команд микроконтроллера, используя транслятор или ассемблер. Трансляторы и ассемблеры – прикладные программы, которые обрабатывают текстовый файл, содержащий исходный текст программы, и создают объектные файлы, содержащие объектный код. После компоновки объектных модулей наступает этап отладки программы, устранения ошибок, оптимизации и тестирования программы. ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу. Далее описаны основные компоненты ProView.


Оптимизирующий кросс-компилятор C51

Язык C - универсальный язык программирования, который обеспечивает эффективность кода, элементы структурного программирования и имеет богатый набор операторов. Универсальность, отсутствие ограничений реализации делают язык C удобным и эффективным средством программирования для широкого разнообразия задач. Множество прикладных программ может быть написано легче и эффективнее на языке C, чем на других более специализированных языках.


C51 - полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.


Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:


· не требуется глубокого знания системы команд процессора, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;


· распределение регистров и способы адресации управляются полностью транслятором;


· обеспечивается лучшая читаемость программы, т.к. используются ключевые слова и функции, которые более свойственны человеческой мысли;


· сокращается время разработки и отладки программ в сравнении с программированием на ассемблере;


· наличие библиотечных файлов со стандартными подпрограммами, которые могут быть включены в прикладную программу;


· существующие программы могут многократно использоваться в новых программах, используя модульные методы программирования.


Макроассемблер A51

Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.


A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Includedebugginginformation” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора или внутрисхемного эмулятора.


Компоновщик L51

Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.


Компоновщик автоматически выбирает соответствующие библиотеки поддержки и связывает только требуемые модули из библиотек. Установки по умолчанию для L51 выбраны так, чтобы они подходили для большинства прикладных программ, но можно определить и заказные установки.


Отладчик/симулятор WinSim51

Отладчик/симулятор используется с транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel. Отладчик/симулятор позволяет моделировать большинство особенностей Intel 8051 без наличия аппаратных средств. Можно использовать его для проверки и отладки прикладной программы прежде, чем будут изготовлены аппаратные средства. При этом моделируется широкое разнообразие периферийных устройств, включая последовательный порт, внешний ввод - вывод и таймеры [6].


Внешний вид главного окна программы представлен на рисунке 5.1.



Рисунок 5.1 – Внешний вид главного окна ProView


Заключение

В данной работе была осуществлена разработка электронного кодового замка, предназначенного для установки на наружную дверь жилого дома.


В ходе выполнения работы был проведён анализ задачи, на основе которого были сформулированы требования к конечной системе. На основе требований была построена структурная схема. На основании структурной схемы были подобраны соответствующие устройства для реализации функций, возложенных на элементы системы. Исходя из экономических и эксплуатационных соображений, для данного устройства был выбран микроконтроллер AT89S51 фирмы Atmel. Особенностью данного замка является наличие звуковой сигнализации, оповещающей владельца о попытке подбора кода. Далее, с использованием выбранных устройств была построена функциональная схема. Разработка завершилась составлением блок-схемы алгоритма и написанием исходного кода программы для микроконтроллера.


Список использованных источников

1. Описания электронных компонентов в каталоге товаров оптовой базы комплектации электронных компонентов и приборов “ПЛАТАН”:


http://www.platan.ru/


2. Описание электромеханического замка ПОЛИС-13:


http://dialog-universal.ru/product_info.php?cPath=109&products_id=173


3. Описание клавиатуры AK-207 на сайте компании Accord: http://www.accordia.com.tw/html/general.htm


4. Описание микроконтроллера AT89S51 на сайте компании Atmel: http://www.atmel.com/dyn/resources/prod_documents/doc2487.pdf


5. Описание микроконтроллера AT89S51: http://www.gaw.ru/html.cgi/txt/ic/Atmel/micros/mcs51/at89s51.htm


6. В.Б. Бродин. Микроконтроллеры: архитектура, программирование, интерфейс: – М.: ЭКОМ, 1999.


7. П. Хоровиц, У. Хилл. Искусство схемотехники М. Мир, 2003.


ПРИЛОЖЕНИЯ
Приложение А
Исходный код программы микроконтроллера

dseg


door_codeequr0 ;массив введённых значений


attemptsequ 38h ;переменная – число попыток ввода


cseg


org 00h


ajmp main


org 0bh


ajmp timer0


org 100h


main:


anlp2,#1h ;выключение светодиода и динамика


movie,#82h ;разрешаем прерывания от таймера


movtmod,#1h ;задаём режим таймера – 16 бит


movdoor_code,#30h ;задание адреса для вводимых цифр кода


movattempts,#3h ;количество попыток


sjmpent1 ;переход к началу главного цикла


enter_digit: ;обработка введённого значения


mov @door_code,a ;запоминаем цифру


incdoor_code ;переходим к след. адресу


mov a,door_code


call delay2


cjnea,#36h,ent1 ;проверяем,все ли цифры введены (из 6)


ajmpcompare ;переход к сравнению кодов


ent0: ;ввод 0


mov p0,#0f7h


jb p0.5,ent1


call delay2


mov a,#0h


wait0:


jnb p0.5,wait0


ajmp enter_digit


ent9: ;ввод 9


jb p0.6,ent0


call delay2


mov a,#9h


wait9:


jnb p0.6,wait9


ajmp enter_digit


ent1: ;ввод 1


movp0,#0feh ;устанавливаем 0 на выходе P0.0


jbp0.4,ent2 ;если не нажата кнопка, к след. кнопке


calldelay2 ;ждём, пока пройдёт дребезг контактов


mova,#1h ;запоминаем введённую цифру


wait1:


jnbp0.4,wait1 ; ждём, пока отпустят кнопку


ajmpenter_digit ;переход к обраб. введённого значения


ent2: ;ввод 2


jb p0.5,ent3


call delay2


mov a,#2h


wait2:


jnb p0.5,wait2


ajmp enter_digit


ent3: ;ввод 3


jb p0.6,ent4


call delay2


mov a,#3h


wait3:


jnb p0.6,wait3


ajmp enter_digit


ent4: ;ввод 4


mov p0,#0fdh


jb p0.4,ent5


call delay2


mov a,#4h


wait4:


jnb p0.4,wait4


ajmp enter_digit


ent5: ;ввод 5


jb p0.5,ent6


call delay2


mov a,#5h


wait5:


jnb p0.5,wait5


ajmp enter_digit


ent6: ;ввод 6


jb p0.6,ent7


call delay2


mov a,#6h


wait6:


jnb p0.6,wait6


ajmp enter_digit


ent7: ;ввод 7


mov p0,#0fbh


jb p0.4,ent8


call delay2


mov a,#7h


wait7:


jnb p0.4,wait7


ajmp enter_digit


ent8: ;ввод 8


jb p0.5,ent9


call delay2


mov a,#8h


wait8:


jnb p0.5,wait8


ajmp enter_digit


code_wrong: ;обработка неверного кода


movdoor_code,#30h ;возвращаемся к началу массива


djnzattempts,ent1 ;если есть ещё попытки, в гл. цикл


setbp2.1 ;включение звукового сигнала


calldelay ;задержка 1 с


clrp2.1 ;выключение звукового сигнала


movattempts,#4h ;восстан. число попыток


jmp code_wrong


compare: ;сравнениекодов


decdoor_code ;переходим к предыдущей цифре


cjne @door_code,#6h,code_wrong;проверяем 6-ю цифру и далее все


decdoor_code ;цифры по порядку


cjne @door_code,#5h,code_wrong


dec door_code


cjne @door_code,#4h,code_wrong


dec door_code


cjne @door_code,#3h,code_wrong


dec door_code


cjne @door_code,#2h,code_wrong


dec door_code


cjne @door_code,#1h,code_wrong


clrp2.0 ;открыть замок


setbp2.2 ;включить светодиод


movattempts,#3h ;восстан. кол-во попыток


wait_open:


jnbp0.7,wait_open ;ждём, пока откроется дверь


call delay2


wait_close:


jb p0.7,wait_close ;ждём, показакроетсядверь


setbp2.0 ;закрыть замок


clrp2.2 ;выключить светодиод


ajmpent1 ;переход в гл. цикл


timer0: ;обработка прерывания от T0


clrtcon.4


clr tcon.5


reti


delay: ;задержка 1 с


movr1,#1fh


loop1:


mov th0,#0h


mov tl0,#0h


setb tcon.4


loop2:


jb tcon.4,loop2


djnz r1,loop1


ret


delay2: задержка 5 мс


mov r3,#13h


loop4:


mov r2,#0ffh


loop3:


djnz r2,loop3


djnz r3,loop4


ret


end

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка электронного кодового замка

Слов:5451
Символов:53337
Размер:104.17 Кб.