От ЭВМ к VPV (элементарные посылки-шаги): 

1.ЭВМ посылает запрос на обмен (3 байта) в форме:

а) 101ххххх , где ххххх-тип передачи =

· 0-команда VPV

· 1-заголовок программы формата .CMD

· 2-блок тела программы .CMD

· 3-точка входа в программу .CMD и .EXE

· 4-заголовок программы формата .EXE

· 5-блок тела программы .EXE

· 6-заголовок программы формата RMX

· 7-блок тела программы RMX

· 8-блок данных для задачи,выдавшей команду INT 5 BL=7

· 9-создать копию таблицы ССУДА

б) младший байт длины блока данных

в) старший байт длины блока данных

2.ЭВМ ждет от VPV ответ на запрос

возможные ответы:

а) 1F-передавай дальше

б) F1-нет свободной памяти такого размера

3.ЭВМ передает блок данных указанной длины с подсчетом ЦКК(циклический контрольный код)

4.ЭВМ передает подсчитанный ею ЦКК

а) младший байт

б) старший байт

5.ЭВМ ждет ответ о завершении передачи

возможные ответы:

а) 1F-передача завершена удачно

б) F1-ЦКК не совпал с подсчитанным в VPV

От VPV к ЭВМ 

1.ЭВМ получает запрос на обмен (3 байта) в форме:

а) 101ххххх , где ххххх - тип передачи =

· 0-вывод данных на терминал

· 1,3,4,6,8,9-ответ на блок типа 1,3,4,6,8,9, полученных от ЭВМ

· 2-пакет для FE_EC_SERVER

· 5-пакет для задачи в сети

б) младший байт длины блока данных

в) старший -----------------------

2.ЭВМ посылает ответ на запрос

возможные ответы:

а) 1F- продолжай обмен

б) другие коды игнорируются,т.к.VPV должна осво-

бодиться от блока данных!!!

3.ЭВМ получает блок данных указанной длины и подсчитывает ЦКК

4.ЭВМ получает ЦКК,подсчитанный VPV

а)младший байт ЦКК

б)старший байт ЦКК

5.ЭВМ сравнивает свой ЦКК с полученным от VPV и передает ответ

возможные ответы:

а) 1F-конец передачи

б) 1E-повтори передачу заново (с шага 1)

как подсчитывать ЦКК

Предположим , что ЦКК подсчитывается в регистре BX. Перед началом приема/передачи блока данных BX=0. Генерирующий полином AAA=1021н. На каждый байт данных вызывается следующая подпрограмма,при этом байт данных содержится в регистре AL:

CRC_BYTE:

XOR AH,AH

XOR BX,AX

SHL BX,1

JNB CRC_YX

XOR BX,AAA

CRC_YX:

RET ;BX=CRC

Для линии MIL 1553 подсчет CRC аналогичен, но не по байтам, а по словам.

 

Форматы блоков данных для указанных типов

 

Форматы блоков и типы пакетов идентичны как для последовательной линии,так

и для MIL 1553. 

От ЭВМ к VPV 

тип 0:

содержит ASCII-строку, которая передается синтаксическому анализатору VPV.

тип 1:

байты блока данных

0-1=длина сегмента данных загружаемой задачи в параграфах

2-3=длина сегмента стека -----------------------

4-5=длина сегмента кодов -----------------------

6=приоритет задачи

7=тип задачи:

· 0-задача без особенностей

· 1-задача использует 8087

· 3-задача запускается периодически с интервалом времени Т

8-11=имя задачи

12-13=период Т перезапуска задачи типа 3

тип 2:

байты

0-1=смещение в сегменте загружаемых данных

2=0-сегмент кодов,не нуль-сегмент данных

3-N=загружаемые данные

тип 3:

байты

0-1=точка входа в задачу(смещение в сегменте кодов)

2 => B0=0-сразу инициировать программу

В0=1-задачу инициируют командой GO с терминала или INT 6 из другой задачи

тип 4:

байты

0-1=смещение сегмента стека относительно начала образа задачи

2-3=указатель стека

4-5=смещение сегмента кодов относительно начала образа задачи

6=приоритет задачи

7=тип задачи

8-11=имя

12-13=период запуска для типа 3

14-15=длина образа задачи=сумма длин сегментов данных,кодов,стека

тип 5:

байты

0-1=значение сегмента,куда данные(длины блоков кратны 16)

2= 0-сегмент кодов,не нуль-сегмент данных

3-N=данные

тип 6:

байты

0-15=как для типа 4

16-17=смещение сегмента данных от начала образа

тип 7:

байты

0-1=абсолютный адрес сегмента

2-3=смещение в сегменте

4-N=данные

тип 8:

байты

0-3=имя задачи,которой информация

4-N=данные

тип 9: создание копии таблицы ССУДА

байты

0-1=смещение в структуре

2-21=имя таблицы

с 22=элементы структуры 

От VPV к ЭВМ 

Тип 0:

ASCII-строка для вывода на терминал

Тип 1,3,4,6,8: Ответ на пакеты типа 1,3,4,6,8

байты

0=код ответа

1-4=имя задачи

5-6=для типа 4 константа RELOCATION

Эначения кодов ответов для блоков типа:

1,4,6 =

· 0-продолжай загрузку

· 1-не хватает памяти для загрузки задачи

· 2-загрузка предыдущей задачи еще не окончена

3 =

· 0-задача загружена

· 1-не было блоков типа 1,4,6

8 =

· 0-данные приняты задачей

· 1-нет такой задачи

· 2-нет команды чтения от задачи

Тип 2: пакет для сервера связи с ССУДА на ЭВМ

байты

0-1=размер пакета

2= код функции (соответствует интерфейсу с ССУДА, см. ее описание)

3-4=смещение

5=есть/нет адрес

10-15=адрес

код функции =

· 1 ==> передача ответа на удаленный запрос записи данных dtwdbl или код ошибки

· 2 ==> непоследний блок данных на dtrdbl

· 3 ==> последний блок -----------------

·

Тип 5: запрос к задаче

байты

0=0-VPV была инициализирована

0=0CCH команда CL, тогда байты 1-4 содержат имя загружаемой задачи

Тип 9: ответ на пакет 9

байты

0=код ответа

1-2=идентификатор таблицы

3-4=смещение относительно начала описания таблицы

Значение кодов ответов:

= 0-пакет принят

= 1-уже есть такая таблица

= 2-нет свободной памяти

..........................................

Как видно из типов пакетов под управлением VPV могут выполняться программы подготовленные в среде MS-DOS,CP/M-86 и RMX. Однако сейчас поддержка осуществляется только MS-DOS. Для того,чтобы загрузить задачу,пакеты должны поступать в следующей последовательности:

типа 1 4 6 ====> начало загрузки

типа 2 5 7 загрузка

типа 2 5 7

............ тела

............

типа 2 5 7 задачи

типа 3 ====> после этого задача загружена

..........................................