Способ сохранения сообщений в памяти сообщений и соответствующая память сообщений
Иллюстрации
Показать всеИзобретение относится к способу сохранения сообщений в памяти сообщений коммуникационного модуля и коммуникационному модулю. Техническим результатом является расширение функциональных возможностей. Коммуникационный модуль для сети FlexRay снабжен памятью сообщений для сохранения сообщений, в которых содержатся первые данные (KDO, KD1, KDk), имеющие первый объем, и вторые данные (DO, D1, Dk), имеющие второй объем, который для разных сообщений может быть различным, содержащей сегмент (HS) заголовков и сегмент (DS) данных, причем коммуникационный модуль также содержит средства для сохранения в участках (HBO, HB1, HBk) сегмента (HS) заголовков первых данных (KDO, KD1, KDk) сообщений, по одному сообщению на участок, и средства для сохранения в участках (DBO, DB1, DBk) сегмента (DS) данных вторых данных (DO, D1, Dk) сообщений, по одному сообщению на участок, причем память сообщений выполнена с возможностью распределения ее объема между сегментом (HS) заголовков и сегментом (DS) данных при ее программировании в зависимости от количества (k) сообщений и объема вторых данных. Способ описывает работу указанного коммуникационного модуля. 3 н. и 8 з.п. ф-лы, 12 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу сохранения сообщений в памяти сообщений коммуникационного модуля, а также к самому коммуникационному модулю в соответствии с признаками независимых пунктов формулы изобретения, известными из уровня техники.
Уровень техники
Объединение в сеть блоков управления, датчиков и приводов посредством систем связи, например шинных систем обмена данными, в последние годы получает все более широкое распространение как в области автомобилестроения, так и в области машиностроения, и прежде всего в области станкостроения, а также систем автоматизированного управления технологическими процессами. При этом за счет распределения функций между несколькими блоками управления можно достичь синергетических эффектов.
Подобные системы принято называть распределенными системами. Для обмена данными между различными оконечными или абонентскими устройствами все чаще используются системы связи, построенные по принципу шинных систем обмена данными. В таких системах функции управления обменом данными, равно как и функции обработки возникающих при этом ошибок, регулируются протоколом обмена данными. Известны такие протоколы обмена данными, как протокол CAN (сокр. от англ. "Controller Area Network", локальная сеть для обмена данными между органами управления), протокол TTCAN (сокр. от англ. "Time Triggered Controller Area Network", локальная сеть для обмена данными между органами управления с доступом через синхронизированные контроллеры), а также протокол FlexRay для организации обмена данными между электронными компонентами транспортных средств, причем у последнего протокола существует уже вторая (V2.0) редакция спецификации. При этом FlexRay - это быстродействующая детерминистическая и устойчивая к сбоям шинная система, особенно хорошо приспособленная для использования в транспортных средствах. Протокол FlexRay работает по методу многоабонентского доступа с временным разделением каналов (сокр. TDMA, от англ. "Time Division Multiple Access"), в соответствии с которым различным подключенным к сети или шине обмена данными компонентам, т.е. абонентским устройствам, присваиваются различные жестко заданные интервалы времени (так называемые слоты), в течение которых эти устройства имеют исключительное право на доступ к каналу связи. Сравнимым образом работают и системы, построенные на основе стандарта TTCAN. При этом при работе шинной системы обмена данными интервалы времени повторяются по заданному циклу, что позволяет заранее точно знать момент передачи сообщения по шине и организовать доступ к шине по детерминистическому принципу. Для оптимального использования полосы пропускания шинной системы обмена данными протоколом FlexRay предусматривается наличие у цикла не только статической, но и динамической части. При этом под статической частью цикла работы шинной системы, расположенной в начале такого цикла, понимается та часть этого цикла, к которой относятся жестко распределенные между абонентскими устройствами интервалы времени. В динамической же части цикла интервалы времени выделяются динамически. В пределах этой динамической части выделяются так называемые мини-интервалы (мини-слоты), представляющие собой заданные весьма короткие отрезки времени, в течение которых абонентское устройство имеет гарантированное право исключительного доступа к шине. И лишь в том случае, когда абонентское устройство действительно обращалось к шине в течение очередного отведенного ему мини-интервала, это устройство может получить право доступа к шине в течение запрошенного им более длительного интервала. Таким образом, полоса пропускания занимается только тогда, она действительно нужна. Обмен данными в сети FlexRay организован с использованием двух раздельных физических проводников, причем максимальная скорость передачи данных по каждому из них составляет 10 мегабит в секунду. При этом оба этих канала передачи данных соответствуют физическому уровню предложенной Международной организацией по стандартизации семиуровневой базовой эталонной модели (OSI) взаимодействия открытых систем. Применение двух проводников призвано, в частности, обеспечить возможность передачи сообщений с резервированием, а значит, с обеспечением отказоустойчивости, однако проводники могут использоваться и для передачи по ним различных сообщений с соответствующим удвоением их общей пропускной способности. Предусмотрена также возможность работы сети FlexRay с пониженными скоростями передачи данных.
Для обеспечения синхронного выполнения функций, а также для увеличения полосы пропускания за счет сокращения пауз между сообщениями, подключенные к сети передачи данных распределенные компоненты, т.е. абонентские устройства этой сети, должны работать синхронно, т.е. с использованием так называемого глобального времени. В целях синхронизации встроенных часов в пределах статической части цикла передаются сообщения синхронизации, на основе которых каждое абонентское устройство шины FlexRay по предписанному спецификацией протокола FlexRay алгоритму подстраивает свои встроенные часы таким образом, чтобы встроенные часы всех абонентских устройств шли синхронно друг с другом. В сети, работающей по протоколу TTCAN, синхронизация осуществляется сравнимым образом.
Узел, абонентское устройство, или хост (в сущности, синонимичные понятия), сети FlexRay, имеет собственный процессор, т.е. хост-процессор, контроллер шины FlexRay, иначе называемый коммуникационным контроллером, а также - при контроле шины - блок защиты шины. При этом указанным процессором формируются и обрабатываются данные, передаваемые через контроллер шины FlexRay. Сеть FlexRay поддерживает передачу по ней в процессе обмена данными сообщений или коммуникационных объектов, содержащих, например, до 254 байт данных. Передача этих сообщений, или коммуникационных объектов, между физическим уровнем, то есть между каналом связи, и хост-процессором, т.е. процессором абонентского устройства, обеспечивается коммуникационным модулем, в частности коммуникационным контроллером.
Исходя из вышеизложенного, в основу настоящего изобретения была положена задача разработать для оснащения коммуникационного модуля шинной системы память сообщений, которая поддерживала бы передачу сообщений оптимальным образом.
Раскрытие изобретения
С этой целью в настоящем изобретении предлагается способ сохранения сообщений в такой памяти сообщений, а также соответствующая память сообщений, предназначенная для сохранения в ней отправляемых и получаемых сообщений, в частности, с применением запоминающего устройства с произвольной выборкой (ЗУПВ). При этом количество сообщений, которые можно сохранить, зависит от размера участков сегмента данных, имеющегося в памяти сообщений. Изобретение позволяет сохранять в памяти заданного размера, в частности ЗУПВ, переменное количество сообщений и одновременно позволяет свести к минимуму необходимый объем ЗУПВ, а также оптимально использовать этот объем, не ограничивая размера участков памяти, используемых для хранения содержащихся в сообщениях данных.
Для этого предложены способ сохранения сообщений, а также память сообщений в составе коммуникационного модуля, предназначенная для сохранения сообщений, в которых содержатся первые данные, имеющие первый объем, так называемые данные заголовка (т.е. данные состояния и конфигурации), и вторые данные, имеющие второй объем (собственно отправляемые данные). При этом, как уже указывалось выше, объем вторых данных может быть различным для разных сообщений, т.е. может варьироваться от сообщения к сообщению, память сообщений имеет сегмент заголовков, в участках которого сохраняются первые данные, по одному сообщению на участок, и сегмент данных, в участках которого сохраняются вторые данные сообщений, по одному сообщению на участок, причем память сообщений выполнена с возможностью распределения ее объема между сегментом заголовков и сегментом данных в переменном соотношении, зависящем от количества сообщений и объема вторых данных. Соответственно, общий объем памяти сообщений, выполненной, в частности, в виде ЗУПВ, распределяется между сегментом заголовков и сегментом данных в переменном соотношении таким образом, что при конфигурировании меньшего числа сообщений сегмент заголовков уменьшается, а высвобождающаяся за счет этого область памяти для сохранения собственно передаваемых данных соответственно увеличивается.
Для этого в предпочтительном варианте осуществления изобретения в каждом из участков сегмента заголовков на каждое сообщение предусмотрено по одному указателю, которым определяется участок сегмента данных, причем такой указатель, в частности, содержит информацию о начальном адресе такого участка сегмента данных.
В другом варианте осуществления изобретения первые и вторые данные сообщений сохраняются в памяти сообщений в задаваемой последовательности таким образом, что последовательность участков в сегменте заголовков и последовательность участков в сегменте данных одинаковы, что позволяет по положению участка сегмента заголовков, в котором хранится заголовок конкретного сообщения, легко определить положение участка сегмента данных, в котором хранятся относящиеся к этому сообщению данные. При этом память сообщений предпочтительно выполнена в виде запоминающего устройства (ЗУ) обратного магазинного типа, что позволяет обеспечить дальнейшую передачу сообщений в порядке их поступления.
Для оптимального использования объема памяти сообщений первые данные сообщения сохраняются в одном участке сегмента заголовков и с помощью первого количества слов, одинаковым образом заданного для каждого участка сегмента заголовков, в частности точно в одном таком слове. При этом в числе жестко заданного набора этих слов может сохраняться и соответствующий указатель, благодаря чему для каждого участка сегмента заголовков можно получить одинаковое количество слов, что позволяет только на основе числа сохраненных или подлежащих сохранению сообщений получить размер сегмента заголовков за счет применения постоянного числа слов.
Для этого память целесообразно выполнять с заданной фиксированной длиной слова. Это наиболее целесообразно в том случае, когда участки сегмента заголовков и сегмента данных расположены в памяти непосредственно один за другим, а переменное соотношение их объемов обеспечивается за счет "перемещения" границ между этими участками.
Изобретением предусматривается и механизм обнаружения ошибок, предпочтительно основанный на том, что каждый участок сегмента данных имеет размер, соответствующий по меньшей мере одному слову заданной длины, на каждое слово заданной длины участок сегмента данных содержит контрольный идентификатор, в частности бит контроля четности, а с памятью сообщений соотнесен элемент генерации бита контроля четности и элемент проверки на четность, которые генерируют такой контрольный идентификатор, в частности бит четности, и с его помощью проверяют правильность сохраненных данных.
В предпочтительном варианте осуществления изобретения предлагаемая в изобретении память сообщений применяется в составе коммуникационного модуля для сети FlexRay (т.е. для обмена сообщениями по протоколу FlexRay), a этот модуль, в свою очередь, является частью абонентского устройства сети FlexRay, т.е. располагается в подключенном к шине FlexRay блоке управления или непосредственно соотнесен с таким блоком.
Такой предлагаемый в изобретении подход позволяет обеспечить различные преимущества за счет распределения объема памяти сообщений в переменном соотношении между сегментами этой памяти. В частности, пользователь на этапе программирования может решить, желает ли он использовать большее количество сообщений с меньшим полем данных либо меньшее количество сообщений с большим полем данных. При конфигурации памяти под хранение сообщений с варьирующимся объемом полезных данных изобретение позволяет оптимально использовать весь объем доступной памяти. Пользователь имеет возможность совместного использования одного и того же участка сегмента данных для различных сообщений. При интеграции коммуникационного модуля, в интегральную схему (ИС) объем памяти сообщений может точно адаптироваться к специфике конкретной прикладной задачи прежде всего за счет использования ЗУ соответствующей емкости, соответственно такая адаптация не затрагивает остальных функций коммуникационного контроллера или коммуникационного модуля.
Иные преимущества и предпочтительные варианты осуществления изобретения рассмотрены в описании, а также охарактеризованы признаками формулы изобретения.
Краткое описание чертежей
Ниже изобретение более подробно пояснено со ссылкой на прилагаемые чертежи, на которых показано:
на фиг.1 - схематичное изображение коммуникационного модуля и его соединения с физическим уровнем, т.е. с каналом связи и с абонентским устройством в системе связи,
на фиг.2 - более подробное изображение одного из конкретных вариантов выполнения коммуникационного модуля, показанного на фиг.1, а также его соединения(с шиной),
на фиг.3 - структура памяти сообщений,
на фиг.4-6 - схематичное изображение архитектуры и процесса доступа к данным с передачей данных в направлении от абонентского устройства к памяти сообщений,
на фиг.7-9 - схематичное изображение архитектуры и процесса доступа к данным с передачей данных в направлении от памяти сообщений к абонентскому устройству,
на фиг.10 - схематичное изображение диспетчера (обработчика) сообщений и содержащихся в нем конечных автоматов,
на фиг.11 - еще одно схематичное изображение элементов коммуникационного модуля, абонентского устройства, а также соответствующих трактов передачи данных, управляемых диспетчером сообщений, и
на фиг.12 - распределение прав доступа применительно к показанным на фиг.11 трактам передачи данных.
Ниже изобретение более подробно рассмотрено на примере нескольких вариантов его осуществления.
Осуществление изобретения
На фиг.1 схематично изображен коммуникационный модуль 100 сети FlexRay, обеспечивающий соединение абонентского устройства, или хоста, 102 сети FlexRay с каналом 101 связи в этой сети, т.е. с ее физическим уровнем. Для этого коммуникационный модуль 100 соединен с абонентским устройством, т.е. с процессором 102 этого устройства, соединением 107, а с каналом 101 связи - соединением 106. Распределение времени доступа к каналу, а также целостность данных обеспечиваются в основном тремя входящими в состав коммуникационного модуля схематично показанными на чертеже устройствами. Первое 105 из этих устройств обеспечивает сохранение, в частности промежуточное сохранение (буферизацию), по меньшей мере части передаваемых сообщений. Между абонентским устройством 102 и этим первым устройством 105 расположено второе устройство 104, соединенное с ними соединениями 107 и 108. Между абонентским устройством 101 и первым устройством 105 расположено соединенное с ними соединениями 106 и 109 третье устройство 103, чем достигается гибкий ввод и вывод данных в составе сообщений, прежде всего сообщений на основе протокола FlexRay, в первое устройство 105 и соответственно из него, с обеспечением целостности данных при оптимальной скорости передачи данных.
На фиг.2 этот коммуникационный модуль 100 в предпочтительном варианте его выполнения изображен более подробно. Также более подробно изображены и соответствующие соединения 106-109. При этом второе устройство 104 имеет входную буферную память 201 (буфер на входе), ниже также называемую входным буфером, выходную буферную память 202 (буфер на выходе), ниже также называемую выходным буфером, а также интерфейсный модуль, состоящий из двух частей 203 и 204, причем субмодуль 203 является универсальным, независимым от абонентского устройства, в то время как субмодуль 204 является специализированным, т.е. может иметь ту или иную конструкцию в зависимости от конкретного абонентского устройства. Этим специализированным субмодулем 204 интерфейсного модуля (англ. Customer CPU Interface, CIF) обеспечивается интерфейс для связи процессора 102 абонентского устройства, который может иметь различные особенности в зависимости от того, о каком конкретно абонентском устройстве идет речь, с коммуникационным модулем сети FlexRay. Для этого предусмотрены линия 216 передачи данных с возможностью передачи в двух направлениях, адресная линия 217 и управляющий вход 218. Также предусмотрен выход 219 для передачи сигналов прерывания. Зависимый от абонентского устройства субмодуль 204 соединен с универсальным субмодулем 203 (англ. Generic CPU Interface, GIF), благодаря чему интерфейсный модуль FlexRay получает универсальный интерфейс для его связи с процессорами абонентских устройств, который с использованием субмодулей, адаптированных к специфике конкретных абонентских устройств и их процессоров, может соединяться с большим количеством самых различных абонентских устройств. Благодаря этому адаптация, учитывающая особенности абонентского устройства, необходима только для субмодуля 204, что позволяет существенно снизить затраты, связанные с подключением к шине FlexRay самых различных абонентских устройств.
Входной буфер 201 и выходной буфер 202 могут быть выполнены либо в виде одного, либо в виде раздельных модулей памяти. При этом входной буфер 201 служит для промежуточного сохранения сообщений, подлежащих передаче в память 200 сообщений. Этот входной буфер предпочтительно выполнен с возможностью сохранения в нем двух полных сообщений, каждое из которых включает в себя заголовок, содержащий, в частности, конфигурационные данные, и основную часть, содержащую собственно передаваемые, или полезные, данные. При этом сам входной буфер выполнен из двух частей: основной буферной памяти и теневой (скрытой) памяти, причем за счет попеременной записи в обе указанные части входного буфера и смены режима обращения к ним (т.е. переключения между этими режимами), удается увеличить скорость передачи данных между процессором 102 абонентского устройства и памятью 200 сообщений. Аналогичным образом выходной буфер служит для промежуточного сохранения сообщений, подлежащих передаче из памяти 200 сообщений в процессор 102 абонентского устройства. При этом выходной буфер 202 также выполнен с возможностью сохранения в нем двух полных сообщений, каждое из которых включает в себя заголовок, содержащий, в частности, конфигурационные данные, и основную часть, содержащую собственно передаваемые полезные данные. И в этом случае выходной буфер 202 выполнен из двух частей: основной буферной памяти и теневой (скрытой) памяти, причем и в рассматриваемом случае за счет попеременного считывания из этих частей буфера и смены режима обращения к ним удается увеличить скорость передачи данных между абонентским устройством, или его процессором 102, и памятью 200 сообщений. Второе устройство 104, имеющее элементы 201-204, соединено с первым устройством 105 показанным на чертеже образом.
Устройство 105 состоит из диспетчера, или обработчика, 200 сообщений (англ. Message Handler, MHD) и памяти 300 сообщений, в частности ЗУПВ (англ. Message RAM). Диспетчер сообщений контролирует процесс передачи данных между входным буфером 201 и выходным буфером 202 с одной стороны и памятью 300 сообщений с другой стороны, соответственно управляет указанным процессом. Аналогичным образом, посредством третьего устройства 103 он контролирует процесс передачи данных в обратном направлении, соответственно управляет этим процессом. Память сообщений предпочтительно выполнена в виде однопортового ЗУПВ. Эта память служит для хранения сообщений или коммуникационных объектов, т.е. для хранения передаваемых полезных данных совместно с относящимися к ним конфигурационными данными и данными о состоянии. Структура памяти 300 сообщений более подробно показана на фиг.3.
Третье устройство 103 состоит из элементов 205-208. Поскольку шина FlexRay имеет на физическом уровне два канала передачи данных, это устройство 103 имеет два тракта передачи данных, каждый из которых пригоден для передачи данных в обоих направлениях. Эти тракты обозначены на чертеже позициями 213 и 214, причем для тракта или канала А передачи данных взаимно противоположные направления передачи данных обозначены позициями RxA и ТхА, а для тракта или канала В - позициями RxB и ТхВ. Позицией 215 обозначен необязательный двунаправленный управляющий вход. Третье устройство 103 соединяется через первый буфер 205 с каналом В и через второй буфер 206 с каналом А. Оба этих буфера, или промежуточных ЗУПВ А и В, служат для промежуточного сохранения данных, передаваемых в первое устройство 105 и из него. В соответствии с наличием двух каналов оба этих буфера 205 и 206 соединены каждый со своим интерфейсным модулем 207 и 208, в состав которых входит контроллер сети FlexRay, иначе называемый контроллером протокола шины и состоящий из приемопередающих регистров сдвига и конечного автомата FlexRay. В соответствии с этим оба буфера 205 и 206 выполняют функции промежуточной памяти для хранения данных, передаваемых между регистрами сдвига интерфейсных модулей или контроллером 207 и 208 сети FlexRay с одной стороны и памятью 300 сообщений с другой стороны. И в этом случае в каждом из буферов 205 или 206 сохраняются поля данных, т.е. несущая полезную информацию часть двух сообщений на основе протокола FlexRay.
Кроме того, в коммуникационном модуле 100 предусмотрено глобальное программно-временное устройство (ПВУ) (англ. Global Time Unit, GTU), отвечающее за синхронизацию работы абонентского устройства с другими подключенными к шине FlexRay абонентскими устройствами, т.е. за обработку микро-(µТ) и макро-(МТ) импульсов сигнала времени. Кроме того, указанное ПВУ 209 отвечает за отказоустойчивую синхронизацию часов счетчиков циклов (англ. Cycle Counter), а также за контроль во времени процессов в статической и динамической частях цикла работы шины FlexRay.
Позицией 210 обозначен блок общего управления системой (англ. System Universal Control, SUC), контролирующий режимы работы коммуникационного контроллера FlexRay и управляющий этими режимами. К ним относятся такие режимы, как активизация, запуск, первичное или повторное подключение к шине, а также нормальный и пассивный режимы работы.
Позицией 211 обозначен блок управления шиной и обработки ошибок (англ. Network- and Error Management, NEM), предусмотренный редакцией 2.0 спецификации протокола FlexRay. Позицией 212 обозначен блок управления прерываниями (англ. Interrupt Control, INT), управляющий флагами прерываний, осуществляемых по факту регистрации определенных состояний или по факту регистрации ошибок (англ. status and error interrupt flags), и контролирующий выходы 219 для передачи сигналов прерывания в процессор 102 абонентского устройства, соответственно управляющий этими выходами. Блок 212 также имеет таймер абсолютного или относительного времени, соответственно таймер для генерирования прерываний по времени, иначе называемых прерываниями по таймеру.
Сеть FlexRay может быть сконфигурирована для передачи по ней в процессе обмена данными, соответственно для сохранения в буфере сообщений, сообщений, соответственно коммуникационных объектов, содержащих, например, до 254 байт данных. Память 300 сообщений выполнена, в частности, в виде ЗУПВ для сохранения сообщений, способного сохранять, например, не более шестидесяти четырех коммуникационных объектов. Все функции, относящиеся к обработке сообщений, соответственно к управлению сообщениями, реализованы в диспетчере 200 сообщений. К таким функциям относятся, например, фильтрация по критерию допустимости, передача сообщений между блоками 207 и 208, относящимися к контроллеру сети FlexRay, с одной стороны, и памятью 300 сообщений, с другой стороны, а также контроль последовательности передачи и подготовка конфигурационных данных, соответственно данных о состоянии.
Внешний процессор 102, т.е. процессор 102 абонентского устройства, может через интерфейс абонентского устройства, т.е. посредством специализированного субмодуля 204, получать доступ к регистрам коммуникационного модуля системы FlexRay. При этом может использоваться большое количество разнообразных регистров. Эти регистры используются для конфигурирования и управления работой контроллера сети FlexRay, т.е. интерфейсных модулей 207 и 208, диспетчера 200 сообщений, глобального ПВУ 209, блока 210 общего управления системой, блока 211 управления шиной и обработки ошибок, контроллера 212 прерываний, а также для управления доступом к памяти 300 сообщений и отображения соответствующего состояния. По меньшей мере некоторые из этих регистров более подробно рассмотрены ниже со ссылкой на фиг.4-6 и 7-9. Такой предлагаемый в изобретении коммуникационный модуль системы FlexRay позволяет простым путем реализовать редакцию 2.0 спецификации протокола FlexRay, соответственно позволяет простым путем создать специализированную ИС или микроконтроллер с поддержкой шины FlexRay, имеющие соответствующий объем функций.
На фиг.3 более подробно показана структура памяти 300 сообщений. Для того чтобы контроллер сети FlexRay был способен выполнять весь объем функций, требуемый от него в соответствии со спецификацией протокола FlexRay, этот контроллер должен иметь буфер для отправляемых сообщений и буфер для корректно принятых сообщений. Протокол FlexRay позволяет отправлять и получать сообщения с объемом полезной информации от 0 до 254 байт. Как показано на фиг.2, память сообщений является одним из элементов коммуникационного модуля 100 сети FlexRay. Описанный ниже способ, а также пригодная для осуществления этого способа память сообщений позволяют сохранять подлежащие отправке и полученные сообщения, в частности в ЗУПВ, причем предлагаемый в изобретении способ позволяет сохранять в памяти сообщений заданного объема переменное число сообщений. При этом количество помещающихся в память сообщений зависит от объема собственно передаваемых данных, содержащихся в каждом сообщении, что позволяет, с одной стороны, использовать для хранения сообщений лишь необходимый минимум памяти, не накладывая при этом ограничений на объем содержащихся в каждом сообщении полезных данных, и, с другой стороны, позволяет оптимальным образом использовать (любой) доступный объем памяти. Ниже более подробно описан способ распределения объема предусмотренной в контроллере связи FlexRay памяти сообщений, в частности представляющей собой ЗУПВ, между сегментами этой памяти, в переменном соотношении.
Допустим в качестве примера, что у нас есть память сообщений, пригодная для сохранения слов заданной длины, составляющей n бит, где n=8, 16, 32 и т.д., причем объем этой памяти достаточен для сохранения m слов (и m, и n - натуральные числа). При этом память 300 сообщений разбивают на два сегмента: сегмент HS заголовков и сегмент DS данных. В соответствии с этим на каждое сообщение в сегменте заголовков памяти сообщений создается участок HB, предназначенный для сохранения заголовка этого сообщения, а в сегменте данных памяти сообщений создается участок DB, предназначенный для сохранения данных этого сообщения. Соответственно, для сообщений 0, 1, …, k (где k - натуральное число) создаются участки НВ0, НВ1, …, HBk сегмента заголовков и участки DB0, DB1, …, DBk сегмента данных. Иными словами, каждое сообщение, передаваемое по шине FlexRay, рассматривается как включающее в себя первые и вторые данные, причем под первыми данными понимаются содержащиеся в заголовках конфигурационные данные и/или данные о состоянии, сохраняемые в участках НВ (НВ0, НВ1, …, HBk) сегмента заголовков. Под вторыми данными понимаются собственно содержащиеся в сообщении данные, сохраняемые в участках DB (DB0, DB1, …, DBk) сегмента данных. В соответствии с этим объем памяти, занимаемый каждым сообщением, складывается из двух частей: первая часть соответствует объему относящихся к сообщению первых данных и может измеряться в битах, байтах или количестве слов, а вторая часть соответствует объему относящихся к сообщению вторых данных и также может измеряться в битах, байтах или количестве слов, причем объем вторых данных у разных сообщений может быть различным. Общий объем памяти 300 сообщений распределяется между сегментом HS заголовков и сегментом DS данных в переменном соотношении, т.е. жестко заданной границы между указанными сегментами не существует. В соответствии с изобретением это распределение осуществляется в зависимости от количества k сообщений, а также в зависимости от объема вторых данных, т.е. в зависимости от объема полезных данных, содержащихся в одном сообщении, соответственно содержащихся суммарно в k сообщениях. В соответствии с изобретением с конфигурационными данными KD0, KD1, …, KDk каждого соответствующего сообщения непосредственно соотносят по одному указателю DP0, DP1, …, DPk. В одном из конкретных вариантов осуществления изобретения с каждым участком НВ0, НВ1, …, HBk сегмента заголовков соотносят жестко заданное число слов, в рассматриваемом варианте равное двум, что позволяет в каждом случае совместно сохранять в одном и том же участке НВ как конфигурационные данные KD (KD0, KD1, …, KDk), так и указатель DP (DP0, DP1, …, DPk). Непосредственно после этого сегмента HS заголовков, в котором выделены участки НВ для хранения первых данных, т.е. заголовков сообщений, и размер которого зависит от количества k подлежащих сохранению сообщений, в памяти сообщений расположен сегмент DS данных, предназначенный для сохранения собственно содержащихся в сообщениях данных D0, D1, …, Dk. Объем этого сегмента DS данных зависит от объема данных, содержащихся в сохраненных сообщениях, соответственно от объема занятых этими данными участков сегмента данных, причем в рассматриваемом примере объем участка DB0 сегмента данных составляет шесть слов, объем участка DB1 - одно слово, и объем участка DBk - два слова. Соответствующие указатели DP0, DP1, …, DPk в каждом случае указывают на начало, т.е. на начальный адрес соответствующего участка DB0, DB1, …, DBk сегмента данных, в котором хранятся данные D0, D1, …, Dk, содержащиеся в соответствующем сообщении 0, 1, …, k. В соответствии с этим объем памяти сообщений распределяется между сегментом HS заголовков и сегментом DS данных в переменном соотношении, зависящем как от общего количества сообщений, так и от объема данных в сообщении, соответственно от суммарного объема вторых данных. В случае, когда память сообщений сконфигурирована под меньшее число сообщений, сегмент заголовков имеет уменьшенный объем, а высвободившаяся за счет такого уменьшения память дополнительно относится к сегменту DS данных, соответственно может быть использована для хранения полезных данных. Такая гибкость в конфигурировании памяти позволяет оптимизировать использование последней, что в некоторых случаях позволяет обойтись меньшим объемом памяти. В соответствии с этим свободный объем FDS сегмента данных, также в зависимости от количества k сохраненных сообщений и от объема относящихся к сохраненным сообщениям вторых данных, может быть минимальным или даже нулевым.
Наряду с использованием указателей первые и вторые данные, т.е. конфигурационные данные KD (KD0, KD1, …, KDk) и собственно данные D (D0, D1, …, Dk), могут сохраняться в заданной последовательности, причем последовательность участков НВ0…HBk сегмента HS заголовков идентична последовательности участков DB0…DBk сегмента DS данных. Такой подход позволяет при определенных условиях даже отказаться от использования указателей.
В одном из конкретных вариантов осуществления изобретения в памяти сообщений предусмотрен генератор данных, используемых для обнаружения ошибок, прежде всего генератор битов контроля четности, а также элемент для обнаружения ошибок, прежде всего элемент для контроля этих битов, что позволяет за счет формирования и сохранения контрольной суммы и прежде всего бита контроля четности, для каждого слова или для каждого сегмента памяти (НВ и/или DB) обеспечить контроль корректности данных, сохраненных в сегментах HS и DS. Могут применяться и иные методы контроля корректности данных, соответственно методы обнаружения ошибок, например контроль с использованием циклического избыточного кода по типу CRC (англ. Cyclical Redundancy Check), или методы обнаружения и исправления ошибок по типу ЕСС (англ. Error Correction Code). Предлагаемый в изобретении подход позволяет по сравнению с жестким разделением памяти сообщений на сегменты обеспечить следующие преимущества.
Пользователь на этапе программирования может решить, желает ли он использовать большее количество сообщений с меньшим полем данных либо меньшее количество сообщений с большим полем данных. При работе с сообщениями с варьирующимся объемом полезных данных изобретение позволяет оптимально использовать объем доступной памяти. Пользователь получает возможность использования одного и того же участка сегмента данных совместно для различных сообщений.
При реализации коммуникационного контроллера на ИС можно адаптировать объем памяти сообщений к требованиям конкретной прикладной задачи за счет коррекции емкости ЗУ, не меняя при этом остальных функций коммуникационного контроллера.
Ниже со ссылкой на фиг.4-6, а также фиг.7-9 более подробно описан процесс доступа процессора абонентского устройства к данным, т.е. процесс записи и считывания им конфигурационных данных и данных о состоянии, а также собственно данных с использованием буферной памяти 201 и 202. При этом задачей является достижение развязки в передаче данных таким образом, чтобы обеспечить целостность передаваемых данных и одновременно с этим высокую скорость их передачи. Как более подробно описано ниже со ссылками на фиг.10, 11 и 12, управление описанными процессами осуществляется диспетчером 200 сообщений.
Ниже со ссылкой на фиг.4, 5 и 6 более подробно описаны процессы записи данных процессором 102 абонентского устройства в память 300 сообщений с использованием входного буфера 201. Для этого на фиг.4 более подробно показан коммуникационный модуль 100 системы связи, причем для упрощения на чертеже изображены лишь существенные элементы этого коммуникационного модуля 100. К таким элементам относятся диспетчер 200 сообщений, отвечающий за управление процессами, а также два регистра 403 и 404 команд, которые могут размещаться либо вне диспетчера 200 сообщений в коммуникационном модуле 100, либо в самом диспетчере 200 сообщений. При этом позицией 403 обозначен относящийся к входному буферу регистр (англ. Input Buffer Command Request Register) запроса команд, а позицией 404 - относящийся к тому же буферу регистр (англ. Input Buffer Command Mask Register) маскирования команд. Запись данных в память 300 сообщений осуществляется процессором 102 абонентского устройства через расположенный между ним и этой памятью входной буфер 201. Этот входной буфер 201 выполнен разделенным, или раздвоенным, а именно из основной буферной памяти 400 и относящейся к ней теневой памяти 401. Такой подход позволяет осуществлять описанный ниже непрерывный доступ процессора 102 абонентского устройства к сообщениям, коммуникационным объектам или данным, хранящимся в памяти 300 сообщений, и при этом позволяет обеспечить целостность этих данных и увеличение скорости их передачи. Управление доступом осуществляется посредством относящихся к входному буферу регистра 403 запроса команд и регистра 404 маскирования команд. В регистре 403 числами от 0 до 31 обозначены его двоичные разряды, соответственно в рассматриваемом примере регистр 403 является 32-битным. То же самое относится и к регистру 404 с его обозначенными числами от 0 до 31 двоичными разрядами.
В соответствии с изобретением двоичные разряды 0-5, 15, 16-21 и 31 регистра 403 могут выполнять определенные функции по управлению процессами. Так, в двоичные разряды 0-5 регистра 403 может записываться идентификатор IBRH (англ. Input Buffer Request Host), используемый в качестве идентификатора сообщения. Точно так же в двоичные разряды 16-21 регистра 403 может записываться "теневой" идентификатор сообщения IBRH (англ. Input Buffer Request Shadow). В двоичный разряд 15 регистра 403 может записываться идентификатор IBSYH доступа, а в двоичный разряд 31 этого регистра - идентификатор IBSYS доступа. Можно отметить и двоичные разряды 0-2 регистра 404, в двоичные разряды 0 и 1 которого записываются характеризующие данные идентификаторы LHSH (англ. Load Header Section Host) и LDSH (англ. Load Data Section Host). Эти идентификаторы в рассматриваемом варианте представлены в простейшей форме, а именно каждый из них