Способ передачи данных по шине, система связи для осуществления данного способа и устройство автоматической защиты для предотвращения аварийной ситуации на объекте управления
METHOD OF TRANSMITTING DATA OVER A BUS, A COMMUNICATION SYSTEM FOR REALIZING SAID METHOD AND AN AUTOMATIC PROTECTION DEVICE FOR PREVENTING AN EMERGENCY SITUATION AT A CONTROL OBJECT

Изобретения относятся к области сетей связи, а именно к интерфейсу TSI, предназначенному для последовательной передачи данных по шине. В частности, в заявке описан протокол TSI, система связи, предназначенная для реализации данного протокола, и устройство противоаварийной автоматической защиты, в котором использованы система связи и способ передачи данных.
В заявке описан периферийный интерфейсный сложно-функциональный блок (далее СФ-блок), разработанный для СБИС типа «система на кристалле» (далее СнК).
В ходе работ по разработке СнК класса микропроцессоров или микроконтроллеров для применения в составе промышленных контроллеров, терминалах релейной защиты и автоматики (РЗА) и автоматизированных системах управления технологическими процессами (АСУ ТП) был разработан СФ-блок "TSI_controller", предназначенный для программной и аппаратной реализации протокола. С помощью СФ-блока "TSI_controller" осуществляется обмен данными по шине с внешними по отношению к СнК устройствами, имеющими такой же СФ-блок. Описанный в заявке СФ-блок в зависимости от области применения поддерживает один из двух протоколов. Первый протокол ТМВ5000 описан в заявке на изобретение ЕА №201700029 А1, опубликованной 28.02.2018 г. и в заявке на изобретение RU №2018111465, поданной 30.03.2018 г. Второй протокол TSI описан в данной заявке.
СнК с заявляемым СФ-блоком изготовлена по КМОП-технологии 28 нм.
При описании СФ-блока и протокола используемые термины имеют следующее значение:
«Протокол обмена данными» или «протокол передачи данных» - набор правил и соглашений, определяющих содержимое, формат, параметры времени, последовательность и проверку ошибок в пакетах данных, которыми обмениваются модули устройства.
«Ведущее устройство (Master)» - устройство, которое посылает данные другим устройствам и/или запрашивает данные от других устройств, т.е. является инициатором в обмене данными с ведомым устройством.
«Ведомое устройство (Slave)» - устройство, которое может обмениваться информацией только с ведущим устройством после того, как от ведущего устройства поступит соответствующий запрос.
«Шина» - дифференциальная витая пара проводов или дифференциальная пара проводников на печатной плате, по которой осуществляют передачу данных в виде электрических сигналов от отправителя к получателю.
«Общая шина» или «магистраль» - тип линии связи, при котором все модули устройства подсоединены к общей линии связи. Общая линия связи используется всеми модулями по очереди. Все сообщения, посылаемые отдельными модулями, прослушиваются всеми остальными модулями, подключенными к линии связи, но из потока сообщений модуль отбирает только адресованные ему сообщения.
«Слово» - строка битов, рассматриваемая как единое целое при их передаче, приеме, коммутации, обработке, отображении и хранении.
«Пакет» - блок данных, обрабатываемый сетевыми программами как единое целое.
«Контрольный пакет» - пакет данных, выполняющих роль служебной информации, необходимых для реализации протокола.
«Информационный пакет» - пакет, состоящих из служебных данных и полезных данных, которые должны быть переданы.
Общая структура контрольного или информационного пакета определяется составом пакета и его форматом.
«Состав» - содержащиеся в пакете различные типы данных.
«Поле» - определенный тип данных, при этом размер этих данных в битах это длина поля.
«Формат» - размер и порядок размещения различных типов данных.
«Сообщение» или «транзакция» - последовательность передаваемых контрольного и информационного пакетов, которая представляет собой законченную операцию работы с данными, например операцию «чтение» или операцию «запись» данных.
«Технологический объект управления» - объект управления, включающий технологическое оборудование и реализуемый в нем технологический процесс.
Известен интерфейс, описанный в стандарте MIL-STD-1553В, dated 21 September 1978, «Department of defense interface standard for digital time division command/response multiplex data bus» (обозначение военного стандарта США). В нашей стране он был утвержден как ГОСТ 26765.52-87, который заменен на ГОСТ Р 52070-2003 «Интерфейс магистральный последовательный системы электронных модулей. Общие требования». Данный стандарт описывает магистральный последовательный интерфейс с централизованным управлением, применяемый в системе электронных модулей, и устанавливает требования к организации обмена информацией, функциям устройств интерфейса и контролю передачи информации, характеристикам информационной магистрали и характеристикам устройств интерфейса. Интерфейс функционирует асинхронно в режиме «команда-ответ». Инициирование обмена информацией и управление передачей осуществляет только контроллер шины, подключенный к шине типа «магистраль». К этой же шине подключены удаленные терминалы, функционирующие в соответствии с командами контроллера шины, и монитор, осуществляющий отбор информации, передаваемой по шине. Стандартом определен состав слов - командное слово, слово данных и ответное слово. Размер каждого слова равен 20 разрядам. Слова начинаются с синхросигнала (три разряда), затем следуют 16 информационных разрядов и разряд контроля по четности (Р). Вся информация на магистрали передается в коде «Манчестер-2». Командное слово содержит поле «адрес оконечного устройства» и разряд «прием/передача». Дополнительно командное слово содержит поле «подадрес оконечного устройства» и поле «число слов данных» или поле «код признака режима управления» и поле «код команды управления». В случае если командное слово содержит поле «код режима управления» и поле «код команды управления», его называют командой управления. Команда управления применяется только для управления устройствами интерфейса, но не для обмена данными с абонентами интерфейса. Команда управления следует применять без слов данных или с одним словом данных. Ответное слово содержит адрес оконечного устройства и диагностические данные (поле разрядов признаков состояния оконечного устройства или признаков достоверности принятого командного слова). Их значение дает следующую информацию: ошибка в сообщении, передача ответного слова, запрос на обслуживание, резервные разряды, принята групповая команда, абонент занят, неисправность абонента, принято управление интерфейсом, неисправность оконечного устройства и три резервных разряда. Интерфейс имеет следующие недостатки. Максимальный размер сообщения, которое может быть передано или принято не более 32 слов данных. Не обеспечен полный контроль достоверности передаваемой информации. Адресуемых абонентов не более 31.
Известно «Интерфейсное устройство MIL-STD-1553, работающее автономно во всех трех режимах» (патент US 5,490,254 А). Целью известного изобретения являлось создание единственной интегральной схемы (далее ИС), которая бы реализовала функции всех трех устройств, определенных стандартом MIL-STD-1553В, а именно функции контроллера шины, удаленного терминала и монитора. ИС соединена с системным хост-процессором и имеет с ним общую оперативную память.
Наиболее близким аналогом для заявляемого способа передачи данных по шине является заявка ЕА 201700029 А1, «Способ адаптивной передачи данных в промышленном контроллере». Известный способ передачи данных заключается в том, что между ведущим устройством и ведомыми устройствами, подсоединенными к общей шине типа «магистраль», осуществляют последовательный обмен данными. Всю информацию по шине передают в коде «Манчестер-2». Последовательную передачу данных между ведущим электронным устройством и ведомым электронным устройством осуществляют в виде контрольного пакета или информационного пакета, состоящего из контрольного пакета и пакета данных. Пакет данных (полезных данных) состоит из одного или более 16 битных слов данных и 16 битного слова контрольной суммы. Каждое слово в пакете данных начинается синхросигналом (3 бита) и завершается битом контроля по четности (Р). Контрольный пакет (служебные данные) состоит из двух 16 битных управляющих слов и 16 битного слова контрольной суммы. Каждое слово в контрольном пакете начинается синхросигналом и завершается битом контроля по четности (Р). Синхросигнал предназначен для возможности отличия слов данных и слов с контрольной суммой от управляющих слов. В состав управляющих слов входят адрес запрашиваемого ведомого устройства, номер внутреннего адресного пространства запрашиваемого ведомого устройства, бит инициатора текущей передачи, бит операции запись/чтение, бит признака адаптивного чтения полезной информации, бит подтверждения достоверности принятого информационного пакета, поле со значением равным количеству слов в поле данных. Количество устройств, подсоединенных к шине, может достигать 128. Достоверность передаваемых пакетов обеспечивает проверка бита контроля по четности (Р) каждого слова и проверка контрольных сумм (CRC-16) передаваемых пакетов. В контрольном пакете содержится 6 зарезервированных бит, которые дают возможность расширить известный протокол дополнительными признаками.
Общим недостатком описанных выше протоколов и интерфейсного устройства является то, что они рассчитаны на использование в устройстве, работающем в нормальном (штатном) режиме. Описанные протоколы и интерфейсное устройство не описывают дополнительных средств или свойств, которые бы могли придать устройству, в котором они использованы, дополнительные возможности для реализации своего назначения при нештатной работе устройства, вызванной отказом его функциональных блоков.
Назначением систем противоаварийной автоматической защиты (далее систем ПАЗ) является перевод объекта управления, авария на котором может привести к травмированию или смерти людей, разрушению объекта управления или нанести вред окружающей среде, в безопасное состояние, при выходе его технологических параметров за предельно допустимые значения. Устройства систем ПАЗ должны не только контролировать технологические параметры важные для безопасного состояния объекта управления, но и должно диагностировать безопасность собственной работы. В случае выхода измеряемых параметров за допустимые значения или при диагностировании устройством ПАЗ собственной небезопасной работы, система ПАЗ останавливает исполнительные устройства объекта управления.
В реальности, чтобы избежать простоев объекта управления, которые приходится останавливать из-за небезопасной работы устройства системы ПАЗ, системы ПАЗ проектируются с резервированием их устройств. Такие системы называют отказоустойчивыми и позволяют продолжать технологический процесс на объекте управления.
Наиболее близким аналогом для системы связи для передачи данных по шине является патент DE 19742716 А1, «Система управления и передачи данных и способ передачи данных, связанных с безопасностью». Известные изобретения относятся к области автоматизации (станки, роботы) и направлены на диагностику безопасной работы системы связи. К шине Interbus подключен модуль управления и модули ввода-вывода. Для этого в модуле управления и в модулях ввода-вывода помимо устройства, предназначенного для подключения к шине, расположены схемы безопасности. В модуле ввода-вывода в схеме безопасности расположен защитный компонент, в котором реализован протокол безопасности и который выполняет регулярное самотестирование. Данные, связанные с процессом, передаются в модуль управления в избыточном и при этом различном виде: один раз в неизмененной форме, второй раз в отрицательной форме и в третий раз в виде контрольной суммы, полученной из данных процесса. Для этого в пакете данных предусмотрены соответствующие поля. При диагностировании отказа, станок и робот могут быть отделены от системы управления с помощью переключателей, расположенных на выходной линии схемы безопасности блока ввода-вывода. Управление переключателями осуществляет защитный компонент по управляющей информации из модуля управления.
Наиболее близким аналогом для заявляемого устройства защиты для предотвращения аварийной ситуации на объекте управления является патент US 7715932 В2, «Устройство и способ для управления критическим для безопасности процессом». Известное устройство предназначено для мониторинга и контроля операций, осуществляемых в области заводской техники (прессовой тормоз, робот). Устройство мониторинга и контроля (далее устройство) предназначено для остановки заводской техники в случае выхода технологических параметров за установленные значения или в случае отказа функциональных узлов устройства. Для этого устройство реализует решения, которые позволяют ему диагностировать собственную безопасную работу. Устройство содержит блок управления и блоки ввода-вывода. Блоки ввода-вывода содержат программируемые вычислительные устройства (микроконтроллеры). Блоки ввода-вывода физически удалены от блока управления и соединены с ним посредством одноканальной полевой шины для передачи данных. Блоки ввода используются для приема сигналов с кнопки аварийного останова, световой завесы и датчиков, т.е. для приема сигналов, важных для безопасного состояния заводской техники. Блоки вывода содержат переключающие элементы, закрытое или открытое состояние которых приводит к включению или отключению контактора, используемого для деактивации приводных механизмов. В патенте описаны решения, которые обеспечивают диагностику отказа вычислительного устройства блока управления или отказа вычислительных устройств блоков ввода-вывода. При отказе микроконтроллера в блоке вывода предусмотрен вариант подачи сигнала на переключающие элементы по «дополнительному пути отключения» - дополнительной шине, которая соединяет блок управления и блок вывода. В этом случае управление переключающими элементами осуществляет блок управления напрямую по дополнительной шине.
Описанные выше ближайшие аналоги для системы связи и устройства защиты содержат дополнительные средства, которые позволяют реагировать на небезопасную работу устройства защиты с целью обеспечить возможность выполнить им свое назначение, а именно отключить исполнительные устройства для переведения объекта управления в безопасное состояние. Однако известные решения не используют для этого средства и свойства интерфейса.
Целью группы изобретений является использование свойств и средств интерфейса, предназначенного для обмена данными между модулями устройства автоматической защиты, для предотвращения аварийной ситуации на объекте управления.
Более конкретно изобретения касаются свойств протокола и средств интерфейсных блоков, предназначенных для программной и аппаратной реализации протокола, которые позволяют устройству автоматической защиты реагировать на отказ в работе программируемого вычислительного устройства (микроконтроллера, микропроцессора, ядер СнК), предназначенного для обработки данных и управления процессами обмена данными в модулях ввода или вывода сигналов, для того, чтобы предотвратить аварийную ситуацию на объекте управления.
Технический результат в первом изобретении достигается тем, что способ передачи данных по шине заключается в том, что осуществляют последовательную передачу данных по шине между модулями устройства, предназначенного для автоматического управления или защиты объекта управления. Каждый из модулей содержит программируемое вычислительное устройство и интерфейсный блок. По меньшей мере один из интерфейсных блоков настраивают для работы в режиме ведущего устройства и, по меньшей мере, два интерфейсных блока настраивают для работы в режиме ведомых устройств. Каждый интерфейсный блок, настроенный для работы в режиме ведомого устройства, содержит контроллер, основную область локальной памяти, которую используют при штатной работе модуля для обмена данными между контроллером и программируемым вычислительным устройством, и дополнительную область локальной памяти, которую используют при фиксации нештатной работы модуля, вызванной отказом его программируемого вычислительного устройства, для обмена данными между контроллером и шиной, предназначенной для ввода или вывода сигнала из модуля, для чего контроллер соединяют с основной областью локальной памяти и с дополнительной областью локальной памяти отдельными группами шин. Затем осуществляют обмен данными между модулями устройства в виде контрольного пакета, состоящего из служебных данных, или информационного пакета, состоящего из контрольного пакета и пакета данных. А при передаче пакета из интерфейсного блока, настроенного для работы в режиме ведущего устройства, в служебные данные вносится код, определяющий в какую из областей локальной памяти интерфейсного блока, настроенного для работы в режиме ведомого устройства, передаются данные.
Технический результат во втором изобретении достигается тем, что система связи для передачи данных по шине содержит интерфейсные блоки, подключенные к шине. Один из интерфейсный блоков настроен для работы в режиме ведущего устройства и, по меньшей мере, два интерфейсных блока настроены для работы в режиме ведомого устройства. Интерфейсный блок, настроенный для работы в режиме ведущего устройства содержит обработчик списка дескрипторов, DMA-контроллер, контроллер и локальную память, предназначенную для хранения дескрипторов, в соответствии с которыми обработчик списка дескрипторов осуществляет управление DMA-контроллером и контроллером, и предназначенную для временного хранения полезных данных, которыми обмениваются интерфейсные блоки. А каждый интерфейсный блок, настроенный для работы в режиме ведомого устройства, содержит контроллер, основную область локальной памяти и дополнительную область локальной памяти, при этом входы-выходы контроллера соединены первой группой шин с входами-выходами основной локальной памяти и соединены второй группой шин с входами-выходами дополнительной локальной памяти.
Технический результат в третьем изобретении достигается тем, что устройство автоматической защиты содержит модули, подсоединенные к общей шине типа магистраль. Каждый модуль содержит программируемое вычислительное устройство и интерфейсный блок. По меньшей мере, один из модулей содержит интерфейсный блок, настроенный для работы в режиме ведущего устройства, и, по меньшей мере, два модуля содержат интерфейсные блоки, настроенные для работы в режиме ведомых устройств. Каждый интерфейсный блок, настроенный для работы в режиме ведомого устройства, содержит контроллер, основную область локальной памяти, которую используют при штатной работе модуля для обмена данными между контроллером и программируемым вычислительным устройством, и дополнительную область локальной памяти, которую используют при фиксации нештатной работы модуля, вызванной отказом его программируемого вычислительного устройства, для обмена данными между контроллером и шиной, предназначенной для ввода или вывода сигнала из модуля, для чего контроллер соединяют с основной областью локальной памяти и с дополнительной областью локальной памяти отдельными группами шин.
Для последующего описания возможности осуществления заявляемых способа передачи данных, системы связи и устройства автоматической защиты приведены следующие чертежи:
фиг. 1 - структурная схема устройства, модули которого обмениваются данными;
фиг. 2 - структурная схема функциональных блоков интегральной схемы типа СнК;
фиг. 3 - общая структурная схема СФ-блока, предназначенного для работы в трех режимах: режим «Ведущий», режим «Ведомый» и режим «Монитор»;
фиг. 4 - структурная схема СФ-блока в режиме «Ведущий», на которой линиями показаны потоки передачи данных (управляющие сигналы не показаны);
фиг. 5 - структурная схема СФ-блока в режиме «Ведомый», на которой линиями показаны потоки передачи данных (управляющие сигналы не показаны);
фиг. 6 - передача логических нуля и единицы в коде «Манчестер-2»;
фиг. 7 - синхросигнал пакета данных и синхросигнал контрольного пакета;
фиг. 8 - структура пакета данных (DATA);
фиг. 9 - структура контрольного пакета (CTRL);
фиг. 10 - структура информационного пакета (CTRL+DATA);
фиг. 11 - структура поля "Control word" контрольного пакета (CTRL) при запросе на запись или при запросе на чтение данных;
фиг. 12 - структура поля "Control word" контрольного пакета (CTRL) при ответе на запрос записи или на запрос чтения данных;
фиг. 13 - формат сообщений «записи данных в ведомое устройство»;
фиг. 14 - формат сообщений «широковещательное сообщение»;
фиг. 15 - формат сообщений «чтение данных из ведомого устройства»;
фиг. 16 - формат сообщений «невозможность ведомого устройства выдать запрашиваемые данные»;
фиг. 17 - упрощенная структурная схема промышленного контроллера, предназначенного для противоаварийной автоматической защиты объекта управления.
На фиг. 1 показано устройство 1, в котором модули 2, 3, 4 (анг. module CPU, module I/O) подсоединены к общей линии связи (далее шина 5) типа «магистраль». Для того чтобы между модулями происходил обмен данными по шине 5, каждый из них должен содержать интерфейсный блок 6, 7, 8 (анг. Interface block), предназначенный для программной и аппаратной реализации протокола обмена данными. При этом достаточно, чтобы, по меньшей мере, один из модулей содержал интерфейсный блок 6, работающий в режиме «Ведущий» (далее ведущее устройство) (анг. Master), и по меньшей мере два модуля содержали интерфейсные блоки 7, работающие в режиме «Ведомый» (далее ведомое устройство) (анг. Slave). Также устройство 1 содержит модуль 9 с интерфейсным блоком 10, работающим в режиме «Монитор» (анг. Monitor), предназначенный для «прослушивания» трафика на шине 5. В промышленном контроллере таким модулем может быть резервный модуль ЦП. Но только один из двух резервных модулей ЦП может быть активен одновременно. При выходе из строя модуля ЦП с интерфейсным блоком, работающим в режиме «Ведущий», другой модуль ЦП с интерфейсным блоком, работающим в режиме «Монитор», берет инициирование обмена данными по шине на себя.
В качестве интерфейсного блока 6, 7, 8, 10 может быть использован описанный далее периферийный интерфейсный СФ-блок 11 СнК (анг. SoC) 12, или периферийный интерфейсный блок в интегральной микросхеме, или отдельное устройство на плате.
Для обмена данными может быть использована M-LVDS - технология низковольтной дифференциальной передачи сигналов малых напряжений, описанная в международном промышленном стандарте TIA/EIA-899-2002 (Electrical Characteristics of Multipoint-Low-Voltage Differential Signaling (M-LVDS) Interface Circuitsfor Multipoint Data Interchange). Стандарт Multipoint LVDS (сокращенно M-LVDS) разработан для многоточечного двунаправленного обмена информацией. Для этого осуществляют полудуплексную передачу данных по одной шине 5.
Адресуется на шине 5 до 255 модулей (и один адрес для широковещательных обменов). Позицией 13 показаны трансиверы.
Состав СнК варьируется в зависимости от ее функционального назначения. Обычно СнК 12 (фиг. 2) содержит следующие основные функциональные блоки: одно или несколько цетральных ядер 14 (анг. CPU core) (далее ЦП), системную оперативную память 15 (далее ОЗУ) (анг. RAM), периферийные интерфейсные блоки 11 (анг. Interface blocks), контроллер памяти 16 (анг. МС), предназначенный для управления вводом данных конфигурации и программного кода из внешней флэш-памяти 17 (анг. Flash memory). Основные функциональные блоки СнК соединены друг с другом блоком (блоками) 18 межсоединений (анг. INTERCONNECT UNIT(S)).
ЦП 14 является программируемым вычислительным устройством, предназначенным для обработки данных и для управления общей работой СнК. Работа СнК 12 поддерживается системным ПО.
СФ-блок (фиг. 3, 4, 5) обеспечивает передачу данных в соответствии с описанным в заявке протоколом.
Аппаратное и программное исполнение интерфейсного блока зависит от того, для реализации какого протокола оно предназначено и от предъявляемых к нему специальных требований. Одна из проблем, которая стоит перед разработчиками интерфейсных блоков состоит в том, чтобы максимально автоматизировать процесс обмена данными между модулями устройства и, тем самым, высвободить ресурсы ЦП для другой работы. Для этого интерфейсные устройства снабжены дополнительными устройствами, которые бы могли взять у ЦП нагрузку на управление шиной и выполнение запрограммированной последовательности сообщений по шине. Еще одна проблема, которая стоит перед разработчиками интерфейсными устройств, это обеспечение детерминированного времени доступа данных к шине.
В описанном далее СФ-блоке использованы решения, решающие описанные выше проблемы.
СФ-блок 11 может работать в одном из трех режимов: «Ведущий», «Ведомый», «Монитор».
СФ-блок 11 (фиг. 3) содержит:
- обработчик 19 списка дескрипторов (далее ОСД);
- DMA-контроллер 20;
- массив контрольных и статусных регистров 21;
- контроллер 22;
- модуль 23 преобразования последовательного кода в параллельный и наоборот (на фигурах - модуль преобразования кода);
- основную область локальной памяти 24, в частности ОЗУ;
- дополнительную область локальной памяти 25, в частности ОЗУ.
В состав СФ-блока входят мультиплексоры (не обозначены позицией). Контрольные регистры содержат настройки СФ-блока. Статусные регистры содержат флаги состояния СФ-блока и коды ошибок операций на системной шине СнК. DMA-контроллер 20 предназначен для обмена данными между основной областью 24 локальной памяти СФ-блока и системной оперативной памятью СнК. Обмен данными СФ-блока с основными функциональными блоками СнК осуществляется по системным шинам AXI 26 (в режиме «Ведущий») или АРВ 27 в (режиме «Ведомый»). Системная шина АРВ 27 используется для инициализации СФ-блока в независимости от его режима работы. На фиг. 3, 4, 5 показана шина 5, которая на фиг. 1 показана как шина, к которой подсоединены модули устройства 1. СФ-блок может работать как с одной шиной 5 (показано на фигурах), так и поддерживает работу с дублированными шинами 5.
Для понятной идентификации основной области локальной памяти 24 (далее основная память) и дополнительной области локальной памяти 25 (далее дополнительная память) следует учитывать следующее:
- Каждая из областей памяти имеет свое функциональное назначение. Основная память 24 используется для обмена данными при нормальной (штатной) работе модулей устройства противоаварийной автоматической защиты (далее устройства защиты). Такой обмен данными предназначен для выполнения устройством защиты его прямого назначения - сбор сигналов с датчиков с целью контроля важных для безопасного состояния объекта управления технологических параметров, обработка этих данных согласно запрограммированным алгоритмам и, в случае выхода технологических параметров за предельно допустимые значения, перевод объекта управления в безопасное состояние.
Дополнительная память 25 используется при нештатной работе устройства защиты, при которой зафиксировано нерабочее состояние модуля ввода или модуля вывода.
- Операции чтения или записи данных из основной (Primary memory space) и дополнительной (Secondary memory space) памятей производится по их индивидуальным (отличным от других) шинам. Так контроллер 22 может перенаправить поток данных с шины 5 как в основную память 24, так и в дополнительную память 25. Для этого входы-выходы контроллера 22 соединены первой группой шин 28 и 29 с входами-выходами основной памяти 24, и входы-выходы контроллера 22 соединены второй группой шин 30 и 31 с входами-выходами дополнительной памяти 25. Шина 32 предназначена для ввода или вывода сигнала из СнК, для чего шина 32 соединяет входы-выходы дополнительной памяти 25 с физическими выводами СнК. Шина 32 может соединять входы-выходы дополнительной памяти 25 и с другими функциональными блоками СнК, которые в свою очередь предназначены для ввода или вывода сигнала из СнК.
Пространственное расположение основной и дополнительной памятей относительно друг друга может быть любым.
Основная память 24 имеет емкость 8 КБ с организацией 2048×32. В зависимости от режима работы СФ-блока основная память имеет разную организацию.
В режиме «Ведущий» (фиг. 4) в основной памяти 24 расположены таблица 33 дескрипторов и буфер 34 для данных. Буфер 34 для данных предназначен для временного хранения подлежащих передаче по шине 5 и принятых с шины 5 данных. Дескриптор определяет выполнение каждой транзакции на шине 5 и инициирование периодических обменов данными между основной памятью 24 и системной оперативной памятью.
В таблице 33 дескрипторов содержится:
- управляющая информация для формирования транзакции на шине;
- адрес буфера данных в системной памяти;
- результат выполнения транзакции (обновляется после выполнения транзакции).
В таблицу дескрипторов системное ПО заносит такие данные как адреса ведомых, номера адресных пространств, размеры адресных пространств, период опроса конкретного адресного пространства конкретного ведомого устройства, операцию (чтение/запись), область локальной памяти (основная память или дополнительная память), маска прерывания по окончанию обмена данными по шине из текущего дескриптора и период цикла обмена.
* Резерв (здесь и далее по тексту) - признак зарезервированных битов, логическое значение которых разработчик может задать самостоятельно.
*ADP (здесь и далее по тексту) - бит признака адаптивного чтения полезной информации. Изменение значения данного бита возможно в типе сообщения «чтение данных из ведомого устройства». Значение данного бита выставляет ведомое устройство в ответном информационном пакете, если реальный размер полезных данных в локальной памяти меньше, чем запросило ведущее устройство.
В режиме «Ведущий» дополнительная память 25 не используется.
В режиме «Ведомый» в локальной памяти расположены строки для описания адресных пространств и сами адресные пространства, в которых хранятся полезные данные.
ОСД 19 производит обработку слов из таблицы дескрипторов, управляет работой DMA-контроллера 20 и работой контроллера 22.
Контроллер 22 реализует логику режимов работы «Ведущий», «Ведомый» или «Монитор». Контроллер 22 производит передачу данных между блоком 23 преобразования кода и основной памятью 24 или дополнительной памятью 25, формирует контрольные пакеты, производит обновление регистров статистики.
Работа СФ-блока 11 в режиме «Ведущий» (фиг. 4): системное ПО формирует таблицу 33 дескрипторов в основной памяти 24 и производит настройку СФ-блока. По запуску ОСД 19 по порядку вычитывает и обрабатывает дескрипторы из таблицы 33 дескрипторов. По «Управляющей информации» из дескриптора ОСД 19 отдает соответствующие команды DMA-контроллеру 20. Параллельно с этим ОСД 19 отдает соответствующие команды контроллеру 22 на формирование транзакций для записи или чтения данных в ведомое устройство. При получении такой команды контроллер 22 выполняет последовательность действий, соответствующих типу запроса.
В случае записи данных в ведомое устройство выполняются следующие действия: с помощью DMA-контроллера 20 происходит загрузка данных, принимаемых по системной шине AXI 26, в буфер 34 основной памяти 24. Контроллер 22 читает данные буфера 34 и передает их на шину 5. По завершению передачи данных контроллер 22 информирует об этом ОСД 19 и переходит в режим ожидания новой команды. После завершения обработки дескриптора «Управляющая информация» ОСД 19 производит обновление дескриптора «Результат выполнения транзакции» и переходит к обработке следующего дескриптора. Таким образом, можно проследить следующий поток данных: системная шина - DMA-контроллер - буфер основной памяти - контроллер шины - шина.
В случае чтения данных из ведомого устройства выполняются следующие действия: контроллер 22 читает данные с шины 5 и передает их в буфер 34 основной памяти 24, откуда с помощью DMA-контроллера 20 данные передаются в системную шину AXI 26. После завершения обработки дескриптора «Управляющая информация» ОСД 19 производит обновление дескриптора «Результат выполнения транзакции» и переходит к обработке следующего дескриптора. Таким образом, можно проследить следующий поток данных: шина - контроллер шины - буфер локальной памяти - DMA-контроллер - системная шина.
Таким образом, системное ПО в начале работы однократно инициализирует СФ-блок, после этого СФ-блок без вмешательства системного ПО производит каждый цикл обмена данными по шине, перекладывая полученные данные в системную память СнК. Таким образом обеспечивается возможность автоматизировать работу СФ-блока и, тем самым, разгрузить (высвободить) ресурсы центрального процессора СнК для другой работы.
При работе СФ-блока в качестве ведущего устройства доступ ОСД 19 к дескрипторам занимает 1 такт. Это обеспечивает детерминированное время получения задания (управляющей информации), что имеет большое значение для систем реального времени.
После окончания обработки таблицы дескрипторов может быть сформировано прерывание, после которого возможно обновление данных таблицы дескриптора системным ПО.
Работа СФ-блока 11 в режиме «Ведомого» (фиг. 5): СФ-блок в режиме «Ведомого» реализует логику доступа к своим адресным пространствам посредством запросов по шине. Системное ПО в начале работы однократно инициализирует СФ-блок, после чего транзакции записи или чтения данных проводятся в автоматическом режиме без участия системного ПО. Доступ к основной памяти 24 возможен только через системную шину АРВ 27. В режиме ведомого ОСД 19 не активен и обмен данными посредством DMA-контроллера 20 недоступен. По запуску контроллер 22 ожидает сигналы приема контрольного/информационного пакета от модуля 23 преобразования кода, после чего обрабатывает пакет и обращается в основную 24 (Primary memory space) или дополнительную (Secondary memory space) 25 память по адресу из контрольного пакета. В пространстве памяти лежит описание запрашиваемого адресного пространства, предназначенного для полезных данных. Одно из полей описания "Memory address" - адрес первого слова данных в адресном пространстве памяти. Если запрос был на запись, то происходит запись приходящих данных по этому адресу. Если запрос был на чтение, то происходит чтение данных из этого адреса. После окончания обработки запроса может быть вызвано прерывание, по которому происходит обновление данных системным ПО.
Работа СФ-блока в режиме «Монитор»: СФ-блок в режиме «Монитор» выполняет функцию записи в системную память всего траффика, идущего по шине 5. Производится запись контрольных пакетов и пакетов данных. Каждый пакет, приходящий с шины 5, дополняется специальным дескриптором, идущим перед данными, и записывается в системную память. При этом записываются только информационные слова, слова CRC отбрасываются. В память записываются только те пакеты, при приеме которых не возникло ошибок. При возникновении ошибок в процессе приема принимаемый пакет отбрасывается, и будет выставлен соответствующий флаг. Работа в режиме «Монитор» похожа на работу в режиме «Ведущий» с использованием внеочередных дескрипторов.
В режиме «Монитор» ОСД 19 имеет такой же функционал, как и в режиме «Ведущий».
В СФ-блоке реализована возможность изменения длины CRC (регистр длины CRC полинома), начального значения CRC (регистр начального значения CRC) и полинома CRC (регистр значения CRC полинома) в режиме описанного в заявке протокола TSI.
Вся информация по шине передается в коде «Манчестер-2» (фиг. 6). Этот биполярный фазоманипулированный код имеет нулевую постоянную составляющую, что очень важно в применениях с высокой скоростью передачи. Кодирование 0 и 1 производится не уровнем, а фронтом сигнала в середине тактового интервала (фиг. 6), что позволяет обеспечить побитную синхронизацию передатчика и приемника по передаваемой информации в широком диапазоне отклонения несущей частоты. Определены два вида синхросигнала (фиг. 7), которые позволяют аппаратно, следовательно, быстро определять и отличать начало пакета данных от контрольного пакета.
Пакет данных (DATA) (фиг. 8) имеет формат одного или более 32 битных слов данных, завершает которые 32 битное контрольное слово. Перед ними расположен синхросигнал, полярность первой половины которого отрицательна, а вторая половина - положительная. Слова данных (полезная информация) - собственно данные, которыми обмениваются между собой модули и для передачи которых используется пакет данных. Слово контрольной суммы CRC-32 предназначено для проверки целостности всех передаваемых в пакете данных. Используется расчет CRC-32.
Контрольный пакет (CTRL) (фиг. 9) имеет формат из 32 битного информационного слова и 32 битного слово контрольной суммы. Перед ними расположен синхросигнал, полярность первой половины которого положительна, а вторая половина - отрицательная. Контрольный пакет может выполнять функцию начала и конца сеанса связи, подтверждения приема информационного пакета или запроса информационного пакета.
Пакет (фиг. 10), включающий контрольный пакет и пакет данных, называется информационным пакетом (CTRL+DATA).
При запросе ведущего устройства на чтение или запись данных в ведомое устройство направляется контрольный или информационный пакет, служебная информация которых содержит поле "Primary/Secondary memory space" - поле с кодом-определителем используемой основной или дополнительной памяти (фиг. 11).
На запрос ведущего устройства на чтение или запись данных ведомое устройство направляет ответный контрольный или информационный пакет, служебная информация которых содержит поле "Validity of a received message" - поле признаков достоверности принятого пакета либо признаков состояния ведомого устройства (фиг. 12), что обеспечивает возможность получения различной диагностической информации.
Рассмотрим возможные форматы сообщений, которыми обмениваются ведущее (Master) и ведомое (Slave) устройства путем передачи друг другу контрольных и информационных пакетов:
- Формат 1 «запись данных в ведомое устройство» (фиг. 13).
- Формат 2 «широковещательное сообщение» (фиг. 14).
- Формат 3 «чтение данных из ведомого устройства» (фиг. 15).
- Формат 4 «невозможность ведомого устройства выдать запрашиваемые данные при чтении данных из ведомого устройства» (фиг. 16).
Рассмотрим форматы сообщений (фиг. 13-16) между ведущим и ведомыми электронными устройствами.
Формат 1 предназначен для передачи данных от ведущего устройства к ведомому устройству - «запись данных в ведомое устройство» (фиг. 13). Ведущее устройство передает информационный пакет (CTRL+DATA). Ведомое устройство принимает информационный пакет, просчитывает контрольные суммы (CRC-32) 32-битного слова служебной информации и 32-битного слова (слов) данных (полезной информации) и сравнивает их значения со значениями контрольных сумм, полученных от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомое устройство либо игнорирует запрос на запись, либо принимает к исполнению. В любом случае ведомое устройство передает ведущему устройству ответный контрольный пакет (CTRL), в котором разряды [2:0] "control word" (таблица 7) имеют значения, соответствующие признакам достоверности принятого пакета.
Формат 2 предназначен для передачи данных от ведущего устройства всем ведомым устройствам - «широковещательное сообщение» (фиг. 14). Ведущее устройство передает информационный пакет (CTRL+DATA) (в поле "Terminal address" 0xFF - широковещательный адрес), а ведомые устройства принимают информационный пакет, просчитывают контрольные суммы (CRC-32) 32-битного слова служебной информации и 32-битного слова (слов) данных (полезной информации) и сравнивают их значения со значениями контрольных сумм, полученных от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомые устройства либо игнорируют запрос на запись, либо принимают к исполнению. В этом формате сообщений ведущее устройство после передачи информационного пакета не ожидает "ответного пакета" от ведомых устройств.
Формат 3 предназначен для получения данных ведомого устройства ведущим устройством - «чтение данных из ведомого устройства» (фиг. 15). Ведущее устройство передает ведомому устройству контрольный пакет (CTRL) и освобождает шину. Адресуемое ведомое устройство принимает контрольный пакет, просчитывает контрольную сумму CRC-32 32-битного слова служебной информации и сравнивает ее значение со значением контрольной суммы, полученной от ведущего устройства. В зависимости от результата сравнения контрольных сумм ведомое устройство либо игнорирует запрос на чтение, либо принимает к исполнению. При успешном сравнении ведомое устройство захватывает шину и передает ведущему устройству ответный информационный пакет (CTRL+DATA). Ведущее устройство принимает ответный информационный пакет от ведомого устройства и просчитывает контрольные суммы CRC-32 32-битного слова служебной информации и слова (слов) данных (полезной информации) и сравнивает их значения со значениями контрольных сумм, полученных от ведомого устройства. При успешном сравнении контрольных сумм информационный пакет считается принятым - чтение данных из ведомого устройства завершенным.
Формат 4 «невозможно выдать запрашиваемые данные» (фиг. 16) является частным случаем формата 3, при котором происходит «чтение данных из ведомого устройства». Ведущее устройство передает ведомому устройству контрольный пакет (CTRL). Ведомое устройство принимает контрольный пакет, просчитывает его контрольную сумму и сравнивает ее значение со значением контрольной суммы, полученной от ведущего устройства. При несовпадении контрольных сумм ведомое устройство игнорирует запрос на чтение и передает ведущему устройству ответный контрольный пакет (CTRL), в котором разряды [2:0] "control word" (таблица 7) имеют значения, соответствующие признакам достоверности принятого пакета.
Пример использования изобретений
Использование средств и методов заявляемого интерфейса предлагается рассмотреть на примере работы контроллера с программируемой логикой 35 (далее ПЛК) (анг. PLC), который используется в качестве устройства противоаварийной автоматической защиты (фиг. 17).
Следует понимать, что описанный здесь пример осуществления используется только для объяснения настоящего изобретения и не используется для ограничения объема и отрасли применения изобретения, которое может быть использовано и в робототехнике, медицине, автомобильном или железнодорожном транспорте.
Описанные в заявке средства интерфейса, в том числе протокол TSI, могут быть использованы в ПЛК для обмена данными по внутренней шине и для обеспечения возможности отключения управляющего сигнала на выходе ПЛК при диагностировании отказа программируемого вычислительного устройства (микроконтроллера, микропроцессора, ядер СнК) в модуле вывода сигналов для того, чтобы предотвратить аварийную (опасную) ситуацию на объекте управления.
ПЛК 35 содержит модуль центрального процессора 36 (далее модуль ЦП) (анг. module CPU) и модули ввода-вывода 37 (анг. I/O modules), предназначенные для работы с различными типами сигналов: ввода сигналов термопар и термопреобразователей сопротивления; ввода и вывода унифицированных аналоговых сигналов среднего уровня; ввода и вывода дискретных сигналов. На фиг. 17 также показано оборудование объекта управления 38: контрольно-измерительный прибор - датчик 39 и исполнительные механизмы - двигатель 40 и клапан 41.
При описании работы ПЛК следует оговорить следующие понятия и условия, используемые в данной заявке:
- В данной заявке описана работа ПЛК, не имеющего резервированных и дублированных элементов. Поэтому, при неисправной работе элементов, должны быть приняты меры по отключению управляющего сигнала на выходе ПЛК. Это приведет к тому, что контакты контактора 42, через который на исполнительные механизмы подается питание, будут разомкнуты. Это, в свою очередь, приведет к тому, что регулирующий или отсечной клапан 41 займут безопасное для технологического процесса положение, а двигатель 40 будет остановлен.
- Процесс противоаварийной защиты объекта управления требует непрерывного измерения технологических параметров. Одна итерация, включающая замер технологического параметра, его обсчет и выработку воздействия на исполнительные механизмы, называется рабочим циклом ПЛК. Работа ПЛК состоит из постоянного повторения последовательности действий, входящих в рабочий цикл.
- Промышленные ПЛК являются системами реального времени. Корректность функционирования систем реального времени определяется не только корректностью выполнения вычислений, но и временем, за которое получен требуемый результат - время реакции. Если вычисления выполнены некорректно или не выполнены требования по времени, то считается, что произошел отказ.
Модуль ЦП 36 содержит следующие функциональные блоки: интерфейсный блок 43, работающий в режиме «Ведущий» (анг. Interface block MASTER), ОЗУ 44 (анг. RAM), программируемое вычислительное устройство 45 (анг. CPU) (далее ЦП) и флэш-память 46 (анг. Flash).
Модуль ввода 47 содержит следующие функциональные блоки: интерфейсный блок 48, работающий в режиме «Ведомый» (анг. Interface block SLAVE), программируемое вычислительное устройство 49 (анг. CPU) (далее ЦП), ОЗУ 50 (анг. RAM), блок ввода-вывода 51 (анг. I/O block) и флэш-память 52 (анг. Flash). На фиг. 17 схематично изображены только необходимые для раскрытия изобретений элементы ПЛК и интерфейсного блока 48, а именно контроллер 53 и основная память 54. Блок ввода-вывода 51 предназначен для ввода сигналов по измерительной шине 55 с датчиков 39, контролирующих важные для безопасного состояния объекта управления параметры.
Модуль вывода 56 содержит следующие функциональные блоки: интерфейсный блок 57, работающий в режиме «Ведомый» (анг. Interface block SLAVE), программируемое вычислительное устройство 58 (анг. CPU) (далее ЦП), ОЗУ 59 (анг. RAM), блок ввода-вывода 60 (анг. I/O block) и флэш-память 61 (анг. Flash). На фиг. 17 схематично изображены только необходимые для раскрытия изобретений устройства интерфейсного блока 57, а именно контроллер 62, основную память 63 и дополнительную память 64. Модуль вывода 56 может содержать логический элемент И 65 и ключ 66 в цепи 67 питания.
Управление контактором 42 осуществляется через реле 68. Подача напряжения (24 V) на реле 68 происходит при закрытом ключе 66 в цепи 67 питания. Управление ключом 66 происходит по шине управления 69.
Следует отметить, что интерфейсные блоки 43, 48, 57, ЦП 44, 49, 58, ОЗУ 44, 50, 59 и блоки ввода-вывода 51, 60 могут быть как функциональными блоками СнК 12, так и отдельными устройствами на плате.
Работа системы связи при инициализации
В процессе инициализации осуществляется настройка совокупности значений параметров, определяющих работу интерфейсных блоков (СФ-блоков СнК). Для каждого из трех режимов работы интерфейсного блока инициализация различна.
Информация, необходимая для инициализации, определяется пользователем в процессе проектирования и загружается в процессе конфигурации во флэш-память. При включении питания содержимое (код программы и данные инициализации) флэш-памяти автоматически загружается в оперативную память ОЗУ, связанную с ЦП. При инициализации системное ПО однократно определяет работу интерфейсного блока в режим «Ведущего», или в режим «Ведомого», или в режим «Монитор», для чего загружаются контрольные регистры блока, в которые выставляются необходимые прерывания, тайминги и время цикла шины с учетом тактовой частоты работы блока. При этом в интерфейсный блок, который будет работать в режиме «Ведущий», в основную память записывается таблица дескрипторов. После этого операции чтения или записи данных по шине могут проводиться в автоматическом режиме без участия системного ПО.
Режим штатной работы устройства защиты
Перед началом работы ПЛК выполняется конфигурирование всех модулей ПЛК (настройка сетевых интерфейсов, системы ввода/вывода, службы диагностики, установка системного времени и режима его синхронизации, а также некоторых других параметров и системных сервисов). После перезагрузки ПЛК его модули начинают работу в нормальном (штатном) режиме.
1
2
3
2
1
3
Перед тем, как описать работу ПЛК в нормальном (штатном) режиме следует описать работу логического элемента И 65. При подаче на вход логического элемента И 65 по основной шине 70 сигнала В=1 (высокого уровня) и по дополнительной шине 71 сигнала В=1 (высокого уровня), на выходе логического элемента И 65 по управляющей шине 69 будет выдан сигнал В=1 (высокого уровня). Перед тем, как ПЛК начнет выполнение цикличной работы, из модуля ЦП 36 в модуль вывода 56 направляется на запись информационный пакет, в служебных данных которого указана дополнительная память (Secondary memory space) 64 интерфейсного блока 57 модуля вывода 56. Это делается для того, чтобы из дополнительной памяти 64 по дополнительной шине 71, соединяющей напрямую дополнительную память 64 и логический элемент И 65, направить в логический элемент И 65 сигнал В=1 (высокого уровня). Наличие такого сигнала на входе логического элемента И 65 позволит при подаче по основной шине 70 сигнала B=1 (высокого уровня) получить на управляющей шине 69 сигнал В=1 (высокого уровня), который закроет ключ 66.
1
При штатной работе от датчика 39 по измерительной шине 55 поступает сигнал в блок ввода-вывода 51, где он преобразуется в цифровой формат и в цифровом виде передается на вход ЦП 49, откуда данные передаются в основную память 54 интерфейсного блока 48. Для получения данных из модуля ввода 47 интерфейсный блок 43 модуля ЦП 36 передает в шину 5 контрольный пакет с адресом модуля ввода 47, с основной памятью 54 и запросом на чтение данных. Интерфейсный блок 48 принимает контрольный пакет, проверяет его на достоверность полученной информации, после чего передает в модуль ЦП 36 ответный информационный пакет. Полученный ответный информационный пакет в интерфейсном блоке 43 модуля ЦП 36 проверяется на достоверность полученной информации, после чего полезные данные записываются в буфер локальной памяти интерфейсного блока 43. ЦП 45 модуля ЦП 36 непрерывно принимает исполняемый код прикладной программы, представляющей собой арифметические или логические операции, из ОЗУ 44 и извлекает текущие данные, переданные в ОЗУ 44 из буфера локальной памяти интерфейсного блока 43. Результат операций над данными вновь передается из ЦП 45 в ОЗУ 44, откуда передается в буфер локальной памяти интерфейсного блока 43. Затем формируется информационный пакет, служебные данные которого содержат адрес модуля вывода 56 и указание на то, что данные должны быть записаны в основную память (Primary memory space) 63. Интерфейсный блок 43 модуля ЦП 36 передает информационный пакет в шину 5. Интерфейсный блок 57 модуля вывода 56 принимает информационный пакет и проверяет его на достоверность полученной информации, после чего данные записываются в основную память 63, а в модуль ЦП 36 отправляется ответный контрольный пакет. Данные из основной памяти 63 передаются ЦП 58 в блок ввода-вывода 60, откуда сигнал по основной шине 70 поступает в логический элемент И 65. В случае, когда значение измеряемого датчиком 39 параметра соответствует нормальным значениям технологического процесса, в модуль вывода 56 будет направлен информационный пакет с данными, преобразование которых даст по основной шине 70 сигнал В=1 (высокого уровня), что приведет к закрыванию ключа.
1
В случае, когда значение измеряемого параметра превысило предельно допустимое значение, в модуль вывода 56 будет направлен информационный пакет с данными, преобразование которых даст по основной шине 70 сигнал В=0 (низкого уровня), что приведет к открыванию ключа.
Режим нештатной работы устройства защиты
2
2
3
1
Нештатная работа устройства защиты может быть вызвана большим количеством факторов. Далее будет описан режим нештатной работы, вызванной отказом ЦП 58 модуля вывода 56. Если рассматривать выше описанную штатную работу модуля вывода 56, в котором ЦП 58 передавало данные из основной памяти 63 в блок ввода-вывода 60, то «зависшее» или неисправное ЦП 58 не передаст очередные данные, которые бы позволили изменить уровень сигнала в основной шине 70. О рабочем состоянии ЦП 58 сигнализирует счетчик активности ЦП (анг. Life bit counter), значение которого увеличивается на единицу, в случае успешной передачи данных, осуществляемой ЦП 58. Данные счетчика передаются в ответном контрольном пакете, что позволяет модулю ЦП 36 судить о работоспособном состоянии ЦП 58 модуля вывода 56. В случае, если значения счетчика не изменились, что свидетельствует об отказе ЦП 58, модуль ЦП 36 фиксирует отказ ЦП 58 в модуле вывода 56 и формирует информационный пакет, в котором содержится указание на запись данных в дополнительную память 64 модуля вывода 56. Запись данных в дополнительную память 64 позволит изменить уровень сигнала в дополнительной шине 71. Так, если принять, что перед началом цикла работы ПЛК в дополнительной шине был сигнал В=1 (высокого уровня), то его следует изменить на сигнал В=0 (низкого уровня). Это приведет к изменению сигнала В=0 на управляющей шине 69 и открытию ключа 66 в независимости от состояния сигнала B
Дополнительная шина 71 может быть выведена на физический вывод микросхемы, и, например, подавать сигнал на ключ в цепи питания лампочки сигнализации, что позволит сигнализировать об отказе вычислительного устройства модуля вывода.
Также дополнительную память в интерфейсном блоке можно использовать при отказе ЦП 49 в модуле ввода 47 для снятия сигнала с дискретного датчика.