ШЛЮЗ ДЛЯ АВТОМАТИЧЕСКОЙ МАРШРУТИЗАЦИИ СООБЩЕНИЙ МЕЖДУ ШИНАМИ
GATEWAY FOR AUTOMATICALLY ROUTING MESSAGES BETWEEN BUSES

Область техники, к которой относится изобретение
Настоящее изобретение относится к шлюзу для автоматической маршрутизации сообщений между шинами, прежде всего между последовательными шинами и промышленными (полевыми) шинами.
Уровень техники
Объединение устройств управления, датчиков и приводов с помощью сети или системы передачи данных, состоящей из линии связи, в частности шины, и соответствующих коммуникационных модулей, за последние годы получило широкое распространение при строительстве современных автомобилей и в машиностроении, в частности станкостроении, а также в системах автоматизации. При этом могут достигаться синергетические эффекты, обусловленные распределением функций между несколькими абонентами, в частности устройствами управления. В этом случае говорят о распределенных системах. Соответственно, такие распределенные системы или сети состоят из абонентских устройств (устройств-абонентов) и соединяющей эти абонентские устройства шинной системы или нескольких шинных систем. При этом связь между различными станциями или абонентскими устройствами все чаще осуществляется посредством такой системы связи, шинной системы или сети, по которой данные передаются в виде сообщений. Обмен сообщениями по шинной системе, механизмы доступа и приема, а также обработка ошибок регулируются соответствующим протоколом, причем имя того или иного протокола часто, как и в данном случае, используется как синоним названия сети или самой системы шин.
Например, в автомобильном секторе в качестве протокола утвердилась шина CAN (сокр. от англ. Contoller Area Network - локальная сеть контроллеров). Этот протокол управляется по событиям, т.е. такие регламентированные протоколом действия, как передача сообщения, инициируются событиями, имеющими свое происхождение за пределами системы связи. Однозначный доступ к системе связи или к шинной системе разрешается посредством основанного на приоритете битового арбитража. Предпосылкой этого является то, что передаваемым данным и, следовательно, каждому сообщению присваивается приоритет. Протокол CAN очень гибок; он позволяет без проблем расширять число абонентских устройств и сообщений, пока существуют свободные приоритеты (идентификаторы сообщений). Библиотека всех передаваемых в сети сообщений с приоритетами и их передающими или принимающими абонентскими устройствами или соответствующими коммуникационными модулями хранится в виде списка, так называемой коммуникационной матрицы.
Альтернативой управляемой по событиям, спонтанной связи является принцип управления чисто по времени. Все коммуникационные действия на шине являются строго периодичными. Регламентированные протоколом действия, например, передача сообщения, инициируются только посредством непрерывного отсчета времени, действительного для всей шинной системы. Доступ к этой среде основан на выделении временных окон, в которых отправитель имеет исключительное право передачи. При этом последовательность сообщений необходимо, как правило, устанавливать уже перед вводом системы в эксплуатацию. Таким образом, составляется "график движения", отвечающий требованиям к сообщениям в отношении частоты повторения, избыточности, сроков и т.д. В этом случае говорят о так называемом расписании работы шины. Такой шинной системой является, например, система на основе протокола с временным разделением доступа ТТР/С (сокр. от англ. Time-Triggered Protocol).
Сочетание преимуществ обоих указанных видов шин достигается в принципе, заложенном в протокол CAN с временным разделением доступа, так называемый протокол TTCAN. Он отвечает всем указанным выше требованиям в отношении управляемой по времени связи, а также требованиям в отношении определенной степени гибкости. Протокол TTCAN выполняет эти требования путем построения коммуникационного круга в так называемых исключительных временных окнах для периодических сообщений определенных абонентских устройств и в так называемых арбитрирующих временных окнах для спонтанных сообщений нескольких абонентских устройств. При этом протокол TTCAN основан по существу на управляемой по времени периодической связи, которая синхронизируется абонентским устройством или коммуникационным модулем, задающим основное время с помощью опорного синхронизирующего сообщения, так называемым задатчиком времени.
Другую возможность связи для различных видов передачи предоставляет протокол FlexRay, описывающий быстродействующую, детерминистическую и помехозащищенную шинную систему, в частности для использования в автомобиле. Этот протокол работает по технологии доступа с временным уплотнением каналов (ТDМА - сокр. от англ. Time Division Multiple Access), причем абонентским устройствам, или передаваемым сообщениям, выделяются постоянные кванты времени, в которые они имеют исключительный доступ к линии связи, т.е. шине. При этом кванты времени повторяются по заданному циклу, что позволяет заранее точно предсказать момент передачи сообщения по шине, и доступ к шине осуществляется детерминистически. Чтобы оптимально использовать ширину полосы частот для пересылки сообщений по шинной системе, цикл подразделен на статическую и динамическую части. При этом постоянные кванты времени находятся в статической части в начале цикла работы шины. В динамической части кванты времени выделяются динамически по технологии гибкого доступа с временным уплотнением каналов (FTDMA). В эти кванты времени исключительный доступ к шине возможен только на короткое время. Если обращение к шине отсутствует, доступ к ней предоставляется следующему абонентскому устройству. Этот отрезок времени, в который ждут доступа к шине со стороны первого абонентского устройства, называется минислотом.
Как было сказано выше, существует множество различных технологий передачи и, следовательно, множество видов шинных систем или сетей. Часто возникает необходимость соединения нескольких шинных систем одинакового или различного вида. Для этого служит шинный интерфейс - так называемый шлюз. Таким образом, шлюз представляет собой устройство сопряжения различных шин, которые могут быть одинакового или различного вида, причем шлюз пересылает сообщения (части сообщений) с одной шины на одну или несколько других шин. Известные шлюзы состоят из нескольких независимых коммуникационных модулей, причем обмен сообщениями в этом случае осуществляется через процессорный интерфейс (интерфейс центрального процессора) соответствующего абонентского устройства или соответствующий блок интерфейса соответствующего коммуникационного модуля. При этом такой обмен данными и другие прикладные функции в дополнение к самим сообщениям, передаваемым абонентскому устройству, сильно нагружает такой интерфейс центрального процессора, вследствие чего наряду с обусловленным этим усложнением структуры передачи становится сравнительно низкой скорость передачи или, с другой стороны, повышается тактовая частота и потребление энергии. Кроме того, существуют интегрированные коммуникационные контроллеры или коммуникационные модули, которые делят между собой общее хранилище сообщений, или оперативную память (RAM) для хранения сообщений, чтобы таким образом компенсировать недостатки структуры. Правда, такие интегрированные коммуникационные модули становятся из-за этого очень негибкими в отношении передачи данных и, в частности рассчитываются на определенное число подключений к шине, а в большинстве случаев также ограничены одной и той же шинной системой.
На фиг.1 показан обычный коммуникационный модуль или коммуникационный контроллер КМ для обычного шлюза, представленного на фиг.2. Коммуникационный модуль КМ имеет один интерфейс для внутренней периферийной шины или системной шины шлюза и еще один интерфейс для внешней последовательной шины. Системная шина включает в себя адресную шину, шину данных и управляющую шину (шину управления) и служит для внутренней передачи данных в пределах шлюза. К системной шине помимо коммуникационного модуля подключен главный центральный процессор (ЦП) с запоминающим устройством RAM, а также другие необязательные компоненты, например контроллер прямого доступа к памяти (ПДП). Главный центральный процессор служит для внутренней обработки данных и управляет внутренней передачей данных из одного коммуникационного модуля КМ в другой коммуникационный модуль КМ. Коммуникационные модули КМ взаимодействуют с главным центральным процессором по принципу "ведущий-ведомый", причем коммуникационные модули представляют собой ведомые устройства, а центральный процессор - ведущее устройство.
Как показано на фиг.1, внутренний интерфейс коммуникационного модуля КМ для сопряжения с системной шиной образован двухуровневым интерфейсом, а именно интерфейсом заказчика и многофункциональным интерфейсом. Интерфейс заказчика соединяет системную шину с многофункциональным интерфейсом, причем интерфейс заказчика определяется изготовителем и может быть легко заменен. Многофункциональный интерфейс можно через интерфейс заказчика подключать к множеству определяемых заказчиком системных шин. Известный из уровня техники коммуникационный модуль КМ, показанный на фиг.1, содержит также буферные запоминающие устройства для временного хранения передаваемых данных. Буферные запоминающие устройства образованы, например, запоминающими устройствами с произвольной выборкой (RAM) или регистрами данных. Кроме того, коммуникационный модуль КМ содержит блок пересылки сообщений или диспетчер сообщений для пересылки сообщений по меньшей мере из одного хранилища сообщений и блока коммуникационных протоколов, а также буферных запоминающих устройств. В хранилище сообщений, или оперативной памяти (RAM) временно хранятся передаваемые коммуникационные объекты (сообщения), а также данные конфигурации и информация о состоянии. На блок пересылки сообщений возложено управление потоком данных между всеми буферными запоминающими устройствами, блоком коммуникационных протоколов и промежуточным хранилищем сообщений. Блок коммуникационных протоколов (БКП) обычного коммуникационного модуля КМ, показанного на фиг.1, реализует передачу данных в соответствии с используемым протоколом передачи данных. При этом блок коммуникационных протоколов БКП преобразует, или переводит, формат данных, переданных по внешней последовательной шине пакетов DP данных, в формат сообщений MSG, используемых внутри коммуникационного модуля. При этом сообщения, пересылаемые блоком пересылки сообщений, или диспетчером сообщений, состоят по меньшей мере из одного слова DW данных, причем длина, или разрядность, слова DW данных в предпочтительном случае соответствует разрядности, предусмотренной в шлюзе внутренней шины данных. Если, например, системная шина имеет внутреннюю шину данных разрядностью 32 бита, то слово данных также содержит 32 бита. Сообщение MSG может состоять из заданного числа слов DW данных. Емкость буферного запоминающего устройства соответствует, например, объему информации в сообщении, содержащем заданное число слов DW данных. Арбитрирование потока данных выполняет блок пересылки сообщений, или диспетчер сообщений.
В машинах, в частности в автомобилях, в настоящее время используются несколько последовательных шин и промышленных шин, например, таких последовательных промышленных шин, как шины протоколов CAN, FIexRay, MOST или LIN. Во время работы машины между этими последовательными шинами, которые могут быть частью сети, осуществляется обмен данными через шлюз.
При этом в зависимости от типа автомобиля и выполняемых функций объем данных, обрабатываемых в центральном шлюзе, таком как показанный на фиг.2, может быть весьма высоким. Этот объем данных создает высокую нагрузку на центральный процессор, т.е. на центральный процессор ложится задача маршрутизации данных от одной последовательной шины на одну или несколько других последовательных шин. Кроме того, загрузка центрального процессора возрастает из-за выполнения операций, необходимых для уменьшения ширины полосы пропускания в отдельных сетях или последовательных шинах, например, из-за комбинирования содержимого нескольких сообщений в одно новое сообщение.
Во многих случаях для выполнения требований безопасности сообщения необходимо передавать периодически по заданной временной сетке. В случае высокоприоритетных сообщений может потребоваться немедленная передача сообщения без использования временной сетки или вне этой сетки. Проверку необходимости повторной отправки некоторого сообщения или определение того, что некоторое сообщение уже нельзя отправлять из-за возникшей ошибки, например отсутствия другого сообщения, также выполняет центральный процессор шлюза GW, расходуя свою вычислительную мощность.
Во многих случаях центральный процессор параллельно выполняет другие функции, т.е. в нем параллельно выполняются процессы обработки данных, оказывающие негативное воздействие друг на друга и задерживающие посылку или пересылку сообщения. Из-за этих параллельно выполняемых процессов усиливаются случайные искажения (джиттер) и увеличивается время ожидания (задержки) для пересылки сообщений, так как прерывание параллельно выполняемых процессов во многих случаях невозможно.
Раскрытие изобретения
Исходя из вышеизложенного, в основу настоящего изобретения была положена задача создания шлюза для автоматической маршрутизации сообщений между шинами, который пересылал бы сообщения без влияния со стороны центрального процессора и независимо от загрузки центрального процессора.
В соответствии с изобретением эта задача решается в шлюзе, охарактеризованном признаками пункта 1 формулы изобретения.
В изобретении предложен шлюз для автоматической маршрутизации сообщений между шинами, включающий в себя:
- несколько коммуникационных модулей для временного хранения и передачи сообщений N по шинам и
ext
- блок управления шлюзом, соединенный с коммуникационными модулями по системной шине для обмена сообщениями N с возможностью получения от каждого коммуникационного модуля информации о появлении в нем предназначенного для маршрутизации сообщения N, индицируемого как внешнее событие EV,
причем блок управления шлюзом содержит:
int
int
- векторную память (векторное оперативное запоминающее устройство) с первой областью памяти для хранения векторов KBV коммуникационных модулей, причем для каждого коммуникационного модуля предусмотрен вектор KBV, указывающий момент ZP наступления ожидаемого следующим внутреннего события EV для временно сохраненного в коммуникационном модуле сообщения N, и адрес перехода к вектору NV сообщения, хранящемуся во второй области векторной памяти VRAM, причем для каждого временно хранящегося в коммуникационном модуле релевантного сообщения N сохраняется соответствующий вектор NV сообщения, указывающий конфигурируемый момент ZP наступления вызываемого соответствующим сообщением N внутреннего события EV, адрес перехода к команде, а также конфигурационные и управляющие данные;
- память IRAM команд для хранения команд, адресуемых посредством адреса перехода к команде, указанного в векторе NV сообщения; и
- регистр SR состояния, обеспечивающий временное сохранение момента ZP наступления ожидаемого следующим события из числа всех ожидаемых внутренних событий для всех временно сохраненных в коммуникационных модулях сообщений N.
int
ext
- устройство FSM управления, которое при наступлении внутреннего события EV, момент ZP наступления которого указан в регистре SR состояния для всех временно сохраненных в коммуникационных модулях сообщений N, или при наступлении внешнего события EV, указываемого устройству FSM управления коммуникационным модулем, считывает из первой области векторной памяти VRAM относящийся к соответствующему коммуникационному модулю вектор KBV коммуникационного модуля и посредством содержащегося в нем адреса перехода к вектору считывает из второй области векторной памяти VRAM адрес перехода к команде адресуемого вектора NV сообщения, а затем посредством считанного адреса перехода к команде считывает из памяти IRAM команд и выполняет по меньшей мере одну команду, причем указанные в векторах NV, KBV моменты ZP времени актуализируются.
В одном из вариантов выполнения предлагаемого в изобретении шлюза он имеет по меньшей мере еще один процессор, который второй отдельной системной шиной соединен с коммуникационными модулями.
ext
В другом варианте выполнения предлагаемого в изобретении шлюза устройство управления блока управления шлюзом содержит конечный автомат событий, который при наступлении внутреннего события или внешнего события EV анализирует хранящиеся в векторной памяти VRAM векторы KBV, NV и актуализирует указанные в этих векторах моменты времени, и конечный автомат команд, который выполняет команды, считанные из памяти IRAM команд.
int
Еще в одном варианте выполнения предлагаемого в изобретении шлюза вектор NV сообщения дополнительно содержит разность времени Δt между моментом наступления одного внутреннего события, вызываемого соответствующим сообщением N, и моментом наступления следующего за ним внутреннего события EV, вызываемого соответствующим сообщением N.
int
В другом варианте выполнения предлагаемого в изобретении шлюза блок управления интерфейсом имеет счетчик Z в качестве внутреннего задатчика времени для инициирования внутреннего события EV.
В одном из вариантов выполнения предлагаемого в изобретении шлюза шины представляют собой последовательные шины.
Еще в одном варианте выполнения предлагаемого в изобретении шлюза коммуникационный модуль содержит:
- подключенный к последовательной шине блок коммуникационных протоколов для взаимного преобразования пакетов DP данных и сообщений, каждое из которых состоит из нескольких слов DW данных,
- блок пересылки сообщений для пересылки сообщений между по меньшей мере одним устройством памяти сообщений и блоком коммуникационных протоколов, а также буферными запоминающими устройствами,
- несколько интерфейсных блоков, каждый из которых подключен к соответствующей системной шине шлюза и связан по меньшей мере с одним соответствующим ему буферным запоминающим устройством, в котором временно сохраняется сообщение, причем передача слов DW данных из буферных запоминающих устройств интерфейсных блоков и в них организована одновременно по нескольким системным шинам и через соответствующие им интерфейсные блоки без времени ожидания.
В одном из вариантов выполнения предлагаемого в изобретении шлюза последовательная шина представляет собой промышленную шину.
В одном из вариантов выполнения предлагаемого в изобретении интерфейса промышленная шина представляет собой шину CAN (шину локальной сети контроллеров).
В одном из вариантов выполнения предлагаемого в изобретении интерфейса промышленная шина представляет собой шину на основе протокола локальной сети взаимодействия LIN (сокр. от англ. Local Interconnect Network).
В одном из вариантов выполнения интерфейса промышленная шина представляет собой шину FlexRay (шину высокоскоростного сетевого протокола).
В одном из вариантов выполнения предлагаемого в изобретении шлюза последовательная шина представляет собой шину Ethernet (шину локальной вычислительной сети).
В одном из вариантов выполнения предлагаемого в изобретении шлюза каждая из двух системных шин имеет соответствующее ведущее устройство.
В одном из вариантов выполнения предлагаемого в изобретении шлюза блок пересылки сообщений коммуникационного модуля сигнализирует ведущему устройству системной шины о получении сообщения, пословно передаваемого по системной шине.
В одном из вариантов выполнения предлагаемого в изобретении шлюза блок пересылки сообщений подтверждает сигналами ведущему устройству системной шины получение подлежащего передаче сообщения после запроса ведущим устройством системной шины этой информации.
В одном из вариантов выполнения предлагаемого в изобретении шлюза принятое системной шиной сообщение, которое временно сохранено в буферном запоминающем устройстве и пересылается блоком пересылки сообщений в устройство памяти сообщений, содержит по меньшей мере один флаговый бит для сигнализации готовности к передаче по последовательной шине.
Краткое описание чертежей
Ниже для пояснения существенных признаков изобретения приведено описание предпочтительных вариантов выполнения предлагаемого в изобретении шлюза, поясняемое прилагаемыми чертежами, на которых показано:
на фиг.1 - коммуникационный модуль, известный из уровня техники,
на фиг.2 - шлюз, известный из уровня техники,
на фиг.3 - блок-схема возможного варианта выполнения предлагаемого в изобретении шлюза,
на фиг.4 - блок-схема возможного варианта выполнения коммуникационного модуля в предлагаемом в изобретении шлюзе,
на фиг.5 - блок-схема возможного варианта выполнения содержащегося в шлюзе блока управления шлюзом,
на фиг.6 - схема, представляющая содержимое векторной памяти, имеющейся в предлагаемом в изобретении шлюзе,
на фиг.7 - схема, представляющая содержимое памяти команд, имеющейся в предлагаемом в изобретении шлюзе,
на фиг.8 - схема прохождения сигналов, иллюстрирующая пример пересылки сообщений предлагаемым в изобретении шлюзом,
на фиг.9 - схема прохождения сигналов, иллюстрирующая другой пример пересылки сообщений предлагаемым в изобретении шлюзом,
на фиг.10 - схема прохождения сигналов, иллюстрирующая еще один пример пересылки сообщений предлагаемым в изобретении шлюзом,
на фиг.11 - схема прохождения сигналов, иллюстрирующая еще один пример пересылки сообщений предлагаемым в изобретении шлюзом,
на фиг.12 - схема прохождения сигналов, иллюстрирующая еще один пример пересылки сообщений предлагаемым в изобретении шлюзом,
Осуществление изобретения
Как видно на фиг.3, предлагаемый в изобретении шлюз 1 имеет несколько коммуникационных модулей 2-i, каждый из которых подключается к одной последовательной шине 3-i. Последовательными шинами 3-i могут быть, например, промышленная (полевая) шина или шина Ethernet. По последовательным шинам 3-i данные передаются в виде сообщений. Передаваемые пакеты данных или сообщения включают в себя управляющие данные, или данные заголовка, а также полезные данные. Предлагаемый в изобретении шлюз 1 в варианте выполнения, показанном на фиг.3, содержит несколько ведущих устройств, причем первое ведущее устройство представляет собой блок 4-1 управления шлюзом, а второе ведущее устройство - центральный процессор 4-2. На эти два ведущих устройства 4-1, 4-2 на шине возложены разные функции. В варианте выполнения, показанном на фиг.3, блок 4-1 управления шлюзом ответственен за передачу данных между различными коммуникационными модулями 2-i. Другое ведущее устройство, представляющее собой процессор 4-2, состоящий из главного центрального процессора и внутренней оперативной памяти в виде запоминающего устройства с произвольной выборкой ЗУПВ (RAM), выполняет собственно обработку данных, относящуюся, например, к интегрированной наряду со шлюзом функции контроллера. В варианте выполнения, показанном на фиг.3, каждое ведущее устройство 4-1, 4-2 предпочтительно имеет собственную системную шину 5-1, 5-2. Каждая системная шина 5-1, 5-2, в свою очередь, имеет собственную шину данных, адресную шину и шину управления. Внутри шлюза 1 данные в одном из возможных вариантов выполнения передаются пословно (т.е. в виде отдельных слов данных), причем длина слова DW данных соответствует разрядности соответствующей шины данных в системной шине. Коммуникационные модули 2-i в одном из возможных вариантов выполнения также предпочтительно имеют для каждой системной шины 5-i соответствующий интерфейс.
На фиг.4 показан возможный вариант выполнения коммуникационного модуля 2-i. Коммуникационный модуль 2-i служит для подключения последовательной шины 3 через интерфейс, причем коммуникационный модуль 2-i имеет отдельный собственный интерфейс 2а, 2b для каждой внутренней системной шины 5-i шлюза 1. В варианте выполнения, показанном на фиг.4, коммуникационный модуль 2-i имеет первый интерфейс 2а для подключения к системной шине 5-1, ведущим устройством на которой является блок 4-1 управления шлюзом. Кроме того, коммуникационный модуль 2-i имеет еще один интерфейс 2b для подключения к системной шине 5-2 шлюза 1, ведущим устройством на которой является главный центральный процессор процессора 4-2. К внешней последовательной шине 3-i данных подключен блок 2 с коммуникационных протоколов коммуникационного модуля 2-i. Блок 2 с коммуникационных протоколов выполняет взаимное преобразование пакетов данных и сообщений, передаваемых вне коммуникационного модуля по последовательной шине 3-i данных, и с помощью диспетчера сообщений отправляет внутри коммуникационного модуля сообщения, каждое из которых может состоять из одного или нескольких слов DW данных.
Кроме того, коммуникационный модуль 2-i на фиг.4 включает в себя блок пересылки сообщений, или диспетчер 2d сообщений, для пересылки сообщений между по меньшей мере одним выполненным в виде ЗУПВ устройством памяти 2е сообщений и блоком 2с коммуникационных протоколов, а также различными буферными запоминающими устройствами 2f, 2g по внутренним линиям 2h передачи данных. Емкость буферного запоминающего устройства 2f, 2g предпочтительно соответствует объему данных сообщения, передаваемого внутри коммуникационного модуля, а также других управляющих данных. Коммуникационный модуль 2-i имеет несколько интерфейсных блоков 2а, 2b, каждый из которых подключен к соответствующей системной шине 5-i шлюза 1. При этом каждый интерфейсный блок 2а, 2b связан по меньшей мере с одним соответствующим ему буферным запоминающим устройством 2f, 2g, в котором временно сохраняется по меньшей мере одно сообщение или коммуникационный объект МО.
Доступ блока 4-1 управления шлюзом к коммуникационному объекту МО или к сообщению N осуществляется через интерфейс 2а шлюза и его соответствующий интерфейсный регистр 2f. Центральный процессор 4-2 через интерфейс 5-2 заказчика и его интерфейсный регистр 2g получает доступ к сообщениям или коммуникационным объектам. Таким образом, как со стороны блока 4-1 управления шлюзом, так и со стороны процессора 4-2 возможен осуществляемый без взаимного влияния доступ ко всем сообщениям или коммуникационным объектам.
ext
ext
На фиг.5 показан возможный вариант выполнения блока 4-1 управления предлагаемым в изобретении шлюзом 1. Блок 4-1 управления шлюзом соответствующей системной шиной 5-1 для обмена сообщениями соединен с коммуникационными модулями 2-i. При этом блок 4-1 управления шлюзом получает от каждого коммуникационного модуля 2-i информацию о появлении в последнем предназначенного для маршрутизации сообщения или коммуникационном объекте МО, индицируемую как внешнее событие EV. Как видно на фиг.3, каждый коммуникационный модуль 2-i по меньшей мере одним каналом индикации для индикации событий соединен с блоком 4-1 управления шлюзом. В одном из возможных вариантов осуществления изобретения показанный на фиг.4 коммуникационный модуль 2-i имеет несколько параллельных регистров сообщений для каждого интерфейса для сохранения по одному сообщению в каждом регистре сообщений. При этом в возможном варианте осуществления изобретения сообщения подразделены на несколько групп, например на m групп. В возможном варианте осуществления изобретения число предусмотренных групп сообщений в пределах коммуникационного модуля 2-i составляет m=4. Диспетчер 2d сообщений коммуникационного модуля 2-i при наступлении внешнего события EV индицирует, например, прием предназначенного для маршрутизации сообщения блока 4-1 управления шлюзом по соответствующему каналу индикации. В возможном варианте осуществления изобретения для каждой группы сообщений предусмотрен собственный канал индикации, например m=4 канала индикации. Если число коммуникационных модулей 2-i равно N при допущении, что у всех коммуникационных модулей 2-i это число N одинаковое, и если число групп в пределах коммуникационного модуля 2-i составляет m, то число каналов индикации для внешних сообщений равно N×m.
ext
int
int
Как показано на фиг.5, блок 4-1 управления шлюзом по системной шине 5-1 соединен с коммуникационными модулями 2-i и получает от каждого коммуникационного модуля 2-i по каналу индикации информацию о появлении в нем предназначенного для маршрутизации сообщения, индицируемого как внешнее событие EV. Блок 4-1 управления содержит векторную память, или векторное ОЗУ (VRAM), содержимое которой представлено на фиг.6. Кроме того, блок 4-1 управления шлюзом содержит память IRAM команд, содержимое которой представлено на фиг.7. Центральный управляющий управления блока 4-1 управления шлюзом представляет собой устройство (программного) управления или конечный автомат КА (англ. сокр. FSM от Finite State Machine), состоящий из конечного автомата состояний и отдельного от него конечного автомата команд. Кроме того, блок 4-1 управления содержит регистр SR состояния и счетчик Z, выступающий в качестве задатчика времени для инициирования внутренних событий EV. Блок 4-1 управления шлюзом через интерфейс SBI системной шины соединен с системной шиной 5-1. Векторная память VRAM, показанная на фиг.6, имеет по существу три области памяти. В первой области памяти находятся данные конфигурации коммуникационных модулей 2-i, т.е. для каждого коммуникационного модуля 2-i на каждую группу сообщений хранится вектор KBV. Вектор KBV коммуникационного модуля содержит для соответствующего коммуникационного модуля 2-i момент времени ZP, указывающий ожидаемое следующим внутреннее событие EV для временно сохраненного в коммуникационном модуле 2-i сообщения N. Дополнительно вектор KBV коммуникационного модуля содержит адрес VSA перехода к вектору NV сообщения для соответствующего сообщения N. Кроме того, каждый вектор KBV коммуникационного модуля содержит другие данные конфигурации для соответствующего коммуникационного модуля 2-i. Возможный элемент данных конфигурации представляет собой КМ-флаг, который указывает на то, включен ли коммуникационный модуль 2-i или коммуникационный контроллер или он выключен. Если коммуникационный модуль 2-i содержит несколько групп сообщений N, то для каждой группы сообщений в пределах коммуникационного модуля 2 предусмотрен вектор KBV коммуникационного модуля.
int
Наряду с этим векторная память VRAM блока 4-1 управления шлюзом имеет вторую область, в которой для каждого сообщения N или MSG хранятся данные конфигурации в виде векторов NV сообщения. Для каждого сообщения N, временно хранящегося в коммуникационном модуле 2-i, предусмотрен или хранится в векторной памяти VRAM соответствующий вектор NV сообщения, который указывает конфигурируемый период времени ZP наступления вызываемого соответствующим сообщением N внутреннего события EV a также адрес BSA перехода к команде.
В одном из возможных вариантов выполнения предлагаемого в изобретении шлюза 1 вектор NV сообщения дополнительно содержит разность времени Δt между моментом ZP наступления одного внутреннего или внешнего события, вызываемого соответствующим сообщением N, и другим моментом ZP наступления следующего внутреннего события, вызываемого соответствующим сообщением N.
Наряду с областями памяти для векторов KBV коммуникационного модуля и второй областью памяти для векторов NV сообщения векторная память VRAM имеет также свободно доступную третью область памяти, в которой временно хранятся переменные, а также постоянные и флаги. Кроме того, свободно доступная третья область векторной памяти VRAM служит для обмена данными с центральным процессором 4-2.
Хранящиеся во второй области векторной памяти VRAM векторы NV сообщения имеют адрес BSA перехода к команде, позволяющий вызывать по меньшей мере одну стандартную подпрограмму команд внутри памяти IRAM команд. Подобная последовательность команд или стандартная подпрограмма хранится в соотнесенной с сообщением области памяти IRAM команд. Эта область памяти предпочтительно имеет переменный объем. Переменным является также положение области памяти в пределах памяти IRAM команд.
В блоке 4-1 управления шлюзом наряду с векторной памятью VRAM и памятью IRAM команд предусмотрен конечный автомат FSM, содержащий конечный автомат событий и конечный автомат команд. Конечный автомат событий устройства управления при наступлении внутреннего или внешнего события анализирует хранящиеся в векторной памяти векторы, т.е. векторы KBV коммуникационных модулей и векторы NV сообщения, и актуализирует указанные в соответствующих векторах моменты времени.
int
Кроме того, блок 4-1 управления шлюзом имеет регистр SR конфигурации или состояния, в котором, помимо прочего, временно хранится момент ZP наступления ожидаемого ближайшим события из числа всех ожидаемых внутренних событий EV для всех сообщений, временно хранящихся в коммуникационном модуле 2-i.
int
ext
Конечный автомат команд устройства управления выполняет команды, считываемые из памяти IRAM команд. При наступлении внутреннего события EV, момент времени ZP которого индицируется в регистре SR состояния, или при наступлении внешнего события EV, индицируемом устройству управления коммуникационным модулем 2-1, конечный автомат событий считывает из первой области векторной памяти VRAM относящийся к коммуникационному модулю 2-i вектор KBV. Считанный вектор KBV коммуникационного модуля содержит адрес VSA перехода к вектору NV сообщения во второй области векторной памяти VRAM. Для каждого коммуникационного модуля 2-i или для каждой группы сообщений N в пределах коммуникационного модуля 2-i предусмотрен собственный вектор KBV коммуникационного модуля. Он представляет собой своего рода хэш-таблицу для векторов NV сообщения во второй области векторной памяти VRAM. Посредством адреса VSA перехода к вектору конечный автомат событий устройства управления считывает адресуемый вектор NV сообщения из второй области векторной памяти VRAM и после этого вызывает стандартную подпрограмму в памяти IRAM команд по содержащемуся в векторной памяти VRAM адресу BSA перехода к команде. Адресуемая команда или команды считываются из памяти IRAM команд и отрабатываются конечным автоматом команд в устройстве управления, причем конечный автомат команд также актуализирует указанные в этих векторах, т.е. в векторах NV сообщения и векторах KBV коммуникационных модулей моменты ZP времени, в соответствии с векторами NV и KBV предпочтительно посредством конечного автомата событий или отработанных команд.
Показанный на фиг.5 блок 4-1 управления содержит счетчик Z, выступающий в качестве внутреннего задатчика времени для инициирования внутреннего события.
ext
int
ext
int
В предлагаемом в изобретении блоке 4-1 управления шлюзом проводится различие между внешними событиями EV и внутренними событиями EV. Внешние события EV инициируются или вызываются коммуникационными модулями 2-1, в частности, при приеме подлежащего пересылке сообщения N или пакета сообщений DP. Внутренние события EV инициируются или вызываются задатчиком или счетчиком Z времени. Эти внутренние события служат, например, для циклической отправки сообщений или для разбиения пакетов сообщений или передачи внеочередных сообщений при превышении времени ожидания в случае тайм-аута. Для каждого соответствующего буферного запоминающего устройства памяти сообщений в пределах коммуникационного модуля 2-i в одном из возможных вариантов выполнения предлагаемого в изобретении шлюза 1 в векторной памяти VRAM хранится вектор NV сообщения, содержащий, например, следующую информацию, а именно ссылку на передаваемый информационный объект или сообщение N, адрес перехода для выполнения определенной последовательности команд, следующее внутреннее событие и разностное время для расчета следующих далее внутренних событий, а также информационные данные для управления и информацию о состоянии.
Хранящиеся в векторной памяти VRAM данные, в частности заданные моменты времени ZP, позволяют с использованием счетчика Z реализовать предлагаемым в изобретении блока 4-1 управления шлюзом практически любую временную характеристику для передачи данных между двумя или несколькими шинами 3 через шлюз 1. При этом во время пуска системы задатчик времени Z или счетчик инициализируется таким образом, чтобы делить тактовый период работы центрального процессора по выгодной для системы в целом тактовой сетке. Фактическое показание счетчика Z используется для контроля коммуникационных объектов в векторах KBV коммуникационных модулей и векторах NV сообщения в векторной памяти VRAM, чтобы инициировать передачу сообщения N. При этом показание счетчика Z сравнивается со значениями времени, записанными в таблицу векторов. Если показание счетчика Z больше или равно хранящемуся в памяти значению времени или моменту времени и если в случае соответствующего сообщения N или коммуникационного объекта речь идет о посылаемом объекте, осуществляется переход по указанному адресу, и выполняются указанные там команды. Если же сообщение N или коммуникационный объект представляют собой принимаемый объект, то проверяется, был ли уже принят этот принимаемый объект или нет. Если коммуникационный объект не был принят в течение ожидаемого времени, предлагаемый в изобретении шлюз 1 запускает процедуру тайм-аута и выдает соответствующее сообщение о тайм-ауте. После этого устройство управления актуализирует значения времени, причем расчет основывается на прежних значениях времени с указанными временами цикла. Посредством заново вычисленных моментов времени определяется, когда следует снова передать сообщение N или же когда произойдет следующий тайм-аут.
При непосредственной или немедленной пересылке сообщения N сравнение указанного счетчиком Z значения времени не требуется. Коммуникационный модуль 2-i сообщает блоку 4-1 управления шлюзом, что коммуникационный модуль 2 принял сообщение N. После этого устройство управления FSM ищет в векторной памяти VRAM соответствующую запись, т.е. относящийся к сообщению N вектор KBV коммуникационного модуля. Этот вектор KBV указывает на вектор NV сообщения во второй области векторной памяти VRAM. Вторая область памяти VRAM содержит адрес BSA перехода к команде, ведущий на стандартную программу, в которой хранятся стандартные команды.
Анализ значения времени, выдаваемого счетчиком Z, для расчета новых значений времени ожидания или ожидаемых моментов времени ZP, а также для управления различными коммуникационными модулями 2-i осуществляется устройством управления или конечным автоматом. Конечный автомат FSM с помощью счетчика Z и регистра SR состояния контролирует все передаваемые коммуникационные объекты или сообщения и дополнительно контролирует прием внешних новых сообщений N коммуникационными модулями 2-i. При наступлении внутреннего события, например циклической передачи сообщения, или внешнего события, например приема подлежащего пересылке сообщения N коммуникационным модулем 2, выполняются конфигурированные программные команды и осуществляется управление различными коммуникационными модулями 2. Благодаря привязке коммуникационных модулей 2 через интерфейс 5-2 заказчика центральный процессор 4-2 предлагаемого в изобретении шлюза в любой момент имеет возможность доступа к сообщениям N в коммуникационном модуле или в шинных модулях 2-i. Сообщения N в коммуникационных модулях 2-i или в шинных модулях последовательных шин 3-i предпочтительно временно сохраняются и в предлагаемом в изобретении шлюзе 1 для автоматической маршрутизации в возможном варианте выполнения не загружаются в устройство 4-i управления шлюзом. Передача сообщений между коммуникационными модулями или шинными модулями 2-i осуществляется в возможном варианте выполнения предлагаемого в изобретении шлюза 1 посредством дополнительной шины, а именно кольцевой шины, которая кольцеобразно соединяет между собой различные коммуникационные модули. Центральный процессор 4-2 может иметь доступ ко всем временно хранящимся коммуникационным объектам или сообщениям N в пределах коммуникационного модуля 2-i через интерфейсный регистр 2g, тогда как устройство 4-2 управления шлюзом осуществляет доступ через второй интерфейсный регистр 2f.
int
nxtEVTall
На фиг.8 показана схема прохождения сигналов, поясняющая принцип работы возможного варианта выполнения предлагаемого в изобретении шлюза 1. В регистре SR состояния блока 4-1 управления шлюзом временно хранится момент ZP наступления ожидаемого следующим события, т.е. ближайшего из всех ожидаемых событий для всех временно хранящихся в коммуникационном модуле 2-i сообщений N. Следовательно, в регистре SR состояния временно хранится ближайшее внутреннее событие или внутреннее событие EV, ожидаемое следующим блоком 4-1 управления шлюзом. Как только задатчик времени Z выдаст значение времени, указывающее на момент наступления этого события (t≤TIMER), конечный автомат событий в устройстве управления определяет соответствующий коммуникационный модуль 2-i и анализирует все хранящиеся в векторной памяти VRAM векторы KBV коммуникационных модулей для той или иной группы в пределах соответствующего коммуникационного модуля 2-i. В простом примере, представленном на фиг.8, коммуникационный модуль 2 имеет две группы сообщений - группу GRP1 и группу GRP2. Конечный автомат событий на шаге S1 анализирует вектор KBV коммуникационного модуля, инициирующий временное событие и хранящийся в первой области векторной памяти VRAM, и в показанном на фиг.8 примере находит вектор KBV коммуникационного модуля для второй группы GRP2 сообщений, временно хранящихся внутри коммуникационного модуля 2. На следующем шаге S2 вектор NV сообщения считывается из второй области второй векторной памяти VRAM и подвергается анализу. В примере, показанном на фиг.8, вектор, инициирующий событие EV, является вектором первого сообщения N или коммуникационного объекта 1 в пределах второй группы GRP2 инициирующего коммуникационного модуля 2-i.
На следующем шаге S3 производится вычисление следующего временного события или следующего внутреннего события для данного коммуникационного объекта МО:
nxtEV+1-Grpn-MOm
nxtEVt-Grpn-MOm
Grpn-MOm
t=t+t
Это возможно, поскольку каждый вектор NV сообщения дополнительно содержит разность времени Δt между моментом времени ZP наступления одного внутреннего события, вызываемого соответствующим сообщением N или коммуникационным объектом NO, и моментом ZP наступления следующего за ним внутреннего события, вызываемого соответствующим сообщением N.
На следующем шаге S4 конечным автоматом событий осуществляется поиск следующего временного события или следующего внутреннего события EVint:
nxtEV-GRPn
nxtEV-GRPn-MOm
max
t=minimum(t):m∈[1…m]
На следующем шаге S5 на основании определенных моментов времени актуализируется значение времени tnxtEV-GRPn в векторе KBV коммуникационного модуля в первой области векторной памяти VRAM.
m
На следующем шаге S6 можно выбрать следующее временное событие или ожидаемое следующим внутреннее событие по всем группам хранящихся в памяти сообщений или коммуникационных объектов МО и по всем коммуникационным модулям 2-i. В примере, показанном на фиг.8, - это момент времени t для первой группы GRP1 в пределах первого коммуникационного модуля.
n+1
n+1
На следующем шаге S7 этот момент времени tm сохраняется в регистре SR состояния как момент времени t для ожидаемого ближайшим внутреннего события. Как только счетчик Z достигнет этого момента времени t, процесс, представленный на фиг.8, начнется заново, т.е. операции S1-S7 повторятся.
GD delay
zykius
На фиг.9 показаны две временные диаграммы или схемы прохождения сигналов, причем верхняя схема прохождения сигналов представляет поступающее в предлагаемый в изобретении шлюз сообщение или коммуникационный объект МО, а другая, нижняя, схема прохождения сигналов представляет сообщения, выдаваемые предлагаемым в изобретении шлюзом 1 на другую последовательную шину. В приведенном на фиг.9 примере принятое на первой последовательной шине 3-i сообщение МО пересылается непосредственно по другой последовательной шине 3-j, причем происходит незначительная временная задержка t. Как видно на фиг.9, время цикла передачи t постоянно, т.е. принимаемые (циклически или спонтанно) коммуникационные объекты N пересылаются циклически.
На фиг.10 показана циклическая отправка сообщений N предлагаемым в изобретении шлюзом 1, даже если принимаемые коммуникационные объекты N поступают не циклически. Принятое последним сообщение N, посылается непрерывно циклически в пределах постоянного времени цикла на шину 3-i.
A
На фиг.11 показана непосредственная пересылка сообщения с тайм-аутом (выдержкой времени), т.е. контролируется отсутствие ожидаемого сообщения. Как видно на фиг.11, по первой последовательной шине 3-i принимается сообщение N или коммуникационный объект и пересылается непосредственно на выходную шину. В момент времени t устанавливается, что ожидаемое сообщение не поступило, и шлюз генерирует сообщение о тайм-ауте, которое передается как исходящее сообщение на выходную шину, чтобы показать отсутствие ожидаемого сообщения. Для осуществления показанного на фиг.11 процесса устройство управления не выполняет представленные на фиг.8 операции S1 при приеме такого сообщения (сообщение принимается правильно во временной сетке) и S3 при отсутствии сообщения N (запуск тайм-аута), выполняет в каждом случае только остальные операции.
DEB
На фиг.12 показано разбиение пакетов сообщений. В приведенном здесь примере шлюз 1 многократно получает сообщение в пределах заданного окна t и пересылает на другую последовательную шину 3-i только первое сообщение группы. Остальные сообщения в пределах пакета шлюзом 1 подавляются. В представленной на фиг.12 функции или в соответствующем режиме работы в первом прогоне устанавливается так называемый бит активизации разбиения пакетов в качестве элемента данных конфигурации в векторе NV сообщения векторной памяти VRAM для приема сообщения. Как только будет установлен бит активизации разбиения пакетов, осуществляется показанный на фиг.8 процесс, причем шаг S3 пропускается. В заключение бит активизации разбиения пакетов в данных конфигурации снова сбрасывается.
Как видно на фиг.9, 10, 11, 12, предлагаемый в изобретении шлюз 1 пригоден для различных режимов работы или функций пересылки или обработки сообщений, передаваемых между различными шинами 3-i, 3-j. Благодаря блоку 4-1 управления шлюзом в шлюзе 1, в зависимости от объема передаваемых данных, нагрузка на центральный процессор для автоматического контроля тайм-аутов и требуемой отправки сообщений или комбинации нескольких сообщений значительно снижается. Передача сообщений или коммуникационного объекта, а также проверка в отношении возможных тайм-аутов осуществляются блоком 4-1 управления шлюзом независимо от параллельно протекающих процессов в центральном процессоре 4-2. Этим обеспечивается значительное сокращение случайных искажений (джиттер) и времени ожидания, что позволяет точнее запускать и выполнять процессы в сети. При этом каждый коммуникационный объект или каждое сообщение N можно конфигурировать независимо от других сетей и независимо от других коммуникационных объектов в отдельных коммуникационных модулях или шинных модулях. Благодаря используемой в предлагаемом в изобретении шлюзе 1 модуле технике ссылок посредством векторов обеспечивается особенно высокая гибкость в отношении возможностей конфигурирования или настройки предлагаемого в изобретении шлюза 1. За счет формирования в пределах каждого коммуникационного модуля 2 групп пригодных для сохранения в памяти сообщений N увеличивается возможность создания вложений, что ведет к дальнейшему повышению гибкости системы. Дополнительно существенно сокращается время поиска обрабатываемых сообщений, а благодаря компактному определению процесса передачи данных минимизируется необходимый объем памяти для всех коммуникационных объектов. Предлагаемый в изобретении шлюз 1 открывает возможность посредством внешних событий определять временную характеристику внутренних событий и управлять ими. Предлагаемый в изобретении шлюз 1 автоматически передает данные между промышленными, или последовательными, шинами 3, дополнительно не загружая центральный процессор 4-2. При этом периодическая передача в рамках заданной временной сетки обеспечивает немедленную передачу после получения сообщения, проверку на предмет отсутствия сообщения, а также разбиение пакетов сообщений. Передача сообщений N при этом осуществляется без непосредственного контроля со стороны центрального процессора. Вместе с тем, центральный процессор 4-2 в любое время имеет доступ к пересылаемым или используемым коммуникационным объектам без прерывания автоматической маршрутизации сообщений. Передача или пересылка коммуникационных объектов или сообщений N осуществляются предлагаемым в изобретении шлюзом 1 независимо от времен задержки программного обеспечения и фактической загрузки центрального процессора 4-2.