ГОСТ Р МЭК 61142-2001
Группа П32
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ОБМЕН ДАННЫМИ ПРИ СЧИТЫВАНИИ ПОКАЗАНИЙ СЧЕТЧИКОВ, ТАРИФИКАЦИИ И УПРАВЛЕНИИ НАГРУЗКОЙ
Обмен данными по локальной шине
Data exchange for meter reading, tariff and load control. Local bus data exchange
ОКС 17.220.20
ОКП 42 2800
Дата введения 2003-01-01
Предисловие
1 РАЗРАБОТАН И ВНЕСЕН Техническим комитетом по стандартизации ТК 232 "Аппаратура для измерения электрической энергии и контроля нагрузки"
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта Российской Федерации от 24 декабря 2001 г. N 557-ст
3 Настоящий стандарт содержит полный аутентичный текст международного стандарта МЭК 61142-93 "Обмен данными при считывании показаний счетчиков, тарификации и управлении нагрузкой. Обмен данными по локальной шине"
4 ВВЕДЕН ВПЕРВЫЕ
5 ПЕРЕИЗДАНИЕ. Февраль 2007 г.
1 Общие положения
1.1 Область применения
Настоящий стандарт описывает процедуру обмена данными по локальной шине в случае, когда несколько тарифных устройств, распределенных в пространстве, соединено специальной шиной. Считывание данных этих тарифных устройств может осуществляться посредством подключения программирующе-считывающего устройства к центральному магнитному разъему.
Стандарт устанавливает требования, предъявляемые к аппаратным средствам и протоколам для локальных систем. Требования для дистанционных систем рассматриваются в другом стандарте.
Настоящий стандарт распространяется на системы с локальной шиной. В этих системах портативное программирующе-считывающее устройство (далее - первичная или управляющая станция/контроллер) соединяется с несколькими тарифными устройствами, так называемыми вторичными или рабочими станциями, через шину, имеющую гибкую структуру.
Контроллер соединяется с шиной с помощью магнитного (индуктивного) разъема. Сама по себе шина пассивна, а все тарифные устройства, количество которых ограничено, электрически изолированы от нее.
В качестве основы протокола принята модель взаимосвязи открытых систем (ВОС) в соответствии с ГОСТ 28906, содержащая четыре уровня: физический, канальный, сеансовый и прикладной.
Протокол обеспечивает считывание и программирование тарифных устройств, позволяет обнаруживать и идентифицировать так называемые "забытые" станции, которые не зарегистрированы в базе данных портативного контроллера.
Протокол разработан специально для средств, определяющих качество и количество потребляемой электроэнергии, а также для средств измерения прочности электрической изоляции. Хотя протокол имеет определенную направленность, его применение остается за потребителем. Использование локальной шины данных для систем связи типа "точка - точка" также прерогатива потребителя.
1.2 Нормативные ссылки
В настоящем стандарте использована ссылка на ГОСТ 28906-91 (ИСО 7498-84, Доп.1-84, ИСО 7498-84) Системы обработки информации. Взаимосвязь открытых систем. Базовая эталонная модель
1.3 Определения
В настоящем стандарте используют следующие определения:
адрес: Последовательность двоичных сигналов, определяющая место расположения объекта связи или числовой номер.
двунаправленная передача: Передача данных по цепи в любом (полудуплексном) направлении.
тарифное устройство: Фиксированное устройство сбора данных, как правило, соединенное или совмещенное с электрическим счетчиком.
запрос: Процесс посылки сигналов для установления связи между станциями.
прямая передача: Передача сигнала определенной частоты без модуляции.
Бод*: Единица скорости передачи информации (модуляции).
____________________
* В системе СИ в с.
ДДК (двоично-десятичное кодирование): Кодирование десятичной цифры между 0 и 9 с использованием четырех битов.
бит: Название для двоичной цифры.
буфер: Буферная память.
шина: Проводная система связи, соединяющая станции и позволяющая осуществлять их связь в данный момент времени.
флаг: Символ, используемый для указания специфического статуса устройства или набора данных.
обмен: Последовательность передач между устройствами нескольких структур, составляющих в целом процедуры считывания данных или программирования, например
дистанционный обмен данными: Обмен данными между одним или группой тарифных устройств и концентратором данных через коммутационную сеть.
локальный обмен данными: Обмен данными между одним или группой тарифных устройств или их группой и программирующе-считывающим устройством.
опрос: Процесс, состоящий в последовательном запросе станций на передачу данных.
выборочный запрос: Процесс, состоящий в запросе одной станции или нескольких станций на прием данных.
опросный список: Список станций, подлежащих опросу в порядке, в котором они должны быть опрошены.
байт: Набор из восьми значащих битов.
перезапуск: Процедура, с помощью которой станция пытается разрешить конфликтную или ошибочную ситуацию, возникшую в процессе обмена, посредством повторения невыполненной последовательности посылок и передач.
протокол: Набор условных процедур, требуемых для обеспечения взаимодействия удаленных устройств с целью инициализации и поддержания обмена данными.
приемник (данных): Часть терминала, принимающая данные из канала связи.
последовательность: Часть процедуры обмена, включающая структуры запроса и ответа.
различающиеся последовательности: Последовательности, отличные от процедур перезапуска. Структуры, переданные первичной станцией, различаются своими управляющими (как в случае дистанционного программирования) или информационными полями (как в случае многоканального дистанционного считывания).
идентификационные последовательности: Последовательности, соответствующие процедурам перезапуска. В случае ошибки при первом запросе структура, передаваемая первичной станцией для этих последовательностей, является абсолютно идентичной.
источник (данных): Часть терминала, передающая данные в канал связи.
станция: Совокупность функциональных устройств, включая терминал, оборудование для передачи данных и устройства их связи.
первичная станция: Станция, осуществляющая полное управление каналом связи.
вторичная станция: Станция, подчиняющаяся командам в соответствии с процедурой связи.
синхронизация: Процедура, осуществляющая взаимодействие процессов в данный момент времени.
программирующе-считывающее устройство (ПСУ): Портативное оборудование для передачи данных к тарифным устройствам или электрическим счетчикам или от них.
время ожидания: Задержка, после которой принимается решение, что ожидаемое событие не произошло.
структура: Передача набора последовательных блоков, составляющих полное сообщение для принимающей станции.
поле (блок): Функциональное подмножество из байтов в структуре.
1.4 Сокращения
В настоящем стандарте используют следующие сокращения.
AADP | - адрес первичной станции (таблица А); | |||
AADS | - адрес вторичной станции (таблица А); | |||
ACLE | - ключ (таблица А); | |||
ADG | - общий (главный) адрес; | |||
ADON | - данные (таблица А); | |||
ADP | - адрес первичной станции; | |||
ADS | - адрес вторичной станции; | |||
ADTP | - данные дистанционного программирования (таблица А); | |||
AG | - инициирующий запрос; | |||
ALEA | - случайная переменная; | |||
ANA | - число байтов в поле ADON (таблица А); | |||
ANAP | - предшествующее случайное число (таблица А); | |||
ANECHAU | - число байтов в таблице А при единичном обмене; | |||
APREC | - предыдущий запрос; | |||
APSES | - флаг синхронизации между ПРИКЛАДНЫМ и СЕАНСОВЫМ уровнями; | |||
AR | - выход и возврат, характеризующие различающиеся последовательности; | |||
ARJ | - отклонение идентификации (удостоверения подлинности); | |||
ASO | - кодирование случаев ответа за запрос "забытой" станции; | |||
ATAB | - тип данных (таблица А); | |||
ATYPE | - тип операции; | |||
AUT | - команда идентификации (удостоверения подлинности); | |||
BDON | - данные (таблица Б); | |||
BERREUR | - ошибка (таблица Б); | |||
BFEx | - окно ожидания N (таблица Б); | |||
BNA | - случайное число (таблица Б); | |||
BNDEROW | - число байтов в диагностическом поле в процессе обмена (таблица Б); | |||
BNECHAU | - число байтов в таблице Б при единичном обмене; | |||
BNR | - число байтов в поле BDON (таблица Б); | |||
BNSEQI | - число идентичных последовательностей (таблица Б); | |||
BTIMOUT | - ошибка по времени задержки (таблица Б); | |||
BTOB | - флаг ошибки при задержке последовательного опроса станции (таблица Б); | |||
BTOCO | - флаг ошибки при временной задержке связи (таблица Б); | |||
BTOE | - флаг ошибки при задержке передачи (таблица Б); | |||
BTOL | - флаг ошибки при задержке КАНАЛЬНОГО уровня (таблица Б); | |||
CASO | - кодирование случаев ответа на запрос "забытой" станции; | |||
CCITT | - Международный консультативный комитет по телеграфной и телефонной связи; | |||
COM | - команда; | |||
CRC | - циклический избыточный код; | |||
DASO | - флаг запроса "забытой" станции; | |||
DAT | - данные команд; | |||
DES | - стандарт кодирования данных; | |||
DIB | - флаг команды инициализации шины; | |||
DNA | - флаг отрицательного подтверждения; | |||
DON | - данные; | |||
DRJ | - данные не приняты; | |||
DSO | - флаг "забытой" станции; | |||
DTP | - флаг дистанционного программирования; | |||
DTR | - флаг дистанционного считывания; | |||
ECH | - ответ-команда; | |||
EMP | - местоположение; | |||
ENQ | - запрос; | |||
EOS | - последняя команда программной структуры; | |||
E/R | - передача/прием; | |||
ER | - комбинации ERLI, ERSES; | |||
ERAP | - ошибка в ПРИКЛАДНОМ уровне; | |||
ERLI | - ошибка в КАНАЛЬНОМ уровне; | |||
ERREUR | - ошибка в протоколе; | |||
ERSES | - ошибка в СЕАНСОВОМ уровне; | |||
ETCD | - оборудование терминала передачи данных; | |||
ETTD | - оборудование терминала обработки данных; | |||
FE | - окно передачи; | |||
FINEMI | - конец передачи; | |||
FINPHI | - конец ФИЗИЧЕСКОГО уровня; | |||
FR | - окно приема; | |||
FROMEXT | - флаг, выставляемый внешним процессом; | |||
HF | - высокая частота; | |||
HHU | - программирующе-считывающее устройство (портативное считывающее устройство ПСУ), также TSP; | |||
IASO | - индикатор окна ожидания для вызовов "забытых" станций; | |||
IB | - команда инициализации шины; | |||
ISO/OSI | - взаимосвязь открытых систем (ВОС); | |||
К | - ключ; | |||
LIPHI | - флаг синхронизации между КАНАЛЬНЫМ и ФИЗИЧЕСКИМ уровнями; | |||
LISES | - флаг синхронизации между КАНАЛЬНЫМ и СЕАНСОВЫМ уровнями; | |||
LON | - длина; | |||
LSB | - наименьший значимый бит; | |||
LSUP | - число байтов поля данных; | |||
MSB | - наибольший значимый бит; | |||
N | - число; | |||
NAO | - случайное число для ответа "забытой" станции; | |||
NAx | - случайное число N ; | |||
NAxK | - закодированное случайное число; | |||
NSEQD | - число различных последовательностей; | |||
NTR | - число дистанционных считываний; | |||
PAG | - порт инициирующего запроса; | |||
PAREP | - флаг отсутствия ответа; | |||
PHILI | - флаг синхронизации между ФИЗИЧЕСКИМ и КАНАЛЬНЫМ уровнями; | |||
REC | - команда дистанционного программирования (записи); | |||
RECNU | - неполучение; | |||
RSO | - ответ от забытых станций; | |||
RxD | - прием данных; | |||
SESAP | - флаг синхронизации между СЕАНСОВЫМ и ПРИКЛАДНЫМ уровнями; | |||
SESLI | - флаг синхронизации между СЕАНСОВЫМ и КАНАЛЬНЫМ уровнями; | |||
TAB | - тип данных (таблица); | |||
TACEO | - совокупное время задержки между байтами; | |||
TACEOM | - максимальное совокупное время задержки между байтами; | |||
TAG | - время инициализирующего запроса; | |||
TAGM | - максимальное время запроса инициализации; | |||
TAO | - время отсутствия байта; | |||
TAOM | - максимальное время отсутствия байта; | |||
TAIO | - время ожидания первого байта; | |||
TAIOM | - время ожидания первого байта (максимальное время задержки первого байта); | |||
TDP | - таблица программирования данных; | |||
ТЕ | - время передачи; | |||
TEMPO | - ускорение; | |||
TFE | - время, связанное с окном передачи; | |||
TFR | - время, связанное с окном приема; | |||
TIMAX | - максимальное время; | |||
TOB | - время задержки последовательного опроса станции; | |||
TOBM | - максимальное время задержки последовательного опроса станции; | |||
TOCO | - время задержки связи; | |||
TOCOM | - максимальное время задержки связи; | |||
TOE | - время задержки передачи; | |||
TOEM | - максимальное время задержки передачи; | |||
TOL | - время задержки КАНАЛЬНОГО уровня; | |||
TOLM | - максимальное время задержки КАНАЛЬНОГО уровня; | |||
TP | - дистанционное программирование; | |||
TR | - дистанционное считывание; | |||
TRO | - время ответа "забытой" станции; | |||
TSP | - программирующе-считывающее устройство, также HHU; | |||
TxD | - передача данных; | |||
ZDT | - поле данных считывания и программирования. |
2 Обмен данными по локальной шине со стороны вторичной (рабочей) станции
2.1 Общие положения
Протокол считывания по локальной шине предназначен для пересылки данных по физической среде от одного устройства или большего числа устройств, называемых вторичными станциями, к устройству ввода данных, называемому первичной станцией или программирующе-считывающим терминалом, или программирующе-считывающим устройством (далее - ПСТ и ПСУ).
Среда передачи является проблемно ориентированной средой; другими словами, она используется только для передачи данных, определенных в настоящем стандарте. Ни при каких обстоятельствах она не может быть распространена на распределенные линии связи (DLC) или телефонные коммуникации без существенной переработки общих принципов, изложенных здесь. Однако все общие принципы (направление передачи, кодирование данных и т.д.) соответствуют действующим стандартам.
2.1.1 Функции считывания показаний по локальной шине
Считывание показаний по локальной шине обеспечивает связь между отдельными устройствами или устройствами, расположенными на общей шине.
Протокол должен поддерживать несколько типов обработок запросов:
- дистанционное считывание данных. ПСУ собирает данные, содержащиеся в устройствах;
- дистанционное программирование. ПСУ посылает данные к устройству, чтобы изменить все характеристики или их часть, или стереть данные. Для обеспечения защиты данных от несанкционированного доступа каждая акция дистанционного программирования должна сопровождаться двойным подтверждением с помощью кодирования типа DES (см. приложение Б);
- обнаружение забытых устройств для последующего считывания показаний. Независимо от типа обработки запросов, используемого для дистанционного считывания станций на шине, протокол должен обеспечивать условия обнаружения нескольких устройств, связанных с шиной, даже если они неизвестны ПСУ и устройствам более высоких уровней (содержащих каталоги файлов) так, чтобы данные считывались с этих устройств на более поздней стадии. Однако в общем случае считается, что устройства на шине известны ПСУ. Забытые устройства, таким образом, не являются характерными и не должны существенным образом усложнять простоту принципов, используемых при нормальных обстоятельствах.
Допускается, что максимум пять устройств могут быть неизвестны ПСУ.
2.2 Общие требования
2.2.1 Тип устройства и адресация
Устройства, связанные с шиной, могут иметь различные функции (например, измерение только электроэнергии, только газа или др.).
Обнаружение забытых устройств должно быть селективным, т.е. таким, чтобы адресовать только определенные типы устройств, связанных с шиной, а не все устройства, связанные с этой шиной.
Каждому устройству, связанному с шиной, дают определенный адрес. Каждому ПСУ также дают функциональный адрес, чтобы различать несколько возможных уровней доступа.
2.2.2 Готовность
Физическая связь ПСУ с шиной с целью выполнения любого из вышеуказанных типов обработки запросов является мгновенной; выбранный протокол должен поэтому обеспечивать немедленную готовность шины после начала связи и отсутствие запрета обработки запроса по отношению к каждому отдельному устройству и всем устройствам на шине.
2.2.3 Совместимость
Число устройств, связанных с шиной и независимо распределенных по физической среде передачи, может варьироваться от 1 до 100.
Могут иметься различные типы устройств дистанционного считывания или программирования; протокол должен быть понятен для устройства любого типа вплоть до уровня приложений. Некоторые устройства могут, среди других функций, понимать и принимать обработку запросов только одного типа (например, дистанционное считывание). Протокол для этих устройств должен во всех случаях быть совместим с протоколом, указанным ниже, и не должен допускать каких-либо сбоев.
Должно также быть принято во внимание, что устройства определенных типов, связанные с шиной, могут быть сложными, реализующими функцию дистанционного считывания среди других собственных функций; поэтому устройство не может постоянно "слушать" шину. Протокол должен поэтому включать функцию физического входа в устройства перед обработкой запросов.
Используемый протокол должен допускать простую установку его в устройства различных типов без существенного увеличения их цены. Размер памяти программы и данных, требуемых для установки протокола, должен поэтому быть как можно меньше.
2.2.4 Защита
Используемый уровень защиты и контроля тесно связан с физическими характеристиками среды передачи. Эти характеристики определены в разделе 4.
2.2.5 Для справок
Согласно современным требованиям в области передачи данных по локальной шине объем данных, которые нужно передавать, редко превышает несколько сот байтов, передаваемых в одном блоке, если это возможно, или в нескольких блоках, если этого требует протокол или длина данных превышает максимально разрешаемый размер для блока. Во всех случаях, однако, предусмотрены условия для типов обработки запросов, которые превышают эту установленную структуру.
2.3 Основные принципы
2.3.1 Режим передачи
Режим передачи - асинхронный. Передатчик выдает данные независимо от приемника. Начало и конец слова отмечают двумя сигналами, обычно называемыми "старт" и "стоп".
Слово состоит из восьмибитного байта, ограниченного "старт"-битом и "стоп"-битом:
Формат слова
Данные передаются последовательно, за "старт"-битом немедленно следует наименьший значимый бит (LSB), и слово заканчивается наибольшим значимым битом (MSB).
Такой режим передачи проще и выгоден с точки зрения создания экономных аппаратных средств.
Необходимо подчеркнуть, что этот режим передачи не исключает использования более сложных процедур (обнаружение ошибки, альтернативное управление и т.д.).
2.3.2 Скорость передачи
Скорость передачи - 1200 Бод, время передачи бита - 833 мкс и 8,33 мс для передачи байта, ограниченного "старт"-битом и "стоп"-битом.
В соответствии с рекомендациями CCITT по скорости передачи информации допуск должен составлять ±1%.
2.3.3 Организация сети
Сеть организована как многоточечная асимметричная шина: какая-либо из станций (первичная станция - ПСУ) может брать инициативу связи и "говорить" с любой из станций, подключенных к шине (вторичные станции).
Первичная станция может получать или передавать данные (т.е. быть источником или приемником).
Вторичные станции могут также получать или передавать данные (т.е. быть источником или приемником), но только по инициативе управляющей станции.
Одна и та же физическая линия связи используется для того, чтобы передавать и получать данные, но не одновременно: связь по данным - полудуплексная (чередующаяся), как показано ниже.
Организация связи
Физическая организация связи
Приведенные выше рисунки показывают только двухточечную связь; многоточечная конфигурация может быть получена подсоединением вторичных станций к первичной станции.
2.3.4 Доступ к сети
На физическом уровне система состоит из многоточечной шины, которая в большинстве случаев становится двухточечной на более высоком уровне.
Дистанционное программирование
При дистанционном программировании командные функции принадлежат ПСУ, которое в этом случае становится источником данных; первичная станция (ПСУ) инициирует вторичную станцию получить сообщения, которые первичная должна послать.
Связь в этом случае управляется "селективным" запросом (запросом по вызову).
Дистанционное считывание
При дистанционном считывании командные функции принадлежат ПСУ, которое является приемником данных; первичная станция (ПСУ) инициирует вторичную станцию послать сообщение.
Связь в этом случае управляется "голосованием".
Функция "голосования/селекции" объединена с системой адресации, которая позволяет выбрать одну вторичную станцию из станций, подключенных к шине.
В этом режиме функционирования система не должна иметь спорных ситуаций, так как запросы и ответы совершенно детерминированы.
Особый случай
Особый случай представляет собой обнаружение забытых станций после дистанционного считывания всей шины. Это довольно необычно, поскольку максимальное число забытых устройств на шине не может превысить пять. Сбой может произойти, только если имеется ошибка в инициализации адресного списка для шины, содержащегося в ПСУ, или если возникла ошибка после изменения адресного списка (списка голосования/селекции).
Используемый метод доступа заключается в передаче ответов от забытых станций в случайные моменты времени, что подразумевает обработку ошибок.
Сосуществование этой опции передачи с методом голосования/селекции подразумевает одинаковую обработку подтверждений для совместимости этих двух принципов.
Необходимо отметить, что метод передачи (со случайным доступом) не может быть применен к шине в целом без значительного увеличения сложности протокола или без существенного увеличения времени дистанционного считывания или программирования до такой степени, чтобы это стало ненужным и бесполезным.
2.4 Общая организация структур и обменов
2.4.1 Формат структуры
Структура состоит из шести полей, которые могут быть функционально сгруппированы.
2.4.1.1 Контрольное поле
N - число, использующее 1 байт (двоичный), устанавливаемое передатчиком, чтобы показать число байтов в посылаемой структуре.
CRC - циклический избыточный код, использующий 2 байта (двоичных), устанавливаемый передатчиком и вычисляемый для всех (N-2) предшествующих байтов (см. характеристики CRC, используемого в приложении А).
Эти контрольные элементы позволяют приемнику проверить, что структура была передана без ошибок.
2.4.1.2 Поле адреса
ADS - адрес вторичной станции, использующий 6 байтов (закодированный в двоично-десятичном коде (BCD)) - две цифры на байт (см. приложение Д).
Значение этого адреса в десятичном представлении находится между
0ADS999999999999 (12 цифр).
В ПСУ при обращении к вторичной станции это поле заполняется ПСУ в зависимости от станции(й), с которой(ыми) оно хочет связаться.
Во вторичной станции при обращении к ПСУ это поле заполняется аппаратными средствами вторичной станции своим собственным внутренним адресом (помещенным в энергонезависимую память при инициализации каждого устройства).
Примечание - Нулевое значение ADS зарезервировано как общий адрес и далее называется ADG.
ADP - адрес первичной станции, использующий первый байт (закодированный в двоично-десятичном коде (BCD) - две цифры на байт).
Значение, принимаемое этой переменной, находится (в десятичном представлении) между 0 ADP 99.
При обращении ПСУ к вторичной станции это поле заполняется ПСУ, которое вставляет свой специфический или общий адрес (ADP = 0). В противоположном направлении, если вторичная станция отвечает, она функционирует с адресом ADP, который был в ней запрограммирован.
Примечание - Адрес ADP = 0 может использоваться для определения, в соответствии с каким ADP вторичная станция была запрограммирована.
2.4.1.3 Поле команды
СОМ - команда (закодированная первым байтом), сообщающая приемнику тип действия, которое должно быть предпринято.
Команды, которые могут быть переданы ПСУ:
ENQ - запрос - дистанционное считывание;
REC - принять - дистанционное программирование;
AUT - структура идентификации - дистанционное программирование;
IB - инициализация шины - переустановить флаги забытых станций (DSO) устройств, подключенных к шине с целью запроса забытых станций;
ASO - запрос забытой станции.
Команды, которые могут быть переданы вторичной станцией:
DAT - положительный ответ на голосование - дистанционное считывание (ENQ);
DRJ - отрицательный ответ на голосование:
- дистанционное считывание (ENQ), если TAB(i) неизвестно,
- дистанционное программирование (AUT), если программные данные не приняты;
ЕСН - ответ на выбор - дистанционное программирование (REC);
EOS - последний положительный ответ после команды AUT - дистанционное программирование;
ARJ - последний отрицательный ответ после команды AUT - дистанционное программирование;
RSO - ответ от забытой станции.
2.4.1.4 Поле данных
Поле переменной длины в зависимости от используемой структуры и типа запрашиваемых данных.
Данные частично зависят от конкретного применения и поэтому не охватываются настоящим стандартом. Однако при дистанционном считывании, дистанционном программировании и вызове забытых станций используются фиксированные поля (длина и положение в структуре), и при конкретном применении необходимо учитывать это, чтобы обеспечить системную совместимость. Рассматриваемые поля включают: поле идентификации (ZA1, ZA2) - для дистанционного программирования, поле для определения типа запрашиваемых или передаваемых данных (TAB) - для дистанционного считывания и поле для представления списка TAB(i) с целью ускорения розыска устройств при запросах забытых станций.
2.4.1.5 Длина структуры
С учетом известных в настоящее время и предполагаемых в будущем применений, имея в виду желательную эффективность передачи в целом, максимальная длина структуры составляет 128 байт. Структуры имеют переменную длину. Только поле данных может изменяться от 0 до 117 байтов (128-11).
Тем не менее протокол предусматривает последовательную передачу нескольких структур данных, если максимальная длина не может быть твердо выдержана.
2.4.2 Принцип инициирующего запроса - физическое открытие связи
Перед любым обменом по шине ПСУ по своей собственной инициативе посылает инициирующий запрос, предназначенный для приведения в готовность системы связи каждого устройства, подключенного к шине. Необходимо отметить, что некоторые из этих многофункциональных устройств могут использовать всю свою коммуникационную систему или ее часть для других применений и связей, которые не имеют абсолютно ничего общего со считыванием данных по локальной шине.
Инициирующий запрос состоит из определенной последовательности, которая детализирована в 2.6.2.
2.4.3 Принцип обнаружения конца структуры
Приемник обнаруживает конец структуры, когда никакие байты не обнаруживаются на ФИЗИЧЕСКОМ уровне в течение заданного промежутка времени (ТАОМ). Тогда приемник переключается из режима приема в режим ожидания, в котором он анализирует полученную структуру и готовит структуру ответа. Когда структура ответа готова, станция переключается в режим передачи.
2.4.4 Формат обмена при дистанционном считывании
2.4.4.1 Типовой пример передачи, свободной от ошибок
2.4.4.2 Пример передачи данных несколькими структурами
ПСУ способно считывать данные последовательно согласно формату обмена, определенному выше. Единственный инициирующий запрос необходим в начале обмена.
Обмены должны быть согласованы с полным временем связи и временем передачи структуры и ответа (подробно см. в 2.6).
Максимальное число идентификаторов TAB(i), генерируемых в течение обмена, - пять.
2.4.4.3 Пример идентификации TAB(i) неизвестной вторичной станции
2.4.5 Формат обмена при дистанционном программировании
Пример передачи без ошибок
Этот обмен состоит из четырех структур, передаваемых последовательно за время передачи. В поле данных первые 16 байтов сохранены для целей идентификации. Детали идентификации описываются в 2.9.3.1. Далее, если спецификация предполагает двунаправленную идентификацию и используется DES-система кодирования, необходимо не менее трех структур, чтобы выполнить эту функцию.
Первая структура содержит данные дистанционного программирования, которые записываются во вторичной станции без проверки правильности и посылаются обратно в следующей структуре Р2. Затем структура Р3 передается для завершения двунаправленной идентификации.
Когда вторичная станция получает Р3:
- если идентификация правильна и данные дистанционного программирования, записанные при посылке Р1, подтверждаются, положительное подтверждение (СОМ = EOS) - структура Р4, завершающая обмен, посылается в ПСУ;
- если идентификация неправильна или данные дистанционного программирования не подтверждаются, возвращается отрицательное подтверждение - структура Р4 (СОМ = ARJ или СОМ = DRJ).
Двусмысленность, однако, сохраняется, если Р3, полученная вторичной станцией, подтверждает данные. Если при этом структура Р4, переданная этой станцией, получена с ошибкой, ПСУ воспринимает это, как если бы данные не были приняты (даже после нескольких попыток повторить Р3 без правильного ответа). В этом случае за обменом в режиме дистанционного программирования будет следовать обмен в режиме дистанционного считывания для исключения двусмысленности.
2.4.6 Идентичность обмена при дистанционном считывании/ программировании
Пример перезапуска после ошибки
Проводимый обмен должен состоять из одного или большего числа последовательностей запрос-ответ со структурами идентичного формата:
Для первичной станции (ПСУ) за запросом типа дистанционного считывания или дистанционного программирования должен следовать ответ, рассматриваемый как положительное подтверждение или как уведомление об ошибке в типе переданных данных (никакой перезапуск не предусмотрен в этом случае).
Обнаружение ошибки от вторичной станции, связанной с неполной передачей данных, интерпретируется как отсутствие ответа, что составляет отрицательное подтверждение для ПСУ. Тогда по инициативе ПСУ предпринимается перезапуск путем повторения запроса невыполненной последовательности.
Ошибка, обнаруженная в структуре ответа, полученного ПСУ, инициирует ту же самую процедуру перезапуска для неправильно обработанной последовательности.
Перезапуски производятся ПСУ. Максимальное число перезапусков - два. Если обмен неудачен, несмотря на эти попытки, ПСУ останавливает обмен со станцией и выдает сигнал ошибки.
2.4.7 Конец обмена - физическое отключение
Конец обмена обнаруживается вторичной станцией, если не принята никакая другая структура после структуры ответа (типа R2 или Р4) в течение времени, определенного для ФИЗИЧЕСКОГО уровня временем ТА1ОМ (см. 2.6.2.2). Если не принята никакая другая структура, обнаружение конца обмена переключает систему связи в режим ожидания, и она может использоваться для других применений. Никакой дальнейший обмен не может в этом случае быть выполнен, если ему не предшествует последовательность инициирующего запроса.
2.4.8 Инициализация шины и запросы к забытым станциям
Эти два режима не используют селективную адресацию по принципу запрос-ответ, а основаны на принципе передачи без ответа в случае инициализации шины и возможных ответов в случайные моменты времени в случае опроса забытых станций.
2.4.8.1 Принцип считывания всей шины
Посредством последовательного считывания всей шины ПСУ после считывания всех известных устройств может установить, что не имеется более забытых или не содержащихся в каталогах ПСУ устройств.
Схематическая диаграмма используемой последовательности
Инициализация шины | |
| Последовательное считывание известных устройств на рассматриваемой шине |
| Ответ от забытых устройств |
2.4.8.2 Формат структуры инициализации шины
Эта структура имеет тот же самый базовый формат, как и другие. Поле адреса вторичной станции теперь служит, чтобы адресовать все устройства на шине без исключения, и называется общим адресом (значение от 0 до 12 цифр). Все устройства, связанные с шиной и подтверждающие первичный адрес ADP, являются, таким образом, устройствами, способными воспринимать адресацию.
Действие команды инициализации шины заключается в переустановке флага в этих устройствах в ноль (DSO - флаг забытой станции).
После структуры инициализации каждое опрашиваемое устройство, получая структуру R1, относящуюся к ней (что определяется присутствием ее адреса в поле ADS), показывает свой DSO (DSO = 1), если TAB известен, и тогда более не рассматривается как забытая станция.
За командой инициализации шины никогда не следует ответ.
2.4.8.3 Формат запроса к забытой станции и соответствующий ответ
В конце последовательности дистанционного считывания ПСУ может искать забытые устройства (максимум 5 из 100). Это может быть возможным, только если принята предшествующая последовательность "Инициализации и последовательных чтений".
Вызов забытой станции, которому предшествует инициализирующий запрос, включает общий адрес ADG в поле адреса вторичной станции. Все станции на шине, воспринимающие ADP полученной структуры, интерпретируют команду ASO.
Если флаг DSO станции установлен в ноль и адрес ADP подтвержден, чтобы разрешить ответ вторичной станции, станция считается забытой и отвечает на этот запрос, если она распознает по крайней мере один из параметров TAB(i) в списке своих возможных TAB(i).
Если флаг DSO станции выставлен (DSO = 1), станция не отвечает и остается в состоянии ожидания на шине.
Такая передача запроса подразумевает, что несколько ответов может быть послано в ПСУ. Чтобы минимизировать спорные ситуации между структурами ответов, каждая забытая станция имеет три момента времени для ответа. Каждая станция выбирает момент времени случайным образом; случайный выбор изменяется от одного запроса к другому, длина промежутка времени определена в соответствии со временем передачи ответа.
Структура ответа подчиняется общему формату структуры, приведенному выше; 7-байтное поле данных содержит первый TAB(i), опознанный из списка, посланного в структуре ASO, и 6 байтов адреса забытого устройства, которое отвечает.
ПСУ открывает три контролирующих временных окна, которые могут быть сопоставлены с любой из следующих ситуаций:
- никакой ответ не поступил по трем контролирующим окнам, ПСУ знает, что никакое устройство не было забыто на этой шине;
- по крайней мере один ответ (без ошибки) поступил по одному из окон, ПСУ записывает адрес забытого устройства и продолжает читать его в процессе последовательного обмена, чтобы отличить его от группы забытых устройств;
- ответ с ошибкой по одному из окон, ПСУ не может действовать на ответ, но оно знает, что на шине имеются забытые устройства. Поэтому оно выполняет еще один вызов забытой станции в предположении, что изменение в процедуре случайного выбора позволит ответам быть переданными без ошибок.
Эта передача продолжается, пока все забытые устройства не будут считаны.
2.4.9 Адресация. Начало и окончание связи
При получении структуры инициализации обмена все устройства на шине находятся в режиме ожидания для записи и интерпретации полученной структуры. После идентификации, которая, как мы предполагаем, свободна от ошибок, анализируется адрес, чтобы переключить связь в следующие режимы.
Номинальный режим - двухточечная связь посредством подтверждения определенного адреса (селективная адресация) в случае дистанционного считывания или программирования.
Все устройства, не опознающие свой специфический адрес, "отключаются" немедленно после этой структуры (отмена протокола).
Другие режимы:
- многоточечная связь со случайным доступом посредством подтверждения общего адреса в случае вызова забытых станций (многоточечная связь, ограниченная максимум пятью устройствами);
- многоточечная связь без ответов в случае инициализации шины.
2.5 Общая организация протокола
2.5.1 Краткий обзор
Протоколы обычно следуют правилам построения, которые дают им определенную универсальность и позволяют использоваться в других системах. Была подготовлена эталонная модель взаимосвязи открытых систем (ВОС); эта архитектурная модель открывает фактически неограниченные возможности и, в частности, допускает произвольное число уровней информационного обмена.
Считывание по локальной шине не требует всех уровней, специфицированных в этой эталонной модели, но сущность четырех из них использована для определения архитектур в рассматриваемом приложении - это ФИЗИЧЕСКИЙ, КАНАЛЬНЫЙ, СЕАНСОВЫЙ и ПРИКЛАДНОЙ уровни.
Возможности этого иерархического децентрализованного формата должны:
- облегчить проектирование и построение протокола из существующих базовых элементов при уменьшении затрат на его установку;
- упростить его действие, предлагая формальные правила;
- гарантировать приемлемую надежность системы, в частности, посредством строгого разделения функций, и, таким образом, избежать распространения ошибок;
- обеспечить возможность модернизации, расширения и обслуживания, благодаря модульному принципу;
- оптимизировать производительность.
Таким образом, представленная архитектура не определяет ни аппаратных средств, ни программного обеспечения, но представляет концепцию организации аппаратного и программного обеспечения, используя преимущества иерархического и структурного подхода.
2.5.2 ФИЗИЧЕСКИЙ уровень
Уровень тесно связан с используемыми аппаратными средствами и определяет:
- физические характеристики среды передачи;
- характеристики соединений между устройствами обработки информации (DPTE) и модемами (ETCD), а также характеристики интерфейса, связанного с шиной;
- способ выполнения физического установления и прерывания связи;
- полудуплексную обработку;
- способ представления двоичных разрядов (0, 1): уровни сигналов на линии, продолжительность, интерпретация кода и т.д.
2.5.3 КАНАЛЬНЫЙ уровень
Назначение уровня состоит в том, чтобы двоичные разряды (сгруппированные в байты), представленные ФИЗИЧЕСКИМ уровнем, преобразовывать в свободные от ошибок структуры для связи со следующим уровнем.
Это включает в себя:
- проверку структуры циклическим избыточным кодом (CRC), проверку правильности длины структуры и содержимого определенных полей;
- преобразование многоточечной физической связи в двухточечное соединение посредством селективной адресации.
Ошибки связи возникают в случае отсутствия ответа после ожидания TOLM (времени задержки), что будет воспринято как отсутствие подтверждения и обработано ПСУ или вторичной станцией в зависимости от порядка следования исходных структур.
2.5.4 СЕАНСОВЫЙ уровень
Уровень обрабатывает команды в последовательных структурах и представляет данные ПРИКЛАДНОГО уровня.
На этом уровне принимается, что все проблемы обнаружения ошибок, связанных с КАНАЛЬНЫМ уровнем, были разрешены; СЕАНСОВЫЙ уровень должен интерпретировать действия, которые требуются от него (дистанционное считывание, дистанционное программирование счетчиков, вызов забытых станций, инициализация шины и т.д.), представлять любые данные, которые нужно передать ПРИКЛАДНОМУ уровню и инициировать процедуру ответа, направляя данные в соответствии с командой к нижним уровням.
2.5.5 ПРИКЛАДНОЙ уровень
Самый высокий уровень. Его задача - пересылать три типа данных:
- данные идентификации, чтобы в некоторых случаях удостовериться, что определенные обработки запросов безопасны и закрыты для доступа;
- данные, определяющие характер требуемой информации, или тип данных в следующих полях;
- чистые данные, относящиеся к дистанционному считыванию устройства, или данные для дистанционного программирования.
2.5.6 Межуровневое взаимодействие
Выполнение протокола производится на каждом уровне в соответствии с флагом синхронизации.
Стадии "приема-передачи" следуют друг за другом в зависимости от развивающегося обмена.
Уровень не передает флаг синхронизации к следующему, более высокому или более низкому уровню до тех пор, пока задача, возложенная на него, не будет выполнена.
Любая ошибка на стадии приема (на стороне вторичной станции) транслируется выставлением флага ошибки, принадлежащего уровню, на котором она произошла (флаги ERLI, ERSES), останавливая продвижение процесса по уровням и повторно передавая флаги синхронизации к более низким уровням для сигнализации об ошибке.
Синхронизацией управляет ФИЗИЧЕСКИЙ уровень так, чтобы запрещение одного уровня не привело к необратимым ситуациям.
Порядок следования и синхронизация номинальных уровней в последовательности "запрос-ответ"
Продвижение от одного уровня к другому может сопровождаться передачей параметров и "буферов данных", известных, например, по их местоположению в памяти (адресу) и длине (числу байтов); такая информация может быть явной или неявной.
Пример передачи структуры совместно с блоками данных
Таблицы параметров могут посылаться непосредственно от уровня к уровню или путем определения адресов и длин всех составляющих таблиц.
Поэтому параметры занимают определенную позицию и всегда состоят из одного и того же числа байтов при передаче от одного уровня к другому.
2.6 ФИЗИЧЕСКИЙ уровень
2.6.1 Краткий обзор аппаратных средств. Блок-схема приемопередатчиков
Несущая ВЧ, непрерывно генерируемая генератором, поступает на один из входов схемы совпадения, на другой вход которой поступает сигнал TxD, модулирующий несущую ВЧ. Выходной порт на микропроцессоре терминала ETTD позволяет модему ETCD переключаться на передачу или прием. В режиме ожидания модем переключен на прием (посредством E/R), вентиль закрыт; поэтому модулированный сигнал, передаваемый по шине, постоянно поступает на вход процессора RxD. Программное обеспечение блокирует последовательный порт ETTD и не дает подтверждения на прием (последовательный порт не работает в полном дуплексном режиме).
На стороне первичной станции система не должна обнаруживать общие запросы.
На стороне вторичной станции программный или аппаратный общий запрос должен обнаруживаться.
Детальное описание аппаратных компонентов, используемых в модемах, и характеристики среды связи определяются в разделе 4.
2.6.2 Характеристики инициирующего запроса
Инициирующий запрос - это определенная последовательность сигналов, задачей которой является установление функции последовательного приема информации микропроцессором в режиме ожидания.
Эта последовательность состоит из непрерывной несущей частоты, генерируемой в течение 100 мс (время инициирующего запроса - TAG).
2.6.2.1 Представление на шине
TAGm - минимальное время инициирующего запроса, равное 50 мс,
TAGM - максимальное время инициирующего запроса, равное 150 мс.
2.6.2.2 Принцип обнаружения. Устойчивость к помехам
За концом общего запроса должен следовать первый байт структуры после временной задержки ТА1О так, чтобы
ТА1OmТА1OТА1OМ,
где ТА1Om = 30 мс, ТА1OМ = 160 мс.
Примечание - После окончания инициирующего запроса вторичная станция имеет максимум времени ТА1Om для перехода в режим приема.
В течение общего запроса любая помеха, прерывающая несущую более чем на 100 мс, реинициализирует параметры обнаружения общего запроса.
Поэтому присутствие несущей в течение 50-150 мкс без помех, по длительности не превышающих 100 мкс, интерпретируется как инициирующий запрос и "приводит в готовность" вторичную станцию для приема байтов следующих структур.
2.6.3 Характеристики последовательностей передачи/приема
В соответствии со схемой, приведенной ниже, характеристики последовательности передачи/приема определены далее.
2.6.4 Временная диаграмма (номинальная)
2.6.4.1 Комментарии
Уровни передачи/приема на шине определяются в разделе 4.
Первой структуре, переданной первичной станцией, предшествует общий запрос номинальной длительности 100 мс; этот сигнал генерируется последовательным портом передачи, используемым (TxD), и затем модулируется несущей частотой.
Байты в каждой структуре, передаваемой первичной или вторичной станцией, передаются в обратной логике:
- логический уровень 1 от TхD или RxD (отсутствие несущей на шине);
- логический уровень 0 от TxD или RxD (присутствие несущей на шине), что переводится в следующие сигналы для передачи одного байта
После того как структура и стоп-бит последнего байта переданы, на шине более не будет несущей; аналогично задержки между байтами будут кодироваться отсутствием несущей на шине.
Стоп-сигналы принимаются каждый раз, когда обнаруживается конец структуры. Критерий обнаружения - это неполучение байтов в течение заданного времени ТАОМ=40 мс (максимальное время отсутствия байтов). Обнаружение конца структуры вызывает интерпретацию полученной структуры и связанные с этим действия, выполняемые на более высоких уровнях протокола. Логически это делает невозможным последовательный прием. Этот критерий обнаружения означает, что никакая подобная последовательность не должна вмешиваться в передачу структуры прежде ее окончания. Кроме того, анализ продолжительности обменов показывает, что максимальное время для суммы задержек между байтами в структуре должно быть: ТАСЕОМ=30 мс (максимальная совокупная задержка между байтами). Этот параметр будет обеспечиваться только передатчиком и не проверяется при получении.
Модем может быть переключен на передачу, как только обнаружен конец структуры (и прием закончен) или только когда структура начинает передаваться. Оба эти факта должны быть возможными и необходимыми, чтобы протокол в целом работал должным образом.
Когда конец структуры обнаружен в режиме приема, первый байт структуры должен быть передан в течение времени, требуемого для верхних уровней, чтобы обработать полученную информацию и подготовить структуру ответа. Это время названо "временной задержкой КАНАЛЬНОГО уровня" (TOL), максимальное значение которого TOLM=100 мс. Оно не включает время передачи первого байта, но дополняется временем до начала первого переданного байта.
Модем переключается с передачи на прием логически после передачи стоп-бита последнего байта в структуре. Эта длина фактически известна программному обеспечению передачи, которое и определяет момент переключения на прием.
2.6.5 Состояния на ФИЗИЧЕСКОМ уровне
2.6.5.1 Схема состояний на ФИЗИЧЕСКОМ уровне
2.6.5.2 Описание состояний на ФИЗИЧЕСКОМ уровне
Общие принципы
Всеми состояниями на уровне, связанном со временем выполнения, управляют "задержки", маркированные ТОХХХ. По определению "задержка" происходит параллельно с выполнением действий, соответствующих состоянию. Она переустанавливается всякий раз, когда рассматриваемое состояние достигнуто, кроме задержки связи ТОСО, которая управляет полной продолжительностью обмена и работает параллельно со всеми состояниями, начиная с состояния "Принять байты", достигаемого при событии "обнаружение общего запроса".
Задержки, маркированные ТАХХХ, исполняются последовательно с выполнением действий рассматриваемого состояния. Они переустанавливаются и подтверждаются в момент завершения действия.
Различные временные интервалы отсчитываются часами (таймерами), частота которых выбирается таким образом, чтобы быть согласованной с операциями синхронизации, определяемыми в приложении. Часы отсчитывают время параллельно с действиями ФИЗИЧЕСКОГО уровня.
ФИЗИЧЕСКИЙ уровень приводится в готовность и синхронизируется, если общий запрос обнаружен логически или физически, при условии, что критерии подтверждения общего запроса выполнены.
Однако в зависимости от типа разрабатываемого устройства возможно оставить ФИЗИЧЕСКИЙ уровень в постоянном ожидании; запуск будет активирован только при общем запросе; эта опция зависит от устройства, которым должны управлять вне протокола чтения по локальной шине.
Диаграмма и относящиеся к ней пояснения предполагают, что ФИЗИЧЕСКИЙ уровень полностью отключен от локальной шины для чтения по локальной шине.
Состояние 0
Общая инициализация протокола. Все переменные на всех уровнях, требуемые для выполнения обмена в целом, инициализируются в этом состоянии. Стартует таймер задержки связи ТОСО.
Состояние 1
Переинициализация PHILI.
Прием байтов. Каждый полученный байт сохраняется в буфере, который будет посылаться к верхним уровням для обработки.
Состояние 2
Флаг синхронизации LIPHI от КАНАЛЬНОГО уровня переводится в состояние ожидания.
Состояние 3
Передача байтов. Верхний уровень подготовит буфер или набор буферов, которые нужно передать. Их местоположение и длина переданы ФИЗИЧЕСКОМУ уровню для этого состояния передачи.
Состояние 4
По истечении времени TRO=NAOTE (NAO - случайное число от 0 до 2, поступающее от верхних уровней). Время TE фиксировано. В этом состоянии модем находится в режиме приема. ТЕ установлено равным 500 мс.
Состояние 5
Закрытие физической связи. ФИЗИЧЕСКИЙ уровень отключает все верхние уровни и отключается сам. Все уровни протокола, таким образом, дезактивируются.
2.6.5.3 Описание событий на ФИЗИЧЕСКОМ уровне
А - сигнал несущей был обнаружен в течение времени TAG в диапазоне TAGm-TAGM, что позволяет всем уровням протокола перейти в состояние ожидания, а ФИЗИЧЕСКОМУ уровню активироваться посредством перехода в состояние 1 "прием байтов". Это событие также связано с полной инициализацией протокола и инициализацией временной задержки ТОСО.
а1 - превышение времени отсутствия байтов ТАО означает, что это может быть идентифицировано как конец приема структуры. Событие тогда обуславливает выполнение КАНАЛЬНОГО уровня посредством замены флага синхронизации PHILI = 1.
Это событие является стандартным выходом из состояния 1, когда не было обнаружено превышения никакой временной задержки, и обмен при этом не закончен.
b1 - превышение времени задержки для первого байта ТА1О останавливает протокол посредством перехода в состояние 5. Это событие означает, что за переключением модема на прием не последовала ожидаемая структура.
Событие указывает, кроме всего прочего, что рестарта не произошло, и протокол может быть прерван (например после передачи структуры дистанционного считывания).
с1 - превышение времени задержки последовательного опроса станций (типа "пулемет") (ТОВ) позволяет отключить прием, если задержка продолжительнее времени передачи для максимального числа байтов, включая структуру (128 байтов) плюс совокупную задержку между байтами (ТАСОМ) и 10%-ный допуск, чтобы учесть погрешности измерения времени.
,
ТОВМ=1360 мс.
ТОВ контролирует последовательный опрос станций ПСУ.
Примечание - Проверку времени можно заменить контролем над максимальным числом байтов, которые могут быть переданы в структуре, что дает эквивалентный результат.
d1 - превышение времени установки таймера связи ТОСО, это обуславливает переход в состояние 5. Этот таймер инициализируется только один раз во время полной инициализации протокола.
a2 - b2 - c2 - f2 - возвращение верхних уровней к синхронизации посредством LIPHI = 1 указывает тем самым, что их действия закончены, и обуславливает переход к состоянию 1, 3, 4 или 5.
Эти события затем дифференцируются в зависимости от состояния трех параметров PAREP (отсутствие ответа), ALEA (случайное) и ERLI (ошибка КАНАЛЬНОГО уровня). PAREP предписывает ФИЗИЧЕСКОМУ уровню переход в состояние конца протокола без передачи структуры и без ожидания перезапуска.
PAREP устанавливается верхними уровнями, когда:
- проводится расшифровка команды IB (инициализация шины);
- обнаружен адрес ADS, не являющийся адресом устройства;
- команда ASO (вызов забытых станций) адресует устройство, которое не было забыто или к которому не обращались;
- обнаруживается первичный ADP адрес неизвестный вторичной станции.
ALEA устанавливается верхними уровнями, когда обнаружена команда ASO. Она сообщает устройству, вне зависимости от того, было ли оно забыто или нет, что не ожидается никакого перезапуска после передачи им структуры ответа.
а2 - событие LIPHI = 1, связанное с состоянием (PAREP = 0 и ALEA = 0), указывает, что ответ должен быть передан и ожидается перезапуск.
b2 - событие LIPHI = 1, связанное с состоянием (PAREP = 1), когда никакой ответ не должен передаваться.
с2 - событие LIPHI = 1, связанное с состоянием (PAREP = 0 и ALEA = 1), когда ответ должен быть передан с задержкой (состояние 4).
d2 - превышение времени задержки связи ТОСО.
е2 - превышение времени задержки КАНАЛЬНОГО уровня TOL, которое фактически контролирует время выполнения на всех верхних уровнях после того, как был обнаружен конец структуры и установлен флаг синхронизации PHILI = 1 между ФИЗИЧЕСКИМ и КАНАЛЬНЫМ уровнями с установкой в ответ флага синхронизации LIPHI = 1. Это связано с переинициализацией всех верхних уровней (КАНАЛЬНОГО, СЕАНСОВОГО и ПРИКЛАДНОГО) - в состоянии 0.
f2 - событие LIPHI = 1, связанное с ERLI = 1 (ошибка КАНАЛЬНОГО уровня), означает, что ошибка была обнаружена на верхнем уровне. При этих состояниях устройство возвращается в состояние 1 "прием байтов" для ожидания перезапуска от первичной станции.
а4 - временная задержка TRO = NAOxTE достигнута и разрешает переход в состояние 3 для передачи структуры ответа забытой станции в одно из разрешенных временных окон.
b4 - превышение времени задержки связи ТОСО.
а3 - выход после передачи структуры, где ALEA = 0 (структура, которая только что была передана, не является ответом на запрос забытой станции). ФИЗИЧЕСКИЙ уровень возвращается в состояние 1 для получения любой последующей структуры.
b3 - выход после конца передачи структуры, где ALEA = 1 (переданная структура является ответом на запрос забытой станции). ФИЗИЧЕСКИЙ уровень знает, что не ожидается никакого перезапуска или структуры. Он может поэтому переключиться в состояние 5 для разъединения.
Устройство не должно возвращаться в состояние 1 так, чтобы не принимать структуры, переданные другими станциями.
с3 - временная задержка передачи (TOE) останавливает передачу, если она продолжительнее ТОЕМ.
,
ТОЕМ=1100 мс.
d3 - превышение времени задержки связи ТОСО.
Примечание - ТОСО будет обнаружена с точностью, ограниченной максимальной продолжительностью последовательности "запрос-ответ"; поэтому она может быть проверена только в начале состояния 1.
В - самоотключение ФИЗИЧЕСКОГО уровня после выключения всех уровней протокола.
2.6.5.4 Схема нескольких примеров состояний
Дистанционное считывание. Типовой пример
Дистанционное программирование. Типовой пример
Инициализация шины. Типовой пример
Схема также применима в случае, если запрос забытой станции адресует не забытое устройство, и в случае дистанционного считывания или дистанционного программирования, инициирующего станцию, чей адрес не совпадает с адресом первичного запроса ADP.
Пример перезапусков, за которыми следует правильное дистанционное считывание при ошибке, обнаруженной вторичной станцией в верхних уровнях.
2.6.6 Схемы разделения времени
2.6.6.1 Типовые примеры (приведены со стороны вторичной станции)
TAG=100 мс; ТАОМ=40 мс; ТА1ОМ=160 мс; TOLM=100 мс; ТАСЕОМ=30 мс; ТОСОМ=15 с; ТОЕМ=1100 мс; ТОВМ=1360 мс.
2.6.6.2 Пример ошибки при приеме (приведен со стороны вторичной станции)
Пример соответствует событиям е2 и f2 на схеме ФИЗИЧЕСКОГО уровня, соответствующим превышению времени задержки КАНАЛЬНОГО уровня или ошибке на верхних уровнях (ERLI = 1).
Пример события е2 (TOL > TOLM)
Время повторного запроса ПСУ после передачи:
TREPRmin = ТАОМ + TOLM;
Пример события f2 (ERLI = 1)
Время перезапуска ПСУ после передачи:
TREPRmin = ТАОМ + TOL при минимальном TOL = 0;
TREPRmin = ТАОМ;
TREPRmax = ТАОМ + (ТА1ОМ - продолжительность 1 байта).
Для вышеупомянутых двух примеров время перезапуска должно быть в интервале:
MAX(TREPRmin)TREPRmin(TREPRmax);
ТАОМ + TOLMTREPRТАОМ + TOL + (ТА1ОМ - длительность 1 байта);
ТАОМ + TOLMTREPRTAOM + (TA1Om - длительность 1 байта);
160 мсTREPR170 мс.
Необходимо отметить, что в соответствии с приведенным выше неравенством ТА1ОМ не может быть меньше, чем TOLM.
Если ни одна из ожидаемых структур не приходит после того, как передана структура запроса, первичная станция должна выполнить перезапуск в окне разделения времени, определяемом TREPRmin и TREPRmax. Время перезапуска (после переустановки его в ноль) отсчитывается всякий раз с момента, когда первичная станция переключается в режим прием
а.
2.6.6.3 Пример запроса забытой станции
Станция после запроса забытой станции может ответить в трех временных позициях (окнах). Начало передачи структуры размещается в окне FE1, FE2 или FE3, если случайное число NAO равно 0, 1 или 2 соответственно.
Время ТЕ, разделяющее два окна FE, - это максимальное время, в течение которого забытое устройство должно ответить, добавленное к максимальному времени, в течение которого первичная станция может интерпретировать и сохранить полученную структуру.
Если TRAMOU представляет собой время передачи для байтов, включая структуру ответа, то ТЕ должно выбираться так, чтобы
Предполагается, что для ПСУ время задержки КАНАЛЬНОГО уровня эквивалентно задержке КАНАЛЬНОГО уровня устройства. Аналогично для максимального времени отсутствия байтов (ТАОМ):
TOLM = TOLM' = 100 мс;
ТАОМ = ТАОМ' = 40 мс;
ТАСЕОМ = 30 мс;
150 мс.
(NOCT = 18 для структуры ответа забытого устройства).
ТЕ > 420 мс.
Через 500 мс после передачи первичная станция может определить три окна приема FR1, FR2 или FR3 с соответствующими параметрами:
TFR1 = 40 мс;
TFR2 = 540 мс;
TFR3 = 1040 мс.
Эти окна определены так, чтобы быть полностью синхронизированными с ответом забытой станции во всех случаях, которые могут возникнуть.
Ввиду теоретической возможности наличия структуры ASO, включающей 40 различных TAB(i), максимальная полная продолжительность запроса забытой станции должна быть равна
,
,
Т = 2305 мс.
Примечание - При структуре ASO, включающей только одну TAB(i), максимальная полная продолжительность запроса забытой станции составляет 2 с.
2.6.6.4 Общие комментарии и детали измерений параметров
Время контролируют с точностью ±1% (с минимальной точностью ±10 мс).
Необходимо отметить, что время общего запроса ПСУ будет передано с точностью ±10 мс на любой стороне при номинальном значении 100 мс.
ПСУ должно оставлять достаточно времени между двумя последовательными обменами, чтобы первое вызванное устройство могло отключиться после обмена, в котором оно было задействовано, до вызова следующего устройства (это время должно быть больше, чем ТА1ОМ).
2.7 КАНАЛЬНЫЙ уровень
2.7.1 Открытие-закрытие КАНАЛЬНОГО уровня
КАНАЛЬНЫЙ уровень, как только он активируется, находится в состоянии ожидания флага синхронизации (PHILI), передаваемого более низким уровнем (ФИЗИЧЕСКИМ).
Вторичная станция в режиме приема анализирует поступающую структуру, перед тем как сигнализирует верхнему уровню (СЕАНСОВОМУ) флагом синхронизации LISES, указывая, что он может начать выполнение своих действий.
Верхний уровень (СЕАНСОВЫЙ), в свою очередь, передает флаг SESLI в конце своей работы; этот ответ соответствует передаче всей информации или "буферов", требуемых для передачи структуры ответа.
Флаг LIPHI затем передается более низкому уровню (ФИЗИЧЕСКОМУ) для физической передачи любой структуры ответа.
Разъединение связи может происходить в любом из следующих четырех случаев, управляемых непосредственно КАНАЛЬНЫМ уровнем:
- ошибка при синтаксическом контроле (событие b12);
- полученный адрес не соответствует заданному адресу устройства или общему адресу (событие b13);
- конец формирования структуры ответа (событие а15);
- обратная связь СЕАНСОВОГО уровня с ERSES-ошибкой или флагом PAREP, указывающая, что не следует передавать никакого ответа (b14 и с14).
Все прерывания связи переустанавливают КАНАЛЬНЫЙ уровень в состояние ожидания ФИЗИЧЕСКОГО уровня.
КАНАЛЬНЫЙ уровень отключается ФИЗИЧЕСКИМ уровнем только при нормальном завершении обмена или при истечении одной из допустимых временных задержек.
2.7.2 Формат получаемой структуры. Область действия КАНАЛЬНОГО уровня
2.7.2.1 Синтаксические проверки и проверки достоверности передачи
Они включают в себя:
- CRC16 - проверку всех байтов в структуре;
- сравнение содержимого первого байта в структуре, представляющей число байтов, переданных первичной станцией, с числом байтов, фактически полученных вторичной станцией;
- проверку синтаксиса и достоверности по байту СОМ (1СОМ11, см. приложение Д);
- проверку синтаксиса и достоверности по байту ADP (0ADP99, см. приложение Д);
- проверку синтаксиса и достоверности по байту N, проверку условия N128 (см. приложение Д).
Если какие-либо ошибки обнаружены вторичной станцией в процессе проверок, КАНАЛЬНЫЙ уровень отключается и возвращается в состояние ожидания любой процедуры перезапуска от ФИЗИЧЕСКОГО уровня.
Если никаких ошибок нет, КАНАЛЬНЫЙ уровень выполняет проверку поля адреса.
2.7.2.2 Проверка адресных полей ADS и ADP
В зависимости от действия, которое нужно предпринять, поле ADS содержит общий адрес, опознаваемый всеми устройствами ADS = ADG, или определенный адрес одной из станций, связанных с шиной.
Поле ADP содержит первичный адрес, на который запрограммирована отвечать вторичная станция, или общий первичный адрес (ADP = 0), который распознается всеми вторичными станциями.
Когда вторичная станция распознает как свой ADP, так и свой ADS, КАНАЛЬНЫЙ уровень остается подключенным и переходит в режим ожидания верхнего СЕАНСОВОГО уровня после посылки ему флага синхронизации LISES = 1.
В противном случае КАНАЛЬНЫЙ уровень отключается, продолжая оставаться в режиме ожидания ФИЗИЧЕСКОГО уровня и посылая флаг синхронизации LIPHI = 1 более низкому уровню. КАНАЛЬНЫЙ уровень также вычисляет длину поля, предназначенного для верхних уровней, и передает им его местоположение.
2.7.3 Формат передаваемой структуры. Область действия КАНАЛЬНОГО уровня
На стадии возврата верхних уровней, в режиме передачи байтов вторичной станцией, КАНАЛЬНЫЙ уровень, который находился в режиме ожидания СЕАНСОВОГО уровня, получает флаг синхронизации SESLI = 1 вместе с буфером или набором буферов, которые определяются началом их поля адреса и длиной (числом байтов).
Чтобы минимизировать число параметров, "путешествующих" между уровнями, можно передавать только длину L таблицы, включающей значения всех начальных точек полей и их длин.
После этой синхронизации обратной связи от верхних уровней, КАНАЛЬНЫЙ уровень проинструктирован, чтобы вставить поля ADS, ADP, N и CRC.
Первичный адрес ADP является копией соответствующего адреса ADP, на который устройство было запрограммировано. Адрес вторичной станции ADS является адресом отвечающей вторичной станции.
Байт N определяется длиной поступающих от верхних уровней буферов, которые нужно передать, следующим образом:
N = (LSUP) + 10 байтов.
Таким образом, структура ответа включает набор буферов. Физическая процедура передачи, в свою очередь, ищет каждый из этих буферов, местоположение и длина которых известны. Точное число буферов выбирается проектировщиком в зависимости от имеющихся в его распоряжении аппаратных средств и ресурсов памяти, при условии, что он будет твердо придерживаться времени передачи.
2.7.4 Действия по формированию цепочки последовательностей
После свободной от ошибок последовательности "запрос-ответ" КАНАЛЬНЫЙ уровень вторичной станции переустанавливается в режим ожидания ФИЗИЧЕСКОГО уровня для возможного перезапуска или приема следующей структуры.
Даже при дистанционном считывании протокол позволяет считывать данные из нескольких последовательных структур "ответа", когда данные превышают максимальную длину структуры, без необходимости производить дальнейший общий запрос. Априори именно терминал ПСУ для ввода данных берет на себя инициативу считывания данных в нескольких последовательностях "запрос-ответ". Единственное ограничение состоит в полном времени связи, которое не должно превышать задержку времени связи ТОСО.
Формат дистанционного считывания нескольких последовательностей
2.7.5 Состояния КАНАЛЬНОГО уровня
2.7.5.1 Схема состояний КАНАЛЬНОГО уровня
2.7.5.2 Описание состояний КАНАЛЬНОГО уровня
Этот уровень может быть отключен только ФИЗИЧЕСКИМ уровнем.
Состояние 0
КАНАЛЬНЫЙ уровень, как только он активизируется, находится в состоянии ожидания синхронизации от ФИЗИЧЕСКОГО уровня; выход из этого состояния ожидания осуществляется подключением КАНАЛЬНОГО уровня для фактического выполнения предписанных ему действий.
Как только его работа выполнена, КАНАЛЬНЫЙ уровень возвращается в состояние ожидания (разъединение).
Состояние 1
Это состояние включает инициализацию переменных, требуемых для надлежащего прохождения последовательности "запрос-ответ". Переменные LIPHI, LISES, PAREP и ERLI переустанавливаются в ноль системой на этом уровне.
Состояние 2
Соответствует двум проверкам - синтаксической и правильности полученной структуры (см. 2.7.2.1). Ошибка, обнаруженная при любой из этих проверок, обуславливает выставление флага ошибки ERLI = 1.
Состояние 3
Соответствует проверке адресных полей ADS и ADP (см. 2.7.2.2). Присутствие определенного адреса ADS или общего адреса ADG в этом поле означает правильную проверку; иначе устанавливается флаг PAREP. Проверка поля ADP предназначена для обеспечения диалога станций с определенными типами малых устройств. Если станция распознает свой адрес ADP или общий первичный адрес (ADP = 0), проверка правильна, в противном случае устанавливается флаг PAREP.
Состояние 4
Ожидание обратной связи по флагу синхронизации SESLI от верхнего уровня (СЕАНСОВОГО).
Состояние 5
Построение структуры ответа (см. 2.7.3).
Состояние 6
Отключение КАНАЛЬНОГО уровня и передача синхронизации к более низкому уровню посредством LIPHI = 1.
2.7.5.3 Описание событий КАНАЛЬНОГО уровня
AL - установка флага синхронизации PHILI = 1 соединяет КАНАЛЬНЫЙ уровень и разрешает доступ к состоянию 1.
a11 - инициализация завершена, безусловный переход к состоянию 2.
а12 - различные синтаксические проверки, выполненные в состоянии 2, правильны, и выход из условия 2 с ERLI = 0 позволяет доступ к состоянию 3.
b12 - по крайней мере одна ошибка обнаружена в состоянии 2 и передается посредством ERLI = 1. Тогда устанавливается флаг синхронизации LIPHI, чтобы сообщить ФИЗИЧЕСКОМУ уровню, что он может возобновить действие. ФИЗИЧЕСКИЙ уровень использует параметр ERLI для выбора типа своего действия (возврат к приему байтов для возможного перезапуска).
а13 - проверка адресного поля правильна; выход из состояния 3 с PAREP = 0; устанавливается флаг синхронизации LISES = 1, верхнему уровню разрешается начать работу. КАНАЛЬНЫЙ уровень устанавливается в состояние ожидания СЕАНСОВОГО уровня (состояние 4).
b13 - поле адреса неправильно; выход из состояния 3 с PAREP = 1, чтобы указать более низкому ФИЗИЧЕСКОМУ уровню, повторно синхронизированному флагом LIPHI = 1, что ему не требуется отвечать на этот запрос, так как он предназначен для ожидающего устройства, и ФИЗИЧЕСКИЙ уровень может отключаться окончательно без ожидания каких-либо перезапусков.
a14 - установка флага синхронизации от СЕАНСОВОГО уровня (SESLI = 1) разрешает переход из состояния 4 в состояние 5 при условии, что ERSES = 0 и PAREP = 0.
b14 - установка SESLI = 1 вместе с передачей ошибки от СЕАНСОВОГО уровня (ERSES = 1) разрешает переход к состоянию 6, таким образом разъединяя КАНАЛЬНЫЙ уровень, который не будет передавать ответ.
с14 - установка SESLI = 1 вместе с PAREP = 1, указывающая, что никакой ответ не должен посылаться, передает управление состоянию 6.
а15 - передача КАНАЛЬНЫМ уровнем флага синхронизации в ФИЗИЧЕСКИЙ уровень посредством LIPHI = 1 как только структура ответа составлена (см. 2.7.3). Поскольку параметры ERLI, ERSES и PAREP находятся в нуле, ФИЗИЧЕСКИЙ уровень будет осуществлять передачу буфера (или буферов) структуры, передаваемого таким образом.
BL - возвращение КАНАЛЬНОГО уровня к ожиданию ФИЗИЧЕСКОГО уровня после того, как КАНАЛЬНЫЙ уровень отключен и флаг LIPHI = 1 послан.
2.7.5.4 Схема нескольких примеров состояний
Дистанционное считывание. Типовой пример
Дистанционное программирование. Типовой пример
Инициализация шины
Пример перезапусков после ошибки при синтаксической проверке (ERLI = 1), за которыми следует правильное дистанционное считывание с третьей попытки.
Пример перезапусков после ошибки на СЕАНСОВОМ уровне (ERSES = 1), за которыми следует правильное дистанционное считывание с третьей попытки.
2.8 СЕАНСОВЫЙ уровень
2.8.1 Открытие и закрытие СЕАНСОВОГО уровня
СЕАНСОВЫЙ уровень, как только он приведен в готовность, переходит в состояние ожидания флага синхронизации LISES от более низкого КАНАЛЬНОГО уровня. Этот флаг разрешает выполнение действий, связанных с СЕАНСОВЫМ уровнем. Когда СЕАНСОВЫЙ уровень синхронизирован с КАНАЛЬНЫМ, подразумевается, что более низкие уровни выполнили свои задачи без обнаружения ошибок или аномалий.
Главная функция СЕАНСОВОГО уровня - интерпретировать содержание поля команды в полученной структуре, чтобы затем предпринять соответствующее действие и передать флаг синхронизации ПРИКЛАДНОМУ уровню. При возврате от ПРИКЛАДНОГО уровня СЕАНСОВЫЙ устанавливает командный байт, специально приготовленный для ответа, который нужно передать, и синхронизирует выполнение более низкого КАНАЛЬНОГО уровня.
СЕАНСОВЫЙ уровень отключается, когда он посылает флаг синхронизации SESLI = 1 более низкому уровню.
СЕАНСОВЫЙ уровень отключается только ФИЗИЧЕСКИМ уровнем при нормальном завершении обмена или истечении одной из допустимых временных задержек.
2.8.2 Поле команды в режиме приема
Возможные команды в начальной последовательности запрос-ответ это: ENQ (дистанционное считывание), REC (дистанционное программирование), IB (инициализация шины), ASO (запрос забытой станции).
В последующих последовательностях, в зависимости от соответствующего выполнения, а не от типа обмена, команды могут быть:
- ENQ (перезапуск или дистанционное считывание нескольких последовательностей);
- REC (перезапуск для дистанционного программирования);
- AUT (только при дистанционном программировании).
Если команда ENQ была распознана в начальной последовательности, следующая последовательность, в случае перезапуска, может содержать только ту же самую команду. Иначе обнаруживается ошибка СЕАНСОВОГО уровня.
Любое неправильное формирование цепочки последовательностей генерирует ошибку СЕАНСОВОГО уровня посредством ERSES = 1. Эта ошибка обуславливает быстрое отключение более низких уровней для последующего перезапуска.
2.8.3 Поле команды в режиме ответа
Любая команда запроса, полученная устройством (см. 2.8.2), систематически ассоциируется с командой ответа (кроме IB).
Тип команды | Поле команды | |
Запрос | Ответ | |
Дистанционное считывание | ENG | DAT или DRJ |
Дистанционное программирование | REC | ЕСН |
AUT | EOS | |
Инициализация шины | IВ | - |
Запрос забытой станции | ASO | RSO |
Эта команда ответа помещается в передаваемый(е) буфер(а), возвращаемый(е) от ПРИКЛАДНОГО уровня (APSES = 1) прежде, чем флаг SESLI = 1 передается к более низкому КАНАЛЬНОМУ уровню.
Если идентификатор TAB(i) структуры ENQ неизвестен вторичной станции и данные дистанционного программирования не подтверждены или если идентификация AUT первичной станции не выполнена, ПРИКЛАДНОЙ уровень устанавливает флаг DNA (флаг отсутствия подтверждения), указывающий, что была передана отрицательная структура подтверждения, включающая команду DRJ (данные отклоняются) или команду ARJ (идентификация отклоняется) соответственно:
- DNA = 1 означает, что должна быть передана DRJ-структура;
- DNA = 2 означает, что должна быть передана ARJ-структура.
2.8.4 Возможные примеры интерпретации команды
Чтобы интерпретировать команды, необходимо знать, первая ли это или последующая последовательность. Для этой цели предназначена переменная APREC (предыдущий запрос). Четыре других флага показывают команду предыдущей последовательности:
- DIB - флаг инициализации шины;
- DASO - флаг вызова забытой станции;
- DTR - флаг дистанционного считывания;
- DTP - флаг дистанционного программирования.
APREC устанавливается в 1 в следующих состояниях: если DIB или DASO, или DTR, или DTP = 1, тогда APREC = 1.
Еще одна переменная AR допускает цепочку последовательностей запрос-ответ, следующих одна за другой при дистанционном программировании, как показано на приведенной ниже схеме "Поле команды в режиме приема". Эта переменная передается ПРИКЛАДНОМУ уровню, чтобы позволить ему в дальнейшем распознать последовательность.
Все флаги (DIB, DASO, DTR, DTP, APREC, AR и DNA) переустанавливаются в 0 при полной инициализации протокола и никогда не сбрасываются СЕАНСОВЫМ уровнем.
Переменная DNA устанавливается ПРИКЛАДНЫМ уровнем и никогда не сбрасывается СЕАНСОВЫМ уровнем.
Таблица в 2.10.2 показывает набор уровней для каждого флага и один из них, который его использует.
Все эти переменные позволяют составить блок-схемы алгоритмов с различными возможностями интерпретации команд.
Алгоритм состояния 2
APREC = 0 (это первая последовательность запрос-ответ)
1) Если СОМ = ENQ (это обмен дистанционного чтения), то следует:
- установить DTR = 1 в режиме дистанционного чтения;
- установить APREC = 1, сигнализируя, что первый запрос был только что получен;
- подготовить командный байт СОМ в режиме ответа: DAT (команда DRJ будет размещена в ответе от ПРИКЛАДНОГО уровня, если DNA = 1);
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1;
- ожидать ПРИКЛАДНОЙ уровень.
2) Если СОМ = REC (это обмен при дистанционном программировании), то следует:
- установить DTP = 1 в режиме дистанционного программирования;
- установить APREC = 1;
- подготовить командный байт СОМ в режиме ответа: ЕСН;
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1;
- ожидать ПРИКЛАДНОЙ уровень.
3) Если СОМ = ASO (это вызов забытой станции - не перезапуск), то следует:
- установить DASO = 1 в режиме вызова забытой станции;
- установить APREC = 1;
- подготовить байт ответа СОМ = RSO;
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1;
- ожидать ПРИКЛАДНОЙ уровень.
4) Если СОМ = IB (это инициализация шины - не перезапуск и не ответ, который должен быть передан), то следует:
- установить DIB = 1 в режиме инициализации шины;
- установить APREC = 1;
- синхронизировать ПРИКЛАДНОЙ уровень SESAP = 1;
- ожидать ПРИКЛАДНОЙ уровень.
5) Если COM <> (ENQ и REC и ASO и IB), то (ошибка) следует:
- ERSES установить в 1 (в позицию рестарта без ответа);
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1;
- ожидать КАНАЛЬНЫЙ уровень.
APREC = 1 (это не первая последовательность запрос-ответ).
1) Если СОМ = ENQ при DTR = 1 и (DPT = DASO = DIB = 0):
а) то (рестарт дистанционного чтения или запрос новых таблиц данных) следует:
- подготовить командный байт ответа: СОМ = DAT (DRJ будет размещена в ответе от ПРИКЛАДНОГО уровня, если DNA = 1),
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1,
- ожидать ПРИКЛАДНОЙ уровень;
б) в других случаях (неправильная цепочка - ошибка) необходимо:
- установить ERSES = 1,
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1,
- ожидать КАНАЛЬНЫЙ уровень.
2) Если СОМ = REC при (DTP = 1 и AR = 0) и (DTR = DIB = DASO = 0):
а) то (рестарт дистанционного чтения на первой последовательности запрос-ответ) следует:
- подготовить командный байт ответа: СОМ = ЕСН,
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1,
- ожидать ПРИКЛАДНОЙ уровень;
б) в других случаях (неправильная цепочка - ошибка) необходимо:
- установить ERSES = 1,
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1,
- ожидать КАНАЛЬНЫЙ уровень.
3) Если СОМ = AUT:
то при DTP = 1 (DTR = DIB = DASO = 0) следует:
а) первый AUT получен:
- подготовить командный байт ответа: СОМ = EOS (ARJ будет размещена в ответе от ПРИКЛАДНОГО уровня, если DNA = 2, или DRJ, если DNA = 1),
- установить запрос-ответ (AR = 1),
- синхронизировать ПРИКЛАДНОЙ уровень посредством SESAP = 1,
- ожидать ПРИКЛАДНОЙ уровень;
б) в других случаях (перезапуск по AUT: AR = 1) следует:
- при DNA = 2 (последний AUT должен быть ARJ) подготовить командный байт ответа СОМ = ARJ,
- при DNA = 1 (последний AUT должен быть DRJ) подготовить командный байт ответа СОМ = DRJ,
- или (последний AUT должен быть EOS):
- подготовить командный байт ответа СОМ = EOS,
- установить поле данных "пусто",
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1,
- ожидать КАНАЛЬНЫЙ уровень.
В других случаях (неправильная цепочка команд - ошибка) следует:
- установить ERSES = 1;
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1;
- ожидать КАНАЛЬНЫЙ уровень.
4) Если COM<>(ENQ и REC и AUT), то (ошибка) следует:
- ERSES устанавливать в 1 (на позицию перезапуска без ответа);
- синхронизировать КАНАЛЬНЫЙ уровень посредством SESLI = 1;
- ожидать КАНАЛЬНЫЙ уровень.
2.8.5 Состояния СЕАНСОВОГО уровня
2.8.5.1 Схема состояний СЕАНСОВОГО уровня
2.8.5.2 Описание состояний СЕАНСОВОГО уровня
Этот уровень может быть отключен только ФИЗИЧЕСКИМ уровнем.
Состояние 0
Как только он приведен в готовность, СЕАНСОВЫЙ уровень самопереводится в состояние ожидания флага синхронизации от КАНАЛЬНОГО уровня.
Состояние 1
Инициализация параметров SESLI, SESAP и ERSES, которые необходимы для последовательности запрос-ответ.
Состояние 2
Поле команды интерпретируется в соответствии с различными параметрами, как упоминалось в 2.8.4, чтобы определить тип действия, которое нужно предпринять.
В этом состоянии также подготавливается командный байт ответа для перехода в состояние 4.
Состояние 3
Ожидание синхронизирующей обратной связи от ПРИКЛАДНОГО уровня.
Состояние 4
Установка команды ответа, подготовленной в состоянии 2 и модифицированной по DNA = 1 или DNA = 2.
Состояние 5
СЕАНСОВЫЙ уровень отключается, и синхронизация перемещается на более низкий уровень посредством SESLI = 1.
2.8.5.3 Описание событий СЕАНСОВОГО уровня
As - получение флага синхронизации LISES = 1 от более низкого КАНАЛЬНОГО уровня позволяет из состояния 0 перейти в состояние 1.
as1 - безусловный переход из состояния 1 в состояние 2.
as2-bs2-cs2 - переходы, являющиеся различными интерпретациями команды;
в то же самое время флаг SESLI устанавливается к возврату на более низкие КАНАЛЬНЫЙ и ФИЗИЧЕСКИЙ уровни в случае ошибки или флаг SESAP устанавливается для синхронизации верхнего ПРИКЛАДНОГО уровня. Блок-схема интерпретации команды дается выше (см. 2.8.4).
as2 - интерпретация команды правильна для выполняемой последовательности и для предыдущих последовательностей (ERSES = 0). Устанавливается флаг SESLI, синхронизирующий ПРИКЛАДНОЙ уровень, и СЕАНСОВЫЙ уровень переходит к состоянию ожидания 3.
bs2 - интерпретация команды отлична от ожидаемой (ERSES = 1). Устанавливается флаг SESLI, синхронизирующий более низкий КАНАЛЬНЫЙ уровень; СЕАНСОВЫЙ уровень отключается (состояние 5).
cs2 - ответ на перезапуск при второй последовательности запрос-ответ от средств дистанционного программирования: посылается тот же самый ответ, что и для первого вызова.
as3 - флаг синхронизации APSES, возвращаемый назад вместе с состоянием PAREP = 0, позволяет системе перейти в состояние 4 после ожидания ПРИКЛАДНОГО уровня (состояние 3).
bs3 - флаг синхронизации APSES, возвращаемый назад вместе с состоянием PAREP = 1 (никакого ответа не нужно передавать), указывает, что СЕАНСОВЫЙ уровень должен быть разъединен (состояние 5) после ожидания ПРИКЛАДНОГО уровня (состояние 3).
as4 - безусловный переход после установки команды (состояние 4) к состоянию 5 вместе с установкой флага синхронизации для более низкого КАНАЛЬНОГО уровня (SESLI = 1).
Bs - возврат к состоянию ожидания КАНАЛЬНОГО уровня для следующей последовательности запрос-ответ после отключения и передачи SESLI.
2.8.5.4 Схема нескольких примеров состояний
Дистанционное считывание. Типовой пример
Дистанционное программирование. Типовой пример
Инициализация шины
Вызов забытой станции, адресованный к забытой станции
Вызов забытой станции, адресованный к незабытой станции
2.9 ПРИКЛАДНОЙ уровень
2.9.1 Открытие-закрытие
После открытия в начале протокола ПРИКЛАДНОЙ уровень устанавливается в состояние ожидания флага синхронизации от СЕАНСОВОГО уровня. Если более низкие уровни выполняют свои задачи правильно, флаг SЕSАР позволяет ПРИКЛАДНОМУ уровню синхронизироваться (подключиться) и начать работу со стадии инициализации (состояние 1).
ПРИКЛАДНОЙ уровень отключается, как только установлен флаг для более низкого СЕАНСОВОГО уровня.
ПРИКЛАДНОЙ уровень может быть отключен только ФИЗИЧЕСКИМ уровнем.
2.9.2 Действия, связанные с ПРИКЛАДНЫМ уровнем в режиме дистанционного считывания
Структура, поступающая во вторичную станцию, включает 1 байт данных TAB(i), определяющий тип данных, которые нужно читать автоматически. Соответствие между кодом байта TAB(i) и связанной таблицей данных должно быть определено для каждого применения.
Если тип TAB(i) не известен вторичной станции, ПРИКЛАДНОЙ уровень устанавливает флаг DNA в 1, так что структура отрицательного подтверждения ретранслируется первичной станцией.
2.9.3 Действия, связанные с ПРИКЛАДНЫМ уровнем в режиме дистанционного программирования
Первые 16 байтов поля данных предназначены для идентификационных параметров.
2.9.3.1 Принцип дуплексной идентификации
Идентификация выполняется посредством обмена случайными числами, закодированными с использованием секретного ключа, специфического для каждого устройства (Ki). Случайные числа определены в 8 байтов (см. приложение Г), они закодированы в 8 байтах с использованием 8-байтового ключа и DES-алгоритма, описанного в приложении Б.
Эта дуплексная идентификация налагается на структуры P1, P2 и Р3 следующим образом:
Ключ Ki известен ПСУ и вторичной станции.
Случайное число NA1 генерируется ПСУ и передается в поле ZA1 структуры Р1; поле ZA1 пусто (в нуле).
При поступлении во вторичную станцию поле ZA1 декодируется в соответствии с DES-алгоритмом, чтобы получить закодированное случайное число NA1К.
Возвращаемая структура Р2 содержит случайное число NA1К в поле ZA1, случайное число NA2, сгенерированное вторичной станцией, - в поле ZA2.
При получении Р2 ПСУ декодирует поле ZA1, используя DES-алгоритм и ключ Ki. Результирующее NA1' сравнивается с NA1. Если NA1' = NA1, ПСУ полагает, что вызванная вторичная станция идентифицирована (подтвердила свою подлинность). В противном случае ПСУ полагает, что кто-то пытается "говорить" по линии вместо требуемого устройства; тогда оно прерывает дистанционный программный обмен без перезапуска и входит в состояние идентификационного отказа.
После правильной идентификации вторичной станции ПСУ кодирует случайное число NA2, сгенерированное вторичной станцией, и передает его в поле ZA2 структуры Р2. Вторичная станция получает закодированное число NA2K, которое она передает в структуру РЗ в поле ZA2; поле ZA1 - пусто (в нуле).
Вторичная станция декодирует поле ZA2 с использованием ключа Ki и DES-алгоритма; она таким образом получает NA2', которое она сравнивает с предварительно сгенерированным случайным числом NA2. Если NA2 = NA2', вторичная станция полагает, что ПСУ идентифицировано (подтвердило свою подлинность). В противном случае ПРИКЛАДНОЙ уровень вторичной станции устанавливает флаг DNA в 2, так что структура отрицательного подтверждения ретранслируется первичной станции.
Структура Р4 передается вторичной станцией, чтобы показать, что дуплексная идентификация была подтверждена и что она также была в состоянии проверить правильность данных дистанционного программирования, сохраненных после структуры Р1.
Принцип такого обмена, следовательно, обеспечивает защиту от предпринимаемого постороннего вмешательства при дистанционном программировании.
Принцип обмена при дистанционном программировании с идентификацией должен использоваться всякий раз, когда любой элемент данных в вызываемой вторичной станции изменяется (переустановка в нуль, изменение во внутренних параметрах и т.д.). Следовательно, дистанционное считывание никогда не изменяет данные, переданные вторичной станцией.
2.9.3.2 Действие, связанное с полем данных ZDT
Это поле содержит собственно данные дистанционного программирования; оно передается в структуре Р1 для сохранения вторичной станцией, ожидающей подтверждения.
Оно отражается вторичной станцией в структуре Р2. После проверки идентификационных полей ПСУ проверяет, что ответные данные соответствуют данным, переданным в Р1. Если имеется несоответствие, оно повторяет дефектную последовательность; другими словами, оно повторяет свой запрос Р1 с другим случайным числом NA1.
При получении структуры Р3 вторичная станция проверяет идентификацию первичной станции. Если проверка положительна, то предварительно сохраненные данные могут быть декодированы и может быть проверена их достоверность.
Когда последняя операция успешно завершена, структура Р4 с командой EOS посылается первичной станции, чтобы закрыть процедуру.
Если возникают какие-либо проблемы декодирования с данными программирования, они не подтверждаются и ПРИКЛАДНОЙ уровень вторичной станции устанавливает флаг DNA в 1, так что структура отрицательного подтверждения возвращается в первичную станцию.
2.9.3.3 Описание поля данных ZDT
Поле данных ZDT включает в себя:
- поле TDP, которое связано с программными данными, содержащимися в поле DON (эквивалентно TAB для считывания по локальной шине);
- поле DON.
2.9.4 Действия, связанные с запросами забытых станций
При запросе забытой станции простого факта получения флага DASO, приходящего от более низкого СЕАНСОВОГО уровня, вполне достаточно, чтобы начать процедуру, связанную с этим запросом, который является специфическим для ПРИКЛАДНОГО уровня.
ПРИКЛАДНОЙ уровень устанавливает переменную ALEA, чтобы указать более низким уровням, особенно ФИЗИЧЕСКОМУ, что он должен задержать ответ (TRO = NAOТЕ). Случайное число NAO, которое определяет три возможные задержки, генерируется ПРИКЛАДНЫМ уровнем вторичной станции (NAO = 0 или 1, или 2). Для устройств на одной и той же шине генерация случайных чисел должна предусматривать получение строк различных чисел для различных устройств. Эта генерация, следовательно, должна быть связана с параметром, специфическим для каждого устройства, например с его адресом ADS(s) в сочетании с автоматически удобочитаемым потребительским индексом (см. приложение В).
2.9.5 Состояние ПРИКЛАДНОГО уровня
2.9.5.1 Схема состояний ПРИКЛАДНОГО уровня
2.9.5.2 Описание состояний ПРИКЛАДНОГО уровня
Этот уровень может быть отключен только ФИЗИЧЕСКИМ.
Состояние 0
Ожидание СЕАНСОВОГО уровня. Как только он приведен в готовность, ПРИКЛАДНОЙ уровень переводит себя в состояние ожидания синхронизации от СЕАНСОВОГО уровня.
Состояние 1
Инициализация последовательности запрос-ответ. Каждая последовательность начинается инициализацией определенных параметров APSES и ALEA.
Состояние 2
Интерпретация флагов, указывающих тип полученной команды, которая позволяет переход в состояния 3, 5, 7, 8 или 11.
Состояние 3
Дистанционное считывание: интерпретация байта TAB(i), описывающего тип таблицы данных, которые нужно прочитать, и установка флага DNA (DNA = 0 или DNA = 1).
Состояние 4
Дистанционное считывание: подготовка ответной таблицы данных в соответствии с полученной TAB(i). Установка флага забытой станции (DSO = 1).
Состояние 5
Запрос забытой станции: проверка наличия известного TAB(i) и переустановка DSO.
Состояние 6
Запрос забытой станции: подготовка ответа посредством установки вторичного адреса станции и первого известного TAB(i) из структуры ASO в поле данных и генерация случайного числа NAO с использованием принципа, описанного в приложении В так, чтобы ответ можно было дать в случайном отрезке времени. ALEA устанавливается в 1.
Состояние 7
Дистанционное программирование. Первая последовательность: поле данных ответа принимает то же самое случайное число NA1, которое закодировано с использованием DES-алгоритма вместе со случайным числом NA2. Поле данных ответа (ZDT) должно также содержать ответ полученных данных.
Состояние 8
Дистанционное программирование. Вторая последовательность: поле данных содержит закодированное число NA2K, которое декодируется и сверяется с NA2, посланным в первой последовательности. DNA устанавливается в 2, если тест обнаруживает ошибку.
Состояние 9
Дистанционное программирование. Вторая последовательность: декодирование данных дистанционного программирования и связанные определяемые задачей действия. DNA устанавливается в 1, если испытание неправильно.
Состояние 10
ПРИКЛАДНОЙ уровень отключается, и синхронизация переходит к более низкому уровню посредством APSES = 1.
Состояние 11
Инициализация шины. Инициализация флага забытой станции (DSO = 0). PAREP устанавливается в 1.
2.9.5.3 Описание событий
Аа - получение флага синхронизации SESAP = 1 от более низкого СЕАНСОВОГО уровня позволяет переход из состояния 0 в состояние 1.
aa1 - безусловный переход от состояния инициализации 1 к состоянию 2.
аа2 - флаг, посылаемый СЕАНСОВЫМ уровнем (DTR = 1), соответствует действию по дистанционному считыванию.
bа2 - флаг, посылаемый СЕАНСОВЫМ уровнем (DASO = 1), соответствует действию по запросу забытой станции.
са2 - флаг, посылаемый СЕАНСОВЫМ уровнем (DTP = 1), соответствует действию по дистанционному программированию, переменная AR (AR = 0) указывает, что это первая последовательность дистанционного программирования.
da2 - флаг, посылаемый СЕАНСОВЫМ уровнем (DTP = 1), соответствует действию по дистанционному программированию, переменная AR (AR = 1) указывает, что это вторая последовательность дистанционного программирования.
еа2 - флаг, посылаемый СЕАНСОВЫМ уровнем (DIB = 1), соответствует действию инициализации шины.
аа3-DNA = 0 указывает, что TAB(i) известен вторичной станции и что должна передаваться структура DAT.
bа3-DNA = 1 указывает, что TAB(i) неправилен и что должна быть передана структура отрицательного подтверждения DRJ.
аа4 - безусловный переход из состояния 4 в состояние 10.
aa5-PAREP = 0 указывает, что должен быть сделан ответ на этот запрос. Вторичная станция была забыта (DSO = 0). Пересечение между полученным списком TAB(i) и соответствующим списком вторичной станции содержит, по крайней мере, один TAB(i).
ba5-PAREP = 1 указывает, что никакого ответа не требуется на этот запрос:
- либо вторичная станция не была забыта (FSF = 1);
- либо пересечение между списком TAB(i), полученным в структуре ASO, и списком вторичной станции пусто.
аа6 - безусловный переход к состоянию 10. Переменная ALEA устанавливается (ALEA = 1), чтобы указать более низким уровням, что это ответ, который должен быть сгенерирован в окне, определяемом числом NAO.
аа7 - безусловный переход к состоянию 10.
aa8-DNA = 0 указывает, что проверка по NA2 правильна.
ba8-DNA = 2 указывает, что проверка по NA2 неправильна: должна быть передана структура отрицательного подтверждения ARJ.
aa9-DNA = 0 указывает, что вторичной станцией проверена достоверность программируемых данных.
ba9-DNA = 1 указывает, что программируемые данные не верны, и они не подтверждены вторичной станцией: должна быть передана структура отрицательного подтверждения DRJ.
aa11 - безусловный переход к состоянию 10. Переменная PAREP устанавливается в 1 для указания более низким уровням, что не требуется передавать никакого ответа.
Ва - после отключения и установки APSES в 1 возврат к состоянию ожидания следующей последовательности от СЕАНСОВОГО уровня.
2.9.5.4 Возможное упрощение
Эти состояния представляют только минимум действий, которые должны быть предприняты в отношении всевозможных применений, использующих протокол чтения по локальной шине. Только для дистанционного считывания (без дистанционного программирования) они могут быть упрощены.
Фактически для этого типа применений команда REC, получаемая вторичной станцией, рассматривается СЕАНСОВЫМ уровнем как ошибка в соответствии с диаграммой состояний, относящейся к СЕАНСОВОМУ уровню:
В этом случае ПРИКЛАДНОЙ уровень никогда не синхронизируется и не встречается с DTP = 1.
На диаграмме состояний ПРИКЛАДНОГО уровня поэтому можно удалить все состояния и действия, связанные с DTP = 1, без отрицательного влияния на общую совместимость упрощенного протокола.
2.10 Краткое описание и взаимодействия между уровнями
2.10.1 Упрощенная общая схема состояний
Примечание - Временные задержки не показаны.
ERSES = 1° ERLI = 1.
2.10.2 Флаги синхронизации и параметры
Глобальная инициализация | PHILI/LIPHI/LISES/SESLI/SESAP/APSES = 0 | ||||||
Уровень | ФИЗИЧЕСКИЙ | КАНАЛЬНЫЙ | СЕАНСОВЫЙ | ПРИКЛАДНОЙ | |||
Инициализация | LIPHI = 0 | SESLI = 0 | APSES = 0 | ||||
LISES = 0 | SESAP = 0 | ALEA = 0 | |||||
PHILI = 0 | ERLI= 0 | ERSES = 0 | |||||
Флаги синхронизации и передаваемые параметры | PHILI | LISES | SESAP | ||||
Буфера (emp, lon) | Буфера (еmр, lon) | Буфера (emp, Ion) | |||||
DIB/DTR/DTP/DASO/AR | |||||||
Переменная, присваивае- | LIPHI | DIB/DTR/DTP | NAO | ||||
LISES | DASO | APSES | |||||
PHILI (RA2) | PAREP | SESLI, SESAP | PAREP | ||||
ERLI | LISES | DSO | |||||
APREC | ALEA | ||||||
ERSES | DNA | ||||||
AR | |||||||
Флаги синхронизации и передаваемые параметры | LIPHI | SESLI | APSES | ||||
Буфера (еmp, lon) | Буфера (еmр, lon) | Буфера (еmр, lon) | |||||
PAREP | PAREP | PAREP | |||||
ERLI | ERSES | DNA | |||||
NAO | NAO | NAO | |||||
ALEA | ALEA | ALEA | |||||
Таблица не содержит управление переменными времени. |
Примечание - Флаги ошибки ERSES и ERLI, которые передаются от уровня к уровню и к ФИЗИЧЕСКОМУ уровню, всегда сопровождаются одной и той же обработкой на каждом уровне.
В представленной ранее операции подразумевается, что посылка ERSES = 1 между СЕАНСОВЫМ и КАНАЛЬНЫМ уровнями сопровождается установкой ERLI в 1 в КАНАЛЬНОМ уровне.
Для ФИЗИЧЕСКОГО уровня простая проверка ERLI позволяет идентифицировать безошибочное выполнение операций на всех верхних уровнях. Попросту говоря, можно заменить ERLI и ERSES общим параметром ER, который может устанавливаться любым из двух верхних уровней (КАНАЛЬНЫМ, СЕАНСОВЫМ) и проверяться ФИЗИЧЕСКИМ уровнем. ER тогда переустанавливается в нуль, когда инициализируется КАНАЛЬНЫЙ уровень.
2.10.3 Упрощенная общая диаграмма, охватывающая несколько примеров
2.10.4 Общие комментарии
Целью настоящего стандарта является определение протокола для вторичных станций (называемого вторичным протоколом). Протокол первичной станции по своей природе является дополнительным и может быть выведен из вторичного протокола. Все, что необходимо для его создания, может быть логически получено из пунктов, рассмотренных выше.
Следовательно, все диаграммы, рисунки и пояснения должны быть соответствующим образом интерпретированы, сохраняя "в уме" протокол вторичной станции.
2.10.5 Реализация протокола
Представление различных уровней информационного обмена предлагает не более чем основу (каркас) для его разработки и реализации. Окончательная реализация может сгруппировать или разбить некоторые состояния в зависимости от легкости программирования, используемого языка и выбранной архитектуры. Для обеспечения совместимости всех разработок в рамках этого протокола важно, чтобы идентичные события производили идентичные эффекты и были выдержаны временные ограничения.
Что касается метода программирования, то начальный подход может привести проектировщика к разработке протокола в чисто последовательной логике в предположении, что каждый уровень представляет собой перекрытие подпрограмм. Другой подход мог бы реализовать разработку, связанную с многозадачным монитором (или супервизором); в этом случае каждый уровень мог бы рассматриваться как одна задача.
3 Обмен данными по локальной шине со стороны первичной (управляющей) станции - контроллер
3.1 Введение
Настоящий стандарт определяет правила, которым надо следовать при реализации протокола, рассматриваемого со стороны ПСУ. В дальнейшем часто ссылаются на раздел 2, который определяет функциональные возможности протокола, общую организацию структур и обменов и различные уровни вторичной станции (запрашиваемого устройства).
Нижеприведенные пункты настоящего раздела удовлетворяют следующим требованиям:
- 3.2 и 3.3 - содержат общие сведения вместе с дополнительной информацией, существенной для понимания системы;
- 3.4 - определяет принципы интерфейсного взаимодействия протокола с внешним процессом, связанным с ПСУ. Краткое описание содержания таблиц данных, которыми обмениваются при активации и завершении протокола, дает возможность разъяснить обмены с ПСУ;
- 3.5-3.8 - описывают различные уровни, составляющие протокол чтения по локальной шине, относительно первичной станции;
- 3.9 - описывает взаимодействие между различными уровнями протокола.
3.2 Общие положения
3.2.1 Функциональные возможности протокола
Протокол, предназначенный для передачи информации между вторичными станциями и первичной станцией, должен поддерживать три существенных функции - дистанционное считывание информации, дистанционное программирование и обнаружение забытых станций, подключенных к шине (см. раздел 2).
3.2.2 Основные принципы
См. определения в 1.3.
Общие характеристики, относящиеся к обмену, описаны в разделе 2.
Различные ситуации, касающиеся общей организации структур и обменов, общее строение структур и определения различных составляющих их блоков, как и детальная структура для каждого случая дистанционного считывания, дистанционного программирования и вызова забытой станции, подчиняются спецификациям, данным в разделе 2.
3.2.3 Структура протокола
Для соответствия общим правилам, управляющим реализацией и архитектурой протокола, чтение по локальной шине ранжировано на четыре уровня (ФИЗИЧЕСКИЙ, КАНАЛЬНЫЙ, СЕАНСОВЫЙ, ПРИКЛАДНОЙ).
Такая организация доказала свои преимущества во многих отношениях, особенно в простоте представления и возможности понимать систему протокола, таким образом подразумевая меньшую сложность при проектировании, реализации и обслуживании.
Архитектура, представленная здесь, тем не менее является только основой выполнения (реализации) для протокола первичной станции. Мелкие детали этой основы представлены в настоящем стандарте только для того, чтобы лучше определить предусмотренные функциональные возможности работы системы.
В этом отношении окончательная реализация в соответствии с упомянутыми деталями могла бы организовать автоматические режимы, описанные ниже, по-другому, группируя, разделяя или модифицируя некоторые состояния. Тем не менее, для того чтобы обеспечить необходимую совместимость между различными реализациями одного и того же протокола, существенно, чтобы все функции выполнялись в полном объеме, все описанные события производились с идентичным эффектом и чтобы принимались во внимание ограничения по разделению времени.
Необходимо также учитывать, что представление протокола в настоящем стандарте, даже если оно основано на многозадачной архитектуре, не должно исключать другие принципы программирования, такие, например, как чисто последовательные.
3.3 Таблица данных А - прием и таблица данных Б - передача
Таблица А, доступная для протокола в начале его работы, делает возможным недвусмысленно определить основную операцию (действие), соответствующую обмену, который должен быть осуществлен по шине.
Таблица Б, созданная протоколом и доступная в конце его работы, позволяет узнать результат выполнения основной операции.
Основные операции подразделяют на четыре категории:
- инициализация шины IB;
- запрос забытой станции ASO;
- дистанционное считывание вторичной станции TR;
- дистанционное программирование вторичной станции ТР.
3.3.1 Таблица данных А - прием
Полная информация о результате выполнения основной операции состоит из информации о следующих параметрах, которые необходимы и адекватны для управления протоколом в целом:
- адрес вызываемой вторичной станции AADS;
- адрес вызывающей первичной станции AADP;
- тип операции ATYPE;
- данные ADON.
Для более простой обработки этой информации с ней связываются дополнительные параметры при составлении таблицы А:
- ANECHAU - число байтов в таблице А при единичном обмене;
- ANA - число байтов в поле данных ADON.
3.3.2 Таблица данных Б - передача
Полная информация о результате выполнения основной операции состоит из информации о следующих параметрах:
- диагностика выполнения протокола;
- для каждой последовательности (i) - число идентичных последовательностей BNSEQI(i);
- для каждой идентичной последовательности (i, j):
ошибка из-за временной задержки BTIMOUT(i, j),
ошибка в уровнях BERREUR(i, j),
результирующие данные выполняемой операции BDON.
Таблица Б конструируется из этой информации, связанной с дополнительными параметрами, позволяющими простую обработку:
- BNECHAU - число байтов в таблице Б при единичном обмене:
значение (BNECHAU) = значение (BNDEROU) + значение (BNR) + 10;
- BNDEROU - число байтов в диагностическом поле:
значение (BNDEROU) = {значение [BNSEQI(i)]+1}
- BNR - число байтов в поле данных BDON.
3.3.3 Организация таблиц формата байтов
Общая организация таблиц устанавливается ниже.
В поле наименьшие значимые байты находятся вверху, а наибольшие значимые - внизу.
3 | LSB |
3 | MSB |
Для того чтобы сделать их понятными для любого 7- или 8-элементного кода ИСО, например N 5 CCITT, они представляются в 30Н вплоть до 3FH в шестнадцатеричном коде; биты данных находятся в наименьших значимых 4-битных байтах каждого 8-битного байта.
Пример. N=5 4 3 2 1 0 в десятичном коде
3 | 0 | LSB - наименьший значимый байт |
3 | 1 | |
3 | 2 | |
3 | 3 | |
3 | 4 | |
3 | 5 | MSB - наибольший значимый байт |
Кодирование полей AADS, AADP и ATYPE получается из кодовых множителей блоков в структуре, упомянутых в приложении Е.
То же самое относится к ATAB(i).
3.3.3.1 Таблица А
Примечание - Значения в круглых скобках - десятичные, все остальные - шестнадцатеричные.
Значения, принимаемые ANA и ANECHAU при дистанционном считывании, представлены ниже.
Дистанционное считывание в различных посылаемых и возвращаемых последовательностях | (1) | (2) | (3) | (4) | (5) | ||||||||||
ANA | 3 | 2 | 3 | 4 | 3 | 6 | 3 | 8 | 3 | А | |||||
3 | 0 | 3 | 0 | 3 | 0 | 3 | 0 | 3 | 0 | ||||||
ANECHAU | 3 | 6 | 3 | 8 | 3 | А | 3 | С | 3 | Е | |||||
3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 |
3.3.3.2 Таблица Б
3.3.3.3 Детали таблицы Б
Значения в круглых скобках - десятичные, остальные - шестнадцатеричные.
I - идентификатор различных последовательностей;
J - идентификатор идентичных последовательностей.
3.3.3.4 Деталь окна BFEI в случае ASO
Тип ответа | 1 | 2 | 3 | ||
3 | 0 | 3 | F | ||
Поле BFEI | AADS | ||||
3 | 0 | 3 | F |
3.3.3.5 Деталь полей BTIMOUT и BERREUR
Деталь кодирования временных задержек
2 | 1 | 0 | Значение |
0 | 0 | 0 | Задержка не инициирована |
0 | 0 | 1 | Задержка передачи - TOCO' |
0 | 1 | 0 | Задержка начала - TOE' |
1 | 0 | 0 | Задержка КАНАЛЬНОГО уровня - TOL' |
1 | 1 | 1 | Задержка типа "пулемет" - TOB' |
Деталь кодирования BERAP
1 | 0 | Значение |
0 | 0 | Нет ошибок |
1 | 0 | Отклоненные данные (DNA = 1) |
0 | 1 | Отклоненная идентификация (DNA = 2) |
1 | 1 | Ошибка в ПРИКЛАДНОМ уровне (ERAP = 1) |
3.3.3.6 Инициализация таблицы Б
В случае переполнения при задержке ТОСО', ТОВ', TOE' или TOL' ФИЗИЧЕСКИЙ уровень позиционируется в поле BTIMOUT, соответствующее обрабатываемой последовательности, флаг переполнения связывается с этой задержкой; текущая последовательность определяется посредством параметров I и J, приходящих от ПРИКЛАДНОГО уровня.
Для подготовки к возможному прекращению обмена в случае превышения временной задержки таблица Б инициализируется следующим образом.
Для каждой последовательности ПРИКЛАДНОЙ уровень будет обновлять эту таблицу, устанавливая поле данных, если последовательность обработана успешно; если последовательность прекращает свое выполнение после санкционированных перезапусков, поле данных, связанное с этой последовательностью, будет пустым.
3.3.4 Таблицы А и Б, связанные с инициализацией шины
3.3.4.1 Получаемая таблица А
Инициализация шины всегда выполняется надо всей шиной в целом, следовательно, поле AADS соответствует адресу ADG = 0 так, что все подключенные устройства (ADP известен) подвержены этому действию.
Поле ATYPE после усечения и сочленения в 1 байт соответствует команде IB = 09Н, которая будет использоваться протоколом.
Поле данных ADON пусто, и поэтому число байтов в таблице ADON равно 0.
Первичная станция помещает свой адрес в поле AADP, которое после усечения и сочленения в 1 байт соответствует адресу ADP, используемому протоколом.
Число байтов в этой таблице постоянно и равно 20.
3.3.4.2 Возвращаемая таблица Б
Теоретически за инициализацией шины не следуют ответы со стороны вторичной станции, поэтому поле BDON пусто.
При этой операции не выполняется никакой процедуры перезапуска, которая определяет значения, содержащиеся в полях BNSEQI(i) и BNDEROU.
Бит RECNU устанавливается в 1 при нормальном выполнении обмена, число байтов в таблице Б фиксировано и равно 14.
3.3.5 Таблицы А и Б, связанные с запросом забытых станций
3.3.5.1 Получаемая таблица А
Запрос забытой станции посылается ко всей или части шины в зависимости от содержания АТАВ(i) и установки шины. Он передается по шине.
После обработки, как и в предыдущем параграфе, ATAB(i) преобразуется в байты TAB(i), которые непосредственно вставляются в структуру запроса забытой станции. Вторичные станции отвечают, если они распознают, по крайней мере, один TAB(i) в списке их возможных TAB(i) и если DSO = 0.
Содержание различных полей, следовательно, выводится из этих факторов. Поле ATYPE соответствует команде ASO = 07Н.
Поле AADS соответствует общему адресу (ADG = 0) таким образом, что все вторичные станции, предназначенные реагировать на ADP, будут интерпретировать эту команду.
Первичная станция будет указывать свой адрес в поле AADP.
3.3.5.2 Возвращаемая таблица Б
Результат операции запроса забытой станции имеет несколько форм. Фактически, если нет забытых станций, то никакая станция не должна отвечать. Если станции являются забытыми, они отвечают в одном из трех случайных окон разделения времени. Результирующая таблица Б должна показывать, что произошло в каждом из этих окон.
Тип 1 - отсутствие ответа в начальном окне FEi: поле BFEi будет в нуле (30Н).
Тип 2 - понятный ответ в окне FEi: поле BFEi, соответствующее этому окну, содержит адрес отвечающей станции (ADS).
Тип 3 - непонятный ответ в окне FEi: поле, соответствующее этому окну, содержит FF ... FF (3FH).
Каждое из трех полей BFEi состоит из 12 байтов, поле BNR поэтому соответствует кодированию числа 36 (24Н).
Поле BNSEQI(1) соответствует 1, так как за вызовом забытой станции никогда не следует перезапуск. Новому вызову забытой станции всегда будет предшествовать инициирующий запрос, как упоминалось выше.
После правильного обмена байты BTIMOUT и BERREUR могут принять различные значения, зависящие от типа ответа:
- нет ответа;
- правильный ответ;
- неопределенный ответ.
Таблица Б всегда состоит из 54 байтов (36Н).
3.3.6 Таблицы А и Б, связанные с дистанционным считыванием
3.3.6.1 Получаемая таблица А
При дистанционном считывании обмен может состоять из нескольких последовательностей, соответствующих последовательным дистанционным считываниям различных данных; эта возможность предлагается протоколом, чтобы позволить считывание данных, содержащих более 116 байтов (см. детали этой операции дистанционного считывания несколькими последовательностями в разделе 2).
Максимальное число последовательностей - пять, что позволяет считывание данных, содержащих до 116х5 = 580 байтов, закодированных в 1160 байтов в таблице Б.
Для определения числа и порядка этих следующих друг за другом последовательностей таблица А включает в поле данных ADON информацию ATAB(i), соответствующую типу данных, которые должны быть считаны во время каждой последовательности. После обработки байтов TAB(i) различные поля ATAB(i) начинают непосредственно вставляться в структуры протокола. Вторичная станция не может априори правильно ответить на команду дистанционного считывания, один из TAB(i) которой в одной из последовательностей указывал бы на поле данных, превышающее 116 байтов. Этот факт, таким образом, должен держаться в памяти для обеспечения соответствия между TAB(i) и ассоциированным полем данных. Здесь это соответствие не рассматривается, так как оно тесно связано с различными применениями, которые могут выполняться с помощью этого протокола.
В таблице А, следовательно, поля AADS и AADP различны с ATYPE, соответствующим дистанционному считыванию (TR: ENQ = 01Н). Длина поля ADON варьируется от как минимум 2 байтов до 10 байтов максимум, что вытекает из содержимого поля ANA. Полное количество байтов в этой таблице может, следовательно, изменяться от как минимум 22 байтов - для дистанционного считывания одной последовательностью до 30 байтов - для дистанционного считывания пятью последовательностями. Содержимое поля ANECHAU определяется этими факторами.
3.3.6.2 Возвращаемая таблица Б
Данные, считываемые в различных последовательностях, восстанавливаются в различных полях BDON(i). Чтобы придать протоколу большую гибкость и не устанавливать размер поля даннных, связанных с конкретным TAB(i), раз и навсегда каждому полю BDON(i) предшествуют 2 байта, определяющих размер этого поля, которое может содержать вплоть до 232 байтов. Поэтому максимальное число, закодированное в BNR, соответствует значению 1170 = 5 х (232 +2) = 492 Н.
Поле BNSEQI(i) содержит значения от 1 до 3 в соответствии с числом идентичных запросов в рассматриваемой последовательности (максимум три запроса).
Если в каждой из трех последовательностей запроса/ответ связь происходила с ошибкой, данные, относящиеся к этой связи, не появятся в таблице Б, но результаты других связей, тем не менее, являются доступными, если они выполнены нормально.
Если обмен имел место с ошибкой для последовательности и ее двух повторений, то данные, связанные с этой последовательностью, не появляются в таблице Б, но результат любой другой последовательности по-прежнему доступен, если они прошли без ошибок.
3.3.7 Таблицы А и Б, связанные с дистанционным программированием
3.3.7.1 Получаемая таблица А
При дистанционном программировании необходимая информация для выполнения обмена состоит из обычных данных AADS, AADP и ATYPE вместе с ключом декодирования и фактическими данными дистанционного программирования.
Ключ включает 64 бита в структурах протокольного обмена; он кодируется 16 байтами в таблице А аналогично числу NA1.
Примечание - Для обеспечения защиты ключа рекомендуется передавать закодированную версию его применений в таблице А интерфейсу первичной станции.
Максимальная длина данных дистанционного программирования - 202 байта в таблице А (т.е. 101 фактический байт в протоколе). Это значение определяет длину поля ANA, соответствующую 234 байтам (202+16+16), т.е. ЕА в шестнадцатеричном коде, а также длину поля ANECHAU, соответствующую 254 байтам, т.е. FE в шестнадцатеричном коде.
3.3.7.2 Возвращаемая таблица Б
Возвращаемая таблица для дистанционного программирования включает 16-байтовое поле данных, соответствующее случайному числу NA1, сгенерированному при данном обмене. О любой ошибке уведомляет поле BERREUR.
Поле BNR содержит значение 16 (10Н), а поле BNECHAU - значение 12 (0СН).
3.4 Инициализация протокола и последовательность действий при обмене
3.4.1 Инициализация
Протокол ПСУ инициализируется внешней процедурой, которая ожидает возврата переменной FINPHI, прежде чем продолжить выполнение своей программы.
Для того чтобы исключить некоторые неопределенности, которые могут возникнуть при выполнении протокола, ПСУ всегда играет роль первичной станции при любом виде обслуживания.
3.4.2 Последовательность действий при дистанционном программировании
За каждым обменом дистанционного программирования следует обмен дистанционного считывания, позволяющий проверить согласованность информации, запрограммированной в адресованном устройстве и содержащейся в ПСУ.
Запрограммированные данные должны быть автоматически удобочитаемыми одной или несколькими последовательностями с помощью одного или нескольких TAB(i).
Для того чтобы упростить управление таблицами в ПСУ, когда обмены дистанционного считывания и дистанционного программирования должны выполняться по одной и той же шине, ПСУ в первую очередь осуществляет все обмены дистанционного считывания (возможно, связанные с процедурой запроса забытой станции, как определено ниже), а затем обмены дистанционного программирования требуемых устройств.
Последовательность действий при дистанционном программировании
3.4.3 Последовательность действий при обращении к забытым станциям
В случае запроса забытой станции, если возвращаемая таблица Б включает один или несколько опознанных адресов в одном из трех окон BFEi полей, ПСУ в следующем обмене будет инициировать считывание идентифицированной забытой станции. Если возвращаемая таблица содержит одно или несколько окон FF ... FFH полей, ПСУ обновит запрос забытой станции в следующем обмене.
Эта последовательность объясняется на нижеследующей блок-схеме. Запрос забытой станции заканчивается, когда все забытые станции были обнаружены или когда номер запроса забытой станции принимает значение, которое будет установлено ПСУ в соответствии с ожидаемой вероятностью успеха.
В конце этой последовательности ПСУ будет иметь доступ ко всей необходимой информации относительно забытых станций; помимо всего другого оно может определить, имеются ли еще какие-либо забытые станции после нескольких санкционированных обменов.
Блок-схема запроса забытой станции
DETR - флаг обмена дистанционного считывания; DEASO - флаг обмена при запросе забытой станции; NEASO - число обменов при запросах забытой станции, устанавливаемое ПСУ.
3.4.4 Время, разделяющее два обмена
Принимая во внимание функциональные характеристики протокола, максимальное время между двумя последовательными обменами должно быть определено, чтобы гарантировать, что протокол вторичной станции закончен, прежде чем возобновить новый обмен. Это время должно быть большe, чем время, оставляемое вторичной станцией для возможной процедуры перезапуска, следовательно минимальное время между концом протокола первичной станции и ее стартом для следующего обмена составляет 200 мс.
3.4.5 Время обмена, определяемое внешним процессором
Если протокол ведущей станции (контроллер) терпит неудачу так, что ответа нет (возврат таблицы Б и флага FINPHI) в течение максимального периода 15 с (соответствующего максимальной задержке времени передачи ТОСО'), внешний процесс должен взять инициативу возобновления той же операции, т.е. реинициализацию протокола с той же таблицей А.
Перед реинициализацией внешний процесс должен снова инициализировать уровни протокола.
3.5 ФИЗИЧЕСКИЙ уровень
3.5.1 Общие положения
Основные схемы для системы посылки/приема для первичной станции или вторичных станций приведены в разделе 2.
ФИЗИЧЕСКИЙ уровень активируется событием вне инициативы ПСУ, начиная с общей инициализации, необходимой для всех уровней протокола, и активации других уровней протокола: КАНАЛЬНОГО, СЕАНСОВОГО и ПРИКЛАДНОГО.
Во время обмена первичная станция берет на себя инициативу, генерируя инициирующий запрос в течение номинального периода 100 мс, подробности см. в разделе 2.
Когда сделан инициирующий запрос, ФИЗИЧЕСКИЙ уровень ожидает установку структуры более высокими уровнями в соответствии с различными параметрами, содержащимися в таблице А. Когда первая структура, которая должна быть передана по шине, полностью установлена, ФИЗИЧЕСКИЙ уровень получит флаг синхронизации от непосредственно следующего за ним уровня (КАНАЛЬНОГО), чтобы начать передачу рассматриваемой структуры. В конце передачи активируется пауза ответа продолжительностью 40 мс - TEMPO (ускорение), что соответствует времени, которое требуется вторичной станции, чтобы обнаружить конец структуры (с помощью превышения времени ТАОМ). Это ожидание необходимо для первичной/вторичной синхронизации в случае запросов забытых станций.
С этого момента вторичная станция, если она отвечает, должна предпринять действие в течение времени, меньшего ТА1ОМ'; первичная станция, таким образом, переходит в режим приема и ожидает максимум ТА1Оm' для приема первого байта.
Далее возможны два случая. Либо в течение выделенного времени поступает ответ, тогда первичная станция сохраняет всю структуру до тех пор, пока не возникает условие "нет байтов", указывающее на конец структуры (ТАО'ТАОМ'). Либо ответа нет, и тогда первичная станция устанавливает переменную RECNU в 1.
Условие неполучения (RECNU = 1) сопровождается синхронизирующей передачей верхним уровням (PHILI переходит в 1), так чтобы они могли интерпретировать, успешно ли выполнена операция.
После интерпретации полученной структуры (RECNU = 0) более высокие уровни будут решать в соответствии с общей ситуацией (значениями переменных) продолжать ли обмен или остановить его. Этот конец обмена указывает ФИЗИЧЕСКОМУ уровню, что он должен закрыть протокол: КАНАЛЬНЫЙ, СЕАНСОВЫЙ и ПРИКЛАДНОЙ уровни прерваны. Переход переменной FINPHI в 1 указывает внешнему процессу, что он может взять на себя инициативу, чтобы сохранить и, если необходимо, обработать информацию из таблицы Б, полученную при этом обмене.
При выполнении операций на ФИЗИЧЕСКОМ уровне особый случай возникает при запросе забытой станции. За созданием такой структуры следует возможные ответы в трех ясно определенных окнах разделения времени. Переменная IASO, обработанная верхними уровнями, увеличивается в соответствии с окнами разделения времени, в которых она работает. Таймер-счетчик, активированный ТАОМ' после создания структуры, позволяет определить три окна разделения времени в связанной синхронизации с посылками вторичной станции.
3.5.2 Состояния ФИЗИЧЕСКОГО уровня
3.5.2.1 Схема состояний
3.5.2.2 Описание состояний
Общие принципы
Время выполнения для каждого состояния контролируется переменной, называемой временной задержкой. Каждый раз, когда состояние становится доступным, его задержка переустанавливается и затем увеличивается до тех пор, пока состояние является активным. Превышение этого времени приводит к более раннему выходу из рассматриваемого состояния.
Для контроля полного времени обмена счетчик времени ТОСО' инкриминируется (увеличивается) с момента конца инициирующего запроса, и если в течение обмена происходит переполнение (ТОСО'>ТОСОМ'), он выполняет ранний выход из состояния, в течение которого произошло переполнение.
Этот ранний выход в случае превышения временной задержкой связан с установкой флага переполнения в поле BTIMOUT(i, j).
Время ожидания ТАХХХ' также используются для контроля выполнения некоторых состояний. Они не соответствуют временным задержкам и не могут их заменить.
Эти различные временные счетчики управляются таймером, период которого должен выбираться так, чтобы удовлетворить критерию измерения времени, определенному ниже. Этот таймер осуществляет управление параллельно с действиями ФИЗИЧЕСКОГО уровня.
При инициализации параметры I, J равны 1, и таблица Б сконфигурирована в основном состоянии. Затем таблица Б и параметры I, J постепенно переустанавливаются ПРИКЛАДНЫМ уровнем после каждой последовательности.
Детали этой операции даны при описании ПРИКЛАДНОГО уровня.
Состояние 0
Общая инициализация протокола. Старт таймера задержки связи ТОСО. Все переменные всех уровней и флаги синхронизации, необходимые для управления обменом, инициализируются.
Верхние уровни КАНАЛЬНЫЙ, СЕАНСОВЫЙ и ПРИКЛАДНОЙ приводятся в состояние готовности.
Состояние 1
ФИЗИЧЕСКИЙ уровень генерирует инициирующий запрос (см. 2.6.2).
Когда время инициирующего запроса достигает номинального значения, активируется пауза ответа TEMPO, равная 40 мс. Это позволяет вторичным станциям, получившим сигнал инициирующего запроса, подтвердить его.
Раздел 2 определяет, что за инициирующим запросом должен следовать первый байт в структуре спустя минимум ТА1Om, равного 30 мс. Следовательно, пауза ответа в отношении вторичной станции согласуется с этим принципом; она установлена малой, чтобы минимизировать общее время передачи.
По окончании задержки ответа ФИЗИЧЕСКИЙ УРОВЕНЬ путем установления флага синхронизации PHILI приглашает более высокий КАНАЛЬНЫЙ уровень выполнять свои операции.
Состояние 2
Переход в состояние ожидания флага синхронизации LIPHI, порождаемого КАНАЛЬНЫМ уровнем.
Состояние 3
Посылка байтов: верхние уровни сформировали буфер или набор буферов для передачи; их положение и длина посланы ФИЗИЧЕСКОМУ уровню так, что он может выполнить передачу байтов, составляющих буфер(а).
За этим состоянием следует ожидание (TEMPO), равное 40 мс, необходимое для синхронизации окон ожидания в случае запроса забытой станции.
Состояние 4
Прием байтов. ФИЗИЧЕСКИЙ уровень переводит модем в состояние приема и сохраняет получаемые байты в буфере, который будет послан верхним уровням для обработки.
В случае запроса забытой станции с IASO = 0, установленной ПРИКЛАДНЫМ уровнем, таймер-счетчик, который был сброшен, будет активирован; это позволяет измерить продолжительность окон ожидания для трех возможных ответов.
Состояние 5
Случай запроса забытой станции (0<IASO<3). Это состояние делает возможным ожидать синхронизацию для определения старта второго и третьего окон.
Состояние 6
Конец ФИЗИЧЕСКОГО уровня, который завершает все более высокие КАНАЛЬНЫЙ, СЕАНСОВЫЙ и ПРИКЛАДНОЙ уровни и переводит себя в состояние окончания работы после передачи посредством FINPHI сигнала внешнему процессу о том, что протокол закончен.
3.5.2.3 Описание переходов
Ар - приведение в готовность и активация процесса на ФИЗИЧЕСКОМ уровне внешним процессом.
а0 - безусловный переход из состояния 0 в состояние 1.
a1 - после инициирующего запроса и 40 мс ожидания безусловный переход из состояния 1 в состояние 2.
а2 - событие LIPHI = 1 (возврат синхронизации от КАНАЛЬНОГО уровня), связанное с переменной PAREP = 0. Этот случай имеет место, когда верхние уровни хотят послать структуру: первую структуру в новой последовательности, перезапуск в случае ошибки в последовательности команд при дистанционном считывании или дистанционном программировании.
b2 - событие LIPHI = 1, связанное с переменными PAREP = 1 и IASO = 0, показывающими, что не должно быть никакого ответа. Этот случай соответствует выходу из инициализации нормальной шины при дистанционном считывании или программировании; или выходу по ошибке после перезапусков, разрешенных при дистанционном считывании или дистанционном программировании.
с2 - событие LIPHI = 1, связанное с PAREP = 1 и переменной IASO, равной 1 или 2. Оно касается запроса забытой станции; IASO увеличивается ПРИКЛАДНЫМ уровнем в течение периода, соответствующего каждому окну:
- в начале первого окна IASO = 0;
- в начале второго окна IASO = 1;
- в начале третьего окна IASO = 2.
d2 - переполнение TOL' (TOL' > TOLM') указывает, что протокол первичной станции выполняется ненормально, поэтому он должен быть остановлен.
f2 - событие LIPHI = 1, связанное с переменными PAREP = 1 и IASO3. Этот случай соответствует выходу из обмена при нормальном запросе забытой станции после передачи трех окон ожидания (сообщаемых посредством IASO).
е2, с3, d4, b5 - задержка передачи, отсчитываемая после инициирующего запроса, проверяется после каждого состояния 2, 3, 4 и 5; ее превышение обуславливает переход в состояние 6, соответствующее остановке протокола.
а3 - нормальный выход из состояния 3, если задержки TOE' и ТОСО' не превышены. Следовательно, за передачей байта всегда следует перевод модема в режим приема.
b3 - превышение задержки передачи TOE', которая управляет переходом в состояние 6, соответствующее остановке протокола.
а4 - первичная станция не получает никакого байта, что приводит к превышению времени ожидания первого байта (ТА1O' > ТА1OМ'). Это событие связано с установкой RECNU в 1 и установкой флага синхронизации, посылаемого КАНАЛЬНОМУ уровню (PHILI = 1) перед переходом в состояние 2.
Это событие соответствует случаю отсутствия ответа от вторичной станции; следовательно, работа протокола является ошибочной, если он включает обмены дистанционного считывания или дистанционного программирования, но может соответствовать нормальному случаю, если он имеет дело с запросом забытой станции или инициализацией шины.
b4 - событие ТАО'>ТАОМ' указывает конец приема байта. Устанавливается флаг синхронизации (PHILI = 1) перед переходом в состояние 2.
с4 - превышение задержки ТОВМ' приводит к переходу в состояние 6, соответствующее концу протокола.
а5 - во время запроса забытой станции три окна контролируются по времени таймером; переполнение этого таймера (таймер TIMAX, если это касается второго окна, или таймер выше 2хТIМАХ, если это касается третьего окна при TIMAX = 500 мс), имеет место переход в состояние приема 4 для ожидания в следующем окне разделения времени.
Вр - состояние 6 связано с прекращением протокола в целом и посылкой флага синхронизации (FINPHI = 1) для управления результатом обмена внешним процессом.
3.5.2.4 Схема состояний, иллюстрирующая несколько примеров
В этих различных случаях не предусматривается превышение задержки.
Дистанционное считывание. Типовой случай
Дистанционное программирование. Типовой случай
Инициализация шины. Типовой случай
Запрос забытой станции. Случай наличия ответа только во втором окне
3.5.3 Схемы разделения времени
3.5.3.1 Типовой случай (рассматривается со стороны первичной станции)
TAG' = 100 мс; ТАОМ' = 40 мс; ZA1OM' = 120 мс; TOLM' = 100 мс; ТОСОМ' = 15 с; ТАСЕОМ' = 30 мс; ТОЕМ' = (128х10/1200) + ТАСЕОМ' = 1100 мс; ТОВМ' = (127х10/1200)х(1,1) + ТАОМ' = 1360 мс; TEMPO = 40 мс.
Следует сравнить временную диаграмму с диаграммой, приведенной в разделе 2 (типовой случай, рассмотренный со стороны вторичной станции). Работа первичной станции на уровне разделения времени в точности соответствует работе вторичной станции.
Время ТАСЕОМ', препятствующее слишком большому времени ожидания между посылкой двух байтов, определяется передатчиком, который должен проверить этот критерий, и никогда не проверяется приемником.
3.5.3.2 Другие случаи. Факторы, имеющие отношение к точности определения времени
Диаграммы, в случае ошибки после приема и вызова забытой станции, могут быть получены из диаграмм раздела 2.
Времена контролируют с точностью ±1% (±10 мс).
Следовательно, время инициирующего запроса, что касается первичной станции, находится в диапазоне от TAG'm = 90 мс до TAGM' = 110 мс с учетом абсолютной погрешности.
3.6 КАНАЛЬНЫЙ уровень
3.6.1 Общие положения
КАНАЛЬНЫЙ уровень приводится в готовность ФИЗИЧЕСКИМ уровнем при активации последнего. Затем он находится в состоянии ожидании флага синхронизации (PHILI) от ФИЗИЧЕСКОГО уровня.
При получении этого флага он выполняет свои действия до передачи сигнала верхнему уровню (СЕАНСОВОМУ) посредством флага синхронизации LISES, так что последний может начать выполнение своих действий.
Затем он переводится в режим ожидания возврата флага синхронизации (SESLI) от СЕАНСОВОГО уровня, чтобы выполнить свое действие перед пересинхронизацией ФИЗИЧЕСКОГО уровня с помощью LIPHI.
Этот процесс синхронизации может быть представлен следующим образом.
Отключение (возврат в состояние ожидания ФИЗИЧЕСКОГО уровня) может происходить при различных событиях, которые будут описаны в диаграмме состояний.
КАНАЛЬНЫЙ уровень отключается только ФИЗИЧЕСКИМ уровнем в нормальном конце обмена или при переполнении одной из временных задержек.
3.6.2 Поля операций КАНАЛЬНОГО уровня
Действие КАНАЛЬНОГО уровня для первичной станции совершенно аналогично действию КАНАЛЬНОГО уровня для вторичной станции (см. раздел 2).
Проверки синтаксиса и достоверности передачи при приеме включают в себя:
- синтаксическую проверку байта N (N128);
- проверку посредством CRC 16;
- синтаксическую проверку и проверку достоверности управляющего поля (СОМ);
- синтаксическую проверку и проверку достоверности первичного поля адреса (ADP) и вторичного поля адреса (ADS);
- соответствие между первичным ADP и вторичным ADS адресами, полученными в структуре, и данными, содержащимися в таблице А (поля AADS и AADP). Эта проверка не предусмотрена для случаев AADS = 0 и AADP = 0.
При передаче КАНАЛЬНЫЙ уровень будет получать от верхнего уровня буфер, соответствующий данным для передачи, связанной с полем управления; затем он составляет полную структуру, посланную ФИЗИЧЕСКИМ уровнем по шине, вставляя байты из полей ADS и ADP, которые извлекаются из таблицы А, и вычисляя число N, вставленное как заголовок, а также CRC, вставленный в конце структуры.
Значение числа N
N = | (LSUP) + | L (ADS) + | L (ADP) + | L (N) + | L (CRC), | |||
6 | 1 | 1 | 2 |
N= (LSUP) + 10 байтов.
КАНАЛЬНЫЙ уровень получает от СЕАНСОВОГО уровня буфер или набор буферов, сопровождаемых их стартовым адресом полей и длиной.
Чтобы минимизировать число параметров, передаваемых между уровнями, возможно передавать только длину и местоположение таблицы, содержащей набор стартовых полей и значений длин.
Это замечание применимо ко всем уровням, включая представленный случай передачи буферов между СЕАНСОВЫМ и КАНАЛЬНЫМ уровнями, а также между КАНАЛЬНЫМ и ФИЗИЧЕСКИМ уровнями.
3.6.3 Состояния в КАНАЛЬНОМ уровне
3.6.3.1 Схема состояний
3.6.3.2 Описание состояний
Состояние 0
После приведения в готовность КАНАЛЬНЫЙ уровень принимает состояние ожидания ФИЗИЧЕСКОГО уровня (флаг синхронизации PHILI = 1), переменная FROMEXT равна 1 после первого прохода через это состояние и равна 0 для последующих проходов (устанавливается в 1 при общей инициализации протокола).
Состояние 1
Состояние инициализации запроса или ответа. Оно включает переустановку переменных, требуемых для управления последовательностью (LIPHI, LISES, PAREP и ERLI - переустанавливаются).
Состояние 2
Синтаксическая проверка и проверка достоверности полученной структуры. Проверка поля ADS (если ADS 0) и поля ADP (если ADP0). Определенные операции, соответствующие этому состоянию, описаны в начале этого раздела. Ошибка в одной из этих проверок приводит к установке флага ошибки связи (ERLI = 1).
Конец этого состояния сопровождается установкой флага синхронизации (LISES = 1).
Состояние 3
Ожидание возврата флага синхронизации SESLI от верхнего уровня (СЕАНСОВОГО).
Состояние 4
Установка структуры посредством обработки буферов, полученных от СЕАНСОВОГО уровня, как определено в 3.6.2.
Состояние 5
Отключение КАНАЛЬНОГО уровня и переход синхронизации к нижнему ФИЗИЧЕСОМУ уровню посредством установки LIPHI.
3.6.3.3 Описание переходов
AL - установка флага PHILI обуславливает выход КАНАЛЬНОГО уровня из состояния 0 для перехода в состояние 1.
a11 - после инициализации, если это первый раз, когда КАНАЛЬНЫЙ уровень системы входит в состояние 1 (FROMEXT = 1), КАНАЛЬНЫЙ уровень будет передавать флаг синхронизации СЕАНСОВОМУ уровню так, чтобы верхние уровни подготовили структуру к передаче.
b11, с11 - если это не первый раз, когда система входит в состояние 1, то начальная структура уже была передана (FROMEXT = 0).
b11 - если никакого ответа не было в результате первой передачи (RECNU = 1), система устанавливается в состояние 3 так, чтобы верхние уровни могли интерпретировать этот результат.
с11 - ответ на этот первый запрос был дан (RECNU = 0), система входит в состояние 2 для проверки полученной структуры.
а12 - если по крайней мере одна ошибка выявляется в процессе проверок, сделанных в состоянии 2, система будет переходить в состояние 3 с установкой переменной ERLI (ERLI= 1).
b12 - если никаких ошибок не обнаружено в состоянии 2, система будет переходить в состояние 3 без установки переменной ERLI.
а13, b13 - установка флага синхронизации SESLI ведет к выходу из состояния ожидания СЕАНСОВОГО уровня (состояние 3).
а13 - установка SESLI с PAREP = 0 указывает, что требуется структура передачи. Система входит в состояние 4.
b13 - установка SESLI с PAREP = 1 указывает, что не требуется никакой структуры. Система входит в состояние 5.
а14 - когда структура была составлена, система будет выполнять безусловный переход в состояние 5.
BL - отключение КАНАЛЬНОГО уровня связано с переходом ФИЗИЧЕСКОГО уровня в состояние ожидания 0 после установки флага LIPHI, позволяющего синхронизировать ФИЗИЧЕСКИЙ уровень.
3.6.3.4 Диаграмма состояний, иллюстрирующая несколько примеров
В этих различных случаях не предусматривается, что будут иметь место превышения временных задержек на ФИЗИЧЕСКОМ уровне.
Дистанционное считывание. Типовой случай
Дистанционное программирование. Типовой случай
Инициализация шины. Типовой случай
Запрос забытой станции. Только один ответ во втором окне
3.7 СЕАНСОВЫЙ уровень
3.7.1 Общие положения
СЕАНСОВЫЙ уровень приводится в готовность ФИЗИЧЕСКИМ уровнем при старте протокола. После чего он находится в состоянии ожидания флага синхронизации (LISES) от КАНАЛЬНОГО уровня.
Процесс синхронизации СЕАНСОВОГО уровня со смежными уровнями представлен ниже.
СЕАНСОВЫЙ уровень отменяется ФИЗИЧЕСКИМ уровнем только в конце нормального обмена или при превышении одной из временных задержек.
Основная функция СЕАНСОВОГО уровня - контролировать и управлять последовательностью команд в последовательных структурах.
Для начальной последовательности (FROMEXT = 1) первичная станция подготавливает первую команду, которая должна быть послана по шине, в соответствии с содержанием поля ATYPE в таблице А, предоставленной в распоряжение внешнего процесса.
Флаги устанавливаются в зависимости от полученной команды (см. 3.7.2), чтобы передать требуемый сервис ПРИКЛАДНОМУ уровню.
ПРИКЛАДНОМУ уровню затем предлагается подготовить возможный буфер данных, который наращивается СЕАНСОВЫМ уровнем из поля команды, подготовленным прежде, чем он будет представлен более низким уровням для передачи по шине.
После этого запроса, в соответствии с типом действия и последовательностью протокола, ожидается ответная структура от вторичных станций (в случаях дистанционного считывания, дистанционного программирования, ответа в окне запроса забытой станции), которая затем интерпретируется. Затем СЕАНСОВЫЙ уровень проверяет последовательность без ошибок в командах на правильное сочленение структур и подготавливает возможную команду для следующей последовательности.
Таблица сочленения команд (рассматривается со стороны первичной станции)
Событие | Запрос | Ответ |
Дистанционное считывание | ENQ | DAT |
или DRJ | ||
Дистанционное программирование | REC | ЕСН |
AUT | EOS | |
или ARJ, | ||
или DRJ | ||
Инициализация шины | IB | / |
Запрос забытой станции | ASO | RSO |
Если одна из структур ответа не достигает первичной станции или приходит неправильно, осуществляется процедура перезапуска для ошибочной последовательности, кроме случая структуры ASO.
3.7.2 Возможные случаи интерпретации команд
Переменная APREС (предыдущий запрос), позволяющая определить, обработана ли начальная последовательность, является необходимой для этой интерпретации. Четыре других флага позволяют узнать тип последовательности, сделанной во время предыдущего вызова:
- DTR - флаг дистанционного считывания;
- DTP - флаг дистанционного программирования;
- DASO - флаг вызова забытой станции;
- DIB - флаг инициализации шины.
Эти флаги устанавливаются во время подготовки первой команды для первой структуры обмена (см. состояние 2 на диаграмме состояний).
APREС устанавливается в 1, если DIB = 1 или DASO = 1, или DTP = 1, или DTR = 1.
Переменная DNA связана с возможно полученными структурами неподтверждения:
DNA - флаг неподтверждения, указывающий, что была получена структура, включающая команду DRJ (DNA = 1) или ARJ (DNA = 2).
Алгоритм состояния 3
APREC = 0 (случай первой последовательности).
1) Если СОМ = DAT (случай дистанционного считывания), тогда:
- при DTR = 1 сочленение правильное;
- при DTR = 0 ERSES = 1.
2) Если СОМ = DRJ (случай дистанционного считывания, идентифицирующий неизвестные данные TAB), тогда:
- при DTR = 1 DNA = 1;
- при DTR = 0 ERSES = 1.
3) Если СОМ = ЕСН, тогда:
- при DTP = 1 СОМ = AUT (случай дистанционного считывания при подготовке СОМ второй последовательности);
- при DTP= 0 ERSES =1.
4) Если СОМ = RSO, тогда:
- при DASO = 1 CASO = 3 (случай запроса забытой станции; понятный ответ), APREC =0; .
- при DASO = 0 ERSES =1.
5) Если СОМ RSO, тогда при DASO = 1 CASO = 2, ERSES = 1, APREC = 0.
6) При СОМ DAT и СОМ ЕСН и СОМ RSO и СОМ DRJ
ERSES = 1 (ошибка при сочленении команд, отличная от ошибок в приведенных выше четырех случаях).
APREC = 1 (случай второй последовательности).
1) Если СОМ = DAT (случай перезапуска при дистанционном считывании или запрос из другой таблицы TAB), тогда:
- при DTR = 1 имеет место Ничто (сочленение правильно);
- при DTR = 0 ERSES =1 (сочленение неправильно).
2) Если СОМ = DRJ, тогда:
- при DTR = 1 (случай перезапуска при дистанционном считывании или запрос от неизвестной TAB DNA = 1 (признак неизвестной TAB);
- при DTP = 1 и AR = 1 (случай пропущенных программных данных) DNA = 1 (признак отклонения данных);
- в других случаях ERSES = 1 (сочленение неправильно).
3) Если СОМ = ЕСН (случай перезапуска при дистанционном программировании на первой последовательности), то:
- при DTP = 1 и AR = 0, тогда:
если (DTR= 0 и DASO = 0) СОМ = AUT (подготовка команды следующей последовательности),
в других случаях ERSES = 1 (сочленение неправильно);
- при DTP = 0 или AR = 1 ERSES = 1 (сочленение неправильно).
4) Если СОМ = EOS (случай перезапуска при дистанционном программировании на второй последовательности), тогда:
- при DTP= 1 и AR = 1 имеет место Ничто;
- при DTP = 0 или AR = 0 ERSES = 1 (сочленение неправильно).
5) Если СОМ = ARJ (отклоненная идентификация), тогда:
- при DTP = 1 и AR = 1 DNA = 2 (признак отклонения идентификации);
- при DTP = 0 и AR = 0 ERSES = 1.
6) Если СОМDAT, СОМЕСН, СОМRSO, СОМDRJ, СОМARJ, СОМEOS, тогда ERSES = 1 (ошибка в сочленении команд, отличная от ошибок в трех вышеприведенных случаях).
Примечание - Протокол никогда не будет инициировать никаких процедур перезапуска при запросе забытой станции, вне зависимости от ответа.
3.7.3 Состояния в СЕАНСОВОМ уровне
3.7.3.1 Схема состояний
3.7.3.2 Описание состояний
Состояние 0
Ожидание флага синхронизации LISES от более низкого уровня - КАНАЛЬНОГО.
Состояние 1
Инициализация запроса или ответа
В этом состоянии СЕАНСОВЫЙ уровень начинает работу посредством идентификации одного из двух случаев: если это первый раз, когда СЕАНСОВЫЙ уровень подключается во время обмена (FROMEXT = 1), он должен подготовить начальную команду (переход в состояние 2). Если это не первая структура (FROMEXT = 0), флаги DIB, DASO, DTR, DTP, RECNU и ERLI должны быть проанализированы, чтобы решить, какой переход выполнять.
Состояние 2
Подготовка начальной команды.
СЕАНСОВЫЙ уровень подготовит командный байт для ввода в первую структуру в соответствии с содержимым поля ATYPE в таблице А. Флаги DTR, DTP, DIB, DASO устанавливаются в соответствии с начальной командой.
Состояние 3
Интерпретация команды и подготовка следующей команды в соответствии с алгоритмом, представленным ранее.
Состояние 4
Ожидание возврата синхронизации от ПРИКЛАДНОГО уровня (APSES).
Состояние 5
Ввод команды, подготовленной в течение состояний 2 и 3, в буфер, возвращаемый от ПРИКЛАДНОГО уровня. Эта команда модифицируется, если DTP = 1 и AR = 0, и СОМ = AUT, и, следовательно, СОМ = REC.
Состояние 6
Отключение СЕАНСОВОГО уровня, сопровождаемое переходом синхронизации к более низкому уровню (SESLI = 1).
3.7.3.3 Описание переходов
As - получение флага синхронизации LISES делает возможным переход из состояния ожидания КАНАЛЬНОГО уровня в состояние инициализации 1.
as1 - это первый раз, когда СЕАНСОВЫЙ уровень подключается в процессе обмена (FROMEXT = 1); это событие обуславливает переход системы в состояние 2 - подготовка начальной команды.
bs1 - случай, когда FROMEXT = 0 и обмен соответствует дистанционному считыванию или дистанционному программированию (DTR = 1 или DTP = 1), не связанному с каким-либо приемом на рассматриваемой последовательности (RECNU =1), допускается наличие ошибки, и тогда рассматривается процедура перезапуска. Этот случай ошибки, следовательно, связан с установкеой ERSES.
cs1 - случай, когда FROMEXT = 0 и установлен флаг инициализации шины (DIB = 1). Если дополнительно RECNU = 1 (нет приема), то это случай нормальной инициализации шины, при котором ответа не должно быть. ERSES остается в 0.
ds1 - случай, когда FROMEXT = 0 и установлен флаг запроса забытой станции (DASO = 1). Если дополнительно RECNU = 1 (нет приема), это влечет за собой окно ожидания, в котором никакая вторичная станция не ответила. Следовательно, нет никакой необходимости интерпретировать получаемые команды, система поэтому переходит в состояние 4, устанавливая переменную CASO = 0. ERSES остается в 0.
es1 - случай, когда FROMEXT = 0 и установлен флаг запроса забытой станции (DASO = 1). Если дополнительно имеется ошибочный ответ (RECNU = 0 и ERLI = 1), это влечет за собой ответ от одной вторичной станции (с ошибкой передачи) или от нескольких вторичных станций в соответствующем окне ожидания. Так как этот ответ не понятен, система перейдет прямо в состояние 4 посредством установки переменной CASO =1.
fs1 - случай, когда FROMEXT = 0 и флаг запроса забытой станции установлен в 1 (DASO = 1). Если дополнительно имел место понятный ответ и не было никаких ошибок передачи (RECNU = 0 и ERLI = 0), это влечет за собой ответ от вторичной станции в соответствующем окне ожидания. Система затем переходит в состояние 3.
gs1 - случай, когда FROMEXT = 0 и флаги DTR = 1 или DTP = 1 связаны с ERLI = 1; это подразумевает безошибочный возврат внутри последовательности дистанционного считывания или дистанционного программирования.
hs1 - случай, когда FROMEXT = 0 и ERLI = 1 и RECNU = 0 и DASO1. Эта структура неправильна, и СЕАНСОВЫЙ уровень не может ее интерпретировать. Система переходит прямо в состояние 4 для ожидания ПРИКЛАДНОГО уровня.
as3 - если при интерпретации команды не возникает ошибок, ERSES не устанавливается.
bs3 - если при интерпретации команды возникает ошибка, устанавливается ERSES.
as4 - возврат синхронизации, приходящий от ПРИКЛАДНОГО уровня (APSES = 1), связанный с переменной PAREP, находящейся в 0, что указывает на необходимость выполнения новой последовательности.
bs4 - возврат синхронизации, приходящий от ПРИКЛАДНОГО уровня (APSES = 1), связанный с переменной PAREP, находящейся в 1, что указывает, что новая последовательность не должна выполняться. Система, таким образом, входит в отключенное состояние (состояние 6).
as5 - безусловный переход из состояния 5 в состояние 6.
Bs - отключение СЕАНСОВОГО уровня, связанное с передачей флага синхронизации (SESLI = 1) более низкому КАНАЛЬНОМУ уровню.
Примечание - Переменная CASO позволяет интерпретировать результат запроса забытой станции для одного из окон ожидания:
- CASO = 0 - в рассматриваемом окне нет ответа (ds1);
- CASO = 1 - ответ с ошибкой КАНАЛЬНОГО уровня (es1);
- CASO = 2 - ответ без ошибки КАНАЛЬНОГО уровня, но ошибка в СЕАНСОВОМ уровне (fs 1-bs3);
- CASO = 3 - ответ без ошибок в КАНАЛЬНОМ и СЕАНСОВОМ уровнях (fs1-as3).
Значение, принимаемое CASO, позволяет ПРИКЛАДНОМУ уровню установить соответствующее поле в таблице Б (поле BFEi).
3.7.3.4 Схема состояний, иллюстрирующая несколько примеров
Дистанционное считывание. Типовой случай
Дистанционное программирование. Типовой случай - ответ во втором окне
Инициализация шины. Типовой случай
Запрос забытой станции. Типовой случай - ответ во втором окне
3.8 ПРИКЛАДНОЙ уровень
3.8.1 Общие положения
ПРИКЛАДНОЙ уровень приводится в готовность ФИЗИЧЕСКИМ уровнем при старте протокола. Затем он ожидает флаг синхронизации (SESAP) от СЕАНСОВОГО уровня, чтобы начать свои действия.
Процесс синхронизации ПРИКЛАДНОГО уровня со смежным СЕАНСОВЫМ представлен на рисунке.
ПРИКЛАДНОЙ уровень отменяется ФИЗИЧЕСКИМ уровнем при окончании протокола.
3.8.2 Операции, связанные с ПРИКЛАДНЫМ уровнем
ПРИКЛАДНОЙ уровень ответственен за управление полем данных в структурах в целом. На начальной стадии он заполняет это поле в зависимости от типа обмена и обрабатываемой последовательности; при получении он интерпретирует и обрабатывает это поле.
В соответствии с четырьмя возможными типами обменов таблица А, получаемая от внешнего процесса, содержит необходимую информацию для управления полем данных каждой структуры.
При запросе забытой станции первая структура, передаваемая по шине, включает в поле данных один или несколько байтов TAB(i); они определяются содержимым ATAB(i) таблицы А и вводятся ПРИКЛАДНЫМ уровнем.
При обмене в случае дистанционного считывания структуры, передаваемые по шине первичной станцией, включают в поле данных байт TAB; он определяется из таблицы А (АТАВ). Количество последовательностей, которые надо выполнить, чтобы считать все данные, соответствующие различным TAB(i), содержится в поле ANA таблицы А.
Пример дистанционного считывания четырьмя последовательностями
При дистанционном программировании данные, посылаемые соответствующей вторичной станции, берутся из таблицы А. При обмене этого типа выполняется процедура идентификации с помощью кодирования случайных чисел ключом К (из таблицы А); эта операция изложена в разделе 2.
Поле в структуре, обработанное ПРИКЛАДНЫМ уровнем
В приложении Г приводится принцип генерирования случайного числа (NA1 для первичной станции).
При инициализации первое и таким образом сгенерированное случайное число в строке получается комбинацией ключа и данных дистанционного программирования, связанных с коэффициентами полиноминального гегнератора R1 в соответствии со следующей формулой
.
Последующие случайные числа генерируются тем же способом путем замены ключа К предшествующим случайным числом:
,
где K = 64 бита;
R1= 64 бита;
данные TP = 64 бита;
NA(i) = 64 бита.
Данные ТР поступают из поля ADTP, каждый байт округляется так, что теряет наименьшие значимые 4 бита до предела в 64 бита или 16 байтов из поля ADTP. В случае, если поле ADTP меньше 16 байтов, оно циклически продолжается до получения 64 битов.
ПРИКЛАДНОЙ уровень также составляет таблицу Б при возврате к внешнему процессу.
3.8.3 Состояния в ПРИКЛАДНОМ уровне
3.8.3.1 Схема состояния
ERR. = ERROR; ERROR = 1, если ERLI = 1 или ERSES = 1, или ERAP = 1; ERROR = 0, если ERLI = ERSES = ERAP = 0.
3.8.3.2 Описание состояний
Состояние 0
Ожидание флага синхронизации SESAP от более низкого СЕАНСОВОГО уровня.
Состояние 1
Инициализация переменных, необходимых для управления ПРИКЛАДНЫМ уровнем (переустановка APSES, ERAP).
Состояние 2
Установка первой структуры, включающая подготовку буфера с байтами приложения и длиной L в соответствии с типом требуемой операции (т.е. флагами DTR, DTP, DASO или DIB).
Данные поступают из таблицы А, переданной протоколу, число NA1 при дистанционном программировании получается после вычисления с использованием предшествующего случайного числа (содержащегося в таблице А) и байтов данных, связанных с полиномиальным генератором (см. ранее и приложение Г).
Это состояние также включает переустановку переменной FROMEXT.
Состояние 3
В этом состоянии осуществляется управление инициализацией шины с подготовкой таблицы Б для посылки внешнему процессу (см. описание содержимого таблицы Б ниже).
В конце этого состояния устанавливается переменная PAREP, указывающая конец обмена для нижних уровней.
Состояние 4
Управление дистанционным считыванием. Число различных последовательностей, требуемых для этого считывания (NTR), определяется содержимым поля ANA таблицы А.
Для того чтобы определить, когда обмен должен продолжаться для считывания других данных, каждый переход в этом состоянии увеличивает переменную I, которая сравнивается с числом NTR требуемых последовательностей.
Переменная J увеличивается для проверки числа перезапусков идентичных последовательностей.
Переменная PAREP (указывающая конец обмена) устанавливается, когда 1 = NTR и:
- DNA = 0, ERAP = 0, ERSES = 0, ERLI = 0, J < 3;
- DNA = 1, ERAP = 0, ERSES = 0, ERLI = 0, J < 3;
DNA = 0 и [ERAP = 1 (поле TAB возвращаемой структуры R2 не соответствует полю TAB в связанной структуре R1, направленной наружу)
или ERSES = 1, или ERLI = 1], а также J > 3.
Повторная передача (идентичной последовательности) выполняется, если DNA = 0, J > 3 и ERAP = 1 или ERSES = 1, или ERLI =1.
Другая последовательность генерируется, если 1< NTR и:
- ERAP = 0; ERSES = 0, ERLI = 0 или
- ERAP = 1, или ERSES = 1, или ERLI = 1 и J3.
При каждом переходе в это состояние таблица Б переустанавливается в соответствии с результатом обрабатываемой последовательности.
Состояние 5
Управление в случае дистанционного программирования:
- при первой последовательности (переменная I=1).
Если нет ошибок СЕАНСОВОГО или КАНАЛЬНОГО уровней (ERLI = ERSES = 0), ПРИКЛАДНОЙ уровень выполнит декодирование NA1K. Эта операция позволяет получить значение NA1', которое сравнивается со случайным числом NA1, предварительно переданным в структуре Р1; если результат неправильный, устанавливается переменная ERAP (ошибка ПРИКЛАДНОГО уровня), повторной передачи нет (PAREP = 1).
Аналогично ответные данные (в поле Р2 ZDT) проверяются на соответствие переданным данным (в поле P1 ZDT); если эта проверка выявляет ошибку, устанавливается ERAP и повторная передача разрешается (PAREP = 0).
Если никаких проблем не обнаружено в первой последовательности (P1, P2), что характеризуется ERLI = 0 и ERSES = 0, и ERAP = 0, система будет готовиться к следующей последовательности (Р3, Р4), увеличивая переменную I (I = 2); она также кодирует содержимое поля ZA2, полученного в P2, для заполнения поля Р3 ZA2 (число NA2), чтобы результат NA2K был послан обратно к структуре Р3.
Если в последовательности (Р1, P2) возникает проблема, отличная от NA1'NA1, и если число идентичных запросов не достигло трех, система должна подготовиться повторить тот же запрос снова; при этом она увеличивает переменную J. Если тем не менее три запроса одной последовательности оказались ошибочными, обмен прекращается и более низким уровням сообщается об этом посредством передачи параметра PAREP (PAREP = 1).
Переменная AR остается в 0, указывая, что обработка первой последовательности выполнена.
- при второй последовательности (переменная I = 2).
Если флаг DNA = 0 и нет ошибок СЕАНСОВОГО и КАНАЛЬНОГО уровней, ПРИКЛАДНОЙ уровень подтвердит, что поля ZA1 и ZA2 равны 0, в соответствии со структурой и содержанием структуры Р4 (см. раздел 2). Если проверка выполнена точно, переменная ERAP остается в 0 и протокол рассматривает обмен дистанционного программирования как удачный. Если проверка неправильна, устанавливается переменная ERAP.
Если никаких ошибок не обнаружено в этой последовательности (Р3, Р4), что характеризуется посредством ERLI = 0 и ERSES = 0, и ERAP = 0, то система будет готовиться к остановке обмена, устанавливая переменную PAREP в 1.
Если DNA = 1, то таблица BERREUR заполнена (данные отсортированы) и система будет готовиться к остановке обмена, устанавливая PAREP в 1.
Если DNA = 2, то таблица BERREUR заполнена (отсортированная идентификация) и система будет готовиться к остановке обмена, устанавливая PAREP в 1.
Если ошибка обнаружена в этой последовательности (Р3, Р4) и три идентичные запроса еще не сделаны, система будет готовиться начать тот же самый запрос снова посредством увеличения переменной J. Если значение 3 достигнуто, обмен останавливается передачей переменной PAREP = 1.
Переменная AR устанавливается (AR = 1) ПРИКЛАДНЫМ уровнем для сообщения СЕАНСОВОМУ уровню посылать первый AUT.
При каждом переходе в это состояние таблица Б заново обновляется в соответствии с обрабатываемой последовательностью.
Состояние 6
Управление в случае запроса забытой станции
В зависимости от переменной CASO, посланной СЕАНСОВЫМ уровнем, ПРИКЛАДНОЙ уровень знает, какое действие предпринять в отношении рассматриваемого окна ожидания.
Для CASO = 0 в рассматриваемом окне не было никакого ответа, поэтому ПРИКЛАДНОЙ уровень подготавливает соответствующую информацию для таблицы Б (поле в 00Н).
Для CASO = 1 в рассматриваемом окне имел место ошибочный ответ (ERLI = 1). Это подразумевает, что два устройства ответили в одном и том же окне ожидания, поэтому ответы наложились в шине, делая прием непонятным, или одно устройство ответило, и его передача была нарушена. В любом случае ПРИКЛАДНОЙ уровень знает, что имел место ответ, который не может быть интерпретирован, и поэтому подготавливает информацию для таблицы Б (поле в FFH).
Для CASO = 2 ответ имел место, более низкие уровни - ФИЗИЧЕСКИЙ и КАНАЛЬНЫЙ - не обнаружили никаких ошибок, но СЕАНСОВЫЙ уровень находит несоответствие интерпретации команды, возвращающейся от вторичной станции (ERSES = 1), ПРИКЛАДНОЙ уровень подготавливает информацию для таблицы Б (поле FFH), чтобы указать ей, что имеет место неинтерпретируемый ответ.
CASO = 3 подразумевает правильный ответ для КАНАЛЬНОГО и СЕАНСОВОГО уровней в рассматриваемом окне ожидания. ПРИКЛАДНОЙ уровень затем проверяет содержимое полученного поля TAB в отношении содержания запроса для того же поля. Если эта проверка правильна, ПРИКЛАДНОЙ уровень передает для таблицы Б поле, соответствующее адресу обнаруженного устройства. Если эта проверка неправильна, устанавливается ERAP и ПРИКЛАДНОЙ уровень подготовит информацию для таблицы Б (BFEi в поле FFH), чтобы указать, что в окне ожидания имел место непригодный ответ.
Каждый раз, когда ПРИКЛАДНОЙ уровень переходит в это состояние (следовательно, для каждого окна ожидания в случае запроса забытой станции), он увеличивает переменную IASO, которая указывает, в каком окне ожидания находится система, и позволяет ФИЗИЧЕСКОМУ уровню прослеживать развитие процесса в различных слоях, размещенных в окнах, в режиме разделения времени.
Переменная PAREP установлена в 1, как при первом переходе в состояние 6. Она указывает более низким уровням - СЕАНСОВОМУ и КАНАЛЬНОМУ, что они не должны выполнять никакой структуры, установленной для передачи. В дополнение, как только IASO достигнет значения 3, обмен прекращается ФИЗИЧЕСКИМ уровнем (событие аа6).
При каждом переходе в это состояние таблица Б обновляется.
Состояние 7
Разъединение ПРИКЛАДНОГО уровня и переход к более низким уровням посредством APSES = 1.
3.8.3.3 Описание переходов
Аа - получение флага синхронизации SESAP делает возможным переход из состояния 0 ожидания СЕАНСОВОГО уровня в состояние инициализации 1.
aa1 - при первом переходе (FROMEXT = 1) система будет переходить из состояния инициализации в состояние установки начальной структуры (из состояния 1 в 2).
ba1 - после инициализации, если DTR = 1, система перейдет в состояние 4 для управления последовательностью дистанционного считывания.
са1 - после инициализации, если DTP = 1, система перейдет в состояние 5 для управления последовательностью дистанционного программирования.
da1 - после инициализации DASO в 1 будет обуславливать переход системы из состояния 1 в состояние 6 для управления запросом забытой вторичной станции.
ea1 - после инициализации DIB в 1 будет обуславливать переход системы из состояния 1 в состояние 3 для управления инициализацией шины.
аа2 - безусловный переход из состояния 2 к состоянию 7 разъединения ПРИКЛАДНОГО уровня.
аа4 - переход в состояние 7 по завершении нормального дистанционного считывания ERAP = ERSES = ERLI = 0 и I = NTR и DNA = 0. Переменная PAREP устанавливается в 1.
еа4 - переход в состояние 7 с ошибкой после трех перезапусков последней последовательности (ERAP = 1 или ERSES = 1, или ERLI = 1 и I = NTR, и J 3, и DNA = 0). Переменная PAREP устанавливается в 1.
da4 - переход в состояние 7 при ошибке после трех перезапусков последовательности, которая не является последней, система должна продолжать обработку следующей последовательности (ERAP = 1 или ERSES = 1, или ERLI = 1 и I < NTR, и J 3, и DNA = 0).
ba4 - безошибочная последовательность дистанционного считывания (ERLI = ERSES = ERAP = 0) и DNA = 0, но протокол должен выполнять другие последовательности (I < NTR).
са4 - последовательность дистанционного считывания с ошибкой (ERLI = 1 или ERSES = 1, или ERAP = 1 и J < 3, и DNA = 0). В одной последовательности процедура перезапуска должна быть выполнена, так как J < 3.
fa4 - переход в состояние 7. Это последняя последовательность, переменная PAREP установлена (I = NTR, DNA = 1, PAREP = 1).
ga4 - переход в состояние 7. Инициализируется новая другая последовательность (I < NTR, DNA = 1, PAREP = 0, I = I + 1, J = 1).
aa5 - переход в состояние 7 в конце нормального дистанционного программирования (ERREUR = 0, AR = 1), переменная PAREP устанавливается в 1.
ba5 - переход в состояние 7 после первой последовательности (Р1-Р2) без ошибки. Система устанавливается для второй последовательности (Р3-Р4). AR устанавливается в 1.
са5 - переход в состояние 7 с ошибкой (ERLI = 1 или ERSES = 1, или ERAP = 1) и DNA = 0, и сделано менее трех запросов рассматриваемой последовательности (Р1-Р2 или Р3-Р4). Следовательно, выполняется процедура перезапуска.
da5 - переход в состояние 7 с ошибкой (ERLI = 1 или ERSES = 1, или ERAP = 1), и число запросов рассматриваемой последовательности равно трем. Обмен прерывается и переменная PAREP устанавливается в 1.
еа5 - переход в состояние 7 с ошибкой идентификации первичной станции вторичной станцией (DNA = 2). Обмен заканчивается и переменная PAREP устанавливается в 1.
fa5 - переход в состояние 7 с отклонением данных дистанционного программирования вторичной станцией (DNA = 1). Обмен заканчивается и переменная PAREP устанавливается в 1.
ga5 - переход в состояние 7 с идентификацией вторичной станции (ERAP = 1 с NA1' NA1); никаких повторений не генерируется, PAREP устанавливается в 1.
аа6 - три окна ожидания переданы (IASO 3). Никакие перезапуски не выполняются. Система переходит в состояние 7 и переменная PAREP устанавливается в 1.
ba6 - переход в состояние 7, три окна ожидания еще не переданы (IASO < 3); система поэтому должна перевести себя в состояние ожидания в следующем окне.
аа3 - безусловный переход в состояние 7 с установкой переменной PAREP в 1.
Ва - отключение ПРИКЛАДНОГО уровня, связанное с переходом флага синхронизации (APSES = 1) к более низкому СЕАНСОВОМУ уровню.
3.8.3.4 Схема состояний, иллюстрирующая несколько примеров
Дистанционное считывание. Типовой случай
Дистанционное программирование. Типовой случай
Инициализация шины
Запрос забытой станции. Ответ только во втором окне ожидания
3.8.4 Формирование таблицы Б
3.8.4.1 Случай запроса забытой станции
При выходе из состояния 6 для обновления таблицы Б выполняются следующие операции.
Выход по событию bа6 или аа6:
- установка BERREUR (1, J) и BTIMOUT (1, J) в зависимости от ERLI, ERSES, ERAP и RECNU для этой последовательности;
- результат последовательности сохраняется в BDON с обновлением BNR;
- обновление поля BNECHAU.
Следующие дополнительные операции выполняются только при выходе по событию bа6:
- увеличение переменной J;
- увеличение содержимого BNSEQI(1);
- создание новых полей BTIMOUT(1, J) и BERREUR(1, J), инициализируемых значением 0;
- обновление полей BNDEROU и BNECHAU.
3.8.4.2 Случай инициализации шины
При выходе из состояния 3 таблица Б обновляется: установка BERREUR(I, 1) и BTIMOUT(I, 1).
3.8.4.3 Случай дистанционного считывания
При выходе из состояния 4 таблица Б обновляется следующим образом.
Выход по событиям са4, da4 или еа4 (включающим случай ошибки в одном из уровней)
da4:
- установка BERREUR(I, J) и BTIMOUT(I, J);
- увеличение переменной I;
- создание новых полей BNSEQI(1), BTIMOUT(I, 1) и BERREUR(I, 1), инициализируемых соответственно в 1, 0 и 0;
- обновление BNDEROU и BNECHAU.
са4:
- установка BERREUR(I, J) и BTIMOUT(I, J);
- увеличение переменной J;
- увеличение содержимого BNSEQI(1);
- создание новых полей BTIMOUT(I, J) и BERREUR(I, J), инициализируемых значением 0;
- обновление полей BNDEROU и BNECHAU.
еа4 - установка BERREUR(I, J).
Выход по событию fa4 или ga4 (таблица данных неизвестна вторичной станции)
fa4 - установка BERREUR(I, J).
ga4:
- установка BERREUR(I, J);
- увеличение переменной I;
- создание новых полей BNSEQI(I), BTIMOUT(I, 1) и BERREUR(I, 1), инициализируемых соответственно значениями 1, 0 и 0;
- обновление полей BNDEROU и BNECHAU.
Выход по событию аа4 или bа4 (включающим случай без ошибок в уровнях)
аа4:
- установка BERREUR(I, J);
- результат последовательности сохраняется в BDON(I) с обновлением BNR(I) и BNR;
- обновление полей BNDEROU и BNECHAU.
Следующие дополнительные операции выполняются только при выходе по событию bа4:
- увеличение переменной I;
- создание нового поля BNSEQI(I) с начальным значением 1 и полей BTIMOUT(I, 1) и BERREUR(J, 1) с начальным значением 0;
- обновление полей BNDEROU и BNECHAU.
3.8.4.4 Случай дистанционного программирования
При выходе из состояния 5 таблица Б обновляется.
Выход по событию са5 или da5 (случай ошибки в уровнях)
dа5 - установка BERREUR(I, J) и BTIMOUT(I, J).
са5:
- установка BERREUR(I, J) и BTIMOUT(I, J);
- увеличение переменной J;
- увеличение содержимого BNSEQI(I);
- создание новых полей BTIMOUT(I, J) и BERREUR(I, J), инициализируемых при значении 0;
- обновление полей BNDEROU и BNECHAU.
Выход по событиям еа5 и ga5 (отклоненная идентификация): установка BERREUR(I, J).
Выход по событию fa5 (отклоненные программные данные): установка BERREUR(I, J).
Выход по событию аа5 или bа5 (нет ошибок в уровнях)
аа5 - установка BERREUR(I, J).
bа5:
- установка BERREUR(I, J);
- увеличение переменной I;
- создание нового поля BNSEQI(I) с начальным значением 1 и полей BTIMOUT(I, 1) и BERREUR(I, 1) с начальным значением 0;
- обновление полей BNDEROU и BNECHAU.
3.9 Краткое описание и взаимодействия между уровнями
3.9.1 Упрощенная схема состояний
3.9.2 Параметры и флаги синхронизации
Общая инициализация | PHILI = LIPHI = LISES = SESLI = SESAP= APSES = 0 | I=J =1 | ||||||||
Уровень | ФИЗИЧЕСКИЙ | КАНАЛЬНЫЙ | СЕАНСОВЫЙ | ПРИКЛАДНОЙ | ||||||
Инициализация каждого уровня | PHILI = 0 | LIPHI = LISES = 0 | SESLI= SESAP = 0 | APSES = 0 | ||||||
Флаги синхронизации и передаваемые параметры |
| РНILI | LISES | SESAP | ||||||
Переменные, присваиваемые в различных условиях | RECNU | LIPHI/LISES | SESLI/SESAP | APSES | ||||||
Флаги синхронизации и передаваемые параметры | | LIPHI | SESLI | APSES |
4 Аппаратная реализация локальной шины обмена данными
4.1 Общие положения
Протокол описывает обмен данными между первичной станцией и вторичными станциями, связанными параллельно по аппаратной шине. Первичная станция связана с шиной пассивным магнитным разъемом.
Этот раздел описывает следующее:
а) характеристики сигнала;
б) характеристики кабеля шины;
в) магнитный разъем;
г) первичную станцию;
д) вторичную станцию.
4.2 Общие требования
4.2.1 Характеристика передачи:
а) передача двоичных данных;
б) двунаправленная, полудуплексная;
в) скорость передачи информации: 1200 Бод ±1%;
г) одинаковая продолжительность битов "0" и "1" от 820 до 840 мкс;
д) амплитудная модуляция сигнала (АМС) 50 кГц ±3% несущей;
е) полярность: 0 - присутствие несущей.
4.2.2 Характеристики сигнала
Сигнал определяется огибающей несущей, изображенной на рисунке 1.
Примечания
1 Vevh1 - максимальный уровень для передачи "1".
2 Vev10 - минимальный уровень для передачи "0".
3 Vevh0 - максимальный уровень для передачи "0".
4 Tev1 - минимум гарантируемого времени для огибающей ниже Vevh1.
5 Tev0 - минимум гарантируемого времени для огибающей от Vev10 до Vevh0.
6 Vev10 и Vevh0 не являются экстремумами огибающей, но являются достаточно "низким" и "высоким" пределами для правильной работы.
7 В течение Tev0 уровень огибающей не должен изменяться более чем на 20%.
8 В течение промежутка от Tev0 до Tev1 подъем или падение огибающей происходит по экспоненте или спадающей синусоиде с дополнением низкочастотных переходных процессов.
9 Общее гармоническое искажение сигнала в течение непрерывной передачи волны - менее 15%.
10 Все напряжения определены в пиковых значениях.
Рисунок 1 - Огибающая сигнала на шине
4.3 Спецификация шины
4.3.1 Общие характеристики:
а) специальная поддержка для дистанционного считывания и программирования;
б) топология шины не важна и может быть линейной или в виде звезды, или дерева без петли при условии, что общая длина кабеля не превышает 500 м;
в) шина пассивна и не требует никакого источника энергии;
г) обеспечивается гальваническая изоляция между шиной и всей электроникой передатчиков и приемников с номинальными значениями напряжения, которые требуются в стандартах, применяемых для вторичных станций;
д) от 1 до 100 вторичных станций может быть присоединено параллельно к шине;
е) одна из этих вторичных станций может в некоторый момент оказаться в режиме низкого импеданса (передачи), без прерывания связи;
ж) связь с ПСУ осуществляется через магнитный разъем (единственный);
и) шина должна противостоять случайным соединениям с сетью напряжением 230 В.
4.3.2 Характеристики кабеля
Внутренний телефонный кабель типа:
- отдельная витая пара с алюминиевым экраном в виде оплетки;
- проводник из твердой луженой медной проволоки диаметром 0,5 мм;
- изоляция PVC (поливинилхлоридная).
Электрические характеристики:
- сопротивление цепи постоянного тока при 20 °С - от 176 до 192 Ом/км;
- переменный ток частотой 50 кГц при температуре от минус 15 °С до плюс 45 °С:
а) сопротивление линейной цепи переменного тока - от 154 до 220 Ом/км;
б) индуктивность линейной цепи переменного тока - от 500 до 800 мкГн/км;
в) общая емкость линейной цепи переменного тока - от 80 до 130 нФ/км;
г) коэффициент потери емкости - максимум 5%;
д) дисбаланс емкости провода к экрану - не более 5%;
е) комплексная характеристика импеданса - от 74 до 115 Ом;
ж) линейный фазовый сдвиг (при частоте 50 кГц) - не более 150 °/км.
Вышеупомянутые характеристики приведены для симметричного источника, изолированного от экрана с импедансами Z и Z' свыше 1000 Ом при частоте 50 кГц.
4.3.3 Требования к прокладке проводов:
а) соединение вторичных станций должно гарантировать непрерывность дренажного провода (например, три терминальных распределительных коробки);
б) одна точка дренажного провода должна быть соединена с землей, при ее наличии, или с эквивалентным эталонным потенциалом;
в) никакого импеданса (кроме кабельного) менее 1000 Ом при частоте 50 кГц не должно быть подключено между проводами шины и экраном или землей.
Примечание - Использование кабелей слегка отличается от вышеупомянутых спецификаций:
1) кабель с более высокой линейной емкостью или сопротивлением нуждается в меньшей длине. Отношение длин приблизительно обратно пропорционально отношению линейной емкости или сопротивления;
2) кабель с более низкой линейной емкостью или сопротивлением мог бы дать превышение напряжения на входах приемника при длинной пустой шине. Это может быть преодолено присоединением между проводами шины около конца, противоположного магнитному разъему, демпфирующего резистора (от 330 до 1000 Ом, мощностью 0,25 Вт, в зависимости от отношения превышения напряжения). Если для шины требуется устойчивость к случайному соединению с сетью напряжением 230 В, последовательно с этим резистором должен быть соединен конденсатор емкостью 47 нФ соответствующего напряжения.
4.4 Магнитный разъем
4.4.1 Функциональное назначение
Магнитный разъем фактически состоит из подвижной части (первичной) и стационарной части - гнезда (вторичной).
Когда две половины соединены, магнитный разъем передает сигналы между ПСУ, связанным с разъемом, и шиной, связанной с гнездом, в обоих направлениях.
Каждая часть состоит из половины ферритового трансформатора (преобразователя) с воздушным зазором в магнитной цепи.
Для того чтобы компенсировать высокую последовательную и низкую параллельную индуктивности такого трансформатора (преобразователя), резонансный конденсатор и демпфирующий резистор с обеих сторон преобразуют этот трансформатор в полосовой фильтр четвертого порядка, с основной частотой около 50 кГц, с Q-фактором менее трех.
Это позволяет использовать простой источник сигналов прямоугольной формы для передачи и устраняет низкочастотные переходные процессы.
4.4.2 Механические характеристики
См. рисунок 2
Ферритовый сердечник FP 36х22
Рисунок 2 - Ферритовые "стакан" и катушка
Каждая половина магнитного разъема включает в себя катушку в половине "стакана" ферритового сердечника, расположенные в твердой пластиковой оболочке. При соединении катушки ферритовые сердечники являются почти коаксиальными и симметричными относительно центральной плоскости с:
а) магнитным воздушным зазором = (4,25±0,25) мм;
б) максимальной ошибкой коаксиальности около средней точки 0,25 мм.
Обмотки должны иметь, насколько это возможно:
a) диаметр катушки по меди :
- в гнезде - от 25,5 до 27,8 мм,
- в разъеме - от 24,5 до 26,8 мм;
b) число витков:
- в гнезде - 68 витков при диаметре провода 0,50 мм,
- в разъеме - 38 витков при диаметре провода 0,63 мм.
Когда все смонтировано и соединено, ферритовые сердечники и катушки должны быть зафиксированы или выдвинуты ближе к средней плоскости. Например, осевой зазор между катушкой и сердечником благодаря допускам размеров должен быть внутри катушки.
Ферритовые наконечники должны быть стандартного типа для максимальной частоты до 100 кГц:
- начальная (магнитная) проницаемость - более 1800 Гн/м;
- тангенс угла потерь максимум при 100 кГц - около 1%;
- отсутствие поглощающей способности (насыщенности) благодаря полям утечки (на практике насыщенность около 0,4 Тл).
4.4.3 Электрические характеристики
Магнитный разъем состоит из двух самоиндуктивностей и , соединенных взаимной индуктивностью . Значения их зависят от геометрии и особенно от воздушного зазора. В экстремальных условиях при частоте 50 кГц и температуре от минус 15 до плюс 45 °С они должны быть равны:
а)= 155 мкГн, = 490 мкГн, = 143 мкГн;
б) = 145 мкГн, = 460 мкГн, = 114 мкГн;
в) = (1,5±0,3) Ом [(1,5±0,15) Ом при 20 °С];
= (4 ± 0,9) Ом [(4±0,4) Ом при 20 °С].
Для бесконечного воздушного зазора
г) = 122 мкГн ±5%, = 382 мкГн ±2,5%.
Примечание - Значения, приведенные выше, даны для воздушного зазора 4,5 мм плюс дополнительный воздушный зазор 0,15 мм для пыли, краски и т.п. на гнезде
.
4.4.4 Составные части
См. рисунок 3.
Рисунок 3 - Составные части магнитного разъема
4.4.4.1 В гнезде, со стороны шины, имеются:
а) последовательный конденсатор , резонирующий с :
- емкость 27 нФ ±5%, пластиковая пленка Mylar,
- тангенс угла потерь менее 2% при частоте 50 кГц,
- номинальное значение напряжения для прямого соединения с сетью 230 В;
б) параллельный демпфирующий резистор :
- сопротивление 150 Ом ±5%,
- мощность от 0,5 до 1 Вт;
в) конденсатор , последовательно соединенный с , чтобы гарантировать устойчивость к случайным соединениям с сетью напряжением 230 В:
- емкость 100 нФ ±20%, пластиковая пленка Mylar,
- тангенс угла потерь менее 2% при частоте 50 кГц,
- номинальное значение подходящего напряжения для прямого соединения с сетью 230 В.
4.4.4.2 В ПСУ, связанном с разъемом, имеются:
а) последовательный конденсатор , резонирующий с :
- емкость 82 нФ ±5%, пластиковая пленка Mylar,
- тангенс угла потерь менее 2% при частоте 50 кГц;
б) последовательный демпфирующий резистор (зависящий от источника 50 кГц и включающий все последовательные сопротивления (при частоте 50 кГц типа гибкого шнура, проводника и т.п.):
- сопротивление от 14 Ом до 18 Ом,
- мощность 2 Вт;
в) источник частотой 50 кГц, который может быть источником сигналов прямоугольной формы, дающий пики от ±4 до ±4,4 В при токе 120 мА, с динамическим импедансом от 1 до 3 Ом (пара PNP/NPN, подключенная общими эмиттерами на выходе и общими базами к источнику питания напряжением ±5 В через CMOS буфер ( = 50 Ом). Максимальный ток через резистор около 200 мА.
Выходное напряжение может быть подобрано с помощью в заданном диапазоне;
г) цепь приемника (демодуляция и выделение прямоугольного сигнала) связана с узлом и (т.е. полный волновой детектор и пороговая цепь);
д) в режиме приема выходной импеданс источника на частоте 50 кГц должен составлять менее нескольких омов, даже для низкого напряжения, чтобы гарантировать демпфирование первичной цепи.
Примечание - Требования 4.4.3 и 4.4.4 - рекомендуемые. Обязательные требования приведены в 4.5 и 4.6.
4.5 Функциональные характеристики передатчика первичной станции
Передатчик ПСУ состоит из передающего источника первичной станции (4.4.4) и магнитного разъема.
Сигнал, передаваемый на выходы шины, должен находиться в пределах, определенных в 4.2.2, во всем температурном диапазоне:
а) Tev1 = Tev0 = 750 мкс;
б) Veh1 = 0,25 В.
Для разомкнутой цепи на выходе шины:
в) Vev10 = 5,8 В;
г) Vevh0 = 7,5 В.
С резистором 100 Ом вместо шины:
д) Vev10 = 4 В;
е) Vevh0 = 4,8 В.
С конденсатором емкостью 31,8 нФ вместо шины:
ж) Vev10 = 5,2 В;
и) Vevh0 = 6,5 В.
Кроме того, выходы терминалов должны представлять разомкнутую цепь или соответствовать сопротивлению 100 Ом при емкости 31,8 нФ;
к) шум, передаваемый к выходу шины, при всех условиях и на всех частотах до 1 мГц, после затухания переходных процессов, не должен превышать 10 мВ в диапазоне частот 1 кГц - 1 мГц;
л) пиковое превышение напряжения при переключении с режима передачи на режим приема или реверс не должно превышать пика 0,25 В при всех условиях.
4.6 Функциональные характеристики приемника первичной станции
Приемник ПСУ состоит из принимающей цепи первичной станции (демодуляция и выделение прямоугольного сигнала) и магнитного разъема.
Приемник должен правильно функционировать (с долей ошибок при приеме структуры менее 10) при синусоидальном входном сигнале с характеристиками согласно 4.2.2 и во всем диапазоне температур.
Упомянутый сигнал подают на терминалы шины магнитного разъема через последовательные импедансы:
а) Tev1 = Tev0 = 700 мкс.
Через резистор сопротивлением 100 Ом:
б) Vevh1 = 0,25 В;
в) Vev10 = 0,7 В;
г) Vevh0 = 3,2 В.
Через конденсатор емкостью 31,8 нФ:
д) Vevh1 = 0,20 В;
е) Vev10 = 0,55 В;
ж) Vevh0 = 2,5 В.
Кроме того, приемник при условии б) (последовательное включение 100 Ом) должен быть нечувствителен к:
и) непрерывному волновому сигналу с максимальной интенсивностью 0,1 В в диапазоне частот 1 кГц - 1 мГц;
к) прямоугольному импульсу с амплитудой 20 В и продолжительностью 5 мкс;
л) прямоугольному импульсу с амплитудой 3,5 В и продолжительностью 200 мкс.
4.7 Функциональные характеристики передатчика вторичной станции
Сигнал, передаваемый на выходы шины, должен находиться в пределах, определенных в 4.2.2, во всем температурном диапазоне:
а) Tev1 = Tev0 = 750 мкс;
б) Vevh1 = 0,1 В.
При сопротивлении 100 Ом вместо шины:
в) Vev10 = 1,2 В;
г) Vevh0 = 1,8 В.
С конденсатором емкостью 31,8 нФ вместо шины выходной сигнал (измеренный через резистор 1 Ом, подключенный последовательно с конденсатором, и значением, умноженным на 100) должен быть:
д) Vev10 = 1,5 В;
е) Vevh0 = 2,5 В.
Примечание - Измерение напряжения через конденсатор дает ненормальное усиление низкочастотных (LF) переходных процессов, которые обычно фильтруются магнитным разъемом.
Кроме того, при подключении двух терминалов к шине сопротивлением 100 Ом или емкостью 31,8 нФ:
ж) при переключении с режима передачи на режим приема кратковременная импульсная помеха не должна превышать пикового значения 0,75 В при любых условиях;
и) шум, передаваемый на выход шины, при любых условиях и на всех частотах до 1 мГц после затухания переходных процессов не должен превышать 10 мВ в диапазоне частот 1 кГц - 1 мГц,
а также:
к) максимальный ток замкнутой цепи - пиковое значение 26 мА;
л) передатчик должен допускать постоянно замкнутую цепь (короткое замыкание) и соединение терминалов шины с сетью напряжением 230 В;
м) максимальная емкость помехи общего вида между входами шины и другими входами равна 15 пФ.
4.8 Функциональные характеристики приемника вторичной станции
Приемник должен функционировать правильно (с долей ошибок при приеме битов менее 10) для синусоидального входного сигнала, характеристики которого определены в 4.2.2 во всем диапазоне температур:
а) Tev1 = Tev0 = 750 мкс.
С незначительным импедансом, например от тестового оборудования:
б) Vevh1 = 0,3 В;
в) Vev10 = 2 В;
г) Vevh0 = 8 В.
Кроме того, приемник должен быть нечувствителен к:
д) постоянному сигналу с максимальным значением 0,25 В в диапазоне частот 1 кГц - 1 мГц;
е) импульсному сигналу с амплитудой 20 В и продолжительностью 5 мкс.
Входной импеданс при частоте 50 кГц:
ж) входной импеданс, вне зависимости от того, включен приемник или нет, при пике до 5 В, должен состоять из сопротивления, соединенного параллельно с индуктивностью:
сопротивление свыше 20 кОм;
индуктивность свыше 20 кОм (60 мГн).
Емкостной компонент должен быть менее 30 пФ.
и) внутренняя блокировка может происходить при пике свыше 5 В при условии, что динамический импеданс выше напряжения блокировки более 200 Ом при частоте 50 кГц;
к) минимальный входной импеданс при частоте 50 кГц с выходом, заблокированным в состоянии передачи логического уровня 1 (нет сигнала на шине), равен 200 Ом;
л) приемник должен допускать постоянное соединение терминалов шины с сетью напряжением 230 В;
м) максимальная емкость помехи общего вида между входами шины и другими входами равна 15 пФ.
Примечание - Все импедансы должны измеряться с точностью 1%.
ПРИЛОЖЕНИЕ А
(справочное)
Циклический избыточный код CRC 16
Проверка ошибки передачи с использованием циклического избыточного кода CRC в каждой структуре была выбрана как наиболее эффективная, в отличие от простой проверки бита четности.
Структуры содержат максимум 128 байтов, и прогнозируемая доля ошибок оказывается менее 10. Благодаря своему полиноминальному генератору (CRC 16), 16-битный CRC может обнаружить одиночные, двойные и тройные ошибки в структуре со 128 байтами и все ошибки в 16-битных пакетах. 8-битный CRC не был бы так эффективен для обнаружения ошибок в структурах размера, рассматриваемого в этом протоколе. Вероятность необнаружения пакетных ошибок длины (16) равна =2.
Используемый физический канал позволяет ожидать вероятности появления ошибки порядка 10(один неправильный бит на 10 переданных). В этом случае при максимальной длине структуры 128 байтов (128х8 = 1024 бита) вычисления показывают, что приблизительно 10000 структур можно передавать без ошибки. Вероятность ошибки 10 дает в среднем 100 безошибочных 128-байтных структур.
Вообще, в противоположном варианте протокола, определенного в настоящем стандарте, структуры достаточно редко будут достигать максимальной длины в 128 байтов; поэтому при той же вероятности ошибки эффективность передачи будет больше, чем упомянуто выше.
Используемый 16-позиционный полиномиальный генератор кода (CRC 16) представляет собой
(по модулю 2).
Реализация
Передача происходит следующим образом.
В представленном CRC "исключающее ИЛИ" (XOR) относится к слову А0 01, соответствующему (MSB/LSB) коэффициентам полиноминального генератора (кроме наибольшего значимого бита).
Выборочные результаты
Cooбщение | CRC | ||||||||
01 | 20 | 01 | 80(Н) | 00 | А0(Н) | ||||
80 | А0 | 01 | 80(Н) | А0 | 01(Н) |
ПРИЛОЖЕНИЕ Б
(справочное)
DES кодирование
Б.1 Введение
Система кодирования состоит из двух алгоритмов: первого, именуемого алгоритмом кодирования, позволяющего понятный текст превратить в непонятный (закодированный), и второго, именуемого алгоритмом декодировки, выполняющего обратную операцию.
Эти алгоритмы, состоящие из весьма сложных и даже особенных правил, должны быть сохранены в тайне, и поэтому не могут быть обнародованы в виде стандарта.
Хотя сказанное выше было справедливо несколько лет тому назад (до 1970 г.), недавние разработки в области криптографии позволили применять алгоритмы, содержащие параметр (называемый ключом), значение которого пользователь может выбрать из огромного числа возможных (2 для DES-алгоритма). Это должно исключить попытки получить доступ к тексту в его первоначальной понятной форме путем перебора всех ключей в пределах разумного времени (нескольких лет). Такие алгоритмы с параметром (ключом) могут быть изданы в виде стандарта. Таким явился (уникальный) случай с DES.
Создание DES
С 1968 по 1975 гг. IBM в лице H.Feistel разработала процедуру кодирования и декодирования (LUCIFER), состоящую из последовательности подстановок и перемещений, управляемых ключом.
Этот алгоритм, улучшенный и упрощенный, был принят как американский стандарт Национальным бюро стандартов (NBS) 15 июля 1977 г. под названием СТАНДАРТ КОДИРОВАНИЯ ДАННЫХ (DES). Недавно он был предложен в качестве стандарта ИСО (Международная организация по стандартизации) под названием DEAI (ИСО 1983).
Б.2 Алгоритмы кодирования и декодирования
Б.2.1 Алгоритм кодирования
Открытый алгоритм кодирования состоит из трех основных частей:
- кодирование элемента данных Т;
- вычисление функции ;
- вычисление индивидуальных ключей .
Понятный текст должен сначала быть переведен в двоичный и затем разбит на блоки по 64 бита (восемь символов, если используется двоичный код ASCII), чтобы создать элемент данных Т на входе алгоритма.
Блок-схема алгоритма кодирования DES
Б.2.1.1 Кодирование элемента данных Т
Входной Т блок, состоящий из 64 битов (), транспонируется один раз начальной перестановкой (IP) (см. таблицу Б.1), имея результатом = IР(Т).
Таблица Б.1 - Начальная перестановка (IP)
58 | 50 | 42 | 34 | 26 | 18 | 10 | 2 |
60 | 52 | 44 | 36 | 28 | 20 | 12 | 4 |
62 | 54 | 46 | 38 | 30 | 22 | 14 | 6 |
64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
57 | 49 | 41 | 33 | 25 | 17 | 9 | 1 |
59 | 51 | 43 | 35 | 27 | 19 | 11 | 3 |
61 | 53 | 45 | 37 | 29 | 21 | 13 | 5 |
63 | 55 | 47 | 39 | 31 | 23 | 15 | 7 |
Результирующий блок () подвергается 16 итерациям функции (описанной в В.2.1.2). Каждая итерация () выполняется следующим образом:
- результирующий блок делится на два 32-битных блока: левый () и правый ();
- блок () заменяется его суммой по модулю 2 с результатом выполнения функции над блоком () и индивидуальным ключом ();
- два блока () и () взаимно меняются местами (кроме 16-й итерации).
Аналитически это дает, если блок , получаемый в результате -й итерации, разделен на два 32-битных блока (левый и правый , такие что
.
Для от 1 до 15:
,
,
Для =16:
,
,
где - сумма по модулю 2 ("исключающее или") и - индивидуальные 48-битные ключи, описанные ниже (см. Б.2.1.3).
Обратная перестановка (IР) первичной (IP) применяется к результату 16-й итерации (блок ), чтобы получить закодированный блок (см. таблицу Б.2).
Таблица Б.2 - Конечная перестановка (IР)
40 | 8 | 48 | 16 | 56 | 24 | 64 | 32 |
39 | 7 | 47 | 15 | 55 | 23 | 63 | 31 |
38 | 6 | 46 | 14 | 54 | 22 | 62 | 30 |
37 | 5 | 45 | 13 | 53 | 21 | 61 | 29 |
36 | 4 | 44 | 12 | 52 | 20 | 60 | 28 |
35 | 3 | 43 | 11 | 51 | 19 | 59 | 27 |
34 | 2 | 42 | 10 | 50 | 18 | 58 | 26 |
33 | 1 | 41 | 9 | 49 | 17 | 57 | 25 |
Б.2.1.2 Вычисление функции
32-битный блок () расширяется в 48-битный Е () функцией расширения (Е). Это расширение состоит из дублирования определенных битов в блоке (), см. таблицу Б.3.
Таблица Б.3 - Выбор битов
32 | 1 | 2 | 3 | 4 | 5 |
4 | 5 | 6 | 7 | 8 | 9 |
8 | 9 | 10 | 11 | 12 | 13 |
12 | 13 | 14 | 15 | 16 | 17 |
16 | 17 | 18 | 19 | 20 | 21 |
20 | 21 | 22 | 23 | 24 | 25 |
24 | 25 | 26 | 27 | 28 | 29 |
28 | 29 | 30 | 31 | 32 | 1 |
48-битный блок Е () складывается по модулю 2 ("исключающее или") с индивидуальным 48-битным ключом () (вычисление которого описано ниже). Затем результат разбивается на восемь 6-битных блоков В, В, ... , В:
.
Каждый 6-битный блок (В) служит для того, чтобы адресовать матрицу размером 4 ряда на 16 колонок (S. Box), которая дает 4-битный номер .
Если , то целое число, соответствующее , выбирает ряд, а целое число, соответствующее , выбирает колонку. Значение блока есть двоичное представление (более 4 бит) целого числа на пересечении выбранного ряда и колонки.
Каждая матрица (S. Box) формирует нелинейную функцию подстановки с шестью входами и четырьмя выходами. Восемь функций (Si) приведены в таблице Б.4.
Таблица Б.4 - Функции выбора (SBoxes)
Колонка | |||||||||||||||||
Ряд | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
0 | 14 | 4 | 13 | 1 | 2 | 15 | 11 | 8 | 3 | 10 | 6 | 12 | 5 | 9 | 0 | 7 | |
1 | 0 | 15 | 7 | 4 | 14 | 2 | 13 | 1 | 10 | 6 | 12 | 11 | 9 | 5 | 3 | 8 | |
2 | 4 | 1 | 14 | 8 | 13 | 6 | 2 | 11 | 15 | 12 | 9 | 7 | 3 | 10 | 5 | 0 | |
3 | 15 | 12 | 8 | 2 | 4 | 9 | 1 | 7 | 5 | 11 | 3 | 14 | 10 | 0 | 6 | 13 | |
0 | 15 | 1 | 8 | 14 | 6 | 11 | 3 | 4 | 9 | 7 | 2 | 13 | 12 | 0 | 5 | 10 | |
1 | 3 | 13 | 4 | 7 | 15 | 2 | 8 | 14 | 12 | 0 | 1 | 10 | 6 | 9 | 11 | 5 | |
2 | 0 | 14 | 7 | 11 | 10 | 4 | 13 | 1 | 5 | 8 | 12 | 6 | 9 | 3 | 2 | 15 | |
3 | 13 | 8 | 10 | 1 | 3 | 15 | 4 | 2 | 11 | 6 | 7 | 12 | 0 | 5 | 14 | 9 | |
0 | 10 | 0 | 9 | 14 | 6 | 3 | 15 | 5 | 1 | 13 | 12 | 7 | 11 | 4 | 2 | 8 | |
1 | 13 | 7 | 0 | 9 | 3 | 4 | 6 | 10 | 2 | 8 | 5 | 14 | 12 | 11 | 15 | 1 | |
2 | 13 | 6 | 4 | 9 | 8 | 15 | 3 | 0 | 11 | 1 | 2 | 12 | 5 | 10 | 14 | 7 | |
3 | 1 | 10 | 13 | 0 | 6 | 9 | 8 | 7 | 4 | 15 | 14 | 3 | 11 | 5 | 2 | 12 | |
0 | 7 | 13 | 14 | 3 | 0 | 6 | 9 | 10 | 1 | 2 | 8 | 5 | 11 | 12 | 4 | 15 | |
1 | 13 | 8 | 11 | 5! | 6 | 15 | 0 | 3 | 4 | 7 | 2 | 12 | 1 | 10 | 14 | 9 | |
2 | 10 | 6 | 9 | 0 | 12 | 11 | 7 | 13 | 15 | 1 | 3 | 14 | 5 | 2 | 8 | 4 | |
3 | 3 | 15 | 0 | 6 | 10 | 1 | 13 | 8 | 9 | 4 | 5 | 11 | 12 | 7 | 2 | 14 | |
0 | 2 | 12 | 4 | 1 | 7 | 10 | 11 | 6 | 8 | 5 | 3 | 15 | 13 | 0 | 14 | 9 | |
1 | 14 | 11 | 2 | 12 | 4 | 7 | 13 | 1 | 5 | 0 | 15 | 10 | 3 | 9 | 8 | 6 | |
2 | 4 | 2 | 1 | 11 | 10 | 13 | 7 | 8 | 15 | 9 | 12 | 5 | 6 | 3 | 0 | 14 | |
3 | 11 | 8 | 12 | 7 | 1 | 14 | 2 | 13 | 6 | 15 | 0 | 9 | 10 | 4 | 5 | 3 | |
0 | 12 | 1 | 10 | 15 | 9 | 2 | 6 | 8 | 0 | 13 | 3 | 4 | 14 | 7 | 5 | 11 | |
1 | 10 | 15 | 4 | 2 | 7 | 12 | 9 | 5 | 6 | 1 | 13 | 14 | 0 | 11 | 3 | 8 | |
2 | 9 | 14 | 15 | 5 | 2 | 8 | 12 | 3 | 7 | 0 | 4 | 10 | 1 | 13 | 11 | 6 | |
3 | 4 | 3 | 2 | 12 | 9 | 5 | 15 | 10 | 11 | 14 | 1 | 7 | 6 | 0 | 8 | 13 | |
0 | 4 | 11 | 2 | 14 | 15 | 0 | 8 | 13 | 3 | 12 | 9 | 7 | 5 | 10 | 6 | 1 | |
1 | 13 | 0 | 11 | 7 | 4 | 9 | 1 | 10 | 14 | 3 | 5 | 12 | 2 | 15 | 8 | 6 | |
2 | 1 | 4 | 11 | 13 | 12 | 3 | 7 | 14 | 10 | 15 | 6 | 8 | 0 | 5 | 9 | 2 | |
3 | 6 | 11 | 13 | 8 | 1 | 4 | 10 | 7 | 9 | 5 | 0 | 15 | 14 | 2 | 3 | 12 | |
0 | 13 | 2 | 8 | 4 | 6 | 15 | 11 | 1 | 10 | 9 | 3 | 14 | 5 | 0 | 12 | 7 | |
1 | 1 | 15 | 13 | 8 | 10 | 3 | 7 | 4 | 12 | 5 | 6 | 11 | 0 | 14 | 9 | 2 | |
2 | 7 | 11 | 4 | 1 | 9 | 12 | 14 | 2 | 0 | 6 | 10 | 13 | 15 | 3 | 5 | 8 | |
3 | 2 | 1 | 14 | 7 | 4 | 10 | 8 | 13 | 15 | 12 | 9 | 0 | 3 | 5 | 6 | 11 |
Восемь 4-битных блока "сцепляются" в один 32-битный блок , , ... , . Этот 32-битный блок транспонируется функцией перестановки Р, показанной в таблице Б.5. Таким образом, получаем 32-битный блок ().
Таблица Б.5 - Перестановка Р
16 | 7 | 20 | 21 |
29 | 12 | 28 | 17 |
1 | 15 | 23 | 26 |
5 | 18 | 31 | 10 |
2 | 8 | 24 | 14 |
32 | 27 | 3 | 9 |
19 | 13 | 30 | 6 |
22 | 11 | 4 | 25 |
Б.2.1.3 Вычисление индивидуальных ключей
Порядок вычисления ключа
Каждая итерация использует 48-битный ключ , полученный из начального 64-битного ключа , рассчитанного следующим образом.
Ключ , выбираемый пользователем, содержит 64 бита (8 байтов) с 8 битами четности на позициях 8, 16, 64 (). Эти биты четности удаляются, а оставшиеся 56 битов - транспонируются функцией (РС-1), как показано в таблице Б.6.
Таблица Б.6 - Перестановка по ключу PC-1
57 | 49 | 41 | 33 | 25 | 17 | 9 |
1 | 58 | 50 | 42 | 34 | 26 | 18 |
10 | 2 | 59 | 51 | 43 | 35 | 27 |
19 | 11 | 3 | 60 | 52 | 44 | 36 |
63 | 55 | 47 | 39 | 31 | 23 | 15 |
7 | 62 | 54 | 46 | 38 | 30 | 22 |
14 | 6 | 61 | 53 | 45 | 37 | 29 |
21 | 13 | 5 | 28 | 20 | 12 | 4 |
Результат PC-1 (К) затем делится на два блока (левый и правый ) по 28 битов каждый.
Эти блоки и последовательно сдвигаются влево, чтобы на каждой итерации получить индивидуальный ключ :
- если и - 28-битные блоки, используемые для получения ключа , получаемые из блоков и , тогда:
и ,
где - левый сдвиг 28 битов в блоке на число битов, зависящих от номера итерации (см. таблицу Б.7).
Таблица Б.7 - Ключевая таблица левых сдвигов
Итерация | Число левых сдвигов |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
5 | 2 |
6 | 2 |
7 | 2 |
8 | 2 |
9 | 1 |
10 | 2 |
11 | 2 |
12 | 2 |
13 | 2 |
14 | 2 |
15 | 2 |
16 | 1 |
Два 28-битных блока ( и ) используются для вычисления индивидуального 48-битного ключа
,
где РС-2 - функция выбора 48 битов из 56 и перестановки этих 48 битов (см. таблицу Б.8).
Таблица Б.8 - Ключ перестановки PC-2
14 | 17 | 11 | 24 | 1 | 5 |
3 | 28 | 15 | 6 | 21 | 10 |
23 | 19 | 12 | 4 | 26 | 8 |
16 | 7 | 27 | 20 | 13 | 2 |
41 | 52 | 31 | 37 | 47 | 55 |
30 | 40 | 51 | 45 | 33 | 48 |
44 | 49 | 39 | 56 | 34 | 53 |
46 | 42 | 50 | 36 | 29 | 32 |
Примечание - Хотя первоначальный ключ состоит из 64 битов, он уменьшается до 56 битов, данных при начальной операции, которая позволяет затем вычислить ключи . Поэтому некоторые документы неясно говорят о 56 или 64-битных ключах в связи с DES-алгоритмом.
Б.2.2 Алгоритм декодирования
Декодирование выполняется 64-битными блоками, использующими тот же самый алгоритм, как и при кодировании, за исключением того, что ключ используется при первой итерации, - при второй, и так далее до 16-й итерации, которая использует индивидуальный ключ .
Это возможно потому, что, с одной стороны, функция перемещения IP - обратная функция к IP, a с другой стороны
, .
Чтобы получить индивидуальный ключ на первой итерации, а затем , используя тот же самый ключевой алгоритм вычислений, как и для кодирования, заменяют левые сдвиги (LS) в 28-битном блоке на правые (RS) в том же самом блоке, с числом, приведенным в таблице Б.9.
Таблица Б.9 - Число правых сдвигов
Итерация | Число правых сдвигов |
1 | 0 |
2 | 1 |
3 | 2 |
4 | 2 |
5 | 2 |
6 | 2 |
7 | 2 |
8 | 2 |
9 | 1 |
10 | 2 |
11 | 2 |
12 | 2 |
13 | 2 |
14 | 2 |
15 | 2 |
16 | 1 |
Вычисление индивидуальных ключей для декодирования производится следующим образом:
c ;
и .
Б.3 Режимы работы DES
DES - алгоритм может использоваться в четырех режимах:
- ЕСВ (Электронная кодовая книга);
- СВС (Кодированная цепь блоков);
- CFB (Кодированная обратная связь);
- OFB (Выходная обратная связь).
Эти режимы отличаются способом, которым 64 входные биты DES-алгоритма образуются из понятного текста и предварительно закодированного текста, и способом, которым закодированный текст производится из понятного текста и 64 выходных битов DES-алгоритма.
Б.3.1 ЕСВ режим
В этом режиме закодированный текст является выходом DES; входным является 64-битный блок понятного текста.
Б.3.2 СВС режим
Выходом DES является закодированный текст, входом DES - сумма по модулю 2 ("исключающее или") 64-битного блока понятного текста и 64 битов закодированного текста (предыдущий выход DES).
Б.3.3 СFВ режим
В этом режиме закодированный текст - сумма по модулю 2 битов понятного текста с битами выхода DES. Вход DES состоит из наименее существенных битов (64) из предыдущего входа в цепочке с битами предварительно закодированного текста.
Б.3.4 OFB режим
Закодированный текст - сумма по модулю 2 битов понятного текста и битов выхода DES. Вход DES - предыдущий DES - выход.
Б.4 Выбор режима работы
При рассмотрении структуры DES и, в частности, восьми нелинейных функциональных S-пакетов , каждый бит выходного элемента данных DES является функцией других битов элемента выходных данных. Хотя разработка позволяет увеличивать энтропию понятного текста посредством его "перемешивания", существует недостаток, что на каждый бит распространяется одна ошибка (произведенная при передаче) вне целого 64-битного блока, таким образом увеличивая шумы и делая непонятной передачу человеческого голоса через цифровую систему коммуникаций.
Это неудобство, которое встречается во всех трех режимах ЕСВ, СВС и CFB, убрано из режима OFB, DES используется в этом режиме как псевдослучайный генератор 64-битных ключей, которые суммируются по модулю 2 бит за битом с 64 битами понятного текста, чтобы закодировать последний.
Таким образом, в то время как полученный закодированный текст содержит одну ошибку вне одного бита, декодированный текст будет содержать только одну ошибку вместо 64 ошибок в других режимах. Режим OFB поэтому рекомендуется в цифровых системах коммуникаций.
Текст, закодированный DES в режиме ЕСВ, мог бы быть весьма легко декодирован посторонним, не знающим секретного ключа , если первоначальный понятный текст имеет низкую энтропию (текст на французском языке, например) и если ключ используется владельцем относительно долгое время. Поэтому необходимо избегать режим ЕСВ для кодирования текстов с низкой энтропией.
Что касается протокола, кодирование только касается одного 64-битного (8-битного) сообщения (случайного числа). По определению, это сообщение является высокоэнтропийным, и поэтому DES использует режим ЕСВ, единственно применимый для потребителей.
Б.5 Разработка и испытания
Стандарт DES не упоминает о какой-либо специфической тестовой процедуре, которую нужно выполнить. Однако соответствие результатов может быть проверено относительно существующих. Также могут быть выполнены следующие два теста.
Тест программной обратимости
Закодируйте текст и после этого немедленно декодируйте, используя ту же самую программу; в конце сравните декодированный текст с оригиналом.
В то время как этот тест показывает, действительно ли реверсивен запрограммированный алгоритм (годен для кодирования и декодирования), это не доказывает, насколько закодированный текст является действительно таким, что может быть обеспечено стандартом DES. Поэтому была создана персонифицированная версия DES.
Тест программного соответствия
Тест показывает, соответствуют ли закодированные тексты стандарту, используя три стандартных примера, которые в предыдущем тесте не используются. Три стандартных примера заключаются в следующем (в шестнадцатеричном коде):
Пример 1 | ||||
- понятный текст: | 4E.6F.77.20.69.73.20.74 | |||
- закодированный текст: | 3F.A4.0E.8A.98.4D.48.15 | |||
Пример 2 | ||||
- понятный текст: | 68.65.20.74.69.6D.65.20 | |||
- закодированный текст: | 6A.27.17.87.AB.88.83.F9 | |||
Пример 3 | ||||
- понятный текст: | 66.6F.72.20.61.6C.6C.20 | |||
- закодированный текст: | 89.3D.51.EC.4B.56.3B.53 |
С ключом в шестнадцатеричном коде.
= 01.23.45.67.89.AB.CD.EF для всех трех примеров.
ПРИЛОЖЕНИЕ В
(обязательное)
Генерация случайных чисел (NAO) для ответа от забытого устройства
Принцип
Чтобы достичь оптимального различия чисел, генерируемых различными устройствами, для вычислений выбирают два параметра внутри каждого устройства.
Они представляют собой индивидуальные адреса каждого устройства (этому параметру свойственны различия от устройства к устройству) и один из индексов потребления, выбираемый из пяти доступных внутри каждого устройства.
Комбинация этих двух параметров позволяет сгенерировать последовательность из 60 взаимосвязанных переменных (12х5).
Определенный адрес более чем 12 цифр (6 байтов) от ADS1 до ADS12.
Последовательность генерируется посредством последовательного вычисления номеров, соответствующих сумме -й цифры адреса и первой цифры -го индекса.
-я цифра адреса используется в цикле с модулем, соответствующим числу цифр в адресе (т.е. модуль 12), а -й индекс - в цикле с модулем, соответствующим числу индекса, выбранного для вычисления (т.е. модуль 5).
Выбор чисел 12 и 5 позволяет сгенерировать последовательность из 60 случайных чисел для каждого устройства.
Общая формула, управляющая вычислением этих случайных чисел
NA0(1) = (ADS (1 (mod 12)) + IT (1 (mod 5), 1)) (mod 3)
.
.
.
NA0(K) = (ADS (К (mod 12)) + IT (К (mod 5), 1)) (mod 3),
NA0(K) - число между 0 и 2.
Дистанционно читаемые индексы IT могут быть различного размера, только первая цифра (1/2 наименьшего значимого байта) используется в вычислении.
ПРИЛОЖЕНИЕ Г
(обязательное)
Генерация случайных чисел для идентификации
Цель состоит в том, чтобы добавлять 64-битное случайное число в процессе обмена дистанционного программирования, чтобы обеспечить дуплексную идентификацию.
Решением этой проблемы является относительно простой метод, основанный на сдвиге, за которым следует сложение (по модулю 2) последовательностей правильно инициализируемых битов.
Принцип
64-битный регистр R1 содержит коэффициенты предполагаемого полиноминального генератора 63-го порядка (по модулю 2), который генерирует последовательность максимальной длины (), объединяя ее с 64-битным словом следующим образом.
R0 содержит инициализированное значение, которое должно быть различно от одного устройства к другому и по возможности засекречено. Ключ рассматриваемого устройства - это и есть значение, которое удовлетворяет этому критерию. Это значение затем складывается (по модулю 2) с двумя индексами, полная длина которых составляет 64-битное слово. Эти слова выбираются из удаленных удобочитаемых индексов, которые должны, вероятно, подвергнуться наибольшему отклонению между двумя случаями дистанционного программирования.
64-битное число, помещенное в R2, объединяется функцией f со словом, содержащим коэффициенты выбранного полиномиального генератора (R1).
Если наиболее значимый бит R2 равен 1, тогда:
R2 сдвигается на 1 бит влево и складывается (по модулю 2) с R1
(R2 = R1 + R2).
В противном случае R2 сдвигается на 1 бит влево.
Таким образом мы получаем первое случайное число NA(1), используемое устройством в структуре Р2 первого обмена дистанционного программирования; последующие случайные числа NA(i) получаются в соответствии с той же самой процедурой посредством замены инициализированного значения предварительно рассчитанным числом NA (i-1):
= 1:NA(1) = f ((К + (INDEX1, INDEX2)), R1);
> 1:NA(i) = f((NA(i-1) + (INDEX1, INDEX2)), R1)
Значение полиномиального генератора или в шестнадцатеричном коде 80 00 00 00 00 00 00 03 (Н)
Блок-схема
ПРИЛОЖЕНИЕ Д
(обязательное)
Кодирование блоков
Кодирование
N: 1 байт - двоичное кодирование; N<128 (D).
ADS: 6 байт - BCD кодирование - два кодовых разряда на байт;
ADS999999999999(D) - 12 разрядов.
Пример кодирования
ADS = 6 5 2 3 1 5 0 8 2 0 0 1 (D).
ADS = 0110 0101 0010 0011 0001 0101 0000 1000 0010 0000 0000 0001(В).
ADP: 1 байт - BCD кодирование - два разряда вне байта; ADP 99 (D)
СОМ: 1 байт - двоичное кодирование четырех наименьших значимых битов; четыре наибольших значимых бита - нулевые.
ENQ: | 0000 0001 | |||
DAT: | 0000 0010 | |||
DRJ: | 0000 1010 | |||
REC: | 0000 0011 | |||
ECH: | 0000 0100 | |||
AUT: | 0000 0101 | |||
EOS: | 0000 0110 | |||
ARJ: | 0000 1011 | |||
ASO: | 0000 0111 | |||
RSO: | 0000 1000 | |||
IB: | 0000 1001 |
Данные:
- поле ZA1: 8 байтов - двоичное кодирование;
- поле ZA2: 8 байтов - двоичное кодирование;
- поле TDP: 1 байт - двоичное кодирование;
- поле TAB: 1 байт - двоичное кодирование;
- пустое поле данных (специфическое для применений), кодируемое в зависимости от применения.
CRC: 2 байта - двоичное кодирование.
Реализация представления байта
Представление байта
В течение передачи биты передаются в возрастающем порядке.
Представление данных, содержащих несколько байтов
В течение передачи байты передаются в возрастающем порядке.
ПРИЛОЖЕНИЕ Е
(обязательное)
Возможные варианты полей BERREUR(I, J) и BTIMOUT(I, J)
Возможные варианты BTIMOUT (I, J) | Возможные варианты BERREUR (I, J) | Действие | |||||||||
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | TR | ТР | IВ | ASO |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | С | С | Е2 | С, тип 2 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Е | Е | С | С, тип 1 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Е2 | Е1 | Е1 | Е1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | Е2 | Е2 | Е2 | Е2 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Е2 | Е2 | Е2 | Е2 |
0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | Е2 | Е2 | Е2 | Е2 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Е | Е | Е2 | С, тип 3 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Е | Е | Е2 | С, тип 3 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Е1 | |||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | E1 | Е1 | ||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | Е | Е | С, тип 3 | |
Е1 |
С - правильно;
С, тип 1 - правильно, нет ответа от устройств; С, тип 2 - правильно, понятный ответ от устройства; С, тип 3 - правильно, непонятный ответ. Ошибка КАНАЛЬНОГО, СЕАНСОВОГО или ПРИКЛАДНОГО уровней; Е - ошибка, приводящая к процедуре перезапуска; E1 - ошибка, не приводящая к процедуре перезапуска или к новому обмену; Е2 - ошибка, приводящая к новому обмену.
ПРИЛОЖЕНИЕ Ж
(справочное)
Соответствие шестнадцатеричного (HEX) и ASCII кодов
Двоичный | HEX | ASCII | Десятичный | |
2 | 2 | |||
0110000 | 30 | 0 | 48 | |
0110001 | 31 | 1 | 49 | |
0110010 | 32 | 2 | 50 | |
0110011 | 33 | 3 | 51 | |
0110100 | 34 | 4 | 52 | |
0110101 | 35 | 5 | 53 | |
0110110 | 36 | 6 | 54 | |
0110111 | 37 | 7 | 55 | |
0111000 | 38 | 8 | 56 | |
0111001 | 39 | 9 | 57 | |
0111010 | 3А | : | 58 | |
0111011 | 3В | ; | 59 | |
0111100 | 3С | < | 60 | |
0111101 | 3D | = | 61 | |
0111110 | 3Е | > | 62 | |
0111111 | 3F | ? | 63 |
Электронный текст документа подготовлен
З и сверен по:
Учет электроэнергии: Сб. ГОСТов. -
, 2007