Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

Разработка стенда для изучения средств обеспечения безопасности на основе микропроцессорных систем управления

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

79

Дипломная работа

Разработка стенда для изучения средств обеспечения безопастности на основе микропроцессорных систем управления

Содержание

Введение

1. Постановка задачи

1.1 Цель дипломного проекта

1.2 Техническое задание

1.3 Выводы по разделу

2.Специальный раздел

2.1 Структурная схема датчиков

2.1.1 Система радиочастотной идентификации

2.1.2 Устройство идентификации личности

2.2 Описание структурной схемы стенда

2.2.1 Сканер отпечатков пальцев

2.2.2 Считыватель iButton

2.2.3. Комплект системы радиочастотной идентификации

2.2.4 Цифровая клавиатура

2.3. Последовательный интерфейс SPI

2.3.1 Электрическое подключение

2.3.2 Протокол передачи

2.4 Интерфейс 1-Wire

2.5 Принципы работы с датчиками

2.5.1 Считыватель iButton и комплект RFID

2.5.2 Программирование ключа iButton и метки RFID

2.5.3 Цифровая клавиатура

2.5.4 Программирование цифровой клавиатуры

2.5.5 Сканер отпечатков пальцев

2.5.6 Программирование сканера отпечатков пальцев

2.6 Выводы по специальному разделу

3. Экономическая часть

3.1 Составление сметы затрат и расчет

3.2 Выводы по разделу

4. Экология и безопасность жизнедеятельности

4.1 Общее положение

4.2 Виды опасности и меры защиты

4.3 Расчет системы вентиляции учебного помещения

4.4 Влияние промышленных предприятий на окружающую среду

4.5 Методы минимизации выбросов загрязняющих веществ в окружающую среду

4.6 Выводы по разделу

Заключение

Список литературы

Приложение 1

Введение

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

Немцы обнаружили, что если пилоты при возвращении на базу делали двойной переворот через крыло («бочку»), то отраженный радиосигнал изменялся. Этот грубый метод предупреждал наземную службу, что это были германские самолеты, а не вражеские. И это была, по сути, первая пассивная RFID (radio-frequencyidentification)система.

Под руководством Уотсона-Уотта, который возглавлял секретный проект, британцы разработали первую активную систему распознавания «свой-чужой» (IdentifyFriendFoe). На каждом британском самолете размещался передатчик. Когда он принимал сигнал от наземной радарной станции, он начинал обратную трансляцию сигнала, который означал, что самолет «свой». RFID работает по такому же базовому принципу. Сигнал посылается на транспондер, который «просыпаясь», либо отражает сигнал (пассивная система), либо сам транслирует сигнал (активная система).

Развитие радарных и радиочастотных передач продолжалось в 50-е и 60-е годы. Ученые и академики в США, Европе и Японии проводили исследования и представляли отчеты, объясняющие как RF энергия могла бы использоваться для удаленной идентификации объектов. Компании начали извлекать прибыль из противокражных систем, которые использовали радио волны, чтобы определять был ли оплачен товар или нет. Электронные противокражные метки, которые используются и по сей день, имели емкость 1-бит. Бит либо активен, либо нет. Если покупатель заплатил за товар, метка отключена, и покупатель может уйти из магазина. Но если кто-то не заплатил, и пытается выйти из магазина, считыватели на воротах определяют метку и подают сигнал тревоги.

Марио В. Кардульо заявил на получение первого в США патента на активную перезаписываемую RFID метку 23 января 1973 года. В тот же год, Чарльз Уолтон, Калифорнийский предприниматель, получили патент на пассивный транспондер, используемый для открывания двери без ключа. Карта со встроенным транспондером передавала сигнал на приемник около двери. Когда приемник засекал соответствующий идентификационный номер, записанный в RFID метке, дверь открывалась. Уолтон залицинзировал данную технологию для Schlage и других компаний.

Правительство США также работало над RFID системами. В 1970-х Департамент Энергетики попросил Национальную Лабораторию в Лос-Аламосе разработать систему для отслеживания ядерных материалов. Группа ученых разработала концепцию размещения меток в грузовиках, а считыватели на воротах охраняемых объектов. Антенна на воротах активировала транспондер на грузовике, который передает идентификатор вместе с другими данными, такими как, например, идентификатор водителя. Проезжая через ворота метка в грузовике активируется с помощью передатчика и передает ID и другую информацию, включая номер водительского удостоверения. Эта система была коммерциализирована в середине 80-ых, когда ученые из Лос Аламоса, которые работали на проектом разрешили создать компанию, чтобы разрабатывать автоматизированные системы оплаты проезда. Эти системы стали широко использоваться на дорогах, мостах и тоннелях во всем мире.

В начале 90-х, инженеры IBM разработали и запатентовали ультравысокочастотную (UHF) систему RFID. UHF предложила большую дальность считывания (до 20 футов при благоприятных условиях) и более высокая скорость передачи данных. IBM запустила несколько ранних пилотных проектов с Wal-Mart, но никогда не предлагала эту технологию для коммерческого использования. Из-за финансовых проблем в середине 90-х, IBM продала свои патенты компании Intermec, провайдеру систем штрихового кодирования. RFID системы Intermec были инсталлированы во многих различных приложениях, от складского учета до сельского хозяйства. Но в то время технология была достаточно дорогой из-за низкого объема продаж и из-за отсутствия открытых международных стандартов.

Развитие UHF RFID получило толчок в 1999, когда Uniform Code Council, EAN International, Procter & Gamble и Gillette профинансировали создание Auto-ID центра в Массачусетском Технологическом Институте. Два профессора, Дэвид Брок и Сэнджей Шарма, проводили исследования относительно возможности размещения дешевых RFID меток на всех продуктах, для отслеживания их в системе поставок. Их идея состояла в том, чтобы для удешевления метки записывать только серийный номер (простой микрочип, хранящий очень мало информации, стоил бы намного меньше в производстве, чем более сложные чипы с большей памятью). Данные на чипе, связанные с серийным номером, хранились бы в базе данных, которая была бы доступна через Internet.

Две основные технологии пассивной RFID

Низкочастотная идентификация

Данный метод RFID работает на несущих частотах от сотен килогерц, до единиц мегагерц. У нас в стране на это выделено 2 частотные зоны: 125 кГц (LF), и 13,56 МГц (HF).

Принцип работы меток предельно прост и описывается как работа обычного трансформатора. Все мы знаем что трансформатор - это элемент позволяющий изменять величину протекающего по нему тока и поданного на его первичную обмотку напряжения в соотношении количества витков его первичной и вторичной обмотки U1/U2=N1/N2. А вот импеданс обмоток меняется уже в совершенно другой пропорции: Z1/Z2=(N1/N2)^2. соответственно небольшое изменение импеданса в нагрузке будет явно выражено для опрашивающего устройства. Соответственно получаем следующую систему: приёмо-передающий модуль, в качестве антенны у которого некая обмотка (первичная). Метка - это чип, со вторичной обмоткой соответственно. При поднесении считывателя к метке, через обмотку метки начинает течь ток и от него запитывается чип, который изменяя импеданс в нагрузке обмотки передаёт информацию считывателю.

Рис. 1. Низкочастотная идентификация

Наиболее функциональна, из представленных, технология RFID на частоте 13,56 МГц. Она обладает высокой скоростью передачи данных и большими объёмами хранимой информации на метке (единицы килобайт).

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

Высокочастотная идентификация

В Российской Федерации есть ещё один стандарт RFID - 868 МГц (UHF). Принцип действия этой технологии уже совершенно иной, нежели у низкочастотных методов. Тут мы имеем дело с нелинейной радиолокацией. Этот метод был обкатан десятилетиями применения в технических разведках, таких как Агентство Национальной Безопасности США, и в нашем славном Комитете Государственной Безопасности СССР. Для технологии RFID он был просто удешевлён и миниатюризирован, но остался по сути тем же что и для специальных применений.

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

Радиометка представляет собой чип снабженный антенной системой - обычно полуволновой, или четверть волновой диполь.

Радиометка принимает посредством собственной антенной системы высокочастотную энергию переданную считывателем. В чипе находится мостовой выпрямитель (банальный линейный блок питания с небанальными микроскопическими размерами) и с его помощью часть принятого УВЧ сигнала служит питанием микросхемы. После того как микросхема запитывается, начинается активный опрос метки считывателем. Оветная информация высылается меткой посредством амплитудной модуляции отражённого сигнала, которая получается с помощью изменения эффективной поверхности рассеяния (ЭПР) метки с помощью нелинейного элемента - варикапа (диод с переменной ёмкостью).

Рис.2. Высокочастотная идентификация

Технология RFID в УВЧ диапазоне позволяет: производить считывание пассивных меток на расстоянии до 10 метров. Среднее же расстояние считывание меток в промышленных условиях составляет от полуметра до 3-х метров. Единовременно в поле считывателя может находиться до 200…300 меток, и все они будут идентифицированы. Огромная скорость опроса меток - до 100…200 опросов в секунду в зависимости от применяемого оборудования. Объем памяти пассивной УВЧ радиометки в наши дни достигает единиц килобайт. Кроме того, в чип размером 0,5х0,5х0,2 мм встроен собственный криптопроцессор, позволяющий защитить эфирный канал передачи данных «метка-считыватель».

Ограничения же данной технологии лежат исключительно в свойствах маркируемых ими материалов. Естественно что идеальными для маркировки являются диэлектрики. Они позволяют не задумываться о размещении метки, и её типе. Совсем другую задачу ставят металлы и водосодержащие материалы. Но и для них существуют специальные УВЧ метки для сложных материалов.

Во всём мире эта технология внедряется повсеместно в производстве, торговле, логистике… К сожалению, в России продвижение технологии УВЧ RFID идет в прямом смысле со скрипом. Связано это с обилием дешёвой рабочей силы, и отсутствием в заинтересованности учета товара, груза и прочего (иначе говоря в банальной непорядочности методов и средств работы отечественного бизнеса).

iButton ключи

Электронные ключи iButton (Dallas Touch Memory) - оригинальное семейство микросхем, разработанных и выпускаемых фирмой Dallas Semiconductor, США. Каждая такая микросхема заключена в стальной герметичный цилиндрический корпус и имеет уникальный регистрационный номер (ID), записываемый в процессе изготовления во внутреннее постоянное запоминающее устройство. Количество комбинаций ID достигает 256 триллионов - этого более чем достаточно, чтобы исключить случайный подбор.

Все электронные ключи iButton выполнены по жёстким стандартам. Попробуйте согнуть их - это невозможно. Бросьте устройство на пол, наступите на него, опустите его в воду или в снег - все тщетно. Корпус ключа выдерживает механический удар 500 G, рабочий диапазон температур от -40° С до +85° С (для ключей iButton DS-1990и от -40° С до +70° С для всех остальных), падение с высоты 1,5 метра на бетонный пол, 11-килограммовую нагрузку, не подвержен воздействию магнитных и статических полей, промышленной атмосферы.

