Синусно-косинусный функциональный преобразователь

Иллюстрации

Показать все

Реферат

 

ОП ИСАНИЕ

ИЗО6РЕТЕН ИЯ

К АВТОРСКОМУ СВИ4ЕТЕЛЬСТВУ

Союз Советских

Социалистических

Республик (Ä)970357 (61) Дополнительное к авт. свид-ву— (22) Заявлено 20.04.81 (21) 3276764/18-24 с присоединением заявки №вЂ” (23) Приоритет— (51) М.К .

G 06 F 7/548

Гоеударствелннй комитет

Опубликовано 30.10.82. Бюллетень № 40

Дата опубликования описания 05.11.82 (53) УДК 681.325 (088.8) ло делан изобретений и открытий (71) Заявитель (54) СИНУСНО-КОСИНУСНЫЙ ФУНКЦИОНАЛЬНЫЙ

ПРЕОБРАЗОВАТЕЛЬ

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

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

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

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

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

Для преобразований входной код аргумента разделен на две части — управляющую и аппроксимирующую. Развертывание эталонной синусно-коси нусной зависимости производится внутри интервала аппроксимации до сравнения кода линейной развертки независимого аргумента с кодом аппроксимирующей части. Поэтому длительность ци кла воспроизведения функций определяется выражением т„„= г ", (!) где t — период частоты импульсов на тактовом входе;

m — число разрядов кода аппроксимирующей части аргумента.

970357

10 l 5

Зо

Р0

Основнымп недостатками описанного преобразовате.lH являются низкое быстродеи твие низкий коэффчциент использовани. оборудования. Указанны" недостат..и обусловлены неэффективным использованием оборудования при реализации преобр:iзователя на современной элементной б» «, поскольку счетчики указанного типа являются реверсивными, а в преобразователе они используются в режиме лишь одностороннего счета. Кроме того, к недостаткам преобразователя следует отнести и то, что в нем не предусмотрена возможность работы по число-импульсному коду аргумента.

Цель изобретения — повышение быстродействия.

Поставленная цель достигается тем, что в синусно-косинусный преобразователь, содержащий первый блок памяти, два выходных счетчика, первый умножитель и сумматор по модулю два, дополнительно введены два входных счетчика, сумматор адреса, второй блок памяти. три коммутатора, элемент ИЛИ, второй x, ножитель и блок управления, входы с .ервого по третий которого соединены с входа I и соответственно запуска, тактовым и задания режима преобразователя, входы параллельного кода старших и младших разрядов которого соединены соответственно с входами записи первого и второго входных счет гиков, входы разрешения записи которых со ли: ены с входом запуска преобразоват —:и, вход числоимпульсного кода которого с.:динен с первым и вторым информационнь.ми входами первого коммутатора, первый и пторой выходы которого соединены с зхо ..1и соответственно суммирования и вычи.1 азия второго входного счетчика, выход пер юлнения при суммировании и выход переполнения при вычитании которого соединены соответственно с входами суммирования и .:.ычитания первого входного счетчика и соответветственно с четвертым и пя1ым входами блока управления, шестой вход которого соединен с выходом второго из старших разрядов первого входного счетчика и первым входом сумматора по модулю два, второй вход которого соединен с выходом первого из старших разрядов первого входного счетчика и выходом знака синуса преобразователя, выход знака косинуса которого соединен с выходом сумматора по модулю два, выход разрядов, кроме двух старших, первого входного счетчика соединен с информационным входом сумматора адреса и входом первого блока памяти, первый и второй выходы которого соединены с управляющими входами соответственно первого и второго умножителей, тактовые входы которых соединены с выходом элемента ИЛИ, входы которого соединены с входом число-импульсного кода преобразователя, первым выходом блока управления и третьим информационным выходом первого коммутатора, четвертый информационный вход которого соединен с вторым выходом блока управления и управляющим входом второго выходного счетчика, третий выход блока управления соединен с управляющим входом первого выходного счетчика, четвертый выход блока управления соединен с первым управляющим входом блока анализа кода, второй управляющий и информационный входы которого соединены соответственно с выходом переполнения и кодовым выходом сумматора адреса, вход переноса которого соединен с выходом старшего разряда второго входного счетчика, управляющим входом первого коммутатора и первым информационным входом второго коммутатора, управляющий, второй и третий информационные входы которого соединены соответственно с выходом второго из старших разрядов, первого входного счетчика, выходом первого и выходом второго умножителей, первый и второй выходы второго коммутатора соединены соответственно с выходом число-импульсного кода синуса и выходом число-импульсного кода косинуса преобразователя и соответственно с первым и вторым информационными входами третьего коммутатора, первый и второй управляющие входы которого соединены соответственно с третьим выходом второго коммутатора и входом задания режима преобразователя, первый и второй выходы третьего коммутатора соединены соответственно с входом суммирования и входом вычитания первого выходного счетчика, выход которого соединен с выходом параллельного кода косинуса преобразователя, выход параллельного кода синуса которого соединен с выходом первого выходного счетчика, вход запипи которого соединен с входом записи второго выходного счетчика и выходом второго блока памяти, вход которого соединен с выходом блока анализа кода.

