Синусно-косинусный функциональный преобразователь Советский патент 1982 года по МПК G06F7/548 

Описание патента на изобретение SU970357A1

(54) СИНУСНО-КОСИНУСНЫЙ ФУНКЦИОНАЛЬНЫЙ ПРЕОБРАЗОВАТЕЛЬ

Похожие патенты SU970357A1

название год авторы номер документа
Цифровой преобразователь координат 1979
  • Киселев Евгений Федорович
SU842801A1
Цифровой преобразователь координат 1983
  • Киселев Евгений Федорович
SU1141404A1
Цифровой генератор функций 1989
  • Киселев Евгений Федорович
SU1663607A1
Синусно-косинусный преобразователь 1986
  • Киселев Евгений Федорович
SU1327095A1
Функциональный преобразователь кода угла и дальности 1981
  • Киселев Евгений Федорович
SU1008734A1
Устройство для воспроизведения кардиоиды 1981
  • Селезнев Юрий Владимирович
  • Толокновский Вячеслав Родионович
SU1007102A1
Устройство для преобразования координат 1983
  • Гусев Алексей Владимирович
  • Трушков Владимир Николаевич
  • Алексеев Владимир Глебович
SU1141405A1
Устройство для вычисления функций синуса и косинуса 1977
  • Киселев Евгений Федорович
SU723583A1
Цифровой преобразователь координат 1977
  • Киселев Евгений Федорович
  • Березовский Ефим Оскарович
SU742944A1
Синусно-косинусный преобразователь 1981
  • Киселев Евгений Федорович
  • Кузина Ольга Алексеевна
SU1005040A1

Иллюстрации к изобретению SU 970 357 A1

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

Формула изобретения SU 970 357 A1

1

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

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

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

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

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

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

Tnp ,(1)

где t -период частоты импульсов на тактовом входе;

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

Основными недостатками описанного преобразовате„1я являются низкое быстродействие низкий коэффициент использовани, оборудования. Указанны- недостатки обусловлены неэффективным использованием оборудования при реализации преобразователя на современной элементной бл R, поскольку счетчики указанного типа являются реверсивными, а в преобразователе они используются в режиме лишь одностороннего счета. Кроме того, к недостаткам преобразователя следует отнести и то, что в нем не предусмотрена возможность работы по число-импульсному коду аргумента.

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

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

