Л.И. Брусияовский, Л.Р. Конкина,
В.В. Скляров
ИСПОЛЬЗОВАНИЕ АВТОНОМНОЙ СТАНЦИИ ПЕРВИЧНОГО СБОРА ИНФОРМАЦИИ
НА БАЗЕ УНИВЕРСАЛЬНОЙ МИКРОЭВМ "ЭЛЕКТР0НИКА/НЦ-80" В РАСПРЕДЕЛЕННОЙ РАЗНОРОДНОЙ СИСТЕМЕ ФАЙЛОВОГО ОБМЕНА КЕ(Ш
Введение
Работа, описываемая в данной статье, ведется в рамках создания автоматизированной интегрированной системы компьютерной оптики, которая включает в себя первичный сбор и обработку информации, управление технологическим процессом изготовления элементов компьютерной оптики, проведением испытаний готовых элементов КО, обработку результатов экспериментов и т.д.
Настоящая статья посвящена описанию автономных средств автоматизации процесса первичного сбора информации и передачи ее для дальнейшей обработки в инструментально-вычислительный комплекс (ИВК).
Состав программного и технического обеспечения
Автоматизированная станция первичного сбора и передачи информации (АССП) создается на базе широко распространенной одноплатной микро-ЭВМ "Электроника/НЦ-80", которая является экономичной, дешевой, выпускается большим тиражом.
В качестве ИВК может использоваться компьютер любого типа с необходимыми для выполнения конкретной задачи ресурсами. Таким образом, комплекс АССП - ИВК состоит, в общем случае, из разнородных вычислительных средств. Для обмена информацией между АССП и ИВК был выбран протокол файлового обмена КЕИМГГ. Выбор именно этого протокола обусловлен следующими причинами:
во-первых, КЕИМ1Т обеспечивает надежную передачу данных между разнородными ЭВМ;
во-вторых, КЕИМ1Т поддерживает передачу по обычным терминальным линиям связи (коммутируемым и физическим выделенным линиям), не требуя специального сетевого обеспечения (например, дорогостоящих сетевых адаптеров).
Кроме того, у нас накоплен уже некоторый опыт работы с этим протоколом в различных операционных системах и на различных ЭВМ [1].
Вышеизложенные соображения объясняют наше решение реализации АССП на базе микроэвм "Электроника/НЦ-80" с использованием протокола КЕИМ1Т для обмена данными.
В соответствии с задачами АССП ее программное обеспечение можно подразделить на три основные части:
- управляющий монитор;
- целевое программное обеспечение, осуществляющее сбор информации с различных устройств связи, подключенных к станции;
- сетевое программное обеспечение для обмена информацией между АССП и ИВК, реализующее протокол файлового обмена КЕИМ1Т.
Эта последняя часть будет рассмотрена нами более подробно.
Формальное описание протокола КЕИНТ
Протокол КЕРМ1Т предназначен для обмена файлами между разнородными компьютерами по последовательным линиям связи [2].
КЕЯМ1Т - символьно-ориентированный протокол, способный поддерживать передачу символьных и двоичных данных как в дуплексном, так и в полудуплексном режимах. Особенностью протокола КЕИМ1Т является возможность передавать как отдельные файлы, так и группы файлов, используя обобщенные имена. При этом имена файлов приводятся к нормальной форме: <имя>.<тип>.
Единицей передаваемых данных для протокола КЕЯМ1Т является "пакет". Это ограниченная последовательность символов длиною до 94, содержащая поля данных, служебные и управляющие поля, обеспечивающие правильную и
полную передачу информации. Протоколом предусмотрено получение подтверждения на каждый переданный пакет. Формат пакета следующий:
MARK ! LEN ! SEQ ! TYPE ! DATA ! CHECK
Все поля состоят из ASCII-символов. Содержание полей: MARK - символ, обозначающий начало пакета, обычно CTRL-A? LEN - длина пакета минус два, то есть число символов в полях SEQ,TYPE,
DATA,CHECK. Максимальное значение LEN равно 94; SEQ - последовательный номер пакета по mod64, то есть после каждой
группы из 64 пакетов значение SEQ устанавливается в О? TYPE - тип пакета, может принимать одно из следующих значений: D - пакет данных;
Y - аск - подтверждение успешной передачи; N - пак - неподтверждение передачи; S - send-init - инициализация передачи; В - break - завершение процесса обмена (транзакции*); F - заголовок файла; Z - конец файла? Е - ошибка передачи;
Т - зарезервирован для внутреннего использования. Кроме этих типов, в режиме SERVER используются дополнительные типы: А - атрибуты файла; R - инициализация приема; С - системная команда; К - команда KERMIT;
G - общие команды KERMIT с подкомандами; I - инициализация обмена;
DATA -
"содержание" пакета; интерпретируется в соответствии с типом
пакета. Так, если тип С, или К, или G, то поле данных содержит текст команды;
CHECK - контрольная сумма по всем полям, кроме MARK и CHECK.
Таким образом, все типы пакетов протокола KERMIT имеют одинаковый формат, различаясь только содержанием поля данных. Особый формат имеет 5-пакет, в котором указываются параметры обмена данными, устанавливаемые в начале передачи.
Кроме формата пакета, протокол KERMIT определяет правила передачи
файлов во время одной транзакции. Последовательность передачи пакетов следующая:
- передающая программа ("передатчик") посылает Э-пакет, определяющий параметры обмена; принимающая программа ("приемник") подтверждает передачу У-пакетом;
♦Транзакция здесь - это "сеанс" обмена пакетами, начинающийся с 5-пакета и заканчивающийся В- или Е-пакетом и включающий в себя передачу одного или более файлов в одном и том же направлении.
- передатчик посылает F-пакет -заголовок файла, содержащий имя файла в поле данных; приемник подтверждает F-пакет пустым полем данных или именем в поле данных, под которым этот файл будет запомнен;
- передатчик пересылает содержимое файла в D-пакетах; каждый D-пакет подтверждается приемником;
- когда передан весь файл, передатчик посылает Z-пакет (конец файла) ; если есть еще файлы для передачи , процесс повторяется, начиная с передачи F-пакета; если же все файлы переданы, то передатчик посылает В-пакет (конец транзакции).
При возникновении фатальной ошибки передачи посылается Е-пакет, вызывающий аварийное завершение транзакции.
Обмен данными по протоколу KERMIT может вестись в двух режимах -простом (базовом) и SERVER. SERVER-это программа KERMIT, запущенная на удаленном конце соединения. В отличие от базового режима, когда KERMIT запускается на обоих концах и управляющие команды выдаются пользователем как с приемного, так и с передающего узлов, режим SERVER характеризуется тем, что все управле-
ние процессом обмена ведется с одного конца соединения после запуска программы на удаленном конце в режиме SERVER. Во время транзакции все команды SERVER получает в С—, К-, R- или G-пакетах.
На рисунке изображена диаграмма состояний приемо-передающего узлау работающего в режиме SERVER. На этой диаграмме состояния узла обозначены окружностями, переходы из состояния в состояние - стрелками, а рядом со стрелкой указана причина перехода. Причиной перехода может быть получение пакета данных, управляющего пакета или пакета-подтверждения, или тайм-аут.
Начальное состояние узла определяется командой пользователя, заданной после запуска программы KERMIT. Если это команда "Server", то начальным будет состояние REC-SERVER-IDLE, то есть состояние между транзакциями, в котором SERVER ждет управляющей команды. Задание команд "Get" или "Host" вводит в состояния SEND-GEN-COM или SEND-SERVER-INIT - состояния передачи управляющей команды режиму SERVER.
На диаграмме выделены также следующие состояния:
REC-FILE —ожидание F-пакета (заголовка файла);
REC-DATA - ожидание пакета данных или пакета EOF;
SEND-INIT - инициализация передачи;
SEND-FILE - передача F-пакета;
SEND-DATA - передача пакета данных;
SEND-EOF - передача пакета EOF (конец файла);
SEND-BREAK - передача В-пакета (конец транзакции);
COMPLETE - успешное завершение процесса передачи;
ABORT - аварийное завершение процесса передачи.
Режим SERVER более удобен в работе, так как не требует непосредственного ведения диалога на удаленном конце соединения для управления приемом/передачей. Для нашей задачи создания АССП это особенно важног поскольку станция должна работать автономно, то есть без непосредственного управления пользователем.
Особенности реализации программного обеспечения АССП
Сетевое программное обеспечение АССП реализует именно SERVER - ре жим протокола KERMIT.
В связи с требованием экономичности (объем адресуемой памяти -64 Кбайт), предъявляемым к программному обеспечению АССП, в программе
I
K> Os
I
Other
Abort
""\Y(N)\ Send- ^N(N+1) Data ) N(N)/
Other
Abort
Other
Abort
Send-Break
Other
Abort
Y(N] N(N+i:
Y(N) eof N(N+1)
Y(N), N(0)
^Abort^
Abort
Ree-Server-Idle
/ Send-QtherJ Server \ lnit
Other
Timeout
Abort
Other
Complete
Abort
Other
Abort
Abort
1(0)
Timeout other
Other
F(N-l), X(N-l) Timeout
обмена данными реализуются лишь основные возможности протокола, такие как выполнение команд SEND, RECEIVE, GET, CONNECT в режиме SERVER, а также некоторых команд ведения диалога с удаленным SERVER. Однако программа "открыта" для внесения дополнений, так что, используя для создания АССП микроэвм "Электроника/НЦ-80.3" с адресуемым пространством до 2 56 Кбайт, можно реализовать расширенные возможности KERMIT.
Программное обеспечение АССП разрабатывается и отлаживается на ИВК в среде Micro Power/Pascal, позволяющем создавать автономные программные приложения. Затем готовое приложение загружается в АССП и работает автономно.
Загрузка может производиться по линиям связи с ИВК или непосредственно из ППЗУ, в котором "зашито" программное приложение для АССП.
Литература
1. Брусиловский Л.И., Отливанчик Е.А. и др. Применение пакета файлового обмена KERMIT для взаимодействия традиционных систем автоматизации на базе разнородной вычислительной техники. - Компьютерная оптика, вып. 2. Автоматизация проектирования и технологии. М.: МЦНТИ, 1987.
2. Frank da Cruz. Kermit Protocol Manual. Fifth Edition. CUCCA, New York, 3 April, 1984.