Электронный ключ iButton рассчитан на ношение в течение 10 лет и гарантированно сохраняет прочность корпуса при 1 миллионе контактов со считывателем. Его компактная форма в виде толстой монеты обеспечивает самовыравнивание в ответном контактном разъёме считывателя, что гарантирует простоту использования.

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

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

- Ключи только с идентификационным номером (ID) - модели электронных ключей iButtonDS-1990.

- Ключи с идентификационным номером (ID) и памятью (энергонезависимое ОЗУ, ПЗУ и ППЗУ) - модели электронных ключей iButton DS-1992, DS-1993, DS-1995,DS-1996.

- Ключи c ID и энергонезависимым ОЗУ с защитой - модели электронных ключей iButtonDS-1991.

- Ключи с ID, энергонезависимым ОЗУ и часами-календарём реального времени - модели электронных ключей iButtonDS-1994.

- Ключи с ID и цифровым термометром (так называемые термохроны).

- Ключи с ID и Java-криптопроцессором.

Электронные ключи iButton широко используются в различных системах, требующих идентификации владельца или пользователя:

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

- В системах контроля и управления доступом для идентификации персонала при проходе в оборудованные системой контроля доступа помещения, здания.

- В охранных системах для постановки на охрану и снятия с нее охраняемых объектов, для отметки персонала охраны на контрольных точках охраняемого периметра при его патрулировании.

- В банковских и платёжных системах, например, в АРМ клиент-банка для авторизации пользователей выполняющих платежные операции.

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

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

Устройство электронных ключейiButton (ключейDallas Touch Memory):

Для обеспечения повышенной устойчивости к воздействиям внешней среды полупроводниковые кристаллы микросхем электронных ключей iButton помещаются в стальной корпус MicroCan. Корпус представляет собой небольшой цилиндр диаметром 16,25 мм и высотой 3,10 мм (модификация F3) или 5,89 мм (более распространенная на сегодняшний день модификация ключей - модификация F5). Верхняя крышка электрически изолирована от остальной части цилиндра полипропиленовой втулкой и является контактом ключа iButton для считывания данных. Нижняя часть цилиндра имеет фланец для облегчения крепления ключа на различных аксессуарах и является общим контактом.

В 2002 году проведена сертификация корпуса MicroCan. Все приборы в этом корпусе имеют Санитарно-эпидемиологическое заключение и соответствуют государственным санитарно-эпидемиологическим нормативам и правилам РФ, зарегистрированы в Государственном реестре средств измерений под № 23169-02 и допущены к применению в РФ.

Рис.3. Габаритные размеры электронных ключейiButton

Описание протокола 1-Wire электронных ключейiButton (ключей Dallas Touch Memory):

Обмен данными с электронными ключами iButton производится через интерфейс 1-Wire, также являющийся фирменной разработкой Dallas Semiconductor. Информация в этом интерфейсе передаётся по единственному проводнику, то есть шина данных - однопроводная. Питание ключи iButton получают из этого же проводника, заряжая внутренний конденсатор в моменты, когда на шине 1-Wire нет обмена данными. Скорость обмена по протоколу 1-Wire достаточна для обеспечения передачи данных в момент касания контактного устройства считывателя ключом.

Рис.4. Интерфейс 1-Wire

Протокол интерфейса 1-Wire обеспечивает возможность работы с множеством ключей iButton, подключённых параллельно к линии данных 1-Wire. Команды интерфейса позволяют определить ID всех ключей, подключённых в данный момент к линии и затем работать с конкретным прибором, переведя остальные в режим ожидания.

Управление линией данных 1-Wire и выдачу команд производит ведущее устройство, в качестве которого может использоваться любой микроконтроллер или персональный компьютер. Для обеспечения целостности данных используется вычисление контрольных кодов, а также аппаратный промежуточный буфер в ОЗУ электронного ключа iButton. Данные сначала записываются в этот буфер, затем ведущий проверяет их правильность, и только после этого выдаёт команду ведомому устройству - скопировать их из буфера в основную память.

Для подключения ключей iButton к персональному компьютеру, а также для считывания с них информации, используются специальные адаптеры, преобразующие сигналы стандартных портов компьютера (RS232, LPT и USB) в сигналы 1-Wire.

1. Постановка задачи

1.1 Цель дипломного проекта

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

Стенд должен обладать следующими характеристиками:

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

- возможностью считывать и обрабатывать данные iButton ключей;

- возможностью считывать и обрабатывать данные RFID-меток и карт;

- возможностью использования клавиатуры для ввода пароля;

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

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

1.2 Техническое задание

Требования по надёжности

- Особых требований по надежности не заявлено.

- Срок службы ограничен сроком службы гарантийной работы компонентов входящих в его состав.

Требования к условиям эксплуатации

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

Требования к аппаратным средствам

Состав аппаратных средств:

- Сканер отпечатков пальцев;

- СчитывательiButton;

- Комплект RFID;

- Цифроваяклавиатура HQ4X4.

Требования к программной и информационной совместимости

Разрабатываемое программное обеспечение должно быть реализовано для 32-разрядного микроконтроллера STM32F100C4T6Bс ядромCortex-M3.

Требования к документации

К стенду должны прилагаться следующие документы:

- формуляр (паспорт);

- руководство по эксплуатации.

Требования к безопасности

Стенд должен быть заземлён в соответствии с его руководством по эксплуатации.

Требования по эргономике и технической эстетике

Расположение органов управления и индикации должно обеспечивать удобство эксплуатации блока.

Стадии и этапы разработки:

1. Техническое задание

2. Техническое предложение:

- Анализ существующих аналогов;

- Разработка алгоритма и логики работы разрабатываемого стенда.

3. Эскизное проектирование

4. Техническое проектирование:

- Разработка аппаратной части;

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

5. Тестирование:

- Тестирование и отладка аппаратной и программной части изделия.

6. Разработка эксплуатационной документации.

Порядок контроля и приёмки

Проверка на работоспособность должна осуществляться последовательной проверкой выполнения всех функций после установки и настройки данного стенда.

1.3 Выводы по разделу

Была проведена постановка задачи проектирования на вербальном уровне.Определены требования к стенду: к его характеристикам и конструкциям.

Разработан план выполнения работ.

2. Специальный раздел

2.1 Структурная схема датчиков

2.1.1 Система радиочастотной идентификации

Система радиочастотной идентификации состоит из метки или тэга(транспондера), несущей информацию об объекте, считывающего устройства, получающего информацию, и хост устройства, которое обрабатывает полученные данные. Блок-схема подобной системы показана на рисунке 5. Передача информации между меткой и считывающим устройством осуществляется посредством радиоволн [1].

Системы радиочастотной идентификации условно можно разделить на две группы в зависимости от используемого типа метки - активные и пассивные.

Рис. 5. Структурная схема системы радиочастотной идентификации

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

Рис. 6. Схема активной метки

В пассивных системах применяется метка без питающего элемента, а взаимодействие между считывателем и транспондером основывается на принципе взаимной индукции. Антенна метки попадает в электромагнитное поле, создаваемое антенной считывателя, и в ней посредством взаимной индукции наводится ток; затем полученная энергия переизлучается меткой, и это излучение принимается считывателем. Недостаток пассивных систем - малый радиус действия; достоинства - низкая стоимость и долгий срок службы метки (ограничивающийся только её физическим износом и количеством циклов перезаписи)[1].

Пассивные системы применимы для решения многих задач; они получили наибольшее распространение.

Рассмотрим простую метку, называемую однобитным транспондером. Такая метка представляет собой LC-контур. Считывающее устройство состоит из передатчика и приёмника (см. рис. 7).

Рис. 7. Пассивная 1-битная система

Транспондер, попадая в зону действия передающей антенны считывателя, начинает излучать электромагнитные колебания, которые улавливаются приёмной антенной, и система получает информацию о присутствии объекта в зоне считывателя. Подобные системы, как правило, применяются в противокражных системах магазинов. Однобитные транспондеры изготавливаются в виде этикетки, которая наклеивается на товар. В случае проноса товара мимо антенн происходит срабатывание сигнализации. Деактивация такой метки осуществляется путём разрушения LC-контура. Описанная система не позволяет различать объекты и способна лишь извещать о факте попадания метки в зону действия считывателя. Для того чтобы идентифицировать объекты, применяются мультибитные транспондеры. Мультибитный транспондер представляет собой пассивный приёмопередатчик с элементом памяти (см.рис. 8). В самом простом варианте это однократно программируемая память, в которую на заводе-изготовителе заносят уникальный серийный номер - UID. Метка, получая энергию в поле считывателя, начинает излучать колебания, промодулированные данными из памяти, передавая уникальный серийный номер UID считывателю [2].

Рис. 8. Схема системы с пассивным мультибитным транспондером

Выпускаются разнообразные метки, различающиеся внутренней организацией. Среди них - метки, работающие только на считывание имеющейся в них информации, и более сложные - как для чтения, так и для оперативной записи данных через радиоинтерфейс. Метки различаются также объёмом памяти и её организацией. Для приложений, в которых необходима повышенная защищённость передачи данных, применяются метки с криптозащитой. В последних поколениях транспондеров применяются кристаллы, имеющие не только энергонезависимую память, но и микропроцессор, что даёт транспондеру возможность самому производить не обходимые вычисления. Системы с такими метками применяются в банковском секторе (кредитные карты), в качестве электронных паспортов и в других приложениях с повышенными требованиями к защищённости данных. Использование «интеллектуальных» меток разгружает систему, что упрощает её и, как следствие, удешевляет [2].

2.1.2 Устройство идентификации личности

Отпечатки пальцев представляют собой рельефные линии, так называемые папиллярные узоры, строение которых обусловлено рядами гребешковых выступов кожи, разделенных бороздками. Эти линии образуют сложные кожные узоры (дуговые, петлевые, завитковые), которые обладают следующими свойствами [3]:

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

· относительная устойчивость (неизменность внешнего строения узора, возникающего в период внутриутробного развития человека и сохраняющегося в течение всей его жизни);

· восстанавливаемость (при поверхностном нарушении кожного покрова папиллярные линии восстанавливаются в прежнем виде).

Существует несколько алгоритмов распознавания отпечатков пальцев. Наиболее распространенным является алгоритм, основанный на выделении деталей. Обычно в отпечатке присутствует от 30 до 40 мелких деталей. Каждая из них характеризуется своим положением -- координатами, типом (разветвление, окончание или дельта) и ориентацией.

Из набора данных характеристик формируется эталон отпечатка.

Устройство идентификации личности по отпечаткам пальцев состоит из (рис. 9):

1) сканера отпечатков пальцев,

2) программы-обработчика, позволяющей производить анализ и идентификацию отпечатков.

Рис. 9. Подключение сканера отпечатков пальцев

