Курсовая работа по дисциплине

  «Системы и сети связи с подвижными объектами».

Тема: «Радиосеть сбора данных»

Часть 3

 

Построение результирующих иерархических моделей терминала и выделенных узлов сети (в соответствии с концепцией OSI) с отражением путей доставки служебных, так и информационных сообщений.

Базовая модель связи открытых систем OSI описывает правила и процедуры передачи данных в различных сетевых средах при организации сеанса связи. В нашей работе будут рассмотрены три нижних уровня базовой сетевой модели, а именно физический, канальный и уровень принятия решений (рисунок 1).

 

 

 

 

                                    Рисунок 1 – иерархическая модель терминала сети.

 

 

 

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

Уровень принятия решений L3 – предназначен для подготовки пакетов для КУ и для расшифровки сообщений L2 уровня используя для этого модуль принятия решений. На основе принятых сообщений, уровень L3 принимает решение о работе терминала в радиосети. В частности, на основе принятых данных L3 уровня и команд модуля принятия решений терминал начинает прослушивать BCCH, запускает процедуру передачи данных по команде с рабочего места оператора, переходит в активный режим  и выходит из него.

За алгоритм сценария работы терминала в радиосети отвечает подуровень управления сценарием работы терминала. Этот подуровень реализует команды модуля принятия решений и адаптирует их для работы терминала, как объекта радиосети. То есть отвечает за реализацию сценария взаимодействия Т с радиосетью, как ответа на сформированные команды модуля принятия решений.

Канальный уровень L2 – предназначен для обеспечения адресной доставки сообщений, проверки целостности данных и приведению сообщений к единому стандарту в рамках функционирования терминала в сети. Для выполнения поставленных задач на L2 при приёме происходит группировка потоков битов в кадры, после чего происходит выделение принятой информации, в частности, выделяются поля адреса, типа сообщения. Далее, в соответствии с типом полученного/передаваемого сообщения, канальный уровень активирует соответствующий алгоритм декапсуляции/инкапсуляции данных. При передаче полям сообщений также добавляются адреса получателя, тип сообщения, производится расчёт параметра для контроля целостности. На канальном уровне реализуется также многостанционный алгоритм доступа к каналу связи, за который отвечает модуль принятия решений. Доступ к каналу связи осуществляется на основе метода TDMA, суть которого заключается в том, что терминал передаёт данные в канал трафика закреплённый за ним.

Физический уровень L1 - реализует физическое соединение двух сетевых устройств по соединению точка - точка. В данной системе физический уровень предназначен для передачи потока данных от терминала к точке доступа и наоборот. Уровень отвечает за достоверную доставку потока битов с вероятностью ошибки не ниже 5*10-6, за организации физических каналов TDMA. Конкретные его задачи рассмотрены в соответствующем разделе курсовой работы.



Разработанная программная модель соответствует элементу сценария в проектируемой радиосети и представлена на рисунке 2.  

 

  

Рисунок 2 – сценарий работы сети, для разрабатываемой модели.

 

На рисунке показан один из двух возможных моментов начала прослушивания BCCH: После обработки сообщения BCCH терминал получает необходимые данные, а именно: ID своей сети, прошитой в памяти терминала; возможное сообщения для терминала; данные об уровне сигнала; флаг доступности сети. (Если какой то из данных параметров окажется «отрицательным», то Т опять будет прослушивать BCCH и извлекать из него информацию).

          Далее, точка доступа начинает опрашивать терминалы, на предмет активности, те терминалы, которые активны, отзываются. Отправив сообщение в специальный временной слот, Т ждёт, когда ему сообщат ему закреплённый за ним канал.

         Как только терминал находит информацию о своём канале, при расшифровки BCCH, он начинает формировать и отправлять сообщения трафика, до тех пор, пока не поступит команда на прекращение трансляции.

В разрабатываемом программном модуле по умолчанию нет ошибок, отказов и все флаги имеют «положительные» значения.

Блок схему алгоритма приёма-передачи сообщения изменим в соответствии  с разрабатываемым программным модулем (рисунок 3).

Разрабатываемая программа будет содержать следующие программные модули:

1.      Формирование и передача сообщения BCCH

2.      Приём и расшифровка сообщений BCCH терминалом

3.   Формирование и передача сообщения вызова для терминала

4.      Приём и расшифровка сообщения вызова терминала

5.      Формирование и передача сообщения регистрации

6.      Приём и расшифровка сообщения регистрации

7.   Формирование и передача команды на трансляцию в составе BCCH

