- •Теоретическая часть
- •Архитектура сетей gsm
- •Р ис.2.3. Последовательность обработки речевой информации
- •Речевой кодек
- •Циклическое кодирование и переупорядочение
- •Сверточное кодирование
- •Перемежение
- •Шифрование
- •С хема шифрования а5
- •Формирование tdma-кадра
- •Р ис. 2.2. Структура tdma – кадра
- •Последовательность выполнения
- •Определение числа испытаний.
- •Последовательность выполнения лабораторной работы:
- •В качестве результатов лабораторной работы представить:
Формирование tdma-кадра
Как отмечалось выше, в стандарте GSM принят многостационный доступ с временным разделением каналов (TDMA). Для передачи информации по каналам связи и управления используется информационный TDMA - кадр, который делится на восемь временных интервалов (временных окон) (см. рис. 2.2). Надо отметить, что каждый из восьми временных интервалов отвечает за свой логический канал. Это означает, что в пределах одного информационного TDMA - кадра информацию могут передавать до восьми абонентов сотовой связи в полноскоростном режиме передачи или до 16 - в полускоростном.
Для передачи информации по каналам связи используется 5 видов временных интервалов (окон):
NB – нормальный временной интервал
FB – временной интервал подстройки частоты
SB – интервал временной синхронизации
DB – установочный интервал
AB – интервал доступа
Р ис. 2.2. Структура tdma – кадра
Каждый из восьми нормальных временных интервалов (NB) состоит из 114 бит зашифрованного сообщения и включает в себя защитный интервал (GP) в 8,25 бит.
Так как в каждом временном интервале передается 114 бит зашифрованных информационных данных, то один информационный TDMA- кадр несет в себе 114 х 8=912 бит зашифрованной посылки.
Информационный блок разбит на два самостоятельных блока по 57 бит, разделенные между собой обучающей последовательностью в 26 бит, которая используется для установки эквалайзера в приемнике в соответствии с характеристиками канала связи в данный момент времени.
В состав NB также включены два контрольных бита, которые служат признаком того, содержит ли передаваемая группа речевую информацию или информацию сигнализации.
При приеме из каждого из восьми окон TDMA-кадра извлекаются 114 бит зашифрованной информации.
-
Последовательность выполнения
Для выполнения лабораторной работы необходимы следующие файлы:
1) GSM900.exe
2) codec.dll -модель речевого кодека(преобразование оцифрованного звукового сигнала (8кГц, 16 бит) в поток символов со скоростью 13 кбит/сек.) Т.е. осуществляет сжатие данных: каждые 160 16-ти разрядных слов преобразует в 260 разрядов.
3) cw3230.dll -библиотека Borland C++ 5.0
4) cycle.dll - Циклическое кодирование разрядов класса '1а' с формирующим полиномом вида g=1+d+d^3 и переупорядочение
5) svertka.dll -Сверточное кодирование разрядов класса '1' c формирующими полиномами вида: g1=1+d^2+d^3+d^4
g2=1+d+d^4
6) reform.dll -Переупорядочение,разбиение на пакеты и перемежение пакетов
7) crypt.dll -Шифрование данных по алгоритму А5
8) crtframe.dll -Формирование кадра нормального временного интервал (NB)
9) любые файлы *.WAV, созданные с помощью программы Фонограф Microsoft Windows 95 в формате PCM 8000 Гц; 16 бит; Моно
!!!! Библиотеки функций (4)-(8) предлагаются для самостоятельной разработки!!!!
Заголовки функций, экспортируемых библиотеками:
CYCLE.dll
procedure CycleCode(var x:mas267;var u:mas267); stdcall; export;
//Цикл.код битов класса '1а'и переупорядочение.
//х:входной массив,содержит инф.в разрядах 0..259,
//u:выходной массив,содержит инф.в разрядах 0..266.
procedure CycleCode_1(var u:mas267;var x:mas267;var IsError:boolean); stdcall; export;
//Распаковка цикл.кода и восстановление порядка
//следования разрядов.
//u:входной массив,содержит инф.в разрядах 0..266,
//х:выходной массив,содержит инф.в разрядах 0..259.
//IsError = True если обнаружены ошибки.
SVERTKA.dll
procedure Svertka(var x: mas267;var c: mas456); stdcall; export;
//Сверт.код разрядов класса '1'
//х:входной массив содержит инф.в разрядах 0..266.
//с:выходной массив содержит инф.в разрядах 0..455
//(4 кадра по 114 разрядов).
procedure Svertka_1(var с:mas456;var x:mas267); stdcall; export;
//Распаковка сверт.кода при приеме.
//с:входной массив содержит инф.в разрядах 0..455.
//(4 кадра по 114 разрядов).
//х:выходной массив содержит инф.в разрядах 0..266.
REFORM.dll
procedure Reform(var x: mas456;var b: mas456); stdcall; export;
//Разбиение на пакеты и перемежение пакетов.
//х:входной массив содержит инф.в разрядах 0..455.
//b:выходной массив содержит инф.в разрядах 0..455
//(4 кадра по 114 разрядов).
procedure Reform_1(var b:mas456;var x:mas456); stdcall; export;
//Деперемежитель
//х:входной массив содержит инф.в разрядах 0..455.
//b:выходной массив содержит инф.в разрядах 0..455
//(4 кадра по 114 разрядов).
CRYPT.dll
procedure CryptA5(var bin, bout: mas456;var A5:TA5;
var NFrame: TFrame); stdcall; export;
//Шифрование данных по алгор.А5
//bin:входной массив(открытые данные)
//(4 кадра по 114 разрядов).
//bout:выходной массив(закрытые данные)
//(4 кадра по 114 разрядов).
//A5:объект для работы с закрытым ключем
//(описан в файле A5.pas)
//NFrame:текущий номер кадра(открытый ключ)
//(описан в файле Frame.pas)
// При первом вызове процедуры NFrame.GetKeyN=0
// Последующие изменения параметра NFrame должны
// осуществляться в теле процедуры.
//Необходимо получить секретную и несекретную
//последовательности и наложить их (xor) на исходный
//информационный кадр(bin).
//Результат работы ф-ции - массив bout.
procedure CryptA5_1(var bin, bout: mas456;
var A5:TA5;
var NFrame: TFrame); stdcall; export;
//Дешифрование данных по алгор.А5
//bin-входной массив(зашифрован)
//bout-выходной массив
//A5:объект для работы с закрытым ключем
//(описан в файле A5.pas)
//NFrame:текущий номер кадра(открытый ключ)
//(описан в файле Frame.pas)
// При первом вызове процедуры NFrame.GetKeyN=0
// Последующие изменения параметра NFrame должны
// осуществляться в теле процедуры.
CRTFRAME.dll
procedure CreateFrame(var b :mas456; var pack :mas592); stdcall; export;
//Формирование NB-кадра (нормальный временной
//интервал)
procedure CreateFrame_1(var pack :mas592; var b:mas456); stdcall; export;
//Распаковка NB-кадра.
P.S.
1.В каждую библиотеку необходимо включить файл Types.pas - описание всех типов, используемых в программе.
2.В библиотеку crypt.dll также необходимо включить файлы A5.pas и Frame.pas - описания классов для работы с закрытым и открытым ключами соответственно.