Блок управления содержит регистр сдвига, два триггера, элемент ИЛИ, два элемента И и два элемента 2 И-ИЛИ, первый вход блока управления соединен с первым входом первого элемента 2 И-ИЛИ и управляющим входом регистра сдвига, тактовый вход которого соединен с выходом первого элемента И и первым входом второго элемента И, второй вход которого соединен с выходом первого триггера, первый и второй входы которого соединены с вы.чодом первого элемента 2 И-ИЛИ и элемента ИЛИ, первый и второй входы которого соединены с четвертым и пятым входами блока управления, соединенного с вторым входом первого элемента 2 И-ИЛИ, третий вход которого соединен с третьим входом элемента ИЛИ, первым выходом регистра сдвига и вторым выходом блока управления, первый выход которого соединен с выходом второго элемента И, вход разрешения записи регистра сдвига соединен с третьим в.ходом блока управления и первым входом первого элемента И, второй вход которого соединен с первым и вторым входами второго элемента 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) поступает на преобразователь лишь во втором режиме его работы. В первом режиме () производится преобразование (п-ь2)-разрядного кода « аргумента с в коды sinot и coso(. Аргумент ot и код связаны между собой СООТНОЩеНИеМ l-.2 о. , оС; -2 где oij -разрядные цифры кода . Два старших разряда кода определяют знаковые разряды кодов sinotH costiB соответствии с выражениями: ГФЗб oil; 1Ф37 ail +°/2; где Ф36, Ф37 - знаковые разряды sinot и coso. Остальные Р старщих разрядов кода оС, снимаемых со счетчика 1, образуют кодоС,п управляющей части аргумента, а т (п-Р) разрядов кода о/, содержащихся в счетчике 2, - код oian апроксимирующей части аргумента. При этом число участков аппроксимации равно N 2, а длина каждого участ ка равна А° 3L/2/N. Определение кодов sino и cosot производится циклически методом кусочно-линейной аппроксимации с использованием тригонометрических формул приведения и числоимпульсным развертыванием эталонных синусно-косинусных зависимостей в пределах половины участка аппроксимации. Блок 8 памяти содержит коды sin(ai)j значений синуса в j-ой узловой точке аппроксимации, выбираемые по коду of. или rio коду (), а блок 9 памяти - коды К sinj и Kcosj угловых коэффициентов наклона функций синуса и косинуса соответственно, выбираемые по коду oiyn . При этом коды и Ыут1 связаны соотношениемл .2 -oCf АР.; где Z ул| 2. , rtynj - разрядная цифра кода ; otj - разрядная цифра старшего разряда счетчика 2, т. е. разряда 1 (Р -f 3) код,. Вычисление кодов /sinoC/ и /cosV/ происходит в течение одного цикла преобразования и производится для нечетного (I, III) квадранта аргумента о(. на основе соотношений: /sink/ sin(ot)+(-i) - ian-Ksin ; sfn/- -Ht(-lf -cian KCOS 2 / a для четного (II, IV) квадранта аргумента ot - на основе соотношений: /sinW srn(| -oi)(-lf -Кс ./COSi / Sin (о(.)-ь(-1) .-п Kuin где -i-ln .п ( о4цд- -разрядная цифра кода . Связь между разрядными цифрами кодов уп , ЗСал и кода oi. такая, что УП ; уП2 ,-, р-1-2 ) o -p-t-i Х C(Q.U . -)-« a.n.z-, .Пщ. Формирование кода оС выполняется сумматором 5 адреса, а выдача кода или (1-ot) на блок 8 памяти - блоком 7 анализа кода. Умножители 10 и 11 служат для получения число-импульсны) кодов произведений параллельных кодов Ksin и соответственно на число-импульсный код «А,. .Подключение выходных кодов умножителей 10 и 11 к входу сложения (вычитания) счетчиков 3 и 4 производится коммутаторами 13 и 14. Блок 6 управления предназначен для формирования последовательности сигналов, синхронизирующих работу преобразователя во времени. Перед началом вычисления преобразователь содержит информацию предыдущего цикла вычисления. Цикл вычисления начинается с приходом импульса запуска И21, по которому в счетчики 1 и 2 записывается код аргумента, триггер 41 устанавливается в нулевое состояние, а регистр 40 - в состояние «00001 ().,. Началь ное значение вычисления кода sinot (coso() заносится в счетчик 3 (4) по сигналу (П32 1). При этом сигнал V ПЗО , снимаемый с выхода 31 блока управления, управляет в блоке 7 анализа кода выбором кода А или (1 - Сигналы ПЗО 1 и вырабатываются последовательно на выходах 30 и 32 блока 6 управления состояниями «00001 и «00100 регистра 40 соответственно. Сдвиг регистра 40 производится по каждому тактовому импульсу ТИ22. После перехода регистра 40 в состояние «00000 триггер 41 переключается в состояние «1 и обеспечивает поступление ТИ22 на выход 33, связанный с тактовыми входами умножителей 10 и 11 и счетными входами счетчика 2. Цикл вычислений синусно-косинусных зависимостей в счетчиках 3 и 4 продолжается до переполнения в плюс (минус) счетчика 2, который при с( 1, работает на сложение, а при di - О- на вычитание. С окончанием импульса И25 переполнения в плюс (импульса И26 переполнения в минус) поступление тактовых импульсов запрещается, при этом в счетчике 3 находится искомый код /sinoC/, а в счетчике 4 - код /coso /, а с выходов 36 и 37 cнимaюJCЯ знаковые разряды ФЗб, Ф37 кодов sino( и cosU соответственно. При переполнении счетчика 2 в минус происходит отработка преобразователем лищнего такта вычисления, коррекция которого производится предварительно по сигналу И32 перед формированием тактовых импульсов на выходе 33. Из описанного выще следует, что длительность цикла вычисления может быть определена выражением (6) Во втором режиме сигналом П23 0 запрещается работа блока 6 управления и коммутатора 14. По импульсу запуска И21 в счетчики 1 и 2 записывается начальный код аргумента. С подачей число-импульсного кода Ф19 (Ф20) аргумента s произвольном квадранте с выхода 38 (39) снимается число-импульс ный код его синуса (косинуса), а с выходов 36 и 37 - коды знаков синуса и косинуса. Вычисленные в первом режиме параллельные коды /sinoi/ и /cosk/ сохраняются в счетчиках 3 и 4. Сравнивая выражения (1) и (6), получаем оценку р из которой следует, что быстродействие предлагаемого преобразователя при воспроизведении функций синуса и косинуса параллельными кодами не менее чем в 2 раза выше быстродействия прототипа в аналогично.м преобразовании. Кроме того, введение второго режима генерации число-импульсных кодов указанных функций расщиряет функциональные возможности преобразователя и повыщает коэффициент использования оборудования, так как с окончанием первого режима содержимое счетчиков 3 и 4 может быть использовано, например, -для формирования радиально-круговой развертки, во время которого часть остального оборудования обеспечивает выполнение второго режима работы. Формула изобретения 1. Синусно-косинусный функциональный преобразователь, содержащий первый блок памяти, два выходных счетчика, первый умножитель и сумматор по модулю два, отличающийся тем, что, с целью повыщения быстродействия, в него введены два входных счетчика, сумматор адреса, второй блок памяти, три коммутатора, элемент ИЛИ, второй умножитель и блок управления, входы с первого по третий которого соединены с входами соответственно запуска, тактовым и задания режима преобразователя, входы параллельного кода старщих и младших разрядов которого соединены соответственно с входами записи первого и второго входных счет чиков, входы разрешения записи которых соединены с входом запуска преобразователя, вход число-импульсного кода которого соединен с первым и вторым информационными входами первого коммутатора,.первый и второй выходы которого соединены с входами соответственно суммирования и вычитания второго входного счетчика, выход переполнения при суммировании и выход переполнения при вычитании которого соединены соответственно с входами суммирования и вычитания иервого входного счетчика и соответственно с четвертым и пятым входами блока управления, шестой вход которого соединен с выходом второго из старших разрядов первого входного счетчика и первым входом сумматора по модулю два, второй вход которого соединен с выходом первого из старL.Hx разрядов первого входного счетчика и выходом знака синуса преобразователя, выход знака косинуса которого соединен с выходом сумматора по модулю два, выход разрядов, кроме двух старших, первого входного счетчика соединен с информационным входом сумматора адреса и входом первого блока памяти, первый и второй выходы которого соединены с управляюш.ими входами соответственно первого и второго умножителей, тактовые входы которых соединены с выходом элемента ИЛИ, входы которого соединены с входом число-импульсного кода преобразователя, первым выходом блока управления и третьим информационным выходом первого коммутатора, четвертый информационный вход которого соединен с вторым выходом блока управления и управЛЯЮШ.ИМ входом второго выходного счетчика третий выход блока управления соединен с управляющим входом первого выходного счетчика, четвертый выход блока управления соединен с первым управляющим входом блока анализа кода, второй управляющий и информационный входы которого соединены соответственно, с выходом переполнения и кодовым выходом сумматора адреса, вход переноса которого соединен с выходом старщего разряда второго входного счетчика, управляющим входом первого коммутатора и первым информационным входом второго коммутатора, управляющий, второй и третий информационные входы которого соединены соответственно с выходом второго из старщих разрядов первого входного счетчика, выходом первого и и выходом второго умножителей, первый и второй выходы второго коммутатора соединены соответственно с выходом число-импульсного кода синуса и выходом число-импульсного кода косинуса преобразователя и соответственно с первым и вторым информационными входами третьего коммутатора, первый и второй управляющие входы которого соединены соответственно с третьим выходом второго коммутатора и входом задйния режима преобразователя, первый и второй выходы третьего коммутатора соединены соответственно с входом суммирования и входом вычитания первого выходного счетчика, третий и четвертый выходы третьего коммутатора соединены соответственно с входом суммирования и входом вычитания второго выходного счетчика, выход которого соединен с выходом параллельного кода косинуса преобразователя, выход параллельного кода синуса которого соединен с выходом первого выходного счетчика, вход записи которого соединен с входом записи второго выходного счетчика и выходом второго блока памяти, вход которого соединен с выходом блока анализа кода. 2.Преобразователь по п. 1, отличающийся тем, что блок управления содержит регистр сдвига, два триггера, элемент ИЛИ, два элемента И и два элемента 2 И-ИЛИ, первый вход блока управления соединен с первым входом первого элемента 2 И-ИЛИ и управляющим входом регистра сдвига, тактовый вход которого соединен с выходом первого элемента И и первым входом второго элемента И, второй вход которого соединен с выходом первого триггера, первый и второй входы которого соединены с выходом первого элемента 2 И-ИЛИ и элемента ИЛИ, первый и второй входы которого соединены с четвертым и пятым входами блока управления, соединенного с вторым входом первого элемента 2 И-ИЛИ, третий вход которого соединен с третьим входом элемента ИЛИ. первым выходом регистра сдвига и вторым выходом блока управления, первый выход которого соединен с выходо.м второго элемента И, вход разрешения записи регистра сдвига соединен с третьим входом блока управления и первым входом первого элемента И, второй вход которого соединен с вторым входом блока управления, шестой вход которого соединен с первым и вторым входами второго элемента 2 И-ИЛИ, третий и четвертый входы которого соединены соответственно с прямым и инверсным выходами второго триггера, первый и второй входы которого соединены соответственно с вторым и третьим выходами регистра сдви га, прямой выход регистра сдвига и выход второго элемента 2 И-ИЛИ соединены соответственно с третьим и четвертым выходами блока управления. 3.Преобразователь по п. 1, отличающийся тем, что блок анализа кода содержит группу элементов НЕ, два коммутатора и сумматор, управляющий вход и выход которого соединены соответственно с вторым управляющим входом блока анализа кода и входом первого коммутатора, выход которого соединен с выходом блока анализа кода, информационный вход которого соединен с входами элементов НЕ группы и первым информационным входом второго коммутатора, второй информационный вход которого соединен с выходами элементов НЕ группы, выход второго коммутатора соединен с информационным входом сумматора, вход переноса которого соединен с управляющим входом второго коммутатора и первым управляющим входом блока анализа кода. Источники информации, принятые во внимание при экспертизе 1.Авторское свидетельство СССР № 510717, кл. G 06 F 7/548, 1974 2.Авторское свидетельство СССР 640423, кл. G 01 S 7/12, 1977 (прототип).

Г

f5

п

п

IB

21

32

«ч-.

J7

W

гг

Ч-5

47

и

гцJ/

-5

26

50

сриг.г

п

5/

45

29

7

.J

фиг.З

SU 970 357 A1

Авторы

Киселев Евгений Федорович

Кузина Ольга Алексеевна

Даты

1982-10-30Публикация

1981-04-20Подача