67678

Разработка считывателя системы контроля за персоналом на основе микроконтроллера AVR

Курсовая

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

На основании анализа функциональной спецификации можно выделить следующие блоки которые необходимо реализовать аппаратным способом: Входы: модуль контактного устройства модуль связи с компьютером модуль часов Выходы: модуль светодиодных индикаторов модуль переноса данных Функции: модуль защиты...

Русский

2014-09-13

494.5 KB

18 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Кафедра ИВС

Считыватель системы

контроля за персоналом

Пояснительная записка

к курсовому проекту по дисциплине

“Микропроцессорные системы”

  Выполнил: студент группы ВМ-41

     Бахтин Ю.А.       

          (дата)    (подпись)

  Проверил:  Мясников В.И.       

          (дата)    (подпись)

Оценка:   

Йошкар-Ола

2007


АННОТАЦИЯ

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


СОДЕРЖАНИЕ

АННОТАЦИЯ 2

ТЕХНИЧЕСКОЕ ЗАДАНИЕ 4

ВВЕДЕНИЕ 5

  1.  ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ 7
  2.  ТРЕБОВАНИЯ ПОЛЬЗОВАТЕЛЯ И ПОСТРОЕНИЕ ФУНКЦИОНАЛЬНОЙ СПЕЦИФИКАЦИИ 10
  3.  ПРОЕКТИРОВАНИЕ СИСТЕМЫ 11
  4.  ПРОЕКТИРОВАНИЕ АППАРАТНОЙ ЧАСТИ УСТРОЙСТВА 13
    1.  РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ 13
    2.  РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ 15
  5.  ПРОЕКТИРОАНИЕ ПРОГРАММНОЙ ЧАСТИ МПУ 18
    1.  РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 18
    2.  РАЗРАБОТКА ЗАДАННОГО ПРОГРАММНОГО МОДУЛЯ 21
    3.  РУКОВОДСТВО ПРОГРАММИСТА ЗАДАННОГО МОДУЛЯ 23

ЗАКЛЮЧЕНИЕ 27

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 28

ПРИЛОЖЕНИЕ


ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Разработать считыватель системы контроля за персоналом:

  •  на базе микроконтроллера AVR семейства mega
  •  интерфейс связи с компьютером RS-232
  •  питание от элементов питания
  •  разработать общую структуру ПО считывателя
  •  написать процедуру хранения точек обхода

Под системой контроля за персоналом понимается набор точек доступа, размещенных по периметру обхода. Точка доступа представляет собой «таблетку»(устройство iButton фирмы Dallas). Считыватель имеет порт считывания, с помощью которого достаточно кратковременно коснуться корпуса обслуживаемой «таблетки» для записи необходимой информации(номер точки доступа, время и т.д.). Также считыватель должен иметь интерфейс связи с компьютером RS-232, для перемещения информации в базу данных копьютера.


КНФУ ХХХХХХ.001 ПЗ

Изм.

Лист

№ докум.

  Подпись

Дата

Разраб.

Бахтин Ю.А.

Считыватель системы

контроля за персоналом

Пояснительная записка

Лит.

Лист

Листов

Провер.

Мясников В.И

5

28

ВМ-41 МарГТУ

Н.конт.

Утв.

ВВЕДЕНИЕ

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

iButton в качестве Транспортного ключа (Data Logger)

Существуют приложения, в которых данные от удаленного объекта должны быть переданы в компьютер (и обратно) не мгновенно, а в обозримом времени. Поскольку в таких системах не требуется оперативное управление, оказывается выгодным не прокладывать проводные коммуникации и не занимать ресурсы компьютера непрерывным сканированием состояния объекта. Делать это нужно периодически, но всё-таки нужно. Следовательно, нужно устройство для переноса данных, и вот в такой ситуации сразу в памяти всплывает электронная таблетка iButton.

Приведём примеры приложений, отвечающих приведенному выше критерию.

Автономный электронный замок содержит в своей энергонезависимой памяти список доступа, то есть, коды тех электронных ключей, которым разрешен проход в помещение. Если список невелик, занести его можно с помощью простой процедуры при помощи предъявления ключей возле двери. Но при большом списке (даже 50 ключей), такая процедура становится утомительной или практически невозможной. Предложение: составить список ключей на компьютере, перенести его в прибор iButton простым касанием, а потом, прикоснувшись электронной таблеткой к замку, перекачать в него сразу весь список. То, что это не просто удобно, а очень удобно, вы почувствуете тогда, когда возникнет необходимость удалить или изменить одну запись в списке (сотрудник уволился, потерял ключ). Да, можно присоединить к замку через технологический разъем специальный модуль управления и набрать код заменяемого/удаляемого ключа на клавиатуре. Но можно поступить проще: поменять список доступа в компьютере и вновь перенести его на замок простым касанием.

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


КНФУ ХХХХХХ.001 ПЗ

Лист

6

