Цифровой преобразователь координат

Иллюстрации

Показать все

Реферат

 

ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ КООРДИНАТ, содержащий блок памяти исходных координат и угла, первый, второй и третий сумматоры-вычислители , первый и второй сдвигатели, первый , второй и третий коммутаторы, блок памяти констант, блок памяти величины, обратной коэффициенту деформации , и программный блок управления , причем первый информационный вход первого коммутатора подключен к выходу второго сумматора-вычитателя , а выход - к информационному входу первого сдвигателя, выход которого подключен к информационному входу первого сумматора-вычитателя, пер вый 1нформационный вход второго коммутатора подключен к выходу первого сумматора-вычитателя, а выход - к информационному входу второго сдвигателя , выход которого подключен к информационному входу второго сумматора-вычитателя , первый информационный вход третьего коммутатора подключен к выходу блока памяти констант, а выход - к информационному входу третьего сумматора-вычитателя, вход которого соединен с входом прсц раммного блока управления, выходы которого с первого по девятый подключены к управляющим входам первого, вто рого и третьего коммутаторов, первого и второго сдвигателей, первого, второго и третьего сумматоров-вычитателей и блока памяти констант соот ветственно, выходы первого и второго сумматоров-вычитателей являются выходами преобразователя, отличающийся тем, что, с целью повышения быстродействия, в него введены первый, второй и третий множительные блоки, четвертый, пятый и шестой коммутаторы и блок памяти масштабного коэффициента, причем первый, второй и третий выходы блока памяти исходных координат и угла подключены к первым информационным S входам четвертого и пятого коммутато (Л ров и третьего множительного блока соответственно, вторые информационные входы четвертого и пятого коммутаторов подключены к выходам соответственно второго и первого сумматороввычитателей , а выходы - к первым информационным входам соответственно первого и второго множительных бло .ков, выходы которых подключены к вторым информационным входам соответст х венно первого и второго коммутаторов, вторые информационные входы первого и второго множительных блоков подо ключены к выходу шестого коммутатора, 00 информационные входы которого подключены к выходу блока памяти величины, обратной коэффициенту деформации, и выходу третьего сумматора-вычитателя, второй информационный вход третьего множительного блока подключен к выходу блока памяти масштабного коэффициента ,выходы программного блока управления с десятого по двенадцатый подключены к управляющим входам четвертого , пятого и шестого коммутаторов соответственно.

СО)ОЗ СОВЕТСНИХ

СОЦИАЛИСТИЧЕСНИХ

РЕСПУБЛИН (19) (11) 3(51) G 0 6 F 7 / 5 4 8 .

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К ABTOPCHOMY СВИДЕТЕЛЬСТВУ выходу третьего сумматора-вычитателя, второй информационный вход третьего множительного блока подключен к ныходу блока памяти масштабного коэффициента,выходы программного блока управ ления с десятого по двенадцатый подключены к управляющим нходам четвертого, пятого и шестого коммутаторов соответственно.

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 3341530/18-24 (22) 06.10.81 (46) 28.02.84.Бюл. 9 8 (72) Л.С.Бельцер, И.A.Êîâàäëo и Л.И.Ковальчук (53) 681.3(088.8) (56) 1. Авторское свидетельство СССР

Р 445042, кл. G 06 F 7/38, 1973.

2. Авторское свидетельство СССР

)) 591860, кл. G 06 F 7/548, 1976.

3. Байков В.Д., Смолон В.Б. Аппаратурная реализация элементарных функций в ЦВМ. Л., Изд-во ЛТУ, 1975, с. 71, рис. 21 (прототип). (54)(57) ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ

