Использование САПР PROTEUS для разработки эмулятора и считывателя-эмулятора домофонного ключа CYFRAL

PROTEUS VSM – пакет программ для автоматизированного проектирования (САПР) электронных схем. Разработка компании Labcenter Electronics. Пакет представляет собой систему схемотехнического моделирования, базирующуюся на основе моделей электронных компонентов принятых в PSpice. Отличительной чертой пакета PROTEUS VSM является возможность моделирования работы программируемых устройств: микроконтроллеров, микропроцессоров, DSP и проч. Библиотека компонентов содержит справочные данные. Дополнительно в пакет PROTEUS VSM входит система проектирования печатных плат. Пакет Proteus состоит из двух частей, двух подпрограмм: ISIS – программа синтеза и моделирования непосредственно электронных схем и ARES – программа разработки печатных плат.

Микросхема К1233КТ1 предназначена для использования в системах контроля и управления доступом (СКУД) контактного типа и не требует встроенных элементов питания. На основе данной микросхемы возможно изготовление пластиковых карт, брелков, браслетов, электронных ключей для домофона Cyfral с индивидуальным номером. Выпускается в корпусах КТ-47 (SOT-89) и КТ-26 (TO- 92).

К1233КТ1 содержит осциллятор, шифратор-мультиплексор и формирователь временной диаграммы для выдачи кода в последовательном виде. С выхода мультиплексора информация поступает на выходной транзистор, подключенный к выводу 1 микросхемы. Через этот вывод происходит питание микросхемы. Цепи питания и передачи информации объединены, что позволяет обойтись двумя выводами.

При подаче на микросхему напряжения питания включается внутренний осциллятор и, в соответствие с запрограммированным кодом, по заданной временной диаграмме микросхема дискретно с двумя уровнями меняет своё сопротивление. Код выдаётся циклически, начиная с младшего разряда, и включает в себя четырехразрядное стартовое слово и восемь четырехразрядных слов позиционного кода со значениями от 0 до 3 (таблица 1). Избыточность позиционного кода позволяет легко организовать проверку достоверности считывания кода по наличию трех единиц в каждом (кроме стартового) слове кода. Время передачи одного бита всегда равно Tп. Передача каждого бита стартового и информационных слов представляет собой последовательное удержание потребляемого тока сначала на низком уровне в течение времени τи, а затем на высоком уровне в течение времени Tп-τи. При этом при передаче логического «0» длительность τи0 приблизительно равна 1/3Tп, при передаче логической «1» длительность τи1 приблизительно равна 2/3Tп. То есть логические «0» и «1» отличаются длительностью импульса τи. Период Tп в зависимости от микросхемы, температуры и напряжения питания может изменяться от 50 до 230 микросекунд. Гарантируется, что τи0 ≤ 0,4 Tп, τи1 ≥ 0,6 Tп.

Рис. 1. Временная диаграмма работы микросхемы

Решено было разработать два устройства – эмулятор ключей Cyfral, не требующий питания и считыватель-эмулятор, способный считывать, сохранять в энергонезависимой памяти (EEPROM) и эмулировать данные ключи. Управляющая программа микроконтроллера устройства была написана на языке ассемблера для PIC (MPASM) в текстовом редакторе Notepad++. Компилятор MPASM поставляется вместе с Proteus, компиляция происходит автоматически при запуске эмуляции, если файл с листингом программы был изменён.

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

Рис. 2. Изображение схемы эмулятора ключа в САПР Proteus 7.6

Версия 0.0.

Эмулируется один ключ, прописанный в виде констант в ПО микроконтроллера. Версия 0.1

Аппаратная часть не отличается от версии 0.0.

По очереди эмулируются все ключи, имеющиеся в EEPROM микроконтроллера. Признак окончания списка ключей – байт 0xFF или конец памяти микроконтроллера. При программировании в EEPROM только одного ключа данная версия почти не отличается от версии 0.0.

Недостатки данной версии, если в памяти находится более одного ключа:

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

Достоинства:

  • Очень простая аппаратная часть.
  • Для открывания двери достаточно подносить ключ к домофону.
  • Питание от панели домофона.

Считыватель-эмулятор предназначен для считывания кода с домофонных ключей "Cyfral" (К1233КТ1), хранения кода и эмуляции прочитанного ключа.

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

– вход для подключения ключа, кнопку, светодиод и разъём для трёх элементов AA. Возможно чтение как с ключа, так и с другого эмулятора, выдающего один ключ.

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

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

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

Рис. 3. Изображение схемы считывателя-эмулятора CYFRAL в САПР Proteus 7.6

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

Использование САПР Proteus значительно упростило разработку и отладку устройств. Так как Proteus поддерживает интерактивную эмуляцию цифровых и аналоговых компонентов, была собрана схема, содержащая эмулятор, подключенный ко входу считывателя-эмулятора (рис. 4). Также сигналы с выхода эмулятора, со входа микроконтроллера считывателя-эмулятора и с выхода считывателя-эмулятора были поданы на входы A, C и B соответственно. Сначала был проверен и отлажен эмулятор (рис. 5).

Рис. 4. Изображение схемы тестирования эмулятора и считывателя-эмулятора в САПР Proteus 7.6

Рис. 5. Временная диаграмма сигнала эмулятора на экране виртуального осциллографа в САПР Proteus 7.6

После этого началась разработка и отладка считывателя-эмулятора. На рис. 6 показаны фрагменты временных диаграмм сигнала на выходе эмулятора и входе считывателя-эмулятора (первый график, Channel A) и на входе микроконтроллера считывателя-эмулятора (второй график, Channel C) после прохождения аналоговой цепи, задающей постоянную составляющую сигнала. На рисунке 7 показаны окна с листингом программы в момент останова после успешного считывания, содержимым регистров (CPU Registers и Data Memory) и EEPROM. В окне EEPROM по адресу 0x00 и в окне Data Memory по адресу 0x30 виден успешно считанный код ключа – 0xDD77DBDB. На рис. 8 (третий график, Channel B) показана эмуляция успешно прочитанного кода считывателем-эмулятором.

Рис. 6. Временные диаграммы сигнала на выходе и на входе микроконтроллера считывателя-эмулятора

Рис. 7. Отладка управляющей программы в САПР Proteus 7.6

Рис. 8. Временные диаграммы сигналов на выходах эмулятора и считывателя-эмулятора

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

ЛИТЕРАТУРА

  1. А. Максимов. Моделирование устройств на микроконтроллерах с помощью программы ISIS из пакета PROTEUS VSM. //Радио 2005. Апр. С. 30.
  2. Datasheet. К1233КТ1 – микросхема электронного кодового ключа. Брянск: НТЦ СИТ, 2001. 6 с.
  3. Datasheet. PIC12F629/675 – 8-pin FLASH-Based 8-bit CMOS Microcontrollers. Microchip Technology Inc, 2003. 132 с.

 

Год: 2011
Город: Алматы
loading...