Изм.

Лист

№ докум.

Подпись

Дата

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

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

Почувствовавшим вкус процедуры заметим, что домофонное устройство подъезда в описываемом смысле ничем не отличается от приведенного выше примера и может обслуживаться таким же образом. Если бы списки кодов и ключей доступа в подъезд хранились в компьютере старшего по подъезду или даже у дежурного в ЖЭС, то решать проблему потерянных ключей или забытых кодов было бы намного проще.

Data Logger для устройств iButton

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

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

Известны приложения, когда электронная таблетка с памятью закрепляется на движущемся объекте для передачи постоянной или накапливаемой информации. Например, устройства DS1921 могут осуществлять не только измерение температуры, но и накапливать результаты измерения в памяти с заданным интервалом времени. Такие приборы чрезвычайно удобны для контроля температурного режима перевозимых продуктов питания, медицинских и химических препаратов, донорских органов. Энергонезависимая память в металлическом корпусе может содержать описание сборочного процесса, а именно состав комплектующих, монтируемых на каждой операции.


КНФУ ХХХХХХ.001 ПЗ

Лист

7

Изм.

Лист

№ докум.

Подпись

Дата

1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ

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

- хранить время и точку доступа в памяти;

- возможность считывания списка точек обхода со всей необходимой информацией на компьютер;

- освобождение памяти считывателя, для дальнейших записей.

В настоящее время существуют аналогичные системы контроля. Таким примером может служить iButton Transporter(iBT), разработанный Научно-Технической Лабораторией «ЭлИн»(Электронные инструменты).

Организация эксплуатации прибора iBT подразумевает наличие множества территориально рассредоточенных стационарно закрепленных устройств iButton, обладающих памятью данных большой емкости. Последовательно перемещаясь от одной удаленной "таблетки" к другой, пользователь (обходчик), оснащенный прибором iBT, осуществляет обход "таблеток" и может при этом выполнять следующие действия:

- осуществить съем и сохранение в памяти транспортера iBT информации, зарегистрированной в процессе работы каждого из обслуживаемых устройств iButton,

- определить индивидуальный идентификационный номер устройства семейства iButton и визуально инспектировать текущие значения параметров (содержимое регистров, определенных разработчиком транспортера) обслуживаемой "таблетки", отображаемые на индикаторе прибора в числовой форме,

- модифицировать содержимое памяти удаленных устройств iButton.

C работой по сбору информации от удаленных устройств iButton и осуществлению автоматической модификации содержимого их памяти может справиться даже обслуживающий персонал, не имеющий высокой квалификации, но оснащенный прибором iBT.

После того как информационные копии от удаленных логгеров iButton, собраны и содержатся в энергонезависимой памяти прибора iBT, они могут быть считаны для дальнейшего архивирования и анализа непосредственно в персональный компьютер с помощью специализированной программы. Для этого необходимо соединить прибор с COM-портом персонального компьютера. При этом оператор, обладающий более высокой квалификацией, чем обходчик, имеет возможность:

- считать данные, хранящиеся в Flash-памяти прибора iBT, в память персонального компьютера,


КНФУ ХХХХХХ.001 ПЗ

Лист

8

Изм.

Лист

№ докум.

Подпись

Дата

- очистить содержимое Flash-памяти транспортера iBT, освободив тем самым место для нового сеанса съема информационных копий удаленных устройств iButton,

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

- изменить содержимое пользовательской памяти (ярлыка) транспортера iBT, занеся туда любую сопровождающую прибор информацию, как-то: ФИО оператора и/или обходчика, время начала обхода, условия его проведения, список идентификаторов, обслуживаемых "таблеток", маршрут обхода и т.д.

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

Основой транпортировщика iBT является современный микроконтроллер ATmega8535L-8PI фирмы Atmel Corp., который, благодаря аппаратно-программной эмуляции специализированного 1-Wire-интерфейса, обеспечивает обмен данными между собственной энергонезависимой памятью и обслуживаемым устройством iButton. Для хранения собранной информации в приборе используется энергонезависимая Flash-память с программно организованным количеством циклов перезаписи ~20000. Кроме того, схема прибора содержит держатель устройства в корпусе MicroCAN модели DS9094F, в котором может быть размещена эталонная "таблетка", выполняющая специальные функции (например, функции часов реального времени, или пользовательской памяти iBT (ярлыка), или образца состояния регистров установочных параметров, копия которых переписывается в обслуживаемые устройства iButton). Каждый из транспортеров iBT характеризуется собственным индивидуальным шестнадцатиразрядным номером, совпадающим с идентификационным номером эталонной "таблетки", входящей в состав его схемы. Сообщения о состоянии и режимах функционирования прибора отображаются на двухстрочном матричном жидкокристаллическом дисплее, оснащенном светодиодной подсветкой. Управление прибором iBT осуществляется с помощью шести кнопок, расположенных на передней панели его корпуса. Одна из них управляет его включением/выключением, а активизация другой обеспечивает запуск генератора подсветки жидкокристаллического дисплея. В качестве источника питания используются три 1,5-вольтовые батареи широко распространенного типоразмера "АА", устанавливаемые в специальный отсек элементов питания, размещенный внутри корпуса. Транспортер iBT имеет функцию автоматического отключения питания после окончания работы, а также выполняет своевременную сигнализацию о необходимости замены батарей.


