После выполнения команды ПКК должен генерировать бит SX в поле состояния ответа для указания в ответе (X), что КОМАНДА ПРИНЯТА от адресованного функционального блока или внутренней схемы ПКК.
Возможен также случай невыполненной команды, при котором ERR = 0 и SX = 0, это может объясняться либо тем, что команда не принята блоком или схемой в ПКК, которым она адресована, либо команда требует операции канала крейта, когда ПКК в автономном режиме или в режиме обход. Эти ситуации могут быть различимы с помощью бита SQ в поле состояния ответа и бита 13 в регистре состояния (см. разд. 43).
Модули, отвечающие описанным ранее требованиям, могут дать ответ X = 0 всем командам, но можно использовать ответ X — N в целях опознания верно выполненных команд, как того требует табл. 13 (см. разд. 5.4.4 ГОСТ 27080).
Б и т, индексирующий задержанную ошибку (DERR)
Бит DERR в 4-й позиции поля состояния указывает, успешно ли была выполнена предыдущая команда, полученная ПКК. Бит в положении «1» указывает, что предыдущая команда, полученная ПКК, содержала ошибку, индексированную по четности или (необязательно) неправильному МП- полю, или же, если цикл обмена КОМАНДА/ОТВЕТ был остановлен до выполнения команды, или если команда была выполнена, но не принята адресуемым модулем или устройством ПКК. Это в первую очередь связано с исправлением положения, когда сформированный ответ потерян из-за сбоев в ответной передаче или преждевременного прекращения цикла обмена КОМАНДА/ОТВЕТ.
Прежде чем завершить или прервать передачу КОМАНДА/ОТВЕТ, ПКК устанавливает бит регистра состояния, индексирующий о задержанной ошибке (DERR), в состояние логической «1», если ERR = 1 или X = 0, или обмен сообщениями КОМАНДА/ОТВЕТ прекращается преждевременно (см. разд. 46).
Биты, указывающие о задержанном ответе (DSQ, DSX)
Это — биты в регистре состояния, указывающие о задержанном ответе, когда ответ искажен или потерян. Они обеспечивают способ доступа к ответам Q и X предыдущей команды, выполненной ПКК.
Прежде чем завершить передачу КОМАНДА/ОТВЕТ, ПКК устанавливает биты о задержанном ответе (DSQ и DSX) регистра состояния, увязанные с ответами Q и X соответственного из адресованного блока или внутренней схемы ПКК (см. разд. 46).
Если передача КОМАНДА/ОТВЕТ прекращена до выполнения команды, в результате чего нет достоверных ответов Q и X, относящихся к данной команде, биты DSQ и DSX должны быть возвращены в состояние логического «О».
Исправление ошибки с помощью команды повторного чтения
Средство повторного чтения ПКК (см. 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
Вход-РБ
Каждое такое состояние характеризуется:
условиями для входа в данное состояние;
байтами, принимаемыми ПКК при нормальной работе;
байтами, передаваемыми ПКК при нормальной работе;
условиями нормального выхода из данного состояния;
условиями выхода из состояния в результате ошибки.
Поиск заглавного байта
Это нормальное, пассивное состояние ПКК. ПКК принимает разграничительные байты (как правило, байты ожидания), за которым следует неразграничительный байт, рассматриваемый как заглавный байт сообщения. ПКК ретранслирует все полученные байты, включая заглавный, либо сразу либо с задержкой величины до трехбайтовых периодов. Из этого состояния существует три нормальных выхода и два выхода в результате ошибки.
Выход в состояние ПРИЕМ КОМАНДЫ
Условие. ПКК принимает неразграничительный байт с правильной побайтовой четностью и с полем адреса крейта, согласующимся с его присвоенным адресом. Это заглавный байт сообщения, адресованного ПКК.
Выход в состояние ПРОХОЖДЕНИЕ СООБЩЕНИЯ
Условие. ПКК получает неразграничительный байт с правильной байтовой четностью, но содержимое поля «Адрес крейта», которое не совпадает с адресом, приписанным данному ПКК. Этот байт трактуется ПКК как заглавный байт сообщения к (от) другому (го) крейту (а).
В ы х о д в состояние ПОСЫЛКА СООБЩЕНИЯ о требовании обслуживания
Условие. ПКК принимает разграничительный байт, и имеются соответствующие условия для инициирования запроса.
Выход к состоянию ПРОХОЖДЕНИЯ СООБЩЕНИЯ в результате ошибки
Условие. ПКК принимает любой байт с неправильной четностью байта. Состояние ПРОХОЖДЕНИЯ СООБЩЕНИЯ используется как способ ожидания конца сообщения.
Выход к состоянию ПОТЕРЯ СИНХРОНИЗАЦИИ БАЙТОВ в результате ошибки
Условие. ПКК обнаруживает ошибку в представлении байта при работе в поразрядно-последовательном режиме.
Прием команды
Заглавный байт командного сообщения принят и ретранслирован. ПКК принимает последовательность байтов, составляющих остальную часть команды, включая контрольный байт. ПКК передает конечный байт, за которым следуют байты ОЖИДАНИЯ (предполагается, что ретранслируется сокращенное командное сообщение, см. 13.2).
Когда ПКК принимает контрольный байт, он осуществляет контроль по четности. Существует один нормальный выход и пять выходов в результате ошибок.
Выход в состояние ИСПОЛНЕНИЕ КОМАНДЫ
Условие. ПКК принимает выполненную команду с правильными байтовой и вертикальной четностью, а также с правильным Ml-полем (в случае его проверки).
Вы ход в состояние ПОСЫЛКА ОТВЕТА в результате о ш'и б к и (ERR = 1)
Условие. ПКК принимает команду с неправильными байтовой или вертикальной четностью, или неправильным Ml-полем (в случае его контроля). Такая команда не выполняется. Ответ представляет трехбайтовое сообщение об ошибке с ERR — 1 и SX = 0.
Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕНИЯ в результате ошибки (автономный режим)
Условие. ПКК находится в автономном режиме и принимает команду с правильной четностью и Ml-полем (в случае’контроля), с N-полем в диапазоне от N1 до N23. Такая команда не выполняется. Ответ представляет собой сообщение с ERR = 0, SX = 0 и длиной, определяемой F-полем команды.
Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕНИЯ в результате ошибки (режим «обхо д»)
Условие. ПКК, находящийся в режиме обхода, принимает команду с правильной четностью и Ml-полем (в случае контроля), которая не сбрасывает байт 12, управляющий обходом, в регистре состояния. Такая команда не исполняется. Ответ представляет собой сообщение с ERR — 0, SX = 0, SQ = 1 и длиной, определяемой F-полем команды.
Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ СООБЩЕНИЙ в результате ошибки
Условие. ПКК принимает любой разграничительный байт. Ответ не посылается. Разряд с указанием о ЗАДЕРЖАННОЙ ОШИБКЕ DERR и регистре состояния устанавливается в состояние логической «1».
Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ БАЙТОВ в результате ошибки
Условие. ПКК обнаруживает ошибку в -байтовом кадре при работе в поразрядно-последовательном режиме.
Ответ не посылается.. Разряды с указанием о задержанной ошибке DERR в регистр состояния установлен в состояние логической «1».
Состояние исполнения команды
Получена выполнимая команда. Это состояние продолжается до тех пор, пока не будет выполнена требуемая операция (включая любые периоды задержки, связанные с устройствами обхода и отключения) или пока операция не будет прекращена. ПКК обычно принимает байты пробел или неразграничительные байты с правильней или неправильной четностью и передает байты ожидания. Из этого состояния имеется один нормальный и два выхода в результате ошибки.
Выход в состояние ПОСЫЛКА ОТВЕТНОГО СООБЩЕНИЯ
Условие. ПКК завершает цикл выполнения операций (по крайней мере, до того момента, когда имеются ответные сигналы Q, X и данные чтения). Это может произойти до приема первого байта «Пробел».
Ответ представляет собой сообщение с ERR = 0 и длиной, определяемой F-полем команды.
Выход в состояние ПОТЕРЯ СИНХРОНИЗАЦИИ СООБЩЕНИЯ в результате ошибки
Условие. ПКК принимает любой разграничительный байт. Ответ не посылается. Если стадия не достигнута, операция прекращается и DERR-бит (бит указания задержки ошибки) в регистре состояния устанавливается в состояние логической «1». Если стадия t достигнута, операция завершается, и так как ERR= 0, то DERR = X.
Выход в состояние ПОТЕРЯ БАЙТОВОЙ СИНХРОНИЗАЦИИ в результате ошибки