Оценка времени доставки сообщений в распределенных системах реального времени с CAN-интерфейсом

ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

УДК 681.3

В. В. Никифоров, В. И. Шкиртиль

ОЦЕНКА ВРЕМЕНИ ДОСТАВКИ СООБЩЕНИЙ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ

С CAN-ИНТЕРФЕЙСОМ

Предложен подход к оценке верхней границы времени доставки сообщений между узлами распределенных систем реального времени, построенных на базе CAN-интерфейса. Показано, что для проверки гарантий своевременности доставки сообщений между узлами таких систем могут использоваться методы, аналогичные методам проверки гарантий своевременности выполнения задач в однопроцессорных системах реального времени.

Ключевые слова: системы реального времени, распределенные программные комплексы, CAN-интерфейс, выполнимость задач.

Введение. В ряду ключевых требований к реализации целевых функций систем реального времени (СРВ) выделяются такие, как надежное, предсказуемое поведение, эффективное использование аппаратных средств, обеспечение гарантий своевременного выполнения возлагаемых на СРВ задач. Методы построения и реализации программных приложений для СРВ и методы анализа соответствующих вычислительных моделей, направленные на обеспечение этих требований, развиваются с 1970-х гг. по настоящее время [1—4]. Были разработаны рациональные методы построения программных комплексов с использованием независимых задач реального времени, а также комплексов взаимосвязанных задач, разделяющих общие аппаратные и информационные ресурсы.

В многозадачной системе длительность временного интервала выполнения задачей возлагаемых на нее функций (время отклика) зависит не только от объема исполняемых действий, но и от продолжительности ожидания требуемых ресурсов. Этим обусловлено взаимное влияние (интерференция) задач, приводящее к более или менее значительному увеличению времени их отклика. Для различных архитектур комплексов прикладных задач СРВ найдены методы обеспечения гарантий своевременности выполнения функций системы в условиях такой интерференции.

В частности, для произвольного статического назначения приоритетов невытесняемых задач Ti, T2,..., тп, обслуживаемых одним процессором, определен способ вычисления времени отклика R для каждой из задач тг-. Удовлетворительный результат сравнения величины R с допустимым для нее значением Di гарантирует своевременность выполнения задачи тг-.

В распределенных СРВ прикладные программы рассредоточены по узлам, соединяемым коммуникационными каналами. В последнее время для локальных распределенных СРВ широко используется сетевой интерфейс CAN (Controller Area Network) [5—6], обеспечивающий связь узлов сети путем доступа к общей шине. Очередность передачи сообщений, генерируемых в узлах сети, определяется статически присваиваемыми сообщениям значениями

приоритетов. Приоритеты сообщений характеризуют отношение порядка предоставления коммуникационного ресурса. Порожденное в одном из узлов сети с CAN-интерфейсом сообщение с низким приоритетом ожидает момента, когда коммуникационная система окажется свободной от передачи сообщений с более высоким приоритетом. Таким образом, при заданном быстродействии коммуникационной системы время доставки сообщения зависит не только от его длины, но и от загруженности сети более приоритетными сообщениями, т.е. имеет место интерференция передаваемых по сети сообщений, аналогичная интерференции задач многозадачного приложения, исполняемого одним процессором. Для оценки продолжительности выполнения распределенных функций СРВ актуальна разработка методов оценки времени доставки сообщений в условиях такой интерференции.

В настоящей статье показано, как известные методы оценки своевременности выполнения прикладных задач СРВ могут быть адаптированы к оценке своевременности доставки сообщений по сети с CAN-интерфейсом; приводятся метод оценки времени отклика невытес-няемых задач с произвольным назначением статических приоритетов и необходимые сведения о CAN-интерфейсе; рассматривается подход к адаптации метода оценки времени отклика невытесняемых задач, который обеспечивает проверку гарантий своевременности доставки сообщений по сети с CAN-интерфейсом.

