Цифровой преобразователь координат
Иллюстрации
Показать всеРеферат
ОП ИСАНИЕ
ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
Союз Советск мк
Социалистические
Республик
<и 943715 (6) ) Дополнительное к авт. свмд-ву (22) Заявлено 19. 3 2.80 (2l ) 3007592/18-24 (51)м. Кл .
Ст 06 Р 7/548 с присоединением заявки М вуйаРстеевкие кеиктет
ИВР аю дав взебретевкй и втермтвй (23) Приоритет
Опубликовано 15.07.82. Бюллетень Йе 26
Дата опубликования описания у7.07.82 (53) УДК 681.З (088.8) С. К. Дауров, В. И. Кнышев, В. Л. С и Г. М. Чекаловец (72) Авторы изобретения ливицкий дййий с
Саратовский политехнический инстит институт "Сапф (75) Заявители (54) БИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ КООРДИНАТ
Изобретение относится к цифровой
Ьычислительной технике и может быть использовано д.л преобразования прямоугольных и полярных координат.
Известно устройство, реализующее .алгоритм Волдера, содержащее сумматоры, сдвигаюшие регистры, ПЗУ констант и блок управления jig.
Недостатком данного устройства является относительно низкое быстродейf0 ствие.
Наиболее близким по технической сущности. к изобретению является устройство для вычисления значений координат вектора (2g.
Недостатком известного устройства . является относительно низкое быстродействие, а также деформация длины вектора в результате его поворота, для компенсации которой возникает необходимость в проведении второго цикла: . преобразования, что снижает быстродей ствие устройства.
Бель изобретения — повышение быстродействия устройства.
Поставленная цель достигается тем, что в цифровой преобразователа коорди- нат, содержащий первый и второй регистры, первый и второй коммутаторы блок постоянной памяти, первый и второй сумматоры»вычитатели и блок управления, причем выход первого сумматоравычитателя соединен с первым выходом устройства и входом первого регистра, выход второго сумматора-вычитателя соединен с вторым выходом устройства и входом второго регистра, дополнительно введены третий регистр, первая и вторая группы элементов И, третий коммутатор, дешифратор, распределитель, элемент ИДИ-НЕ, причем разрядные выходы первого и второго регистра соединены с входами первых групп первого и второго коммутаторов и с входами элементов HE первой и второй группы соответственно, входы вторых групп первого и второго коммутатаров соединены
3 9437 1
I с выходами элементов HE первой и второй групп соответственно, выходы первого и второго коммутаторов соединены соответственно с первым и вторым входами групп третьего коммутатора, выход которого соединен с входом дешифратора, выходы которого соединены с соответствующими входами горизонтальных шин блока постоянной памяти, первый и второй выходы которого соединены с входами са-i0 ответственно первой и второй групп элементов И, первые выходы которых соединены с первыми входами соответственно первого и второго сумматороввычитателей, вторые входы которых соединены с вторыми выходами соответственно второй и первой групп элементов И, ° управляющие входы которых соединены с первым выходом блока управления, второй выход которого соединен с управляющими входами первого и второго сумматарой-вычитателей, третий выход блока управления соединен с управляющим. входом распределителя, выходы которого соединены с соответствующими входами вертикальных шин блока постоянной памяти и входами элемента ИЛИ-НЕ, выход которого соединен с первым входом блока управления, второй вход которого сое динен с первым входом элемента ИЛИ-HE третий вход блока управления соединен с выходом знакового разряда первого регистра и с управляющим входом первого коммутатора, четвертый вход блока управления соединен с выходом знакового разряда второго регистра и управляющим входом второго коммутатора, управляющий вход третьего коммутатора соединен с первым выходом блока управления, причем блок управления содержит первый, второй, третий и четвертый триггеры, палусумматор, первый и второй элементы
HIIH, первый и второй элементы И, синхро:генератор, распределитель импульсов, коммутатор и элемент НЕ, причем первый вход первого элемента ИЛИ соединен с первым входом блока управления, второй вход которого соединен с первым входом распределителя импульсов и первыми входами первого и второго элементов И, вторые входы которых соединены соответственно с выходами первого и второго триггеров, входы которых соединены соответственно с третьим и четвертым входа. ми блока управления, первый выход распределителя импульсов соединен с уста- 55 новочными входами первого, второго, третьего и четвертого триггеров, выход коммутатора соединен с первым выхо5 4 дом устройства, второй выход которого соединен с выходами первого и второго элементов И, выходом третьего триггера и первым входом коммутатора, второй вход которого соединен с выходом элемента НЕ, вход которого соединен с третьим входом коммутатора, вь ходом синлрогенератора и вторым входом распределителя импульсов, второй выход которого соединен с первым входам второго элемента ИЛИ, второй вход которого соединен с выходом палусумматора, первый и второй входы которого соединены соответственно с третьим и четвертым входами блока управления, третий выход которого соединен с выходом первого элемента ИЛИ, второй вход которого соединен с выходом четвертого триггера, вход которого соединен с входом элемента НЕ Выход второго элемента ИЛИ соединен с входам четвертого триггера.
На фиг. 1 приведена структурная схема устройства: на фиг. 2 - диаграмма приведения вектора к первому квадрату; на фиг. 3 - структурная схема устрой- ства управления.
Устройство (фиг. 1) содержит регистры 1,2 и 3, элементы НЕ 4 и 5, коммутаторы 6,7 и 8, группы элементов И 9 и 10, дешифратор 11, блок постоянной памяти -12, распределитель 13, элемент
ИЛИ-НЕ 14, сумматоры-вычитатели 15 и 16 и блок управления 17. Структурная схема (фиг. 3) блока управления 17 содержит триггеры 18, 19,20 и 21 со счетными входами олусумматара 22, элементы ИЛИ 23 и.24, И 25 и 26, синхрагенератар 27, распределитель импульсов 28, коммутатор 29, элемент
НЕ 30.
Принцип функционпрования устройства основан на реализации выражений: х х с 05 ОС - у s< p аб у у case@+ х амадо с использованием постоянной памяти, в которой записаны значения С соаоС1
С QiA о, где С - значение координаты
Х или У;. + — признак прифармирования (по некоторому адресу постоянной памяти записано слово двойней разрядности, первые tl разрядов которого определяют значение С сазе, а вторые разрядов—
С 5i а Оа ); О " - значение угла, соот — ветствующее j -му разряду кода угла
N . При кодировании угла в диапазоне от 0- "/2, ос -2 i /2, i = 1,2... n ..
9437
Блок постоянной памяти 12 можно представить в виде прямоугольной матрицы, имеющей 2" горизонтальных шин (соответствующих всевозможным значениям координат Х или У) и П вертикальных шин (соответствующих разрядам кода угла М ). На пересечении i -ой горизонтальной и -ой вертикальной шин записано слово двойной разрядности, например Х CoSa . » Х Юоанн . t6
Устройство работает следующим образом.
Начальное состояние блока управления
17 характеризуется установкой сигналом с первого выхода распределителя импульсов 28 в нулевые положения триггеров
18, 19,20 и 21. Координаты Х, У и угол at эасылаются в регистры 1,2 и 3 соответственно, функционирование устройства осуществляется по тактам, каждый из которых состоит из двух полутактов.
В первом полутакте координата Х через коммутатор 8 подается на вход дешифратора ll, который дешифрует значение Х в одну из горизонтальных шин матрицы блока постоянной памяти 12, при этом на нулевую вертикальную шину распределитель 13 подключает нулевой разряд регистра 3. С выхода блока постоянной зй памяти 12 слагаемые Х сои ос. и Х Gina@
d через группы элементов И 9 и 10 поступают соответственно в сумматорывычитатели 15 и 16, где эти слагаемые записываются. Во втором полутакте под воздействием сигналов из блока управления 17 коммутатор 8 и группы элементов И 9 и 10 переключаются во вторые положения, при этом на вход дешифратора 11 поступает теперь координата У, а распределитель 13 продолжает оставаться в том же положении, что и в первом,полутакте. С выхода блока постоянной памяти 12 слагаемые
У"co& и У Б псс, через вторые выходы групп элементов И 9 и 10 поступают на входы второго и первого сумматороввычитателей 16 и 15, которые при этом устанавливаются в соответствующие режимы суммирования или вычитания сигналом с триггера 20 блока унравления 17.
После завершения процессов алгебраического суммирования в сумматорахвычитателях 15 и 16 в них сформируются значения Хо и, Уо равные
Х„=х.Соус - „ до о о
5(о = X Б4 Й О(+$ ° CQQ0(, которые переписываются в регистры 1 и 2 еоответственно, а сумматоры-вычитатели 15 и 16 обнуляются.
Следующий такт проходит аналогично предыдущему, причем распределитель 13 подключает к первой вертикальной шине блока постоянной памяти 12 первый разряд регистра 3. Здесь следует заметить, что в.. случае подключения распределителем 13 разряда, имеющего нулевое значение, поворот вектора в данном такте нулевой, поэтому необходимо оразу же переходить к обработке следующего разряда регистра 3. Это осуществляется автоматически с помощью логического элемента ИЛИ-НЕ 14, на выхо ды которого поступают все выходы распределителя 13. Если подключаемый раз ряд имеет нулевое значение (неподклю.ченные выходы распределителя имеют нулевые значения), то на выходе элемента ИЛИ-НЕ 14 возникает единичный сигнал, поступающий через элемент
ИЛИ 23 блока ущ»авления 17 íà управля. ющий вход распределителя 13, осуществляя его переключение (сдвиг) на следующий разряд регистра 3. Данная организация обработки разрядов кода угла
Я позволяет сократить общее количество тактов преобразования. Учитывая, что количество единиц н нулей в коде статистически равно друг другу, время щ»еобразования сокращается в среднем вдВоее
-Таким образом, в некотором такте, когда обработан последний разряд регистра 3, в сумматорах-вычитателях 15 к 16 сформированы координаты повернутога. вектора Х, У.
Итак описан процесс преобразования координат, когда все исходные данные
Х, У и о представлены прямыми кодами, т.е. преобразование осуществляется только в первом квадранте. При расширении зоны преобразования на всю координат. ную плоскость исходные данные могут быть представлены как в прямом, так и в дополнительном кодах. Однако так как в блоке постоянной памяти записаны только положительные значения, то на .вход дешифратора l l следует подавать коцы только в прямой форме, т.е. все преобразования необходимо переводить в первый квадрант. Для этого знаковые разряды регистров l и 2 управляют коммутаторами 6 и 7 при единичном значении знака (дополнительный код), коммутатор устанавливается в положение, при
9437 котором на его выход поступают значащие разряды кода координаты, инвертируемые элементами HE 4 или 5. Одновременно знаковые разряды поступают в блок управления 17, где, подаваясь на счетные входы триггеров 18-19 и опрокидывая нх, запоминаются с тем, чтобы после завершения поворота вектора осуществить обратное преобразование (перевод) компонент вектора. Зна- 10
1 коР.ьre разряды также поступают на входы полусумматора 22, который определяет направление поворота вектора после приведения его к первому квадранту.
Для пояснения данного положения рас- 15 смотрим подробно диаграмму на фиг. 2.
Исходный вектор на диаграмме представлен во втором квадранте, показан и угол оС, на который повернут вектор (штриховая линия показывает результиру- 211 ющее положение вектора после поворота).
Приведение вектора к первому квадранту осуществляется инвертированием координаты Х. Приведенный вектор должен поворачиваться в ту сторону, чтобы стре- 25 миться занять положение (пунктирная линия в четвертом квадранте), симметричное относительно оси ОУ результирующему положению вектора, т.е. в,направлении, обратном исходному. Определение напряжения поворота вектора после
его приведения довольно просто осуществить суммированием по модулю 2 знаковых разрядов регистров 1 и 2 (Зн Х +
+ Зн У). Если результат равен О, то знак исходного угла сохраняется, если
1, то меняется на противоположный. Суммирование по модулю 2 осуществляется полусумматором 22 в блоке управления . 17. При возникновении единичного сигнала на выходе полусумматора 22 этот сигнал через элемент ИЛИ 24 опрокидывает триггер 20 режима работы сумматоров- вычитателей 15.и 16, изменяя их режим на противоположный, Таким образом, смена знака с6 не затрагивает содержимого регистра 3 угла, а только меняет режим работы сумматоров-вычитателей 15 и 16, т.е. в вьгражении (1) знаки суммирования и вычитания меняют-, 50 ся на обратные. Из дальнейшего рассмотрения диаграммы можно видеть, что осуществляется приведение не только исходного вектора, йо и промежуточного, если в процессе поворота он вышел за пределы первого квадранта. В результате, на55 пример, для случая, показанного на диаграмме, полученные координаты вектора в сумматорах-вычитателях 15 и 16 сле15 8 дует инвертировать, так как при приведении исходного вектора к первому квадранту проинвертирована компонента Х, затем в процессе поворота, когда вектор переходит в четвертый квадрант, проинвертирована компонента У. Эти инверсии зафиксированы в триггерах 18 и 19 блока управления 17. После завершения процесса преобразования сигнал о котором с некоторой задержкой поступает с tl «го выхода распределителя 1З на разрешающие входы элементов И 25-26, сигналы с выходов триггеров 18 и 19 осуществляют инвертирование соответствующих сумматоров-вычитателей 15 и 16, переводя вектор в его истинное положение (штриховая линия). Как уже указывалось, угол поворота о мсакет быть представлен в прямом или дополнительном кодах. Для исключения операции инвертирования, в случае дополнительного кода, используется специальная система управления сумматорами-вычитателями 15 и 16, в которой знаковый разряд кода угла И так же, как и значащие разряды участвуют в повороте исходного вектора. При этом управление сумматорами-вычитателями 15 и 16 блоком управления 17 осуществляется так, что при обработке нулевого (зйакового) разряда кода К триггер 20 режима устанавливается сигналом с первого выхода распределителя импульсов 28 в нулевое положение, соответствующее отрицательному повороту исходного вектора. В следующем такте, когда обрабатывается первый значащий разряд кода К, сигнал со второго выхода распределителя импуль-. сов 28 через элемент ИЛИ 24 поступает на счетный вход триггера 20 режима, опрокидывая его в противоположное состо янне, соответствующее положительному повороту вектора.
В общем случае при переходе к обработке значащих разрядов режим работы сумматорои-вычитателей 15 и 16 меня- ется на противоположный, Правомерность данного метода управления процессом обработки разрядов кода К с очевидностью следует из свойств прямого и дополнительного кодов:
+М Р вЂ” 064Ж2" ° C,„ доп
06 . t Ь1 Р2 l3n
"Р Р" P„„=<-Î,ж,<<,„, „ и далее, перенося .1 в левую часть, получим:, -Р,g,„oc „,о „-1+1, „ 2... Pg.
9 Ä 9437
Тогда код-о о"можно представить в виде (1). Р<, (3< ". (3„, т..е. знаковый разряд осуществляют отрицательный поворот, а значащие — положительный.
Поясним назначение некоторых элементов блока управления 17 триггер 21 является делителем частоты синхрогенератора 27 в отношении 1:2. Если каждый импульс синхрогенератора 27 определяет длительность полутакта, то импульс 30 с выхода триггера 21 через элемент
ИЛИ 23 осуществляет переключение распределителя 13 через такт. Анализируя порядок работы сумматоров-вычитателей
l5 и 16 в течение одного такта, можно заметить, что во время первого полутакта первые слагаемые записываются в сумматоры-вычитатели (или суммируются с нулевым значением), что требует времени, равного времени срабатывания gy одного триггера. Во втором же полутакте в сумматорах-вычитателях осу-: ществляются алгебраические действия, время выполнения которых уже значительно. При смене направления поворота вектора в выражении (1) знаки изменятся на противоположные и если не изменить порядка ввода слагаемых в сумматоры-вычитатели 15 и 16, то в первом полутакте надо вводить Х созо и -Х» маак, т.е. величину Х ВЬЮ после ввода необходимо перевести в дополнительный код, время выполнения которого равно времени суммирования. Тогда в одном такте выполняются два последователь3$ ных суммирования, что увеличивает об« щее время преобразования, поэтому при смене направления поворота вектора необходимо изменять на обратный и порядок ввода слагаемых. Например, если
46 вначале вводятся первыми значения
Х сОЪОс и Х s
:вводить значения У со о и У sino . Ука.I занный порядок ввода реализуется блоком управления 17, в котором сигнал с
45, григгера 20 -режима работы сумматороввычитателей 15 и 16 управляет с помощью коммутатора 29 прохождением. прямых или инвертируемых элементомНЕ 30 импульсов, что и определяет порядок коммутации коммутатора 8 и ключей 9 и 10.
Эффективность изобретения заключается в повышении быстродействия вычислений эа счет сокращения времени преобразования цифрового преобразователя ко-. ординат, которое определяется из следующих соображений. В течение одного так10 та производится считывание из блока постоянной памяти 12 первый слагаемых, которые записываются в сумматорывычитатели 15 и 16, затем считываются вторые слагаемые и суммируются с содержимым сумматоров-.вычитателей 15 и 16, Время выполнения такта равно сР 3ап с м
Количество тактов определяется разрядностью кода угла К -, но исходя из того, что при нулевом значении разряда такт, соответствующий этому разряду, пропускается, а количество нулей и единиц в в коде статистически равно, то в среднем выполняется и /2 тактов. Время преобразования в этом случае равно
"Р п к
Для простоты сравнения быстродействия предлагаемого устройства с аналогичными устройствами представим время преобразования в микротоках, длительность которого соответствует времени сумматора. Тогда tñt. = CÇîn= а сцщ = °
Время преобразования цифрового ггреобразователя в микротактах составляет
Т р м (МЗ) >/2
Форм ула изобретения
1. Цифровой преобразователь координат, содержащий первый и второй регистры, первый и второй коммутаторы, блок постоянной памяти, первый и второй сумматоры-вычитатели и блок упрйвления, причем выход первого сумматора-вычитателя соединен с первым выходом устройства и входом первого регистра, выход второго сумматора-вычитателя соединен с вторым выходом устройства и входом второго регистра, о т.л и ч а ю щ и й— с я тем, что, с целью повышения быстродействия, устройство содержит третий регистр, первую и вторую группы элементов И,.третий коммутатор, дешифратор, распределитель, элемент ИЛИ-НЕ, причем разрядные выходы первого и второго регистра соединены с входами первых групп первого и второго коммутаторов и с входами элементов НЕ первой и второй группы соответственно, входы вторых групп первого и второго коммутаторов соединены с выходами элементов HE первой и второй групп соответственно, выходы первого и второго коммутаторов вого элемента ИЛИ соединен с первым входом блока управления, второй вход которого соединен с первым входом распределителя импульсов и первыми входами первого и второго элементов И, вторые входы которых соединены соответственно с выходами первого и второго триггеров, входы которых соединены соответственно с третьим и четвертым входами блока управления, первый выход распределителя, импульсов соединен с установочными входами первого, второго, третьего и четвертого триггеров, выход коммутатора соединен с первым выходом устройства, второй выход ко- . торого соединен с выходами первого и второго элементов И, выходом третьего триггера и первым входом коммутатора, второй вход которого соединен с выховыходом синхрогенератора и вторым входом распределителя импульсов, второй выход которого соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с выходом полусумматора, первый и второй входы которого соединены соответственно с третьим и четвертым входами блока управления, третий выход которого. соединен с выходом первого элемента ИЛИ, второй вход которого соединен с выходом четвертого триггера, вход которого соединен с входом элемента НЕ, выход второго элемента ИЛИ соединен с входом четвертого триггера.
Источники информации, принятые во внимание при экспертизе
1. Байков В. Д., Смолов В. Б. А паратурная реализация элементарных функций в UBN. Л., 1975. с. 71, рис. За.
2. Авторское свидетельство СССР»
М 591860, кл. Я 06 Р 15/20, 1978. (прототип).
11 94a7 i 5 12 соединены соответственно с первым и вторым входами групп третьего коммутатора, выход которого соединен с входом дешифратора, выходы которого соединены с первой группой входов блока постоянной памяти, первый и второй выходы которого соединены с входами соответственно первой и второй групп элементов И, первые ..выходы которых соединены с первыми входами соответствен- 30 но первого и второго сумматоров-вычитателей, вторые входы которых соединены с вторыми выходами соответственно вто рой и первой групп элементов И, управляющие входы которых соединены с пер- is вым выходом блока управления, второй выход которого соединен с управляющими входами первого и второго сумматороввычитателей, третий выход блока управления соединен с управляющим входом . щ дом элемента НЕ, вход которого соераспределителя, выходы которого соеди- динен с третьим входом коммутатора, иены с второй группой входов блока постоянной памяти и входами элемента
ИЛИ-НЕ, выход которого соединен с первым входом блока управления, второй у вход которого соединен с первым входом элемента ИЛИ-НЕ, третий вход блока управления соединен с выходом знакового разряда первого регистра и с управляющим входом первого коммутатора, четвертый вход блока управления сое« динен с. выходом знакового разряда второго регистра и управляющим входом второго коммутатора, управляющий вход третьего коммутатора соединен с первым
35 выходом блока управления.
2. Устройство по п. l, о т л и ч аю щ е е с я тем, что блок управления содержит первый, второй, третий и четвертый триггеры, полусумматор, первый и второй элементы ИЛИ,. первый и вто. рой элементы И, синхрогенератор, распределитель импульсов, коммутатор и элемент НЕ, причем первый вход пер943715
FS N
Составитель В. Венцель
Редактор М. Дылын Техред A.À÷ Корректор У. Пономаренко
Заказ 513в1/56 Тираж 731 Подписное . ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж«35, Раушская наб., д. 4/5 филиал ППП Патент", г. Ужгород, ул. Проектная, 4