Рисунок 10[4] иллюстрирует два основных режима биометрической системы.Во-первых, в режиме проверка (или аутентификация) система выполняет сравнение один-к-одному полученных биометрических данных с конкретным шаблоном, хранящемся в базе данных, для проверки подлинности. Существует три этапа проверки. На первом этапе, эталонные модели для всех пользователей будут сгенерированы и сохранены в базе данных модели. На второй стадии, некоторые образцы, которые совпадают с эталонной моделью используются для формирования подлинных оценок расчета идентичности.Третий этап представляет шаг тестирования.В этом процессе могут использоваться смарт-карты, имя пользователя или идентификационный номер, чтобы указать, какой шаблон следует использовать для сравнения.

Рис. 10. Логическая схема биометрической системы

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

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

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

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

На этапе регистрации, шаблон просто хранится (на карте или в базе данных).

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

2.2 Описание структурной схемы стенда

Стенд для изучения средств обеспечения безопасности на основе микропроцессорных устройств состоит:

- Сканер отпечатков пальцев;

- Считыватель iButton;

- Комплект RFID;

- Цифровая клавиатура HQ4X4.

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

2.2.1 Сканеротпечатковпальцев

В качестве сканера отпечатков пальцев в дипломном проекте используется модель APC.

Рис. 11.Сканер отпечатков пальцев APC

Основные характеристики сканера отпечатков пальцев:

- напряжение питания:3,6 - 6.0 В;

- рабочий ток:120 мА;

- время обработки изображения отпечатков пальцев: меньше 1,0 секунды;

- размер окна сканирования отпечатков 14 х 18 мм;

- размер текущего файла:256 байт;

- размер файла шаблона:512 байт;

- количество хранящихся шаблонов: 162;

- рейтинги безопасности:(1-5 от низкого до высокого уровня безопасности);

- процент ложного допуск:меньше 0,001% (Уровень безопасности 3);

- процент брака: меньше 1,0% (уровень безопасности 3);

- Интерфейс:TTL Последовательный;

- скорость сканирования 1/15 с;

- Работа температура: -20°C до +50°C;

- влажность (без конденсата) от 40% до 85%;

- вес 20 г;

- габаритный размер 56 х 20 х 21,5 мм.

2.2.2 Считыватель iButton

В качестве считывателя iButton используется модель IBUTTON PROBE WITH LED M18X1NUT (рис. 12).

Рис. 12.IBUTTON PROBE with LED, M18X1NUT

Основные характеристики считывателя:

- разъем - 4 pin;

- токпитания - 20 мА;

- количествоканалов - 1.

2.2.3 Комплект системы радиочастотной идентификации

В дипломном проекте используется модуль радиочастотной идентификации (RFID) на базе контроллераRC522. Он предназначен для считывания и записи RFID меток.В комплекте идет пластиковая карта и ключ-брелок (тип S50) (рис. 13).

Рис. 13.MFRC-522 RFID модуль, карта и брелок

Основные характеристики модуля радиочастотной идентификации:

- рабочаячастота - 13.56 МГц;

- напряжениепитания - 3.3 В;

- рабочийток - 13-26 мА;

- поддерживаемыетипыметок - Mifare1 s50, s70 Mifare1, MIFARE Ultralight, Mifare Pro, MIFARE DESFire;

- интерфейс - SPI;

- рабочая температура -20…+80 градусов;

- габаритные размеры модуля - 40 х 60 мм.

2.2.4 Цифровая клавиатура

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

Рис. 14 . Цифровая клавиатура HQ4X4

2.3 Последовательный интерфейс SPI

Для связи устройств и передачи данных в дипломном проекте используются интерфейсы SPI и 1-Wire.

SPI(SerialPeripheralInterface)-- последовательный синхронный стандарт передачи данных, предназначенный для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным(four-wire) интерфейсом, он относится к самым широко-используемым интерфейсам для соединения микросхем.

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

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

2.3.1 Электрическое подключение

Существует три типа подключения к шине SPI, в каждом из которых участвуют четыре сигнала:

1. MOSI-- выход ведущего, вход ведомого (MasterOutSlaveIn). Служит для передачи данных от ведущего устройства ведомому.

2. MISO-- вход ведущего, выход ведомого (MasterInSlaveOut). Служит для передачи данных от ведомого устройства ведущему.

3. SCLK-- последовательный тактовый сигнал (SerialClock). Служит для передачи тактового сигнала для ведомых устройств.

4. CSилиSS-- выбор микросхемы, выбор ведомого (ChipSelect, SlaveSelect).

Самое простое подключение, в котором участвуют только две микросхемы, показано на рисунке 15.

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

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

Одностороннюю передачу данных можно встретить у таких микросхем как цифро-аналогового преобразователи, цифровые потенциометры, программируемые усилители и драйверы [5].

Рис. 15. Простейшее подключение к шине SPI

Таким образом, рассматриваемый вариант подключения подчиненной информационной системы требует 3 или 4 линии связи. Чтобы подчиненная информационная система принимала и передавала данные, помимо наличия сигнала синхронизации, необходимо также, чтобы линия SS была переведена в низкое состояние.

В противном случае, подчиненная информационная система будет неактивна.

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

При необходимости подключения к шине SPI нескольких микросхем используется либо независимое (параллельное) подключение (рис. 16), либо каскадное (последовательное) (рис. 17).

Рис. 16. Независимое подключение к шине SPI

Рис. 17. Каскадное подключение к шине SPI

Независимое подключение более распространенное, т.к. достигается при использовании любых SPI-совместимых микросхем. Здесь, все сигналы, кроме выбора микросхем, соединены параллельно, а ведущий шины, переводом того или иного сигнала SS в низкое состояние, задает, с какой подчиненной информационной системы он будет обмениваться данными. Главным недостатком такого подключения является необходимость в дополнительных линиях для адресации подчиненных микросхем (общее число линий связи равно 3+n, где n-количество подчиненных микросхем). Каскадное включение избавлено от этого недостатка, т.к. здесь из нескольких микросхем образуется один большой сдвиговый регистр. Для этого выход передачи данных одной информационной системы соединяется со входом приема данных другой, как показано на рисунке 17. Входы выбора микросхем здесь соединены параллельно и, таким образом, общее число линий связи сохранено равным 4. Однако использование каскадного подключения возможно только в том случае, если его поддержка указана в документации на используемые микросхемы. Чтобы выяснить это, важно знать, что такое подключение по-английски называется 'daisy-chaining'.

2.3.2 Протокол передачи

Протокол передачи по интерфейсу SPI предельно прост и, по сути, идентичен логике работы сдвигового регистра, которая заключается в выполнении операции сдвига и, соответственно, побитного ввода и вывода данных по определенным фронтам сигнала синхронизации. Установка данных при передаче и выборка при приеме всегда выполняются по противоположным фронтам синхронизации. Это необходимо для гарантирования выборки данных после надежного их установления. Если к этому учесть, что в качестве первого фронта в цикле передачи может выступать нарастающий или падающий фронт, то всего возможно четыре варианта логики работы интерфейса SPI. Эти варианты получили название режимов SPI и описываются двумя параметрами [6]:

1. CPOL - исходный уровень сигнала синхронизации (если CPOL=0, то линия синхронизации до начала цикла передачи и после его окончания имеет низкий уровень (т.е. первый фронт нарастающий, а последний - падающий), иначе, если CPOL=1, - высокий (т.е. первый фронт падающий, а последний - нарастающий));

2. CPHA - фаза синхронизации; от этого параметра зависит, в какой последовательности выполняется установка и выборка данных (если CPHA=0, то по переднему фронту в цикле синхронизации будет выполняться выборка данных, а затем, по заднему фронту, - установка данных; если же CPHA=1, то установка данных будет выполняться по переднему фронту в цикле синхронизации, а выборка - по заднему).

Возможны четыре комбинации фазы (CPHA) и полярности (CPOL) сигнала SCLK по отношению к сигналам данных. Режимы работы определяются комбинацией бит CPHA и CPOL:

- CPOL = 0-- сигнал синхронизации начинается с низкого уровня;

- CPOL = 1-- сигнал синхронизации начинается с высокого уровня;

- CPHA = 0-- выборка данных производится по переднему фронту сигнала синхронизации;

- CPHA = 1-- выборка данных производится по заднему фронту сигнала синхронизации.

Для обозначения режимов работы интерфейса SPI принято следующее соглашений:

- режим 1 (CPOL = 0, CPHA = 0);

- режим 2 (CPOL = 0, CPHA = 1);

- режим 3 (CPOL = 1, CPHA = 0);

- режим 4 (CPOL = 1, CPHA = 1).

Рис. 18. Временные диаграммы работы интерфейса SPI при CPHA=0 (красная вертикальная линия) и CPHA=1 (синяя вертикальная линия)

Ведущая и подчиненная микросхемы, работающие в различных режимах SPI, являются несовместимыми, поэтому, перед выбором подчиненных микросхем важно уточнить, какие режимы поддерживаются ведущим шины. Аппаратные модули SPI, интегрированные в микроконтроллеры, в большинстве случаев поддерживают возможность выбора любого режима SPI и, поэтому, к ним возможно подключение любых подчиненных SPI-микросхем (относится только к независимому варианту подключения). Кроме того, протокол SPI в любом из режимов легко реализуется программно [6].

2.4 Интерфейс 1-Wire

1-Wire -- двунаправленная шина связи для устройств с низкоскоростной передачей данных(обычно 15,4Кбит/с, максимум 125 Кбит/с), в которой данные передаются по цепи питания (то есть всего используются два провода -- один для заземления, а второй для питания данных; в некоторых случаях используют и отдельный провод питания).Разработан компанией Dallas и применяется только в их продуктах: датчиках температуры, часах точного времени, энергонезависимой памяти в формате iButton.

Устройство1-Wireможет находиться как на печатной плате вместе с устройством управления, так и отдельно. Иногда они предназначены лишь для поддержки устройств1-Wire, но во многих коммерческих приложениях устройство1-Wire-- просто один из чипов, создающих нужное решение.

Рис. 19. Упрощенная схема аппаратной реализации интерфейса 1-Wire

На рисунке 19 показана упрощенная схема аппаратной реализации интерфейса 1-Wire. Вывод DQ устройства представляет собой вход КМОП-логического элемента, который может быть зашунтирован (замкнут на общий провод) полевым транзистором. Сопротивление канала этого транзистора в открытом состоянии - около 100 Ом. Когда транзистор заперт - имеется небольшой ток утечки (примерно 5 мкА) на общий провод.

Шина 1-Wire должна быть подтянута отдельным резистором к напряжению питания устройств (которое, кстати, может быть от 3 до 5В - уточняется по характеристикам конкретного устройства). Сопротивление этого резистора 4.7 К, однако, это значение рекомендовано только для достаточно коротких линий. Если шина 1-Wire используется для подключения удаленных на большое расстояние устройств, то сопротивление этого резистора следует уменьшить.