КНФУ ХХХХХХ.001 ПЗ

Лист

9

Изм.

Лист

№ докум.

Подпись

Дата

Технические характеристики

Тип используемого элемента питания

3 элемента типоразмера АА по 1,5 В

Средний ток потребления во включенном состоянии

не более 9 мА

Средний ток потребления при включенной подсветке ЖКИ

не более 16 мА

Средний ток потребления при отработке процедуры записи в Flash-память

не более 21 мА

Максимальный ток потребления в выключенном состоянии

не более 15 мкА

Минимальное суммарное напряжение батарей

3,3 В

Емкость энергонезависимой Flash-памяти

8 Мбит

Ориентировочное время непрерывной работы элементов питания без подсветки ЖКИ*

не менее 30 ч

Ориентировочное время жизни элемента питания при выключенном состоянии прибора*

не менее 1500 ч

Интервал времени между последней операцией, выполненной прибором, и его автоматическим выключением

~6 мин

Степень защиты

IP64

Рабочий диапазон температур окружающей среды

-20°С...+60°С

Относительная влажность

не более 80 % при 35°С

Атмосферное давление

от 86 до 106 кПа

Габариты

220х110х46 мм

* - зависит от емкости используемых элементов питания. Данные приведены для батарей Greencell марганцево-цинковой системы с солевым электролитом, не содержащих ртути и кадмия, емкостью 0,82 Ач, производства фирмы GP Batteries Inc.

Порядок работы прибора iBT, а также его пользовательские функции на всех этапах эксплуатации, полностью определяются программой управления, размещаемой в Flash-памяти микроконтроллера. В зависимости от программы управления, прошитой в той или иной версии прибора, он может выполнять самые различные задачи по сопровождению устройств iButton любого типа, в соответствии с имеющимися вычислительными и индикационными ресурсами, а также объемом встроенной энергонезависимой Flash-памяти хранения данных. При подготовке программы используются отладочные средства, рекомендованные для разработчиков фирмой Atmel Corp.


КНФУ ХХХХХХ.001 ПЗ

Лист

10

Изм.

Лист

№ докум.

Подпись

Дата

2. ТРЕБОВАНИЯ ПОЛЬЗОВАТЕЛЯ И ПОСТРОЕНИЕ

ФУНКЦИОНАЛЬНОЙ СПЕЦИФИКАЦИИ

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

- автоматическое считывание точки доступа(простым касанием);

- возможность записи времени доступа;

- возможность хранения достаточного количества точек доступа;

- упрощенная операция перемещения данных на компьютер;

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

- малогабаритность устройства считывания точек доступа;

- считыватель должен питаться от широкодоступных элементов питания.

Функциональная спецификация:

1.Список функций, выполняемых системой:

- считывать точку доступа;

- выдавать сигнал об успешности считывания;

- хранить данные в энергонезависимой памяти;

- перемещать данные базу данных компьютера;

- сформировать сигнал сброса при зависании системы.

2.Описание интерфейса между системой и пользователем:

- необходимо мгновенное считывание точки доступа одним касанием;

- сообщение об удачном или ошибочном считывании точки доступа;

- индикатор передачи информации на компьютер.

Представим функциональную спецификацию в форме распределения информации по категориям ВХОДЫ, ВЫХОДЫ и ФУНКЦИИ:

А. ВХОДЫ

1. Контактная точка доступа.

2. Связь с компьютером.

Б. ВЫХОДЫ

1. Визуальные сигналы.

2. Передача данных на компьютер.

В. ФУНКЦИИ

1. Система восстанавливается при зависаниях;

2. Визуальный сигнал включается:

 а) при контакте с точкой доступа;

 б) во время передачи данных на компьютер;

3. Хранит данные обхода в энергонезависимой памяти.


КНФУ ХХХХХХ.001 ПЗ

Лист

11

Изм.

Лист

№ докум.

Подпись

Дата

3. ПРОЕКТИРОВАНИЕ СИСТЕМЫ

На основании анализа функциональной спецификации можно выделить следующие блоки, которые необходимо реализовать аппаратным способом:

Входы:

- модуль контактного устройства

- модуль связи с компьютером

- модуль часов

Выходы:

- модуль светодиодных индикаторов

- модуль переноса данных

Функции:

- модуль защиты от зависания

- модуль хранения данных

Стандартные модули системы:

- модуль микроконтроллера

- модуль сброса и синхронизации

- модуль питания