8.   Приём и расшифровка команды

9.   Подготовка терминалом сообщений трафика и их отправка

       10.   Формирование и передача команды на прекращение трансляции в составе BCCH

       11.      Приём и расшифровка команды

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 3 – блок схема приёма/передачи сообщений радиосети

 

 

Работа программы, представленной в этой статье, имитирует работу канального уровня терминала и уровня принятия решений.  Ниже будут представлены фрагменты кода программы, отвечающие за конкретные задачи.  

Листинг 1.

%% Отправка сообщения BCCH точкой доступа

clc;

clear all;

     % Определение структуры пакета L2

lenbcch=127;           % длинна сообщения L2 BCCH

len_bcch=110;       % длинна сообщения L3 BCCH

 

ID_NET=[1 1 1 1 1 1 1 0];  % ID сети     

 

TYPE=[0];               %поле указывающее на тип сообщения

%0-широковещательное сообщение

%1-служебное сообщение

 

      % Создание сообщения L3 уровня     

      lenl2bcch=zeros(1,len_bcch); % заготовка нулевого вектора для записи

      %фреймов

      OK=[1 1]; %сеть доступна

      wait=[ 1 0 0 1]; %9 ожидают команду на включение трансляции

      trans=[0 0 0 1]; %1 автомобиль ездит по автодрому

      data_L3=[OK wait trans];

      lenl2bcch(1:length(data_L3))=data_L3;

      L3=lenl2bcch;% Сообщение сетевого уровня

      disp('ТД: создание сообщения L3 BCCH точкой доступа завершено');

      disp('ТД:L3  [сеть доступна;1 ученик отрабатывает базовые элементы вождения; 4 учеников могут приступить к практическим занятиям]');

            

         % Создание сообщения L2 уровня

         IDNETWORK=ID_NET ;      % запись адреса сети

         L2=[IDNETWORK TYPE L3];%компоновка фрейма

         расчет CRC 

         crc=CRC(L2);

         % сборка сообщения L2

         l2transmit_BCCH=[L2 crc]; % сформированное сообщения

         disp('ТД:создание сообщения L2 BCCH точкой доступа завершено');

         disp('ТД:L2 [ID сети;тип:широковещательное;ID ТД;BCCH_L3;CRC-16]');

         disp(sprintf('ТД: L1  сообщение передано на терминалы от ТД в структуре кадра\n'));

       pause;

   

   

%%Приём сообщения BCCH терминалом

 

     % Определение структуры пакета L2

ID_NET=[1 1 1 0 1 0 1 0];  % ID сети, прошитое в терминале

lencmd=127; % длинна сообщения BCCH, прошитое в терминале

lenbcch=110;          % длинна сообщения L3 BCCH

     poly= [1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1]; % полином для расчета контрольной суммы

     % Определение типов сообщений

bcch=[0];           % тип сообщения BCCH

pch=[1];          % тип сообщения служебное

sacch=[1];          % тип сообщения служебное

 

 

     % прием сообщения L2

     l2receive_BCCH=l2transmit_BCCH; % Иммитация приема сообщения

     DATA1=l2receive_BCCH(1:110); % Выделение поля адреса сети

     type=l2receive_BCCH(111);  % Выделение типа

     

    

     % Сравнение декодированного и принятого CRC

     if type==bcch         % Проверка типа сообщения

        disp('Т: Принято широковещательное сообщение');

     elseif type==pch         % Проверка типа сообщения

        disp('Т: Принято сообщение PCH');

     end

     pause;

control_BCCH=l2receive_BCCH(1:111); %Выделение поля для проверки целостности

crc=l2receive_BCCH(112:127);   %Выделение значения раcчитанной контрольной суммы

 

% Расчет CRC

CRCReceive_BCCH = CRC(control_BCCH);    % Вызов функции расчета CRC

if crc == CRCReceive_BCCH      % Проверка равенства контрольных  сумм

    disp('T: Целостность сообщения BCCH сохранена');

else

    disp('T: Ошибка приема сообщения!!!');

end   

 

        if  Addr1==ID_NET;        % Проверка принадлежности принятого

     %широковещательного сообщения к сети, в которой разрешена работа

     disp('Т: Сеть своя');

     else

     disp('Т: Сеть не своя');

        end

       

        % Декапсуляция информационной части

data1=l2receive_BCCH(19:20);    % Выделение L3 сообщения

if  data1==[1 1];

    disp('Т:Сеть доступна для передачи')

   else

    disp('Т:Сеть загружена,"жди ещё одну команду на трансляцию"');

