ПРЕОБРАЗОВАТЕЛЬ СИНУСНО-КОСИНУСНОГО СИГНАЛА В КОД ПОЛОЖЕНИЯ

Техническое решение относится к измерительной технике, в частности к преобразователям синусно-косинусного сигнала в код положения, и может быть использовано в автомобильной технике, станкостроении, авиационной и ракетной технике и других областях, где требуется измерять положение с помощью датчика, формирующего синусно-косинусный сигнал, фаза которого пропорциональна измеряемому положению.
Известен твердотельный преобразователь угла, который содержит входной мультиплексор сигналов датчика угла, АЦП, цифровой блок вычисления угла и ЦАП, который преобразует вычисленный код угла в выходное напряжение преобразователя [1]. Особенностью преобразователя является использование в цифровом блоке вычисления угла алгоритма CORDIC. Недостатком аналога является низкое быстродействие преобразователя, в котором время преобразования слагается из времени преобразования входных сигналов в цифровой код и числа итераций вычисления угла по алгоритму CORDIC.
Известен быстродействующий CORDIC-вычислитель [2]. Особенностью вычислителя является использование модифицированного алгоритма CORDIC, в котором начальные повороты вектора осуществляются итерационным алгоритмом CORDIC, развернутого в конвейерную схему, а последние повороты осуществляются за одну стадию. Вычислитель обеспечивает почти двукратное сокращение числа итераций и выдачу выходного кода за один такт преобразования входных сигналов в цифровой код. Недостатком аналога является необходимость использования двух АЦП для получения цифрового кода синус-косинусного сигнала.
Известен цифровой преобразователь сигналов резольвера [3]. Преобразователь обеспечивает преобразование синусно-косинусных сигналов резольвера, представляющего собой вращающийся трансформатор с двумя ортогональными обмотками и неподвижной обмоткой возбуждения, в цифровой код. Преобразователь содержит два АЦП синусно-косинусного сигнала резольвера, полосовые фильтры, два умножителя кодов сигналов синус и косинус на коды значений синуса и косинуса выходного кода, сумматор разности выходов умножителей и цепь обратной связи, содержащей реверсивный счетчик выходного кода, соединенный с ПЗУ значений синуса и косинуса для каждого значения выходного кода. Особенностью преобразователя является использование следящего алгоритма преобразования синус-косинусного выходного сигнала в код положения. Недостатком преобразователя является сложная электрическая схема, которая содержит два АЦП и процессор, наличие ПЗУ большой емкость, а также ограниченное быстродействие, которое определяется временем преобразования аналоговых сигналов резольвера в цифровой код.
В качестве прототипа выбран следящий преобразователь угла в код для обработки сигналов с вращающегося трансформатора [4]. Преобразователь содержит умножители напряжений входного синусного и косинусного сигналов на цифровые значения косинуса и синуса выходного кода преобразователя, вычитатель, формирующий сигнал ошибки, генератор, формирующий импульсы увеличения или уменьшения реверсивного счетчика выходного кода преобразователя с частотой, пропорциональной напряжению сигнала ошибки, блок формирования значений синусно-косинусного сигнала на основе кода реверсивного счетчика, выполненного в виде таблицы цифровых значений синуса и косинуса каждого значения выходного кода, схему определения квадранта входного угла и блок коррекции выходного кода в зависимости от номера квадранта входного сигнала и состояния счетчика. Особенностью преобразователя является отсутствие тактового генератора, а также отработка изменения фазы входного сигнала относительно выходного кода на противоположную. Следящий преобразователь обеспечивает высокую скорость преобразования синусно-косинусного сигнала в код положения.
Недостатком прототипа является использование таблиц значений синуса и косинуса для каждого значения выходного кода. Для обеспечения высокого разрешения преобразования необходимо использовать таблицы с большим количеством значений и, соответственно, занимающих большую площадь на кристалле при реализации преобразователя в виде интегральной микросхемы. Так, для 16-битного преобразователя необходимо использовать две таблицы из 16384 16-разрядных значений.
Задачей технического решения является уменьшение площади на кристалле микросхемы, занимаемой преобразователем.
Поставленная задача решается благодаря тому, что в преобразователе синусно-косинусного сигнала в код положения, содержащем первый умножитель для перемножения входного напряжения синусного сигнала на цифровое значение косинуса выходного кода, второй умножитель для перемножения входного напряжения косинусного сигнала на цифровое значение синуса выходного кода, вычитатель, входы которого соединены с выходами умножителей, а выход сигнала ошибки соединен с усилителем, управляемый напряжением генератор импульсов, вход которого соединен с выходом усилителя сигнала ошибки, а выходы прямого и обратного счета соединены с реверсивным счетчиком выходного кода положения, блок формирования цифровых значений синусно-косинусного сигнала на основе выходного кода реверсивного счетчика, выходы которого соединены со входами первого и второго умножителей, а также схему определения квадранта входного синусно-косинусного сигнала, соединенную с блоком коррекции выходного кода реверсивного счетчика, предусмотрены следующие отличия, а именно блок формирования цифровых значений синусно-косинусного сигнала выполнен в виде CORDIC-вычислителя значений синуса и косинуса на основе выходного кода положения.
Между совокупностью существенных признаков заявленного технического решения и достигаемым техническим результатом существует причинно-следственная связь, а именно в CORDIC-вычислителе для получения значений синуса и косинуса используется небольшая таблица значений арктангенса для итераций CORDIC-алгоритма вместо больших таблиц постоянной памяти ROM со значениями синуса и косинуса для каждого значения кода положения.
Оценка занимаемой преобразователем площади кристалла с постоянной памятью ROM значений синуса и косинуса и CORDIC-вычислителя приведена в таблице.
Таблица показывает, что заявленное решение позволяет существенно уменьшить площадь кристалла преобразователя.
Техническая сущность предложенного технического решения поясняется чертежами, где фиг. 1 содержит структурную схему преобразователя синусно-косинусного сигнала в код положения, фиг. 2 содержит структурную схему генератора импульсов счета, фиг. 3 содержит временные диаграммы работы генератора импульсов счета, фиг. 4 содержит структурную схему CORDIC-вычислителя, фиг. 5 содержит структурную схему вычислительного ядра, фиг. 6 содержит структурную схему отдельной ячейки вычислительного ядра, фиг. 7 содержит структурную схему блока коррекции выходного кода, фиг. 8 - таблицу входных и выходных сигналов блока коррекции выходного кода.
Структурная схема преобразователя приведена на фиг. 1. Преобразователь содержит первый умножитель 1 перемножения входного напряжения синусного сигнала Usin(θ) с цифровым значением косинуса cos(ϕ) выходного кода, второй умножитель 2 перемножения входного напряжения косинусного сигнала Ucos(θ) с цифровым значением синуса sin(cp) выходного кода, вычитатель 3, выход которого соединен с усилителем сигнала ошибки sin(θ-ϕ) 4, соединенный с генератором импульсов счета 5, реверсивный счетчик 6, соединенный с генератором импульсов 5 линиями прямого UP и обратного DN счета, и CORDIC-вычислитель 7, вход которого соединен с выходом счетчика 6, а выходы представляют собой цифровые значения синуса и косинуса выходного кода и соединены с умножителями 1 и 2. Преобразователь также содержит схему определения квадранта входного синусно-косинусного сигнала 8, соединенную с блоком коррекции 9 выходного кода реверсивного счетчика 6.
При поступлении на вход преобразователя пары входных сигналов Usin(θ) и Ucos(θ), соответствующих положению θ датчика положения, происходит их перемножение на умножителях 1 и 2 с цифровыми значениями cos(ϕ) и sin(ϕ) с выхода CORDIC-вычислителя 7. Разностный сигнал произведений с вычитателя 3 представляет собой сигнал ошибки Uerr:
Сигнал ошибки подается на усилитель 4 и далее на вход генератора импульсов счета 5, который в зависимости от полярности сигнала ошибки вырабатывает импульсы прямого счета UP при положительном сигнале ошибки или импульсы обратного счета DN при отрицательном сигнале ошибки. Импульсы с генератора 5 поступают на реверсивный счетчик 6, который в зависимости от поступающих импульсов увеличивает (при поступлении импульса UP) или уменьшает (при поступлении импульса DN) значение счетчика 6. При этом на один импульс UP или DN происходит увеличение или уменьшение значения счетчика 6 строго на один отсчет соответственно.
Выход счетчика 6 поступает на вход блока CORDIC-вычислителя 7, работающего в режиме «поворот», когда входной сигнал (выход счетчика 6) является кодом положения ϕ, на основании которого CORDIC-вычислитель вычисляет коды значений синуса sin(ϕ) и косинуса cos(ϕ). С выхода CORDIC-вычислителя 7 коды поступают на вход умножителей 1 и 2 соответственно.
Таким образом, преобразователь представляет собой систему с обратной связью, которая будет стремиться к минимизации сигнала ошибки (1) путем подбора значения кода счетчика 6, при котором код положения ϕ будет соответствовать положению θ датчика положения с точностью разрядности счетчика 6.
Структурная схема генератора сигналов счета 5 приведена на фиг. 2, а на фиг. 3 приведены временные диаграммы работы генератора.
Генератор 5 состоит из интегратора со сбросом 10, компараторов сигнала UP 11 и сигнала DN 12, входы компараторов соединены с выходом интегратора 10, с выходов компараторов сигналы поступают на блоки задержки 13, 14. Сигналы с выходов блоков задержки поступают на выходы UP, DN генератора и на вентиль ИЛИ 15. Выход вентиля 15 соединен со входом сброса интегратора 10.
На фиг. 3 приведены временные диаграммы работы генератора 5 при положительной и отрицательной ошибках. После достижения сигналом на выходе интегратора порогового уровня TH1 или TH2 срабатывает компаратор 11 или 12 и через задержку сигнал поступает на выход генератора 5, а через вентиль 15 сигнал подается на вход сброса интегратора 10, после чего выходы компараторов также сбрасываются. Следовательно, в зависимости от полярности сигнала ошибки генератор формирует импульсы UP или DN длительностью, равной значению задержки блоков 13, 14.
Структурная схема CORDIC-вычислителя 7 показана на фиг. 4.
CORDIC-вычислитель 7 состоит из блока формирования Z-компоненты на четверть периода входного сигнала 16, вычислительного ядра 17, блока восстановления сигнала на полный период 18, выходного регистра 19 и таблицы арктангенсов 20.
1/4
На вход CORDIC-вычислителя 7 поступает N-разрядный код от реверсивного счетчика 6, который с помощью блока 16 преобразуется в сигнал Z на четверти периода кода положения и далее поступает на вход Z вычислительного ядра 17.
На вход X вычислительного ядра 17 подается сигнал X0, который определяется разрядностью преобразования и коэффициентом растяжения CORDIC-преобразования K, равным 1.647:
На вход Y вычислительного ядра подается нулевой код.
Вычислительное ядро 17 выполняет преобразование входного кода Z в выходные сигналы X и Y по алгоритму CORDIC в режиме "поворот".
Вычислительное ядро 17 представляет собой последовательную схему из N ступеней вычисления итерации алгоритма CORDIC, которая представлена на фиг. 5.
Структурная схема ступени вычисления итерации алгоритма CORDIC приведена на фиг. 6. Каждая ступень вычислительного ядра 17 состоит из сумматора канала X 21, сумматора канала Y 22, сумматора канала Z 23, регистра сдвига канала X 24, регистра сдвига канала Y 25, компаратора 26, инвертора 27. В зависимости от знака компоненты Z предыдущей стадии компаратор 26 устанавливает выход знака sign равным логической 1, если Zin≥0, иначе компаратор 26 устанавливает выход знака sign равным логическому 0. Сумматоры 21-23 в зависимости от логического уровня на входе S выполняют следующую функцию:
Регистры сдвига 24, 25 производят сдвиг сигналов Yin и Xin соответственно на значение, равное номеру ступени.
В результате на каждой ступени вычислительного ядра производятся преобразования по формуле:
i+1
i
i
i
-i
X=X-σ⋅Y⋅2
i+1
i
i
i
-i
Y=Y+σ⋅Y⋅2
i
i
σ=sign(Z)
i+1
i
i
i
Y=Y-σ⋅ATAN
i=0…N-1
1/4
1/4
Память двоично-взвешенных углов поворота 20 хранит N коэффициентов арктангенса. Вычислительное ядро 17 производит вычисления в пределах четверти периода от полного периода кода положения. С выхода вычислительного ядра 17 сигналы X и Y поступают на блок восстановления в полный период 18, с выхода которого данные защелкиваются в выходной регистр 19 и поступают на выход CORDIC-вычислителя.
Фиг. 7 содержит структурную схему коррекции выходного кода, фиг. 8 - таблицу входных и выходных сигналов схемы.
Схема выявляет ситуацию, когда входной сигнал меняет свою фазу относительно выходного кода на угол, близкий к 180°, за время, меньшее времени реакции преобразователя. В этом случае сигнал ошибки имеет малое значение, что может привести к медленной реакции преобразователя на изменение входного сигнала вплоть до ее отсутствия. Схема на основании знаков входного синусно-косинусного сигнала определяет квадрант нахождения входного сигнала и корректирует значение счетчика 6, приводя его фазу в соответствие со входным сигналом.
Схема содержит блок определения квадранта входного угла 8 и блок коррекции выходного кода 9 счетчика 6. Блок 8 на основании входного синусно-косинусного сигнала формирует выходные сигналы знаков синусно-косинусного сигнала, которые подаются на блок коррекции выходного кода 9. На блок 9 также подается значение трех старших разрядов счетчика выходного кода 6. В соответствии с таблицей фиг. 8 блок 9 на основании входных сигналов формирует или не формирует сигналы сброса или установки старшего разряда счетчика 6.
Условием инвертирования старшего разряда счетчика 6 является нахождение выходного кода угла за пределами квадранта входного угла с допуском ±45° от границ угла квадранта. Квадрант входного угла определяется знаками входного синусно-косинусного сигнала SignUsin и SignUcos. Нахождение выходного кода угла за пределами квадранта входного угла с допуском ±45° определяется тремя старшими разрядами выходного счетчика 6. Инвертирование старшего разряда счетчика осуществляется за счет подачи сигнала сброса (Reset) или установки (Set).
В таблице фиг. 8 приведены углы квадрантов входного синусно-косинусного сигнала, знаки SignUsin и SignUcos им соответствующие, значения выходного угла и значения трех старших разрядов счетчика 6 при нахождении входного угла в фазе и противофазе относительно выходного кода счетчика 6, а также значение сигналов сброса (Reset) или установки (Set) старшего разряда счетчика 6 для всех комбинаций входных сигналов, поступающих на блок коррекции 9.
Технико-экономический эффект от предложенного технического решения заключается в снижении себестоимости изготовления микросхем преобразователей синусно-косинусного сигнала в код положения.
Источники информации
1. Патент США 3,976,869.
2. Патент США 6,385,632.
3. Патент США 2012/0256773.
4. Патент США 7541951 – прототип.