В результате разработки проекта системы можно построить ее структурную схему:

Рис. 3.1. Структурная схема считывателя системы контроля за персоналом.


КНФУ ХХХХХХ.001 ПЗ

Лист

12

Изм.

Лист

№ докум.

Подпись

Дата

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

Рис. 3.2. Функционально-модульная структура ПО считывателя.


КНФУ ХХХХХХ.001 ПЗ

Лист

13

Изм.

Лист

№ докум.

Подпись

Дата

4. ПРОЕКТИРОВАНИЕ АППАРАТНОЙ

ЧАСТИ УСТРОЙСТВА

4.1. РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ

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

Модуль питания.

Данное устройство имеет переносной характер, поэтому питание от сети ему не подходит, т.о. модуль питания будет реализован на «батарейках» типа ААА. Элементная база МПУ требует напряжения питания +5.5В, поэтому модуль питания состоящий из четырех 1,5 В элементов питания будет достаточен.

Модуль сброса и синхронизации.

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

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

Модуль светодиодных индикаторов.

Этот модуль состоит из 3-х светодиодов. 2 из них будут являться индикаторами считывания точки доступа, зеленый будет сигнализировать об удачном считывании, а красный об ошибочном. Третий светодиод будет отвечать за оповещение передачи данных по последовательному каналу.


КНФУ ХХХХХХ.001 ПЗ

Лист

14

Изм.

Лист

№ докум.

Подпись

Дата

Модуль хранения данных.

Для хранения данных, таких как список точек обхода и время доступа к каждой точке, целесообразнее использовать внешнюю память. Для надежности устройства лучше использовать энергонезависимую память, это предотвратит от потери данных в случае неожиданного окончания заряда батарей. Для данного устройства возьмем память объемом 64 Кбита, этого будет достаточно для хранения в памяти до 450 меток и журнала событий до 1400 записей.

Модуль часов.

Необходим для регистрации времени доступа к определенной «таблетке». Оптимальным выбором будет микросхема типа iButton.

Модуль контактного устройства.

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

Модуль микроконтроллера.

Для выбора микроконтроллера необходимо учесть все требования по его архитектуре, в соответствии с заданием и структурной схемой. Микроконтроллер устройства находится всегда в режиме Sleep, и выходит из этого режима по прерыванию при предъявлении электронного идентификатора. Проводит обработку полученного номера, осуществляет контроль за разрядом батарей, производит запись времени предъявления и номера идентификатора в журнал событий и переходит опять в режим Sleep. Использование такого алгоритма позволяет существенно сократить потребление тока устройством. Реально при средней интенсивности регистрации емкости батарей хватает на 5-6 месяцев.


КНФУ ХХХХХХ.001 ПЗ

Лист

15

Изм.

Лист

№ докум.

Подпись

Дата

4.2. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ

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

В качестве внешней памяти выберем микросхему EEPROM 24LC64. Данная микросхема является энергонезависимой и имеет двухпроводной последовательный интерфейс передачи данных I2C. Ее объем составляет 64 Кбита, этого будет достаточно для хранения до 450 меток и журнала событий до 1400 записей. Подключение данной микросхемы показано на рис. 4.1.

Рис 4.1. Подключение внешней памяти к микропроцессору.

Для контроля за напряжением питания микропроцессора выберем супервизор напряжения DS1818. Его схема подключения показана на рис 4.2.

Рис 4.2. Схема включения супервизора напряжения.

Как описывалось ранее питание будем реализовывать на элементах питания. Так как выбранный нами микропроцессор требует напряжения до +5.5 В, поэтому будем создавать последовательную цепь. В качестве элементов питания подойдут 4 «батарейки» типа ААА и напряжением 1,5 В каждая. Схема, обеспечивающая такой тип питания, изображена на рис 4.3.


КНФУ ХХХХХХ.001 ПЗ

Лист

16

Изм.

Лист

№ докум.

Подпись

Дата

Рис 4.3. Питание от аккумуляторов.

Для регистрации времени доступа к определенной «таблетки» выберем микросхему часов DS1994 форма iButton. Точность этих часов составляет              ±2 мин/месяц, гарантированный срок хранения данных - 10 лет. Отличительной особенностью часов прибора DS1994 является способ представления времени. Сами часы выполнены как двоичный счётчик с разрешением 1/256 с. Минуты, часы, дни и годы вычисляются из числа секунд, прошедших от условно выбранной даты. Это позволяет значительно упростить вычисление временных интервалов между различными событиями. Интервальный таймер может использоваться как секундомер или для контроля интервалов времени работы оборудования, так как в его состав входит схема генерации прерываний. Для измерения времени в качестве задающего генератора используется кварцевый резонатор частотой 32,768 кГц.

Рис 4.4. Схема подключения контактного устройства.

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


КНФУ ХХХХХХ.001 ПЗ

Лист

17

Изм.

Лист

№ докум.

Подпись

Дата

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

