Дипломная работа: Подсистема шифрования системы условного доступа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Reg_Key (2 регистра по 32 бит) - регистр ключа. В данный регистр, программа записывает 64 битный ключ, используемый при шифровании/дешифровании блока данных с помощью алгоритма DES.

Рисунок 3.8 - Регистр ключа

Reg_Com_Out (8 бит) - регистр команды для удаленной станции. Используется для формирования командных кадров протокола связи.

Рисунок 3.9 - Регистр команды отправления

Reg_Com_In (8 бит) - регистр команды от удаленной станции. В данный регистр записывается команда принятая в кадре без ошибок, которую анализирует программа пользователя.

Рисунок 3.10 - Регистр принятой команды

Блок DES_scrambler представляет собой шифратор/дешифратор алгоритма DES. Управляется сигналами Start (сигнализирует о начале выполнения операции над блоком данных из 64 бит) и Mode (задет режим работы: 0 - режим шифрования, 1 - режим дешифрования). О завершении процедуры шифрования данных блок сигнализирует сигналом EncryptData_Ok, что сигнализирует о готовности данных для следующего этапа преобразования. Завершение этапа дешифрования данных блок сигнализирует сигналом Wr_mem, по которому данные записываются в ячейку памяти по адресу, выставленному в регистре адреса - Reg_Adr.

Блок Coder_Frame выполняет функцию вычисления контрольной 16-битовой последовательности проверки в соответствии с алгоритмом CRC16 для информационных либо командных кадров (задается Control_Unit), которая добавляется к концу кадра для контроля правильности приема данных удаленной станцией.

Блок Decoder_Frame выполняет вычисление последовательности проверки принятого кадра по алгоритму CRC16 и сравнивает вычисленное значение с 16 битами в конце принятого кадра. Если значения равны - вырабатываются сигналы ComFrameOk (принят командный кадр без ошибки) или InfFrameOk (принят информационный кадр без ошибки), сообщающие модулю управления об успешном принятии кадра. В противном случае вырабатываются сигналы ComFrameErr (принят командный кадр с ошибкой) или InfFrameErr (принят информационный кадр c ошибкой).

Assembler_frame - этот модуль выполняет функции окончательного формирования и выдачи информационного (команда TxInfFrame) либо управляющего (команда TxComFrame) кадра в последовательной форме DataFrameTx в сопровождении тактового сигнала ClkTx. По сигналам InfFrame_Load и ComFrame_Load загружаются в сдвиговые регистры соответственно поле информационного кадра или поле командного кадра.

Disassembler_frame - блок принимает последовательные данные DataFrameRx в сопровождении тактового сигнала ClkRx. При обнаружении флагов командного или информационного кадра вырабатывается сигнал ComFrame_In или InfFrame_In соответственно, что сигнализирует блоку Decoder_Frame о необходимости вычисления соответствующей контрольной последовательности.

Буфер принимаемых/передаваемых данных - BUF_IN_OUT - представляет собой блок двухпортовой памяти. Со стороны контролера Bluetooth к нему можно обращаться по 32-битной шине, содержит 512 двойных слов по 32 бита. Со стороны шифратора/дешифратора DES по 64-битной шине. Такая реализация обусловлена тем, что контролер Bluetooth оперирует двойными словами по 32 бит, а шифратор DES блоками данных по 64 бит. На рисунке 3.11 приведена структура буфера приема передачи.

Рисунок 3.11 - Структура памяти со стороны программы пользователя и со стороны блока шифрования

Bluetooth_Control - контроллер Bluetooth.

Блоки Bluetooth_Control, Control_Unit, BUF_IN_OUT, DES_scrambler и все регистры - тактируются восходящим фронтом тактового сигнала Bluetooth контролера - CLK_Bluetooth - 33МГц. С другой стороны, блоки Assembler_Frame, Disassembler_Frame тактируются восходящим фронтом внешнего тактового сигнала радиомодема - Clk_M. В нашем случае 1МГц. Таким образом, сигналы ComFrameOk, ComFrameErr, InfFrameOk, InfFrameErr, TxOk являются асинхронными по отношению к управляющему автомату. Возникает опасность возникновения метастабильного состояния триггеров управляющего автомата . Эта ситуация возникает тогда, когда асинхронный сигнал изменяется в момент восходящего фронта тактового импульса CLK_Bluetooth (рисунок 3.12). Выход триггера становится неопределенным. Нарушается логика работы управляющего автомата.