Оценка выполнимости независимых задач. Согласно принципу структурного соответствия асинхронный характер поступления внешних данных приводит к построению программного приложения СРВ в виде десятков асинхронно исполняемых программных компонентов. Действие каждого из асинхронных компонентов должно завершиться своевременно, в рамках фиксированного временного интервала.

Как правило, число таких компонентов значительно превышает число имеющихся в системе процессоров. Это означает, что асинхронные программные компоненты исполняются в квазипараллельном режиме, предполагающем попеременное переключение процессора между обслуживаемыми им программными компонентами. Возникает интерференция программных компонентов: продолжительность исполнения отдельного компонента зависит не только от необходимого ему объема процессорного времени, но и от того, как часто и как надолго процессор будет переключаться на исполнение других компонентов.

Для проверки гарантий своевременности завершения выполнения программных компонентов строятся вычислительные модели приложений в формате, допускающем использование алгоритмов оценки выполнимости приложений и составляющих их задач. Применение допустимых форматов предполагает наложение ряда ограничений на методы планирования и структуру взаимодействия программных компонентов.

Задачи и задания. Программное приложение СРВ строится в виде комплекса задач Tj, Т2,..., Tn — программных модулей, каждый из которых представляет собой внутренне

замкнутую по передачам управления последовательную программу [5]. Составляющие комплекс задачи являются кооперативными: они ориентированы на совместное функционирование для достижения общих целей, стоящих перед системой.

Вычислительные модели, предназначенные для анализа выполнимости задач, представляются в виде, отвлеченном от содержательной составляющей обрабатываемых данных. Назначение таких моделей состоит в демонстрации ограничений, накладываемых на порядок следования системных событий, возникающих в ходе работы СРВ. При этом под системным событием понимается изменение условий распределения системных ресурсов (в первую очередь — ресурса процессорного времени). При рассмотрении вопросов функционирования СРВ различают два понятия:

— задача (task) — статический объект тг-, элемент статической структуры программного приложения;

— задание (job) — динамический объект т(3), j = 1, да, процесс исполнения задачи тг-. Символами т^, т(2), т(3), ... обозначаются последовательно возникающие (порождаемые) задания на выполнение задачи тг-.

В простейших вычислительных моделях каждая задача характеризуется следующими параметрами:

T — период активизации задачи тг-,

Cj — максимальный объем процессорного времени для выполнения задани т( 3), Dy — допустимая продолжительность выполнения каждого из заданий т( 3), prio(T;) — приоритет задачи ту.

Пусть t3 (t(j)) и t3 (т(3)) — соответственно моменты времени возникновения и завершения задания т(3). Задание т(3) существует (является действующим) в рамках интервала

времени

(т(3)), t3 (t(3')) . Продолжительность интервала существования

ri3) = tз

называется временем отклика задания т(3).

Время отклика однотипных заданий может варьироваться: при 3 Ф к значения г/3) и г^к) могут существенно различаться. Такое различие возникает по двум причинам. Во-первых, вследствие различий в объемах вычислений, выполняемых в рамках заданий т(3 ) и

т(к). Если обозначить символом с,3) требуемый для выполнения задания т(3 ) объем процессорного времени (суммарную продолжительность непосредственного облуживания задания центральным процессором), то при 3 Ф к значения с,3) и с(к) могут не совпадать. Другая возможная причина различий величин г/3) и г^к) состоит в том, что аппаратные и информационные ресурсы, требуемые для выполнения задачи т, (в частности, ресурс процессора), могут, в рамках интервалов существования т( 3) и т( к), быть привлечены к выполнению других заданий. Введенная выше величина Я, (время отклика задачи) формально определяется как максимально возможное значение времени отклика экземпляров задачи т,:

Я, = тах{7 = 1, 2, ...|г/3)}.

Задачу т, называют асинхронной задачей, если ее задания т(3) следуют не строго периодически, при этом не чаще, чем с интервалом Т :

