Фрагмент переключающего устройства (черт. 32) показывает организацию релейных контактов для переключения одного из сигналов D-порта. В полном переключающем устройстве для последовательно-поразрядных сигналов D-порта должно быть предусмотрено два таких коммутационных устройства: одно — для информационного сигнала и другое — для тактового сигнала. Этот пример предполагает, что цепь канала передачи данных проходит через все ПКК и затем возвращается в последовательный драйвер путем параллельного соединения (но не обязательно проходит через данный ПКК, хотя для этого могли бы быть использованы соединения шин 1 и 2 (см. 31.2), так что прямая и обратная части ветви доступны переключающему устройству. Переключающее устройство соединяет прямую и обратную части ветви, образуя тем самым укороченный контур и отключая остальную часть контура и соединенные с ним контроллеры. Тактовые сигналы, подводимые к отключенной части цепи, остаются таким образом в фиксированном состоянии, так что отключенные контроллеры не могут ни принять, ни передать сообщения.
Пример переключения схемы для одного сигнала
D-порта
Прямая Ветвь канала Обратная передачи данных ветвь
Устройства переключения
Обратный путь
Управление переключателем
Наружный путь канала передачи данных
ПКК
Д-Вход
j1
йом логическом
Черт. 32
Примечание — Выход тактового сигнала к отключеНИОЛЧМ состоянии благодаря условиям в точках *—*
.При отключении питания переключатели в устройстве отключения должны быть в таком положении, как показано на черт. 31. При этом секции МП, проходящие через данное устройство, не будут отключены.
Возможны другие варианты защиты, как, например, дублированные секции МП, в результате чего вся цепь может быть восстановлена, если имеется повреждение только одной из дублированных секций. Контакт 25 у входного D-порта каждого ПКК резервирован для третьего сигнала управления и может быть использован в более сложных способах переключения цепи.
Потеря синхронизации
Синхронизация сообщений зависит от способности крейт-контроллеров и последовательного драйвера распознать заглавный и разграничительные байты каждого сообщения. Ошибки в тактовых или информационных сигналах (особенно разделительные биты) могут привести к потере синхронизации сообщений. В ПКК или ПД потеря синхронизации может произойти из-за того, что в ПКК или ПД разграничительные байты приняты в искаженной форме. Поэтому в этих устройствах синхронизация сообщения может восстанавливаться теми средствами, которые описаны в разд. 40.3.
Байтовая синхронизация зависит от способности ПКК и ПД в поразрядно-последовательном режиме распознать старт/стоп биты байтовых кадров. Ошибки тактовых или информационных сигналов (в частности, в старт/стоп битах) могут привести к потере байтовой синхронизации. ПКК или ПД распознает, что потеря произошла из-за получения логического «0» в момент, когда должен появиться стоп-бит. Байтовая синхронизация может восстановиться теми средствами, которые описаны в 41.3.
Ошибки в передаче сигналов
Основной способ обнаружения ошибок из-за искажения тактовых или информационных сигналов — это применение кода геометрического обнаружения ошибок с байтовыми (по рядам) кодами и кодами четности по столбцам. Вспомогательный способ — это анализ формата сообщений, в частности, контекста, в котором разрешены разграничительные байты.
П р и н ц и п геометрического кода
Геометрический код обнаружения ошибок — это простой, но эффективный метод обнаружения ошибок передачи в последовательных магистралях, используемых для МП. Такой код легко применим к сообщениям различной длины и в нем используются коды четности, которые легко формируются и контролируются.
Основной принцип обнаружения геометрического кода, используемого в МП, заключается в том, что массив данных представляется в виде матрицы из т строк по п столбцов (черт. 33).
Каждая строка имеет дополнительный бит для сохранения нечетности, а каждый столбец имеет дополнительный бит для сохранения четности, в результате чего образуется увеличенный массив из т + 1 строк по п + 1 столбцов.
Ф о р м и р о в а н и е геометрического кода
Принцип такого формирования для использования в МП показан на черт. 34.
В данном случае биты четности Ь. в байте «1» сохраняют признак нечетности по всему байту, включая разделительный бит d! и шесть битов поля информации от ап до а.б.
Таким образом:
bt= а„ + ай ... + а(< + Ф,
где знак «+» обозначает функцию «Исключающее ИЛИ» (сумму по модулю 2).
Байт всегда содержит нечетное число бит с информацией «1».
В последнем байте (сумм-байт в командных сообщениях конечный и сумм-байт в сообщениях ответа и запроса) каждый из шести битов до'С6 сохраняет признак четности по всему столбцу разрядов поля информации от а., до ат..
Таким образом, для столбца «/»:
С. = ау+ ау. . . + а^, и столбец всегда содержит четное число бит с информацией «1».
Геометрический код обнаружения
ошибок в применении
к последовательной магистрали
Черт. 33
Принцип формирования геометрического кода обнаружения ошибок (применение к последовательной магистрали, см. черт. 34)
Ч
^■-разграничительные биты в m-t-f байтах
_ Ь; - биты нечетности бай - тоб в т+1 байтах
а ---биты информационного поля
ерт. 34Биты 7 и 8 в этом последнем байте не являются битами четности столбцов, но соответственно t/ — разделительный бит, а />т+) — бит признак четности конечного байта.
Таким образом:
b — С + С, . . . + С- + d .
1 2 /и+1
Последовательный драйвер будет генерировать правильный геометрический код обнару-. жения ошибки во всех адресованных командных сообщениях.
Каждый ПКК будет контролировать геометрический код, детектируя ошибки во всех командных сообщениях, адресованных ему.
Каждый ПКК будет генерировать правильный геометрический код во всех сообщениях ответа и запроса, которые он передает.
Последовательный драйвер должен контролировать геометрический код и детекторную ошибку в том коде, который он принимает от ПКК.
X а р а к т е р и с т и к а геометрического кода
Геометрический код обнаружения ошибки, включающий массив данных из т строк на п столбцов, требует передачи т+1 строк по и+1 столбцов и обладает следующими свойствами:
он обнаруживает местонахождение одной, двух или трех ошибок в увеличенном массиве т+1 по и+1 столбцов;
он обнаруживает любое нечетное число ошибок независимо от их распределения внутри блока;
он обнаруживает все группы ошибок до п+2 битов в длину;
он обнаруживает большую часть ошибок, не включенных в пп. 1) — 3). Например, из всех 4-битовых ошибок в блоке он не может детектировать те, которые расположены по вершинам некоторого прямоугольника.
Характеристика геометрических кодов может быть представлена для случайной частоты появления ошибок по битам. На практике сбои в телефонных каналах не могут характеризоваться случайными независимыми шумами, и в сочетании с последовательным каналом любые сбои в разграничительных битах обнаруживаются скорее контекстом, нежели контролем по четности в столбце. Однако некоторые ориентировочные характеристики геометрического кода из восьми столбцов, примененного в условиях случайных помех, указывает на его преимущества.
Если канал связи имеет произвольную частоту появления ошибок, при которой вероятность ошибочного бита равна 10-4, то после применения процедуры обнаружения ошибки вероятность того, что массив данных содержит необнаруженную ошибку, приблизительно равна 10-13 для девяти байтовых блоков и І014 для трех байтовых блоков. Если вероятность битовой ошибки 10-5, вероятность того, что блок данных содержит необнаруженную ошибку, 1017 и 10-18 соответственно для девятибайтовых и трехбайтовых блоков.
В качестве примера можно сказать, что если девятибайтовые сообщения передаются со скоростью 2000 бит/с с вероятностью появления ошибок 10-4, средняя частота ошибок в канале —1 битошибка в 5 с, но средняя частота появления блоков с необнаруженными ошибками сократится до одного массива за 104 года.
Обнаружение ошибки в контексте
В редких случаях, когда повторяющиеся ошибки не обнаруживаются геометрическим кодом, предусмотрена дополнительная защита в виде структуры сообщений, которая требует, чтобы определенные биты и поля появлялись в соответствующем порядке.
Ошибки в разграничительном бите приводят к появлению байтов в неправильном контексте и вследствие этого — к потере синхронизации (см. 40.2).
Необнаруженные ошибки в битах SF8 и SF16 поля функций команды могут привести к тому, что ПКК будет ожидать поле данных записи, когда его нет, или наоборот.
Если это произойдет, то ПКК не распознает точно четность по столбцу, и таким образом четность столбца, очевидно, будет нарушена.
Если ПКК будет выполнять соответствующий текст, то при этом могут быть выявлены необнаруженные ошибки в Ml-поле команды, в результате чего крейт-контроллером будет отвергнуто нарушенное командное сообщение.
О б и а р у ж е н и е ошибки в блоках
Типичный функциональный блок КАМАК воспринимает некоторые субадресы и функции из полного набора. Поэтому существует возможность дополнительной защиты против ошибок, так как неверная команда, возможно, приведет к появлению ответа X = 0 либо из адресованного блока, либо из какого-то другого блока, или из незанятой станции крейта.
В особых случаях, где необходима максимальная безопасность против ложных операций в блоке из-за ошибки в команде, блок может включать дополнительные профилактические устройства. Например, блок можно спроектировать таким образом, чтобы использовалась избыточность в командах или данных для защиты против ложного выполнения особо важной команды.
Сообщение при обнаружении ошибки
Когда крейт-контроллер обнаруживает нарушение четности байта или столбца в полученной команде, он не может полагаться на содержание функционального поля для определения длины ответа. Поэтому ПКК генерирует ответное сообщение ОШИБКА с постоянной длиной 3 байта, в котором разряд в поле состояния, индексирующий ошибку, находятся в состоянии «1». Ответ- сообщение ОШИБКА — посылается также, если в результате дополнительного теста ПКК обнаруживает не нулевое содержание МП-поля любого сообщения, адресованного ему (см. 16.7).
Указание об ошибке в ответах
Поле состояния в ответе содержит указание об ошибке, относящейся к выполнению ПКК текущей и предыдущей команд.
Б ит, указывающий об ошибке (ERR)
Бит, индексирующий ошибку, занимает первую позицию поля состояния ответа и указывает, обнаружил ли ПКК ошибки в текущей команде в результате проверки четности байта и столбца и (возможно) Ml-поля.
Если ERR = 0, команда выполняется ПКК (хотя необязательно принимается адресованным блоком). Если ERR = 1, то ПКК обнаруживает по четности ошибку (см. 61.2) или неправильное поле Ml (см. 16.7), и поэтому не выполняет команду. Ответы, в которых бит, индексирующий ошибку, находится в состоянии «1», всегда представляют собой трехбайтовое сообщение без чтения поля данных (см. табл. 13).
Таблица 13 — Указание ошибки в ответе
Результат выполнения команды |
Сообщения об ответе |
Длина в байтах |
||
Поле состояния |
||||
ERR |
SX |
SQ |
||
Правильно |
0 |
1 |
Q* |
3 или 7 |
Неправильно Автономный режим работы** |
0 |
0 |
0 |
3 или 7 |
Команда не принята** |
0 |
0 |
0 |
3 или 7 |
Обход |
0 |
0 |
1 |
3 или 7 |
Не выполнена (ошибки четности или МІ-ошибка) |
1 |
0 |
0 |
3 |
* Ответ из адресованного модуля или контроллера. |
|
|
|
|
** Эти состояния можно определить путем |
считывания содержимого регистра состояния. Бит 13, равный 1, |
|||
указывает на автономный режим работы ПКК. |
|
|
|
|
Если ПКК обнаруживает нарушение четности байта или столбца в полученной команде, то он должен установить бит, индексирующий ошибку (ERR) в поле состояния ответа, в положение «1».
Если ПКК проверяет Ml-поле полученных сообщений и обнаруживает, что содержание поля не равно «00», он должен установить бит, индексирующий ошибку (ERR), в поле состояния ответа в состоянии «1» (необязательный тест).
Бит, индексирующий, что КОМАНДА ПРИНЯТА (SX)
Бит SX во 2-й позиции поля состояния соответствует ответу КОМАНДА ПРИНЯТА (X) от МК (для команд, поступающих на функциональные блоки) или от других внутренних схем ПКК (для команд, адресованных ПКК). Когда ERR-1, то это значит, что команда не выполнена, при этом бит SX не имеет значения и произвольно определяется как SX = 0 (см. табл. 13).