Рисунок 3.12 - Временная диаграмма

На рисунок 3.13 приведена схема, позволяющая уменьшить вероятность появления метастабильных состояний.

Рисунок 3.13 - Схема, уменьшающая вероятность появления метастабильных сигналов

На схеме два триггера - один в управляющем автомате, второй вне его. Оба тактируются сигналом CLK_Bluetooth. Асинхронный сигнал при этом запаздывает на один такт. Когда частота асинхронного сигнала совпадает с тактовой частотой CLK_Bluetooth, выход первого триггера находится в метастабильном состоянии. До начала нового такта первый триггер выходит из метастабильного состояния в какое-либо определенное состояние, и в случае, когда его новое состояние соответствует состоянию сигнала на входе, асинхронный сигнал запаздывает на один такт синхронизации. В худшем случае асинхронный сигнал запаздывает на два такта (рисунок 3.14).

Рисунок 3.14 - Появление метастабильного состояния и реакция на него

Данное решение на практике исключает появление неопределенных сигналов в системе. Следовательно, сигналы ComFrameOk, ComFrameErr, InfFrameOk, InfFrameErr, TxOk необходимо заводить в блок Control_Unit через D-триггера.

3.3 Проектирование блока управляющего автомата

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

Обычно, конечный автомат состоит из трех основных частей:

1. Регистр текущего состояния. Этот регистр представляет собой набор тактируемых D-триггеров, синхронизируемых одним синхросигналом, и используется для хранения кода текущего состояния автомата.

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

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

Для обеспечения стабильной и безотказной работы используется сброс автомата в начальное состояние.

Возможный алгоритм работы блока Control_Unit может иметь вид, соответствующий схеме переходов автомата, приведенной на рисунок 3.15. На схеме под именем состояния автомата перечисляются имена сигналов, активизируемых (или сбрасываемых) в этом состоянии. Например, сигнал RX принимает значение 1 в состоянии ReciveFrame. На дугах указываются выражения определяющие переход в другое состояние, ниже перечисляются сигналы обусловленные выполнением этого выражения. Например, и состояния ReciveFrame автомат перейдет в состояние WaitAnswPC при входном сигнале ComFrameErr=1, при этом выходной сигнал ErrCom примет значении 1.

Автомат может находиться в пяти состояниях:

- Idle - режим покоя, при котором устройство ничего не передает и ничего не принимает, все выходные сигналы автомата устанавливаются в 0;

- ReciveFrame - режим, при котором разрешается прием кадров (как информационных, так и командных) от удаленной станции;

- WaitAnswPC - режим, при котором автомат ожидает инструкций по дальнейшим действиям от управляющей программы ПК;

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

- TransmitFrame - передача данных в последовательной форме непосредственно на модулятор для передачи удаленной станции.

Рисунок 3.15 - Граф-схема переходов автомата управления Control_Unit

Например, при инициализации устройства в системе компьютера, его управляющий автомат попадает в режим Idle, при котором все выходы равны нулю. Далее, от устройства поступает команда - войти в подчиненный режим, то есть когда станция ожидает команды на соединения от удаленной станции для приема информации. Для этого в регистре управления бит Reset устанавливается в 1 (активный уровень этого сигнала - 0) и бит Slave устанавливается в 1. Устройство попадает в режим ReciveFrame, при этом активирует сигнал RX=1 (тем самым разрешается тактирование сдвиговых принимающих сдвиговых регистров). Как только дизассемблер кадров декодирует информационный или управляющий кадр, запускается блок вычисления контрольной последовательности (декодер кадра CRC16) и результат передается управляющему автомату Control_Unit с помощью соответствующих сигналов сигнализирующих о принятии информационного или управляющего кадра с ошибкой или без. Автомат вырабатывает прерывание IntA, переходит в состояние WaitAnswPC и ожидает реакции терминальной программы, которая при возникновении прерывания считывает регистр статуса и выполняет соответствующие действия. Например, пришел командный кадр без ошибок, следовательно, флаг OkCom будет установлен в 1. Программа пользователя, обрабатывая прерывание, прочитает регистр статуса и примет решение о необходимости прочитать регистр принятой команды, для выработки ответных действий. В нашем примере там должна находится команда, запрашивающая соединение на прием информации. Далее, терминальная программа формирует ответный командный кадр записывая команду в соответствующий регистр, и после это записывает соответствующий код в регистр управления. Автомат переход в состояние CreateDataForTransmit. Как только данные будут загружены ассемблер кадров, выработается сигнал ComFrame_Load (см. функциональную схему) и автомат перейдет в состояние TransmitFrame в котором будет активизирована процедура выдачи сформированного кадра в последовательной форме на модулятор. Как только кадр будет передан, сигнал TxOk примет значение 1, и автомат перейдет в состоянии ReciveFrame, для ожидания ответа от удаленной станции. Более подробно процедуры передачи/соединения рассмотрены в разделе 6.1 описания протокола связи.

