Описание пакетного протокола IPXTMPKT адаптера
"Синком-Е"
Адаптер "Синком-Е" кроме сетевого
порта (с протоколом IPXTMPKT) имеет еще два порта для обмена с внешними
устройствами:
-
синхронный порт (разьем X5) - в протоколе устройства телемеханики;
-
асинхронный порт (разьем X1) - в протоколе COMTMPKT.
Порты позволяют вести обмен в дуплексном режиме.
Информационные посылки могут передаваться в оба направления и требуют ответной
квитанции. Асинхронный порт адаптера "Синком-Е" может быть использован
только для транзитных протоколов - все посылки, принимаемые из асинхронного
порта транслируются без изменений в локальную сеть, а посылки
локальной сети с номером порта отличным от 0x00 или 0xFD или 0xFE транслируются
в асинхронный порт. Сетевой порт адаптера "Синком-Е" допускает два
типа форматов пакета Ethernet:
-
Ethernet 802.3
-
Ethernet II
1. Общий вид информационной посылки
Заголовок Ethernet (байты с 1-го по 14-ый):
Сетевой адрес узла получателя (старший разряд адреса здесь и далее передается
первым)
Сетевой адрес узла отправителя
Для Ethernet 802.3 - длина пакета (байты с 15 до N+2)
Для ETHERNET II - константа 0x8137 (в 13-ом байте 0х81)
Заголовок IPX (байты с 15-го по 44-ый):
Поле контрольной суммы IPX. Поле по назначению не используется, а передается
константа 0xFFFF
Длина пакета IPX (байты с 15 до N+2)
Счетчик сетевых мостов, пройденых пакетом. Поле по назначению не используется,
а передается константа 0x00
Тип пакета - константа 0x04
Номер сети получателя - константа 0х00000000
Сетевой адрес узла получателя (тот же, что и в заголовке Ethernet)
Номер сокета получателя - константа 0x3E3F
Номер сети отправителя - константа 0х00000000
Сетевой адрес узла отправителя (тот же, что и в заголовке Ethernet)
Номер сокета отправителя - константа 0x3E3F
Заголовок задачи (байты с 45-го по 48-ой):
Логический номер отправителя пакета (Д.А.П). Соответствие
логических номеров физическим задается в файле ipxtmpkt.cfg)
Логический номер получателя пакета (Д.А.П).
Номер порта адаптера (Д.А.П) 0 - для синхронного
порта "Синком-Е" , 1 - для асинхронного порта "Синком-Е"
Идентификатор протокола
Данные задачи:
Поле данных
Контрольная последовательность (КПК):
КПК байт с 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
}
Коды протоколов:
-
0x01 - ТМ-512 <файл конфигурации - tm512.bin>
-
0x02 - КП Гранит (режим "подслушивания") <granit.bin>
-
0x03 - РПТ-80 дальний (КП-ДП, АИСТ) <rpt.bin или rpt_c.bin>
-
0x04 - КП ТМ-120
-
0x05 - КП Компас <compas.bin>
-
0x08 - КП Гранит (с меандром) <granit.bin>
-
0x0A - РПТ-80 ближний со стороны РПТ
-
0x0B - РПТ-80 ближний со стороны ОИК
-
0x0E - КП MST
-
0x0F - Мультиплексор MST
-
0x10 - РПТ-80 дальний (КП-ДП, АИСТ) для БЦИ
-
0x11 - межмашинный транзитный протокол
-
0x80..0x90, 0xA0 - посылки загрузки программы
-
0xFD - диагностическая посылка
Описание информационных посылок для различных
протоколов приводятся в отдельных документах. Длина информационной посылки
не должна превышать 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 секунды.