Уровень техники
Настоящее изобретение относится к диспетчеру сообщений и к способу управления доступом к данным в памяти сообщений коммуникационного компонента (модуля), охарактеризованным в ограничительной части независимых пунктов формулы изобретения.
Соединение между собой блоков управления, датчиков и приводов посредством систем связи, например шинных систем обмена данными, в последние годы получает все более широкое распространение как в области автомобилестроения, так и в области машиностроения и, прежде всего, в области систем автоматизированного управления технологическими процессами. Возможность распределения функций между несколькими блоками управления позволяет обеспечивать недостижимые иными средствами преимущества.
Подобные системы принято называть "распределенными системами". Для обмена данными между различными оконечными или абонентскими устройствами все чаще используются системы связи, построенные по принципу шинных систем обмена данными. В таких системах функции управления обменом данными, равно как и функции обработки возникающих при этом ошибок, реализованы посредством протокола обмена данными. Известны такие протоколы обмена данными, как протокол "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". Помимо этого предлагаемый в изобретении подход к организации доступа к данным позволяет обеспечить целостность данных, хранящихся в памяти сообщений, а также высокую скорость передачи данных.
Иные преимущества и предпочтительные варианты осуществления изобретения рассмотрены в описании, а также указаны в отличительных признаках пунктов формулы.
Чертежи
Ниже изобретение более подробно пояснено со ссылкой на прилагаемые чертежи, на которых показано:
на фиг.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 расположено соединенное с ними соединениями 107 и 108 второе устройство 104. Между абонентским устройством 101 и первым устройством 105 расположено соединенное с ними соединениями 106 и 109 третье устройство 103, что позволяет обеспечить гибкий ввод и вывод данных, относящихся к сообщениям, прежде всего, к сообщениям, передаваемым по шине "FlexRay", в первое устройство 105, соответственно из этого первого устройства 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- und Error Management, NEM), предусмотренный редакцией 2.0 спецификации протокола "FlexRay". Позицией 212 обозначен блок управления прерываниями (англ. Interrupt Control, INT), управляющий флагами прерываний, осуществляемых по факту регистрации определенных состояний или по факту регистрации ошибок (англ. status and error interrupt flags), и контролирующий выходы 219 для передачи сигналов прерывания в процессор 102 абонентского устройства, соответственно управляющий этими выходами. Блок 212 также имеет таймер абсолютного или относительного времени, соответственно таймер для генерирования прерываний по времени, иначе называемых прерываниями по таймеру.
Сеть "FlexRay" может быть сконфигурирована для передачи по ней в процессе обмена данными, соответственно для сохранения в буфере сообщений, сообщений, соответственно коммуникационных объектов, имеющих, например, до 254 байт данных. Память 300 сообщений выполнена, прежде всего, в виде ЗУПВ для сохранения сообщений, способного сохранять, например, не более 64-х коммуникационных объектов. Все функции, относящиеся к обработке сообщений, соответственно к управлению сообщениями, реализованы в диспетчере 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 данных. В соответствии с этим на каждое сообщение в выделенной в памяти сообщений области заголовков создается подраздел НВ, предназначенный для сохранения заголовка этого сообщения, а в выделенной в памяти сообщений области данных создается подраздел DB, предназначенный для сохранения полезных данных этого сообщения. В соответствии с этим для сообщений 0, 1, …, (где 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). Эти идентификаторы в рассматриваемом варианте представлены в простейшей форме, а именно каждый из них является однобитным. В двоичный разряд 2 регистра 404 заносится идентификатор STXRH (англ. Set Transmission X Request Host) начала передачи.
Ниже описан процесс записи сообщения в память сообщений с использованием входного буфера.
Данные передаваемого сообщения записываются процессором 102 абонентского устройства во входной буфер 201. При этом процессором 102 могут записываться либо только конфигурационные данные KD заголовка сообщения в выделенную в памяти сообщений область HS заголовков, либо только содержащиеся в сообщении полезные данные D в выделенную в памяти сообщений область DS данных, либо и те, и другие данные. Подлежащие передаче, соответственно записи, части сообщения, иными словами, конфигурационные и/или полезные данные, определяются специальными характеризующими данные идентификаторами LHSH и LDSH, заносимыми в относящийся к входному буферу регистр 404 маскирования команд. При этом идентификатором LHSH (англ. Load Header Section Host) определяется, подлежат ли передаче данные KD заголовка сообщения, иными словами, конфигурационные данные, а идентификатором LDSH (англ. Load Data Section Host) - подлежат ли передаче полезные данные D сообщения. Вследствие того что входной буфер 201 имеет две части, а именно основную буферную память 400 и соответствующую теневую буферную память 401, что позволяет осуществлять попеременный доступ к данным, в буфере также выделены разделы для хранения двух дополнительных идентификаторов, относящихся к теневой буферной памяти 401 и аналогичных описанным выше идентификаторам LHSH и LDSH. Эти идентификаторы заносятся в двоичные разряды 16 и 17 регистра 404 и обозначаются как LHSS (англ. Load Header Section Shadow) и LDSS (англ. Load Data Section Shadow). Указанные идентификаторы управляют передачей данных применительно к теневой буферной памяти 401.
В случае когда установлен стартовый бит, иными словами, в случае когда в двоичный разряд 2 относящегося к входному буферу регистра 404 маскирования команд занесен идентификатор STXRH (англ. Set Transmission X Request Host) начала передачи, после успешного завершения передачи в память 300 сообщений соответствующих конфигурационных и/или полезных данных автоматически генерируется запрос на передачу соответствующего коммуникационного объекта. Иными словами, идентификатор STXRH начала передачи управляет автоматической передачей подлежащего передаче коммуникационного объекта и, прежде всего, непосредственно запускает процесс такой передачи.
Аналогичный идентификатор начала передачи, именуемый STXRS (англ. Set Transmission X Request Shadow), предусмотрен и для теневой буферной памяти, где он заносится, например, в двоичный разряд 18 относящегося к входному буферу регистра 404 маскирования команд, и в рассматриваемом варианте представляет собой простейший однобитный идентификатор. Идентификатор STXRS выполняет ту же функцию, что и описанный выше идентификатор STXRH, но применительно к теневой буферной памяти 401.
При записи процессором 102 абонентского устройства идентификатора сообщения, прежде всего, номера коммуникационного объекта в памяти 300 сообщений, записи в который подлежат содержащиеся во входном буфере 201 данные, в двоичные разряды 0-5 относящегося к входному буферу регистра 403 запроса команд, а именно после идентификатора IBRH сообщения, части входного буфера 201, а именно основная буферная память 400 и соответствующая теневая буферная память 401, "меняются местами", что обозначено на чертеже полукруглыми стрелками, иными словами, процессор 102 абонентского устройства и память 300 сообщений осуществляют доступ к основной буферной памяти как к теневой, и наоборот. При этом, например, запускается и передача данных в память 300 сообщений. Данные передаются в эту память 300 из теневой памяти 401. Одновременно с этим меняются местами подразделы IBRH и IBRS регистра. Аналогичным образом LHSH и LDSH меняются на LHSS и LDSS. Аналогичным образом меняются местами и STXRH с STXRS. При этом идентификатор IBRS является идентификатором сообщения, иными словами, определяет номер коммуникационного объекта для целей передачи, т.е. определяет, в какой из подразделов памяти сообщений данные (конфигурационные KD и/или полезные D) будут переданы из теневой буферной памяти 401 последними. Идентификатор (в рассматриваемом конкретном варианте тоже являющийся однобитным) IBSYS (англ. Input Buffer Busy Shadow), заносимый в двоичный разряд 31 относящегося к входному буферу регистра 403 запроса команд, указывает на то, запущен ли на конкретный момент времени процесс передачи данных с использованием теневой буферной памяти 401 или нет. Так, например, IBSYS=1 свидетельствует о том, что в текущий момент времени идет передача данных из теневой буферной памяти 401, a IBSYS=0 свидетельствует об отсутствии в текущий момент времени такой передачи. Бит идентификатора IBSYS устанавливается, например, в процессе занесения идентификатора IBRH сообщения в двоичные разряды 0-5 регистра 403 и указывает на запущенный процесс передачи данных между теневой буферной памятью 401 и памятью 300 сообщений. После окончания указанной передачи данных в память 300 сообщений бит идентификатора IBSYS сбрасывается, иными словами, возвращается в исходное состояние.
Непосредственно во время передачи данных из теневой буферной памяти 401 процессором 102 абонентского устройства может осуществляться запись следующего подлежащего передаче сообщения во входной буфер, соответственно в его основную буферную память 400. На запущенный процесс такой записи может указывать дополнительный идентификатор IBSYH (англ. Input Buffer Busy Host) доступа, заносимый, например, в двоичный разряд 15 регистра 403. Этот идентификатор записывается в относящийся к входному буферу регистр 403 запроса команд при занесении процессором 102 абонентского устройства идентификатора IBRH сообщения в двоичные разряды 0-5 регистра 403 во время передачи данных между теневой буферной памятью 401 и памятью 300 сообщений, иными словами, при IBSYS=1. После завершения текущего процесса передачи данных запускается запрошенный процесс передачи данных (см. приведенное выше описание идентификатора STXRH), а бит IBSYH сбрасывается. Бит IBSYS остается установленным все время, пока идет передача данных в память сообщений, и указывает на то, что эта передача еще не завершена. Все упомянутые в приведенном выше описании биты, иными словами, однобитные идентификаторы, могут быть и многобитными. Однако однобитные идентификаторы являются предпочтительными по соображениям экономии памяти и упрощения работы.
Описанный выше подход позволяет процессору 102 абонентского устройства осуществлять непрерывную передачу данных в расположенные в памяти сообщений коммуникационные объекты, включающие подразделы НВ области заголовков и подразделы DB области данных, при условии, что скорость доступа процессора 102 к входному буферу меньше или равна внутренней скорости передачи данных компонента сопряжения шины "FlexRay", иными словами, коммуникационного компонента 100.
Ниже со ссылкой на фиг.7, 8 и 9 более подробно описаны процессы считывания данных процессором 102 абонентского устройства из памяти 300 сообщений с использованием выходного буфера 202. Для этого на фиг.7 еще раз показан коммуникационный компонент 100, причем для упрощения изображены лишь существенные элементы этого компонента 100. К таким элементам относятся диспетчер 200 сообщений, отвечающий за управление процессами, а также два регистра 703 и 704 команд, которые могут размещаться либо вне диспетчера 200 сообщений в коммуникационном компоненте 100, либо в самом диспетчере 200 сообщений. При этом позицией 703 обозначен относящийся к выходному буферу регистр (англ. Output Buffer Command Request Register) запроса команд, а позицией 704 - относящийся к тому же буферу регистр (англ. Output Buffer Command Mask Register) маскирования команд. Считывание данных из памяти 300 сообщений осуществляется процессором 102 абонентского устройства через промежуточный выходной буфер 202. Этот выходной буфер 202 также выполнен сдвоенным, иными словами, состоящим из двух частей, а именно из основной буферной памяти 701 и относящейся к последней теневой буферной памяти 700. Такой подход позволяет осуществлять описанный ниже непрерывный доступ процессора 102 абонентского устройства к хранящимся в памяти 300 сообщений сообщениям, соответственно к коммуникационным объектам, соответственно к данным, и при этом позволяет обеспечить целостность этих данных и увеличение скорости их передачи в обратном направлении - иными словами, из памяти в процессор абонентского устройства. Управление доступом осуществляется посредством относящихся к выходному буферу регистра 703 запроса команд и регистра 704 маскирования команд. И в регистре 703 числами от 0 до 31 обозначены его двоичные разряды, соответственно в рассматриваемом примере регистр 703 является 32-битным. То же самое относится и к регистру 704 с его обозначенными числами от 0 до 31 двоичными разрядами.
В соответствии с изобретением двоичные разряды 0-5, 8 и 9, 15, а также 16-21 регистра 703 могут выполнять определенные функции по управлению процессами считывания данных. Так, в двоичные разряды 0-5 регистра 703 может заноситься служащий для идентификации сообщения теневой идентификатор OBRS (англ. Output Buffer Request Shadow). При этом в двоичные разряды 16-21 регистра 703 может заноситься служащий для идентификации сообщения идентификатор OBRH (англ. Output Buffer Request Host). Для управления доступом в двоичный разряд 15 регистра 703 может заноситься идентификатор OBSYS (англ. Output Buffer Busy Shadow). Можно отметить и двоичные разряды 0 и 1 относящегося к выходному буферу регистра 704 маскирования команд, в которые могут заноситься соответственно характеризующие данные идентификаторы RDSS (англ. Read Data Section Shadow) и RHSS (англ. Read Header Section Shadow). Могут быть предусмотрены и дополнительные идентификаторы - например, RDSH (англ. Read Data Section Host) и RHSH (англ. Read Header Section Host), заносимые, например, в двоичные разряды 16 и 17 соответственно. Эти идентификаторы в рассматриваемом варианте представлены для примера имеющими простейшую форму, а именно каждый из них является однобитным. В двоичный разряд 9 регистра 703 заносится идентификатор REQ начала передачи. Помимо этого предусмотрен идентификатор VIEW переключения, который заносится, например, в двоичный разряд 8 регистра 703.
Процессор 102 абонентского устройства запрашивает данные коммуникационного объекта из памяти 300 сообщений путем занесения идентификатора соответствующего требуемого сообщения, прежде всего, номера требуемого коммуникационного объекта, после идентификатора OBRS в двоичные разряды 0-5 регистра 703. И в процессе считывания, как и при записи, процессор абонентского устройства может считывать либо только данные KD заголовка сообщения, соответственно конфигурационные данные и данные о состоянии, из соответствующего подраздела области заголовков, либо только полезные данные D сообщения из соответствующего подраздела области данных, либо и те, и другие данные. То, какая часть данных, а именно заголовок и/или полезные данные, подлежит считыванию, определяется по аналогии с записью данных идентификаторами RHSS и RDSS. Иными словами, идентификатор RHSS указывает на то, что считыванию подлежат данные заголовка сообщения, а RDSS - на то, что считыванию подлежат содержащиеся в сообщении полезные данные.
Идентификатор начала передачи служит для запуска процесса передачи данных из памяти сообщений в теневую буферную память 700. То есть в простейшем случае использования однобитных идентификаторов путем установки бита REQ в двоичный разряд 9 относящегося к выходному буферу регистра 703 запроса команд запускается процесс передачи данных из памяти 300 сообщений в теневую буферную память 700. На неоконченный процесс такой записи указывает дополнительный идентификатор доступа, в качестве которого в рассматриваемом простейшем случае используется однобитный идентификатор OBSYS, заносимый в регистр 703. Во избежание взаимных столкновений в предпочтительном варианте осуществления изобретения бит REQ может устанавливаться только при неустановленном бите OBSYS, соответственно только при условии отсутствия неоконченных процессов передачи. В этом случае затем происходит передача сообщений между памятью 300 сообщений и теневой памятью 700. Процесс такой передачи может либо осуществляться/управляться по аналогии с рассмотренным выше со ссылкой на фиг.4, 5 и 6 процессом записи (с дополняющим использованием регистров), либо осуществляться иначе, с использованием дополнительного идентификатора, а именно идентификатора VIEW переключения, заносимого в двоичный разряд 8 регистра 703. Таким образом, после завершения процесса передачи бит OBSYS сбрасывается, и путем установки бита VIEW в относящийся к выходному буферу регистр 703 основная буферная память 701 и соответствующая теневая буферная память 700 меняются местами, соответственно к основной буферной памяти начинают обращаться как к буферной и наоборот, после чего процессор 102 абонентского устройства может считать из памяти сообщений требуемый коммуникационный объект, иными словами, может считать из основной буферной памяти 701 соответствующее сообщение. При этом, по аналогии с описанным со ссылкой на фиг.4-6 процессом записи, ячейки OBRS и OBRH регистра меняются местами. Аналогичным образом RHSS и RDSS меняются на RHSH и RDSH. В качестве защитной меры может быть предусмотрена возможность установки бита VIEW только при неустановленном бите OBSYS, иными словами, при отсутствии неоконченных процессов передачи.
В соответствии с этим считывание данных из памяти 300 сообщений осуществляется процессором 102 абонентского устройства через промежуточный выходной буфер 202. Этот выходной буфер, как и входной буфер, также выполнен сдвоенным, иными словами, имеющим две части, что позволяет обеспечить возможность непрерывного доступа процессора 102 абонентского устройства к сохраненным в памяти 300 сообщений коммуникационным объектам. И в рассматриваемом случае предлагаемый в изобретении подход позволяет обеспечить целостность данных и ускорить их передачу.
Применение предлагаемых в изобретении входного и выходного буферов позволяет обеспечить бесперебойный доступ процессора абонентского устройства к памяти сообщений несмотря на наличие у модуля внутренних задержек.
Для обеспечения вышеуказанной целостности данных передача данных, прежде всего, осуществляемая в коммуникационном компоненте 100, производится под управлением диспетчера 200 сообщений. Этот диспетчер 200 сообщений показан на фиг.10. Диспетчер сообщений по своей функциональности может быть отображен в виде комбинации конечных автоматов (англ. Finite-State-Machine, FSM). При этом количество таких конечных автоматов в соответствии с изобретением не может быть меньше трех и предпочтительно равно четырем. Первый конечный автомат (на чертеже IOBF-FSM, от англ. Input/Output Buffer State Machine) обозначен на чертеже позицией 501. Этот конечный автомат в зависимости от направления передачи данных по отношению к входному или выходному буферам может разделяться на два конечных автомата - входной автомат IBF-FSM (англ. Input Buffer FSM) и выходной автомат OBF-FSM (англ. Output Buffer FSM), причем максимально представимое количество автоматов равно пяти (IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM и AFSM). Однако в предпочтительном варианте осуществления изобретения предусмотрен один общий входной/выходной автомат IOBF-FSM. Один по меньшей мере второй конечный автомат в рассматриваемом конкретном варианте осуществления изобретения разделен на два элемента 502 и 503 и описанным выше со ссылкой на фиг.2 образом работает с каналами А и В передачи данных, соответственно относится к буферам 205 и 206. В другом варианте один конечный автомат может работать с обоими каналами А и В, а в предпочтительном варианте предусмотрен один конечный автомат TBF1-FSM (от англ. Transient Buffer I (206, RAM A) State Machine) для канала А, обозначенный на чертеже позицией 502, и один конечный автомат TBF2-FSM (от англ. Transient Buffer 2 (205, RAM B) State Machine) для канала В, обозначенный на чертеже позицией 503.
Для управления доступом трех конечных автоматов 501-503 к памяти сообщений в предпочтительном варианте осуществления изобретения предусмотрен конечный автомат-арбитр AFSM, обозначенный на чертеже позицией 500. Данные (KD и/или D) передаются с непосредственной или опосредованной синхронизацией по тактовому сигналу, выдаваемому, например, генератором, управляемым напряжением (ГУН), кварцевым генератором тактовой частоты или другими устройствами и обрабатываемому коммуникационным компонентом. Тактовый сигнал Т может либо формироваться внутри коммуникационного компонента, либо поступать извне, например по шине передачи данных. Конечный автомат-арбитр AFSM 500 с чередованием, предпочтительно каждый раз на длительность одного периода Т тактовых импульсов, предоставляет одному из трех остальных конечных автоматов 501-503 доступ к памяти сообщений. Иными словами, свободное время доступа к памяти сообщений распределяется конечным автоматом-арбитром между отдельными конечными автоматами 501, 502 и 503 с учетом поступающих от последних запросов на предоставление им такого доступа. В случае если такой запрос поступает лишь от одного конечного автомата, он получает доступ к памяти сообщений на 100% свободного времени доступа, т.е. на длительность периодов Т всех тактовых импульсов. В случае же поступления запросов сразу от двух конечных автоматов каждый из них получает доступ на 50% времени. При поступлении запросов сразу от трех конечных автоматов каждый из них получает доступ на 1/3 времени. Такой подход позволяет оптимально использовать доступную полосу пропускания.
Первый конечный автомат IOBF-FSM, обозначенный на чертеже позицией 501, может при необходимости выполнять следующие функции:
- передача данных из входного буфера 201 в выбранный коммуникационный объект в памяти 300 сообщений,
- передача данных из выбранного коммуникационного объекта в памяти 300 сообщений в выходной буфер 202.
Конечный автомат 502 для работы с каналом А передачи данных, иными словами, конечный автомат TBF1-FSM, выполняет следующие функции:
- передача данных из выбранного коммуникационного объекта в памяти 300 сообщений в буфер 206 канала А,
- передача данных из буфера 206 в выбранный коммуникационный объект в памяти 300 сообщений,
- поиск подходящего коммуникационного объекта в памяти сообщений, причем при получении сообщения по каналу А с использованием фильтрации по критерию допустимости производится поиск коммуникационного объекта (во входном буфере), пригодного для сохранения этого сообщения, а при передаче - поиск следующего подлежащего передаче по каналу А коммуникационного объекта (в выходном буфере).
Аналогичным образом функционирует и конечный автомат TBF2-FSM, иными словами, конечный автомат для работы с каналом B, обозначенный на чертеже позицией 503. Этот конечный автомат обеспечивает передачу данных в обоих направлениях между выбранным коммуникационным объектом в памяти 300 сообщений и буфером 205 канала В. Этот конечный автомат тоже, по аналогии с конечным автоматом TBF1-FSM, способен осуществлять поиск подходящего коммуникационного объекта в памяти сообщений, причем при получении сообщения по каналу В с использованием фильтрации по критерию допустимости производится поиск коммуникационного объекта (во входном буфере), пригодного для сохранения этого сообщения, а при передаче - поиск следующего подлежащего передаче по каналу В коммуникационного объекта (в выходном буфере).
На фиг.11 еще раз изображены процессы и пути передачи данных. Передача данных между отдельными элементами осуществляется под управлением трех конечных автоматов 501-503. При этом позицией 102 опять обозначен процессор абонентского устройства, позицией 201 - входной буфер, а позицией 202 - выходной буфер. Позицией 300 обозначена память сообщений, а оба буфера, относящихся к каналам А и В, обозначены позициями 206 и 205 соответственно. На чертеже также показаны компоненты 207 и 208 сопряжения. Первый конечный автомат IOBF-FSM, обозначенный позицией 501, управляет передачей данных в направлениях Z1A и Z1B, иными словами, передачей данных из входного буфера 201 в память 300 сообщений и из памяти 300 сообщений в выходной буфер 202. При этом обмен данных осуществляется по 32-битным или имеющим любую иную разрядность шинам данных. То же самое относится к передаче данных в направлении Z2 между памятью сообщений и буфером 206. Эта передача данных осуществляется под контролем конечного автомата TBF1-FSM, обозначенного на чертеже позицией 502 и отвечающего за работу с каналом А. Передача данных в направлении Z3 между памятью 300 сообщений и буфером 205 осуществляется под контролем конечного автомата TBF2-FSM, обозначенного на чертеже позицией 503. И в этом случае обмен данных осуществляется по 32-битным или имеющим любую иную разрядность шинам данных. Обычно передача целого коммуникационного объекта в указанных направлениях, соответственно по указанным путям передачи данных, занимает несколько периодов Т тактовых импульсов. По этой причине распределение времени передачи, соответственно используемых для передачи периодов Т тактовых импульсов, осуществляется конечным автоматом-арбитром AFSM, обозначенным на чертеже позицией 500. Таким образом, на фиг.11 изображены пути передачи данных между элементами памяти, работающими под управлением диспетчера сообщений. Для обеспечения целостности сохраненных в памяти сообщений коммуникационных объектов передача данных предпочтительно осуществляется в каждый конкретный момент времени лишь по одному из показанных на чертеже путей Z1A и Z1B, а также Z2 и Z3 передачи данных.
На фиг.12 в качестве примера показан вариант осуществления изобретения, в котором доступные периоды Т системного тактового сигнала распределяются конечным автоматом-арбитром AFSM, обозначенным на чертеже позицией 500, между тремя конечными автоматами, каждый из которых может выдавать запросы на доступ к памяти сообщений. На стадии 1 такие запросы выдаются конечными автоматами 501 и 502, соответственно все доступное время доступа делится между ними пополам. Применительно к периодам тактового сигнала это означает, что на стадии 1 конечный автомат 501 получает доступ к памяти сообщений на длительность периодов Т1 и Т3, а конечный автомат 502 - на длительность периодов Т2 и Т4 тактового сигнала. В течение стадии 2 такой запрос поступает только от конечного автомата 501, соответственно он получает доступ к памяти сообщений в течение всей этой стадии, т.е. на длительность всех относящихся к ней периодов Т5-Т7 тактового сигнала. На стадии 3 запросы поступают ото всех конечных автоматов 501-503, соответственно каждому из них выделяется треть от всего доступного времени доступа. При этом конечный автомат-арбитр AFSM распределяет время доступа, например, таким образом, что на длительность периодов Т8 и Т11 тактового сигнала доступ предоставляется конечному автомату 501, на длительность периодов Т9 и Т12 - конечному автомату 502 и на длительность периодов Т10 и Т13 - конечному автомату 503. На заключительной стадии 4 доступ осуществляется двумя конечными автоматами 502 и 503 по обоим каналам А и В коммуникационного компонента, причем время доступа распределяется таким образом, что на длительность периодов Т14 и Т16 тактового сигнала доступ предоставляется конечному автомату 502, а на длительность периодов Т15 и Т17 - конечному автомату 503.
В соответствии с этим конечный автомат-арбитр AFSM, обозначенный на чертеже позицией 500, в случае когда более чем один конечный автомат выдает запрос на получение им доступа к памяти 300 сообщений, распределяет доступное время доступа между такими выдавшими запрос конечными автоматами попеременно, целыми периодами тактового сигнала. Такой подход позволяет обеспечить целостность хранящихся в памяти сообщений коммуникационных объектов, т.е. позволяет обеспечить целостность данных. В случае когда, например, процессору 102 абонентского устройства требуется считать с использованием выходного буфера 202 коммуникационный объект непосредственно во время записи в этот объект принимаемого сообщения, то, в зависимости от приоритета, происходит считывание либо старого, либо обновленного содержимого коммуникационного объекта, причем ни в том, ни в другом случае не происходит конфликта, связанного с одновременным доступом к этому содержащемуся в памяти сообщений коммуникационному объекту на считывание и на запись.
Предлагаемый в изобретении способ позволяет процессору абонентского устройства, не прерывая работы, считывать или записывать любой коммуникационный объект в памяти сообщений, причем на время чтения или записи доступ к этому объекту по любому из двух каналов шины "FlexRay" не блокируется. Одновременно с этим за счет потактового распределения прав доступа обеспечивается целостность данных, сохраненных в памяти сообщений, а также повышение скорости передачи данных, достигаемое в том числе и за счет использования всей доступной полосы пропускания.
Изобретение относится к управлению процессом передачи данных. Техническим результатом является обеспечение целостности данных и оптимизации скорости передачи. В заявке описаны способ управления доступом к данным памяти сообщений и коммуникационный компонент (100), имеющий диспетчер (200) сообщений и память (300) сообщений, при доступе к которой из нее считывают или в нее записывают данные и которая соединена с первой буферной памятью (205, 206) и со второй буферной памятью (201, 202), причем вышеуказанный доступ к данным осуществляется через эту первую или эту вторую буферную память, и причем в диспетчере (200) сообщений предусмотрен по меньшей мере один первый конечный автомат (502, 503), управляющий доступом к памяти сообщений через первую буферную память (205, 206), и по меньшей мере один второй конечный автомат (501), управляющий доступом к памяти сообщений через вторую буферную память (201, 202), причем по меньшей мере один первый конечный автомат и второй конечный автомат формируют запросы на предоставление доступа к данным памяти сообщений, и в зависимости от этих запросов также предусмотренный третий конечный автомат предоставляет по меньшей мере одному первому и второму конечным автоматам такой доступ. 2 н. и 2 з.п. ф-лы, 12 ил.
1. Коммуникационный компонент (100), имеющий диспетчер (200) сообщений и память (300) сообщений, при доступе к которой в нее вводят или из нее выводят данные, причем память (300) сообщений связана с первой буферной памятью (205, 206) и со второй буферной памятью (201, 202), и доступ к данным осуществляется через первую или вторую буферную память, причем первая буферная память (205, 206) расположена между памятью (300) сообщений и компонентом (207, 208) сопряжения с каналом (101) связи, а вторая буферная память (201, 202) расположена между памятью (300) сообщений и компонентом (203, 204) сопряжения с процессором (102) абонентского устройства, отличающийся тем, что в диспетчере (200) сообщений
предусмотрен по меньшей мере один первый конечный автомат (502, 503), управляющий доступом к памяти сообщений через первую буферную память (205, 206),
предусмотрен по меньшей мере один второй конечный автомат (501), управляющий доступом к памяти сообщений через вторую буферную память (201, 202), причем по меньшей мере одним первым конечным автоматом и вторым конечным автоматом формируются запросы на предоставление доступа к памяти, и
предусмотрен третий конечный автомат (500), предоставляющий по меньшей мере одному первому конечному автомату и второму конечному автомату доступ к памяти сообщений в зависимости от их запросов на предоставление доступа к памяти,
предусмотрены средства синхронизации, позволяющие передавать данные с синхронизацией по имеющим заданный период (Т) тактовым импульсам, причем третий конечный автомат (500) выделяет каждому первому конечному автомату (502, 503) и второму конечному автомату (501) по очереди периоды (Т1-Т17) тактовых импульсов в зависимости от их запросов на доступ к данным,
предусмотрены средства для осуществляемого посредством третьего конечного автомата (500) равномерного распределения всего времени доступа в зависимости от количества одновременно поступивших запросов на доступ к данным в соответствии с этим количеством, причем на один конечный автомат всегда допускается одновременно только один запрос на доступ к данным, и
предусмотрены средства, позволяющие до завершения передачи коммуникационного объекта в первом направлении передачи между второй буферной памятью (201, 202) и памятью (300) сообщений блокировать вторую буферную память (201, 202) для других обращений в первом направлении передачи.
2. Коммуникационный компонент (100) по п.1, отличающийся тем, что данные передаются через первую буферную память (205, 206) по двум путям передачи данных, каждым из которых поддерживается передача данных в обоих направлениях, причем первая буферная память (205, 206) содержит первый буфер (206) для первого пути передачи данных и второй буфер (205) для второго пути передачи данных, и на каждый путь передачи данных предусмотрен один первый конечный автомат (502, 503), причем каждый из двух первых конечных автоматов управляет доступом к памяти сообщений через соответствующий буфер.
3. Способ управления доступом к данным в памяти (300) сообщений коммуникационного компонента посредством диспетчера (200) сообщений, предусматривающий при доступе к данным ввод данных в память (300) сообщений или вывод данных из нее, причем память сообщений связана с первой буферной памятью (205, 206) и со второй буферной памятью (201, 202), и доступ к данным осуществляют через первую или вторую буферную память, причем первая буферная память (205, 206) расположена между памятью (300) сообщений и компонентом (207, 208) сопряжения с каналом (101) связи, а вторая буферная память (201, 202) расположена между памятью (300) сообщений и компонентом (203, 204) сопряжения с процессором (102) абонентского устройства, отличающийся тем, что
первый конечный автомат диспетчера (200) сообщений управляет доступом к памяти сообщений через первую буферную память (205, 206) по первому пути доступа к данным,
второй конечный автомат диспетчера (200) сообщений управляет доступом к памяти сообщений через вторую буферную память (201, 202) по второму пути доступа к данным, причем в одно и то же время доступ к данным осуществляют только по одному из указанных путей доступа,
передачу данных ведут с синхронизацией по имеющим заданный период (Т) тактовым импульсам, причем третий конечный автомат (500) выделяет каждому первому конечному автомату (502, 503) и второму конечному автомату (501) по очереди периоды (Т1-Т17) тактовых импульсов в зависимости от их запросов на доступ к данным,
все время доступа равномерно распределяют третьим конечным автоматом (500) в зависимости от количества одновременно поступивших запросов на доступ к данным в соответствии с этим количеством, причем на один конечный автомат всегда допускается одновременно только один запрос на доступ к данным, и
до завершения передачи коммуникационного объекта в первом направлении передачи между второй буферной памятью (201, 202) и памятью (300) сообщений блокируют вторую буферную память (201, 202) для других обращений в первом направлении передачи.
4. Способ по п.3, отличающийся тем, что данные передают через первую буферную память (205, 206) по двум путям передачи данных, каждый из которых поддерживает передачу данных в обоих направлениях, первая буферная память (205, 206) содержит первый буфер (206) для первого пути передачи данных и второй буфер (205) для второго пути передачи данных, и на каждый путь передачи данных предусмотрен один первый конечный автомат (502, 503), причем каждый из двух первых конечных автоматов управляет доступом к памяти сообщений через соответствующий буфер.
US 5983327 А, 09.11.1999 | |||
US 5471588 А, 28.11.1995 | |||
RU 2004119054 А, 01.01.2000. |
Авторы
Даты
2010-05-20—Публикация
2005-06-29—Подача