Диспетчер программы 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