(т(3+1))-«в (т(') Ь Т,.

Спецификации функций СРВ содержат ограничения на время отклика заданий: для всех заданий типа т, допустимая продолжительность интервала существования ограничена величиной , т.е.

«з (т(3))-«в (т(3) )<А .

В условиях перекрытия интервалов существования заданий решение о том, какому из заданий следует предоставить процессор, принимается в соответствии с используемым порядком назначения приоритетов — дисциплиной планирования.

Дисциплина планирования определяется способом назначения целочисленных приори-

то задание ТХ) считается

тетов prio

действующих задании: если prim т

(т? > )< prio (т<! >) ,

более приоритетным, чем ). Ниже рассматриваются системы со статическими приоритетами задач: значения рпо(тг-) определяются для каждой из задач при конструировании системы

и являются основными параметрами планирования.

Одна из особенностей дисциплины планирования — возможность вытеснения текущего задания. Механизм вытеснения действует следующим образом: если в момент времени

t

М)

текущим является задание типа ту, приоритет которого ниже, чем рпо

io ()),

то

процессор переключается на исполнение задания т(хк) (оно становится текущим), а задание т(У) переводится в состояние „вытеснено" (контекст задания т^) консервируется, с тем чтобы через какое-то время в соответствии с принятой дисциплиной планирования его исполнение было продолжено).

В ряду составляющих приложение задач могут быть выделены невытесняемые задачи, отличающиеся тем, что соответствующие им задания не переводятся в состояние „вытеснено", даже если на интервале их существования активизируются более приоритетные задачи.

Пусть в системе независимых задач все задачи т , Т2, Т3, ... являются невытесняемыми. Известно, что в таком случае время отклика [2] каждой из задач определяется методом последовательных приближений:

Ri Ci pri

C

prio(T j )<prio(Ti ) J

El

TJ

+max{prio(T ) > prio(Ti )| C }.

где суммирование осуществляется по всем задачам тj , более приоритетным по отношению к задачам Ti; символом | x | обозначается ближайшее к x сверху целое число.

CAN-интерфейс. Многие микроконтроллеры имеют в своем составе интерфейсные модули, реализующие коммуникационный интерфейс CAN [5, 6]. Такие микроконтроллеры используются в автомобилях, системах автоматизации технологических процессов, медицинской аппаратуре и других системах реального времени.

При использовании локальной сети, оснащенной CAN-интерфейсом, элементарные сообщения, передаваемые в однопроводную коммуникационную линию, разделяются интервалами пассивного состояния линии (логический нуль). Структура стандартного сообщения в упрощенном виде представлена на рис. 1. Сообщение начинается стартовым фреймом, за которым следуют информационные поля и стоповый фрейм.

Длина сообщения = 44 + 8N

И

Поле арбитража

Л-Г

Стартовый фрейм

Поле длины

Поле управления

Поле данных

Рис. 1

Поле CRC

Поле

АСК

J

Стоповый фрейм

Узлы сети могут начинать передачу сообщения только тогда, когда линия находится в пассивном состоянии. При появлении в линии стартового фрейма все узлы синхронизируются его фронтом. Может оказаться, что два и более узла одновременно генерировали старто-

вый фрейм, — возникает конфликт по запросу на использование коммуникационной линии. Этот конфликт должен быть устранен в ходе формирования поля арбитража.

Поле арбитража длиной 11 бит имеет двоякое назначение. Во-первых, код, размещаемый в поле арбитража, идентифицирует тип передаваемого сообщения. Во-вторых, значение этого кода определяет приоритет сообщения: нулевой код соответствует наиболее приоритетным сообщениям; чем больше значение двоичного числа, размещаемого в поле арбитража, тем ниже приоритет передаваемого сообщения. Типы передаваемых сообщений распределены между узлами сети, так что если два узла сети одновременно начали передавать сообщения, то это сообщения различных типов.