Подключение шины 1-Wire к микроконтроллеру показано условно в двух вариантах: с использованием 2 отдельных выводов микроконтроллера (один в качестве выхода, а другой в качестве входа), так и одного, работающего и на ввод и на вывод. Разделение этих способов показано пунктирной линией, условно обозначающей границу корпуса микроконтроллера. С некоторой натяжкой можно представить себе логическое строение шины 1-Wire как всем известное соединение выводов микросхем с открытым коллектором по схеме 'монтажное ИЛИ'. Очевидно, что передача какой-либо информации при этом возможна только выдачей низкого уровня в линию, т.е. замыканием ее на общий провод, а в высокий логический уровень линия вернется сама, благодаря наличию внешнего подтягивающего резистора. Так же очевидно, что одновременная передача нескольких устройств обречена на неудачу из-за полного искажения информации (все передаваемые единицы одного устройства будут подавлены передаваемыми нулями от другого устройства).

А теперь о том, как происходит обмен информацией по шине 1-Wire. Основные постулаты.

1. Обмен всегда ведется по инициативе одного ведущего устройства, которое в большинстве случаев является микроконтроллером.

2. Любой обмен информацией начинается с подачи импульса сброса ('ResetPulse' или просто RESET) в линию 1-Wire ведущим устройством.

3. Для интерфейса 1-Wire в общем случае предусматривается 'горячее' подключение и отключение устройств.

