1.4. Построение итоговой
иерархической модели узлов сети (в соответствии с концепцией OSI). В модели должны быть обязательно учтены
задачи доставки как служебных, так и информационных сообщений.
Эталонная
модель OSI делит задачу перемещения информации через среду распространения два
уровня и семь подуровней (рис.3.1). Каждая из этих семи «подзадач» выбрана
потому, что она относительно автономна и, следовательно, ее легче решить без
чрезмерной опоры на внешнюю информацию. Такое разделение называется
иерархическим представлением. Каждый из уровней модели отвечает за
выполнение определенных действий по подготовке информации к передаче по сети.
Рис.3.1. Модель
OSI
Рассмотрим уровни данной модели применимо к нашей системе и
решаемым ею задачам. В силу относительной несложности нашей системы, три
верхних уровня классической модели OSI – прикладной, представительский и
сеансовый – объединим в один уровень, который и будет представлять «мозги»
системы. На данном уровне будут решаться вопросы что, кому, как и когда
передавать (или принимать), будут приниматься все решения в системе. В связи с
этим дадим ему название: уровень принятия решений.
Следующий уровень в иерархии - транспортный. Он обеспечивает
надежный механизм обмена данными, контролирует отсутствие ошибок в принимаемых
данных, расположение пакетов в соответствующем порядке, их полноту. В нашей
системе описанный ниже канальный уровень поддерживает весьма мощный и
законченный набор функций по пересылке сообщений между узлами сети. В этом
отношении канальный уровень является самодостаточными транспортным средством,
поэтому в наличие отдельного транспортного уровня нет необходимости.
Далее в структуре OSI сетевой уровень. Он отвечает за
маршрутизацию данных в процессе взаимодействия нескольких сетей.
2. Экспериментальная
часть. Разработка и экспериментальное исследование программной модели канала
передачи данных.
На рисунке
3.3 представлена вниманию блок-схема модели получения данных.
Программа.
% ///////////////////////// ТОЧКА ДОСТУПА
/////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% //////////// ПЕРЕДАЧА ШИРОКОВЕЩАТЕЛЬНОГО СООБЩЕНИЯ.
НАЧАЛО \\\\\\\\\\\\\\
SNR = 10;
Type_channel = 1; % поле типа канала;
Number_cicle_tr = 1; % номер цикла передачи;
Profil_func = 1; % профиль настройки ФУ;
%%% Инизиализация параметров %%%
IG = 0;
P_adress = 56;
P_TD = 185;
FCCH = 0;
SCH = 0;
Zero_bits = 0;
Proof_of_Delivery
= 1;
inquiry_add_serv =
[0 0 0 0 0];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[IQ_signal,
msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...
Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...
Zero_bits, Proof_of_Delivery, inquiry_add_serv );
%
/////////////////////////////////////////////////////////////////////////
%
//////////////////////////// НАЛОЖЕНИЕ AWGN
/////////////////////////////
IQ_signal =
awgn(IQ_signal, SNR);
figure(2);
plot(IQ_signal,'.');title('СКС после канала связи');
% /////////// ПЕРЕДАЧА ШИРОКОВЕЩАТЕЛЬНОГО СООБЩЕНИЯ.
ОКОНЧАНИЕ \\\\\\\\\\\\
%
/////////////////////////////////////////////////////////////////////////
% ////////////////////////////// СЕНСОР
/////////////////////////////////
% /////////////////////////////////////////////////////////////////////////
% /////////// ПРИЕМ СЕНСОРОМ ШИРОКОВЕЩАТЕЛЬНОГО
СООБЩЕНИЯ \\\\\\\\\\\\\\\
[ r_msg_L2, r_IG, r_P_adress, r_Type_channel, r_P_TD,
r_Number_cicle_tr,...
r_Profil_func,
r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...
r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );
if my_bi2de(r_P_TD,'left_msb') >= 155
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
disp(['В зоне обслуживания данной точки доступа
разрешена передача']);
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
end
% Осуществление радиоизмерений
Radio_determine =
norm(IQ_signal)^2;
if Radio_determine > 100
Profil_func = 0;
else
Profil_func = 1;
end
% Подсчет количества ошибок:
error =
biterr(msg_Lev1, r_msg_L2);
%
-------------------------------------------------------------------------
%
---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------
%
-------------------------------------------------------------------------
if r == zeros(1,length(r_msg_L2));
else
disp(['%%%%% данные полученные терминалом %%%%%']);
disp(['Информационная часть принята ошибочно!
Количество ошибок: ',int2str(error)]);
end
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
%
/////////////////////////////////////////////////////////////////////////
% ////////////////////////////// СЕНСОР
/////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% ////// ПРИЕМ СЕНСОРОМ АДРЕСНОГО СООБЩЕНИЯ ОТ ТОЧКИ
ДОСТУПА \\\\\\\\\\\\
[ r_msg_L2, r_IG,
r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...
r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...
r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );
% Осуществление радиоизмерений
Radio_determine =
norm(IQ_signal)^2;
if Radio_determine > 100
Profil_func = 0;
else
Profil_func = 1;
end
% Подсчет количества ошибок:
error =
biterr(msg_Lev1, r_msg_L2);
%
-------------------------------------------------------------------------
%
---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------
%
-------------------------------------------------------------------------
if r == zeros(1,length(r_msg_L2));
else
disp(['%%%%% данные полученные терминалом %%%%%']);
disp(['Информационная часть принята ошибочно!
Количество ошибок: ',int2str(error)]);
end
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
%
////////////////////////////// СЕНСОР /////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% //// ОТПРАВКА НА ТОЧКУ ДОСТУПА ПОДГОТОВЛЕННОГО
ТЕКУЩЕГО СООБЩЕНИЯ \\\\\\\
Type_channel = 2; % поле типа канала;
[IQ_signal,
msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...
Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...
Zero_bits, Proof_of_Delivery, r_inquiry_add_serv );
%
/////////////////////////////////////////////////////////////////////////
%
//////////////////////////// НАЛОЖЕНИЕ AWGN
/////////////////////////////
IQ_signal =
awgn(IQ_signal, SNR);
figure(2);
plot(IQ_signal,'.');title('СКС после канала связи');
% /////////////////////////////////////////////////////////////////////////
% ///////////////////////// ТОЧКА ДОСТУПА
/////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% ////// ПРИЕМ ТОЧКОЙ ДОСТУПА ТЕКУЩЕЙ ИНФОРМАЦИИ ОТ СЕНСОРА
\\\\\\\\\\\\\
[ r_msg_L2, r_IG,
r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...
r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data, ...
r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );
% Осуществление радиоизмерений
Radio_determine =
norm(IQ_signal)^2;
if Radio_determine > 100
Profil_func = 0;
else
Profil_func = 1;
end
% Подсчет количества ошибок:
error = biterr(msg_Lev1,
r_msg_L2);
%
-------------------------------------------------------------------------
%
---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------
%
-------------------------------------------------------------------------
if r == zeros(1,length(r_msg_L2));
else
disp(['%%%%% данные полученные точкой доступа
%%%%%']);
disp(['Информационная часть принята ошибочно!
Количество ошибок: ',int2str(error)]);
end
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
% ///////////////////////// ТОЧКА ДОСТУПА
/////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% /////////// ОТПРАВЛЕНИЕ НА СЕНСОР ПАКЕТА
ПОДТВЕРЖДЕНИЯ \\\\\\\\\\\\\\\\
Type_channel = 3; % поле типа канала;
Proof_of_Delivery
= 1;
[IQ_signal,
msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...
Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...
Zero_bits, Proof_of_Delivery, r_inquiry_add_serv );
%
/////////////////////////////////////////////////////////////////////////
%
//////////////////////////// НАЛОЖЕНИЕ AWGN
/////////////////////////////
IQ_signal =
awgn(IQ_signal, SNR);
figure(2);
plot(IQ_signal,'.');title('СКС после канала связи');
%
/////////////////////////////////////////////////////////////////////////
% ////////////////////////////// СЕНСОР
/////////////////////////////////
%
/////////////////////////////////////////////////////////////////////////
% ////// ПРИЕМ СЕНСОРОМ СООБЩЕНИЯ ПОДТВЕРЖДЕНИЯ ОТ
ТОЧКИ ДОСТУПА \\\\\\\\
[ r_msg_L2, r_IG,
r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...
r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...
r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );
% Осуществление радиоизмерений
Radio_determine =
norm(IQ_signal)^2;
if Radio_determine > 100
Profil_func = 0;
else
Profil_func = 1;
end
% Подсчет количества ошибок:
error =
biterr(msg_Lev1, r_msg_L2);
%
-------------------------------------------------------------------------
%
---------------------------- ВЫВОД РЕЗУЛЬТАТОВ
--------------------------
%
-------------------------------------------------------------------------
if r == zeros(1,length(r_msg_L2));
else
disp(['%%%%% данные полученные терминалом %%%%%']);
disp(['Информационная часть принята ошибочно!
Количество ошибок: ',int2str(error)]);
end
disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);
disp(['Сенсор передал сообщение успешно, переход в режим
"СОН"']);
В результате запуска данной модели разрабатываемой системы на
экран выводится информация:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные передаваемые точкой доступа %%%%%
Тип канала - № 0 1
Идентификатор точки доступа - № 1 0 1 1
1 0 0 1
Номер цикла передачи - 0 0 0 0 0
0 1
Профиль функционирования - 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHENC instead.
To disable this warning, type
warning('off','comm:obsolete:bchenco').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHGENPOLY instead.
To disable this warning, type
warning('off','comm:obsolete:bchpoly').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHDEC instead.
To disable this warning, type
warning('off','comm:obsolete:bchdeco').
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные полученные сенсором%%%%%
Тип передаваемого сообщения - широковещательное
Поле адреса - 1 1 1 1 1 1
1 1
Тип канала - № 1
Идентификатор точки доступа - № 185
Номер цикла передачи - 1
Профиль функционирования - № 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
В зоне обслуживания данной точки доступа разрешена передача
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHENC instead.
To disable this warning, type
warning('off','comm:obsolete:bchenco').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHGENPOLY instead.
To disable this warning, type
warning('off','comm:obsolete:bchpoly').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHDEC instead.
To disable this warning, type
warning('off','comm:obsolete:bchdeco').
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные полученные сенсором %%%%%
Тип передаваемого сообщения - адресное
Поле адреса - 0 0 1 1 1 0
0 0
Тип канала - № 3
Идентификатор точки доступа - № 185
Номер цикла передачи -
Профиль функционирования - № 1
Используется дополнительная услуга: информация о температуре
тела участника
Используется дополнительная услуга: информация о температуре
окружающей среды
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные передаваемые сенсором %%%%%
Тип канала - № 1 0
Идентификатор точки доступа - № 185
Идентификатор терминала - № 56
Общий анализ крови [норма]
Пульс участника [уд/сек] - 0
Температура тела участника [C] - 39
Температура окружающей среды [C] - 52
Давление [мм рт ст] - 0
Влажность [%] - 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHENC instead.
To disable this warning, type
warning('off','comm:obsolete:bchenco').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHGENPOLY instead.
To disable this warning, type
warning('off','comm:obsolete:bchpoly').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHDEC instead.
To disable this warning, type
warning('off','comm:obsolete:bchdeco').
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные полученные точкой доступа %%%%%
Тип передаваемого сообщения - адресное
Тип канала - № 1 0
Идентификатор точки доступа - № 185
Идентификатор сенсора - № 56
Общий анализ крови [норма]
Пульс участника [уд/сек] - 0
Температура тела участника [C] - 39
Температура окружающей среды [C] - 52
Давление [мм рт ст] - 0
Влажность [%] - 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные передаваемые точкой доступа %%%%%
Тип канала - № 1 1
Идентификатор точки доступа - № 185
Идентификатор терминала - № 56
Сообщение от терминала №
56 передано
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHENC instead.
To disable this warning, type
warning('off','comm:obsolete:bchenco').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHGENPOLY instead.
To disable this warning, type
warning('off','comm:obsolete:bchpoly').
Warning: This
is an obsolete function and may be removed
in the
future.
Please use BCHDEC instead.
To disable this warning, type
warning('off','comm:obsolete:bchdeco').
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% данные полученные терминалом %%%%%
Тип передаваемого сообщения - адресное
Поле адреса - 0 0 1 1 1 0
0 0
Тип канала - № 3
Идентификатор точки доступа - № 185
Номер цикла передачи -
Профиль функционирования - № 1
Сообщение от сенсора принято успешно
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Сенсор передал значения параметров успешно, переход в режим "СОН"
. 1. Бакке А.В. «Лекции по курсу ССПО»