Обработка вещественных данных в микроконтроллерах с арифметикой фиксированной точки

Последнее рекомендуется при интерполяции отрезков кривых синусоиды - косинусоиды, эллипса, циклоиды и др.

Однако более важно применение данного целочисленного алгоритма цифровой интерполяции при графоаналитическом моделировании сложных кинематических систем (например, манипуляционных роботов со многими степенями свободы).

Это даёт большие перспективы применения при автоматизации пространственных устройств со многими силовыми приводами по каждой координате, так называемой «электронной кинематики» [5].

Конкретные примеры применения обобщённого алгоритма цифровой интерполяции разработаны в Академии маркетинга и социально-информационных технологий (г.Краснодар) и приведены в [6, 7].

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Агурский М. С. и др. Числовое программное управления станками. -М.: Машгиз, 1966. С. 144149.

2. Способы подготовки программ и интерполяторы для контурных систем программного управления станками. -М.: Машгиз. 1970. С. 52 - 57

3. Анишин Н. С., Тивков А. М. Оптимальный алгоритм цифровой линейной интерполяции. Изв. вузов. Приборостроение. 1983. №8. С. 56 - 59.

4. Анишин Н. С. и др. Оптимальный алгоритм цифровой круговой интерполяции. Изв. вузов. Приборостроение. 1983. №6. С. 44- 50.

5. Платонов А. К. Проблемы разработки микропроцессорных средств для управления роботами. Микропроцессорные средства и системы. 1984. №1. С. 22 - 27.

6. Анишин Н. С. Цифровые интерполяторы криволинейных траекторий. Автоматика и телемеханика. 1986. №12. С.95 - 101

7. Анишин Н. С. и др. Целочисленные алгоритмы вычисления интеграла вероятностей//Сборник докладов на международной научной конференции «СуперЭВМ и многопроцессорные вычислительные системы (МВС - 2002)». Таганрог, 2002. С. 148 - 152.

М.И.Ледовской

ОБРАБОТКА ВЕЩЕСТВЕННЫХ ДАННЫХ В МИКРОКОНТРОЛЛЕРАХ С АРИФМЕТИКОЙ ФИКСИРОВАННОЙ ТОЧКИ

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

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

В настоящее время режиму вычислений с фиксированной точкой отводится вспомогательная роль, а обработка вещественных данных, как правило, выполняется в

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

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

В переводной литературе данный вопрос не освещается, что отчасти объясняется сознательной политикой зарубежных фирм, стремящихся стимулировать рынок дорогостоящих микропроцессоров и микроконтроллеров, у которых режим плавающей точки реализован аппаратно [3]. В отечественной литературе обработка вещественных данных в формате правильных дробей рассматривалась ранее [4,5], а в в формате целых чисел - не получила должного внимания. Например, в работах [6,7], посвященных формату целых чисел, не затрагиваются вопросы масштабирования и программирования масштабированных зависимостей. По этой причине ниже излагается методика решения указанных вопросов в формате целых чисел и проводится аналогия с форматом правильных дробей.

Пусть переменная х изменяется в некотором ограниченном диапазоне