Блок управления содержит регистр сдвига, два триггера, элемент ИЛИ, два элемента И и два элемента 2 И вЂ” ИЛИ, первый вход блока управления соединен с первым входом первого элемента 2 И вЂ” ИЛИ и управляющим входом регистра сдвига, тактовый вход которого соединен с выходом первого элемента И и первым входом второго элемента И, второй вход которого соединен с выходом первого триггера, первый и второй входы которого соединены с выходом первого элемента 2 И вЂ” ИЛИ и элемента

ИЛИ, первый и второй входы которого соединены с четвертым и пятым входами блока управления, соединенного с вторым входом первого элемента 2 И вЂ” ИЛИ, третий вход которого соединен с третьим входом элемента ИЛИ, первым выходом регистра сдвига и вторым выходом блока управления, первый выход которого соединен с выходом второго элемента И, вход разрешения записи регистра сдвига соединен с третьим входом блока управления и первым входом пер970357 выходами регистра сдвига, прямой выход регистра сдвига и выход второго элемента 2

1" — ИЛИ соединены соответственно с третьим и четвертым выходами блока управления. о

Кроме того, блок анализа кода содержит группу элементов НЕ, два коммутатора и сумматор, управляющий вход и выход которого соединены соответственно с вторым управляющим входом блока анализа кода и входом первого коммутатора, выход которо15 го соединен с выходом блока анализа кода, информационный вход которого соединен с входами элементов НЕ группы и первым информационным входом второго коммутатора, второй информационный вход которого соединен с выходами элементов НЕ группы, выход второго коммутатора соединен с информационным входом сумматора, вход переноса которого соединен с управляющим входом второго коммутатора и первым управляющим входом блока анализа кода.

30 (3) 35 „р где уп = Х су ; .2

i=1 уп; — разрядная цифра кода 2ул с — разрядная цифра старшего раз40 ряда счетчика 2, т. е. разряда

1= (P + 3) кода " .

Вычисление кодов /sin / и /cosd. происходит в течение одного цикла преобразования и производится для нечетного (I, III) квадранта аргумента < на основе соотношений:

/sino(/= sin(< )+(-1) «ап I(sin, j cosh/ = sIn —" < 1 (1) ап Kcos

2 (5) 55 л где «-а.п ал V (i (1 -ап ) тп аГ. - ап; 2 вого элемента И, второй вход которого соединен с первым и вторым входами второго элемента 2 И вЂ” ИЛИ, третий и четвертый входы которого соединены соответственно с прямым и инверсным выходами второго триггера, первый и второй входы которого соединены соответственно с вторым и третьим

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

Синусно-косинусный функциональный преобразователь содержит счетчики 1 — 4, сумматор 5 адреса, блок 6 управления, блок

7 анализа кода, блоки 8 и 9 памяти, умножители 10 и 11, коммутаторы 12 — 14, сумматор 15 по модулю два, элемент ИЛИ 16, входы 17 — 23 преобразователя, входы 24—

26 блока управления, выходы 27 и 28 сумматора адреса, выход 29 блока анализа кода, выходы 30 — 33 блока управления, выходы 34 — 39 преобразователя. Блок 6 управления содержит регистр 40 сдвига, триггеры 41 и 42, элемент ИЛИ 43, элемент

2И вЂ” ИЛИ 44, элементы И 45 и 46, элемент

2И вЂ” ИЛИ 47. Блок 7 анализа кода содержит коммутатор 48, сумматор 49, группу 50 элементов НЕ и коммутатор 51.

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

На вход 21 преобразователя поступает импульс запуска И 21, на вход 22. — тактовые импульсы Т И 22, на вход 19(20) — числоимпульсный код аргумента Ф19(Ф20), а на вход 23 — сигнал выбора режима П23, таким образом, что при П23 - 1 активизирован первый режим работы преобразователя, а при П23=0 — второй. При этом код Ф19 (Ф20) поступает на преобразователь лишь во втором режиме его работы.

В первом режиме (П23=1) производится преобразование (п+2) -разрядного кода аргумента d в коды sin< и cos .

Аргумент о и код с связаны между собой соотношением a+2 ,4.=2х (, d i .2 (1) где с 1 — разрядные цифры кода

Два старших разряда кода . определяют знаковые разряды кодов sin d и сов 1в соответствии с выражениями:

Ф36 = M I;

Ф37 = Ml +02; где Ф36, Ф37 — знаковые разряды sind. и cos .

Остальные P старших разрядов кода 4, снимаемых со счетчика I, образуют код уп управляющей части аргумента, а m = (п — P) разрядов кода d, содержащихся в счетчике

2, — код 4щ апроксимирующей части аргумента. При этом число участков аппроксимации равно N = 2, а длина каждого участ

Р ка равна Лo = Х/2/N.

Определение кодов sink u cosM производится циклически методом кусочно-линейной аппроксимации с использованием тригонометрических формул приведения и числоимпульсным развертыванием эталонных синусно-косинусных зависимостей в пределах половины участка аппроксимации.

Блок 8 памяти содержит коды sin(d":) j значений синуса в j-ой узловой точке аппроксимации, выбираемые по коду : или по коду (1 „ ""), а блок 9 памяти — коды

К sinj и Ксоь) угловых коэффициентов наклона функций синуса и косинуса спо гветственно, выбираемые по коду Луп . л

При этом коды "" и dу связаны соотношением л -P а1- = с уп+2 .о -р а для четного (II, IV) квадранта аргумента а — на основе соотношений:

/sins/=вл (— - ) и)", к„,; л р * ®

/cosa/= sin (a(*)+ (-!) . л

Связь между разрядными цифрами кодов тп, <ап и кода а такая, что с 3 УП! 4 УП2 " Р 2 /пр )

"-p s =<Х = хап -р.ч = напр," <п+2 "апп, 5

Формирование кода с " выполняется сумматопом 5 адреса, а выдача кода " или (1 — *) на блок 8 памяти — блоком 7 анализа кода.

Умножители 10 и 11 служат для получения число-импульсных кодов произведений

napaллельных кодов Ksin u icos соответственно на число-импульсный код cking .Подключение выходных кодов умножителей 10 и

11 к входу сложения (вычитания) счетчиков

3 и 4 производится коммутаторами 13 и 14.

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

Перед началом вычисления преобразователь содержит информацию предыдущего 20 цикла вычисления. Цикл вычисления начинается с приходом импульса запуска И21, по которому в счетчики 1 и 2 записывается код аргумента, триггер 41 устанавливается в нулевое состояние, а регистр 40 — в состояние «00001» (П23=1).

Начальное значение вычисления кода

sinK (cosA) заносится в счетчик 3 (4) по сигналу П30=1 (П32=i). При этом сигнал

П31=ПЗО d2 V ПЗО d2, снимаемый с выхода 31 блока управления, управляет в блоке 7 анализа кода выбором кода <<" или (1—

Q«)

Сигналы ПЗО = 1 и П32 = 1 вырабатываются последовательно на выходах 30 и 32 блока 6 управления состояниями «00001» и «00100» регистра 40 соответственно.

Сдвиг регистра 40 производится по каждому тактовому импульсу ТИ22. После перехода регистра 40 в состояние «00000» триггер 41 переключается в состояние «1» и обеспечивает поступление ТИ22 на выход 33, связанный с тактовыми входами умножителей 10 и 11 и счетными входами счетчика 2.

Цикл вычислений синусно-косинусных зависимостей в счетчиках 3 и 4 продолжается до переполнения в плюс (минус) счетчика 2, который при с =1, работает на сложение, а при с = Π— на вычитание.

С окончанием импульса И25 nepenoлнения в плюс (импульса И26 переполнения в минус) поступление тактовых импульсов запрещается, при этом в счетчике 3 находится искомый код /sinA/, а в счетчике 4 — код

/cosd/, а с выходов 36 и 37 снимаются знаковые разряды Ф36, Ф37 кодов sind u cosW соответственно.

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

З0

Из описанного выше следует, что длительность цикла вычисления может быть определена выражением

7

Во втором режиме сигналом П23=0 запрещается работа блока 6 управления и коммутатора 14.

По импульсу запуска И21 в счетчики 1 и 2 записывается начальный код аргумента.

С подачей число-импульсного кода Ф19 (Ф20) аргумента в произвольном квадранте с выхода 38 (39) снимается число-импульс ный код его синуса (косинуса), а с выходов

36 и 37 — коды знаков синуса и косинуса.

Вычисленные в первом режиме параллельные коды /з1п".= / и /cosk/ сохраняются в счетчиках 3 и 4.

Сравнивая выражения (1) и (6), получаем оценку (7) т 21 из которой следует, что быстродействие предлагаемого преобразователя при воспроизведении функций синуса и косинуса параллельными кодами не менее чем в 2 раза выше быстродействия прототипа в аналогичном преобразовании.

Кроме того, введение второго режима генерации число-импульсных кодов указанных функций расширяет функциональные возможности преобразователя и повышает коэффициент использования оборудования, так как с окончанием первого режима содержимое счетчиков 3 и 4 может быть использовано, например, для формирования радиально-круговой развертки, во время которого часть остального оборудования обеспечивает выполнение вгорого режима работы.

Формула изобретения

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

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

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

2. Преобразователь по п. 1, отличающийся тем, что блок управления содержит регистр сдвига, два триггера, элемент ИЛИ, два элемента И и два элемента 2 И вЂ” ИЛИ, первый вход блока управления соединен с первым входом первого элемента 2 И вЂ” ИЛИ и управляющим входом регистра сдвига, тактовый вход которого соединен с выходом первого элемента И и первым входом второго элемента И, второй вход которого соединен с выходом первого триггера, первый и второй входы которого соединены с выходом первого элемента 2 И вЂ” ИЛИ и элемента ИЛИ, первый и второй входы которого соединены с четвертым и пятым входами блока управления, соединенного с вторым входом г.ервого элемента 2 И вЂ И,третий вход которого соединен с третьим входом элемента ИЛИ, первым выходом регистра сдвига и вторым выходом блока управления. первый выход которого соединен с выходом второго элемента И, вход разрешения записи регистра сдвига соединен с третьим входом блока управления и первым входом первого элемента И, второй вход которого соединен с вторым входом блока управ. пения, шестой вход которого соединен с первым и вторым входами второго элемента 2 И вЂ” ИЛИ, третий и четвертый входы которого соединены соответственно с прямым и инверсным выходами второго триггера, первый и второй входы которого соединены соответственно с вторым и третьим выходами регистра сдви

ra, прямой выход регистра сдвига и выход второго элемента 2 И вЂ” ИЛИ соединены соответственно с третьим и четвертым выходами блока управления.

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

НЕ группы, выход второго коммутатора соединен с информационным входом сумматора, вход переноса которого соединен с управляющим входом второго коммутатора и первым управляющим входом блока анализа кода.

Источники информации. принятые во внимание при экспертизе

1. Авторское свидетельство СССР № 510717, кл. G 06 F 7/548, 1974

2. Авторское свидетельство СССР № 640423, кл. G Ol > 7)12, 1977 (прототип).

970357

Составитель А. Зорин

Редактор И.Михеева Техред И. Верес Корректор Н. Ьуряк

Заказ 741! /59 Тираж 731 Подписное

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

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

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