Затем для того чтобы можно было считывать накопившуюся информацию с устройства на компьютер для дальнейшей ее обработки и сохранности, необходимо реализовать соответствующий интерфейс. Так как передавать придется на небольшие расстояния, то подойдет асинхронный интерфейс RS-232C. В качестве преобразователя уровней сигналов на входах микроконтроллера к уровням стандартных интерфейсов возьмем микросхему ADM202JN. Ее подключение к выводам микроконтроллера и выходам розетки показано на рис 4.5.

Рис 4.5. Организация интерфейса RS232C для микроконтроллера.

На основании анализа требований, предъявляемых к микроконтроллеру, и учитывая, что в задании на разработку нет рекомендации по его выбору, остановимся на микроконтроллере AVR –  АТmega16. Его характеристики: 40-выводной корпус – 32 программируемых линий ввода/вывода с выходными буферами; Flash ROM – 16 KB, EEPROM – 512 B, RAM – 1 KB; наличие интерфейсов UART, SPI, I2C и отладочного JTAG, рабочее напряжение питания до 5.5 В; тактовая частота 16 МГц; два 8-ми и один 16-ти битных таймера/счетчика; потребление тока в активном режиме 1,1 мА и в спящем –         0,35 мА.


КНФУ ХХХХХХ.001 ПЗ

Лист

18

Изм.

Лист

№ докум.

Подпись

Дата

5. ПРОЕКТИРОАНИЕ ПРОГРАММНОЙ ЧАСТИ МПУ

5.1. РАЗРАБОТКА СТРУКТУРЫ ПО

В разделе проектирования системы была определена функционально-модульная структура ПО считывателя (рис. 3.2).

Эта структура должна быть дополнена еще двумя модулями, которые не могут быть выведены из функциональной спецификации – модуль ИНИЦИАЛИЗАЦИИ и модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ. Когда система включается, она должна быть инициализирована, таким образом данный модуль должен находиться на втором уровне нисходящей иерархии – сразу за главным модулем. Разрешение общего прерывания не будем включать в модуль ИНИЦИАЛИЗАЦИИ, с целью лучшей читаемости программы.

В соответствии с функционально-модульной структурой процедура MAIN будет иметь вид:

MAIN()

{

ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ();

РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ();

while(1)

{

ПРОВЕРКА();

СБРОС WDT();

}

}

Первая операция процедуры MAIN обращается к процедуре ИНИЦИАЛИЗАЦИЯ, далее к процедуре РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ. После выхода из этой процедуры осуществляется переход к другим процедурам, которые содержаться внутри бесконечного цикла while. Таким образом, в системе обеспечивается проверка нажатия кнопки, проверка состояния контактного устройства и сброс охранного таймера. Эти операции выполняются до тех пор, пока система подключена к источнику питания.

Модуль ИНИЦИАЛИЗАЦИИ должен содержать процедуры, которые выполняют функции инициализации и восстановления после зависания. При включении питания необходимо настроить следующие узлы микроконтроллера:


КНФУ ХХХХХХ.001 ПЗ

Лист

19

Изм.

Лист

№ докум.

Подпись

Дата

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

ИНИЦИАЛИЗАЦИЯ()

{

установка портов на ввод/вывод и задание выходного вектора;

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

настройка постоянной времени охранного таймера;

настройка системы прерывания, разрешение отдельных прерываний;

}

Модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ разрешает системе реагировать на прерывания. Для контроллера это внешнее прерывание от контактного устройства и внутреннее от таймера. Разрешение индивидуальных прерываний выполнено в модуле ИНИЦИАЛИЗАЦИЯ.

Модуль ПРОВЕРКИ проверяет состояние флага контакта с точкой доступа. Если флаг установлен, то запускается соответствующая процедура. Эта процедуры содержатся в ВЫХОДНОМ модуле, и представляет собой создание новой записи в журнале событий в виде идентификатора точки доступа и текущего времени.

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

ПРОВЕРКА()

{

Если флаг контакта установлен, то выполнить {

ВЫХОДНОЙ(параметры);

Сброс флага контакта;

Разрешение прерывания;

}

}

Модуль СБРОС WDT устанавливает охранный таймер в исходное состояние, не позволяя ему сбросить всю систему. Это библиотечная функция языка.


КНФУ ХХХХХХ.001 ПЗ

Лист

20

Изм.

Лист

№ докум.

Подпись

Дата

Модуль ТАЙМЕРА выполняет отсчет времени с определенной точностью. Для систем реального времени наиболее просто данный модуль реализуется в виде подпрограммы обработки прерывания по переполнению внутреннего таймера. В теле модуля должна располагаться переменная – счетчик текущего времени, значение которой будет увеличиваться с каждым вызовом прерывания. Синхронизация текущего времени с временем срабатывания кнопки должна осуществляться во входном модуле путем сброса счетчика времени в ноль.

ТАЙМЕР()

