1.5. Построение результирующих
иерархических моделей терминала и выделенных узлов сети (в соответствии с
концепцией OSI)
с отражением путей доставки служебных, так и информационных сообщений.
Иерархическая модель OSI отражает поэтапную реализацию
услуги: от интерфейса пользователя до физического уровня. Каждый уровень модели
предназначен для выполнения ряда задач. Для решения каждой задачи используются
службы. Каждая служба определенного уровня обращается с запросом к службам
нижестоящего уровня. Результат выполнения задач предоставляется службам
вышестоящего уровня.
Для выполнения задач поставленных перед разрабатываемой
сетью, на основе эталонной модели синтезирована иерархическая модель узлов сети
(рис. 1), включающая в себя следующие уровни:
-физический уровень;
-канальный уровень с двумя подуровнями: подуровень
управления доступом к среде МАС и подуровень управления
доступом к каналу САС;
-верхний уровень (уровень принятия
решений).
Рис. 1 - Иерархическая модель терминала
сети
Физический
уровень – это самый нижний уровень системы, который отвечает за
непосредственный передачу (прием) сигнала в (из) радиоканал(а). Здесь же
определяются требования к соединениям, разъёмам, электрическому согласованию,
заземлению, защите от помех.
Канальный уровень отвечает за формирование
пакетов стандартного вида, адресную доставку сообщений и контроль правильности
приема. Здесь производится управление доступом к сети, обнаруживаются ошибки
передачи. МАС-подуровень реализует набор протоколов,
которые обеспечивают безопасность, маршрутизацию, энергосберегающие функции и
обмен данными с протоколами вышележащих уровней. САС-подуровень описывает процедуру доступа к
общему каналу связи. Сначала МАС-уровень формирует и передает пакет L1 уровню САС. Уровень CAC начинает процедуру конкурентной борьбы и
получения доступа к физическому каналу связи. В разрабатываемой сети доступ к КС осуществляется
на основе протокола CSMA (см. пункт 1.3.2).
Уровень
принятия решений является управляющим ядром узла сети. Он обрабатывает данные
полученные с нижних уровней и принимает решения на основе анализа этих данных.
Например, он обрабатывает данные радиоизмерений и передает на физический уровень
команды о выборе профиля передачи и регулировки мощности. А так же, на ряду с пользовательским устройством, он может
являться источником служебных сообщений.
С уровня принятия
решений на канальный уровень поступают управляющие команды, которые необходимы
для служебных сообщений (например, когда пользователь регистрируется в сети, Т
оповещает ТД о том, что он есть и борется для этого за канал). От пользователя
поступают информационные данные для передачи, на канальном уровне к этой
информации добавляется поле начала пакта, поле определения типа сообщения, CRC-16 и 7 хвостовых битов для обнуления
сверточного кодера для следующего пакета. Сформированное сообщение передается
на физический уровень.
2. Экспериментальная часть.
Разработка и экспериментальное исследование программной модели канала передачи
данных.
Разрабатываемая модель будет
осуществлять передачу информационного сообщения по каналу TCH, необходимому для
непосредственной передачи данных, от терминала ТД.
Рис. 2 - Структура передаваемого
сообщения
Приведенная ниже блок - схема
(Рис.3) отражает передачу сообщения и его последующий прием.
Передача:
Сверху, с уровня принятия решений
передается информационный блок, при формирование пакета канального уровня, в
начало пакете добавляется последовательность, показывающие именно начало(поле FL ), определяется и добавляется к
пакету тип (поле type).
Далее добавляется информационная часть и адреса получателя и отправителя. В итоге
для полученного пакета выполняется расчет CRC-16, для проверки в приемной
стороне произошла ошибка или нет. В самом конце формирования добавляется поле tail, которое показывает что пакет
закончен, и весь полученный пакет отправляется на физический уровень.
Прием:
Полученный пакет, ищется по полю FL, которое показывает что именно тут
начинается пакет, далее выделяется информационная составляющая, по которой
происходит расчет CRC-16.
Как только произвели, расчет полученный и принятый CRC сравниваются,
если они совпали выделяется информация, и отправляется выше, а если нет, то
формируются отчет, что принятый пакет принят с ошибкой, и его необходимо
передать еще раз.
Рис. 3 - Блок - схема алгоритма передачи и приема на КУ
Листинг №1:
function [ type_rcv,
adrt_rcv, adrr_rcv, num_rcv, data_rcv, crcFlag ] = l2_func( type, adrt, adrr,
num, data ) %% % type - Тип сообщения % adrt - Адрес отправителя % adrr - Адрес получателя % num - Номер пакета % data - Информация % _rcv - принятые поля % crcFlag - флаг результата проверки контрольной суммы % 1 - CRC совпадают, 0 - CRC не совпадают %% Инициализация параметров % Параметры для ФУ (см. функцию ФУ для описания) global mProfile; % Профиль передачи global SN; % ОСШ global showImg; % Показ изображений
% Полином CRC-16 кода poly = [ 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 ]; %== Канальный уровень передатчика ==%
%% Формирование полей пакета L2 fl = [ 1 0 1 0 1 ]; % Начало пакета L2 if type == [ 0 0 0 0 ] % Определение базового типа сообщения для ФУ basicType = 0; else basicType = 1; end; inf_block = [ type adrt adrr num data ]; crc = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]; % Подготовка поля CRC tail = [ 0 0 0 0 0 0 0 ]; % Поле нулей для сверточного кодера % Расчет CRC [ z, x ] = deconv( [ inf_block crc ],
poly ); x = mod( abs( x ), 2 ); crc = x( (end - length( crc ) + 1):end ); % Окончательное формирование пакета L2 L2_msg = [ fl inf_block crc tail ];
%% %== Физический уровень ==% [ L2_msg_rcv ] = phy_lvl( L2_msg, basicType, mProfile, SN, showImg ); %% %== Канальный уровень приемника ==% % Выделение пакета L2 L2_msg_rcv = L2_msg_rcv( 8:end ); fl_rcv = L2_msg_rcv( 1:length( fl ) ); inf_block_rcv = L2_msg_rcv( length( fl )
+ ( 1:length( inf_block ) ) ); crc_rcv = L2_msg_rcv( length( fl ) +
length( inf_block ) + ( 1:length( crc ) ) );
%% Проверка пакета на наличие ошибок [ z x ] = deconv( [ inf_block_rcv crc_rcv ], poly ); % Проверка остатка x = mod( abs( x ), 2 ); if x == zeros( 1, length( [ inf_block_rcv
crc_rcv ] ) ) % 'Сhecksum correct.' crcFlag = 1; else % 'Сhecksum incorrect.' crcFlag = 0; end; %% Выделение информационного блока type_rcv
= inf_block_rcv( ( 1:length( type ) ) ); % Тип сообщения adrt_rcv = inf_block_rcv( length( type )
+ ( 1:length( adrt ) ) ); % Адрес
отправителя adrr_rcv = inf_block_rcv(
length( type ) + length( adrt ) + ( 1:length( adrr ) ) ); % Адрес получателя num_rcv = inf_block_rcv(
length( type ) + length( adrt ) + length( adrr ) + ( 1:length( num ) ) ); % Номер пакета data_rcv = inf_block_rcv(
length( type ) + length( adrt ) + length( adrr ) + length( num ) + (
1:length( data ) ) ); % Информация end |
Используемая литература:
1 . Бакке А.В. "Лекции по курсу: Системы и сети связи с подвижными объектами";
2. Скляр Б. "Цифровая связь";
3. http://omoled.ru/publications/view/831;
4. Курсовой проект "Локальная радиосеть" Савко Виктор;
5. http://citforum.ru/nets/tpns/glava_4.shtml.