Пассивное состояние коммуникационной линии соответствует символу „1" (рецессивный бит), активное состояние — символу „0" (доминантный бит). В рамках поля арбитража несколько узлов осуществляют попытку передачи очередного сообщения. Каждый передающий узел контролирует состояние коммуникационной линии в ходе передачи каждого бита. Узел, передающий пассивный бит, прекращает попытку передачи сообщения, если он обнаруживает, что существует конкурирующий узел, который в этот момент передает активный бит. К моменту, когда завершается передача битов поля арбитража, только один узел продолжает передачу. Таким образом, в ходе дальнейшей передачи наиболее приоритетного сообщения предотвращается одновременная передача сообщений, генерируемых другими узлами.

Четырехбитовый код поля длины задает число байт (от 0 до 15), размещаемых в поле данных. За полями длины, данных и контрольной суммы (CRC) следует поле ACK — поле подтверждения приема. Это означает, что принимающий узел сети, обнаружив адресованное ему сообщение, помечает его как принятое в рамках формата передаваемого сообщения, а не последующих сообщений. Такое решение повышает оперативность обмена данными.

Рис. 2

Порядок доставки сообщений через сеть иллюстрируется схемой, представленной на рис. 2. Отдельный узел сети содержит ряд прикладных задач, которые генерируют сообщения, адресуемые либо соседним задачам, либо задачам, содержащимся в других узлах. В последнем случае сгенерированное сообщение направляется в интерфейсный модуль и размещается в его буфере. В буфере интерфейсного модуля сообщения упорядочиваются по приоритетам. В момент, когда линия переходит в пассивное состояние, интерфейсный модуль приступает к передаче самого приоритетного из сообщений, находящихся в его буфере. Эта попытка окажется удачной, если одновременно интерфейсный модуль какого-либо другого узла не пытается передать более приоритетное сообщение.

Проверка гарантий своевременности доставки сообщений. Определим время доставки сообщения как длительность временного интервала, в течение которого сообщение

конкретного типа, порожденное прикладной задачей, гарантированно доставляется в узел сети с задачей-адресатом. Как следует из вышерассмотренного порядка доставки сообщения через сеть с СЛК-интерфейсом, при заданной частоте передачи битов по коммуникационной линии время доставки определяется не только длиной поля данных, но и продолжительностью ожидания момента освобождения коммуникационной линии от передачи более приоритетных сообщений. Иными словами, сформированные задачами сообщения конкурируют за возможность получения ресурса коммуникационной линии аналогично тому, как невытес-няемые задания в каждом из узлов системы конкурируют за предоставление ресурса процессора. Наличие такой аналогии позволяет распространить рассмотренный выше метод оценки времени отклика невытесняемых задач на время доставки сообщений по сети с СЛК-интерфейсом.

Пусть mi — тип сообщений, передаваемых по сети; m

сообщения типа т1 определяется разностью (т(3)) - ^ (т(3)). Период Т следования сообщений т1 равен минимально возможному интервалу между поступлениями однотипных сообщений в интерфейсный модуль передающего узла. Приоритет сообщений типа т1 определяется кодом типа сообщения, размещаемым в поле арбитража. Величиной, аналогичной величине С объема процессорного времени для выполнения заданий т(3), является длитель-

ность временного интервала, в течение которого коммуникационная линия передает сообщения типа mt :

с = (44 + 8Nf) 1 v

где Vi — скорость передачи данных по коммуникационной линии (число бит в секунду), Ni — число байт в поле данных сообщений типа mt.

Тогда время доставки R сообщений типа mt формально определяется выражением (1),

а его значение — решением уравнения (2). Иными словами, уравнение (2), используемое для оценки времени отклика в системе невытесняемых задач, может быть применено и для оценки времени доставки сообщений в сетях с CAN-интерфейсом.