{

перезагрузка таймера для задания периода вызова прерывания;

увеличение счетчика текущего времени;

}

ВХОДНОЙ модуль должен реагировать на изменение сигнала от контактного устройства. Реализуем данный модуль в виде подпрограммы прерывания по входному сигналу. При возникновении прерывания необходимо установить флаг контакта.

ВХОДНОЙ()

{

установка флага контакта;

сброс счетчика текущего времени;

сканирование идентификатора «таблетки»;

подавление дребезга контактов;

взятие текущего времени;

}

ВЫХОДНОЙ модуль устанавливает выходной вектор на выходной порт микроконтроллера.

ВЫХОДНОЙ(параметры)

{ /* начало процедуры */

установка на порту выходного вектора;

} /* возврат */


КНФУ ХХХХХХ.001 ПЗ

Лист

21

Изм.

Лист

№ докум.

Подпись

Дата

5.2. РАЗРАБОТКА ЗАДАННОГО ПРОГРАММНОГО МОДУЛЯ

Для реализации выберем модуль ВХОДНОЙ. Представим его в графическом виде при помощи блок-схемы алгоритма.

Рис 5.1. Граф схема алгоритма считывания «таблетки»(точки доступа).


КНФУ ХХХХХХ.001 ПЗ

Лист

22

Изм.

Лист

№ докум.

Подпись

Дата

Приведем представление архитектуры ПО считывателя системы контроля за персоналом в виде графа состояний системы.

Рис 5.2. Граф автомата считывателя системы контроля за персоналом.

В исходное состояние ожидания(ОЖ) автомат переходит при подачи электропитания на микроконтроллер и будет в нем находится до тех пор пока не сработает контактное устройство. При замыкании контактов(КОНТ) по сигналу P1=1 автомат перейдет в состояние проверки зарегистрирована ли данная точка доступа в системе(РЕГ). При наличие регистрации данной точки доступа в системе автомат по сигналу P2=1 перейдет в состояние записи текущего события в журнал(ЖУР). Также в этом случае и в противном, когда точка доступа является неопознанной, автомат активизирует состояние ИНД, в котором микроконтроллер с помощью светодиодов сообщает пользователю об успешности данной процедуры.


КНФУ ХХХХХХ.001 ПЗ

Лист

23

Изм.

Лист

№ докум.

Подпись

Дата

5.3 РУКОВОДСТВО ПРОГРАММИСТА ЗАДАННОГО МОДУЛЯ

Программа управления считывателем системы контроля за персоналом написана на языке С, текст программы представлен ниже. Программа создана в соответствии с заданным алгоритмом и состоит из следующих модулей(процедур):

- основная программа – main

- инициализация микроконтроллера – init()

- проверка наличия «таблетки» на контактном устройстве – check

- запись информации в память – FlashSeqWrite

- чтение информации из памяти – FlashSeqRead

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

Пояснения к программе приведены в самом листинге.

#include <mega16.h>

#include <delay.h>

#define SDA PORTC.1 //привязка сигнала к порту, при включении SDA=1

#define SCL PORTC.0 //привязка сигнала к порту, при включении SCL=1

static unsigned int flash_page; //номер страницы в памяти

void main(void)

{

init();  //инициализация

_SEI();  //Общее разрешение прерываний

while(1)  //Бесконечный цикл

{

check(); //Проверка контакта и установка выходного вектора

_WDR();  //Сброс охранного таймера

}

}

char FlashSeqWrite(int * RdA, char a, char n) /* процедура записи после-

довательности из массива RdA[] n байт в память, начиная с адреса а*/

{

char d;

SDA=0; SCL=0; d=0xA0;  /*d=0xA0 – (А)-признак принадлеж.

микросхемы к EEPROM, 0 – признак записи*/

for (i=0;i<8;i++) {

d<<=1; SDA=CY; /*сдвиг признака через перенос и посылка

его в линию*/

SCL=1; SCL=0;  /* импульсы записи*/

}

SDA=1; SCL=1;  /* подготовка к приему подтверждения АСК*/

if (!SDA) { /* микросхема готова к обмену?*/


КНФУ ХХХХХХ.001 ПЗ

Лист

24

Изм.

Лист

№ докум.

Подпись

Дата

SCL=0;  /* да */

for (i=0;i<8;i++) {

a<<=1; SDA=CY; /*посылка  начального адреса ячейки памяти */

}

SCL=1; SCL=0; /* импульсы записи*/

}

SDA=1; SCL=1; /* подготовка к приему подтверждения АСК*/

a=0;

while (n) {

if (SDA) break;  /* выход по неготовности мксх*/

SCL=0; SDA=1; d=RdA[a++]; /* чтение байта из массива*/

for (i=0;i<8;i++) {

d<<=1; SDA=CY;  /* выдача его в линию */

SCL=1; SCL=0; /* импульсы записи */

}

SDA=0; SCL=1;

n--;

}

}