Описывающая автомат программа на языке VHDL приведена в приложении.

В основе работы автомата лежит использование двух сигналов pres_state и next_state. Первый соответствует выходным сигналам регистра состояния, а второй - выходным сигналам блока комбинационной логики следующего состояния. Сигналы относятся к объявленному перечислительному типу state_values и заданы списком имен состояний. Архитектурное тело автомата содержит три параллельных оператора процесса.

Запуск процесса “clocked” определяется изменением двух сигналов reset и clk. Сигнал сброса устанавливает в исходное состояние все триггеры автомата. Тактовый сигнал обеспечивает перепись в триггеры регистров состояний выходов блоков комбинационной логики. Изменения состояний происходят в момент появления нарастающего фронта сигнала clk.

Следующий процесс, имеющий имя “nextstate”, описывает требуемое поведение комбинационной логики следующего состояния для всех переходов автомата. Приоритет выполнения условий в операторе if задается последовательностью записи условий. Список чувствительности процесса содержит перечисление сигналов, определяющих работу логики, включая текущее состояние автомата pres_state.

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

На рисунке 3.16 приведена мегафункция модуля Control_Unit, сформированная средствами САПР Active-HDL 6.3 по соответствующему описанию VHDL.

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

Рисунок 3.16 - Блок управляющего автомата Control_Unit

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

В качестве контроллера Bluetooth будем использовать разработку фирмы Atmel - AT76C551 - однокристальный Bluetooth контроллер со встроенным RISC процессором ARM7TDMI .

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

- беспроводные сетевые платы

- мобильные телефоны

- настольные и портативные ЭВМ

- пэйджеры

- цифровые камеры

- PDA

- беспроводные периферийные устройства для ПК (принтеры и т.д.)

На рисунке 3.17 приведена блок-схема контролера.

Рисунок 3.17 - Блок-схема Bluetooth контролера AT76C551

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

- отвечает техническим требованиям Bluetooth для радиосвязи на малые расстояния в 2.4 ГГц частотном диапазоне ISM

- обеспечивает групповую скорость передачи данных 1 Мбит/с

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

- обеспечивает аппаратурную обработку РЧ сигналов в соответствии с требованиями Bluetooth к непосредственной коррекции ошибок (FEC), коррекции ошибок заголовков(HEC) и контролю четности при кодировании/ декодировании

- встроенный RISC процессор ARM7TDMI

- Встроенный интерфейс обмена данными с SRAM, поддерживающий работу с памятью до 256 кБайт

- встроенный UART 16550 с 32 байтным буфером FIFO и программируемой скоростью обмена данными

- программируемый 8/ 16 битный интерфейс обмена данными с памятью

- поддержка ряда частот задающего генератора (13.000, 14.400, 16.800, 19.440 МГц)

- 176 выводной LQFP корпус

- 3.3 В питание

AT76C551 - однокристальный контроллер, предназначенный для организации высокоскоростной передачи данных по радиоканалу на малые расстояния в разрешенном радиочастотном диапазоне ISM. Вместе с 2.4 ГГц приемопередатчиком прибор позволяет построить высококачественную широкополосную систему передачи цифровых данных между компьютерами и периферийными устройствами. Интегрирование устройства в систему упрощается из-за наличия в приборе трех различных интерфейсов: USB, 16550 UART и PCMCIA (соответствующего техническим требованиям PC Card 95). Дополнительно, прибор содержит кофидек для преобразования сигналов от микрофона и для выходного УНЧ.

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

Источник: https://otherreferats.allbest.ru/download/1020334/