4. Любое устройство, подключенное к 1-Wire после получения питания выдает в линию DQ импульс присутствия, называемый 'Presencepulse' (далее PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET.

5. Появление в шине 1-Wire импульса PRESENCE после выдачи RESET однозначно свидетельствует о наличии хотя бы одного подключенного устройства.

6. Обмен информации ведется так называемыми тайм-слотами: один тайм-слот служит для обмена одним битом информации.

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

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

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

Рис. 20. Процедура инициализации

Как видим, длительность большинства временных интервалов очень приблизительная и имеет только ограничение только по минимуму (не меньше указанного)

Импульс RESET формирует ведущий микроконтроллер, переводя в низкий логический уровень шину 1-Wire и удерживая ее в этом состоянии минимум 480 микросекунд. Затем микроконтроллер должен 'отпустить' шину. Через некоторое время, зависящее от емкости линии и сопротивления подтягивающего резистора, в линии установится высокий логический уровень. Протокол 1-Wire ограничивает это время 'релаксации' диапазоном от 15 до 60 микросекунд, что и является определяющим для выбора подтягивающего резистора (как правило, емкость линии мы менять существенно не можем, а именно она оказывает существенное влияние на время возврата линии к высокому уровню).

Обнаружив импульс RESET, ведомое устройство приводит свои внутренние узлы в исходное состояние и формирует ответный импульс PRESENCE, как следует из рисунка - не позже 60 микросекунд после завершения импульса RESET. Для этого устройство переводит в низкий уровень линию DQ и удерживает ее в этом состоянии от 60 до 240 микросекунд. Конкретное время удержания зависит от многих параметров, но всегда находится в указанном диапазоне. После этого устройство так же 'отпускает' шину.

Но после завершения импульса PRESENCE устройству дается еще некоторое время для завершения внутренних процедур инициализации, таким образом, МК должен приступить к любому обмену с устройством не ранее, чем через 480 микросекунд после завершения импульса RESET.

Итак, процедура инициализации интерфейса, с которой начинается любой обмен данными между устройствами, длится минимум 960 микросекунд, состоит из передачи от микроконтроллера сигнала RESET и приему от устройства сигнала PRESENCE. Если сигнал PRESENCE не обнаружен - значит на шине 1-Wire нет готовых к обмену устройств.

Теперь рассмотрим процедуры обмена битами информации, которые осуществляются определенными тайм-слотами. Тайм-слот - это по существу определенная, довольно жестко лимитированная по времени последовательность смены уровней сигнала в линии 1-Wire. Различают 4 типа тайм-слотов: передача '1' от микроконтроллера, передача '0' от микроконтроллера, прием '1' от устройства и прием '0' от устройства.

Любой тайм-слот всегда начинает микроконтроллер путем перевода шины 1-Wire в низкий логический уровень. Длительность любого тайм-слота должна находиться в пределах от 60 до 120 микросекунд. Между отдельными тайм-слотами всегда должен предусматриваться интервал не менее 1 микросекунды (конкретное значение определяется параметрами ведомого устройства).

Тайм-слоты передачи отличаются от тайм-слотов приема поведением микроконтроллера: при передаче он только формирует сигналы, при приеме, кроме того, еще и опрашивает (т.е. принимает) уровень сигнала в линии 1-Wire. Следующий рисунок демонстрирует временные диаграммы тайм-слотов всех 4-х типов: вверху показаны тайм-слоты передачи от МК, внизу - приема от устройства.

Рис. 21. Процедура обмена битами информации

Тайм-слот передачи '0' заключается просто в удержании шины 1-Wire в низком уровне в течение всей длительности тайм-слота. Передача '1' осуществляется путем 'отпускания' шины 1-Wire со стороны микроконтроллера не ранее чем через 1 микросекунду после начала тайм-слота, но не позже чем через 15 микросекунд. Ведомое устройство опрашивает уровень в шине 1-Wire в течение временного интервала, условно показанного в виде серого прямоугольника, т.е. начиная с 15-й микросекунды от начала тайм-слота и заканчивая 60-й микросекундой от начала. Типичный момент ввода уровня в устройство (т.е. характерный для большинства устройств) - около 30-й микросекунды от начала тайм-слота.

Заштрихованная область - это область 'нарастания' уровня в шине 1-Wire, которая зависит от емкости линии и сопротивления подтягивающего резистора.

Тайм-слоты приема информации отличаются тем, что микроконтроллер формирует только начало тайм-слота (абсолютно так же, как при передаче '1'), а затем управление уровнем шины 1-Wire берет на себя устройство, а микроконтроллер осуществляет ввод этого уровня так же в определенной зоне временных интервалов. Зона эта, как видно из рисунка, довольно мала. Как и раньше, заштрихованная область - область неопределенности, поэтому для ввода, собственно говоря, контроллеру остается даже не промежуток, а скорее конкретный момент, когда он должен ввести уровень сигнала из линии. Этот момент времени - 14-я или 15-я микросекунда от начала тайм-слота. Разумеется, если линия имеет малую емкость, а подтягивающий резистор мал, зона опроса несколько расширяется, однако рекомендуется ориентироваться на худший вариант, чтобы всегда обеспечить надежный обмен данными.

Вывод: микроконтроллер начинает тайм слот с выдачи в шину 1-Wire '0' в течение 1 микросекунды. Последующий уровень зависит от типа тайм слота: для приема и передачи '1' уровень должен стать высоким, а для передачи '0' - оставаться низким вплоть до конца тайм-слота, т.е. не менее 60 и не более 120 микросекунд. Если микроконтроллер принимает данные, то опрос уровня в шине он должен сделать на промежутке от 13-й до 15-й микросекунде тайм-слота. Микроконтроллер должен обеспечить интервал между отдельными тайм-слотами не менее 1 микросекунды (лучше - больше, максимальное значение не ограничено).

Важно понимать, что следует очень тщательно подходить к обеспечению в шине 1-Wire требуемых временных интервалов, т.к., например, увеличение длительности тайм-слота вывода '0' свыше рекомендованного значения может привести к ошибочному восприятию этого тайм-слота, как сигнала RESET, и, разумеется, после этого вся процедура обмена пойдет насмарку. Но так же следует учитывать влияние самой линии на длительность фронтов импульсов. Поэтому в общем случае, это не простая задача. Но выполнение несложных рекомендаций позволит ее решить достаточно простыми средствами: во-первых, все сигналы, которые должен формировать микроконтроллер, следует формировать по принципу необходимого минимума длительности (т.е. немного больше, чем указанная минимальная длительность), а от устройства следует ожидать сигналов по принципу наихудшего (т.е. ориентироваться на самые худшие варианты временных параметров сигнала).

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

64-битный номер-адреса устройств 1-Wire состоит фактически из 8 отдельных байт: одного байта идентификатора семейства, шести байт (48 бит) собственно уникального адреса и одного байта контрольной суммы всех предыдущих байтов.

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

Следующие 6 байт содержат уникальный номер-идентификатор.

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

Существует так называемое 'паразитное питание' устройств 1-Wire. Спецификация этих устройств допускает их питание от самой линии данных, т.е. микросхема может получать питание по собственной (и единственной) линии данных! Не все устройства поддерживают такой режим питания, но очень многие, например, тот же термометр-термостат DS18S20 или ключ-таблетка DS1990A. Поэтому низкий уровень сигнала в шине 1-Wire имеет такие жесткие временные рамки - десятки микросекунд. Это связано с необходимостью обеспечивать питанием те устройства, которые получают его от шины. Потребление тока всех устройств 1-Wire такое ничтожное, что емкости встроенных конденсаторов достаточно для поддержания в рабочем состоянии схемы устройства в течение небольшого интервала, когда в шине 1-Wire низкий логический уровень.

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

2.5 Принципы работы с датчиками

2.5.1 Считыватель iButton и комплект RFID

iButton - это просто микросхема, заключённая в стандартный круглый корпус из нержавеющей стали, диаметром 16.3 мм. Прочный корпус очень устойчив к воздействию ударов, грязи и влажности. Корпус состоит из двух электрически изолированных друг от друга частей, являющихся контактами, через которые микросхема соединяется с внешним миром. Таким образом, образуется очень недорогой (в смысле использования аппаратных ресурсов считывающей аппаратуры) и надёжный интерфейс - один провод данных и один общий провод. Энергия, необходимая для обмена информацией и работы микросхемы в корпусе, берётся от провода данных. [7].

Рис. 22. Блочная диаграмма устройства iButton

Протокол 1-Wireпоследовательноосуществляет передачу данных в полудуплексном режиме (т. е. либо приём, либо передача), внутри дискретно определённых временных интервалов, называемых тайм-слотами. Микроконтроллер (master-устройство), подключенный к считывающей чашке, всегда инициирует передачу с помощью посылки командного слова на прикладываемый к чашке iButton (он играет роль подчинённого, илиslave-устройства). К шине может быть подключено несколько slave-устройств. Подобно электрическим вилке и розетке, которые определяют потребитель и источник электричества, контактное считывающее устройство в виде чашки является атрибутом master-устройства (которое, кстати, во многих случаях служит источником энергии для iButton), а круглая металлическая 'таблетка' iButton является признаком slave-устройства. Такое точное разделение позволяет автоматически избежать конфликтов типа соединения двух master-устройств.

Команды и данные посылаются бит за битом и собираются в байты, причём вначале передаётся наименее значащий бит LSB (LeastSignificantBit). Синхронизация master и slave происходит по спадающему срезу сигнала, когда master замыкает стоком выходного транзистора порта линию данных на провод земли. Через определённое время после среза сигнала происходит анализ (выборка) состояния данных на линии (логический 0 или логическая 1) для получения одного бита информации. В зависимости от направления передачи информации в данный момент эту выборку делает либо устройство master, либо устройство slave. Этот метод обмена информацией называют передачей данных в тайм-слотах. Каждый тайм-слот отсчитывается независимо от другого, и в обмене данными могут иметь место паузы без возникновения ошибок.

Рис. 23. Передача данных в тайм-слотах

Почти сразу после присоединения к считывающему устройству (через несколько микросекунд) slave-устройство iButton выдаёт на линию импульс низкого уровня, чтобы сказать устройству master, что оно на линии и ожидает получения команды. Этот сигнал называется presencepulse(импульс присутствия, далее простоpresence). Master может также давать запрос на iButton с целью получения presence, путём выдачи наiButton специального импульса, называемого импульсом сброса (resetpulse, далее простоreset). Если iButton принял reset или если он был отсоединён от считывающего устройства, он будет анализировать линию данных, и как только линия снова достигнет высокого уровня, iButton сгенерирует presence.

Рис. 24. Импульсы RESET и PRESENCE

После выдачи presenceiButton ожидает получения команды. Любая команда записывается в iButton с помощью последовательности тайм-слотов, записывающих в iButton биты 1 и 0. Такая последовательность создаёт полный байт команды.

Передача данных в обратном направлении (чтение iButton) использует те же самые временные правила для представления 0 или 1. Поскольку iButton разработано как slave-устройство, то оно оставляет устройству master определять начало каждого тайм-слота. Чтобы произвести чтение iButton, master для чтения одного бита данных просто генерирует тайм-слот записи логической 1 (именно тайм-слот записи, а не чтения). Если бит, который посылает iButton, равен 1, то iButton просто ожидает появления следующего тайм-слота, пропуская текущий. При этом с линии данных master считывает 1. Если бит, который посылает iButton, равен 0, тоiButton удерживает линию данных в состоянии логического 0 определённое время, и master считывает с линии данных 0. Пример полной последовательности выполнения команды показан на рисунке 25. Активность устройства master нарисована толстыми линиями. Серой линией показан ответ iButton. Тонкая линия показывает, что не активно ни одно из устройств. Линия, через которую происходит обмен данными, подключена к положительному полюсу источника питания (обычно +5 в) через специальный нагрузочный резистор [7].

Рис. 25. Пример чтения данных iButton

Радиочастотная идентификация (RFID) -- это технология автоматической бесконтактной идентификации объектов при помощи радиочастотного канала связи. Сейчас эта технология не имеет себе равных, и ее применение стало настолько популярным, что, по словам экспертов, RFID в скором времени вытеснит технологию штрихового кодирования[5].

Базовая система RFID состоит из:

- радиочастотной метки;

- считывателя информации (ридера);

Данный модуль может быть использован для различных радиолюбительских и коммерческих применений, в том числе контроля доступа, автоматической идентификации, робототехники, отслеживания вещей, платежных систем и т.д. Идентификация объектов производится по уникальному цифровому коду, который считывается из памяти электронной метки, прикрепляемой к объекту идентификации. Считыватель содержит в своем составе передатчик и антенну, посредством которых излучается электромагнитное поле определенной частоты. Попавшие вз ону действия считывающего поля радиочастотные метки 'отвечают' собственным сигналом, содержащим информацию (идентификационный номер товара, пользовательские данные и т. д.). Сигнал улавливается антенной считывателя, информация расшифровывается и передается в компьютер для обработки. RC522 имеет интерфейс SPI. Модуль RC-522 имеет 7 выводов:

1. VCC -- Питание. Необходимо 3.3 В;

2. RST -- Reset. Линия сброса.;

3. GND -- Ground («земля»);

4. MISO -- MasterInputSlaveOutput -- данные от ведомого к ведущему, SPI;

5. MOSI -- MasterOutputSlaveInput -- данные от ведущего к ведомому, SPI;

6. SCK -- Serial Clock -- тактовыйсигнал, SPI;

7. NSS -- SlaveSelect -- выбор ведомого, SPI.

Рис. 26. Схема подключения считывателя iButton и метки RFID

2.5.2 Программирование ключа iButton и метки RFID

Управляющая программа написана на языке С++ cиспользованием среды программирования CooCox IDE длямикроконтроллеров ARM Cortex M3.

Описание программы:

#include 'stm32f10x.h'

#include 'stm32f10x_gpio.h'

#include 'stm32f10x_rcc.h'

#include 'MFRC522.h'

#include 'OWire.h'

// Объявим глобальную структуру отвечающую за работу

// по протоколу 1-wire

OWireowire;

// Процедура задержки организованная на основе цикла

voiddelay(uint32_t ms)

{

volatileuint32_t nCount;

// Получим настройки тактирования микроконтроллер

RCC_ClocksTypeDefRCC_Clocks;

RCC_GetClocksFreq (&RCC_Clocks);

// Пересчитаем полученные данные по частоте работы в

// количество тактов соответствующих заданной задержке

nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;

// Идем по циклу пока не просчитаем все

// заданное количество раз

for(; nCount!=0; nCount--);

}

intmain(void)

{

// ОбъявимструктурутипаMIFARE_Key

MFRC522::MIFARE_Keykey;

// Объявим и создадим структуру типа MFRC522

MFRC522 mfrc522 = MFRC522();

// Инициализируем структуру считывателя

mfrc522.PCD_Init();

// Объявим массив байт хранящий адрес устройства

//находящегося на линии 1-wire

uint8_t addr[8];

// Объявим массив байт, хранящий данные

// записанные в ПЗУ iButton

uint8_t data[12];

uint8_t present = 0;

// Инициализируем структуру Owire с указанием

// работы на пину PB3

OWInit(&owire, GPIOB, GPIO_Pin_3);

// ПодготовимключзаполнивегоFFFFFFFFFFFFh

for(inti = 0; i< 6; i++)

{

key.keyByte[i] = 0xFF;

}

while(1)

{

// Если устройство найдено то работаем с ним

if(OWSearch(&owire, addr) = 1)

{

// Вычисляем контрольную сумму и сравниваем

// с переданной устройством

if(OWCrc8(addr, 7) != addr[7]) return2;

// Отбираем устройства только

// семейства 0x10 DallasiButton

if(addr[0] != 0x10) return3;

// Посылаем сигнал сброса и ждем ответ от устройства

present = OWReset(&owire);

// Выбираем данное устройство

OWSelect(&owire, addr);

// Посылаем устройству команду на выдачу данных из ПЗУ

OWWrite(&owire,0x33, 0);

// Делаем задержку

delay(50);

uint8_t i = 0;

// Считываем данные передаваемые устройством

for(i = 0; i< 9; i++)

{

data[i] = OWRead(&owire);

}

}

else{

// Сбросим переменныеустановленные при поиске

OWReset_search(&owire);

// выполнимзадержку

delay(250);

}

// Если карта присутствует у считывателя и серийный

// номер карты считан успешно, то обрабатываем

// полученные данные

if(!mfrc522.PICC_IsNewCardPresent() &

!mfrc522.PICC_ReadCardSerial() )

{

// обработка полученных данных хранящихся в mfrc522.uid

delay(50);

}

}

}

2.5.3 Цифровая клавиатура

16-кнопочная мембранная клавиатура4х4. 10 цифр, 4 буквы, * и #. Удобная клавиатура для ввода буквенно-цифирных данных.

Матричная клавиатура организуется следующим образом (рис. 27). Кнопки группируются в матрицу, состоящую из определенного количества строк и столбцов. Каждая кнопка, таким образом, имеет четко определенные координаты (номер строки и номер столбца).

Рис. 27. Схема матричной клавиатуры

Матричная клавиатура представляет собой довольно «экономичный» способ подключения большого числа кнопок к нашему устройству. Благодаря ее использованию удается значительно сократить количество портов, расходуемых на обслуживание кнопок. Так, например, для подключения 16 кнопок матричной клавиатуры требуется уже не 16 пинов, а всего 8 (4 столбца и 4 строки). Для опроса клавиатуры можно подавать, например, на выходы контроллера, подключенные к столбцам сканирующие импульсы, а на входах, подключенных к строкам определять, какая клавиша из соответствующего столбца нажата.

Для подключения клавиатуры используется два порта: порт ввода и порт вывода. Схема подключения клавиатуры приведена на рисунке. Для уменьшения количества выводов кнопки объединяют в строки и столбцы и затем, подавая единицу последовательно на каждую строку мы опрашиваем столбцы на предмет присутствия на них высокого уровня. Зная на какую строку мы подали напряжение и на каком столбце оно появилось мы можем вычислить какая именно кнопка нажата. Можно делать наоборот - напряжение подавать на столбцы, а опрашивать строки - разницы нет.

Рис. 28. Схема подключения цифровой клавиатуры

2.5.4 Программирование цифровой клавиатуры

Управляющая программа написана на языке С++ cиспользованием среды программирования CooCox IDE длямикроконтроллеров ARM Cortex M3.

Описание программы:

#include 'stm32f10x.h'

#include 'stm32f10x_rcc.h'

#include 'stm32f10x_gpio.h'

//указываемпиныстрок

introws[]={GPIO_Pin_0, GPIO_Pin_1,

GPIO_Pin_2, GPIO_Pin_3};

/указываем пины столбцов

intcols[]={GPIO_Pin_4, GPIO_Pin_5,

GPIO_Pin_6, GPIO_Pin_7};

//массив с соответствиями кодов нажатых кнопок

charsimbols[][2]=

{

{0,'1'},

{1,'2'},

{2,'3'},

{3,'A'},

{4,'4'},

{5,'5'},

{6,'6'},

{7,'B'},

{8,'7'},

{9,'8'},

{10,'9'},

{11,'C'},

{12,'*'},

{13,'0'},

{14,'#'},

{15,'D'}

};

// Процедура инициализации

voidInitGPIO(void){

//зададим питание

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,

ENABLE);

GPIO_InitTypeDefGPIOInit;

// Объявим инициализируемыепины

GPIOInit.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 |

GPIO_Pin_2 | GPIO_Pin_3);

// Установим скорость порта

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

// Укажем, что пины будут работать в режиме вывода

GPIOInit.GPIO_Mode = GPIO_Mode_Out_PP;

// Инициализируем пины согласно установленным в

// структуре параметрам

GPIO_Init(GPIOB, &GPIOInit);

// Объявим инициализируемыепины

GPIOInit.GPIO_Pin = (GPIO_Pin_4 | GPIO_Pin_5 |

GPIO_Pin_6 | GPIO_Pin_7);

// Установим скорость порта

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

// Укажем, что пины будут работать в режиме ввода

GPIOInit.GPIO_Mode = GPIO_Mode_IN_FLOATING;

// Инициализируем пины согласно установленным в

// структуре параметрам

GPIO_Init(GPIOB, &GPIOInit);

}

// функция поиска кода нажатой клавиши

// по ее положению (строка/столбец)

charFindKey(unsigned intkeyCode)

{

inti=0;

// в цикле перебираем все занесенные значения в массив

// и ищем совпадения с нужным элементом

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

if(simbols[i][0]==keyCode){

returnsimbols[i][1];

}

}