SCL=0; SDA=0; /* условие конца передачи */

SCL=1; SDA=1; /* условие конца передачи */

return n; //возврат признака выполнения операции (успешная запись n=0)

}

/* процедура чтения последовательности байт

а – адрес начальной ячейки памяти,

n – количество читаемых байт

* RdA – указатель на приемный массив */

char FlashSeqRead(int * RdA, char a, char n)

{

char d;

SDA=0; SCL=0;/* условие старта передачи, сначала SDA=0, затем SCL=0*/

d=0xA0; /* d=0xA0 – (А)-признак принадлежности

микросхемы к EEPROM, 0 – признак записи*/

for (i=0;i<8;i++) {

d<<=1;SDA=CY;/*сдвиг признака через перенос и посылка его в линию*/

SCL=1; SCL=0;

}/* импульсы записи*/

SDA=1; SCL=1; /* подготовка к приему подтверждения АСК*/

if (!SDA) {/* микросхема готова к обмену?*/

SCL=0; /* да */

for (i=0;i<8;i++) {

a<<=1; SDA=CY;

SCL=1; SCL=0; /*посылка импульсов по линии SCL для записи начального адреса ячейки памяти */

}

SDA=1; SCL=1; /* подготовка к приему подтверждения АСК*/

if (!SDA) { /* микросхема готова к обмену?*/

SCL=0; SCL=1; /* да */

SDA=0; SCL=0; d=0xA1; /*d=0xA1 – (А)-признак принадлеж.

микросхемы к EEPROM, 1 – признак чтения*/

for (i=0;i<8;i++) {

d<<=1; SDA=CY; /*сдвиг признака

через перенос и посылка его в линию*/

/* импульсы записи*/

SDA=1; SCL=1; /* подготовка к приему подтверждения АСК*/

a=0;


КНФУ ХХХХХХ.001 ПЗ

Лист

25

Изм.

Лист

№ докум.

Подпись

Дата

while (n) {

SCL=0; SDA=1; d=0;

for (i=0;i<8;i++) { /* прием байта информации  */

SCL=1; d+=d; if (SDA) d|=1;

SCL=0;

}

if (--n) SDA=0; else SDA=1; SCL=1;

RdA[a++]=d; /* запись байта в массив */

}

}

}

SCL=0; SDA=0; /* условие конца передачи */

SCL=1; SDA=1; /* условие конца передачи */

}

return n; /* возврат признака выполнения

операции (успешная запись n=0)  */

}

void init()//инициализация микроконтроллера

{

// инициализация портов

PORTA=0xFF;

DDRA=0x00;

PORTB=0x4C;

DDRB=0x00;

PORTC=0x28;

DDRC=0x00;

PORTD=0x8C;

DDRD=0x00;

//инициализация таймера

TCCR1A = 0x00;

TCCR1B = 0x28;

TCNT1 = 0xFA;

TIMSK |= Bit(MskTIE1); //Таймер 1(8–разрядный) - разрешение прерываний

GIMSK |= Bit(MskInt0); //INT0 - разрешение прерывания

PORTC.2 = 1;//погасить красный светодиод

 PORTC.4 = 1;//погасить зеленый светодиод

flash_page = 0;//задать страницу записи

}

void check(void)//проверка флага контакта

{

 if(PORTC.6)//если присутствует контакт

{

iButton_data = PORTC.6;//взятие идентификатора «таблетки»

flash_read_page = 0;

flash_data = 0xFF;

while(flash_data){

FlashSeqRead(flash_data, (char)flash_read_page, 7);

if(flash_data==iButton_data){/*если данная «таблетка»

зарегестрирована в системе*/

iButton_is_registered = true;

break;//не имеет смысла дальше просматривать


КНФУ ХХХХХХ.001 ПЗ

Лист

26

Изм.

Лист

№ докум.

Подпись

Дата

}

}

if(iButton_is_registered){/*если данная «таблетка»

зарегистрирована в системе*/

clock_data = PORTB.5;//взятие текущей даты

//записать идентификатор «таблетки» в память

FlashSeqWrite(iButton_data, (char)flash_page, 7);

//записать текущее время в память

FlashSeqWrite(clock_data, (char)flash_page, 11);

//зажечь зеленый светодиод на 1 секунду

PORTC.4 = 0;

delay_ms(1000);

PORTC.4 = 1;

flash_page++;

} else {/*в случае неопознанной «таблетки»*/

//зажечь красный светодиод на 1 секунду

PORTC.2 = 0;

delay_ms(1000);

PORTC.2 = 1;

}

}

}


КНФУ ХХХХХХ.001 ПЗ

Лист

27

Изм.

Лист

№ докум.

Подпись

Дата

ЗАКЛЮЧЕНИЕ

