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

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

Тема: «Голосовая радиопочта»

Часть 3 – Канальный уровень

                                                                                             Выполнила: 

                                                                                             студентка группы 319

                                                                                             Клычникова Н.В.

 

 

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

 

Основные требования к системе:

-off-line доставка сообщений: при отсутствии в сети адресата сообщение должно быть доставлено позже;

- возможность доставки голосовых сообщений абонентам других подобных сетей.

 

Исходные данные к проекту:

·         Максимальное количество абонентов в сети: 700;

·         Радиус зоны радиопокрытия: 5000 м;

·         Гарантируемая (минимальная) скорость передачи данных: 256Kбит/с;

·         Тип местности: городская застройка;

·         Вероятность ошибки на бит Pb: 5*10-7;

·         Мощность излучения подвижной станции Ризл :< 0.5 Вт ;

·         Рекомендуемая технология передачи: OFDM PR: 75%;

·         Диапазон частот, вид модуляции выбирается самостоятельно.

 

 

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

 

Модель OSI описывает схему взаимодействия сетевых объектов, определяет перечень задач и правила передачи данных. Эталонная модель OSI включает в себя семь уровней:

  •     физический (Physical);
  •   канальный (Data-Link);
  • сетевой (Network);
  •   транспортный (Transport);
  • сеансовый (Session);
  •   представления данных (Presentation);
  •   прикладной (Application).

 

Иерархическая модель OSI отражает поэтапную реализацию услуги: от интерфейса пользователя до физического уровня. Каждый уровень модели предназначен для выполнения ряда задач. Для решения каждой задачи используются службы. Каждая служба определенного уровня обращается с запросом к службам нижестоящего уровня. Результат выполнения задач предоставляется службам вышестоящего уровня.  

 


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

 

    Для выполнения задач поставленных перед разрабатываемой сетью (подробнее см. статью №1) , на основе эталонной модели синтезирована иерархическая модель узлов сети (рисунок 1), включающая в себя следующие уровни:

·         физический уровень; 

·         канальный уровень с двумя подуровнями: подуровень управления доступом к среде МАС и подуровень управления доступом к каналу САС;

·         верхний уровень (уровень принятия решений).

    Физический уровень – это самый нижний уровень системы, который отвечает за непосредственный передачу (прием) сигнала в (из) радиоканал(а). Здесь же определяются требования к соединениям, разъёмам, электрическому согласованию, заземлению, защите от помех. 

    Канальный уровень отвечает за формирование пакетов стандартного вида, адресную доставку сообщений и контроль правильности приема. Здесь производится управление доступом к сети, обнаруживаются ошибки передачи. Подробнее о канальном уровне разрабатываемойсети в статье № 2.

    МАС-подуровень реализует набор протоколов, которые обеспечивают безопасность, маршрутизацию, энергосберегающие функции и обмен данными с протоколами вышележащих уровней. САС-подуровень описывает процедуру доступа к общему каналу связи. 

    Сначала МАС-уровень формирует и передает  пакет L1 уровню САС. Уровень CAC начинает процедуру конкурентной борьбы и получения доступа к физическому каналу связи. В разрабатываемой сети доступ к КС осуществляется на основе протокола CSMA (см. пункт 1.5.2).

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

 



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


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

передачи данных.

2.1. Разработка и описание блок-схемы алгоритма модели.

 

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

 

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

 

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

 

Программный модуль состоит из Matlab-функций имитирующих работу ФУ и КУ, функции предназначенной для непосредственного формирования OFDM-символов, а так же скрипта отражающего часть сценария работы сети, а именно - передача псевдослучайного сообщения трафика (состоящего из одного пакета) от терминала к точке доступа.

 

Рисунок 4. Структура передаваемого сообщения.

 

   start.m – часть сценария работы сети, частично затрагивает работу канального уровня сети;

·         l2_func.m – функция отражающая работу канального уровеня системы;

·         phy_lvl.m  функция отражающая работу физического уровня системы;

·         makeOfdmFrame.m  функция для формирования OFDM-символа.

 

 Рисунок 5. Блок-схема алгоритма функции l2_func.m.


Листинг №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.  «Голосовая почта» статьи №1 и №2

      http://omoled.ru/publications/view/959  

      http://omoled.ru/publications/view/987

3.     http://omoled.ru/publications/view/839

4.     http://omoled.ru/publications/view/847

5.  http://omoled.ru/publications/view/835

6.  http://citforum.ru/nets/tpns/glava_4.shtml.