Журнал "Новости Электроники", номер 2, 2010 год.
Журнал "Новости Электроники", номер 2, 2010 год.Устройство электронной печати на базе микроконтроллера MSP430Валерий Жижин (ЗАО ╚ИПК ╚СТРАЖ╩) В статье идет речь о новом устройстве ограничения доступа в помещения═√ электронной печати. Рассматриваются алгоритм его функционирования и реализация на микроконтроллере MSP430F1232 компании Texas Instruments. Приводятся принципиальная схема устройства, алгоритм работы и фрагмент листинга программы на языке Си, а также результаты двухлетнего тестирования опытного образца.В наше время на мировом рынке систем ограничения доступа в офисные и производственные помещения идет активное вытеснение механических замков электронными и электронно-механическими. Уже получили распространение «замки-невидимки» с дистанционным управлением, замки с блокировкой/разблокировкой от встроенной в ключ и замок RFID-системы. Тем не менее, в большинстве российских, особенно государственных, учреждений, по-прежнему используются механические замки различной степени сложности и архаичный метод аутентификации - опечатывание с помощью пластилина. Недостатки, присущие этому методу, очевидны: легкость изготовления поддельной печати; невозможность фиксации момента времени открытия/опечатывания; невозможность быстрой замены печати в случае ее утраты и т. д.
Чтобы повысить индивидуальный уровень защиты помещения, не прибегая к установке дорогих запорных систем с кодовой аутентификацией, было разработано недорогое устройство электронной печати - замена «пластилиновому» методу. Использование данного устройства не требует замены или какой-либо доработки существующего механического замка в данном помещении.
Принцип действия и алгоритм работы электронной печати заключается в следующем: в процессе опечатывания корпус устройства накладывается на замочную скважину, блокируя ее входное отверстие. Установка устройства производится на две металлические втулки, размещенные сверху и снизу относительно замочной скважины, в верхние части которых вмонтированы постоянные магниты Nd-Fe-B. Это единственный способ доработки наружной поверхности корпуса замка.
Магниты выполняют двойную функцию: осуществляют фиксацию и удержание корпуса электронной печати на скважине замка; являются элементами датчика присутствия устройства, реализованном на цифровом омниполярном датчике Холла А3212 компании Allegro Microsystems Inc. При установке устройства на металлические втулки происходит его активация. При этом в течение 7 секунд индицируется сгенерированный псевдослучайный цифровой код печати и начинается отсчет времени. При нажатии на контрольную кнопку происходит индикация кода печати и интервала времени с момента опечатывания. Для перезапуска устройства достаточно его снять и снова поставить.
Алгоритм работы электронной печати состоит в следующем:
1. Печать снята с корпуса замка - выход датчика Холла «0 р 1», микроконтроллер - в SLEEP-peжиме. Каждую секунду происходит прерывание от интервального таймера.
В подпрограмме обработки прерывания _interrupt void watchdog_timer (void) реализуются следующие функции:
генерация последовательности пяти псевдослучайных чисел (функция rand);запись значений минут и часов в соответствующие ячейки;выход из подпрограммы прерывания в SLEEP-peжим.2. Устройство активизировано - выход датчика Холла «1 р 0», генерация прерывания. В подпрограмме обработки прерывания _interrupt void port1_ISR (void) происходит:
останов таймера;запись последних пяти сгенерированных псевдослучайных чисел в буфер sens;отображение на LED индикаторе числа «печати» из буфера sens;обнуление и запуск таймера;выход из подпрограммы прерывания в SLEEP peжим.3. При нажатии на кнопку контроля - генерация нового прерывания _interrupt void port2_ISR (void):
останов таймера;отображение в течение 3 секунд на LED индикаторе числа «печати» из буфера sens;отображение в течение 3 секунд интервала времени с момента установки печати; формат отображения времени «00 минут: 00 часов» (0...59 минут, 0...99 часов).перезапуск таймера (с точки останова);выход из подпрограммы прерывания в SLEEP-peжим.Для обеспечения режима минимального энергопотребления устройства LED-индикатор используется в режиме динамической индикации.
Предлагаемый алгоритм работы электронной печати позволяет не только определить факт несанкционированного доступа в помещение (при съеме/установке устройства генерируется новая пятиразрядная последовательность псевдослучайных чисел), но и интервал времени от момента несанкционированного вскрытия до момента контроля.
Программный код для микроконтроллера MSP430F1232 написан на языке Си. Здесь нужно отметить некоторые особенности программы:
1. Регистр статуса микроконтроллера переводится в режим LPM3 [1];
_BIS_SR(GIE+LPM3_bits);
2. Сторожевой таймер переводится в режим интервального таймера с управлением от внешнего кварцевого генератора 32,768 кГц;
WDTCTL=WDTPW+WDTCNTCL+WDTSSEL+WDTTMSEL;
//Ft=32768/32768=1Hz
IE1=WDTIE;
//Разрешение прерывания от интервального таймера.
3. Для отсчета временных интервалов используется Таймер А.
4. Функция rand() основана на генерации рекуррентной последовательности и возвращает равномерно распределенное псевдослучайное число в интервале значений 0...32767. Эта функция описана в файле .
С целью улучшения статистических свойств и уменьшения вероятности повторения начальных значений rand(), при перезапуске программы (например, при замене источника питания) вводится дополнительный временной случайный фактор - генерация значений rand() происходит в подпрограмме обработке событий интервального таймера WDT. Вот так она выглядит:
//Ежесекундное прерывание от интервального таймера;
//Запись значений минут и часов в соответствующие ячейки;
//Генерация новых случайных чисел;
#pragma vector=WDT_VECTOR
_interrupt void watchdog_timer(void)
{
unsigned int g=0;
unsigned char n=0;
//Отсчет времени
sec1++;
if(sec1>9)
{sec10++; sec1=0;}
if(sec10>=6)
{min1++; sec10=0; sec1=0;}
if(min1>9)
{min10++; min1=0;}
if(min10>=6)
{ch1++; min10=0; min1=0;}
if(ch1>9)
{ch10++; ch1=0;}
if(ch10>9)
{ch10=0; ch1=0;}
//****генерация новых случайных чисел*****
for(n=0; n
Рекомендуемый контент
Радиолюбителю