//если код не найден возвращаем '-'

return'-';

}

intmain(void)

{

InitGPIO();

while(1)

{

inti=0;

intj=0;

charcurrentKey;

//цикл для перехода по всем строкам

for(i=0;i<4;i++)

{

//подаем на текущую строку высокий уровень

GPIO_SetBits(GPIOB, rows[i]);

//цикл для переходов по всем столбцам

for(j=0;j<4;j++)

{

//если уровень высокий, то кнопка нажата

if(GPIO_ReadInputDataBit(GPIOB, cols[j]) == 1)

{

//выводим в терминал код нажатой кнопки

currentKey = FindKey(4*i+j);

}

}

//выключаем высокий уровень для пройденной строки

GPIO_ResetBits(GPIOB, rows[i]);

}

}

}

2.5.5 Сканер отпечатков пальцев

Есть два основных требования по использованию оптического сенсора отпечатков пальцев:

1. Регистрация шаблона отпечатка пальца. Автоматическое назначение ему номера, для последующего запроса.

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

Рис. 29. Схема подключения сканера отпечатков пальцев

2.5.6 Программирование сканера отпечатков пальцев

Управляющая программа написана на языке С++ cиспользованием среды программирования CooCox IDE длямикроконтроллеров ARM Cortex M3.

Описание программы:

#include 'stm32f10x.h'

#include 'stm32f10x_rcc.h'

#include 'stm32f10x_gpio.h'

#include <Adafruit_Fingerprint.h>

#include <SoftwareSerial.h>

// процедуразадержки

voiddelay(uint32_t ms)

{

volatileuint32_t nCount;

RCC_ClocksTypeDefRCC_Clocks;

RCC_GetClocksFreq (&RCC_Clocks);

nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;

for(; nCount!=0; nCount--);

}

// процедура получения номера отпечатка

uint8_tgetFingerprintID()

{

uint8_t p = finger.getImage();

switch(p)

{

caseFINGERPRINT_OK:

Serial.println('Отпечатокнайден');

break;

caseFINGERPRINT_NOFINGER:

Serial.println('Отпечатокнеобнаружен');

returnp;

caseFINGERPRINT_PACKETRECIEVEERR:

Serial.println('Ошибкасвязи');

returnp;

caseFINGERPRINT_IMAGEFAIL:

Serial.println('Ошибкаизображения');

returnp;

default:

Serial.println('Неизвестнаяошибка');

returnp;

}

// Ошибок нет, продолжаем обработку

p = finger.image2Tz();

switch(p)

{

caseFINGERPRINT_OK:

Serial.println('Изображениепреобразовано');

break;

caseFINGERPRINT_IMAGEMESS:

Serial.println('Изображениеиспорчено');

returnp;

caseFINGERPRINT_PACKETRECIEVEERR:

Serial.println('Ошибкасвязи');

returnp;

caseFINGERPRINT_FEATUREFAIL:

Serial.println('Неудалосьраспознатьотпечаток');

returnp;

caseFINGERPRINT_INVALIDIMAGE:

Serial.println('Не удалось распознать отпечаток');

returnp;

default:

Serial.println('Неизвестнаяошибка');

returnp;

}

// Если изображение успешно преобразовано, то

// продолжаем обработку

p = finger.fingerFastSearch();

if(p == FINGERPRINT_OK)

{

Serial.println('Шаблоннайден');

} elseif(p == FINGERPRINT_PACKETRECIEVEERR) {

Serial.println('Ошибкасвязи');

returnp;

} elseif(p == FINGERPRINT_NOTFOUND) {

Serial.println('Не найден шаблон');

returnp;

} else{

Serial.println('Неизвестная ошибка');

returnp;

}

// если шаблон найден успешно, то продолжаем

Serial.print('Найден ID #'); Serial.print(finger.fingerID);

Serial.print(' сточностью '); Serial.println(finger.confidence);

}

// функция считывания отпечатка

// если не нашли возвращаем -1, иначе номер шаблона

intgetFingerprintIDez() {

uint8_t p = finger.getImage();

if(p != FINGERPRINT_OK) return-1;

p = finger.image2Tz();

if(p != FINGERPRINT_OK) return-1;

p = finger.fingerFastSearch();

if(p != FINGERPRINT_OK) return-1;

// если шаблон найден, то продолжаем

Serial.print('Найден ID #'); Serial.print(finger.fingerID);

Serial.print(' сточностью '); Serial.println(finger.confidence);

returnfinger.fingerID;

}

// главнаяпроцедура

intmain(void)

{

SoftwareSerialmySerial(GPIOA, GPIO_Pin_2,

GPIO_Pin_3);

Adafruit_Fingerprint finger =

Adafruit_Fingerprint(&mySerial);

// считываниеотпечатка

while(1)

{

getFingerprintIDez();

delay(50);

}

}

2.6 Выводы по специальному разделу

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

Также было разработано программное обеспечения для взаимодействия всех изучаемых компонентов стенда с микроконтроллером ARM Cortex M3.

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

3. Экономическая часть

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

Разработка новой системы делится на несколько этапов, которые, применительно к программному продукту (модели), обычно представляются в виде следующей последовательности:

- анализ (формирование технического задания);

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

- разработка программного обеспечения и составление рабочей документации; - тестирование; - внедрение продукта в эксплуатацию.

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

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

3.1 Составление сметы затрат и расчёт

Целью планирования себестоимости является экономически обоснованное определение величины затрат на её выполнение.

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

Себестоимость разработки включает в себя следующие статьи расходов:

- Материалы и комплектующие;

- Основная заработная плата;

- Дополнительная зарплата;

- Отчисления на социальное страхование;

- Накладные расходы.

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

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

В основном эти задачи решают оперативно-технический учет и статистика. Учет численности работников ведется кадровой службой предприятия, рабочее время работников учитывается табельщиками. Составляемые при этом учетные документы используются бухгалтерией для начисления заработной платы. Учет персонала предприятия и оплаты труда ведется по установленным группам работников в соответствии с действующим в РФ налоговым кодексом. К статье «Материальные затраты» сметы относятся материалы, используемые при проектировании. Сумма цены на используемый материал и будет формировать материальные затраты. Перечень материалов приведен в таблице 3.1.

Таблица 3.1. Перечень и стоимость расходных материалов

Вид материала

Количество

Цена за ед., руб.

Итого затрат,руб.

Цифровая клавиатура HQ4X4

2

100

200

Комплект RFID карта + метка + считыватель

2

590

1180

Считыватель Ibutton

2

2910

5820

Сканер отпечатка пальца

1

700

700

Флеш-память

1

550

550

Бумага

1 пачка

300

300

Итого:

8750

В разработке принимали участие два исполнителя: руководитель темы и инженер. Руководителем на разработку было затрачено 18 дней (средняя заработная плата 40000 руб./месяц); инженером 43 дня (средняя заработная плата 25000 руб./месяц). При месячном фонде времени одного разработчика равном 167 часам или 20,5 дням, основная заработная плата рассчитывается следующим образом:

ЗПосн = (40000/20,5)*18+(25000/20,5)*43 =87560,89 руб.

Дополнительная заработная плата составляет десять процентов от основной заработной платы:

ЗПдоп = 0,1*ЗПосн = 8756,09 руб.

Премия составляет тридцать процентов от основной заработной платы:

Пр = 0,3*ЗПосн = 26268,27 руб.

Отчисления на социальные нужды составляют 30% от суммы основной и дополнительной заработной платы и премии:

Отч = (ЗПосн+ЗПдоп+Пр)*0,3 = 36775,57 руб.

Накладные расходы, к которым относятся расходы на содержание и эксплуатацию оборудования, эксплуатацию лицензионного программного обеспечения, амортизационные отчисления на оборудование и прочие расходы примем в размере 30% от прямых затрат:

Накл.р. = ЗПосн*0,3 = 26268,27 руб.

На основе полученных данных составляется калькуляция плановой себестоимости разработки представленная в таблице 3.2.

Таблица 3.2. Суммарные затраты

Номер п/п

Наименование статьи

Расходы, руб.

1

Материалы

8750,0

2

Основная заработная плата

87560,89

3

Дополнительная заработная плата

8756,09

4

Премия работниками

26268,27

5

Отчисления на социальные нужды

36775,57

6

Накладные расходы

26268,27

Итого:

194379,09

3.2 Выводы по разделу

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

Цена устройства составила 8750,0 рублей.

Аналогичный лабораторный стенд произведенный НПП «Учтех-Профи», занимающейся разработкой и производством учебных лабораторных стендов, комплектов, тренажеров, имитаторов, разрезов техники, наглядных (в т. ч. интерактивных) пособий и информационных средств обучения стоит около 300 тысяч рублей.

Стенд разработан с использованием недорогих компонентов и дальнейшая модернизация для снижения цены не актуальна.

4. Экология и безопасность жизнедеятельности

4.1 Общее положение

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

Техника безопасности - комплекс организационно-технических мероприятий, направленных на сохранение жизни и здоровья в условиях конкретного производства, является составляющей БЖД. В общем случае, на Земле существует три основных вида объектов, которые изучают и контролируют науки «Экология» и «Безопасность жизнедеятельности», которые можно условно представить следующей цепью:

Человек - Машина - Природа

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

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

· характеру воздействия (механические, физические, химические, биологические, психофизические);

· происхождению (природные, техногенные, антропогенные, экологические, социальные, биологические);

· времени (импульсные, кугулятивные).

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

4.2 Виды опасности и меры защиты

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

Биологические опасности. Биологическими называются опасности, исходящие от живых объектов (микроорганизмов). Некоторые микроорганизмы являются болезнетворными, они вызывают болезни растений, животных, человека. Инфекционные заболевания человека приобретают форму эпидемий. Человек имеет естественную защиту от болезнетворных микробов - иммунитет, но в настоящее время из-за множества причин иммунитет ослабляется. Если наш иммунитет ослаблен, автоматически повышается восприимчивость к инфекциям, например, к простудным заболеваниям. Таким образом, вирусы простуды наталкиваются на очень слабое сопротивление, в результате чего появляется насморк, кашель и более опасные вирусы, такие как Эбола, СПИД, птичий грипп H7N9 и другие.

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

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

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

· Естественными источниками электромагнитных полей и излучений является: атмосферное электричество, радиоизлучение Солнца и галактик, электрическое и магнитное поле Земли. Все промышленные и бытовые электроустановки являются источниками полей разной интенсивности. Источниками электрических полей промышленной частоты (50Гц) являются линии электропередач; открытые распределительные устройства; устройства защиты и автоматики, а также все высоковольтные установки.

Методами и средствами защиты от воздействия электромагнитных полей являются:

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

2) защита расстоянием - применяется, когда невозможно ослабить интенсивность другими методами, при этом увеличивается расстояние между источником и человеком;

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

4.3 Расчет системы вентиляции учебного помещения

