Описание пакетного протокола IPXTMPKT адаптера "Синком-Е"

     Адаптер "Синком-Е"  кроме  сетевого порта (с протоколом IPXTMPKT) имеет еще два порта для обмена с внешними устройствами:

     Порты позволяют вести обмен в дуплексном режиме. Информационные посылки могут передаваться в оба направления и требуют ответной квитанции. Асинхронный порт адаптера "Синком-Е" может быть использован  только для транзитных протоколов - все посылки, принимаемые из асинхронного порта транслируются без изменений в локальную сеть,  а  посылки  локальной сети с номером порта отличным от 0x00 или 0xFD или 0xFE транслируются в  асинхронный порт. Сетевой порт адаптера "Синком-Е" допускает два типа форматов пакета Ethernet:      1. Общий вид информационной посылки

Заголовок Ethernet (байты с 1-го по 14-ый):
 
1
2
3
4
5
6
Сетевой адрес узла получателя (старший разряд адреса здесь и далее передается первым)
 
7
8
9
10
11
12
Сетевой адрес узла отправителя
 
13
14
Для Ethernet 802.3 - длина пакета (байты с 15 до N+2)
Для ETHERNET II - константа 0x8137 (в 13-ом байте 0х81)

Заголовок IPX (байты с 15-го по 44-ый):
 
15
16
Поле контрольной суммы IPX. Поле по назначению не используется, а передается константа 0xFFFF
 
17
18
Длина пакета IPX (байты с 15 до N+2)

 
19
Счетчик сетевых мостов, пройденых пакетом. Поле по назначению не используется, а передается константа 0x00
 
20
Тип пакета - константа 0x04
 
21
22
23
24
Номер сети получателя - константа 0х00000000
 
25
26
27
28
29
30
Сетевой адрес узла получателя (тот же, что и в заголовке Ethernet)
 
31
32
Номер сокета получателя - константа 0x3E3F
 
33
34
35
36
Номер сети отправителя - константа 0х00000000
 
37
38
39
40
41
42
Сетевой адрес узла отправителя (тот же, что и в заголовке Ethernet)
 
43
44
Номер сокета отправителя - константа 0x3E3F

Заголовок задачи (байты с 45-го по 48-ой):
 
45
Логический номер отправителя пакета (Д.А.П). Соответствие логических номеров физическим задается в файле ipxtmpkt.cfg)
 
46
Логический номер получателя пакета (Д.А.П).
 
47
Номер порта адаптера (Д.А.П)   0 - для синхронного порта "Синком-Е" , 1 - для асинхронного порта "Синком-Е"
 
48
Идентификатор протокола

Данные задачи:
 
49
...
n
Поле данных

Контрольная последовательность (КПК):
 
