Современная электроника №7/2021
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 39 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 число включений, то, как отмечалось выше, сразу после включения устрой- ства в течение 2 с будет индицировать- ся текущее число включений, которое декрементируется с каждым новым включением. Далее устройство будет отрабатывать свой рабочий алгоритм. Разработчик, используя только аппа- ратные ресурсы устройства, может бес- конечное число раз записать необходи- мое число включений и снять защиту. В техническом описании на микрокон- троллер ATMEGA8535 утверждается, что EEPROM выдерживает 100 000 циклов записи/стирания. Целесообразно, чтобы доступ к выключателю SА1 был ограничен. Конструктивно это сделать не так уж и сложно. Все пересылки данных про- исходят внутри микроконтроллера. У злоумышленника нет никакой воз- можности их контролировать и отсле- дить момент сравнения вводимого кода с хранящимися в памяти. Не поможет и знание рабочего алгоритма устройства. Вводимые коды находятся во внутрен- ней памяти программ микроконтрол- лера, под битами защиты. Понятно, что нужно не забыть установить при про- граммировании микроконтроллера биты защиты. Даже если злоумышленник обнару- жит выключатель SA1, то это не пред- ставляет большой опасности. Для того чтобы войти в режим задания числа включений, необходимо два раза вве- сти трёхразрядный код. А для того чтобы снять защиту – три раза трёх- разрядный. Доработав программное обеспечение микроконтроллера, код доступа легко можно сделать и 12- или 15-разрядным. Понятно, что степень защиты можно ещё более увеличить, если в устройстве задействован четы- рёхразрядный индикатор. Таким обра- зом, перебор всех возможных ком- бинаций даже при шестиразрядном коде просто невозможен. Конструк- тивно выключатель SA1 можно вооб- ще исключить. Вместо него можно сделать, например, просто два штыря в разных местах платы, замыкать их проводником, подключая тем самым соответствующий вывод микро- контроллера к общему проводнику устройства. Алгоритм работы (блок- схема) представляемой защиты про- демонстрирован на рис. 3. Совсем коротко о программном обе- спечении механизма защиты. Про- граммное обеспечение микрокон- троллера было разработано в среде AVR Studio. В программе используют- ся два прерывания: Reset и прерыва- ние таймера Т0, обработчик которого начинается с метки TIM0. При перехо- де на метку Reset инициализируются стек, таймер, порты, а также флаги и переменные, используемые в програм- ме. Таймер Т0 генерирует прерывания по переполнению (в регистре TIMSK установлен бит TOIE0). Коэффици- ент предварительного деления такто- вой частоты таймера установлен рав- ным 64 (в регистре TCCR0 записано число 3). В обработчике прерывания тай- мера Т0 осуществляется: процедура опроса кнопок S1, S2, выключателя SA1, функционирование динамиче- ской индикации, запись числа вклю- чений в EEPROM микроконтроллера, чтение числа включений из EEPROM, перекодировка двоичного числа в код для отображения информации на семисегментных индикаторах устрой- ства, а также временной интервал дли- тельностью две секунды, необходимый для индицирования числа включений на дисплее устройства. Флаги, задей- ствованные в программе, находятся в регистрах R19 (flo) и R25 (flo1). Чис- ло, отображаемое на дисплее устрой- ства, имеет три разряда. Число, зано- симое в EEPROM микроконтроллера, имеет четыре разряда. Каждый разряд занимает один байт в ОЗУ и соответ- ственно в EEPROM. Первые три раз- ряда задают количество включений. Четвёртый разряд не отображается на дисплее. Функциональное назначение данного разряда следующее. Если раз- ряд содержит единицу, значит, защита установлена, если ноль – защита сня- та (см. рис. 2). При инициализации в четвёртый разряд заносится едини- ца. Как видно из блок-схемы, блоки- ровка рабочего алгоритма основной программы происходит при обнуле- нии числа включений. В ОЗУ микроконтроллера, начиная с адреса RAM = $60, организованы четы- ре буфера отображения для динамиче- ской индикации. Буфер№1 необходим для отображения чисел и кодов, которые необходимо инкрементировать (число включений, коды№1…3). Число вклю- чений из буфера№1 в режиме№2 зано- сится в EEPROMмикроконтроллера. Функциональное назначение ячеек буфера отображения № 1 следующее: ● $61 – ячейка, где хранятся сотни чис- ла включений и кодов№1…3 (1-й раз- ряд индикатора, слева направо); ● $62 – ячейка, где хранятся десятки числа включений и кодов № 1…3 (2-й разряд индикатора); ● $63 – ячейка, где хранятся едини- цы числа включений и кодов №1…3 (3-й разряд индикатора); ● $64 – ячейка, где хранится число 0 или 1, определяющее установку или снятие защиты. При инициализации в ячейку с адресом $64 записывается число 1, в остальные ячейки буфера № 1 зано- сятся нули. С адреса RAM+6 начинает- ся буфер отображения № 2 для дина- мической индикации. В данный буфер в режиме № 1 из EEPROM микрокон- троллера заносится (читается) число включений, которое индицируется в течение 2 с и затем декрементирует- ся и записывается в EEPROM микро- контроллера. При инициализации в буфер № 2 заносятся нули. С адреса RAM+12 начинается буфер отображе- ния № 3. При инициализации в каж- дую ячейку буфера № 3 заносится чис- ло $A, которое после перекодировки в каждом разряде индицируется как символ «-». В итоге на дисплее выво- дятся символы «---». Данные символы отображаются только при блокиров- ке рабочего алгоритма основной про- граммы. С адреса RAM+17 начинается буфер отображения № 4. При инициа- лизации в каждую ячейку буфера № 4 заносится число 5. В итоге на дис- плее индицируется число 555. Дан- ное число отображается при пере- ходе на рабочий алгоритм основной программы. Коды № 1…3 в программе заданы как 010, 011, 012 соответствен- но. Метки перехода на отображение буферов № 3 и № 4 соответственно osn2 и osn3. Информация, записанная в буферы отображения № 3 и 4, как уже отмеча- лось выше, нужна лишь для наглядно- сти во время демонстрации работы устройства, часть принципиальной схемы которого приведена на рис. 1. Написанная на ассемблере програм- ма устройства защиты вместе c подпро- граммой динамической индикации для вывода буферов отображения № 1…4 на дисплей занимает всего 1 кБ памя- ти программ. Представляемая защита достаточно универсальна, её можно адаптировать для любого устройства с микроконтроллером и/или дорабо- тать для увеличения степени защиты. Предлагаемую защиту можно встроить в различные приборы, меняя при этом только коды доступа.
RkJQdWJsaXNoZXIy MTQ4NjUy