I x | 1 x |< | x [^х, принимая в общем случае вещественные значения. Рассмотрим

представление этой переменной в режиме фиксированной точки.

В данном случае машинная переменная может принимать только целые или дробные значения в интервалах 0< |хц[<2п-1-1 или 0< |хд |<1-2-(п-1) соответственно, где п - разрядность формата данных (рис.1).

п-1 п-2 1 0

Зн

п-1 п-2 1 0

Зн

Рис. 1. Форматы целых чисел и правильных дробей

Несмотря на это, машинная переменная Хц или хд может выступать как модель вещественной переменной х. Для этого достаточно выполнить масштабирование и последующее округление:

Хм = х • Мх, Хц =[ХМ ]ц ;

хм = х • тх> хд = [хм]д ,

где Mx и mx - масштабы, позволяющие отобразить вещественные значения | x | miп< | x | < | x | max в область целых чисел 1< | Хц | <2п-1-1 и правильных дробей

0< | хд | <1-2-(п-1) соответственно; Хм, хм - масштабированные значения; [*]ц и [*]д -

операторы округления для получения п-разрядного числа (рис. 1).

Заметим, что преобразования (1) и (2) выполняются в соответствии с известным методом постоянных масштабов [4]. В результате этих преобразований получается машинная переменная Хц или хд в виде безразмерной величины. Следовательно, масштабы Mx и mx имеют размерность.

Для обеспечения высокой точности вычислений следует принимать М^Мща^^11-и mх=mmax=(1-2-(п-1))/1x |max. Однако выполнение данного требования

приводит к появлению большого количества выравнивающих коэффициентов в масштабированных математических зависимостях, что увеличивает объем вычислений. Для сокращения количества выравнивающих коэффициентов масштабы приходится выбирать из более мягкого условия Мх£Мшах и тх<шшах. С учетом последнего обстоятельства рабочие формулы для выбора масштабов приобретают вид

2п-1 -1 1 - 2-

Мх £ Мтах _ ~\ | , тх £ ттах _ \ \

X х

I 1тах I 1тах

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

Из (3) следует, что масштабы Мх и тх связаны следующим соотношением: Мх =

2п-1шх. Если операторы [*]ц и [*]д в преобразованиях (1) и (2) реализуют одинаковый способ округления, то между машинными переменными Хц и хд устанавливается аналогичное соотношение:

Хц = 2п-1хд,

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

С масштабами тесно связано такое важное понятие как квант Ах переменной х. Квант - это минимальное значение переменной х, которое соответствует единице младшего разряда машинной переменной Хц или хд, т.е. [Ах-Мх]ц= | Хц | ш1п =1 или [Ах-шх]д= | хд | ш1п =2"(п_1) соответственно. Следовательно, с учетом (3) квант Ах можно представить в виде

1 IX 2-(п-1) |х|

Ах = — > 1 1тах , Ах =2-----------------------> 1 1тах .

Мх 2п-1 -1 тх 2п-1 -1

Из формул (4) видно, что, выбирая масштабы, мы задаем квант Ах. Причем величина кванта является одинаковой для формата целых чисел и правильных дробей.

С учетом (4) преобразования (1) и (2) можно представить в виде

Хц =

Ах

хд = 2-

Ах

ц

Нетрудно видеть, что (5) и (6) представляют собой алгоритмы аналого-цифрового преобразования, если вещественную переменную х рассматривать как аналоговую величину. Таким образом, преобразования (1) и (2), основанные на масштабировании, можно трактовать как алгоритмы аналого-цифрового преобразования.

Погрешность представления переменной х с помощью преобразований (1), (2) или (5), (6) можно оценить следующим образом:

х

ц

х

N £

Ax » 2 (n 1)|x|max, округление с недостатком или с избытком;

округление по 1 / 2.

или с избытком;

2

По аналогии с преобразованиями (1), (2) или (5), (6) арифметические операции над вещественными переменными моделируются в формате целых чисел и правильных дробей с помощью соответствующих моделей. Получим в качестве примера модель операции умножения вещественных переменных z=x-y в формате целых чисел, предполагая, что интервалы | x | mm< | x|<|x| max, | y | тт< | y|<|у| тах, и

I z | тт< | z |<| z | max известны. При этом сопоставим подходы, основанные на преобразованиях (1) и (5), считая их независимыми. Преобразования (1) и (5) позволяют выразить переменные x, y, z следующим образом соответственно:

x » Хц/Mx, у » Yц /My, z » Zц/Mz ;

x » X^x, у » УцАу, z » ZцAz ,

где Хц, Уц, - целочисленные значения вещественных переменных x, y, z; Mx, My, Mz -

масштабы, а Ax, Ay, Az - кванты этих переменных. Пусть масштабы и кванты выбраны так, что M^l/Ax, My=1/Ay, Mz=1/Az. Тогда, используя выражения (8) или (9) в операции z=x-y, получаем одну и ту же модель для обоих преобразований

~ Mz Х Y AxAyx Y Z —-------Хц Y ц —--------Хц Y ц ,

MxMy ц ц Az ц ц

Z — Йц.

Аналогично для формата правильных дробей. И в этом случае, рассматривая преобразования (2) и (6) как независимые и полагая, что mj^'^VAx, my=2 '(n-1)/Ay, mz=2' (n-1)/Az, получаем модель одного и того же вида

~ mz „n-i AxAy

z —----z—xnyn — 2 ----^xnyn,

mxmy д д Az д д

ъд — Ид ’

где хд, уд, zд - значения переменных x, y, z в формате правильных дробей; mx, my, mz -масштабы этих переменных.

Полученные результаты позволяют сделать вывод о том, что процедуру

масштабирования математических зависимостей, основанную на преобразованиях (1) и

(2), можно трактовать как процедуру получения квантованных зависимостей, основанную на преобразованиях (5) и (6) соответственно, где каждая переменная имеет свой квант.

В табл.1 приведены модели операций сложения (вычитания), умножения и деления вещественных чисел в формате целых чисел и правильных дробей. В данной таблице используются следующие обозначения: Хц, Уц и хд, уд - входные, а и zд -выходные переменные моделей в формате целых чисел и правильных дробей; Z и ~z -промежуточные (неокругленные) переменные моделей; div - оператор получения целого

~ 1/2

частного Zц (с недостатком); mod - оператор получения целого остатка Wn, [*]ц и

12

[•]Д - операторы округления по % для получения п-разрядного целого значения и п-

разрядной правильной дроби соответственно.

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

28 = Мъ = ^ = Ах 2г = Мъ = ^ = Ах

Мх тх Аъ ’ Му Шу Ау

Коэффициент 2-к вводится в данные модели искусственно во избежание переполнения разрядной сетки [4].

Модели операций умножения и деления в формате целых чисел и правильных дробей содержат разные выравнивающие коэффициенты соответственно

2-п+р = Мъ АхАУ 2n-q = МъМу Ах .

МхМу Аz ’ Мх АъАу ;

2р-1 = тъ = 2п-1 АхАу 2-q + 1 = тъту = 2

тхШу А/ тх АъАу

Таблица 1

Операция над вещественны ми переменными Модель операции в режиме фиксированной точки

Формат целых чисел Формат правильных дробей

ъ = х ± у 2к = тах{25, 2Г}, ~ }25Хц ±2ГYц,если2k £ 1. [2к(25-кХц ±2Г-к Yц), если 2к > 1, Zц = иЩ2. 2к = тах{25, 2Г}, ~ [25хд ±2Гуд,если2к £ 1. [2к (25-к хд ± 2Г-к уд), если 2к > 1, ъд =[~]Д2.

X N N 2 = 2-п+р (Хц  Уц), 2ц = ЙЩ2. I ~ " 11 " ч ^ N

z = х/у Wц = (2n-qXц)modYц, Zц = (2п^Хц)^Уц, }~ц , если Wц £ 2 1 Уц . } Zц + 1, если Wц > 2 1 Уц . ~ = 2 4+1 (Хд /Уд), 2д = [~]Д/2

Промежуточные переменные моделей Z и ъ представляются в форматах двойной длины, которые отличаются предполагаемым положением точки (рис.2). В

соответствии с табл. 1 переменные Z и Z подвергаются округлению по % с помощью 12 12

операторов [•]ц и [*]Д соответственно

где Р^п '[»]2 - функция, обозначающая выделение старшей части из двоичного числа двойного формата [7]. Поскольку константы 2"1 и 2"п представляют собой единицу (п-1)-го разряда, то алгоритмы (15) и (16) по своей сути являются одинаковыми.

2п-1 2п-2 п-1 п п-1 п-2

Зн ••• . •••

а)

2п-1 2п-2 п-1 п п-1 п-2 1

Зн

б)