В данной курсовой работе был разработан считыватель системы контроля за персоналом. Устройство построено на микроконтроллере AVR ATmega16. Для устройства была построена структурная, функциональная и принципиальная схемы. Также была написана программа на языке С для модуля считывания контрольных точек доступа.


КНФУ ХХХХХХ.001 ПЗ

Лист

28

Изм.

Лист

№ докум.

Подпись

Дата

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1.  Мясников В.И. Микропроцессорные системы.: Учебное пособие по курсовому проектированию.- Йошкар-Ола: МарГТУ, 2003.- 132 с.
  2.  Предко М. Руководство по микроконтроллерам. Том II. Москва.: Постмаркет, 2001. – 488 с.
  3.  Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет. "Телесистемы". Под. ред. Коршуна И.В.; Составление пер. с англ. и литературная обработка Горбунова Б.Б. М: Изд. "Аким", 1998. 272 С: ил.
  4.  Техническая документация на микроконтроллеры  AVR:

ATmega16 и ATmega16L.

  1.  Internet: http://avr123.nm.ru/ - программирование микроконтроллеров AVR.


Лист

2

Модуль

защиты

от зависаний

Модуль связи с

компьютером

Лист

3

+

+

запись данных

в память

iButton_data = PORTC.6

взятие идентификатора таблетки

clock_data = PORTB.5

взятие текущей даты

PORTC.4 = 0

зажечь зеленый светодиод

Проверка регистрации данной «таблетки» в системе

PORTC.2 = 0

зажечь красный светодиод

iButton_is_registered

«таблетка» зарегистрированна в системе

PORTC.6

присутствует контакт

Возврат

Вход

P2=1

(P2=0) or (P2=1)

P1=1

P1=0

Вкл.

ИНД

ЖУР

РЕГ

ОЖ

КОНТ

P1=1

Модуль Выхода

Модуль Часы-Таймер

Модуль Входа

Модуль Сброса

Модуль Проверки

Главный модуль Main

Модуль

питания

Модуль

сброса и

синхронизации

Модуль

хранения

данных

Модуль

переноса

данных

Модуль

светодиодных

индикаторов

Модуль

часов

Модуль

контактного

устройства

Модуль

микроконтроллера

Лист

4


 

А также другие работы, которые могут Вас заинтересовать

12385. Работа с несколькими листами 45 KB
  Лабораторная работа Работа с несколькими листами. Оборудование: ПЭВМ Программное обеспечение: Windows EXCEL . Цель работы: приобретение и закрепление практических навыков работы в EXCEL Задание: Запустить Windows и EXCEL. Вычислить объем про...
12386. Создание структуры таблицы 76 KB
  Задание №1 Создание структуры таблицы Процесс создания БД рассмотрим на примере таблицы ПЕРВЫЙ КУРС. Запустить СУБД Access. В окне СОЗДАНИЕ БД выбрать опцию НОВАЯ БАЗА ДАННЫХ и нажать кнопку ОК. В окне новой БД указать ее имя и место на диске. Открыть окно КОНСТР
12387. Создание запросов 67.5 KB
  Лабораторная работа Создание запросов. Оборудование: ПЭВМ Программное обеспечение: Windows Access Цель работы: приобретение и закрепление практических навыков работы в Access Выбор записей отвечающих определенному условию можно осуществить как с помощью фильт
12388. Интернет браузер 2.99 MB
  Интернет браузер 1. Цель работы: Познакомиться с Научиться 2. Технические средства: Оборудование: ПК. ПО: ОС Windows OpenOffice.org Base браузер Google Crome 3. Задание: Выполнить задание в соответствии с установленным порядком. Ответить в отчете на поставленные вопр...
12389. Интернет браузер и его настройки 209.5 KB
  1. Цель работы: Познакомиться с Научиться 2. Технические средства: Оборудование: ПК. ПО: ОС Windows Base браузер Google Crome 3. Задание: Выполнить задание в соответствии с установленным порядком. Ответить в отчете на поставленные вопросы. 4. Выполнен
12390. Функции и состав операционной системы MS-DOS. Работа с каталогами и файлами в MS-DOS 96 KB
  Практическая работа №1. Функции и состав операционной системы MSDOS. Работа с каталогами и файлами в MSDOS. Цель работы: изучение основных модулей операционной системы MSDOS и их функций формата команды и основных команд по работе с каталогами и файлами в МSDOS. СОДЕРЖАН
12391. Управление процессами в Windows 26.78 KB
  Практическая работа № Управление процессами в Windows. Цель работы: изучение возможностей контроля и управления процессами в операционных системах Windows научиться работать с Диспетчером задач ознакомиться с управлением процессами в ОС Windows с помощью утилиты Process Explorer. ...
12393. Настройка Windows 7 через реестр 181 KB
  Практическая работа Настройка Windows 7 через реестр. Цель работы: изучить назначение реестра его структуру редакторы реестра приемы восстановления системы при повреждении реестра; сформировать навыки и умения работать с редактором реестра. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. ...