После выполнения команды ПКК должен генерировать бит SX в поле состояния ответа для указания в ответе (X), что КОМАНДА ПРИНЯТА от адресованного функционального блока или внутренней схемы ПКК.

Возможен также случай невыполненной команды, при котором ERR = 0 и SX = 0, это может объясняться либо тем, что команда не принята блоком или схемой в ПКК, которым она адресована, либо команда требует операции канала крейта, когда ПКК в автономном режиме или в режиме обход. Эти ситуации могут быть различимы с помощью бита SQ в поле состояния ответа и бита 13 в регистре состояния (см. разд. 43).

Модули, отвечающие описанным ранее требованиям, могут дать ответ X = 0 всем командам, но можно использовать ответ X — N в целях опознания верно выполненных команд, как того требует табл. 13 (см. разд. 5.4.4 ГОСТ 27080).

  1. Б и т, индексирующий задержанную ошибку (DERR)

Бит DERR в 4-й позиции поля состояния указывает, успешно ли была выполнена предыдущая команда, полученная ПКК. Бит в положении «1» указывает, что предыдущая команда, полученная ПКК, содержала ошибку, индексированную по четности или (необязательно) неправильному МП- полю, или же, если цикл обмена КОМАНДА/ОТВЕТ был остановлен до выполнения команды, или если команда была выполнена, но не принята адресуемым модулем или устройством ПКК. Это в первую очередь связано с исправлением положения, когда сформированный ответ потерян из-за сбоев в ответной передаче или преждевременного прекращения цикла обмена КОМАНДА/ОТВЕТ.

Прежде чем завершить или прервать передачу КОМАНДА/ОТВЕТ, ПКК устанавливает бит регистра состояния, индексирующий о задержанной ошибке (DERR), в состояние логической «1», если ERR = 1 или X = 0, или обмен сообщениями КОМАНДА/ОТВЕТ прекращается преждевремен­но (см. разд. 46).

  1. Биты, указывающие о задержанном ответе (DSQ, DSX)

Это — биты в регистре состояния, указывающие о задержанном ответе, когда ответ искажен или потерян. Они обеспечивают способ доступа к ответам Q и X предыдущей команды, выполнен­ной ПКК.

Прежде чем завершить передачу КОМАНДА/ОТВЕТ, ПКК устанавливает биты о задержанном ответе (DSQ и DSX) регистра состояния, увязанные с ответами Q и X соответственного из адресо­ванного блока или внутренней схемы ПКК (см. разд. 46).

Если передача КОМАНДА/ОТВЕТ прекращена до выполнения команды, в результате чего нет достоверных ответов Q и X, относящихся к данной команде, биты DSQ и DSX должны быть возвра­щены в состояние логического «О».

  1. Исправление ошибки с помощью команды повторного чтения

Средство повторного чтения ПКК (см. 44.2) разрешает восстановление данных, производных от предыдущей операции чтения, но неудачно принятых в последовательный драйвер, из регистра чтения данных ПКК. Биты ERR и DERR обеспечивают информацию, необходимую для определе­ния выбора обращения за данными чтен ия: в регистре чтения ПКК или в их первоначальном источ­нике.

После посылки команды, предназначенной для выполнения операции чтения с разрушением (такой, как чтение и сброс), к блоку или внутренней схеме ПКК последовательный драйвер может получить:

  • достоверный ответ ERR = 0 и SX = 1. Имеет место операция чтения с разрушением данных, и требуемые данные находятся в поле данных чтения ответа;

  • достоверный ответ ERR = 1 или SX = 0. Чтение с разрушением не произошло, и требуемые данные все еще находятся в источнике. Последовательный драйвер должен повторить команду чте­ния с разрушением;

  • неверный ответ или никакого ответа. Бит ERR (если таковой имеется) ответа не является надежным указателем операции чтения с разрушением.

Способ исправления ошибок имеет отношение к этому последнему случаю, в котором после­довательный драйвер принимает ожидаемую сокращенную команду ПКК, но не принимает досто­верного ответа. При этих условиях последовательный драйвер должен посылать команду повторного чтения в ПКК (см. п. 42.2).

Если поле состояния ответа в команде повторного чтения указывает, что DERR = 1, операция чтения с разрушением не имеет место. Последовательный драйвер должен повторить операцию чтения с разрушением данных из источника.

Если ответ на команду повторного чтения указывает, что DERR = 0, то операция чтения с разрушением имела место, и требуемые данные находятся в поле данных чтения ответа на команду повторного чтения.

