способ передачи данных в сообщениях по линии связи системы связи, а также коммуникационный модуль, абонентское устройство системы связи и система связи для осуществления этого способа
Классы МПК: | G06F12/02 адресация или местонахождение в памяти; переадресация |
Автор(ы): | ХОРСТ Кристиан (DE), БАЙЛЕР Франц (DE) |
Патентообладатель(и): | РОБЕРТ БОШ ГМБХ (DE) |
Приоритеты: |
подача заявки:
2006-01-26 публикация патента:
10.10.2010 |
Настоящее изобретение относится к способу передачи данных в сообщениях по линии связи системы связи, а также к коммуникационному модулю системы связи, абонентскому устройству системы связи и системе связи, предназначенным для осуществления этого способа. Техническим результатом является организация поискового просмотра памяти сообщений таким образом, чтобы оптимальным образом обеспечить поддержку передачи сообщений и, в частности, гарантировать работоспособность системы при использовании памяти сообщений большей емкости. Достижение технического результата обеспечивается тем, что сообщения циклически передаются в задаваемых окнах по линии связи, причем сообщения, подлежащие отправке и отправленные по линии связи, сначала временно сохраняют в памяти сообщений коммуникационного модуля и сообщение, подлежащее отправке или приему в текущем окне, извлекают из памяти сообщений и передают или соответственно принимают и сохраняют в памяти сообщений. 4 н. и 21 з.п. ф-лы, 15 ил.
Формула изобретения
1. Способ передачи данных в сообщениях, циклически передаваемых по линии (101) связи системы связи в задаваемых окнах (ZF), при осуществлении которого подлежащие отправке и отправленные по линии (101) связи сообщения сначала временно сохраняют в памяти (300) сообщений коммуникационного модуля (100), причем сообщение, подлежащее отправке или приему в текущем окне, извлекают из памяти (300) сообщений и отправляют или, соответственно, принимают и сохраняют в памяти (300) сообщений, отличающийся тем, что для определения положений сообщений в памяти (300) сообщений ее через регулярные интервалы предварительно просматривают для нескольких последующих окон (ZF), и в качестве результата поискового просмотра в соотнесенном с памятью (300) сообщений промежуточном запоминающем устройстве (600) сохраняют положения сообщений, подлежащих отправке или приему в этих нескольких последующих окнах (ZF).
2. Способ по п.1, отличающийся тем, что в рамках передачи данных сообщение, подлежащее отправке по системе связи в текущем окне (ZF), считывают из указанного в промежуточном запоминающем устройстве (600) для этого окна (ZF) положения в памяти (300) сообщений и передают по линии (101) связи, а сообщение, переданное по линии (101) связи в текущем окне (ZF), сохраняют в памяти (300) сообщений в положении, указанном в промежуточном запоминающем устройстве (600) для этого окна (ZF).
3. Способ по п.1, отличающийся тем, что передачу данных для текущего окна (ZF) и нескольких следующих за ним окон (ZF8-ZF11), для которых положения сообщений в памяти (300) сообщений уже сохранены в промежуточном запоминающем устройстве (600), осуществляют по достижении соответствующих окон (ZF8-ZF11) одновременно с поисковым просмотром (SDL3) для окна (ZF), следующего за последним окном (ZF11), и нескольких последующих окон (ZF12-ZF15).
4. Способ по п.1, отличающийся тем, что число нескольких окон, для которых выполняют поисковый просмотр (SDL), равно числу окон для передачи (DAT) данных.
5. Способ по п.1, отличающийся тем, что в сообщениях, сохраняемых в памяти (300) сообщений, содержатся первые данные (KD0, KD1, KDk) с первым объемом данных и вторые данные (D0, D1, Dk) со вторым объемом данных, причем первые данные (KD0, KD1, KDk) для каждого сообщения сохраняют в одном из участков (НВО, НВ1, HBk) заголовков сегмента (HS) заголовков памяти (300) сообщений, а вторые данные (D0, D1, Dk) для каждого сообщения сохраняют в одном из участков (DBO, DB1, DBk) данных сегмента (DS) данных.
6. Способ по п.5, отличающийся тем, что в участке (НВО, НВ1, HBk) заголовка памяти (300) сообщений для каждого сообщения сохраняют идентификатор, идентифицирующий соответствующее сообщение и позволяющий отнести это сообщение к определенному коммуникационному циклу (KZY), определенному окну (ZF) в пределах этого цикла (KZY) и к одному каналу (СН А, СН В) или к обоим каналам (СН А, СН В).
7. Способ по одному из пп.1-6, отличающийся тем, что для каждого из сообщений, рассмотренных во время поискового просмотра (SDL) и подлежащих отправке или приему в одном из нескольких последующих окон (ZF), в промежуточном запоминающем устройстве (600) предусмотрены два поля ("указатель", "состояние"), причем в первом поле ("указатель") сохраняют указатель соответствующего положения сообщения, сохраненного в памяти (300) сообщений, а во втором поле ("состояние") сохраняют состояние сообщения, сохраненного в памяти (300) сообщений.
8. Способ по п.7, отличающийся тем, что указатель указывает на сохраненные в одном из участков (НВ0, НВ1, HBk) заголовков сегмента (HS) заголовков первые данные (KD0, KD1, KDk) сообщения, сохраненного в памяти (300) сообщений.
9. Способ по п.8, отличающийся тем, что в качестве состояния сообщения, сохраненного в памяти (300) сообщений, в промежуточном запоминающем устройстве (600) хранится информация о том, имеется ли вообще какое-либо сообщение, которое в рассматриваемом окне (ZF) подлежит приему или отправке ('empty'), и/или подлежит ли сообщение отправке ('tx-buf') или приему ('rх-buf').
10. Способ по одному из пп.3-6, 8, 9, отличающийся тем, что промежуточное запоминающее устройство (600) разделено на части, причем в первой части (601-604) промежуточного запоминающего устройства (600) для передачи данных сохранены положения сообщений для текущего окна (ZF) и нескольких последующих окон (ZF8-ZF11), для которых сообщения уже были сохранены в памяти (300) сообщений, а во второй части (601а-604а) промежуточного запоминающего устройства (600) для поискового просмотра (SDL) сохраняют положения сообщений для окна (ZF), следующего за последним окном (ZF11) передачи данных, и нескольких последующих окон (ZF12-ZF15).
11. Способ по п.7, отличающийся тем, что промежуточное запоминающее устройство (600) разделено на части, причем в первой части (601-604) промежуточного запоминающего устройства (600) для передачи данных сохранены положения сообщений для текущего окна (ZF) и нескольких последующих окон (ZF8-ZF11), для которых сообщения уже были сохранены в памяти (300) сообщений, а во второй части (601а-604а) промежуточного запоминающего устройства (600) для поискового просмотра (SDL) сохраняют положения сообщений для окна (ZF), следующего за последним окном (ZF11) передачи данных, и
нескольких последующих окон (ZF12-ZF15).
12. Способ по п.1, отличающийся тем, что для определения положений сообщений в памяти (300) сообщений ее через регулярные интервалы предварительно просматривают для четырех последующих окон (ZF) и в качестве результата поискового просмотра в промежуточном запоминающем устройстве (600) сохраняют положения сообщений, подлежащих отправке или приему в четырех последующих окнах (ZF).
13. Способ по одному из пп.1-6, 8, 9, 11, 12, отличающийся тем, что в рамках поискового просмотра память (300) сообщений просматривают для нескольких последующих окон (ZF) по одному или нескольким из следующих критериев:
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого канала (СН А, СН В) передачи;
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого коммуникационного цикла (KZY);
определение того, хранятся ли в памяти (300) сообщений сообщения для нескольких последующих окон (ZF), и
определение того, есть ли среди выявленных сообщений подлежащие отправке или приему.
14. Способ по п.7, отличающийся тем, что в рамках поискового просмотра память (300) сообщений просматривают для нескольких последующих окон (ZF) по одному или нескольким из следующих критериев:
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого канала (СН А, СН В) передачи;
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого коммуникационного цикла (KZY);
определение того, хранятся ли в памяти (300) сообщений сообщения для нескольких последующих окон (ZF), и
определение того, есть ли среди выявленных сообщений подлежащие отправке или приему.
15. Способ по п.10, отличающийся тем, что в рамках поискового просмотра память (300) сообщений просматривают для нескольких последующих окон (ZF) по одному или нескольким из следующих критериев:
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого канала (СН А, СН В) передачи;
определение того, хранятся ли в памяти (300) сообщений сообщения для рассматриваемого коммуникационного цикла (KZY);
определение того, хранятся ли в памяти (300) сообщений сообщения для нескольких последующих окон (ZF), и
определение того, есть ли среди выявленных сообщений подлежащие отправке или приему.
16. Коммуникационный модуль (100), расположенный в системе связи, рассчитанной на циклическую передачу сообщений, в задаваемых окнах, между линией (101) связи и абонентским устройством, и имеющий память (300) сообщений для временного хранения сообщений, которые подлежат отправке из абонентского устройства по линии (101) связи или приняты для абонентского устройства по линии (101) связи, отличающийся тем, что коммуникационный модуль (100) для определения положений сообщений в памяти (300) сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти (300) сообщений для нескольких последующих окон, соотнесенное с памятью (300) сообщений промежуточное запоминающее устройство, а также средства сохранения в промежуточном запоминающем устройстве (600) положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах, в качестве результата поискового просмотра.
17. Коммуникационный модуль (100) по п.16, отличающийся тем, что средства поискового просмотра памяти (300) сообщений и средства сохранения положений выявленных сообщений в промежуточном запоминающем устройстве (600) выполнены в виде конечного автомата (504).
18. Коммуникационный модуль (100) по п.16, отличающийся тем, что коммуникационный модуль (100) выполнен как коммуникационный модуль для сети FlexRay, предназначенный для приема, посылки и временного хранения сообщений, передаваемых в соответствии со спецификацией протокола FlexRay.
19. Коммуникационный модуль (100) по п.17, отличающийся тем, что коммуникационный модуль (100) выполнен как коммуникационный модуль для сети FlexRay, предназначенный для приема, посылки и временного хранения сообщений, передаваемых в соответствии со спецификацией протокола FlexRay.
20. Коммуникационный модуль (100) по одному из пп.16-19, отличающийся тем, что средства поискового просмотра памяти (300) сообщений и средства сохранения положений выявленных сообщений в промежуточном запоминающем устройстве (600) выполнены с возможностью осуществления способа по одному из пп.2-15.
21. Абонентское устройство (102) системы связи, включающей в себя это абонентское устройство (102), по меньшей мере одно другое абонентское устройство и линию (101) связи, к которой подключены абонентские устройства (102), и рассчитанной на циклическую передачу сообщений в задаваемых окнах, причем между линией (101) связи и абонентским устройством (102) расположен коммуникационный модуль (100), имеющий память (300) сообщений для временного хранения сообщений, подлежащих передаче от абонентского устройства (102) по линии (101) связи или принятых для абонентского устройства (102) по линии (101) связи, отличающееся тем, что коммуникационный модуль (100) для определения положений сообщений в памяти (300) сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти (300) сообщений для нескольких последующих окон (ZF), соотнесенное с памятью (300) сообщений промежуточное запоминающее устройство (600), а также средства сохранения в промежуточном запоминающем устройстве (600) положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах, в качестве результата поискового просмотра (SDL).
22. Абонентское устройство (102) по п.21, отличающееся тем, что оно включает в себя главный процессор, который вместе с коммуникационным модулем (100) интегрирован на общем полупроводниковом компоненте.
23. Абонентское устройство (102) по п.21 или 22, отличающееся тем, что коммуникационный модуль (100) выполнен в соответствии с одним из пп.17-20.
24. Система связи, содержащая несколько подключенных к линии (101) связи абонентских устройств (102) и рассчитанная на циклическую передачу сообщений в задаваемых окнах (ZF), причем между линией (101) связи и по меньшей мере одним из абонентских устройств (102) расположен коммуникационный модуль (100), имеющий память (300) сообщений для временного хранения сообщений, подлежащих передаче от по меньшей мере одного абонентского устройства (102) по линии (101) связи или принятых для по меньшей мере одного абонентского устройства (102) по линии (101) связи, отличающаяся тем, что коммуникационный модуль (100) для определения положений сообщений в памяти (300) сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти (300) сообщений для нескольких последующих окон (ZF), соотнесенное с памятью (300) сообщений промежуточное запоминающее устройство (600), а также средства сохранения в промежуточном запоминающем устройстве (600) положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах (ZF), в качестве результата поискового просмотра.
25. Система связи по п.24, отличающаяся тем, что коммуникационный модуль (100) выполнен в соответствии с одним из пп.17-20.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Изобретение относится к способу передачи данных в сообщениях, циклически передаваемых по линии связи системы связи в задаваемых окнах. Подлежащие отправке и отправленные по линии связи сообщения сначала временно сохраняют в памяти сообщений коммуникационного модуля. Сообщение, подлежащее отправке или приему в текущем окне, извлекают из памяти сообщений и отправляют или соответственно принимают и сохраняют в памяти сообщений.
Изобретение также относится к коммуникационному модулю, абонентскому устройству системы связи и к системе связи, предназначенным для осуществления этого способа.
Уровень техники
Объединение в сеть абонентских устройств, например, в виде блоков управления, датчиков и приводов с помощью линии связи системы связи, например, в последние годы получает все более широкое распространение как в области автомобилестроения, так и в области машиностроения и, прежде всего, в области станкостроения, а также систем автоматизированного управления технологическими процессами. При этом за счет распределения функций между несколькими абонентскими устройствами можно достичь синергетических эффектов. Подобные системы принято называть распределенными системами. Связь между различными оконечными или абонентскими устройствами все чаще и чаще организуется по линии связи, выполненной в виде шины данных, в системе связи, выполненной в виде шинной системы. В шинной системе обмен данными, механизмы получения доступа и приема, а также обработка ошибок регулируются протоколом. Известны такие протоколы обмена данными, как протокол CAN (сокр. от англ. "Controller Area Network", локальная сеть для обмена данными между органами управления), протокол TTCAN (сокр. от англ. "Time Triggered Controller Area Network", локальная сеть для обмена данными между органами управления с доступом через синхронизированные контроллеры), а также протокол FlexRay для организации обмена данными между электронными компонентами транспортных средств, причем на данный момент у спецификации этого протокола существует редакция 2.1.
FlexRay - это быстродействующая детерминистическая и устойчивая к сбоям шинная система, особенно хорошо приспособленная для использования в транспортных средствах. Протокол FlexRay работает по методу многоабонентского доступа с разделением каналов (сокр. TDMA, от англ. "Time Division Multiple Access"), в соответствии с которым абонентским устройствам (или компонентам) или подлежащим передаче сообщениям выделяются жестко заданные кванты (слоты) или окна, в течение которых эти устройства имеют исключительное право на доступ к линии связи. Сравнимым образом работают и системы, построенные на основе стандарта TTCAN. При этом кванты повторяются по заданному циклу, так называемому коммуникационному циклу, что позволяет заранее точно знать момент передачи сообщения по шине и организовать доступ к шине по детерминистическому принципу.
Для оптимального использования полосы пропускания шинной системы обмена данными протоколом FlexRay предусматривается деление цикла на статическую часть, так называемый статический сегмент, и динамическую часть, так называемый динамический сегмент. При этом в статической части в начале шинного цикла находятся кванты жестко заданной длины. В динамической части кванты выделяются динамически. Здесь исключительный доступ к шине предоставляется всякий раз лишь на короткое время, на так называемые миникванты. Только если в пределах миникванта абонентское устройство обращается к шине, соответствующий квант продлевается на время, необходимое для передачи данных абонентским устройством. Таким образом, ширина полосы пропускания используется только тогда, когда она действительно нужна для передачи данных. Динамический сегмент можно использовать для передачи данных с событийным управлением.
В системе связи FlexRay связь осуществляется по двум физически разделенным линиям, называемым также каналами, с максимальной на настоящее время скоростью передачи данных 10 Мбит в секунду. При этом оба канала соответствуют физическому уровню многоуровневой модели, в частности семиуровневой модели взаимодействия OSI (архитектуры открытых систем - от англ. Open System Architecture). Они служат преимущественно для резервированной (избыточной) и, следовательно, помехозащищенной передачи сообщений, однако могут передавать также различные сообщения, что в настоящее время позволяет повысить скорость передачи данных вдвое - до 20 Мбит в секунду.
Для того чтобы реализовать синхронные функции и оптимизировать ширину полосы пропускания путем сокращения интервала между двумя сообщениями, распределенным компонентам в сети связи, т.е. абонентским устройствам в системе связи, необходима общая основа, так называемое глобальное время. Абонентские устройства имеют в распоряжении собственные локальные часы, синхронизируемые с глобальным временем. Для синхронизации часов в статической части цикла передаются синхронизирующие сообщения. Синхронизация часов производится в конце каждого коммуникационного цикла, во время так называемого сетевого времени ожидания (NIT - Network Idle Time). С помощью специального алгоритма, соответствующего спецификации FlexRay, показания локальных часов компонентов корректируются таким образом, чтобы все локальные часы работали синхронно с глобальными часами. Аналогичная синхронизация осуществляется в сети TTCAN.
Абонентское устройство сети FlexRay, называемое также узлом сети FlexRay, снабжено процессором, т.е. главным процессором (хост-процессором), контроллером FlexRay или коммуникационным контроллером, линией связи с физическим уровнем, драйвером шины (BD), а также - при реализации контроля за шиной - блоком шинной защиты (BG). При этом главный процессор поставляет и обрабатывает данные, передаваемые или принимаемые коммуникационным контроллером FlexRay. Для связи в сети FlexRay можно конфигурировать сообщения или коммуникационные объекты, например, на 254 байта. Для того чтобы передать эти сообщения или коммуникационные объекты между физическим уровнем, т.е. линией связи, и главным процессором, используется коммуникационный модуль, в частности коммуникационный контроллер.
Коммуникационный модуль имеет память сообщений, в которой временно хранятся коммуникационные объекты, предназначенные для передачи или получения абонентским устройством, отнесенным к коммуникационному модулю, прежде чем они будут направлены для передачи на линию связи или в главный процессор для дальнейшей обработки. Число и размеры полей данных в памяти сообщений конфигурируются в фазе конфигурирования или изменения конфигурации системы связи.
В уровне техники память сообщений в начале каждого окна просматривается диспетчером (обработчиком, манипулятором) сообщений, чтобы определить те поля данных, в которых хранятся или должны быть сохранены сообщения, подлежащие передаче или приему по текущему каналу, в текущем коммуникационном цикле и/или в текущем окне. Так, например, при поисковом просмотре памяти сообщений определяется поле данных, предусмотренное для сообщения, которое должно быть принято в текущем коммуникационном цикле и в текущем окне по текущему рассматриваемому каналу. После приема сообщения оно сохраняется в определенном для него поле данных. Точно так же при поисковом просмотре памяти сообщений может быть определено, например, поле данных, в котором хранится сообщение, подлежащее отправке в текущем коммуникационном цикле и в текущем окне по текущему рассматриваемому каналу. Тогда это сообщение извлекается из этого определенного поля данных и направляется дальше в линию связи для отправки.
Однако обнаружился тот недостаток, что поисковый просмотр, в частности, при большой емкости памяти сообщений занимает сравнительно много времени, что может вести к задержкам при приеме или передаче сообщений. Вследствие того что в каждом окне просматривается вся память сообщений, это может отрицательно сказаться на работоспособности системы связи в реальном масштабе времени.
Раскрытие изобретения
Поэтому в основу изобретения была положена задача организовать поисковый просмотр памяти сообщений таким образом, чтобы оптимальным образом обеспечить поддержку передачи сообщений и, в частности, гарантировать работоспособность системы связи даже при использовании памяти сообщений большей емкости.
Для решения этой задачи при осуществлении вышеназванного способа передачи данных предлагается для определения положений сообщений в памяти сообщений предварительно просматривать ее через регулярные интервалы для нескольких последующих окон и в качестве результата поискового просмотра сохранять в соотнесенном с памятью сообщений промежуточном запоминающем устройстве положения сообщений, подлежащих отправке или приему в этих нескольких последующих окнах.
Таким образом, в изобретении предлагается не полностью просматривать память сообщений в каждом окне (кванте времени или т.н. "тайм-слоте"), а выполнять поисковый просмотр для нескольких будущих окон. Это означает, что за один поисковый просмотр определяется положение сообщений в памяти сообщений для нескольких будущих окон. Положения сообщений, определенные в ходе поискового просмотра, сохраняются в промежуточном запоминающем устройстве и в дальнейшем могут быть вызваны из него в рамках собственно передачи данных практически без задержки по времени. Следовательно, в рамках собственно передачи данных полный поисковый просмотр всей памяти сообщений не требуется. Это позволяет значительно повысить работоспособность (пропускную способность) системы связи в реальном масштабе времени.
В предпочтительном варианте осуществления изобретения предлагается в рамках передачи данных считывать сообщение, подлежащее отправке по системе связи в текущем окне, из указанного в промежуточном запоминающем устройстве для этого окна положения в памяти сообщений и передавать его по линии связи, а сообщение, переданное по линии связи в текущем окне, - сохранять в памяти сообщений в положении, указанном в промежуточном запоминающем устройстве для этого окна. Таким образом, если в рамках собственно передачи данных необходимо передать сообщение из памяти сообщений, просто обращаются к соответствующему месту промежуточного запоминающего устройства, затем обращаются к положению в памяти сообщений, сохраненному в промежуточном запоминающем устройстве, извлекают хранящееся в памяти сообщений сообщение и направляют его для передачи на линию связи. Точно так же, если в рамках собственно передачи данных нужно принять сообщение и сохранить его в памяти сообщений, просто обращаются соответствующему месту в промежуточном запоминающем устройстве и принятое по линии связи сообщение сохраняют в том положении в памяти сообщений, что записано в промежуточном запоминающем устройстве.
В предпочтительном варианте осуществления изобретения передачу данных для текущего окна и нескольких следующих за ним окон, для которых положения сообщений в памяти сообщений уже сохранены в промежуточном запоминающем устройстве, предлагается осуществлять одновременно с поисковым просмотром для окна, следующего за последним окном, и нескольких последующих окон. Таким образом, это означает, что собственно передача данных для будущих окон 1 n (n>1) и поисковый просмотр в отношении следующих за ними будущих окон (n+1) 2n ведутся параллельно. Для этого варианта выбрана память состояний такой емкости, чтобы она содержала 2n полей данных, а именно n полей данных, в которых можно сохранять положения сообщений в памяти сообщений для передачи данных, и еще n полей данных, в которых можно сохранять положения сообщений в памяти сообщений, определенных в рамках текущего поискового просмотра. Положения сообщений в памяти сообщений для собственно передачи данных предпочтительно были определены при предыдущем поисковом просмотре и сохранены в промежуточном запоминающем устройстве. Обращение к обоим n полям данных промежуточного запоминающего устройства предпочтительно осуществлять попеременно, во-первых, каждое из n полей данных служит для записи положения в памяти в рамках поискового просмотра, во-вторых, для опроса сохраненных положений в рамках собственно передачи данных, причем оба n полей данных никогда не используются в рамках поискового просмотра или передачи данных одновременно, а всегда только со смещением относительно друг друга. Этот вариант осуществления изобретения позволяет дополнительно экономить время на обработку данных для поискового просмотра, благодаря чему система связи практически всегда способна эффективно функционировать в реальном масштабе времени. Предпочтительно, чтобы поисковый просмотр координировался и выполнялся собственным (выделенным) вычислительным устройством, например так называемым конечным автоматом.
Предпочтительно, чтобы нескольких окон, для которых выполняют поисковый просмотр, было равно числу окон для собственно передачи данных. Следовательно, если согласно предлагаемому в изобретении способу необходимо передавать (принимать или отправлять) данные, то для нескольких будущих окон (квантов) последовательно выполняется поисковый просмотр, а затем собственно передача данных (отправка или прием данных). В случае если собственно передача данных выполняется для нескольких будущих окон, а поисковый просмотр попеременно параллельно выполняется для нескольких еще более отдаленных будущих окон, необходимо, чтобы число будущих окон, для которых выполняется собственно передача данных, и число будущих окон, для которых выполняется поисковый просмотр, было одинаковым, чтобы обеспечить возможность переключения между двумя областями памяти промежуточного запоминающего устройства, содержащими число полей данных, соответствующее числу будущих окон.
Поэтому предлагается разделить промежуточное запоминающее устройство на части, причем в первой части промежуточного запоминающего устройства для передачи данных сохранены положения сообщений для текущего окна и нескольких последующих окон, для которых сообщения уже были сохранены в памяти сообщений, а во второй части промежуточного запоминающего устройства для поискового просмотра сохраняют положения сообщений для окна, следующего за последним окном передачи данных, и нескольких последующих окон.
В другом предпочтительном варианте осуществления изобретения в сообщениях, сохраняемых в памяти сообщений, содержатся первые данные с первым объемом данных и вторые данные со вторым объемом данных, причем первые данные для каждого сообщения сохраняют в одном из участков заголовка сегмента заголовков памяти сообщений, а вторые данные для каждого сообщения сохраняют в одном из участков данных сегмента данных. Членение памяти сообщений на сегмент заголовков и сегмент данных, а также определение числа и размеров полей данных в сегменте данных предпочтительно осуществлять в рамках конфигурации памяти сообщений вариабельно в зависимости от предъявляемых требований. Это дает различные преимущества. Так, пользователь при программировании может решать, использовать ли большее число сообщений с малым полем данных или меньшее число сообщений с большим полем данных. При конфигурировании сообщений с полем данных различных размеров имеющаяся память используется оптимально. Пользователь имеет возможность использовать поле данных одновременно для различных сообщений. При реализации коммуникационного контроллера, т.е. коммуникационного модуля, на интегральной схеме емкость памяти сообщений можно точно согласовать с требованиями прикладной задачи путем настройки глубины используемой памяти, в частности ЗУПВ (памяти с произвольной выборкой), не изменяя прочих функций коммуникационного контроллера или коммуникационного модуля.
Конфигурирование памяти сообщений осуществляется лишь через сегмент заголовков. В участках заголовков для сообщений определяются канал, цикл и окно, в котором сообщение должно передаваться (приниматься или отправляться). Кроме того, в рамках конфигурации для каждого сообщения определяются размеры информационной части в сегменте данных памяти сообщений, указатель начала информационной части, а также информация о том, идет ли речь о подлежащем отправке или приему сообщении.
В другом варианте осуществления изобретения в участке заголовка памяти сообщений для каждого сообщения сохраняют идентификатор, идентифицирующий соответствующее сообщение и позволяющий отнести это сообщение к определенному коммуникационному циклу и к определенному окну в пределах этого цикла. Часть участка заголовка, в которой хранится метка, называется также полем идентификации.
Для каждого из сообщений, рассмотренных во время поискового просмотра и подлежащих отправке или приему в одном из нескольких последующих окон, в промежуточном запоминающем устройстве предпочтительно предусмотреть два поля, причем в первом поле сохраняют указатель соответствующего положения сообщения, сохраненного в памяти сообщений, а во втором поле сохраняют состояние сообщения, сохраненного в памяти сообщений. Указатель предпочтительно указывает на хранящиеся в участке заголовка сегмента заголовков первые данные сообщения, сохраненного в памяти сообщений.
В качестве состояния сообщения, сохраненного в памяти сообщений, в промежуточном запоминающем устройстве предпочтительно хранить информацию о том, имеется ли вообще какое-либо сообщение, которое в рассматриваемом окне подлежит приему или отправке ('empty'), и/или подлежит ли сообщение отправке ('tx_buf') или приему ('rx_buf'). Если сообщение не предназначено ни для отправки, ни для приема, состояние устанавливается на 'empty'.
В действующей в настоящее время редакции 2.1 спецификации протокола FlexRay и в имеющихся в настоящее время аппаратных и программных компонентах для реализации системы связи на основе протокола FlexRay особенно предпочтительно для определения положений сообщений в памяти сообщений регулярно предварительно просматривать ее всякий раз для четырех последующих окон и в качестве результата поискового просмотра сохранять в промежуточном запоминающем устройстве положения сообщений, подлежащих отправке или приему в четырех последующих окнах. Разумеется, поисковый просмотр можно также предварительно производить только для двух или более чем для четырех окон. Предпочтительным числом окон, для которых предварительно производится поисковый просмотр, является число из множества 2х, где х - натуральное целое число больше единицы. Таким образом, предпочтительными значениями числа окон являются: 2, 4, 8, 16, 32 и т.д.
В предпочтительном варианте осуществления изобретения в рамках поискового просмотра память сообщений предлагается просматривать для нескольких последующих окон (ZF) по одному или нескольким из следующих критериев:
- определение того, хранятся ли в памяти сообщений сообщения для рассматриваемого канала передачи;
- определение того, хранятся ли в памяти сообщений сообщения для рассматриваемого коммуникационного цикла;
- определение того, хранятся ли в памяти сообщений сообщения для нескольких последующих окон;
- определение того, есть ли среди выявленных сообщений подлежащие отправке или приему.
Если в рамках поискового просмотра в памяти сообщений для рассматриваемого в данный момент канала (Channel А или Channel В), для текущего коммуникационного цикла и для рассматриваемых будущих окон находятся подлежащие отправке сообщения, в месте промежуточного запоминающего устройства, соответствующем рассматриваемому окну, сохраняют запись 'Tx_buf'. Если в рамках поискового просмотра в памяти сообщений для рассматриваемого в данный момент канала (Channel А или Channel В), для текущего коммуникационного цикла и для рассматриваемых будущих окон находятся поля данных для подлежащих приему сообщений, в месте промежуточного запоминающего устройства, соответствующем рассматриваемому окну, сохраняют запись 'Rx_buf'. Если в рамках поискового просмотра в памяти сообщений для рассматриваемого в данный момент канала (Channel А или Channel В), для текущего коммуникационного цикла и для рассматриваемых будущих окон не находится ни подлежащее отправке сообщение, ни поле данных для подлежащего приему сообщения, в месте промежуточного запоминающего устройства, соответствующем рассматриваемому окну, сохраняют запись 'empty', если такая запись не была сохранена там еще до начала поискового просмотра.
В рамках поискового просмотра в отношении сообщений, хранящихся в памяти сообщений, запрашивается следующая информация:
- канал (СН А, СН В): для определения того, соответствует ли канал, для которого предусмотрено сообщение, рассматриваемому каналу;
- код цикла (Cycle Code): для определения того, соответствует ли коммуникационный цикл, для которого предусмотрено сообщение, рассматриваемому коммуникационному циклу;
- идентификатор кадра (Frame ID): для определения того, соответствует ли окно, для которого предусмотрено сообщение, текущему окну;
- ТХМ (режим передачи): для определения того, предусматривается ли отправка (ТХМ=1) или прием (ТХМ=0) сообщения.
Запрашиваемая информация предпочтительно содержится в указанных битах состояния (СН А, СН В, Cycle Code, ТХМ) как часть первых данных в участках заголовков головного сегмента памяти сообщений.
Еще одним объектом изобретения является коммуникационный модуль, расположенный в системе связи, рассчитанной на циклическую передачу сообщений в задаваемых окнах, между линией связи и абонентским устройством и имеющий память сообщений для временного хранения сообщений, которые подлежат отправке из абонентского устройства по линии связи или приняты для абонентского устройства по линии связи. Для решения указанной выше задачи изобретения предлагаемый в изобретении коммуникационный модуль для определения положений сообщений в памяти сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти сообщений для нескольких последующих окон, соотнесенное с памятью сообщений промежуточное запоминающее устройство, а также средства сохранения в промежуточном запоминающем устройстве положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах, в качестве результата поискового просмотра.
В предпочтительном варианте осуществления изобретения средства поискового просмотра памяти сообщений и средства сохранения положений выявленных сообщений в промежуточном запоминающем устройстве предлагается выполнить в виде конечного автомата.
В предпочтительном варианте осуществления изобретения коммуникационный модуль предлагается выполнить как коммуникационный модуль для сети FlexRay, предназначенный для приема, посылки и временного хранения сообщений, передаваемых в соответствии со спецификацией протокола FlexRay.
Средства поискового просмотра памяти сообщений и средства сохранения положений выявленных сообщений в промежуточном запоминающем устройстве целесообразно выполнить с возможностью осуществления способа по одному из п.п.2-12.
Еще одним объектом изобретения является абонентское устройство системы связи, включающей в себя это абонентское устройство, по меньшей мере одно другое абонентское устройство и линию связи, к которой подключены абонентские устройства, и рассчитанной на циклическую передачу сообщений в задаваемых окнах, причем между линией связи и абонентским устройством расположен коммуникационный модуль, имеющий память сообщений для временного хранения сообщений, подлежащих передаче от абонентского устройства по линии связи или принятых для абонентского устройства по линии связи. Для решения указанной выше задачи изобретения в предлагаемом в изобретении абонентском устройстве коммуникационный модуль для определения положений сообщений в памяти сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти сообщений для нескольких последующих окон, соотнесенное с памятью сообщений промежуточное запоминающее устройство, а также средства сохранения в промежуточном запоминающем устройстве положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах, в качестве результата поискового просмотра.
В предпочтительном варианте осуществления изобретения предлагаемое в изобретении абонентское устройство включает в себя главный процессор, который вместе с коммуникационным модулем интегрирован на общем полупроводниковом компоненте. Главный процессор должен предпочтительно иметь микропроцессорное исполнение.
В предпочтительном варианте осуществления изобретения коммуникационный модуль выполнен в соответствии с одним из п.п.16-20 формулы изобретения.
Наконец, еще одним объектом изобретения является система связи, содержащая несколько подключенных к линии связи абонентских устройств и рассчитанная на циклическую передачу сообщений в задаваемых окнах, причем между линией связи и по меньшей мере одним из абонентских устройств расположен коммуникационный модуль, имеющий память сообщений для временного хранения сообщений, подлежащих передаче от по меньшей мере одного абонентского устройства по линии связи или принятых для по меньшей мере одного абонентского устройства по линии связи. Для решения указанной выше задачи изобретения в предлагаемой в изобретении системе связи коммуникационный модуль для определения положений сообщений в памяти сообщений содержит средства осуществляемого через регулярные интервалы предварительного поискового просмотра памяти сообщений для нескольких последующих окон, соотнесенное с памятью сообщений промежуточное запоминающее устройство, а также средства сохранения в промежуточном запоминающем устройстве положений сообщений, подлежащих отправке или приему в этих нескольких последующих окнах, в качестве результата поискового просмотра.
В предпочтительном варианте предлагаемой в изобретении системы связи коммуникационный модуль выполнен в соответствии с одним из п.п.16-20 формулы изобретения.
Иные преимущества и предпочтительные варианты осуществления изобретения рассмотрены в описании, а также охарактеризованы в формуле изобретения.
Краткое описание чертежей
Ниже изобретение более подробно пояснено со ссылкой на прилагаемые чертежи, на которых показано:
на фиг.1 - схематическое изображение коммуникационного модуля и его подключения к линии связи и к абонентскому устройству,
на фиг.2 - особый вариант выполнения коммуникационного модуля, показанного на фиг.1, а также его подключение в деталях,
на фиг.3 - детальная структура памяти сообщений коммуникационного модуля, показанного на фиг.1 или 2,
на фиг.4-6 - схематическое представление архитектуры и доступа к данным в направлении от абонентского устройства к памяти сообщений,
на фиг.7-9 - схематичное изображение архитектуры и процесса доступа к данным с передачей данных в направлении от памяти сообщений коммуникационного модуля к абонентскому устройству,
на фиг.10 - схематичное изображение диспетчера (обработчика) сообщений коммуникационного модуля, показанного на фиг.1 или 2, и содержащегося в нем конечного автомата,
на фиг.11 - еще одно схематичное изображение элементов коммуникационного модуля, абонентского устройства, а также соответствующих трактов передачи данных, управляемых диспетчером сообщений,
на фиг.12 - распределение прав доступа применительно к показанным на фиг.11 трактам передачи данных,
на фиг.13 - промежуточное запоминающее устройство предлагаемого в изобретении коммуникационного модуля,
на фиг.14 - схема процесса поискового просмотра, предназначенного для выполнения в рамках передачи данных предлагаемым в изобретении способом,
на фиг.15 - блок-схема передачи данных предлагаемым в изобретении способом в предпочтительном варианте его осуществления.
Осуществление изобретения
На фиг.1 схематично изображен коммуникационный модуль 100 для сети FlexRay, обеспечивающий соединение абонентского устройства, или хоста, 102 сети FlexRay с каналом 101 связи в этой сети, т.е. с ее физическим уровнем. Коммуникационный модуль 100 называют также модулем FlexRay-IP или контроллером E-Ray. В функциональном отношении коммуникационный модуль 100 включает в себя коммуникационный контроллер для сети FlexRay. Коммуникационный модуль 100 для сети FlexRay соединением 107 связан с абонентским устройством или процессором 102 абонентского устройства (также главным процессором), а соединением 106 - с линией 101 связи. Для беспроблемного соединения, что касается, во-первых, времени передачи и, во-вторых, целостности данных, в состав коммуникационного модуля 100 для сети FlexRay входят в основном три схематично показанных на чертеже устройства.
При этом первое 105 из этих устройств обеспечивает сохранение, в частности временное сохранение (буферизацию), по меньшей мере части передаваемых, т.е. посылаемых или принимаемых абонентским устройством 102, сообщений. Между абонентским устройством 102 и этим первым устройством 105 включено второе устройство 104, соединенное с ними соединениями 107 и 108. Точно так же между линией связи 101 и первым устройством 105 включено соединенное с ними соединениями 106 и 109 третье устройство 103, чем достигается гибкий ввод в первое устройство 105 и вывод из него данных в составе сообщений, в частности сообщений на основе протокола FlexRay, с обеспечением целостности данных при оптимальной скорости передачи данных.
На фиг.2 коммуникационный модуль 100 в предпочтительном варианте его выполнения изображен несколько более подробно. Также более подробно изображены и соответствующие соединения 106-109. При этом второе устройство 104 имеет входную буферную память 201 (буфер на входе), ниже также называемую входным буфером, выходную буферную память 202 (буфер на выходе), ниже также называемую выходным буфером, а также интерфейсный модуль, состоящий из двух частей 203 и 204, причем универсальный субмодуль 203 интерфейса ЦП (англ. Generic CPU Interface, GIF) является многофункциональным, независимым от абонентского устройства, в то время как субмодуль 204 является специализированным, т.е. может иметь ту или иную конструкцию в зависимости от конкретного абонентского устройства. Этим специализированным субмодулем 204 интерфейсного модуля (англ. Customer CPU Interface, CIF) обеспечивается интерфейс для связи процессора 102 абонентского устройства, который может иметь различные особенности в зависимости от того, о каком конкретно абонентском устройстве идет речь, с остальной частью коммуникационного модуля 100 для сети FlexRay. Для этого предусмотрены линия 216 передачи данных с возможностью передачи в двух направлениях, адресная линия 217 и управляющий вход 218. Также предусмотрен выход 219 для передачи сигналов прерывания.
Зависящий от абонентского устройства субмодуль 204 соединен с универсальным субмодулем 203, т.е. коммуникационный модуль 100 для сети FlexRay обладает универсальным, т.е. многофункциональным, интерфейсом для его связи с процессорами абонентских устройств, который с использованием субмодулей 204, адаптированных к специфике конкретных абонентских устройств и их процессоров, может соединяться с большим количеством самых различных центральных процессоров абонентских устройств, отражающих специфику клиентов. Благодаря этому адаптация, учитывающая особенности абонентского устройства, необходима только для зависящего от абонентского устройства субмодуля 204, тогда как остальная часть коммуникационного модуля 100 всегда может быть выполнена независимо от специфики абонентского устройства, что позволяет существенно снизить затраты, связанные с подключением к шине FlexRay. Зависящий от абонентского устройства субмодуль 204 обеспечивает, например, согласование разрядности коммуникационного модуля 100 для сети FlexRay с разрядностью подключенного главного центрального процессора 102 (например, 8, 16 или 32 бит).
Входной буфер 201 и выходной буфер 202 могут быть выполнены либо в виде одного общего, либо в виде раздельных модулей памяти. При этом входной буфер 201 служит для временного, или промежуточного, сохранения сообщений, подлежащих передаче из главного центрального процессора 102 в память 300 сообщений. Входной буфер 201 предпочтительно выполнен с возможностью сохранения в нем двух полных сообщений, каждое из которых включает в себя заголовок HS, содержащий в частности конфигурационные данные, и основную часть DS, содержащую собственно передаваемые, или полезные, данные. При этом сам входной буфер 201 выполнен из двух частей: основной буферной памяти и теневой (скрытой) памяти, причем за счет попеременной записи в обе указанные части входного буфера 201 и смены режима обращения к ним (т.е. переключения между этими режимами) удается увеличить скорость передачи данных между центральным процессором 102 абонентского устройства и памятью 300 сообщений.
Аналогичным образом выходной буфер 202 служит для временного, или промежуточного, сохранения сообщений, подлежащих передаче из памяти 300 сообщений в центральный процессор 102 абонентского устройства. При этом модуль выходного буфера 202 также выполнен с возможностью сохранения в нем двух полных сообщений, каждое из которых включает в себя заголовок HS, содержащий в частности конфигурационные данные, и основную часть DS, содержащую собственно передаваемые полезные данные. И в этом случае выходной буфер 202 выполнен из двух частей: основной буферной памяти и теневой (скрытой) памяти, причем и в рассматриваемом случае за счет попеременного считывания из обеих частей выходного буфера 202 и смены режима обращения к ним удается увеличить скорость передачи данных между памятью 300 сообщений и абонентским устройством или его центральным процессором 102. Второе устройство 104, имеющее элементы 201-204, соединено с первым устройством 105 показанным на чертеже образом.
Устройство 105 состоит из диспетчера, или обработчика, 200 сообщений (англ. Message Handler, MHD) и памяти 300 сообщений, в частности ЗУПВ, (англ. Message RAM). Диспетчер 200 сообщений контролирует процесс передачи данных между входным буфером 201 и выходным буфером 202, с одной стороны, и памятью 300 сообщений, с другой стороны, соответственно управляет указанным процессом. Аналогичным образом посредством третьего устройства 103 он контролирует процесс передачи данных в обратном направлении, соответственно управляет этим процессом. Память 300 сообщений предпочтительно выполнена в виде однопортового ЗУПВ. Эта память служит для хранения сообщений или коммуникационных объектов, т.е. для хранения собственно данных (полезных данных) совместно с относящимися к ним конфигурационными данными и данными о состоянии. Структура памяти 300 сообщений более подробно показана на фиг.3. Каждый коммуникационный объект состоит из заголовка HS и основной части (сегмента данных) DS. В заголовке HS хранятся поле идентификации, а также другая информация KD о конфигурации и состоянии вместе с указателем DP начала области (участка) данных DB в сегменте DS данных памяти 300 сообщений.
Третье устройство 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 сохраняются поля данных, т.е. несущая полезную информацию часть DS двух сообщений на основе протокола FlexRay.
Кроме того, в коммуникационном модуле 100 предусмотрено глобальное устройство (ПВУ) (англ. Global Time Unit, GTU), обозначенное позицией 209 и отвечающее за синхронизацию работы абонентского устройства с другими подключенными к шине FlexRay абонентскими устройствами, т.е. за обработку микро- (µТ) и макро(МТ)импульсов сигнала времени. Кроме того, указанное глобальное устройство 209 отвечает за отказоустойчивую синхронизацию часов счетчиков циклов (англ. Cycle Counter), а также за контроль во времени процессов в статической и динамической частях цикла работы шины FlexRay. Абонентские устройства 102 системы связи имеют в распоряжении собственные локальные часы, синхронизируемые по глобальному времени. Для синхронизации часов в статической части коммуникационного цикла передаются синхронизирующие сообщения. Синхронизация часов осуществляется в конце каждого коммуникационного цикла, во время так называемого сетевого времени ожидания (NIT - Network Idle Time). С помощью специального алгоритма, соответствующего спецификации FlexRay, показания локальных часов компонентов 102 корректируются таким образом, чтобы все локальные часы работали синхронно с глобальными часами.
Позицией 210 обозначен блок общего управления системой (англ. System Universal Control, SUC), контролирующий режимы работы коммуникационного контроллера FlexRay, или коммуникационного модуля 100, и управляющий этими режимами. К ним относятся такие режимы, как активизация, запуск, первичное или повторное подключение к шине, а также нормальный и пассивный режимы работы. Позицией 211 обозначен блок управления шиной и обработки ошибок (англ. Network- and Error Management, NEM), предусмотренный редакцией 2.1 спецификации протокола FlexRay. Наконец, позицией 212 обозначен блок управления прерываниями (англ. Interrupt Control, INT), управляющий флагами прерываний, осуществляемых по факту регистрации определенных состояний или по факту регистрации ошибок (англ. Status and Error Interrupt Flags), и контролирующий выходы 219 для передачи сигналов прерывания в центральный процессор 102 абонентского устройства, соответственно управляющий этими выходами. Блок 212 также имеет таймер абсолютного или относительного времени, соответственно таймер для генерирования прерываний по времени, иначе называемых прерываниями по таймеру.
Сеть FlexRay может быть сконфигурирована для передачи по ней или в системе связи, реализующей протокол FlexRay, в процессе обмена данными соответственно для сохранения в буфере 300 сообщений сообщений или коммуникационных объектов, содержащих, например, до 254 байт данных. Память 300 сообщений выполнена, в частности, в виде ЗУПВ для сохранения сообщений, способного сохранять, например, максимум до 64 коммуникационных объектов. Все функции, относящиеся к обработке сообщений, соответственно к управлению сообщениями, реализованы в диспетчере 200 сообщений. К таким функциям относятся, например, фильтрация по критерию допустимости, передача сообщений между блоками 207 и 208, относящимися к контроллеру сети FlexRay, с одной стороны, и памятью 300 сообщений, с другой стороны, а также контроль последовательности передачи и подготовка конфигурационных данных и данных о состоянии.
Внешний центральный процессор, т.е. внешний процессор, процессор абонентского устройства или хост 102, может через интерфейс абонентского устройства, т.е. посредством специализированного субмодуля 204, получать прямой доступ к регистрам коммуникационного модуля для сети FlexRay. При этом используется множество регистров. Эти регистры используются для конфигурирования и управления работой контроллера сети FlexRay, т.е. интерфейсных модулей 207 и 208, диспетчера 200 сообщений, глобального ПВУ 209, блока 210 общего управления системой, блока 211 управления шиной и обработки ошибок, контроллера 212 прерываний, а также для управления доступом к памяти 300 сообщений и отображения соответствующего состояния. По меньшей мере некоторые из этих регистров более подробно рассмотрены ниже со ссылкой на фиг.4-6 и 7-9. Такой предлагаемый в изобретении коммуникационный модуль 100 для сети FlexRay позволяет простым путем реализовать редакцию 2.1 спецификации протокола FlexRay, соответственно позволяет простым путем создать специализированную ИС или микроконтроллер с поддержкой шины FlexRay, имеющие соответствующий объем функций.
На фиг.3 более подробно показана структура памяти 300 сообщений. Для того чтобы контроллер для сети FlexRay был способен выполнять весь объем функций, требуемый от него в соответствии со спецификацией протокола FlexRay, необходима память 300 сообщений для обеспечения наличия отправляемых сообщений (выходной буфер, или буфер передачи) и для сохранения корректно принятых сообщений (входной буфер, или приемный буфер). Протокол FlexRay позволяет отправлять и получать сообщения с объемом полезной информации от 0 до 254 байт. Как показано на фиг.2, память 300 сообщений является одним из элементов коммуникационного модуля 100 сети FlexRay. Описанный ниже способ, а также пригодная для осуществления этого способа память 300 сообщений позволяют сохранять подлежащие отправке и полученные сообщения, в частности, в ЗУПВ, причем предлагаемый в изобретении способ позволяет сохранять в памяти 300 сообщений заданного объема переменное число сообщений. При этом количество помещающихся в память сообщений зависит от объема собственно передаваемых данных, содержащихся в каждом сообщении, что позволяет, с одной стороны, использовать для хранения сообщений лишь необходимый минимум памяти 300, не накладывая при этом ограничений на объем содержащихся в каждом сообщении полезных данных, и с другой стороны, позволяет оптимальным образом использовать (любой) доступный объем памяти 300. Ниже более подробно описан способ распределения объема предусмотренной в коммуникационном контроллере для сети FlexRay памяти 300 сообщений, в частности, представляющей собой ЗУПВ, между сегментами этой памяти, в переменном соотношении.
В качестве примера реализации допустим, что дана память 300 сообщений, пригодная для сохранения слов заданной длины, составляющей n бит, где n=8, 16, 32 и т.д., причем объем этой памяти достаточен для сохранения m слов (и m, и n - натуральные числа). При этом память 300 сообщений разбивают на два сегмента: сегмент HS заголовков и сегмент DS данных (полезных данных). На каждое сообщение в сегменте заголовков памяти сообщений создается участок НВ, предназначенный для сохранения заголовка этого сообщения, а в сегменте данных памяти сообщений создается участок DB, предназначенный для сохранения данных этого сообщения. Соответственно для сообщений 0, 1, , k (где k - натуральное число) создаются участки НВ0, НВ1, , HBk сегмента заголовков и участки DB0, DB1, , DBk сегмента данных. Иными словами, каждое сообщение, передаваемое по шине FlexRay, рассматривается как включающее в себя первые и вторые данные, причем под первыми данными понимаются содержащиеся в заголовках конфигурационные данные и/или данные о состоянии, сохраняемые в участках НВ (НВ0, НВ1, , HBk) сегмента заголовков. Вторые данные, соответствующие собственно данным и подлежащие передаче (так называемые полезные данные), сохраняются в участках DB (DB0, DB1, , DBk) сегмента данных. В соответствии с этим объем памяти, занимаемый каждым сообщением, складывается из двух частей: первая часть соответствует объему относящихся к сообщению первых данных и может измеряться в битах, байтах или количестве слов, а вторая часть соответствует объему относящихся к сообщению вторых данных и также может измеряться в битах, байтах или количестве слов, причем объем вторых данных у разных сообщений может быть различным. Общий объем памяти 300 сообщений распределяется между сегментом HS заголовков и сегментом DS данных в переменном соотношении, т.е. жестко заданной границы между указанными областями HS, DS памяти не существует. В соответствии с изобретением распределение объема памяти между сегментом HS заголовков и сегментом DS данных осуществляется в зависимости от количества k сообщений, а также в зависимости от объема вторых данных, т.е. в зависимости от объема полезных данных, содержащихся в одном сообщении или суммарно в k сообщениях.
В соответствии с изобретением с конфигурационными данными KD0, KD1, , KDk каждого соответствующего сообщения непосредственно соотносят по одному указателю DP0, DP1, , DPk. В одном из конкретных вариантов осуществления изобретения с каждым участком НВ0, НВ1, , HBk сегмента заголовков соотносят жестко заданное число слов, в рассматриваемом варианте равное двум, что позволяет в каждом случае совместно сохранять в одном и том же участке НВ (НВ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. В соответствии с этим объем памяти 300 сообщений распределяется между сегментом HS заголовков и сегментом DS данных в переменном соотношении, зависящем как от общего количества сообщений, так и от объема данных в сообщении, соответственно от суммарного объема вторых данных. В случае когда память сообщений сконфигурирована под меньшее число сообщений, сегмент HS заголовков имеет уменьшенный объем, а высвободившееся за счет такого уменьшения пространство в памяти 300 сообщений дополнительно относится к сегменту DS данных, соответственно может быть использовано для хранения полезных данных. Такая гибкость в конфигурировании памяти позволяет оптимизировать использование последней, что в некоторых случаях позволяет обойтись памятью 300 меньшего объема. В соответствии с этим свободный объем FDS сегмента данных также в зависимости от количества k сохраненных сообщений и от объема относящихся к сохраненным сообщениям вторых данных может быть минимальным или даже нулевым.
Предлагаемый в изобретении подход позволяет по сравнению с жестким разбиением памяти 300 сообщений обеспечить следующие преимущества: Пользователь на этапе программирования может решить, желает ли он использовать большее количество сообщений с меньшим полем данных либо меньшее количество сообщений с большим полем данных. При работе с сообщениями с варьирующимся объемом участка DB данных изобретение позволяет оптимально использовать объем доступной памяти. Пользователь получает возможность использования одного и того же участка сегмента данных совместно для различных сообщений.
Наряду с использованием указателей (DP0, DP1, , DPk) первые и вторые данные, т.е. конфигурационные данные KD (KD0, KD1, , KDk) и собственно данные D (D=D0, D1, , Dk), могут сохраняться в задаваемой последовательности, причем последовательность участков ПВ0 HBk сегмента HS заголовков идентична последовательности участков DB0 DBk сегмента DS данных. Такой подход позволяет при определенных условиях даже отказаться от использования указателей. Правда, в этом случае должна быть доступной информация о длине отдельных участков DB0 DBk данных, или же участки DB0 DBk данных должны быть одинакового размера.
В одном из конкретных вариантов осуществления изобретения с памятью 300 сообщений соотнесен генератор данных, используемых для обнаружения ошибок, прежде всего генератор битов контроля четности, а также элемент для обнаружения ошибок, прежде всего элемент для контроля этих битов, что позволяет за счет формирования и сохранения контрольной суммы, и прежде всего бита контроля четности, для каждого слова или для каждого участка памяти (участок НВ заголовка и/или участок DB данных) обеспечить контроль корректности данных, сохраненных в сегменте HS заголовков и сегменте DS данных. Могут применяться и иные методы контроля корректности данных, соответственно методы обнаружения ошибок, например контроль с использованием циклического избыточного кода (CRC, сокр. от англ. Cyclical Redundancy Check), или же более мощные методы обнаружения и исправления ошибок по типу ЕСС (сокр от англ. Error Correction Code).
При реализации коммуникационного контроллера для сети FlexRay на интегральной схеме можно адаптировать объем памяти 300 сообщений к требованиям конкретной прикладной задачи за счет коррекции емкости ЗУ, не меняя при этом остальных функций коммуникационного контроллера.
Ниже со ссылкой на фиг.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 может записываться "теневая" метка, или идентификатор сообщения IBRS (англ. Input Buffer Request Shadow). В двоичный разряд 15 регистра 403 может записываться метка, или идентификатор, IBSYH доступа, а в двоичный разряд 31 регистра 403 - метка, или идентификатор, IBSYS доступа. Можно отметить и двоичные разряды 0-2 регистра 404, в двоичные разряды 0 и 1 которого записываются характеризующие данные метки, или идентификаторы, LHSH (англ. Load Header Section Host) и LDSH (англ. Load Data Section Host). Эти метки, или идентификаторы, в рассматриваемом варианте представлены в простейшей форме, а именно, каждый из них является однобитным. В двоичный разряд "2" регистра 404 записывается метка, или идентификатор, STXRH (англ. Set Transmission Request Host) начала передачи.
Ниже описан процесс обращения к памяти 300 сообщений для записи данных через входной буфер 201.
Данные передаваемого, т.е. подлежащего передаче, сообщения записываются центральным процессором 102 абонентского устройства во входной буфер 201. При этом процессором 102 могут записываться либо только конфигурационные данные KD заголовка сообщения - в выделенный в памяти 300 сообщений сегмент HS заголовков, либо только содержащиеся в сообщении полезные данные D - в выделенный в памяти 300 сообщений сегмент DS данных, либо и те (KD), и другие (D) данные. Подлежащие передаче или записи части сообщения, т.е. конфигурационные данные KD и/или собственно данные D, определяются специальными характеризующими данные идентификаторами 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 Request Host) начала передачи, после успешного завершения передачи в память 300 сообщений соответствующих конфигурационных данных KD и/или полезных данных D автоматически генерируется запрос на передачу соответствующего коммуникационного объекта. Иными словами, идентификатор STXRH начала передачи управляет автоматической передачей подлежащего передаче коммуникационного объекта и, в частности, непосредственно инициирует процесс такой передачи.
Аналогичный идентификатор начала передачи, именуемый STXRS (англ. Set Transmission Request Shadow), предусмотрен и для теневой памяти 401, где он записывается, например, в двоичный разряд "18" относящегося к входному буферу регистра 404 маскирования команд, и в рассматриваемом варианте представляет собой простейший однобитный идентификатор. Идентификатор STXRS выполняет ту же функцию, что и описанный выше идентификатор STXRH, но применительно к теневой памяти 401.
При записи процессором 102 абонентского устройства идентификатора сообщения, в частности положения или номера коммуникационного объекта в памяти 300 сообщений, в которую нужно переместить содержащиеся во входном буфере 201 данные, в двоичные разряды 0-5 относящегося к входному буферу регистра 403 запроса команд, т.е. после идентификатора IBRH сообщения, части входного буфера 201: основная буферная память 400 и соответствующая теневая память 401, "меняются местами", что обозначено на чертеже полукруглыми стрелками, проходящими между памятью 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 абонентского устройства может осуществляться запись следующего подлежащего передаче сообщения во входной буфер 201, т.е. в его основную буферную память 400. На запущенный процесс такой записи может указывать дополнительный идентификатор IBSYH (англ. Input Buffer Busy Host) доступа, записываемый, например, в двоичный разряд "15" регистра 403. Этот идентификатор записывается в относящийся к входному буферу регистр 403 запроса команд при записи процессором 102 абонентского устройства идентификатора IBRH сообщения в двоичные разряды "0-5" регистра 403 во время передачи данных между теневой буферной памятью 401 и памятью 300 сообщений, т.е. при IBSYS=1. После завершения текущего перемещения (передачи) данных инициируется запрошенный процесс передачи данных (см. приведенное выше описание идентификатора STXRH), а бит IBSYH сбрасывается. Бит IBSYS остается установленным все время, пока идет передача данных в память 300 сообщений, и указывает на то, что эта передача еще не завершена. Все упомянутые в приведенном выше описании биты, т.е. однобитные идентификаторы, могут быть и многобитными. Однобитные идентификаторы являются предпочтительными по соображениям экономии памяти и упрощения работы. Многобитное решение можно было бы рекомендовать по соображениям защиты информации и надежности системы.
Описанный выше механизм позволяет центральному процессору 102 абонентского устройства осуществлять непрерывное перемещение данных в расположенные в памяти 300 сообщений коммуникационные объекты, включающие участки НВ сегмента заголовков и участки DB сегмента данных, при условии, что скорость доступа процессора 102 к входному буферу 201 меньше или равна внутренней скорости перемещения данных коммуникационного модуля 100 (т.е. IP-модуля сети FlexRay).
Ниже со ссылкой на фиг.7, 8 и 9 более подробно описаны процесс обращения процессора 102 абонентского устройства к памяти 300 сообщений для считывания данных через выходной буфер 202. Для этого на фиг.7 еще раз показан коммуникационный модуль 100, причем для упрощения изображены лишь существенные элементы этого коммуникационного модуля 100. К таким элементам относятся диспетчер 200 сообщений, отвечающий за управление процессами, а также два регистра 703 и 704 команд, которые могут размещаться либо вне диспетчера 300 сообщений в коммуникационном модуле 100, либо в самом диспетчере 200 сообщений. При этом позицией 703 обозначен относящийся к выходному буферу регистр (англ. Output Buffer Command Request Register) запроса команд, а позицией 704 - относящийся к тому же буферу регистр (англ. Output Buffer Command Mask Register) маскирования команд. Считывание данных из памяти 300 сообщений осуществляется процессором 102 абонентского устройства через промежуточный выходной буфер 202. Этот выходной буфер 202 также выполнен двойным, т.е. имеющим две части, а именно основную буферную память 701 и относящуюся к ней теневую память 700. Такой подход позволяет осуществлять описанный ниже непрерывный доступ процессора 102 абонентского устройства к сообщениям, коммуникационным объектам или данным, хранящимся в памяти 300 сообщений, и при этом позволяет обеспечить целостность этих данных и увеличение скорости их передачи в обратном направлении, т.е. из памяти 300 сообщений в процессор 102 абонентского устройства. Управление доступом осуществляется посредством относящихся к выходному буферу регистра 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 сообщения из соответствующего участка DB сегмента данных, либо и те (KD), и другие (D) данные. То, какая часть данных, а именно, из участка НВ заголовка и/или участка DB данных подлежит передаче, определяется по аналогии с записью данных идентификаторами RHSS и RDSS. Иными словами, идентификатор RHSS указывает на то, что считыванию подлежат данные KD заголовка сообщения, а RDSS - на то, что считыванию подлежат содержащиеся в сообщении полезные данные D.
Идентификатор начала передачи служит для инициирования процесса передачи данных из памяти 300 сообщений в теневую память 700. То есть в простейшем случае использования однобитных идентификаторов путем установки бита REQ в двоичный разряд "9" относящегося к выходному буферу регистра 703 запроса команд запускается процесс передачи данных из памяти 300 сообщений в теневую память 700. На неоконченный процесс такой записи указывает дополнительный идентификатор доступа, в качестве которого в рассматриваемом простейшем случае используется однобитный идентификатор OBSYS, записываемый в регистр 703. Во избежание коллизий в предпочтительном варианте осуществления изобретения бит REQ может устанавливаться только при неустановленном бите OBSYS, соответственно только при условии отсутствия неоконченных процессов передачи. В этом случае затем происходит передача сообщений между памятью 300 сообщений и теневой памятью 700. Процесс такой передачи может либо управляться по аналогии с рассмотренным выше со ссылкой на фиг.4, 5 и 6 процессом записи (с дополняющим использованием регистров), либо осуществляться иначе, с использованием дополнительного идентификатора, а именно идентификатора VIEW переключения, записываемого в двоичный разряд "8" регистра 703. Таким образом, после завершения процесса передачи бит OBSYS сбрасывается, и путем установки бита VIEW в относящийся к выходному буферу регистр 703 основная буферная память 701 и соответствующая ей теневая память 700 меняются местами, и соответственно к основной буферной памяти обращаются как к буферной и наоборот, после чего процессор 102 абонентского устройства может считать из памяти 300 сообщений требуемый коммуникационный объект, т.е. может считать из основной буферной памяти 701 соответствующее сообщение. При этом по аналогии с описанным со ссылкой на фиг.4-6 процессом записи ячейки OBRS и OBRH регистра меняются местами. Аналогичным образом RHSS и RDSS меняются на RHSH и RDSH и наоборот. В качестве защитной меры может быть предусмотрена возможность установки бита VIEW только при неустановленном бите OBSYS, т.е. при отсутствии неоконченных процессов передачи.
В соответствии с этим считывание данных из памяти 300 сообщений осуществляется процессором 102 абонентского устройства через промежуточный выходной буфер 202. Этот выходной буфер 202, как и входной буфер 201, также выполнен двойным, т.е. имеющим две части, что позволяет обеспечить возможность непрерывного доступа процессора 102 абонентского устройства к сохраненным в памяти 300 сообщений коммуникационным объектам. И в рассматриваемом случае предлагаемый в изобретении подход позволяет обеспечить целостность данных и ускорить их передачу.
Применение предлагаемых в изобретении входного и выходного буферов 201, 202 позволяет обеспечить бесперебойный доступ процессора 102 абонентского устройства к памяти 300 сообщений несмотря на наличие у модуля внутреннего времени задержки.
Для обеспечения вышеуказанной целостности данных передача данных, в частности, осуществляемая в коммуникационном модуле 100, производится под управлением диспетчера 200 сообщений (англ. Message Handler MHD). Этот диспетчер 200 сообщений подробно показан на фиг.10. Диспетчер 200 сообщений по своей функциональности может быть представлен несколькими конечными автоматами (англ. Finite-State-Machine, FSM). При этом количество таких конечных автоматов в соответствии с изобретением не может быть меньше трех и предпочтительно равно четырем. Первым конечным автоматом является конечный автомат IOBF-FSM (от англ. Input/Output FSM), обозначенный позицией 501. Этот конечный автомат IOBF-FSM в зависимости от направления передачи данных по отношению к входному 201 или выходному 202 буферам может разделяться на два конечных автомата, например входной автомат IBF-FSM (англ. Input Buffer FSM) и выходной автомат OBF-FSM (англ. Output Buffer FSM), причем максимально возможное количество конечных автоматов равно пяти (IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM и AFSM). Однако в предпочтительном варианте осуществления изобретения предусмотрен один общий входной/выходной автомат IOBF-FSM.
По меньшей мере один второй конечный автомат TBF-FSM в рассматриваемом конкретном варианте осуществления изобретения разбит на два элемента 502 и 503 и описанным выше со ссылкой на фиг.2 образом работает с каналами А и В передачи данных, соответственно относится к буферам 205 и 206. В другом варианте один конечный автомат может обслуживать оба канала А и В, или же, как в предпочтительном варианте осуществления изобретения, может быть предусмотрен один конечный автомат TBF1-FSM (от англ. Transient Buffer 1 (206, RAM A) FSM) для канала А, обозначенный на чертеже позицией 502, и один конечный автомат TBF2-FSM (от англ. Transient Buffer 2 (205, RAM В) FSM) для канала В, обозначенный на чертеже позицией 503.
Для управления доступом трех конечных автоматов 501-503 к памяти сообщений в предпочтительном варианте осуществления изобретения предусмотрен конечный автомат-арбитр AFSM, обозначенный на чертеже позицией 500. Данные (KD и/или D) передаются с непосредственной или опосредованной синхронизацией по тактовому сигналу, выдаваемому, например, генератором, управляемым напряжением (ГУН), кварцевым генератором тактовой частоты или другими устройствами и обрабатываемому компонентом системы связи. Тактовый сигнал Т может либо формироваться внутри коммуникационного модуля, либо поступать извне, например, по шине передачи данных. Конечный автомат-арбитр AFSM 500 с чередованием, предпочтительно каждый раз на длительность одного периода Т тактовых импульсов, предоставляет одному из трех остальных конечных автоматов 501-503 доступ к памяти сообщений. Иными словами, свободное время обращения к памяти сообщений распределяется конечным автоматом-арбитром между отдельными конечными автоматами 501, 502 и 503 с учетом поступающих от последних запросов на предоставление им такого доступа. В случае если такой запрос поступает лишь от одного конечного автомата, он получает доступ к памяти сообщений на 100% свободного времени доступа, т.е. на длительность периодов Т всех тактовых импульсов, пока не поступит иных сигналов. В случае же поступления запросов сразу от двух конечных автоматов каждый из них получает доступ на 50% времени. При поступлении запросов сразу от трех конечных автоматов каждый из них получает доступ на 1/3 времени. Такой подход позволяет оптимально использовать доступную полосу пропускания.
Первый конечный автомат 501, т.е. конечный автомат IOBF-FSM, может при необходимости выполнять следующие действия:
- передача данных из входного буфера 201 в выбранный коммуникационный объект в памяти 300 сообщений,
- передача данных из выбранного коммуникационного объекта в памяти 300 сообщений в выходной буфер 202.
Конечный автомат 502 для работы с каналом А передачи данных, т.е. конечный автомат TBF1-FSM, выполняет следующие действия:
- передача данных из выбранного коммуникационного объекта в памяти 300 сообщений в буфер 206 канала А,
- передача данных из буфера 206 в выбранный коммуникационный объект в памяти 300 сообщений,
- поиск подходящего коммуникационного объекта в памяти 300 сообщений, причем при получении сообщения по каналу А с использованием фильтрации по критерию допустимости производится поиск коммуникационного объекта (в буфере 202 для приема), пригодного для сохранения этого сообщения, а при передаче - поиск следующего подлежащего передаче по каналу А коммуникационного объекта (в буфере 201 для передачи).
Аналогичным образом функционирует и конечный автомат TBF2-FSM, т.е. конечный автомат для работы с каналом В, обозначенный на чертеже позицией 503. Этот конечный автомат обеспечивает передачу данных в обоих направлениях между выбранным коммуникационным объектом в памяти 300 сообщений и буфером 205 канала В. Этот конечный автомат тоже, по аналогии с конечным автоматом TBF1-FSM, способен осуществлять поиск подходящего коммуникационного объекта в памяти 300 сообщений, причем при получении сообщения по каналу В с использованием фильтрации по критерию допустимости производится поиск коммуникационного объекта (в буфере 202 приема), пригодного для сохранения этого сообщения, а при передаче - поиск следующего подлежащего передаче по каналу В коммуникационного объекта (в буфере 201 передачи).
На фиг.11 еще раз изображены процессы и тракты передачи данных. Передача данных между отдельными элементами осуществляется под управлением трех конечных автоматов 501-503. При этом позицией 102 опять обозначен процессор абонентского устройства, позицией 201 - входной буфер, а позицией 202 - выходной буфер. Позицией 300 обозначена память сообщений, а оба буфера, относящихся к каналам А и В, обозначены позициями 206 и 205 соответственно. На чертеже также показаны интерфейсные модули 207 и 208. Первый конечный автомат IOBF-FSM 501 управляет передачей данных в направлениях Z1A и Z1B, т.е. передачей данных из входного буфера 201 в память 300 сообщений и из памяти 300 сообщений в выходной буфер 202. При этом обмен данными осуществляется по 32-битным или имеющим любую иную разрядность шинам данных. То же самое относится к передаче данных в направлении Z2 между памятью 300 сообщений и буфером 206. Эта передача данных осуществляется под контролем конечного автомата TBF1-FSM 502, отвечающего за работу с каналом А. Передача данных в направлении Z3 между памятью 300 сообщений и буфером 205 осуществляется под контролем конечного автомата TBF2-FSM 503. И в этом случае обмен данных осуществляется по 32-битным или имеющим любую иную разрядность шинам данных. Обычно передача целого коммуникационного объекта в указанных направлениях, соответственно по указанным трактам передачи данных, занимает несколько периодов Т тактовых импульсов. По этой причине конечным автоматом-арбитром AFSM, обозначенным на чертеже позицией 500, осуществляется распределение времени передачи соответственно используемых для передачи периодов Т тактовых импульсов. Таким образом, на фиг.11 изображены тракты передачи данных между элементами памяти, работающими под управлением диспетчера сообщений 200. Для обеспечения целостности сохраненных в памяти 300 сообщений коммуникационных объектов передача данных предпочтительно осуществляется в каждый конкретный момент времени лишь по одному из показанных на чертеже трактов Z1A и Z1B, а также Z2 и Z3 передачи данных.
На фиг.12 в качестве примера показан вариант осуществления изобретения, в котором доступные периоды Т системного тактового сигнала распределяются конечным автоматом-арбитром AFSM, обозначенным на чертеже позицией 500, между тремя конечными автоматами 501-503, каждый из которых может выдавать запросы на доступ к памяти сообщений. На стадии 1 такие запросы выдаются конечными автоматами 501 и 502, соответственно все доступное машинное время делится между обоими запрашивающими его конечными автоматами 501 и 502 пополам. Применительно к периодам тактового сигнала это означает, что на стадии 1 конечный автомат 501 получает доступ к памяти сообщений на длительность периодов Т1 и ТЗ, а конечный автомат 502 - на длительность периодов Т2 и Т4 тактового сигнала. В течение стадии 2 такой запрос поступает только от конечного автомата 501, соответственно он получает доступ к памяти сообщений в течение всей этой стадии, т.е. на длительность всех трех относящихся к ней периодов Т5-Т7 тактового сигнала. На стадии 3 запросы поступают от всех конечных автоматов 501-503, соответственно каждому из них выделяется треть от всего доступного времени доступа. При этом конечный автомат-арбитр AFSM 500 распределяет время доступа, например, таким образом, что на длительность периодов Т8 и Т11 тактового сигнала доступ предоставляется конечному автомату 501, на длительность периодов Т9 и Т12 - конечному автомату 502, и на длительность периодов Т10 и Т13 - конечному автомату 503. На заключительной стадии 4 доступ осуществляется двумя конечными автоматами 502 и 503 по обоим каналам А и В коммуникационного модуля, причем время доступа распределяется таким образом, что на длительность периодов Т14 и Т16 тактового сигнала доступ предоставляется второму конечному автомату 502, а на длительность периодов Т15 и Т17- третьему конечному автомату 503.
В соответствии с этим конечный автомат-арбитр AFSM 500 в случае, когда более чем один из трех конечных автоматов 501-503 выдает запрос на получение им обращения к памяти 300 сообщений, распределяет доступное время доступа между такими выдавшими запрос конечными автоматами попеременно, целыми периодами тактового сигнала. Такой подход позволяет обеспечить целостность хранящихся в памяти 300 сообщений коммуникационных объектов, т.е. позволяет обеспечить целостность данных. В случае когда, например, процессору 102 абонентского устройства требуется считать с использованием выходного буфера 202 коммуникационный объект непосредственно во время записи в этот объект принимаемого сообщения, то в зависимости от приоритета происходит считывание либо старого, либо обновленного содержимого коммуникационного объекта, причем ни в том, ни в другом случае не происходит конфликта, связанного с одновременным обращением к этому содержащемуся в памяти 300 сообщений коммуникационному объекту для чтения и записи.
Предлагаемый в изобретении способ позволяет процессору 102 абонентского устройства, не прерывая работы, считывать или записывать любой коммуникационный объект в памяти 300 сообщений, причем на время чтения или записи доступ процессора 102 абонентского устройства к этому объекту по любому из двух каналов А и В шины 101 FlexRay не блокируется. Одновременно с этим за счет потактового распределения прав доступа обеспечивается целостность данных, сохраненных в памяти 300 сообщений, а также повышение скорости передачи данных, достигаемое в том числе и за счет использования всей доступной полосы пропускания.
В памяти 300 сообщений коммуникационного модуля 100 хранятся предусмотренные для обмена данными коммуникационные объекты. Во время обмена данными решаются следующие задачи.
При приеме сообщения по линии 101 связи необходимо найти соответствующий коммуникационный объект в памяти 300 сообщений, чтобы можно было сохранить принятое сообщение в соответствующем положении коммуникационного объекта в памяти 300 сообщений. Принятое сообщение сохраняют в памяти 300 сообщений только в том случае, если поле идентификации принятого сообщения соответствует полю идентификации сконфигурированного коммуникационного объекта (так называемого объекта приема). Поле идентификации сконфигурированного коммуникационного объекта при приеме определяется путем поиска во всей памяти 300 сообщений коммуникационного объекта, который
- предназначен для приема по рассматриваемому каналу (А или В),
- предназначен для приема в рассматриваемом коммуникационном цикле,
- предназначен для приема в рассматриваемых окнах,
- предназначен собственно для приема.
Аналогичным образом к началу окна передачи в памяти 300 сообщений необходимо своевременно найти подходящий для этого окна передачи коммуникационный объект (объект передачи) и подготовить его к отправке. Предназначенный для отправки коммуникационный объект отправляют только в том случае, если поле идентификации подлежащего отправке сообщения соответствует полю идентификации сконфигурированного коммуникационного объекта (так называемого объекта передачи). Поле идентификации сконфигурированного коммуникационного объекта при передаче определяется путем поиска во всей памяти 300 сообщений коммуникационного объекта, который
- предназначен для отправки по рассматриваемому каналу (А или В),
- предназначен для отправки в рассматриваемом коммуникационном цикле,
- предназначен для отправки в рассматриваемых окнах,
- предназначен собственно для отправки.
В обоих случаях необходимо своевременно обнаружить коммуникационный объект в памяти сообщений, чтобы обеспечить работу коммуникационного модуля в реальном масштабе времени. Поскольку не известно, в каком положении памяти 300 сообщений находится коммуникационный объект для следующего окна, необходимо для каждого окна полностью просматривать память 300 сообщений. Это требует больших затрат времени, особенно при значительной емкости памяти 300 сообщений, и может поставить под угрозу или ухудшить работу системы связи в реальном масштабе времени.
В изобретении предлагается новый и более совершенный способ поискового просмотра памяти сообщений, при котором поля идентификации хранящихся в памяти 300 сообщений коммуникационных объектов предварительно просматриваются каждый раз для нескольких окон (или квантов времени), путем проведения в памяти 300 сообщений однопоискового цикла для нескольких рассматриваемых окон. Таким образом, поисковый просмотр всей памяти 300 сообщений всегда выполняется для нескольких рассматриваемых будущих окон в заданном растре, причем интервалы выполнения поискового просмотра в растре больше окна и включают несколько окон.
В частности предлагается выполнять поисковый просмотр для нескольких рассматриваемых будущих окон по следующим критериям поиска:
- определение того, хранятся ли в памяти 300 сообщений коммуникационные объекты для рассматриваемого канала СН А, СН В передачи;
- определение того, хранятся ли в памяти 300 сообщений коммуникационные объекты для рассматриваемого коммуникационного цикла;
- определение того, хранятся ли в памяти 300 сообщений коммуникационные объекты для нескольких рассматриваемых последующих окон;
- проверка того, идет ли речь в случае определенных коммуникационных объектов об объектах, предназначенных для передачи или для приема.
Если в памяти 300 сообщений обнаруживаются один или несколько коммуникационных объектов, отвечающих одному или нескольким, предпочтительно всем, приведенным выше требованиям, то положения найденных в памяти сообщений объектов сохраняются в соотнесенном (связанном) с памятью 300 сообщений промежуточном запоминающем устройстве, которое показано на фиг.13 и обозначено в целом позицией 600. Промежуточное запоминающее устройство 600 имеет по меньшей мере такую емкость, чтобы вмещать для каждого из предварительно рассмотренных окон по меньшей мере одно поле данных. В представленном примере осуществления изобретения память 300 сообщений просматривается растрами по четыре окна, т.е. после каждого четвертого окна. Правда, поисковый просмотр выполняется не для одного текущего окна, а одновременно или практически одновременно для нескольких будущих окон. Таким образом, промежуточное запоминающее устройство 600 имеет четыре поля 601-604 данных, чтобы хранить положения максимально четырех определенных коммуникационных объектов. В каждом из полей 601-604 данных можно хранить по два слова данных, а именно указатель i и состояние i, причем i соответствует однозначному номеру (или идентификатору) поля 601-604 данных в памяти 300 сообщений. Поле 601 данных предпочтительно относится к первому рассматриваемому будущему окну, поле 602 данных - ко второму, и т.д. до поля 604 данных, которое относится к последнему будущему рассматриваемому окну. Следовательно, если для первого будущего рассматриваемого окна в памяти 300 сообщений обнаруживается соответствующий коммуникационный объект, указатель i и состояние i коммуникационного объекта, определенного для первого окна i, сохраняется в обоих словах данных поля 601 данных.
В качестве слова данных "указатель 0 3" в полях 601-604 данных памяти 300 сообщений хранится положение, например номер, соответствующего коммуникационного объекта. Следовательно, в случае слова данных "указатель 0 3" речь идет о своего рода элементе указателя (Data Pointer), указывающем на начало коммуникационного объекта в памяти 300 сообщений, предпочтительно на начало участка НВ заголовка в сегменте HS заголовков, т.е. на конфигурационные данные KD определенного коммуникационного объекта. В качестве состояния 0 3 сообщения, хранящегося в памяти 300 сообщений, в промежуточном запоминающем устройстве 600 предпочтительно хранится информация о том, должно ли вообще приниматься или передаваться сообщение и/или должно ли сообщение передаваться или приниматься для рассматриваемого окна. Если сообщение подлежит передаче, состояние 0 3 устанавливается на 'tx_buf', если сообщение подлежит приему, состояние 0 3 устанавливается на 'rx_buf'. Если для рассматриваемого окна сообщение не подлежит ни приему, ни передаче, состояние устанавливается на 'empty', если это уже не сделано в начале поискового просмотра для всех слов данных полей 601-604 данных, а по меньшей мере для слов данных состояния 0 3.
На фиг.13 ясно видно, что представленное промежуточное запоминающее устройство 600 выполнено двойным, т.е. поля 601-604 данных повторяются дважды и имеются дополнительные поля 601а-604а данных. Преимущество состоит в том, что, например к полям 601-604 данных можно обращаться во время поискового просмотра, а к полям 601а-604а данных - непосредственно для передачи данных, т.е. для отправки и приема данных. Когда поисковый просмотр и передача данных закончены, поля данных меняются местами, что обеспечивает доступ к полям данных во время поискового просмотра и одновременно к полям 601-604 данных непосредственно для передачи данных, т.е для отправки и приема данных. Это позволяет избежать ожидания в передаче данных поискового просмотра памяти 300 сообщений.
Целесообразно ввести фильтрацию отправлений, т.е. в памяти 300 сообщений ведется поиск положения (или коммуникационного объекта), предусмотренного для временного, или промежуточного, хранения сообщения, которое процессор 102 абонентского устройства (главный процессор) должен отправить в рассматриваемом коммуникационном цикле в рассматриваемом окне по линии 101 связи рассматриваемого канала. Дополнительно или альтернативно производится фильтрация приема, т.е. в памяти 300 сообщений ведется поиск положения (или коммуникационного объекта), предусмотренного для промежуточного хранения сообщения, которое процессор 102 абонентского устройства должен принять в рассматриваемом коммуникационном цикле в рассматриваемом окне по рассматриваемому каналу линии 101 связи. Целью поиска является сокращение числа требующихся для каждого коммуникационного цикла поисковых просмотров памяти 300 сообщений и, следовательно, улучшение работы коммуникационного модуля 100 в режиме реального времени.
В настоящем описании рассматривается промежуточное запоминающее устройство 600, состоящее в общей сложности из восьми элементов 601-604 и 601а-604а. Однако емкость промежуточного запоминающего устройства 600 можно произвольно варьировать, сохраняя предлагаемый в изобретении способ передачи данных, в частности предложенный способ поискового просмотра, и, следовательно, гибко согласовывать ее с емкостью памяти 300 сообщений. Кроме того, по емкости промежуточного запоминающего устройства 600 можно заранее определить, в отношении какого максимального числа окон следует предварительно вести поисковый просмотр памяти 300 сообщений. Чтобы обеспечить правильное функционирование предлагаемого в изобретении способа, в частности, чтобы избежать пропуска предназначенных для отправки или приема сообщений, по возможности не следует в промежутке между окончанием поискового просмотра для поиска определенных окон и окончанием собственно передачи данных для этих окон изменять конфигурацию памяти 300 сообщений. Такое изменение конфигурации могло бы привести к недействительности содержимого промежуточного запоминающего устройства 600, определенного при последнем поисковом просмотре, так как изменилось бы распределение областей памяти 300 сообщений для передаваемых и принимаемых сообщений в соответствующих окнах. В таком случае потребовался бы новый поисковый просмотр, что по меньшей мере могло бы привести к задержке передачи данных, а иногда даже к незначительной потере данных. Однако в спецификации FlexRay содержатся механизмы для предупреждения такой задержки или потери данных, поэтому можно не опасаться их негативного влияния на передачу данных.
Предлагаемый в изобретении способ более подробно поясняется ниже со ссылкой фиг.14. На фиг.14 коммуникационный цикл имеет обозначение KZY. ZE - это окончание цикла, ZF - окна. Поисковый просмотр обозначен как ZDL. Наконец, DAT - это собственно передача данных, т.е. посылка и прием сообщений. На фиг.14 рассматривается коммуникационный цикл KZY(n). Он включает в себя сначала четыре окна " 1-4" статического сегмента цикла KZY(n), за которыми следуют в общей сложности 20 окон динамического сегмента цикла KZY(n). В конце цикла ZE(n) содержатся так называемое символьное окно (англ. Symbol Window), если таковое имеется, и так называемое сетевое время ожидания (Network Idle Time, NIT), которое служит для синхронизации локальных часов абонентских устройств 102. В рассматриваемом примере осуществления изобретения память сообщений всегда просматривается на четыре окна ZF вперед. Исключением является только первый поисковый просмотр после запуска предлагаемого в изобретении способа, так как сначала нужно заполнить все восемь элементов 601-604 и 601а-604а промежуточного запоминающего устройства 600.
Диаграмма процесса по предлагаемому в изобретении способу представлена на фиг.15. Осуществление способа начинается в функциональном блоке 700. В функциональном блоке 701 выполняется первый поисковый просмотр, который будет подробнее пояснен в дальнейшем. В рамках поискового просмотра, например, в полях или элементах 601-604 промежуточного запоминающего устройства 600 сохраняется соответствующая информация, необходимая для последующей передачи данных как таковой. Если речь идет о первом поисковом просмотре после запуска предлагаемого в изобретении способа, прочие поля или элементы 601а-604а промежуточного запоминающего устройства 600 еще пусты и должны заполняться при ближайшем следующем поисковом просмотре. Поэтому в блоке опроса 702 проверяется, идет ли речь о первом поисковом просмотре после запуска способа или нет. Если да, то поисковый просмотр 701 выполняется еще раз, в противном случае происходит переход на ответвление к функциональному блоку 703, откуда ведется собственно передача данных, т.е. посылка и/или прием сообщений для того абонентского устройства 102, в коммуникационном модуле 100 которого производился предыдущий поисковый просмотр памяти 300 сообщений. После этого в блоке опроса 704 проверяется, окончена ли передача по предлагаемому в изобретении способу. Если да, то происходит переход на ответвление к блоку 705 и передача по предлагаемому в изобретении способу заканчивается. В противном случае происходит переход к блоку 706, где поля или элементы 601-604 промежуточного запоминающего устройства 600 сменяются полями или элементами 601а-604а, поэтому определенная при следующем поисковом просмотре 701 информация, в частности положения коммуникационных объектов, сохраняется не в полях 601-604, а теперь уже в полях 601а-604а. Точно так же вследствие замены полей промежуточного запоминающего устройства 600 в функциональном блоке 706 во время последующей собственно передачи данных обращаются уже не к полям 601а-604а, а к полям 601-604. Кроме того, в функциональном блоке 706 четыре следующих окна определяются как окна следующего поискового просмотра. Затем снова происходит переход на ответвление к функциональному блоку 701, и еще раз выполняются поисковый просмотр и собственно передача данных, однако на этот раз для четырех окон, следующих за окнами, рассмотренными при предыдущем поисковом просмотре.
Поисковый просмотр, имеющий на фиг.15 общее обозначение 701, подробнее поясняется на примере исполнения, показанном на фиг.14. Поисковый просмотр выполняется для четырех следующих друг за другом (последовательных) окон ZF, причем для всех четырех окон в памяти 300 сообщений ведется поиск подходящего коммуникационного объекта. Поскольку первое окно "0" согласно спецификации не существует, первый поисковый просмотр охватывает в порядке исключения только три окна ZF. Однако все последующие поисковые просмотры охватывают по четыре окна ZF. Для того чтобы определить подходящий объект, проверка ведется по уже рассмотренным ранее критериям: коммуникационный цикл, окно, канал и передача/прием. Результат поиска в виде положения выявленных подходящих коммуникационных объектов в памяти 300 сообщений сохраняется в промежуточном запоминающем устройстве 600. Промежуточное запоминающее устройство представляет собой список с восемью элементами 601-604 и 601а-604а, от элемента "0" до элемента "7".
По окончании фазы конфигурирования коммуникационного модуля 100 и в конце каждого коммуникационного цикла KZY(n-1) содержимое промежуточного запоминающего устройства 600 стирается. Все указатели "0"-"7" устанавливаются на 0, и все поля данных состояния - на 'empty'. Первый поисковый просмотр осуществляется в порядке исключения иначе, чем другие поисковые просмотры. При последнем поисковом просмотре предыдущего цикла KZY(n-l) память 300 сообщений проверяется на наличие подходящих коммуникационных объектов для первого окна ZF следующего коммуникационного цикла KZY(n). Если предыдущего коммуникационного цикла KZY(n-1) нет, например, вследствие того что система только что запущена и сконфигурирована, память 300 сообщений просматривается на наличие подходящих коммуникационных объектов для первого окна ZF следующего коммуникационного цикла KZY(n) сразу после фазы конфигурирования. Результат этого поиска сохраняется в элементе "1" 602 промежуточного запоминающего устройства.
После этого начинается коммуникационный цикл KZY(n), и в первом окне ZFI выполняется сокращенный поисковый просмотр, в ходе которого память 300 сообщений проверяется на наличие подходящих коммуникационных объектов для окон ZF2 и ZF3. Результаты поискового просмотра сохраняются в элементах "2" 603 и "3" 604 промежуточного запоминающего устройства 600. Кроме того, в первом окне ZFI память 300 сообщений необходимо проверять также на наличие подходящих коммуникационных объектов для следующих четырех окон ZF4-ZF7. Результаты этого поиска сохраняются в элементах с четвертого 601а по седьмой 604а промежуточного запоминающего устройства 600. Поиск подходящих объектов для окон ZF2-ZF7 может происходить при единственном поисковом просмотре SDL1. Кроме того, в первом окне ZFI осуществляется собственно передача данных сообщения, предусмотренного для первого окна ZFI. Первое окно ZFI согласно спецификации FlexRay обязательно является статическим окном, которое в отличие от динамических окон не превышает определенной минимальной продолжительности. Поскольку промежуточное запоминающее устройство 600 к моменту первого поискового просмотра SDL1 пусто, в промежуточном запоминающем устройстве 600 нужно сохранять информацию только в том случае, если в памяти 300 сообщений действительно найдены подходящие коммуникационные объекты. Если для определенного окна ZF не найдено никаких объектов, соответствующий элемент 601-604 или 601а-604а остается с указателем = '0' и состоянием = 'empty'.
При первом поисковом просмотре SDL1 в первом окне ZFI сначала выводится поле идентификации первого коммуникационного объекта из сегмента HS заголовков памяти 300 сообщений. Поле идентификации сообщения включает в себя по меньшей мере следующие биты состояния: 11 разрядов блока идентификации (разряды 0-10 слова-заголовка), 7 бит кода цикла (разряды 16-22 слова-заголовка), 1 бит канала А (СН А) (разряд 24 слова-заголовка), 1 бит канала В (СН В) (разряд 25 слова-заголовка) и один бит режима передачи (ТХМ) (разряды 28 слова-заголовка). Если это поле идентификации подходит к одному из окон ZF2-ZF7 рассматриваемого коммуникационного цикла KZY(n), то указатель соответствующего элемента "2"-"7" промежуточного запоминающего устройства 600 устанавливается на номер коммуникационного объекта в памяти 300 сообщений, а соответствующее состояние "2"-"7" - на 'tx_buf' или 'rx_buf' в зависимости от того, должно ли сообщение быть отправлено или принято.
Затем - все еще в рамках того же поискового просмотра SDL1 - считывается поле идентификации следующего коммуникационного объекта, проверяется, существует ли соответствие окнам ZF2-ZF7, и при необходимости устанавливаются указатель и поле данных состояния соответствующего элемента 601-604, 601а-604а промежуточного запоминающего устройства 600.
Если состояние соответствующего элемента промежуточного запоминающего устройства уже не должно быть установлено на 'empty', то указатель и данные состояния в промежуточном запоминающем устройстве 600 не сохраняются. Следовательно, если два или несколько коммуникационных объектов сконфигурированы для одного и того же окна ZF в одном и том же коммуникационном цикле KZY(n), то первый используется, а последующие игнорируются.
Со считыванием последнего поля идентификации из сегмента заголовков памяти 300 сообщений поисковый просмотр SDL1 завершается. Теперь в рамках собственно передачи данных можно без большой задержки непосредственно вывести из промежуточного запоминающего устройства 600 номер подходящего коммуникационного объекта для окон ZF1-ZF7.
С началом окна ZF4 элементы 602-604 промежуточного запоминающего устройства 600 отработаны (элемент не потребовался, так как окно ZFO отсутствует), т.е. собственно передача данных в этих окнах ZF1-ZF3 уже состоялась. Теперь элементы 601-604 промежуточного запоминающего устройства 600 можно стереть (указатель = '0', состояние = 'empty') и запустить следующий поисковый просмотр SDL2. Этот поисковый просмотр относится к окнам ZF8-ZF11 текущего коммуникационного цикла KZY(n). Результаты поиска сохраняются в элементах с нулевого 601 по третий 604 промежуточного запоминающего устройства 600. С началом окна ZF8 запускается следующий поисковый просмотр SDL3 для окон ZF12-ZF15. Результаты поиска сохраняются в элементах с четвертого 601а по седьмой 604а промежуточного запоминающего устройства, содержимое которых также было стерто к началу нового поискового просмотра SDL3 (указатель = '0', состояние = 'empty').
Параллельно поисковым просмотрам SDL ведется собственно передача DAT данных при достижении соответствующего окна ZF. Так, например, во время второго поискового просмотра SDL2 ведется собственно передача данных для окон ZF4-ZF7, причем информация о том, где именно в памяти 300 сообщений сохранять или откуда именно из памяти 300 сообщений считывать подлежащие передаче (отправке или приему) сообщения, берется из элементов с четвертого 601а по седьмой 604а промежуточного запоминающего устройства 600, где она была записана во время первого поискового просмотра SDL1. Точно так же во время третьего поискового просмотра SDL3 ведется собственно передача данных для окон ZF8-ZF11, причем информация о том, где именно в памяти 300 сообщений сохранять или откуда именно из памяти 300 сообщений считывать подлежащие передаче сообщения, берется из элементов с нулевого 601 по третий 604 промежуточного запоминающего устройства 600, где она была записана во время второго поискового просмотра SDL2. Соответствующим образом выполняются дальнейшие поисковые просмотры SDL4-SDL6, причем во время последнего поискового просмотра SDL6 текущего коммуникационного цикла KZY(n) память 300 сообщений, как уже пояснялось выше, просматривается на наличие подходящих коммуникационных объектов для первого окна ZFI следующего коммуникационного цикла KZY(n+l).
Каждый поисковый просмотр SDL может прерываться другими процессами, но должен быть завершен не позднее, чем после четырех окон ZF. Если это требование невыполнимо, то промежуточное запоминающее устройство 600 можно расширить с восьми до шестнадцати элементов. Тем самым располагаемое время увеличивается, например, до восьми окон. Правда, при этом ограничивается гибкость системы передачи данных, так как для теперь уже восьми окон, которые были предварительно просмотрены, нельзя изменять конфигурацию, пока для этих окон не будет выполнена собственно передача данных.
Если для некоторого объекта передачи к началу соответствующего окна ZF начинается перемещение из памяти 300 сообщений в передающее устройство, то проверяется, не произошло ли за это время изменение коммуникационного объекта. Если это произошло, запись в промежуточном запоминающем устройстве 600 игнорируется и соответствующий коммуникационный объект не отправляется. Если для объекта приема в конце соответствующего окна ZF (в начале следующего окна) начинается перемещение из приемного устройства, то проверяется, не произошло ли за это время изменение коммуникационного объекта. Если это произошло, запись в промежуточном запоминающем устройстве 600 игнорируется и соответствующее сообщение не сохраняют в памяти. Проверку целостности данных можно производить, например, с помощью вычисления контрольных сумм или любым другим методом (например посредством бита четности или циклического избыточного кода CRC).
Для специалиста открываются широкие возможности расширения форм осуществления настоящего изобретения, которые можно реализовать, не отступая от сущности изобретения. Ниже в качестве примера приводятся только некоторые из таких возможностей.
Если во время работы системы передачи данных происходит изменение конфигурации коммуникационного объекта в памяти 300 сообщений, то проверяется, подходит ли поле идентификации к текущему интервалу окон ZFi-ZFi+ промежуточного запоминающего устройства 600. Если да, то при необходимости выполняется преобразование соответствующего элемента 601-604 и 601а-604а промежуточного запоминающего устройства. Это расширение позволяет изменить конфигурацию коммуникационного объекта до начала определенного в поле идентификации окна ZF независимо от емкости промежуточного запоминающего устройства 600.
При описанном способе память 300 сообщений коммуникационного модуля 100 предварительно просматривается на наличие коммуникационных объектов, подходящих к следующему окну ZF. Хранящийся в промежуточном запоминающем устройстве 600 указатель коммуникационных объектов и их состояния обеспечивает быстрый доступ к коммуникационным объектам, предусмотренным для следующих окон ZF. Следовательно, отдельного поискового просмотра всей памяти 300 сообщений для каждого окна ZF уже не требуется.
Применение описанного метода поиска сокращает число необходимых для каждого коммуникационного цикла KZY(n) поисковых просмотров памяти 300 сообщений. Это позволяет улучшить работу коммуникационного модуля 100 в реальном масштабе времени.
Класс G06F12/02 адресация или местонахождение в памяти; переадресация