end

 

 

 

%% Отправка сообщения вызова точкой доступа

     % Определение структуры пакета L2

lenpch=1;           % длинна сообщения L2 PCH

len_pch=24;          % длинна сообщения L3 PCH

 

ID_T=[0 0 1 0];  % ID терминала  

TYPE=[1];               %поле указывающее на тип сообщения

%0-широковещательное сообщение

%1-служебное сообщение

 

 

      % Создание сообщения L3 уровня     

      Len12pch=zeros(2,len_pch); % заготовка нулевого вектора для записи

 

         % Создание сообщения L2 уровня

         IDTERM=ID_T ;      % запись адреса терминала

         L2=[IDTERM TYPE L3];%компоновка фрейма

         расчет CRC 

         crc=CRC(L2);

         % сборка сообщения L2

         l2transmit_PCH=[L2 crc]; % сформированное сообщения

         disp('ТД:создание сообщения L2 PCH точкой доступа завершено');

         disp('ТД:L2 [ID терминала;тип:служебное ;PCH_L3;CRC-16]');

         disp(sprintf('ТД: L1  сообщение передано на терминал 2 от ТД в структуре кадра\n'));

       pause;

   

   

%%Приём сообщения PCH терминалом

 

     % Определение структуры пакета L2

ID_T=[0 0 1 0];  % ID терминала, которому адресовано сообщение

lencmd1=24; % длинна сообщения PCH, прошитое в терминале

lenpch=1;          % длинна сообщения L3 PCH

     % Определение типов сообщений

bcch=[0];           % тип сообщения BCCH

pch=[1];          % тип сообщения служебное

sacch=[1];          % тип сообщения служебное

 

 

     % прием сообщения L2

     l2receive_PCH=l2transmit_PCH; % Иммитация приема сообщения

     AddrT=l2receive_PCH(1:7); % Выделение поля адреса терминала

     type=l2receive_PCH(8);  % Выделение типа

     

    

     % Сравнение декодированного и принятого CRC

     if type==pch         % Проверка типа сообщения

        disp('Т: Принято широковещательное сообщение');

     elseif type==sacch         % Проверка типа сообщения

        disp('Т: Принято сообщение SACCH');

     end

     pause;

control_PCH=l2receive_PCH(1:8); %Выделение поля для проверки целостности

crc=l2receive_PCH(9:24);   %Выделение значения расчитанной контрольной суммы

 

% Расчет CRC

CRCReceive_PCH = CRC(control_PCH);    % Вызов функции расчета CRC

if crc == CRCReceive_PCH      % Проверка равенства контрольных  сумм

    disp('T: Целостность сообщения PCH сохранена');

else

    disp('T: Ошибка приема сообщения!!!');

end   

        

        % Декапсуляция информационной части

type1=l2receive_PCH(8);    % Выделение L3 сообщения

type1==[1];

    disp('Т:Сеть взывает ко мне')

end

 

 

 

 

%% Отправка терминалом запроса на регистрацию

     % Определение структуры пакета L2

lenpch=1;           % длинна сообщения L2 SACCH

len_pch=24;          % длинна сообщения L3 SACCH

 

ID_T=[0 0 1 0];  % ID терминала, который был опрошен

TYPE=[1];               %поле указывающее на тип сообщения

%0-широковещательное сообщение

%1-служебное сообщение

 

 

      % Создание сообщения L3 уровня     

      Len12SACCH=zeros(9,len_SACCH); % заготовка нулевого вектора для записи

      %фреймов

 

         % Создание сообщения L2 уровня

         IDTERM=ID_T ;      % запись адреса терминала

         L2=[IDTERM TYPE L3];%компоновка фрейма

         расчет CRC 

         crc=CRC(L2);

         % сборка сообщения L2

         l2transmit_SACCH=[L2 crc]; % сформированное сообщения

         disp('Т:создание сообщения L2 SACCH терминалом завершено');

         disp('ТД:L2 [ID терминала;тип:служебное ;SACCH_L3;CRC-16]');

         disp(sprintf('Т: L1  сообщение передано на ТД от терминала 2 в структуре кадра\n'));

       pause;

   

   

%%Приём сообщения SACCH точкой доступа

 

     % Определение структуры пакета L2

ID_T=[0 0 1 0];  % ID терминала, который прислал сообщение

lencmd2=24; % длинна сообщения SACCH, прошитое в терминале

