Диспетчер программы DISP2

 

Begin

D := 1

IF D = 1 THEN GO TO P6 ELSE IF D = 2 THEN GO TO P7 ELSE

IF D = 3 THEN GO TO P8 ELSE IF D = 4 THEN GO TO P9 ELSE

IF D= 5 THEN GO TO P10 ELSE IF D= 6 THEN GO TO P11 ELSE

END

 

Программы:

P6 – формирование принятого кадра “RR”, подтверждающего правильный прием переданного на противоположную сторону информационного кадра “I” (cм. лаб. 1). Проверка безошибочного приема кадра RR с канала связи;

P7 – запись этого кадра RR с контрольно-проверочной комбинацией КПК в первый блок очереди Освоб;

P8 – перенос принятого кадра RR из Освоб в очередь Окпм;

P9 – проверка правильного приема переданного ранее кадра “I” и находящегося в очереди повтора Оповт;

P10 – считывание кадров “RR” из очереди Окпм и “I” из Оповт и установка их в очередь Освоб;

P11 – установление режима передачи очередного информационного кадра “I” в канал.

 

2.1. Программа P6

Выделение памяти для формирования принятого кадра RR, подтверждающего правильный прием переданного на противоположную сторону кадра “I” (лаб. работа 1). На рис. 1 приведен этот формат, включающий 1 байт кадра RR и 2 байта КПК этого кадра. Начальный адрес этого кадра с КПК - A(RGвх). Он имитирует входной регистр с канала RGвх, в котором в действительности аппаратным образом проверяется с помощью КПК был ли искажен кадр в канале. Как видно из рис.1 регистр состоит из трех байтов.

 

 

A(RGвх)

Биты 16 бит КПК
Значения старший байт – все нули младший байт - 01100001

…..N(R)…… …тип кадра…….

 

Рис.1. Формат принятого кадра RR с КПК во входной регистр с начальным адресом A(RGвх)

 

Сформировать поля принятого кадра (значения приведены для контрольного примера):

- установить тип кадра RR - биты кадра <1-4>:= 0001;

- установить N(R) в биты кадра RR <6-8>:= 011. Это значение N (R) равно значению N(S)+1, где N(S) является параметром переданного ранее кадра “I” и находящегося в очереди Оповт (лаб. работа 1). Для контрольного примера N(S)=2. Значит N(R) в кадре RR равен 3, что отражено на рис. 1;

- установить КПК (старший байт равен нулю, младший байт – значение кадра RR (01100001). Это означает, что кадр RR принят неискаженным в канале.

 

D:=D+1

GO TO DISP2

2.2. Программа P7

Записать в массив первого блока по адресу А(N2+1) очереди свободных блоков Освоб принятый с канала связи кадр RR, подтверждающий правильный прием информационного кадра “I” (поэтому в кадре отсутствует КПК).

Значения полей принятого кадра приведены для контрольного примера на рис.2.

 

А(N2+1)

Биты 16 бит 16 бит
Значения

.…адр. часть…… ….кадр RR ……………….

Рис. 2. Кадр RR в массиве очереди свободных блоков Освоб

 

Откорректировать поля характеристики Нсвоб очереди свободных блоков Освоб, т.е. снять свободный блок с начальным адресом массива по А(N2+1) из очереди свободных блоков Освоб (рис.3).

 

АНсвоб

А(N2+2) А(N1) N1- N2 -1

 

Рис. 3. Характеристика Нсвоб

 

Установить в ноль первое адресное поле первого массива свободного блока очереди свободных блоков Освоб с начальным адресом А(N2+2).

 

 

D:=D+1

GO TO DISP2

 

2.3. Программа P8

Переписать из очереди свободных блоков Освоб кадр RR (в массиве кадра с начальным адресом А(N2+1)) в очередь принятых с канала кадров Окпм. (для упрощения рассматривается исходное состояние отсутствия кадров в очереди Окпм.):

- выделить память под характеристику Hкпм.. очереди принятых кадров Окпм.. с начальным адресом АHкпм. Установить поля характеристики Hкпм (рис 4) -поставить в очередь Окпм массив кадра с начальным адресом А(N2+1);

 

 

АHкпм

А(N2+1) А(N2+1)

 

Рис.4. Характеристика Hкпм

 

 

- установить значение ноль в оба адресные поля массива кадра с начальным адресом А(N2+1).

 

D:=D+1

GO TO DISP2

 

2.4. Программа P9

IF N(R) принятого кадра RR (биты <6-8> -1, рис. 1) = N(S).

Здесь N(S) является параметром переданного ранее кадра “I” и находящийся первым в очереди Оповт (лаб. работа 1)

THEN END ELSE OSHIBKA

Программой P6 это условие выполняется. Для контрольного примера N(S)=2.

D:=D+1

GO TO DISP2

 

2.5. Программа P10

Поставить кадр RR с начальным адресом массива А(N2+1) из очереди принятых с канала кадров Окпм в конец очереди свободных блоков Освоб, при этом очистив его (кроме адресных полей). Откорректировать поля характеристики очереди Нсвоб (рис. 5).

 

АНсвоб

А(N2+2) А(N2+1) N1- N2

 

Рис.5. Характеристика Нсвоб

 

Установить в массиве с начальным адресом А(N2+1) очереди свободных блоков Освоб в первом адресном поле значение А(N1) и ноль во втором адресном поле.

Установить в массиве с начальным адресом А(N1) очереди свободных блоков Освоб во втором адресное поле значение А(N2+1).

Поставить массив информационного кадра “I” с начальным адресом А(1) массива очереди Оповт в конец очереди свободных блоков Освоб, предварительно очистив его (кроме адресных полей). Откорректировать поля характеристики очереди Нсвоб (рис. 6).

 

АНсвоб

А(N2+2) А(1) N1- N2+1

 

Рис.6. Характеристика Нсвоб

 

Установить значение А(N2+1) в первом адресном поле и ноль во втором адресном поле массива с начальным адресом А(1) очереди свободных блоков Освоб.

Установить значение А(1) во втором адресном поле массива с начальным адресом А(N2+1) очереди свободных блоков Освоб.

Установить в ноль поля характеристик очереди Оповт (по адресу АHповт.) и Окпм (по адресу АHкпм).

 

D:=D+1

GO TO DISP2

 

2.6. Программа P11

Установление режима передачи очередного информационного кадра “I” в канал.

REGIM:=1 (передача в канал очередного кадра “I”)

D:=D+1

GO TO DISP2