Заключение. Использование предложенного метода вычисления максимального времени доставки сообщений в локальных сетях с CAN-интерфейсом позволяет строить программные приложения для таких сетей с проверкой гарантий своевременной реализации прикладных функций, исполнение которых разнесено по различным узлам системы. Таким образом может быть достигнуто надежное, предсказуемое поведение программных приложений реального времени, распределенных по узлам локальной сети, а также эффективное использование аппаратных средств, обеспечивающих не только своевременную обработку актуальной информации в узлах сети, но и своевременный обмен данными между компонентами, связанными коммуникационными линиями с CAN интерфейсом.

список литературы

1. Liu C. L., Layland J. W. Scheduling algorithms for multiprogramming in hard real-time environment // J. of the ACM. 1973. Vol. 20. P. 46—61.

2. Liu J. W. S. Real-Time Systems. NJ: Prentice Hall, 2000. 590 p.

Использование нелинейных последовательностей при построении двухдорожечных кодовых шкал 39

3. Данилов М. В. Методы планирования задач в системах реального времени // Программные продукты и системы. 2001. № 4. С. 28—35.

4. Никифоров В. В. Выполнимость приложений реального времени на многоядерных процессорах // Тр. СПИИРАН; Под общ. ред. Р. М. Юсупова. 2009. Вып. 8. С. 255—284.

5. Никифоров В. В. Разработка программных средств для встроенных систем. СПб: СПбГЭТУ, 2000. 74 с.

6. Введение в CAN 2.0B интерфейс. М.: ООО Микро-Чип, 2001: [Электронный ресурс]: <www.microchip.ru>.

Сведения об авторах

Виктор Викентьевич Никифоров — д-р техн. наук, профессор; Санкт-Петербургский институт информатики и автоматизации РАН, лаборатория технологий и систем программирования; E-mail: nik@iias.spb.su

Вячеслав Иванович Шкиртиль — канд. техн. наук, доцент; Санкт-Петербургский институт информатики

и автоматизации РАН, лаборатория технологий и систем программирования; E-mail: jvatlas@mail.rcom.ru

Рекомендована СПИИРАН Поступила в редакцию

08.02.10 г.

УДК 621.3.085.42

А. А. Ожиганов, П. А. Прибыткин

ИСПОЛЬЗОВАНИЕ НЕЛИНЕЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПРИ ПОСТРОЕНИИ ДВУХДОРОЖЕЧНЫХ КОДОВЫХ ШКАЛ ДЛЯ ПРЕОБРАЗОВАТЕЛЕЙ УГЛОВЫХ ПЕРЕМЕЩЕНИЙ

Рассматриваются методы построения двухдорожечных кодовых шкал для преобразователей угловых перемещений, базирующиеся на использовании нелинейных двоичных последовательностей. Приводятся примеры построения шкал.

Ключевые слова: нелинейная последовательность, кодовая шкала, считывающие элементы.

Кодовые шкалы (КШ) для преобразователей угловых перемещений, построенные на основе нелинейных двоичных последовательностей, рассмотрены в работе [1]. Такие шкалы получили название нелинейных кодовых шкал (НКШ).

НКШ любой разрядности имеют всего одну информационную кодовую дорожку (КД) и п считывающих элементов (СЭ). НКШ являются основой построения преобразователей, работающих по методу непосредственного считывания, и обеспечивают разрешающую способность, равную классическим КШ, маска которых выполнена в обыкновенном

двоичном коде или в коде Грея, т.е. 5 = 2п/ 2п .

В настоящей статье рассматриваются методы построения двухдорожечных нереверсивных НКШ с двумя СЭ, а также реверсивных НКШ с четырьмя СЭ, которые обладают разрешающей способностью, равной разрешающей способности классических КШ.

Особенность преобразователей угловых перемещений на основе НКШ с двумя (информационной и служебной) КД заключается в том, что в них для получения достоверной информации о положении кодируемого объекта первые п-1 участков (квантов) перемещения шкалы в одном направлении являются подготовительными, после чего эти устройства работают как классические преобразователи, построенные по методу считывания.