От ЭВМ к 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 ====> после этого задача загружена
..........................................