Рис.2. Форматы промежуточных переменных а) Z в формате целых чисел; б) ъ в формате правильных дробей

Несмотря на отмеченные отличия моделей арифметических операций в формате целых чисел и правильных дробей, двоичные образы выходных переменных Zц и zд совпадают. Это легко показать, если в целочисленных моделях выразить аргументы Хц и Уц через хд и уд. После этого необходимо потребовать, чтобы арифметические операции над правильными двоичными дробями и целыми двоичными числами выполнялись идентично. Тогда выполняется ожидаемое соотношение Zц = 2п-12д.

Формулы для оценки предельных абсолютных погрешностей моделирования арифметических операций в режиме фиксированной точки приведены в табл.2.

Таблица 2

Операция над вещественными переменными Абсолютная погрешность моделирования операций в режиме фиксированной точки

X = ъ ут\£ у • рх +х • ру+\Лг

у X = ъ II 1 1 1 X 1 1 1 уъ\ £ ^ 1—Г• + ТЛг |у| М 2

Заметим, что предлагаемые модели легко программируются с помощью команд, которыми оснащаются современные микроконтроллеры. Если для программирования используется язык Ассемблера, то модели арифметических операций целесообразно оформить в виде макроопределений и включить их в макробиблиотеку пользователя. Т огда основная программа превращается в последовательность макровызовов, в каждом из которых формальные параметры заменяются фактическими. Такой подход существенно упрощает разработку и отладку программ для микроконтроллеров, так как большинство вопросов решается один раз при программировании четырех макроопределений (сложения, вычитания, умножения и деления). Ниже в качестве примера приводится макроопределение, в котором запрограммирована модель операции умножения в 8-разрядном формате целых чисел на А8М-86:

%*DEFINE (MIMUL8(X,Y,p,Z)) LOCAL POZ

(

POZ:

)

MOV AL,%X IMUL %Y MOV CL,%p SHL AX, CL

JNS POZ

ADD AH,0FFH ADD AX,80H MOV %Z,AH

; Умножаем X на Y

; Учитываем 2р

; Учитываем 2" округляем по 1/2

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Ланнэ А.А., Семенов О.Б., Фукс В.Л. Цифровые процессоры обработки сигналов фирмы Motorola: Обзор. - С.-Пб.: С.-Петербургский университет телекоммуникаций им. проф. Бонч-Бруевича, 1997. - 36с.

2. Гаврилов Ю.В., Пучко А.Н. Арифметические устройства быстродействующих ЭЦВМ. - М.: Сов. Радио, 1970. - 280 с.

3. Пустоваров В.И. Язык ассемблера в программировании информационных и управляющих систем. - М.: ЭНТРОП, Киев: ВЕК, 1996. - 304 с.

4. Разоренов Г.И. Выбор масштабов при моделировании. - М.: Сов. радио, 1973. - 160 с.

5. Матов В.И. и др. Бортовые вычислительные машины и системы. - М.: Высш. шк., 1980. -216с.

6. Соколенко П.Т. Электроника-60: Программирование на языке Ассемблера. - Изд-во

Ростовского университета, 1985. - 176с.

7. Пьявченко О.Н. Алгоритмические основы выполнения математических операций в микрокомпьютерах. - Таганрог: Изд-во ТРТУ, 1998. - 190 с.

А.Б.Клевцова

ИНТЕГРАЛЬНАЯ ОЦЕНКА СОСТОЯНИЯ ОБЪЕКТА МОНИТОРИНГА

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

Объект, как правило, представляет собой древовидную структуру.

Назовем условно уровни иерархии структуры объекта следующим образом: объект, субобъект, компонент. Т.е. состояние объекта определяется состоянием субобъектов, которые оцениваются состоянием их компонентов, состояние которых в свою очередь определяется переменными состояния, описывающими эти компоненты.

и