При проектировании вентиляции используются современные технологии и новейшее оснащение, которые, в совокупности с новаторскими идеями, дают эффективный результат работы, принимаются во внимание все возможности данной системы. Если расчет вытяжной вентиляции выполняется правильно, с учётом всех требований, то в дальнейшем вентиляционной системе не придётся быть подвергнутой каким либо исправлениям или восстановлению. При неправильном проектировании вытяжная вентиляция может быть повреждена во время эксплуатации, что принесёт дополнительные потери времени и финансов. Правильно налаженное оборудование будет обладать достаточным уровнем производительности, при котором удаление воздуха из помещения будет происходить должным образом Расход приточного воздуха (L) в помещениях зданий, где отсутствуют местные отсосы, определяется для теплого, холодного периода и переходных условий [9]:

а) по избыткам явной теплоты:

, м3/ч (5.1)

б) по избыткам влаги (водяного пара):

, м3/ч (5.2)

в) по массе выделяющихся вредных веществ

, м3/ч (5.3)

где: ?Qизб - избытки явной теплоты в помещении, Вт;

с - теплоемкость воздуха, с = 1,005 кДж/(кг·?С);

с - плотность воздуха, с = 1,2 кг/м3;

tух - температура воздуха, удаляемого из помещения за пределы обслуживаемой или рабочей зоны, ?С;

tпр - температура приточного воздуха, ?С;

M - избытки влаги в помещении, г/ч;

dух - влагосодержание воздуха, удаляемого из помещения за пределы обслуживаемой или рабочей зоны, г/кг;

dпр - влагосодержание приточного воздуха, г/кг;

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

qух - концентрация вредного или взрывоопасного вещества в воздухе, удаляемом за пределы обслуживаемой или рабочей зоны помещения, мг/м3;

qпр - концентрация вредного или взрывоопасного вещества в воздухе, подаваемом в помещение, мг/м3.

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

Температуру отводимого воздуха для помещения с высотой h=3,5 м., шириной 10м и длиной 9 м принимаем:

tух = tв, dух = dв, qух = qв,

где:tв - температура воздуха в рабочей зоне помещения, ?С;

dв - влагосодержание воздуха в рабочей зоне помещения,_г/кг;

qв - концентрация вредного или взрывоопасного вещества в рабочей зоне помещения, мг/м3.

Температуру приточного воздуха, ?С, подаваемого системами вентиляции при переходных условиях (эту же температуру принимаем для холодного периода) определяем по формуле [10]:

?С (5.4)

где: tн - расчетная температура наружного воздуха, ?С;

P - полное давление развиваемое вентилятором, Па.

Температура приточного воздуха в теплый период принимается равной расчетной температуре наружного воздуха, исследуемой при проектировании вентиляции:

, ?С (5.5)

В системах приточной вентиляции применяются, в основном, вентиляторы низкого давления (Р ? 1000 Па), поэтому для переходных условий:

При температуре приточного воздуха tпр=9?С невозможно обеспечить нормируемые параметры воздуха в рабочей зоне помещения. Поэтому при разработке данного проекта будем принимать температуру приточного воздуха для переходных условий и холодного периода 13?С.

На основании вышеприведенных формул произведем расчет воздухообмена для 3-х периодов года.

а) воздухообмен для удаления избыточной теплоты:

- в теплый период (при tух = tв = 24,6?С; ?С):

м3

- в холодный период и при переходных условиях при (tух = tв = 18?С; tпр = 13?С):

м3

б) воздухообмен для удаления избыточной влаги:

- в теплый период (tух= tв =24,6?С; цв = 65%; dух= dв = 13,5 г/кг с.в.; при tпр= =21,6?С; Iпр= Iн=47,5 кДж/кг, dпр = 10,4 г/кг с.в.):

м3

- для переходных условий (tух= tв =18?С; цв = 60%; dух = dв = 8,3 г/кг с.в.; при tн=8?С; Iпр= Iн=22,5 кДж/кг,

dпр = 5,4 г/кг с.в.):

- в холодный период (tух= tв =18?С; цв = 60%; dух = dв = 8,3 г/кг с.в.; при tн=-24?С; Iпр= Iн=-23,2 кДж/кг, dпр = 0,4 г/кг с.в.):

(влагосодержания dух и dпропределены по i-d диаграмме)

в) воздухообмен для разбавления углекислого газа:

- для теплого, холодного периодов и переходных условий:

Допустимая концентрация углекислого газа в помещениях с кратковременным пребыванием людей qух=qв= 3,7 г/м3; концентрация углекислого газа в наружном воздухе крупных городов qпр= 0,91 г/м3[9].

Таким образом в этом разделе, был произведён расчет значения воздухообмена для удаления углекислого газа, который выбирается из значений для трех периодов года. Анализ полученных значений показал, что наибольший воздухообмен для удаления углекислого газа составляет L=510 м3/ч.

Калорифер.На основании расчета воздухообмена подбираем калорифер для нагревания L = 510 м3/ч воздуха от температуры tнБ= -21,6 оС доtпр=13-1=12 оС.

1.Количество теплоты, необходимой для подогрева приточного воздуха:

2. Задаемся массовой скоростью v = 7 [кг/(м2с)]. Находим площадь фронтального сечения калориферной установки для прохода воздуха:

3. Находим расход пара в калориферной установке:

Где: сж - удельная теплоёмкость воды, сж=4,19кДж/(кгоС);

Для данного расчета нам подходит воздухонагреватель WWN 100-50/3. Этот нагреватель для прямоугольных каналов предназначены для подогрева воздуха и других  невзрывоопасных газовых смесей в системах вентиляции и кондиционирования воздуха. В качестве теплоносителя рекомендуется использовать воду и незамерзающие смеси. Потеря давления на калорифере составляет 166 Па.

Вентилятор. Подберем вентилятор для приточной системы учебного помещения при следующих данных: расход воздуха Lсети_=_510_м3/ч. Потери давления в сети, определенные на основании аэродинамического расчета воздуховодов, ?Рсети_=_250 Па, потери давления в фильтре - 189,5 Па, потери давления в калорифере - 166 Па. Производительность вентилятора:

Развиваемое полное давление вентилятора:

Для данного расчета нам подходит вентилятортипа VR60-35/31.4D, частота вращения рабочего колеса n_=_1415_мин-1, а потребляемая электрическая мощность N=2,48 кВт.

Рис. 30. Канальные радиальные вентиляторы низкого давления VR 60-35/31.4D

Кво=L/Vном=510/315=1,6

Данный вентилятор предназначен для обслуживания помещения объемом 510 м3, чтобы обеспечить коэффициент воздухообмена равный 1,6 (КО=1,6).

Рис. 31. Схема вентиляции в учебном помещении

4.4 Влияние промышленных предприятий на окружающую среду

Из большого объёма промышленных выбросов, попадающих в окружающую среду, на промышленность приходится лишь незначительная его часть -- 1-2%. Однако на промышленных предприятиях отрасли имеются основные и обеспечивающие технологические процессы и производства с весьма высоким уровнем загрязнения окружающей среды. К ним относятся:

-- внутризаводское энергетическое производство и другие процессы, связанные со сжиганием топлива;

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

-- лакокрасочное производство.

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

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

-- воздушного пространства (выбросы газа, парообразных веществ, дымов, аэрозолей, пыли и т. п.);

-- поверхностных водоисточников (сточные воды, утечка жидких продуктов или полуфабрикатов и т.п.);

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

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

Основными загрязнителями красильных производств предприятий являются лакокрасочные материалы и их составляющие: синтетические смолы, органические растворители, пластификаторы и катализаторы.

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

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

На предприятиях 55% амортизационного лома образуется от замены технологической оснастки и инструмента.

Шламы из отстойников очистных сооружений и прокатных цехов содержат большое количество твердых материалов, концентрация которых составляет от 20 до 300 г/л. После обезвреживания и сушки шламы используют в качестве добавки к агломерационной шихте и удаляют в отвалы. Шламы термических литейных и других цехов содержат токсичные соединения свинца, хрома, меди, цинка, а также цианиды, хлорофос и др.

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

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

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

-- внедрения новых альтернативных технологий, а именно - экологически чистых, безотходных;

- переработки твердых отходов.

4.5 Методы минимизации выбросов загрязняющих веществ в окружающую среду

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

К этим методам относят следующие (в зависимости от среды или комбинации сред):

· Отстаивание

Основано на разделении системы «воздух или жидкость- твёрдые частицы» под воздействием силы тяжести. Применяется для отделения взвешенных грубо- или мелкодисперсных примесей. Метод используется также для очистки сточных вод от взвешенных частиц.

· Фильтрование

Основано на разделении системы газ-твердые частицы или газ-жидкая фаза с помесью пористого материала (пористые, тканевые, зернистые фильтры). Метод используется также для очистки воды от твёрдых и жидких загрязнителей.

· Коагуляция

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

· Магнитный метод

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

· Ультразвуковой метод

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

· Адсорбция

Метод основан на поглощении загрязняющих примесей адсорбентом, имеет широкое распространение для очистки газов (воздуха). Наиболее эффективными адсорбентами являются активированные угли.

· Абсорбция

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

· Нейтрализация

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

· Восстановление

Метод основан на восстановлении неорганических и органических соединений с изменением их валентности или структуры. Например, для очистки воздушной среды от окислов азота в промышленной практике используют в качестве восстановителей СН, СО, NH, Н, получая продукты восстановления: азот, воду и углекислоту.

· Флотация

Основана на образовании комплексов «частица - воздушные пузырьки», которые всплывают и могут быть удалены в виде пенного слоя с поверхности жидкости; применяется в основном для очистки сточных вод от нефти, жиров, нефтепродуктов, а также для обогащения рудных ископаемых

· Обратный осмос и ультрафильтрование

Метод основан на разделении растворов фильтрованием через мембраны с диаметром пор 1 нм (обратный осмос) и 5-200 нм (ультрафильтрование). Эти мембраны пропускают молекулы воды и непроницаемы для гидратированных ионов или недиссоциированных соединений.

· Перегонка и ректификация

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

· Концентрирование

Метод основан на разделении растворённых в воде соединений путем изменения их растворимости с изменениями температуры или путём удаления части, а иногда и всего объёма воды.

· Метод образования осадков

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

· Окисление химическими реагентами

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

· Электрохимическая очистка

Метод основан на электролизе промышленных сточных вод путём пропускания через них постоянного электрического тока (анодное окисление, катодное восстановление, электролиз и др.).

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

4.6 Выводы по разделу

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

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

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

микроконтроллер сканирование отпечатки клавиатура пароль

Заключение

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

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

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

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

Список литература

1.Бхуптани М., Морадпур Ш. RFID-технологии на службе вашего бизнеса; Пер. с англ. - М.: Альпена Бизнес Букс, 2007. - 281 с.

2.Журнал Современная электроника №1 2005г., СТА-ПРЕСС, - 85 с.

3.Журнал PC Week/RE № 7, 2003 г., c. 24, и № 10, 2003 г., c. 26.