КООРДИНАТ, содержащий блок памяти исходных координат и угла, первый, второй и третий сумматоры-вычислители, первый и второй сдвигатели, первый, второй и третий коммутаторы, блок памяти констант, блок памяти величины, обратной коэффициенту деформации, и программный блок управления, причем первый информационный вход первого коммутатора подключен к выходу второго сумматора-вычитателя, а выход — к информационному входу первого сдвигателя, выход которого подключен к информационному входу перного сумматора-вычитателя, пер вый .информационный вход второго коммутатора подключен к выходу первого сумматора-вычитателя, а выход — к информационному входу второго сдвигателя, выход которого подключен к информационному входу второго сумматора-вычитателя, первый информационный вход третьего коммутатора подключен к выходу блока памяти констант, а выход — к информационному входу третьего сумматора-вычитателя, нход которого соединен с входом прои раммного блока управления, выходы которого с перного по денятыи подключены к управляющим входам первого, вто рого и третьего коммутаторов, первого и второго сдвигателей, первого, второго и третьего сумматоров-вычитателей и блока памяти констант соответственно, ныходы первого и второго сумматоров-вычитателей являются выходами преобразователя, о т л и ч а ю шийся тем, что, с целью повышения быстродействия, в него введены первый, второй и третий мнсжительные блоки, четвертый, пятый и шестой коммутаторы и блок памяти масштабного коэффициента, причем первый, второй и третий выходы бло— ка памяти исходных координат и угла подключены к первым информационным входам четвертого и пятого коммутато ров и третьего множительного блока соответственно, вторые информационные входы четвертого и пятого комму- C таторов подключены к выходам соответстненно второго и первого сумматороввычитателей, а выходы — к первым Информационным входам соответственно первого и второго множительных бло:ков, выходы которых подключены к вто. рым информационным входам соответст\ венно первого и второго коммутаторов вторые информационные входы первого и второго множительных блоков подключены к выходу шестого коммутатора, информационные входы которого подключены к выходу блока памяти величины, обратной коэффициенту деформации, и

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

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

Преобразование координат на угол

C осуществляется последовательными, 15 поворотами. осей координат на углы . ; д1 2, представляющие собой члены ряда, в которых раскладывается угол C 4 90 и 20 и.-Е «;а ctg 2, (j) I где коэффициенты равны +1 или -1 и определяютСя по зависимости