lensacch=1;          % длинна сообщения L3 SACCH

     % Определение типов сообщений

bcch=[0];           % тип сообщения BCCH

pch=[1];          % тип сообщения служебное

sacch=[1];          % тип сообщения служебное

 

 

     % прием сообщения L2

     l2receive_SACCH=l2transmit_SACCH; % Иммитация приема сообщения

     AddrT=l2receive_SACCH(1:7); % Выделение поля адреса терминала

     type=l2receive_SACCH(8);  % Выделение типа

     

    

     % Сравнение декодированного и принятого CRC

     if type==sacch         % Проверка типа сообщения

        disp('ТД: Принято служебное сообщение');

     elseif type==bcch         % Проверка типа сообщения

        disp('ТД: Принято сообщение BCCH');

     end

     pause;

control_SACCH=l2receive_SACCH(1:8); %Выделение поля для проверки целостности

crc=l2receive_SACCH(9:24);   %Выделение значения расчитанной контрольной суммы

 

% Расчет CRC

CRCReceive_SACCH = CRC(control_SACCH);    % Вызов функции расчета CRC

if crc == CRCReceive_SACCH      % Проверка равенства контрольных  сумм

    disp('T: Целостность сообщения SACCH сохранена');

else

    disp('T: Ошибка приема сообщения!!!');

end   

        

        % Декапсуляция информационной части

type1=l2receive_SACCH(8);    % Выделение L3 сообщения

type1==[1];

    disp('ТД: терминал 2 ответил')

end

 


Рисунок 4 – сообщение BCCH L2 уровня, формируемое ТД.

 

                                   

 

 

Рисунок 5 – структура сообщения PCH/SACCH L2 уровня.

 

 

Листинг 2 –  формирование сообщения трафика, отправка его на ТД.

Листинг 2.

 

 

%% Формирование и отправка сообщения трафика от терминала

     % Определение структуры пакета L2

lentch=120;           % длинна сообщения L2 TCH

   

 

      

         %% Создание сообщения L2 уровня

         

         L2_TCH=[1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0];%компоновка фрейма

         traffic=[L2_TCH]; % сформированное сообщения

         disp('Т:создание сообщения L2 TCH терминалом завершено');

    pause;

 

    %% Принятие сообщения трафика точкой доступа     

      traffic_rec=traffic; % Иммитация приема сообщения трафика точкой доступа

traffac1=traffic_rec(151:271);     

pause;

 

 

                                

 

Рисунок 6 – сообщение трафика L2 уровня, которое сформирует Т.

 

  

В результате выполнения, программа выполнит определённые задачи и сформирует уведомления об их выполнении. Если изменять инициализирующие параметры, вид уведомлений изменится.

ТД: создание сообщения L3 BCCH точкой доступа завершено

ТД:L3  [канал 1 для терминала 2/ прекратить передачу терминалу N]

ТД: создание сообщения L2 BCCH точкой доступа завершено

ТД:L2 [DATA; тип: широковещательное;CRC-16]

ТД: L1  сообщение передано на терминалы от ТД в структуре кадра

 

ТД: создание сообщения L2 PCH точкой доступа завершено

ТД:L2 [ID_T; тип: широковещательное;CRC-16]

ТД: L1  сообщение передано на терминал от ТД в структуре кадра

 

Т: Принято широковещательное сообщение

T: Целостность сообщения BCCH сохранена

Т: Сеть своя

Т:Сеть доступна для передачи

T: Вычислил, что для него не зарезервирован канал/зарезервирован

Т: Вычислил, уровень сигнала BCCH достаточен для начала передачи

T: Условия для передачи соблюдены, начинаю передачу сообщений трафика на ТД

 

Т: Принято служебное сообщение

T: Целостность сообщения PCH сохранена

Т:Сеть доступна для передачи

T: Вычислил, что для него/ не для него

ТД: создание сообщения L2 SACCH терминалом завершено

ТД:L2 [ID_T; тип: широковещательное;CRC-16]

ТД: L1  сообщение передано от ТД на терминал в структуре кадра

 

 

Т: создание сообщения трафика терминалом завершено

Т:создание сообщения L2 TCH терминалом завершено

Т: L2 [Video]

Т: сообщение передано на ТД от терминала в зарезервированный  временной слот кадра

 

ТД: Принято сообщение трафика


Список используемой литературы:

1) http://omoled.ru/publications/view/1018

2) http://omoled.ru/publications/view/1049

3) http://omoled.ru/publications/view/996

4)http://omoled.ru/publications/view/856