Эта процедура допускает исправление единственной ошибки (ошибки в ответе на исходную команду чтение с разрушением). Требуемые данные могут быть потеряны, если имеется дополни­тельная ошибка, например, если имеется ошибка в ответе на операцию повторного чтения.

Процедура исправления ошибки, описанная выше, применяется прежде всего к операциям чтения с разрушением, в которых на источник нельзя полагаться для получения тех же самых дан­ных, если операция его чтения повторяется. Если последовательный драйвер не получает достовер­ного ответа после посылки любой другой команды (чтение без разрушения, запись или управлене), возможно более простое исправление ошибки. Последовательный драйвер должен послать команду для чтения регистра состояния ПКК. Это обеспечивает информацию о предыдущей команде и дает возможность принять соответствующее решение повторить команду в случае необходимости.

РАЗДЕЛ 16 КРАТКОЕ ИЗЛОЖЕНИЕ: ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕЙСТВИЙ В ПКК

Этот раздел суммирует действия последовательного крейт-контроллера при обработке получа­емого байтового потока в виде переходов между девятью его основными состояниями в нормальных и ошибочных условиях. Эта информация также представлена в виде диаграмм на черт. 35 (пол­ностью) и 36 (в упрощенной форме, опускающей все переходы, обусловленные ошибками).



ПКК имеет девять основных состояний:

  • поиск заглавного байта;

  • прием команды;

  • выполнение команды;

  • посылка ответного сообщения;

  • поиск конечного байта;

  • посылка сообщения о требовании обслуживания;

  • потеря синхронизации байтов;

  • потеря синхронизации сообщения;

  • прохождение сообщения.

Последовательность основных состояний ПКК


Потеря

синхронизации ■ байтов


Вход - ОК


Потеря синхронизации


Вход=Р5


Поиск

заглавного — -3-
оаита


I Вход = ошибка четна- Г

J сти байта


Последовательность основных состояний ПКК
без указания переходов, обусловленных ошибками



Вход-РБ-ЮЬ


Черт. 36


Вход= ОК


-Bxod=OK-J

Автономный _ режим Режим,, Обход ".


Прием
команды


р- ,1,

Прохождение


прохождение і сообщения ТТ

Вход-РВ-^'. (Вход-РБ^дапрХ. имеется/ Посылка. !


Посс....,— сообщения О L - требовании і

Вход= РБ gb,/og^конечный j


Ошибка четности | или В поле ПС 1

вход^Рб—. ♦


I


| выход- конечный

С—контрольный байт SX-0 SX=0 SX‘X ex-о Вход=Рб. 1

емыі еякю еян.-о еляы х

Я-/

Посылка отВетногосаяіариї і выход* конечный контрольный байт ^~Вход=РБ


_ Выход=конечный контрольный байт Вхоо-РБ


^комы Исполнение

Поиск конечного

Байта

Вход=РБ

Вход =РБ-КА


РБ — разграничительный байт; КА — крейт адресован;

ОК — ошибка кадра; сплошные линии — нормальные
выходы; штриховые линии — выходы в результате ошибки


Черт. 35


Вход-РБ


Каждое такое состояние характеризуется:

  1. условиями для входа в данное состояние;

  2. байтами, принимаемыми ПКК при нормальной работе;

  3. байтами, передаваемыми ПКК при нормальной работе;

  4. условиями нормального выхода из данного состояния;

  5. условиями выхода из состояния в результате ошибки.

  1. Поиск заглавного байта

Это нормальное, пассивное состояние ПКК. ПКК принимает разграничительные байты (как правило, байты ожидания), за которым следует неразграничительный байт, рассматриваемый как заглавный байт сообщения. ПКК ретранслирует все полученные байты, включая заглавный, либо сразу либо с задержкой величины до трехбайтовых периодов. Из этого состояния существует три нормальных выхода и два выхода в результате ошибки.

  1. Выход в состояние ПРИЕМ КОМАНДЫ

Условие. ПКК принимает неразграничительный байт с правильной побайтовой четностью и с полем адреса крейта, согласующимся с его присвоенным адресом. Это заглавный байт сообщения, адресованного ПКК.

  1. Выход в состояние ПРОХОЖДЕНИЕ СООБЩЕНИЯ

Условие. ПКК получает неразграничительный байт с правильной байтовой четностью, но со­держимое поля «Адрес крейта», которое не совпадает с адресом, приписанным данному ПКК. Этот байт трактуется ПКК как заглавный байт сообщения к (от) другому (го) крейту (а).

  1. В ы х о д в состояние ПОСЫЛКА СООБЩЕНИЯ о требова­нии обслуживания

