Радиосеть
передачи данных
Часть 3
(Канальный уровень)
Выполнил:
ст. гр.
№ 319
Филатов
А.В.
Тема работы:
«Радиосеть передачи
данных»
Часть 3(Канальный уровень).
Выполнил:
Студент группы 319
Филатов А.В.
Исходные данные к работе:
·
Максимальное количество активных
абонентов в сети: 50
·
Радиус зоны обслуживания: 80 м
·
Гарантируемая скорость передачи данных:
0.1 Мбит/с
·
Тип местности: городская застройка
·
Вероятность ошибки на бит, не более Pb:
10-6
·
Мощность излучения подвижной станции
Ризл : < 0,1 Вт
·
Рекомендуемая технология передачи: OFDM
·
PR: 75%
·
Диапазон частот, вид модуляции
выбирается самостоятельно.
Целью данной курсовой работы является разработка системы
обеспечивающей высокоскоростную передачу данных между подвижными объектами без
помощи выделенных сетевых узлов. Каждый терминал сети должен получать в
реальном масштабе времени информацию о других активных терминалах и иметь
возможность обмена сообщениями с любым из них.
1.7.
Построение результирующих иерархических моделей терминала и выделенных узлов
сети (в соответствии с концепцией OSI) с отражением путей доставки служебных,
так и информационных сообщений.
В
данной работе будут рассмотрены три нижних уровня базовой сетевой модели, а
именно физический(L1), канальный(L2) и сетевой(L3).
Иерархическая
модель терминала сети представлена на рис.1.
Рисунок 1 -
иерархическая модель терминала сети
L1 (физический уровень) в данной сети
предназначен для обеспечения приема/передачи потока
битов с заявленной скоростью и достоверностью, также на физическом уровне
проводятся радиоизмерения, которые передаются на L3 уровень,
где происходит принятие решений и
передача значения уровня необходимой мощности на L1 уровень.
L2(канальный уровень) -предназначен для
обеспечения адресной доставки сообщений, проверки целостности данных и
приведению сообщений к единому стандарту в рамках функционирования терминала в
сети.
Во
время передачи L2 уровень осуществляет
группировку потоков битов в кадры, после чего добавляются служебные поля, соответствии
со структурой кадра.
Если
это видео трафик, то он изначально накапливается в буфере, для последующей
передачи. Буфер в данном случае выполняет роль временного хранения трафика для
последующей передачи, это сделано для того, чтобы передающийся трафик воспроизводился
непрерывно на командном узле.
Если
это служебные сообщения, то они попадают на блок добавления служебной
информации, далее рассчитывается CRC и происходит
компоновка фрейма.
Расчет CRC выполняется для всех сообщений кроме
сообщений трафика
L3– предназначен для
обеспечения маршрутизации сообщений, применения параметров и передачи
информации о них на нижние уровни. В разрабатываемой сети основными
задачами L3 является выбор маршрута передачи сообщений, так, как
проектируемая сеть не имеет специально выделенного сетевого узла. Сетевой
уровень также отвечает за своевременное обновление маршрутной информации, ввиду
мобильности терминалов.
На этом
уровне терминал принимает решение о выборе оптимального маршрута для передачи
трафика. Критериями выбора/перевыбора маршрута являюются число хопов и данные
радиоизмерений.
2.1. Разработка и описание блок-схемы алгоритма
модели.
Рисунок 2 –
блок-схема алгоритма передачи сообщения
Для каждого типа
сообщений имеется свой алгоритм передачи.
При передачи сообщений трафика заполняются следующие поля: тип
сообщения, адреса, временная метка, data и End.Расчет CRC при передаче
сообщений трафика не производится.
При передаче команд управления следующие поля:тип сообщения, адреса ,length,data,
CRC,extra.
При передаче широковещательный сообщений формируются следующие поля
:тип сообщения,data, адрес
терминала-источника трафика и CRC.
Блок-схема
алгоритма приема сообщения представлена на рис. 3.
После
приема потока битов с L1,происходит выделение
типа сообщения.Выбирается соответствующий алгоритм декодирования сообщения. В соответствии с алгоритмом декодирования
сообщения , осуществляется контроль целостности сообщений и в случае
неравенства контрольных сумм выводится сообщение об ошибке(при приеме сообщений
BCCH ). В противном
случае, производится отправка сообщения на L3.
На L3 из сообщения извлекаются данные.
Рисунок 3 –
блок-схема алгоритма приема сообщения
Практическая реализация приема/передачи
широковещательного сообщения:
Терминал T1 после
прослушивания КИ обнаружил широковещательное сообщение от T2.
T1 формирует свое широковещательное
сообщение и передает в своем КИ (Листинг1).
В свою очередь Т2 , прослушивая КИ, обнаружил широковещательное
сообщение. Декодировал его и добавил в таблицу маршрутизации информацию о Т1 и
начал передавать свое широковещательное сообщение.(Листинг2)
Листинг1
clc; clear all; %%
исходные данные % Определение структуры пакета
L2 poly= [1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1
0]; % полином для расчета контрольной суммы LengCMD=324; % длинна
сообщений BCCH и SACCH LenTCH=409660;% длинна сообщения TCH %%
Определение типов сообщений bcch=[1 1]; % тип сообщения BCCH sacch=[0 1]; % тип сообщения SACCH tch=[0 0]; % тип сообщения TCH %%
Таблицы маршрутизации myid=[1 0 1 1 0 1]; % ID терминала "заявляющего
о себе" T1 id =[ 0 0 0 0 1 1 ]; % ID
терминала, доступного для радиообмена T2 gaetway=[0]; % Адрес
терминала-ретранслятора (0 - нет ретрансляций) metric=1; % Метрика маршрута (1 -
при отсутствии ретрансляций) %% Создание сообщения L3 уровня messegeBCCH=zeros(1,LengCMD); % заготовка нулевого вектора для записи фреймов messegeBCCH(1:2)=bcch; % Запись типа сообщения
messegeBCCH(3:2+length(myid))=myid;
% Запись совего ID disp('Т1: создание сообщения L3
завершено'); messegeBCCH(3+length(myid):length(myid)+length(myid)+2)=id; %
Запись соседнего ID
%% расчет CRC cr=CRC(messegeBCCH(1:324-16)); %% сборка сообщения L2
messegeBCCH(LengCMD-15:LengCMD)=cr;
%добавление поля КС disp('T1:создание
сообщения L2 завершено'); disp('T1: сообщение передано на L1'); %pause; T2;
|
Листинг 2
%%
исходные данные % Определение структуры пакета
L2 LengCMD=324; % длинна
сообщений BCCH и SACCH LenTCH=409660;% длинна сообщения TCH poly= [1 0 0 0
1 0 0 0 0 0 0 1 0 0 0 1 0]; % полином для расчета контрольной суммы % Определение типов сообщений bcch=[1
1]; % тип сообщения BCCH sacch=[0
1]; % тип
сообщения SACCH tch=[0
0]; % тип
сообщения TCH %%
Таблицы маршрутизации myid=[0 0 0 0 1 1];% ID
терминала "заявляющего о себе" T2 id =[]; % ID терминала, доступного для
радиообмена (нет) gaetway=[]; % Адрес терминала-ретранслятора
(0 - нет ретрансляций) metric=[]; % Метрика маршрута (1 - при
отсутствии ретрансляций) %% прием сообщения type=messegeBCCH(1:2); % Выделение типа if
type==bcch %
Проверка типа сообщения disp('Т2: принято широковещательное
сообщение'); %%Расчет CRC crc=messegeBCCH(324-15:324); %Выделение значения расчитанной
контрольной суммы CRCReceive = CRC(messegeBCCH(1:324-16)); % Вызов функции расчета CRC %% Сравнение декодированного и принятого CRC if crc == CRCReceive % Проверка равенства контрольных сумм disp('T2: Целостность сообщения
сохранена'); else disp('T2: Ошибка приема сообщения!!!'); end
% pause; %% Выделение адреса источника сообщения Adr=messegeBCCH(3:2+6); %% Декапсуляция информационной части data=messegeBCCH(9:324-6); % Выделение L3 сообщения for i=1:50 T(i, 1:6) = data(1, ((i - 1)*6 + 1):(i*6) ); % Запись ID терминалов в виде таблицы end table(1,1:6)=Adr; % Запись
в таблицу маршрутизации ID терминала-передатчика BCCH disp('ID терминала-передатчика:'); disp(Adr); % pause; if T(1,1:6)== myid %
Проверка идентичности ID переданного с собственным metric=1; gaetway=('нет'); %
Обозначение терминала-ретранслятора disp('T2: терминал в зоне прямой
радиовидимости'); disp('Метрика маршрута:'); disp(metric); %
Обозначение метрики маршрута disp('Терминал-ретранслятор:'); disp (gaetway); end elseif type==tch; disp('Т2: принято сообщение
трафика'); elseif type==sacch; disp('Т2: принято сообщение
управления'); else disp('Т2: не удалось определить тип
сообщения'); end % pause; %% disp('T2:
Ожидание окончания кадров канала трафика и канала управления'); %% Начало передачи ответного сообщения messegeBCCH=zeros(1,LengCMD); %
заготовка нулевого вектора для записи фреймов messegeBCCH(1:2)=bcch; % Запись типа сообщения messegeBCCH(3:2+length(myid))=myid; % Запись совего ID disp('Т2: создание сообщения L3
завершено'); messegeBCCH(3+length(myid):length(myid)+length(myid)+2)=Adr; %
Запись соседнего ID %% расчет CRC
cr=CRC(messegeBCCH(1:324-16)); %% сборка сообщения L2
messegeBCCH(LengCMD-15:LengCMD)=cr;
%добавление поля КС disp('T2:создание
сообщения L2 завершено'); disp('T2: сообщение передано на L1'); %pause;
|
Практическое выполнение кода:
Т1: создание сообщения L3 завершено
T1:создание сообщения L2 завершено
T1: сообщение передано на L1
Т2: принято широковещательное сообщение
T2: Целостность сообщения сохранена
ID терминала-передатчика:
1 0 1
1 0 1
T2: терминал в зоне прямой радиовидимости
Метрика маршрута:
1
Терминал-ретранслятор:
нет
T2: Ожидание окончания кадров канала трафика и канала управления
Т2: создание сообщения L3 завершено
T2:создание сообщения L2 завершено
T2: сообщение передано на L1