Skip to main content

Блок обработки результатов

Блок позволяет представить результат преобразования в формате удобном для пользователя.

При выборе Sensor_mode==0 результат преобразования безанаковый и соответствует углу от 0 до 2π. При выборе Sensor_mode != 0 результат преобразования знаковый и соответствует координате от -1 до +1.

Стуктура блока обработки результата
Стуктура блока обработки результата

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

В некоторых применениях СКВТ требуется отслеживание переходов через нуль выходного угла (многополюсные СКВТ, недостаточный темп опроса датчика при высокой частоте вращения, малые ресурсы для вычислений и т.д.), для чего в преобразователь введен 20 битный виртуальный счетчик переходов через нуль выходной координаты следящего контура. Счетчик в темпе работы преобразователя добавляет единицу если значение двух старших разрядов [19:18] координаты изменилось из 3 в 0, и наоборот счетчик декрементируется если значение старших разрядов изменилось из 0 в 3. Для включения счетчика требуется установить бит En_cross0 регистра KonturStngs в единицу (при En_cross0 значение счетчика равно нулю при Sensor_mode==0 или размножено знаком старшего [19] разряда выходной координаты следящего контура при Sensor_mode != 0). Значение 20 битного виртуального счетчика переполняется как двоичное число (C1Vcnt_bound==65535), однако для датчиков с количеством полюсов некратным степени двойки возможно введение другого порога с помощью записи в регистр C1Vcnt_bound/C2Vcnt_bound значения, которое умножается на 16 и добавляется 15. В этом случае координата может быть приведена к двоичной простым умножением на коэффициент.

20 разрядов координаты следящего контура дополняются слева 20 разрядами виртуального счетика и получившееся значение подается на регистр сдвига "вправо". Величина сдвига задается битами Coord_resolution в регистре ResCntrl (по умолчанию равно 2, что дает 16 битный код угла следящего контра в регистрах C1Сoord/C2Coord). 28 битов [29:2] с регистра сдвига могут быть считаны по SPI по адресам C1CoordHB, причем старшая часть (C1CoordHB) всегда синхронизирована с младшей на уровне интерфейса (значения тактируемого регистра с нечетным адресом фиксируется регистра с адресом на единицу меньше (четного)).

При необходимости может быть включен гистерезис координаты (с помощью установки бита Coord_hist), который для своей работы использует младшие два бита с выхода регистра сдвига. При включенной схеме гистерезиса границы переключения значения выхода координаты сдвигаются на ± 0,75 от предыдущего значения. Если отклонение нового значения координаты составило менее ± 0,75 от значения, вычисленного на предыдущем шаге, регистр Coord не меняется. Таким образом, при неподвижном датчике, и, если позволяет соотношение сигнал шум на входе преобразователя, значение в регистре Coord будет постоянным. Даже, если координата датчика находится на границе между соседними значениями, гистограмма кодов будет содержать только одно значение. При использовании постобработки измеренной координаты (например, фильтрации) следует отключить схему гистерезиса, т.к. она является нелинейным элементом и уменьшает точность преобразования. При отключенной схеме гистерезиса, если координата датчика находится посредине между двумя значениями, гистограмма кодов будет содержать примерно одинаковое количество этих значений.

Скорость вычисляется в следящем контуре как приращение координаты на каждом такте преобразования fclkf_{\text{clk}} .

В зависимости от настройки битов Sample_src (регистр Mode_config) возможно запоминание вычисленных преобразователем значений координаты, скорости.

Таблица 8 – Настройка режима запоминания

Значение битов Sample_src[1:0]Режим запоминания значений в регистрах Coord, Vel, Stat
00Сохраняются предыдущие значения
01Вход Sample == 1 – защелкиваются новые значения Вход Sample == 0 – сохраняются предыдущие значения
10Вход Sample == 1 – сохраняются предыдущие значения Вход Sample == 0 – защелкиваются новые значения
11 (по умолчанию)Защелкивание в регистры происходит во время транзакции чтения по интерфейсу SPI

Биты Sample_src[1:0] и вход Sample не оказывают влияния на блок эмуляции квадратурного энкодера, работающий на тактовой частоте микросхемы.