Условие. ПКК принимает разграничительный байт, и имеются соответствующие условия для инициирования запроса.

  1. Выход к состоянию ПРОХОЖДЕНИЯ СООБЩЕНИЯ в ре­зультате ошибки

Условие. ПКК принимает любой байт с неправильной четностью байта. Состояние ПРОХОЖ­ДЕНИЯ СООБЩЕНИЯ используется как способ ожидания конца сообщения.

  1. Выход к состоянию ПОТЕРЯ СИНХРОНИЗАЦИИ БАЙ­ТОВ в результате ошибки

Условие. ПКК обнаруживает ошибку в представлении байта при работе в поразрядно-последо­вательном режиме.

  1. Прием команды

Заглавный байт командного сообщения принят и ретранслирован. ПКК принимает последова­тельность байтов, составляющих остальную часть команды, включая контрольный байт. ПКК пере­дает конечный байт, за которым следуют байты ОЖИДАНИЯ (предполагается, что ретранслируется сокращенное командное сообщение, см. 13.2).

Когда ПКК принимает контрольный байт, он осуществляет контроль по четности. Существует один нормальный выход и пять выходов в результате ошибок.

  1. Выход в состояние ИСПОЛНЕНИЕ КОМАНДЫ

Условие. ПКК принимает выполненную команду с правильными байтовой и вертикальной четностью, а также с правильным Ml-полем (в случае его проверки).

  1. Вы ход в состояние ПОСЫЛКА ОТВЕТА в результате о ш'и б к и (ERR = 1)

Условие. ПКК принимает команду с неправильными байтовой или вертикальной четностью, или неправильным Ml-полем (в случае его контроля). Такая команда не выполняется. Ответ пред­ставляет трехбайтовое сообщение об ошибке с ERR — 1 и SX = 0.

  1. Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕНИЯ в результате ошибки (автономный режим)

Условие. ПКК находится в автономном режиме и принимает команду с правильной четностью и Ml-полем (в случае’контроля), с N-полем в диапазоне от N1 до N23. Такая команда не выполня­ется. Ответ представляет собой сообщение с ERR = 0, SX = 0 и длиной, определяемой F-полем команды.

  1. Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕНИЯ в результате ошибки (режим «обхо д»)

Условие. ПКК, находящийся в режиме обхода, принимает команду с правильной четностью и Ml-полем (в случае контроля), которая не сбрасывает байт 12, управляющий обходом, в регистре состояния. Такая команда не исполняется. Ответ представляет собой сообщение с ERR — 0, SX = 0, SQ = 1 и длиной, определяемой F-полем команды.

  1. Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ СООБ­ЩЕНИЙ в результате ошибки

Условие. ПКК принимает любой разграничительный байт. Ответ не посылается. Разряд с ука­занием о ЗАДЕРЖАННОЙ ОШИБКЕ DERR и регистре состояния устанавливается в состояние логической «1».

  1. Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ БАЙ­ТОВ в результате ошибки

Условие. ПКК обнаруживает ошибку в -байтовом кадре при работе в поразрядно-последова­тельном режиме.

Ответ не посылается.. Разряды с указанием о задержанной ошибке DERR в регистр состояния установлен в состояние логической «1».

  1. Состояние исполнения команды

Получена выполнимая команда. Это состояние продолжается до тех пор, пока не будет выпол­нена требуемая операция (включая любые периоды задержки, связанные с устройствами обхода и отключения) или пока операция не будет прекращена. ПКК обычно принимает байты пробел или неразграничительные байты с правильней или неправильной четностью и передает байты ожидания. Из этого состояния имеется один нормальный и два выхода в результате ошибки.

  1. Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕ­НИЯ

Условие. ПКК завершает цикл выполнения операций (по крайней мере, до того момента, когда имеются ответные сигналы Q, X и данные чтения). Это может произойти до приема первого байта «Пробел».

Ответ представляет собой сообщение с ERR = 0 и длиной, определяемой F-полем команды.

  1. Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ СООБ­ЩЕНИЯ в результате ошибки

Условие. ПКК принимает любой разграничительный байт. Ответ не посылается. Если стадия не достигнута, операция прекращается и DERR-бит (бит указания задержки ошибки) в регистре состояния устанавливается в состояние логической «1». Если стадия t достигнута, операция завер­шается, и так как ERR= 0, то DERR = X.

  1. Выход в состояние ПОТЕРЯ БАЙТОВОЙ СИНХРОНИЗА­ЦИИ в результате ошибки