4.Десятчиков А.А, Лобанцов В.В., Матвеев И.А., Мурынин А.Б, Об объединении дистанционных биометрических методов распознавания человека, / Современный экстремизм в Российской Федерации: особенности проявления и средства противодействия: Материалы всероссийской научно-практической конференции в Академии Управления МВД России, М.: Академия управления МВД РФ, 2006, с. 374-379

5.Болл Стюарт Р. Аналоговые интерфейсы микроконтроллеров.--М.: Додэка-XXI, 2007.-- 360с.

6.Лапин А.А. Интерфейсы. Выбор и реализация.--М.: Техносфера, 2005.-- 168с.

7.Книга СтандартовiButton, техническое описание DS1990A (SerialNumberiButton) и указания по применению№74 (Application Note 74: Reading and WritingiButtons via Serial Interfaces)

8.Петин В. А. Проекты с использованием контроллера Arduino. -- СПб.: БХВ-Петербург, 2014. -- 400 с.: ил. -- (Электроника)

9.Строительные нормы и правила РФ СНиП 41-01-2003 'Отопление, вентиляция и кондиционирование'. - М.: Стройиздат, 2003. - 42с.

10.Антимонов С.В., Соловых С.Ю., Василевская С.П. Виды систем вентиляции и методика расчета воздухообмена в помещениях: Методические указания по курсу вентиляционные установки- Оренбург: ГОУ ОГУ, 2003. - 21 с.

Приложение 1

Ключ iButton и метка RFID

#include 'stm32f10x.h'

#include 'stm32f10x_gpio.h'

#include 'stm32f10x_rcc.h'

#include 'MFRC522.h'

#include 'OWire.h'

// Объявим глобальную структуру отвечающую за работу

// по протоколу 1-wire

OWireowire;

 // Процедура задержки организованная на основе цикла

voiddelay(uint32_t ms)

{

volatileuint32_t nCount;

// Получим настройки тактирования микроконтроллер

RCC_ClocksTypeDefRCC_Clocks;

RCC_GetClocksFreq (&RCC_Clocks);

// Пересчитаем полученные данные по частоте работы в

// количество тактов соответствующих заданной задержке

nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;

// Идем по циклу пока не просчитаем все

// заданное количество раз

for(; nCount!=0; nCount--);

}

intmain(void)

{

// ОбъявимструктурутипаMIFARE_Key

MFRC522::MIFARE_Keykey;

// Объявим и создадим структуру типа MFRC522

MFRC522 mfrc522 = MFRC522();

// Инициализируем структуру считывателя

mfrc522.PCD_Init();

// Объявим массив байт хранящий адрес устройства

//находящегося на линии 1-wire

uint8_t addr[8];

// Объявим массив байт, хранящий данные

// записанные в ПЗУ iButton

uint8_t data[12];

uint8_t present = 0;

// Инициализируем структуру Owire с указанием

// работы на пину PB3

OWInit(&owire, GPIOB, GPIO_Pin_3);

// ПодготовимключзаполнивегоFFFFFFFFFFFFh

for(inti = 0; i< 6; i++)

{

key.keyByte[i] = 0xFF;

}

while(1)

{

// Если устройство найдено то работаем с ним

if(OWSearch(&owire, addr) = 1)

{

// Вычисляем контрольную сумму и сравниваем

// с переданной устройством

if(OWCrc8(addr, 7) != addr[7]) return2;

// Отбираем устройства только

// семейства 0x10 DallasiButton

if(addr[0] != 0x10) return3;

// Посылаем сигнал сброса и ждем ответ от устройства

present = OWReset(&owire);

// Выбираем данное устройство

OWSelect(&owire, addr);

// Посылаем устройству команду на выдачу данных из ПЗУ

OWWrite(&owire,0x33, 0);

// Делаем задержку

delay(50);

uint8_t i = 0;

// Считываем данные передаваемые устройством

for(i = 0; i< 9; i++)

{

data[i] = OWRead(&owire);

}

}

else{

// Сбросим переменныеустановленные при поиске

OWReset_search(&owire);

// выполнимзадержку

delay(250);

}

// Если карта присутствует у считывателя и серийный

// номер карты считан успешно, то обрабатываем

// полученные данные

if(!mfrc522.PICC_IsNewCardPresent() &

!mfrc522.PICC_ReadCardSerial() )

{

// обработка полученных данных хранящихся в mfrc522.uid

delay(50);

}

}

}

Цифровая клавиатура

#include 'stm32f10x.h'

#include 'stm32f10x_rcc.h'

#include 'stm32f10x_gpio.h'

//указываемпиныстрок

introws[]={GPIO_Pin_0, GPIO_Pin_1,

GPIO_Pin_2, GPIO_Pin_3};

/указываем пины столбцов

intcols[]={GPIO_Pin_4, GPIO_Pin_5,

GPIO_Pin_6, GPIO_Pin_7};

//массив с соответствиями кодов нажатых кнопок

charsimbols[][2]=

{

{0,'1'},

{1,'2'},

{2,'3'},

{3,'A'},

{4,'4'},

{5,'5'},

{6,'6'},

{7,'B'},

{8,'7'},

{9,'8'},

{10,'9'},

{11,'C'},

{12,'*'},

{13,'0'},

{14,'#'},

{15,'D'}

};

// Процедура инициализации

voidInitGPIO(void){

//зададим питание

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,

ENABLE);

GPIO_InitTypeDefGPIOInit;

// Объявим инициализируемыепины

GPIOInit.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 |

GPIO_Pin_2 | GPIO_Pin_3);

// Установим скорость порта

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

// Укажем, что пины будут работать в режиме вывода

GPIOInit.GPIO_Mode = GPIO_Mode_Out_PP;

// Инициализируем пины согласно установленным в

// структуре параметрам

GPIO_Init(GPIOB, &GPIOInit);

// Объявим инициализируемыепины

GPIOInit.GPIO_Pin = (GPIO_Pin_4 | GPIO_Pin_5 |

GPIO_Pin_6 | GPIO_Pin_7);

// Установим скорость порта

GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;

// Укажем, что пины будут работать в режиме ввода

GPIOInit.GPIO_Mode = GPIO_Mode_IN_FLOATING;

// Инициализируем пины согласно установленным в

// структуре параметрам

GPIO_Init(GPIOB, &GPIOInit);

}

// функция поиска кода нажатой клавиши

// по ее положению (строка/столбец)

charFindKey(unsigned intkeyCode)

{

inti=0;

// в цикле перебираем все занесенные значения в массив

// и ищем совпадения с нужным элементом

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

if(simbols[i][0]==keyCode){

returnsimbols[i][1];

}

}

//если код не найден возвращаем '-'

return'-';

}

intmain(void)

{

InitGPIO();

while(1)

{

inti=0;

intj=0;

charcurrentKey;

//цикл для перехода по всем строкам

for(i=0;i<4;i++)

{

//подаем на текущую строку высокий уровень

GPIO_SetBits(GPIOB, rows[i]);

//цикл для переходов по всем столбцам

for(j=0;j<4;j++)

{

//если уровень высокий, то кнопка нажата

if(GPIO_ReadInputDataBit(GPIOB, cols[j]) == 1)

{

//выводим в терминал код нажатой кнопки

currentKey = FindKey(4*i+j);

}

}

//выключаем высокий уровень для пройденной строки

GPIO_ResetBits(GPIOB, rows[i]);

}

}

}

Сканер отпечатков пальцев

#include 'stm32f10x.h'

#include 'stm32f10x_rcc.h'

#include 'stm32f10x_gpio.h'

#include <Adafruit_Fingerprint.h>

#include <SoftwareSerial.h>

// процедуразадержки

voiddelay(uint32_t ms)

{

volatileuint32_t nCount;

RCC_ClocksTypeDefRCC_Clocks;

RCC_GetClocksFreq (&RCC_Clocks);

nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;

for(; nCount!=0; nCount--);

}

// процедура получения номера отпечатка

uint8_tgetFingerprintID()

{

uint8_t p = finger.getImage();

switch(p)

{

caseFINGERPRINT_OK:

Serial.println('Отпечатокнайден');

break;

caseFINGERPRINT_NOFINGER:

Serial.println('Отпечатокнеобнаружен');

returnp;

caseFINGERPRINT_PACKETRECIEVEERR:

Serial.println('Ошибкасвязи');

returnp;

caseFINGERPRINT_IMAGEFAIL:

Serial.println('Ошибкаизображения');

returnp;

default:

Serial.println('Неизвестнаяошибка');

returnp;

}

// Ошибок нет, продолжаем обработку

p = finger.image2Tz();

switch(p)

{

caseFINGERPRINT_OK:

Serial.println('Изображениепреобразовано');

break;

caseFINGERPRINT_IMAGEMESS:

Serial.println('Изображениеиспорчено');

returnp;

caseFINGERPRINT_PACKETRECIEVEERR:

Serial.println('Ошибкасвязи');

returnp;

caseFINGERPRINT_FEATUREFAIL:

Serial.println('Неудалосьраспознатьотпечаток');

returnp;

caseFINGERPRINT_INVALIDIMAGE:

Serial.println('Не удалось распознать отпечаток');

returnp;

default:

Serial.println('Неизвестнаяошибка');

returnp;

}

// Если изображение успешно преобразовано, то

// продолжаем обработку

p = finger.fingerFastSearch();

if(p == FINGERPRINT_OK)

{

Serial.println('Шаблоннайден');

} elseif(p == FINGERPRINT_PACKETRECIEVEERR) {

Serial.println('Ошибкасвязи');

returnp;

} elseif(p == FINGERPRINT_NOTFOUND) {

Serial.println('Не найден шаблон');

returnp;

} else{

Serial.println('Неизвестная ошибка');

returnp;

}

// если шаблон найден успешно, то продолжаем

Serial.print('Найден ID #'); Serial.print(finger.fingerID);

Serial.print(' сточностью '); Serial.println(finger.confidence);

}

// функция считывания отпечатка

// если не нашли возвращаем -1, иначе номер шаблона

intgetFingerprintIDez() {

uint8_t p = finger.getImage();

if(p != FINGERPRINT_OK) return-1;

p = finger.image2Tz();

if(p != FINGERPRINT_OK) return-1;

p = finger.fingerFastSearch();

if(p != FINGERPRINT_OK) return-1;

// если шаблон найден, то продолжаем

Serial.print('Найден ID #'); Serial.print(finger.fingerID);

Serial.print(' сточностью '); Serial.println(finger.confidence);

returnfinger.fingerID;

}

// главнаяпроцедура

intmain(void)

{

SoftwareSerialmySerial(GPIOA, GPIO_Pin_2,

GPIO_Pin_3);

Adafruit_Fingerprint finger =

Adafruit_Fingerprint(&mySerial);

// считываниеотпечатка

while(1)

{

getFingerprintIDez();

delay(50);

}

ref.by 2006—2019
contextus@mail.ru