n+1
n+2
КПК байт с 45-го по N-ый

     Примечание: 1. Если (N+2)<64, то пакет дополняется по длине до 64 байт.
                    Содержимое байт дополнения - произвольное.
                 2. Алгоритм подсчета КПК:

                    а) Байт[N+1] = 0
                       Байт[N+2] = 0
                       L = N-44       ;длина блока данных (с 45-го байта по N-ый)
                       P = 45         ;текущий указатель байта в блоке данных

                    б) Если содержимое L - четное число, то переход к п.в)
                       Иначе:

                       Байт[N+2] = Байт[P]
                       P = P+1
                       L = L-1

                    в) while ( L>0 )
                         {
                          XOR Байт[N+1],Байт[P]
                          P = P+1
                          XOR Байт[N+2],Байт[P]
                          P = P+1
                          L = L-2
                         }

    Коды протоколов:

     Описание информационных посылок для различных протоколов приводятся в отдельных документах. Длина информационной посылки не должна  превышать 250 байт.

     2. Общий вид квитанции
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45..48 Заголовок задачи
49,50 КПК
Байты дополнения пакета до 64
     Адаптер "Синком-Е" ожидает квитанцию в течении 1 сек после чего наращивается на единицу счетчик отказа связи и передается следующая информационная посылка. При приходе от HOST-а  любой  информационной  посылки или квитанции счетчик отказа связи обнуляется. При  увеличении  значения счетчика отказа связи до 16 адаптер прекращает  передачу  информационных посылок и начинает формировать посылку запроса конфигурации с периодом 1 сек.

     3. Алгоритм загрузки программы с описанием протокола в "Синком-Е"

     В ПЗУ адаптера прошита только программа-загрузчик. Программа с описанием протокола того или иного устройства телемеханики (УТМ) загружается по инициативе адаптера при включении питания последнего или при пропадании обмена между адаптером и HOST-ом.

     а) Посылка запроса конфигурации от адаптера
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45 =0xFF - Логич. номер отправителя пакета (пока неизвестен) 
46 =0xFF - Логич. номер получателя пакета (пока неизвестен)
47 =0xFE - Порт загрузки
48 =0xA0 - Код протокола - запрос конфигурации
49 =XX - Байт данных с произвольным значением кода 
50,51 КПК
Байты дополнения пакета до 64
Примечание: Сетевой адрес узла получателя в заголовке Ethernet (байты с 1 по 6) и в заголовке IPX (байты с 25 по 30) должен быть - 0xFFFFFFFFFFFF (широковещательная посылка).

     б) Первая посылка с конфигурацией от HOST-a
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45 =?? - Логич. номер отправителя пакета 
46 =?? - Логич. номер получателя пакета
47 =0xFE - Порт загрузки
48 =0x80 - Код протокола - признак первой посылки
49..N Данные.Байты с 49-го по N-ый (из файла *.bin), но не более 512 байт
N+1,N+2 КПК
Байты дополнения пакета до 64 (при необходимости)
     в) Квитанция адаптера на первую конфигурационную посылку
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45 =?? - Логич. номер отправителя пакета 
46 =?? - Логич. номер получателя пакета
47 =0xFE - Порт загрузки
48 =0x80 - Код протокола - признак первой посылки
49,50 КПК
Байты дополнения пакета до 64
     Если 512 байт недостаточно для загрузки программы с описанием протокола в адаптер (файл с расширением <bin> больше 512 байт)  фрмируется вторая конфигурационная посылка, у  которой PROT = 0x81. В квитанции на вторую конфигурационную посылку PROT=0x81. Максимальное количество  посылок с конфигурацией - 16, т.е. параметр PROT соответственно изменяется от 0x80 до 0x8F.

     г) Последняя посылка с конфигурацией от HOST-a
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45 =?? - Логич. номер отправителя пакета 
46 =?? - Логич. номер получателя пакета
47 =0xFE - Порт загрузки
48 =0x90 - Код протокола - признак последней посылки
49..N Данные. Байты с 49-го по N-ый (часть строки из файла BOOTSRV.CFG)
N+1,N+2 КПК
Байты дополнения пакета до 64 (при необходимости)
    На ПЭВМ - HOST загружается резидентная программа BOOTSRV.EXE,  которая поддерживает загрузку в адаптер параметров настройки адаптера и программы с протоколом обмена с УТМ. При старте BOOTSRV.EXE требует  конфигурационного файла BOOTSRV.CFG с необходимыми данными для всех адаптеров телемеханического комплекса . Пример файла BOOTSRV.CFG приведен ниже:

    13.1  granit.bin  BAUD2400
    13.4  granit.bin  BAUD2400 NO_MEANDR
    13.6  rpt.bin     BAUD100
    ╕  ╕    ╕         ╕
    ╕  ╕    ╕         L скорость обмена адаптера с УТМ
    ╕  ╕    L---------- имя файла с описанием протокола обмена с УТМ
    ╕  L--------------- логический номер адаптера "Синком-Е"
    L------------------ номер драйвера связи с адаптером (13 - ipxtmpkt)

    В последней посылке с конфигурацией от HOST-а в байтах с 49 по N будет передаваться строка из файла BOOTSRV.CFG - информационные байты после имени файла с описанием протокола обмена с ТМ. Для описанного выше примера это будет одна из строк:

    BAUD2400
    BAUD2400 NO_MEANDR
    BAUD100

    Строка описания конфигурации должна заканчиваться символом 0х0D (перевод строки) и не может быть более 90 байт.

!!!!! Квитанция адаптера на последнюю конфигурационную посылку не передается.

     4. Общий вид диагностической посылки адаптера "Синком-Е"
 
1..14 Заголовок Ethernet
15..44 Заголовок IPX
45 =?? - Логич. номер отправителя пакета 
46 =?? - Логич. номер получателя пакета
47 =?? - Порт, для которого выдается диагностика
48 =0xFD - Код протокола - диагностическая посылка
49 Если 0х00 - связь в норме, если 0хFF - нет связи
50..53 Число принятых посылок
54..57 Число переданых посылок
58..61 Число ошибок приема
62..65 Число неквитанций
66,67 КПК
     Диагностическая посылка формируется с периодом раз в 4 секунды.