$, ==э; 11(М,-K g1a(ctg 2- ) д с(икосм1-,1 (4

Угол Q(c О), и вычитается из частной суммы ((c... если эта сумма больше угла К (угол 0(1к,-„,10) .

Координаты х . и у при i-й итеf рации вычисляются по координатам 40 х;, и у„„, полученным при предыдущей (i-1) -й итерации, и коэффициенту ; из з ависимостей и) 50

Число (и+1) итераций определяется требуемой точностью вычислений: при числе итераций (n+l) погрешность суммарного поворота осей координат не превышает угла 2" 45.

В связи с тем, что при каждой

i-й итерации при повороте ., осей коор. динат на угол :a(cog 2 координаты, вычисляемые по алгоритму Волдера, деформируются по сравнению с координатами, которые были бы вычислены по точным формулам преобразования координат, и Sec (a et(c 1 ((=(It+2 раа, после (и+1);итераций1 координаты де- 60 формируются в k раз, где k — -коэффициент деформации 1k = Ï ((г l

1=О 65

Эту деформацию устраняют, умножив исходные координаты х„ „ и у„ „ на величину 1/k обратную коэффициенту деформации k (или же деформация устраняется умножением на величину 1/k координат х„ и у, нычисленных при последней и-й итерации) .

В снязи с простотой операций (суммирование и сдвиг кодов) и малым числом запоминаемых констант (кодов углов огс (Г 2 ) аглоритм Волдера часто используется в ЦВИ.

Известно предназначенное для решения тригонометрических задач по алгоритму Волдера арифметическое устройстно, которое содержит четыре канала координат х и у, угла Ж и величины K задаваемой для выработки функции К=а(съ1и Y/x. В каналах х, у,, z содержатся сдвигающие регистры, подключенные к их выходам и управляющим входам устройства коммутаторы, и подключенные к выходам регистров и коммутаторов сумматор в канале z и нычитатели н каналах х и у. Выход сумматора в канале z подключен к входу сдвигающего регистра и к выходу z устройства, подключенному .к входу блока управления.

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

Второй нход сумматора-вычитателя подключен к входу и устройства, а выход является выходом a(устройства и подключен к входам блока управления. Выходы устройства подключены к выходам блока управления, который содержит узел памяти константa(c(g 2 и вычитатели, определяющие знаки разности (Z-у„, ) при выработке функциид1сs1n к(х и разности (3) при преобразовании координат по алгоритму Волдера (Ц .

Однако данное устройство реализует алгоритм Волдера со следующими особенностями.

При каждой i-й итерации по алгоритму Волдера угол ;а(с1 (2 вводится два раза, в связи с чем i-й коэффициент деформации ) ; =1+2 :

Поэт ому после дв айной i-й и терации

1076903 н (1 2 ) =X х

1н «н

);„(< 2 где x., у — недеформированные ко(н ординаты, которые были 5 бы выработаны после этой итерации по точным формулам преобразования координат.

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

<н или у;„. 2 . Вычитание из деформи— рованной координаты указанной (сдвинутой íà 2i разрядов вправо) устраняет деформацию.

Кроме того, реализация трех зависимостей (3) — (5) алгоритма Волде- 30 ра производится не в одном вычислительном блоке, а в трех параллельно работающих каналах х, у и а. (канал

z при решении задачи преобразования координат не используется) . Однако 35 время вычисления увеличивается из-. за устранения деформации не один раз, а (п+1) раз — при каждой итерации, причем итерации в устройстве двоичные. 40

Таким образом, данное устройство характеризуется низким быстродействием.

Известно также устройство для вычисления значений координат . 45 вектора, содержащее три канала х, у и 0С выходы которых являются выходами устройства. Каждый канал содержит сумматор-вычитатель и сдвигаю щий регистр, вход которого подключен к выходу своего сумматора-вычитателя, а выход — к входу этого сумматора-вычитателя, второй вход которого в каналах х и у через коммутатор подключен к выходам сдвигающего регистра другого канала. Второй вход сумматора-вычитателя канала Ь подключен к выходу четвертого сдвигающего регистра, входы которого подключены к выходам блока памяти констант и элемента И. Входы элемен- 60 та И подключены к выходам четвертого сдвигающего регистра и управляюще .му входу устройства (2).

В данном устройстве зависимости (3) — (5) алгоритма Волдера решаются 65 в трех параллельных каналах, что сокращает время вычисления. Кроме того, в блоке памяти констант запоминаются. (n+1) /3 различных констант п с1ф 2, которые при выполнении первых (и+1) /3 итераций поступают из блока памяти констант в сумматор-вычитатель канала к, через четвертый сдвигающий регистр без сдвига кода, так как элемент И закрыт. После этого сигналом, поступающим на вход устройства, элемент И открывается, и все следующие константы а с1(2, поступающие в сумматор-вычитатель канала к, из чет. вертого сдвигающего регистра, образуются путем сдвига последней записанной в блоке памяти константы вправо на число разрядов начиная с одного разряда до числа 2(3 и разрядов. Благодаря этому в три раза сок> ращается число констант, подле-

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

Недостатком указанного устройства является большое время вычисления из-за необходимости выполнения всех (n+1) ит ераций по алгоритму Волдера, причем с увеличением номера итерации увеличивается время ее выполнения из-за увеличения числа разрядов сдвига кодов координат перед пересылкой их в другой канал.

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

Канал Ю содержит блок памяти констант, подключенный к нему первым входом третий коммутатор и подключенный к коммутатору накапливающий сумматор-вычитатель, Второй вход коммутатора подключен к блоку памяти исходных координат и угла, выход .сумматора-вычитателя подключен к входу программного блока управления, к другому входу которого подключен выход.. блока памяти величины 1/k.

Управляющие входы сумматоров-вычитателей, сдвигателей, коммутаторов

1076903 и блока памяти констант подключены к выходам программного блока управления от первого до девятого (3).

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

В йачале работы коды исходных координат и угла через коммутаторы вво дятс я в регистры сумматоров- вычи тателей. Потом по командам из программного блока управления выполняются 15 итерации по алгоритму Волдера от

1=0 до i— = n При каждой i-й итерации вод одной координаты поступает в канал другой координаты, сдвигается вправо на 1 разрядов и алгебраически суммируется с хранящимся в регистре сумматора-вычитдтеля кодом другой координаты: прибавляется и вычитается в соответствии со знаком плюс для кООрдинаты х и минус для КОординаты у и со значением коэффициента „ . Одновременно в канале с(, из полученного при предыдущей итерации остаточного угла иocr„(i 1) вычитается угол ; or c tg 2 ", а программный блок управления по знаку полученного нового остаточного угла х 0, „, определяет значение коэффициента ;, для следующей (i+1) -й итерации.

После выработки кодов х и у при выполнении последней итерации с но-. 35 мером i=n эти коды по командам программы умножения умножаются в сумматорах»вычитателях на величину 1/k, чем устраняется деформация координат, воз н и к ающа я при вы полн енин итераций 40 по алгоритму Волдера.

Благодаря одновременному решению всех трех зависимостей (3) — (5) алгоритма Волдера для преобразования координат цифровой преобразователь 45 координат выполняет вычисление за время примерно в три раза меньшее чем классическая ЦВМ, содержащая одно арифметическое устройство. Тем не менее время вычисления в указанном преобразователе остается большим из-за необходимости выполнения всех (n+1) итераций по алгоритму

Волдера, особенно в тех случаях, когда требуется высокая точность вы"числения и, соответственно большое число итераций и сдвиг кодов координат во второй половине итераций на большое число разрядов. .Цель изобретения — повышение быст- 6() родействия цифрового преобразователя координат.

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

1076903 рого используется, например, микросхема K589HK01), узел 34 памяти те5 кущих команд, узел 35 памяти кодов управления адресом следующей команды и генератор 36 тактовых импульсов.

Преобразователь работает.по программе, заложенной в программном блоке 19 управления н виде последовательности кодов, отдельные разряды!

20 ключен к информационному входу треть его сумматора-вычитателя 4. К выходам сумматоров -вычитателей 3 и 2 подключены также вторые информационные входы соответственно четвертого

10 и пятого 11 коммутаторов, первые информационные входы. которых подключены к первому и второму выходам бло- 30 ка 1 памяти исходных координат и угла. К выходу сумматора-вычитателя

4 подключен информационный вход шестого коммутатора -.12,. а информационный вход коммутатора 9 подключен к выходу блока 13 памяти констант.

К выходу коммутатора 12 подключены вторые информационные входы первого

14 и второго 15 множительных блоков, первые информационные входы которых подключены к выходам коммутаторов 40

10 и 11 соответственно.,Первый.инфор мационный вход третьего множительного блока 16 подключен к третьему выходу блока 1 памяти исходных координат и угла, второй информационный 45 вход — к выходу блока 17 памяти масштабного коэффициента, а выход к второму информационному входу коммутатора 9. Выход блока 18 памяти величины, обратной коэффициенту деформации, подключен к информационному входу коммутатора 12, а выход сумматора-вычитателя 4 соединен с . входом программного блока 19 управления, выходы которого с первого по двенадцатый подключены к управляющим входам первого 7, второго 8 и третьего 9 коммутаторов, первого 5 и второго 6 сдвигателей, первого 2, второго

3 и третьего 4 сумматоров-вычитате- щ лей, блока 13 памяти констант, а также четвертого 10, пятого 1.1 и.шестоуправляющим входам четвертого, пятого и шестого коммутаторов соответственно °

На фиг. 1 представлена структурная схема цифрового преобразователя координат; на фиг. 2 — структурная схема программного блока управления; на фиг. 3 — блок-c åìà алгоритма работы программного блока управления.

Преобраз ователь содержит блок 1 памяти .исходных координат и угла, первый 2, второй 3 и третий 4 сумматоры-вычитатели, первый 5 и второй

6 сдвигатели, выходы которых подключены к информационным входам соответ ственно первого 2 и второго 3 сумматоров-вычитателей, а информационные входы — к выходам соответственно первого,7 и, второго 8 коммутаторов, первые информационные входы которых подключены соответственно к выходам сумматоров-вычитателей 3 и 2, и третий коммутатор 9, выход которого подго 12 коммутаторов. Выходы сумматоров вычитателей 2 и 3 являются выходами преобразователя.

Блок 19 имеет вход 20 и выходы

21-32 и содержит узел 33 микропрограммного управленйя (в качестве котоили группы разрядов которых представляют собой команды, выдаваемые в управляемые блоки. B коммутаторы

7-12 — команды подключения к информационному входу следующего за коммутатором блока выхода одного из двух блоков, подключенных к информационным входам коммутатора, в сумма; торы-вычитатели 2 — 4 — команды прибавления или вычитания кодов, поступающих иэ сдвигателей 5 и 6 и блока

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

Команды записаны в узле 34 в виде кодов, в которых для каждого иэ управляемых блоков 2 — 13 цифрового преобразователя координат отведено свое поле . для коммутаторов 7 — 12 одноразрядные поля (код команды 0 "- передача кода с первого входа коммутатора на выход, код 1 — передача кода с второго входа на выход); для сумматоров-вычитателей 2 — 4 двухразрядные поля (код команды 00 сложение, код команды 01 — вычитание, код команды 10 — запись в регистр); для сдвигателей 5 и 6 и блока 13 памяти констант — p -разрядное поле, где P — целое число, превышающее

Bog (n/2+1) .

Преобразователь работает следующим образом.

По командам из блока 19 коммутаторы 10 и 11 передают в множительные блоки 14 и 15 исходные координаты х„ „ и у„ „ из блока 1 памяти исходных координат,и угла, а коммутатор 12 — величину 1/k из блока 18 памяти величины, обратной коэффициенту деформации. Коммутаторы 7 и 8 передают коды х„ „/)с и y cx/k иэ множительных блоков 14 и 15 в сдвигатели 5 и 6, в которых по командам из блока 19 установлен нулевой сдвиг кодов. Величины х„ „/k и у„ „/k через; сдвигатели 5 и 6 поступают в сумма1076903

10 торы-вычитатели 2 и 3, где по коман- дам из блока 19 записываются в регистры. Одновременно с укаэанными операциями коммутатор 9 передаетв сумматор- вычитатель 4 код 2%К „ „ из множительного блока 16, на информационные входы которого внодятся

Л. коды а „с из блока 1 и 2 и из блока 17 памяти масштабного коэффициен— та, Код 2 к g „cx ïî команде из бло—

I ка 19 записывается в регистр сумма- )О тора-вычитателя 4.

Затем по командам из блока 19 коммутаторы 7 и 8 подключают к информационным входам сднигателей 5 и б ны— ходы соответственно второго 3 и пер†)5 ного 2 сумматоров-вычитателей, коммутатор 9 подключает к информационно— му входу третьего сумматора-вычитателя 4 выход блока 13 памяти констант и преобразователь по командам из блока 19 выполняет последовательно итерации по зависимостям (3) — (5) алго ритма Волдера от итерации с номером

i=0 до итерации с номером i=n/2, где 2 45 — заданная максимальная погрешность учета углами .

При каждой i-й итерации по командам иэ блока 19 с выхода сумматоранычитателя 3 через коммутатор 7 в сдвигатель 5 поступает код у„ q, выра- 31 ботанный при предыдущей (3. — 1)-й итерации, а с выхода сумматора-нычитателя 2 через коммутатор 8 в сдвигатель б поступает код х... выраьотанный при предыдущей (i — 1)-й итерации; 35 сдвигатели 5 и b сдвигают коды у; и х, на 1 разрядов вправо и пере-. дают сдвинутые коды у<, 2 " и х;, 2 в сумматоры-вычитатели 2 и 3 соответственно; в сумматорах-нычитателях 4р

2 и 3 коды у; . 2 и х;, 2 " в зависимости от канала и значения коэффициента либо прибавляются к кодам х;, и у„ соответственно, хранящимся н регистрах Чумматоров-вычитателей 2 и 3, либо вычитаются из кодов х„., 45 и у, < (коэффициент „, определенный при предыдущей (i-1) — и итерации, выдается из блока 19); полученные коды х; и у„ записываются в регистры сумматоров-нычитателей 2 и 3 нместо хранившихся там до этого кодов х<, и у„, одновременно с перечисленными операциями коммутатор 9 передает из блока 13 в сумматор-вычитатель 4 код i-й константы gretg 2, который с учетом выработанного при предыдущей (i-1)-й итерации значения коэффициента g нычитает код этой константы из накопленного кода угла или прибавляет код конс- 60 танты к ходу углами, 1,, и вырабатывает новый код угла,, приближающегося с каждой новой итерацией к нулю; знак этого кода yrvaccдс, запоминается в,блоке 19 н качестве знака коэффициента,, для следующей (1.+1)-й итерации.

Таким образом, при 1-й итерации преобразователь вырабатывает коды координат х „ и у; и коэффициент, После выполнейия итерации с номером i=n/2 коммутаторы 7 и 8 по командам из блока 19 подключают информационные входы сдвигателей 5 и б .к выходам множительных блоков 14 и 15 соответственно, в сднигателях 5 и 6 устанавливается нулевой сдвиг кодов, коммутатор 10 подключает первый информационный вход множительного блока 14 к выходу сумматора-вычитателя 3, коммутатор 11 подключает первый информационный вход множительного блока 15 к выходу сумматора-вычитателя

2, а коммутатор 12 подключает вторые информационные входы обоих множительных блоков 14 и 15 к выходу сумматора-нычитателя 4, в регистре которого в этот момент записан код углами /

Тогда в множительных блоках 14 и

15 вырабатываются коды произведений уи(. осюпд и х „ (.ос п,и) соответственно. Эти коды поступают соотнетственно через коммутатор 7 и сдвигатель 5 в сумматор-вычитатель 2 и через коммутатор 8 и сдвигатель 6 в сумматор-вычитатель 3, где код у„, у«„, прибавляется к коду х я а код х . к )2 вычитается из кода у (, образуя выходные координаты х д „и уд, поступающие на выхо-. ды преобразователя.

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

Программный блок 19 управления, осуществляющий управление блоками

2-13 преобразователя при решении описанной задачи, работает по алгоритму, представленному на фиг. 3.

Алгоритм работы блока 19 состоит из двух ветвей: выработки кода текущей команды и управления адресом следующей команды.

Адрес команды (правая ветнь алгоритма на фиг. 3) вырабатывается следующим образом.

Номер j текущей команды начиная с 3 =1 поступает н узел 33 и проверяется на равенство его номеру jk команды конца программы. При этом используется условный переход по условию j=j . При невыполнении этого ус лония (при jcj„) номер j н виде ко— да N> из узла 33 поступает н узел

35 в качестне адреса, по которому из последнего выбирается и выдается в узел 33 код (3+1). Этот код задерживается на время выраьотки и исполнения в преобразователе j-й команды. (В блок-схеме алгоритма это отмечено блоком Ожидание ) . За1076903 держка, как и вообще вся синхронизация работы блока 19, осуществляется генератором 36 тактовых импульсон

Когда номер 1 становится равным номеру 1», происходит переход к окончанию работы преобразователя (к блоку Стоп ) .

Код команды в блоки 2-13 преобразователя вырабатывается по левой вет. ви алгоритма на фиг. 3.

В узел 33, кроме номера 1 команды,10 поступающего иэ узла 35, поступает также из блока 4 код знакового разряда кода угла М осю, 0 при

Жо S 0 и 1 приКоо с0. НомеР команды ° ïðîâåðÿåòñÿ на выполнение 15

его равенства номеру jeep, соответствующему команде, выполненной после выполнения в преобразователе (П/2+1) итераций по алгоритму Волдера. При невыполнении условия )= )gap номер1 используется для выработки адреса текущей команды вместе с.проверкой условия N4†= В зависимости от этого условия. номер j или передается

Узел 34 в качестве адреса (при

N4=0), или происходит переход к адресу j4 ю, где jie j »(чтобы номер команды jam не совпал с одним иэ номеров « » ).

11 о выработанному адресу 1 или

1+щ из узла 34 выбирается и выдается в блоки 2-13 код 1 команды для выполнения в преобразователе текущей итерации алгоритма Волдера при

=+1 или код (1нн) -.й команды для выполнения в преобразойателе теку- 35 щей итерации алгоритма .Волдера при ; =-1.

Когда выполи яетс я услови е ) = я (после окончания итерации с номером ! = и/2), номер)д р поступает в узел 4() 34 в качестве адреса, по которому выбирается код команды для умножения кода углаoLq< на коды координат хn

1 = ) яе i4 как по адресу, из узла

34 выбирается код команды для прибав ления кода 3nl? ос,,г к кеду х,цг и вычитания кода х„,, из кода уи)г

Такое построение преобразователя позврляет беэ ухудшения точности вычислений уменьшить практически в два раза — с (n+1) до (т/2+1) — число итераций по алгоритму Волдера и заменить нторую половину итераций по этому алгоритму операциями умножения кодов координат х„ г и у„ вычисленных при итерации с номером

1=n/2, на код остаточного угла

Кос,„и(г Р вычисленного при этой ите рации, и операциями вычитаний кода 6О произведения х„. к« „ из кода координаты у „ г и прибавления кода произнеДениЯ У„ о, к коДУ кооР хй)г °

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

Расчеты, выполненные для случая построения предлагаемого преобразона теля и прототипа на элементах тех же серий микросхем 133,556 и К589 и при одинаковой точности вычислений (погрешность учета угла e не более 2,45 ), показывают, что, если даже считать среднее время выполнения одной итерации одинаковым для обоих преобразователей, время, затрачиваемое только на собственно преобразование коодинат (без устранения деформации координат), в предлагаемом преобразователе на 41% меньше, чем в прототипе.

Кроме того, среднее время выполнения одной итерации в предлагаемом преобразователе по сравнению с известным на 10 -20% меньше, так как максимальный сдвиг кодов в нем проис. ходит не на п, а на и /2 разрядон, что позволяет применять более простые и, соответственно, с большим быстродействием сдвигатели.

Умножение координат на величину

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

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

107б903

ык

2b

27

Л

21

ZZ

23

3f

32

ГУ оиг.2

Составитель В . Берез кин

Редактор A.Огар Техред C.Легеза Корректор О.Билак

Заказ 750/4б Тираж 699 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д. 4/5

Филиал ППП Патент, г.ужгород, ул.Проектная, 4