Проанализировав техническое задание, составим структурную схему устройства:
· Устройство предназначено для аппаратного шифрования компьютерных файлов. Поэтому устройство будет использоваться в составе с персональным компьютером.
· Устройство будет производить шифрование данных с большой скоростью (до 12 Мбит/сек). Поэтому основой устройства должен быть высокопроизводительный 32-х разрядный микроконтроллер.
· Устройство связано с компьютером через интерфейс USB на скорости 12 Мбит/сек. Поэтому микроконтроллер, используемый в устройстве, должен быть оснащен full-speed USB контроллером.
· Для предотвращения влияния на устройство высокочастотных помех из линии связи USB интерфейса, в состав устройства необходимо включить фильтр USB сигнала.
· Питание устройства обеспечивается интерфейсом USB. Для обеспечения надежной работы аппаратного шифратора, необходимо предусмотреть стабилизацию и, если необходимо, преобразование полученного от USB напряжения.
· Необходимо предусмотреть индикацию подачи питания на устройство и индикацию нормальной работы устройства.
|
|
· Для генерации сеансовых ключей шифрования в устройстве реализован аппаратно-программный генератор случайных чисел.
· В устройстве должна присутствовать энергонезависимая EEPROM память данных для хранения мастер ключей.
Структурная схема устройства для аппаратного шифрования информации, которая соответствует приведенным выше требованиям, изображена на рисунке 1.9.
Рис. 1.9 – Структурная схема устройства аппаратного шифрования
2. РАЗРАБОТКА СХЕМОТЕХНИЧЕСКОЙ РЕАЛИЗАЦИИ АППАРАТНОГО ШИФРАТОРА
2.1 Выбор элементной базы для шифратора
Согласно техническому заданию, элементная база для аппаратного шифратора должна состоять из компонентов доступных в Украине.
2.1.1 Выбор микроконтроллера
2.1.1.1 Обоснование выбора
Согласно техническому заданию, устройство должно поддерживать USB. Следовательно, нужен контроллер с поддержкой этого интерфейса.
Устройство должно шифровать файлы с максимально возможной скоростью, поэтому контроллер должен быть быстрым.
Наиболее подходящими контроллерами являются Atmel AT91SAM7S64, Atmel AT89C5131, Philips LPC2141, Philips LPC2142.
Таблица 2.1 – Параметры микроконтроллеров
Микроконтроллер | Быстродействие, MIPS | Объем flash, Кб | Объем ОЗУ, Кб | Цена, USD |
AT91SAM7S64 | 50 | 64 | 16 | 5 |
AT89C5131 | 4 | 32 | 1 | 8 |
LPC2141 | 55 | 32 | 8 | 5 |
LPC2142 | 55 | 64 | 16 | 7 |
Коэф. важности | 0,2 | 0,15 | 0,15 | 0,5 |
Выберем один из них по матрице параметров:
1) ;
2) Составим матрицу приведенных параметров:
- если большее значение параметра соответствует лучшему качеству ИМС, то ;
|
|
- если параметр не удовлетворяет этому условию, то .
;
3) Составим матрицу нормированных параметров A:
, где – максимальное значение j-го параметра.
;
4) Вычислим оценочную функцию :
;
Т.к. наименьшее, то AT91SAM7S64 будет оптимальным выбором.
2.1.1.2 Технические характеристики микроконтроллера AT91SAM7S64.
Характеристики микроконтроллера [2]:
· Содержит ядро процессора ARM7TDMI® ARM® Thumb®;
· Высокопроизводительная 32-разр. RISC-архитектура;
· Обширный набор 16-разр. инструкций;
· Лидер по соотношению производительность/энергопотребление;
· Встроенное ядро внутрисхемной эмуляции с отладочным коммуникационным каналом;
· Внутренняя высокоскоростная флэш-память размером 64 кбайт и организацией 512 страниц по 128 байт в каждой
§ Однотактный доступ при частотах до 30 МГц. Упреждающий буфер оптимизирует выполнение Thumb-инструкций при максимальном быстродействии;
§ Время программирования страниц: 4 мс, в т.ч. автоматическое стирание страницы; время полного стирания: 10 мс;
§ 10,000 циклов записи, 10-летний срок хранения данных, функции защиты секторов, бит защиты флэш-памяти;
§ Интерфейс быстрого программирования флэш-памяти для серийного производства;
§ 16 кбайт внутреннего высокоскоростного СОЗУ, однотактный доступ при максимальном быстродействии;
· Контроллер памяти (MC)
§ Встроенный контроллер флэш-памяти, определение некорректного доступа и формирование статуса ошибки;
· Контроллер сброса (RSTC)
§ Состоит из схемы сброса при подаче питания и схемы детектора снижения напряжения питания с откалиброванным в заводских условиях порогом;
§ Выполняет обработку внешнего сигнала сброса и формирует информацию об источнике сброса;
· Тактовый генератор (CKGR)
§ Маломощный RC-генератор, встроенный генератор частот от 3 до 20 МГц;
§ Одна схема ФАПЧ;
· Контроллер управления энергопотреблением (PMC)
§ Возможность программной оптимизации энергопотребления, в т.ч. с использованием режимов пониженного быстродействия (Slow Clock), возможно снижение частоты до 500 Гц) и режим холостого хода (Idle);
§ Три программируемых внешних тактовых сигнала;
· Усовершенствованный контроллер прерываний (AIC)
§ Индивидуальное маскирование, восемь уровней приоритетов, векторизованные источники прерываний;
§ Два внешних источника прерывания + один внешний источник прерывания с быстрым реагированием, защита от ложных прерываний;
· Блок отладки (DBGU);
§ 2-пров. УАПП + поддержка прерывания по отладочному коммуникационному каналу, программируемое предотвращение доступа со стороны внутрисхемного эмулятора;
· Интервальный таймер (PIT);
§ 20-разр. программируемый счетчик + 12 разр. счетчик интервалов;
· Сторожевой таймер (WDT)
§ 12-разр. программируемый счетчик с защитой ключом;
§ Выполняет сброс или генерирует запрос на прерывание системы;
§ Счетчик может быть остановлен, когда процессор находится в состоянии отладки или в режиме холостого хода;
· Таймер реального времени (RTT)
§ 32-разр. циклический счетчик с сигнализатором;
§ Работает от внутреннего RC-генератора;
· Один контроллер параллельного ввода/вывода (PIOA)
§ 42 программируемые линии ввода-вывода, мультиплексированные с двумя встроенными периферийными модулями;
§ Возможность генерации прерывания по изменению на входе любой линии ввода-вывода;
§ Индивидуально программируемые открытый сток, подтягивающий резистор и синхронизированный выход;
§ 11 канальный контроллер периферийных данных (PDC);
§ Один полноскоростной контроллер USB 2.0 (12 Мбит/сек), режим устройства;
§ Встроенный трансивер, встроенные конфигурируемые буферы FIFO емкостью 328 байт каждый;
§ Один синхронный последовательный контроллер (SSC);
§ Отдельные синхронизация и сигналы синхронизации кадра у каждого приемника и передатчика;
|
|
§ Поддержка аналогового интерфейса I2S, поддержка временного уплотнения;
§ Возможность высокоскоростной непрерывной передачи потока данных в 32-разр. формате;
· Два универсальных синхронных/асинхронных приемопередатчика (УСАПП)
§ Раздельные генераторы скорости связи, инфракрасная модуляция/демодуляция (IrDA);
§ Поддержка смарт-карт ISO7816 T0/T1, аппаратное подтверждение связи, поддержка RS485;
§ Полный интерфейс модема на УСАПП1;
· Последовательный периферийный интерфейс SPI с режимами ведущий/подчиненный
§ Программируемая длина данных от 8 до 16 бит, четыре внешних выхода выбора микросхем;
§ Один трехканальный 16-разр. таймер-счетчик (TC);
§ Три внешних тактовых входа, две линии универсального ввода-вывода на каждый канал;
§ Два ШИМ-генератора, режим захвата и генерации импульсов, возможность реверсирования счета;
§ Один четырехканальный 16-разр. ШИМ-контроллер (PWMC);
§ Один двухпроводной интерфейс (TWI);
§ Работает только в режиме ведущего, поддерживаются все двухпроводные ЭСППЗУ фирмы Atmel;
· Один 8-канальный 10-разр. аналогово-цифровой преобразователь, четыре канала мультиплексированы с линиями цифрового ввода-вывода;
· Граничное сканирование всех цифровых линий в соответствии со стандартом IEEE 1149.1 через интерфейс JTAG;
· Линии ввода-вывода совместимы 5В уровнями и обладают повышенной нагрузочной способностью, до 16 мА каждая;
· Источники питания
§ Встроенный стабилизатор напряжения 1,8 В с нагрузочной способностью до 100 мА для питания ядра и внешних компонентов;
§ Напряжение питания ввода-вывода VDDIO = 1,8В или 3,3В, отдельное питание флэш-памяти VDDFLASH = 3,3В;
§ Напряжение питания ядра VDDCORE = 1,8В (с детектором понижения напряжения);
§ Напряжение питании аналоговой схемы VDDANA = 3,3В;
· Статическая работа на частотах до 55 МГц при наихудших условиях работы: напряжение питания 1,65 В, температура 85°С.
2.1.2 Выбор стабилизатора напряжения
Согласно техническому заданию размеры устройства не должны превышать 55х30х15 мм. Из этого следует, что стабилизатор нужно выбирать в миниатюрном корпусе. Немаловажный параметр стабилизатора – падение напряжения на нем. Чем оно меньше - тем лучше. Важным критерием является цена устройства.
|
|
На украинском рынке представлены такие стабилизаторы напряжения: LM1117, IRU1117, MC33269.
Выберем один из них по матрице параметров (Таблица 2.2).
Таблица 2.2 – Параметры стабилизаторов напряжения
Стабилизатор | Падение напряжения, В | Макс. размер, мм | Цена, USD |
LM1117 | 1 | 7 | 0.9 |
IRU1117 | 1.2 | 7 | 0.6 |
MC33269 | 1 | 9 | 0.9 |
Коэф. важности | 0.4 | 0.4 | 0.2 |
1) ;
2) Составим матрицу приведенных параметров:
- если большее значение параметра соответствует лучшему качеству ИМС, то ;
- если параметр не удовлетворяет этому условию, то .
;
3) Составим матрицу нормированных параметров A:
,
где – максимальное значение j-го параметра.
;
4) Вычислим оценочную функцию :
;
Т.к. наименьшее, то LM1117 будет оптимальным выбором.
2.2 Описание работы схемы
Питание +5 В и сигнал интерфейса USB поступает с разъема XS1. Резистор R1 подтягивает линию USB D+ на +3,3 В (для автоматического определения скорости устройства хостом). Дроссели L1-L5 используются для подавления высокочастотных помех. Конденсаторы С3, С5, С6 и резисторы R2, R3 представляют собой стандартную схему фильтрации сигналов USB. После фильтров сигнал USB поступает в микроконтроллер AT91SAM7S64 DD1.
Схема питания, генерирующая +3,3 В, собрана на линейном стабилизаторе напряжения LM1117-3.3 DA1, диоде Шотки VD1, предотвращающем обратные токи, и блокировочных конденсаторах С1, С2, С4.
Конденсаторы С7, С9 и резистор R4 это цепочка, необходимая для работы ФАПЧ (PLL) микроконтроллера.
Конденсаторы C12, C13 совместно с кварцевым резонатором ZQ1 представляют собой колебательный контур, задающий частоту генератора, встроенного в микроконтроллер.
C8, C10, C11, C14, С15, С16, С17, С18, С19, С20, С21, С22 – это блокировочные конденсаторы по питанию микроконтроллера.
При включении устройства в порт USB, микроконтроллер инициализирует внутренние регистры, настраивает ФАПЧ и проводит процесс энумерации USB устройства. Далее проходит процедура инициализации алгоритма Blowfish и программа микроконтроллера входит в цикл ожидания команд от хоста.