В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x4xx

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве

текст еще



Раздел 22

Модуль детекторов SCAN IF

Модуль детекторов SCAN IF автоматически сканирует внешние датчики, определяющие линейное или вращательное движение. В этой главе описана работа интерфейса SCAN. Модуль SCAN IF присутствует в микроконтроллерах MSP430FW42x.

Содержание:

22.1 Модуль детекторов SCAN IF - введение

Модуль детекторов SCAN IF используется для автоматического измерения линейного либо вращательного перемещения с минимально возможным энергопотреблением. Модуль SCAN IF состоит из трёх блоков: блока аналоговых формирователей (AFE), блока автомата состояний (PSM) и блока автомата формирования импульсов (TSM). Блок аналоговых формирователей формирует сигналы возбуждения датчиков, детектирует сигнал с них и преобразует его в цифровой вид. Далее сигналы поступают на автомат состояний, который предназначен для определения и измерения вращения либо перемещения. Блок автомата формирования импульсов формирует управляющие сигналы для модулей аналоговых преобразователей и автомата состояний. Модуль SCAN IF обладает следующими свойствами:

  • Поддержка различных датчиков LC-типа
  • Обработка огибающей сигнала
  • Измерение амплитуды колебаний детектора
  • Поддержка резистивных датчиков, таких, как датчик Холла и магниторезистор (GMR)
  • Непосредственный аналоговый вход для аналогово-цифрового преобразования
  • Непосредственный цифровой вход для цифровых датчиков, таких, как оптический энкодер
  • Поддержка квадратурного декодирования

Блок схема модуля SCAN IF показана на рис. 22–1.


Рис. 22–1 Блок схема модуля SCAN IF

22.2 Работа модуля АЦП SD16

Модуль SCAN IF конфигурируется при помощи пользовательского программного обеспечения. Настройка и функционирование модуля будут подробно рассмотрены ниже.

22.2.1 Блок аналоговых формирователей

Блок аналоговых формирователей модуля SCAN IF обеспечивает необходимые сигналы возбуждения для датчиков и измерение сигналов. Блок аналоговых формирователей автоматически управляется автоматом формирования импульсов в соответствии с информацией в его таблице. Блок схема блока аналоговых формирователей показана на рис. 22–2.

Примечание: Сигналы автомата формирования импульсов Далее в этом разделе сигналы, поступающие от автомата формирования импульсов (TSM) будут обозначаться индексом (tsm). Например, сигнал SIFEX(tsm) поступает от автомата формирования импульсов.


Рис. 22–2 Блок схема блока аналоговых формирователей

Схема возбуждения

Схема возбуждения предназначена для питания резистивных делителей либо для возбуждения датчиков LC-типа. Блок-схема схемы возбуждения с одним подключенным датчиком LC-типа показана на рис. 22–3. Когда бит SIFTEN установлен, а бит SIFSH сброшен, схема возбуждения включена, а устройство выборки-хранения (УВХ) выключено.

Во время высокого уровня сигнала SIFEX(tsm) от автомата формирования импульсов вход SIFCHx выбранного канала подключен к SIFVSS, а вход SIFCOM подключен к буферизованной средней точке для возбуждения датчика. Сигнал SIFLCEN(tsm) для функционирования схемы возбуждения должен иметь низкий уровень. Во время подачи сигнала возбуждения на один из каналов и измерения по этому каналу все остальные каналы автоматически отключаются. Запитывается и измеряется только один выбранный канал.

Период возбуждения должен быть достаточно длительным для исключения сильных перегрузок LC-датчика. После завершения процесса возбуждения вход SIFCHx отключается от «земли» во время низкого уровня сигнала SIFEX(tsm), LC-датчик при этом переходит в режим свободных колебаний. Амплитуда колебаний может превышать уровень напряжения питания, при этом она будет «обрезана» защитным диодом до уровня «напряжение питания + падение на диоде». Таким образом, обеспечивается постоянство максимума амплитуды.

По завершению измерения датчик должен быть закорочен установкой SIFLCEN(tsm) = 0 для погашения остаточной энергии перед следующим измерением.

Буфер средней точки

Буфер средней точки включается установкой SIFVCC2 = 1 и позволяет LC-датчику находиться в режиме свободных колебаний. Для установления буферу средней точки требуется до 6 мс, кроме этого для него необходим включенный и работающий на частоте 32768 Гц генератор частоты ACLK.


Рис. 22–3 Схема возбуждения и УВХ

Устройство выборки-хранения (УВХ)

Устройство выборки-хранения (УВХ) используется для запоминания измеряемого напряжения с датчика. Блок схема УВХ показана на Рис. 22–3. Когда SIFSH = 1 а SIFTEN = 0 УВХ включено а схема возбуждения и буфер средней точки выключены. УВХ используется для резистивных делителей либо для других аналоговых сигналов, которым требуется оцифровка.

К выводам SIFCHx и SIFCOM может быть подключено до четырёх резистивных делителей. AVCC и SIFCOM являются общими положительным и отрицательным потенциалами соответственно для всех подключаемых резистивных делителей. Когда SIFEX(tsm) = 1, SIFCOM подключен к SIFVSS, а через резистивные делители протекает ток. При этом конденсаторы каждого УВХ заряжаются до напряжений точек делителя. Значения по всем каналам резистивных делителей запоминаются одновременно. Когда SIFEX(tsm) = 0, конденсатор УВХ отключен от резистивного делителя, а SIFCOM отключен от SIFVSS. После запоминания все каналы могут быть оцифрованы последовательно при помощи устройства выбора каналов, компаратора и цифро-аналогового преобразователя (ЦАП).

Активный вход SIFCHx во время осуществления выборки tsample может быть представлен в виде RC-фильтра высоких частот, как показано на Рис. 22–4. Паразитное сопротивление мультиплексора во включенном состоянии Ri(SIFCHx) (3 кОм макс.) последовательно с конденсатором CSCH(SIFCHx) (7 пФ макс.) подключено к резистивному делителю. Для точного 10-битного преобразования напряжение на конденсаторе VC должно отличаться от напряжения на резистивном делителе на величину, не превышающую ? МЗР. См. уточнённые параметры в документации на конкретный МК.


Рис. 22-4 Эквивалентная схема аналогового входа

Сопротивление источника RS и сопротивление мультиплексора Ri(SIFCHx) влияют на время tsample. Для вычисления минимального времени выборки tsample при 10-битном преобразовании может быть использована следующая формула:

Подставляя приведенные выше значения для RI и CI , получаем:

Например, если RS равен 10 кОм, tsample должно быть более 684 нс.

Непосредственные аналоговые и цифровые входы

Установкой бита SIFCAX внешние аналоговые либо цифровые сигналы могут быть подключены непосредственно к компаратору через входы SIFCIx. Эта опция позволяет обрабатывать сигналы с оптических энкодеров и других датчиков.

Выбор входа компаратора и выходных бит

Битами SIFCAX и SIFSH в качестве входных сигналов компаратора выбираются каналы SIFCIx или SIFCHx, как показано в Таблице 22–1.

Таблица 22-1 Выбор каналов SIFCIx и SIFCHx

SIFCAX SIFSH Описание
0 0 Активны SIFCHx и схема возбуждения
0 1 Активны SIFCHx и УВХ
1 x Активны входы SIFCIx

Сигналы TESTDX и SIFTESTS1(tsm) определяют используемые выходные биты SIFxOUT и SIFTCHxOUT для выхода компаратора как показано в Таблице 22-2. Сигнал TESTDX управляется битом SIFTESTD.

Таблица 22-2 Активные выходные биты

TESTDX SIFCH(tsm) SIFTESTS1(tsm) Активный выходной бит
0 00 X SIF0OUT
0 01 X SIF1OUT
0 10 X SIF2OUT
0 11 X SIF3OUT
1 x 0 SIFTCH0OUT
1 x x SIFTCH1OUT

Когда TESTDX = 0, сигналами SIFCHx(tsm) определяется какой из каналов SIFCIx или SIFCHx запитан от схемы возбуждения и подключен к компаратору. Сигналы SIFCHx(tsm) также определяют соответствующий выходной бит для результата компаратора.

Когда TESTDX = 1, выбор канала определяется сигналом SIFTESTS1(tsm). В том случае, если TESTDX = 1 и SIFTESTS1(tsm) = 0, выбор входного сигнала определяется битами SIFTCH0x, а активным выходным битом является SIFTCH0OUT. Когда TESTDX = 1 и SIFTESTS1(tsm) = 1, выбор входного сигнала определяется битами SIFTCH1x, а активным выходным битом является SIFTCH1OUT.

При SIFCAX = 1, биты SIFCSEL и SIFCI3 определяют переключение между каналами SIFCIx и входом SIFCI, позволяя запоминать состояние выхода компаратора для одного из входных сигналов в одном из четырёх выходных бит SIF0OUT - SIF3OUT. Эта функция может быть использована для получения сигнала огибающей с датчика.

Выходной каскад включается сигналом SIFRSON(tsm). Если выход компаратора равен единице и SIFRSON = 1, внутренний триггер устанавливается. В противном случае триггер сбрасывается. Состояние выхода триггера записывается в выбранный выходной бит по фронту сигнала SIFSTOP(tsm) как показано на Рис. 22–5.


Рис. 22-5 Диаграмма выходных сигналов модуля аналоговых формирователей

Компаратор и ЦАП

Входные аналоговые сигналы преобразуются в цифровой вид при помощи компаратора и программируемого 10-битного ЦАП. Компаратор сравнивает измеряемый аналоговый сигнал с опорным напряжением, которое генерирует ЦАП. Если напряжение выше опорного, на выходе компаратора высокий уровень, если ниже - низкий. Выход компаратора может быть проинвертирован установкой бита SIFCAINV. Состояние выхода компаратора сохраняется в выбранном выходном бите и обрабатывается автоматом состояний для определения наличия перемещения и его направления.

Включение и выключение компаратора и ЦАП осуществляется сигналами SIFCA(tsm) и SIFDAC(tsm) соответственно. Управление осуществляется автоматом состояний. Также есть возможность оставить их включенными постоянно, для этого следует установить биты SIFCAON и SIFDACON. Таким способом можно повысить точность прецизионных измерений.

Для каждого из входов имеется 2 регистра ЦАП для установки опорного напряжения, как указано в Таблице 22–3. Совместно с последним сохранённым состоянием выхода компаратора, SIFxOUT, эти два уровня могут быть использованы для формирования аналогового гистерезиса, как показано на Рис. 22–6. Индивидуальные настройки для каждого из входов позволяют компенсировать неидентичность датчиков.

Таблица 22-3 Активные регистры ЦАП

Активный выходной бит, SIFxOUT Последнее значение бита SIFxOUT Активный регистр ЦАП
SIF0OUT 0 SIFDACR0
1 SIFDACR1
SIF1OUT 0 SIFDACR2
1 SIFDACR3
SIF2OUT 0 SIFDACR4
1 SIFDACR5
SIF3OUT 0 SIFDACR6
1 SIFDACR7


Рис. 22-6 Формирование аналогового гистерезиса регистрами ЦАП

Когда TESTDX = 1, регистры SIFDACR6 и SIFDACR7 используются для формирования опорного напряжения компаратора как показано в Таблице 22–4.

Таблица 22-3 Активные регистры ЦАП при TESTDX = 1

SIFTESTS1(tsm) Активный регистр ЦАП
0 SIFDACR6
1 SIFDACR7

Внутренние подключения к модулю таймера Timer1_A5

Выходы блока аналоговых формирователей подключены к 3-м различным регистрам захвата-сравнения модуля таймера Timer1_A5. Выходной каскад блока аналоговых формирователей, показанный на Рис. 22–7 может работать в двух различных режимах, определяемых битом SIFCS и передающих сигналы SIFOx в модуль таймера Timer1_A5. Подробную информацию о подключении этих сигналов см. в документации на конкретный МК.


Рис. 22-7 Выходной каскад блока аналоговых формирователей, подключаемый к таймеру Timer1_A5

Когда SIFCS = 1, сигнал SIFEX(tsm) и сигнал с выхода компаратора могут быть выбраны в качестве входов для различных регистров захвата-сравнения модуля таймера Timer1_A5. Эта опция может быть использована для измерения времени между возбуждением датчика и последним периодом колебаний, поступившим на вход компаратора для осуществления аналогово-цифрового преобразования slope-типа.

В случае, если SIFCS =0, выходные биты SIFxOUT могут быть выбраны в качестве входов таймера Timer1_A5 совместно с битами SIFS1x и SIFS2x. Эта опция позволяет измерять скважность сигнала SIFxOUT.

22.2.2 Автомат формирования импульсов модуля SCAN IF

Блок автомата формирования импульсов (TSM) представляет собой автомат последовательных конечных состояний, определяемых регистрами SIFTSMx. Данный блок автоматически управляет блоком аналоговых формирователей, в том числе схемой возбуждения датчиков без использования ресурсов ЦПУ. Состояния определяются матрицей 24 x 16-бит, расположенной в регистрах SIFTSM0 … SIFTSM23. Битом SIFEN включается блок TSM. Когда SIFEN = 0, входной делитель частоты ACLK, триггер запуска TSM, и выходы TSM сброшены, а встроенный генератор остановлен. Блок-схема автомата формирования импульсов показана на Рис. 22–8.

Состояние автомата начинается с SIFTSM0, конечное состояние – SIFTSMx с установленным битом SIFTSTOP. Когда достигнуто состояние с установленным битом SIFSTOP, счётчик состояний сбрасывается в 0 и переключение состояний останавливается. Обработка состояний перезапускается с SIFTSM0 при возникновении условия запуска, если SIFTSMRP = 0,либо незамедлительно, если SIFTSMRP = 1.

После генерации импульса SIFSTOP(tsm), в автомат формирования импульсов будет загружено состояние, хранящееся в SIFTSM0. В этом состоянии SIFLCEN(tsm) должен быть сброшен для гарантированного замыкания всех LC-датчиков.


Рис. 22–8 Блок-схема автомата формирования импульсов

Работа блока TSM

Автомат состояний TSM перезапускается автоматически с периодом, определяемым делителем частоты ACLK. Коэффициент деления для сигнала запуска при SIFTSMRP = 0 задаётся битами SIFDIV3Ax и SIFDIV3Bx. Например, если SIFDIV3A и SIFDIV3B определяют величину в 270 тактов частоты ACLK, автомат TSM автоматически запускается через каждые 270 тактов частоты ACLK. Если SIFTSMRP = 1, автомат TSM перезапускается незамедлительно с состояния SIFSTM0 на следующем такте частоты ACLK после достижения состояния с установленным битом SIFSTOP. По запуску автомата TSM выставляется флаг прерывания SIFIFG2.

Биты SIFDIV3Ax и SIFDIV3Bx могут быть модифицированы в любое время в процессе работы. После их изменения текущий цикл смены состояний будет завершён со старыми настройками, следующий цикл будет начат с новыми настройками.

Управление аналоговыми формирователями автоматом TSM

Автомат TSM управляет блоком аналоговых формирователей при помощи бит SIFCHx, SIFLCEN, SIFEX, SIFCA, SIFRSON, SIFTESTS1, SIFDAC, и SIFSTOP. При установке любого из этих бит в «1» соответствующие сигналы, SIFCHx(tsm), SIFLCEN(tsm), SIFEX(tsm), SIFCA(tsm), SIFRSON(tsm), SIFTESTS1(tsm), SIFDAC(tsm), и SIFSTOP(tsm) имеют высокий уровень в пределах текущего состояния. В противном случае сигналы имеют низкий уровень.

Длительность состояний автомата TSM

Длительность каждого состояния автомата программируется индивидуально битами SIFREPEATx. Длительность равна SIFREPEATx + 1 тактов выбранной частоты тактирования. Например, если для состояния определено SIFREPEATx = 3 и SIFACLK = 1, длительность такого состояния будет равна четырём тактам частоты ACLK. Ввиду синхронизации сигналов, на длительность состояния также будет влиять выбор источника тактирования для предыдущего состояния, как показано в Таблице 22–5.

Таблица 22–5. Длительность состояний автомата TSM

SIFACLK Длительность состояния, Т
Для предыдущего состояния Для текущего состояния
0 0 T = (SIFREPEATx + 1) x 1/fSIFCLK
0 1 (SIFREPEATx) x 1/fACLK < T <= (SIFREPEATx + 1) x1/fACLK
1 0 (SIFREPEATx + 1) x 1/fSIFCLK <= T < (SIFREPEATx + 2) x1/fSIFCLK
1 1 T = (SIFREPEATx + 1) x 1/fACLK

Выбор источника тактирования состояния автомата TSM

Источник тактирования выбирается независимо для каждого состояния автомата TSM. Такими источниками могут служить либо частота ACLK, либо высокочастотный источник тактирования, что определяется битом SIFACLK. Когда SIFACLK = 1, для тактирования текущего состояния используется ACLK, когда SIFACLK = 0, используется высокочастотный генератор. В качестве высокочастотного источника тактирования может быть выбран источник SMCLK или встроенный генератор модуля TSM, что определяется битом SIFCLKEN. Частота ACLK может быть поделена на 1,2,4, или 8 в зависимости от состояния бит SIFDIV2x, частота высокочастотного генератора также может быть поделена на 1,2,4 или 8 в зависимости от состояния бит SIFDIV1x.

Установкой в «1» бита SIFCLKON можно принудительно включить высокочастотный генератор на длительность текущего состояния, если этот генератор в данном состоянии не используется для тактирования. Если в качестве высокочастотного генератора выбран DCO, он остаётся постоянно включенным, независимо от настроек низкопотребляющих режимов MSP430.

Номинальная частота внутреннего генератора модуля TSM переключается между 1 и 4 МГц битом SIFFNOM и может подстраиваться в пределах от –40% до +35% с номинальным шагом 5% при помощи бит SIFCLKFQx. Точное значение частоты и шага подстройки имеет разброс, см. уточнённые параметры в документации на конкретный МК.

При помощи частоты ACLK можно измерить точное значение частоты внутреннего генератора модуля TSM. Когда SIFCLKEN = 1 и SIFCLKGON = 1 регистр SIFCNT3 сброшен, а по следующему фронту сигнала ACLK SIFCNT3 является счётчиком тактов внутреннего генератора. Если SIFNOM = 0 в регистре SIFCNT3 сохраняется число тактов внутреннего генератора за один период частоты ACLK, а при SIFNOM = 1 за четыре периода частоты ACLK. При попытке доступа к SIFCNT3 во время счёта будет возвращено значение 01h.

Условие останова автомата TSM

Последнее из состояний автомата TSM помечается битом SIFSTOP = 1. Длительность этого состояния всегда равна одному такту частоты SIFCLK вне зависимости от настроек SIFACLK и SIFREPEATx. Когда автомат переходит в состояние с установленным битом SIFSTOP, генерируется флаг прерывания SIFIFG1.

Тестовые состояния автомата TSM

Между состояниями автомата TSM могут быть вставлены тестовые состояния для калибровки, определения ухода параметров датчика или измерения внешних сигналов. Это осуществляется установкой бита SIFTESTD. При этом время между состояниями автомата TSM не изменяется, как показано на Рис. 22–9. По завершении тестового состояния бит SIFTESTD очищается автоматически. Во время тестового состояния сигнал TESTDX является активным, что позволяет управлять входными и выходными каналами. Активный уровень сигнала TESTDX появляется после установки бита SIFTESTD и завершения текущего состояния автомата TSM.


Рис. 22-9 Введение тестовых состояний

Пример работы автомата TSM

На рис. 22–10 показан пример смены состояний автомата TSM. Состояние регистров TSMx для этого примера показано в Таблице 22–6. Сигналы ACLK и SIFCLK не соответствуют масштабу. Начальное состояние автомата TSM - SIFTSM0, конечное - SIFTSM9 с установленным битом SIFSTOP. Показаны только состояния от SIFTSM5 до SIFTSM9.

Таблица 22-6 Значения регистров

Регистры TSMx Содержимое регистров TSMx
SIFTSM5 0100Ah
SIFTSM6 00402h
SIFTSM7 01812h
SIFTSM8 00952h
SIFTSM9 00200h

В примере также показано влияние синхронизации сигналов при переключении между SIFCLK и ACLK. В состоянии SIFTSM6, бит SIFACLK установлен, в то время как в предыдущем состоянии он очищен. На диаграмме видно, что длительность состояния SIFTSM6 меньше, чем один период частоты ACLK, а длительность состояния SIFTSM7 почти на один период частоты SIFCLK дольше, чем установлено битами SIFREPEATx.


Рис. 22–10 Пример смены состояний автомата TSM

22.2.3 Блок автомата состояний модуля Scan IF

Блок PSM представляет собой программируемый автомат конечных состояний, используемый для определения наличия вращения и его направления. Таблица состояний автомата хранится в памяти микроконтроллера MSP430 (флеш, ПЗУ либо ОЗУ). Автомат состояний измеряет скорость вращения и контролирует генерацию прерываний, анализируя состояние входов от блока аналоговых формирователей и автомата генерации импульсов. Вектор SIFPSMV должен быть инициализирован в качестве указателя на таблицу состояний автомата PSM. При необходимости может быть использовано несколько таблиц состояний, переход между ними осуществляется переинициализацией вектора SIFPSMV. Блок схема автомата состояний PSM показана на Рис 22–11.


Рис 22–11 Блок схема автомата состояний PSM

Работа автомата состояний PSM

По спаду сигнала SIFSTOP(tsm) автомат состояний PSM помещает байт текущего состояния из таблицы состояний в выходной регистр-защёлку. Для автомата состояний PSM выделен обособленный канал прямого доступа к памяти (DMA), таким образом, все обращения к таблице состояний автомата PSM осуществляются автоматически, без участия ЦПУ.

При отключении модуля Scan IF память текущего и последующего состояний будет сброшена. После включения модуля Scan IF в память будет загружен один из байт, расположенных по адресам от SIFPSMV до SIFPSMV + 3. Конкретный адрес байта определяется сигналами S1 и S2.

Сигналы S1 и S2 формируют 2-битное смещение к начальному адресу SIFPSMV, определяя который из байт будет загружен в выходной регистр-защёлку первым. Например, когда S2 = 1 и S1 = 0, первым будет загружен байт, расположенный по адресу SIFPSMV + 2. Расположение последующих байт определяется вычислением следующего состояния, которое осуществляется автоматом PSM в зависимости от состояния таблицы и значений сигналов S1 и S2.

Примечание: Частота сигнала SIFSTOP(tsm)

Частота сигнала SIFSTOP(tsm) должна быть как минимум в 32 раза меньше частоты MCLK. В противном случае может наблюдаться непредсказуемое поведение модуля.

Вычисление следующего состояния

Биты 0 и 3 - 5 (Q0, Q3, Q4, Q5), и, если это разрешено битами SIFQ6EN или SIFQ7EN, биты 6 и 7 (Q6, Q7) используются совместно с сигналами S1 и S2 для вычисления следующего состояния. Когда SIFQ6EN = 1, для вычисления следующего состояния используется Q6, а когда SIFQ6EN = 1 и SIFQ7EN = 1, для вычисления следующего состояния используется Q7. Следующее состояние определяется как:

Q7 Q6 Q5 Q4 Q3 Q0 S2 S1

Когда Q7 = 0, состояние автомата PSM обновляется по спаду сигнала SIFSTOP(tsm) в конце последовательности автомата TSM. После обновления текущего состояния автомат PSM записывает соответствующее значение из таблицы состояний в выходной регистр-защёлку. Когда Q7 = 1, следующее состояние вычисляется незамедлительно, без ожидания спада сигнала SIFSTOP(tsm) и вне зависимости от состояния SIFQ6EN и SIFQ7EN. При этом состояние будет обновлено при переходе на следующую инструкцию. Таким образом, в худшем случае время между переходами будет составлять 6 тактов частоты MCLK.

Счётчики автомата состояний PSM

Блок PSM содержит два 8-битных счётчика - SIFCNT1 и SIFCNT2. Входными сигналами для SIFCNT1 являются Q1 и Q2, а входным сигналом для SIFCNT2 является Q2. Состояние счётчиков может быть прочитано через регистр SIFCNT. Если установлен бит SIFCNTRST, каждая операция чтения будет обнулять счётчики, в противном случае их содержимое останется неизменным. Если в процессе чтения счётчика на него поступит счётный импульс, обновление содержимого счётчика будет задержано до завершения чтения. Однако, если в процессе чтения на счётчик поступит несколько счётных импульсов, учтён будет лишь один из них. Когда SIFEN = 0, оба счётчика находятся в сброшенном состоянии.

Счётчик SIFCNT1 может инкрементироваться либо декрементироваться в зависимости от Q1 и Q2. Если SIFCNT1ENM = 1, счётчик SIFCNT1 декрементируется при переходе к состоянию с установленным битом Q2. Если SIFCNT1ENP = 1, счётчик SIFCNT1 инкрементируется при переходе к состоянию с установленным битом Q1. В том случае, если установлен как бит SIFCNT1ENM, так и бит SIFCNT1ENM, и оба бита Q1 и Q2 установлены при переходе к состоянию, содержимое счётчика SIFCNT1 не изменяется.

Счётчик SIFCNT2 декрементируется в зависимости от Q2. Когда SIFCNT2EN = 1, SIFCNT2 декрементируется при переходе к состоянию с установленным битом Q2. По первому импульсу после сброса состояние SIFCNT2 изменится с нуля на 255 (0FFh).

Если в качестве последующего состояния вычислено текущее, счётчики SIFCNT1 и SIFCNT2 также будут инкрементироваться либо декрементироваться в зависимости от состояния бит Q1 и Q2 в текущем состоянии. Например, если текущее состояние 05h, т.е. установлен Q2 и в качестве последующего состояния вычислено текущее, переход от 05h к 05h декрементирует счётчик SIFCNT2 если SIFCNT2EN = 1.

Пример реализации простейшего аппарата конечных состояний

На Рис. 22–12 показан пример реализации простейшего аппарата конечных состояний на базе блока PSM. В примере программы показано формирование таблицы состояний и инициализация PSM.


Рис. 22–12 Пример реализации простейшего аппарата конечных состояний на базе блока PSM.

; Пример реализации простейшего аппарата конечных состояний 
SIMPLEST_PSM
db    000h       ; состояние 00 (индекс в таблице состояний 0)
db    000h       ; состояние 01 (индекс в таблице состояний 1)
db    000h       ; состояние 10 (индекс в таблице состояний 2)
db    002h       ; состояние 11 (индекс в таблице состояний 3)
PSM_INIT
      MOV   #SIMPLEST_PSM,&SIFPSMV    ; инициализация вектора PSM 
      MOV   #SIFS20,&SIFCTL3          ; источник S1/S2 
      MOV   #SIFCNT1ENP+SIFCNT1ENM,&SIFCTL4
; в вычислении следующего состояния 
; Q7 и Q6 не участвуют
; инкремент и декремент счётчика 
; SIFCNT1 разрешены 

Когда автомат PSM находится в состоянии 01, PSM загружает соответствующий байт с индексом 01h из таблицы состояний:

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
0 0 0 0 0 0 0 0

В этом примере в следующем состоянии автомата TSM S1 и S2 установлены. Для вычисления следующего состояния биты Q5 - Q3 и Q0 состояния 01 таблицы комбинируются с сигналами S1 и S2:

Q7 Q6 Q5 Q4 Q3 Q2 S2 S1
0 0 0 0 0 0 1 1

При переходе к последующему состоянию загружается байт из таблицы для состояния 11:

Q7 Q6 Q5 Q4 Q3 Q2 Q2 Q1
0 0 0 0 0 0 1 0

В этом состоянии Q1 установлен, поэтому счётчик SIFCNT1 инкрементируется.

Более сложные автоматы состояний могут быть построены из комбинации простых автоматов.

22.2.4 Регистр отладки модуля Scan IF

Для целей разработки и отладки модуль Scan IF содержит регистр SIFDEBUG. Для записи в данный регистр доступны только два младших бита, операцию записи можно осуществлять только инструкцией MOV. После записи двух младших бит, в регистре SIFDEBUG будет содержаться различная отладочная информация. После записи значения 00h в регистр SIFDEBUG, чтение из него вернёт последний адрес чтения автомата PSM. После записи значения 01h в регистр SIFDEBUG, чтение из него вернёт текущее состояние автомата TSM и биты Q7 - Q0 автомата PSM. После записи значения 02h в регистр SIFDEBUG, чтение из него вернёт состояние выхода автомата TSM. После записи значения 03h в регистр SIFDEBUG, чтение из него покажет активный регистр ЦАП и его состояние.

22.2.5 Прерывания модуля Scan IF

Модуль Scan IF имеет один вектор прерываний для семи флагов прерываний, как показано в Таблице 22–7. Каждому из флагов соответствует свой бит разрешения прерываний. Когда прерывание разрешено, и бит GIE установлен, флаг прерывания будет вызывать прерывание. Автоматическая очистка флагов не производится, они должны сбрасываться программно.

Формат выходных данных

Выходные данные могут иметь вид двоичного кода со смещением либо кода с дополнением до 2-х, как показано в Таблице 20-1.Формат данных определяется битом SD16DF.

Флаг прерывания Условие возникновения
SIFIFG0 SIFIFG0 устанавливается одним из выходов блока аналоговых формирователей SIFxOUT, выбранным битами
SIFIFGSETx.
SIFIFG1 SIFIFG1 устанавливается по фронту сигнала SIFSTOP(tsm).
SIFIFG2 SIFIFG2 устанавливается в начале последовательности автомата TSM.
SIFIFG3 SIFIFG3 выставляется по завершению интервалов счёта счётчика SIFCNT1, задаваемых битами SIFIS1x.
SIFIFG4 SIFIFG4 выставляется по завершению интервалов счёта счётчика SIFCNT2, задаваемых битами SIFIS2x
SIFIFG5 SIFIFG5 устанавливается при переходе автомата в состояния с установленным битом Q6.
SIFIFG6 SIFIFG6 устанавливается при переходе автомата в состояния с установленным битом Q7.

Флаги прерываний SIFIFG3 и SIFIFG4 имеют гистерезис, т.е. при изменении состояния счётчика вблизи уровня прерывания флаг прерывания будет установлен только единожды, как показано на Рис. 22-13


Рис. 22-13 Входной гистерезис при генерации флагов прерываний SIFIFG3 и SIFIFG4

22.2.6 Использование модуля Scan IF с датчиками LC-типа

В системах с датчиками LC-типа используются диски, частично покрытые поглощающим материалом для измерения скорости вращения. Скорость вращения измеряется методом возбуждения датчиков и наблюдения результирующих колебаний. Генерация при вращении диска может ослабляться либо не ослабляться. Колебания всегда имеют затухающий характер из-за потерь энергии, но скорость затухания всегда выше в случае, если поглощающий материал диска находится в поле LC-датчика, как показано на Рис. 22–14. Измерение генерации LC-датчика осуществляется методом измерения огибающей либо непосредственным измерением колебаний.


Рис. 22-14 Колебания в LC-датчике

22.2.6.1 Непосредственное измерение колебаний

В этом режиме производится сравнение – находится ли амплитуда колебаний после возбуждения датчика выше опорного уровня. Опорное напряжение для компаратора формируется ЦАПом, компаратор детектирует превышение амплитудой колебаний опорного уровня. Если амплитуда колебаний превышает опорный уровень, на выходе компаратора появится серия импульсов в соответствии с колебаниями, а активный выход модуля аналоговых формирователей AFE будет выставлен в «1». Временные параметры измерения и опорный уровень зависят от датчиков, система должна конструироваться таким образом, чтобы разность амплитуд ослабленного и неослабленного сигнала была максимальной. На Рис. 22–15 показан пример подключения при непосредственном измерении колебаний.


Рис. 22–15 Пример подключения при непосредственном измерении колебаний.

22.2.6.2 Режим измерения огибающей

В этом режиме производится измерение времени затухания после возбуждения счётчика. Огибающая формируется диодами и RC-фильтрами. Опорное напряжение для компаратора формируется ЦАПом, компаратор детектирует превышение амплитудой огибающей опорного уровня. Выходы компаратора и модуля аналоговых формирователей AFE подключены к таймеру Timer1_A5. Регистры захвата-сравнения таймера Timer1_A5 используются для измерения времени затухания огибающей. Блок автомата состояний PSM в этом режиме не используется.

Когда датчики подключены к индивидуальным входам SIFCIx, как показано на Рис. 22–16, опорный уровень компаратора может быть настроен для каждого датчика индивидуально. Когда все датчики подключены ко входу SIFCI, как показано на Рис. 22–17, для всех датчиков используется единый опорный уровень компаратора.


Рис. 22–16 Пример подключения в режиме измерения огибающей


Рис. 22–17 Пример подключения в режиме измерения огибающей

22.2.7 Использование модуля Scan IF с резистивными датчиками

Системы, построенные на базе магниторезисторов (GMR) используют для измерения вращения магниты на крыльчатке. Поглощающий материал и магниты изменяют электрическое поведение датчика, при этом можно определить скорость и направление вращения. Скорость вращения измеряется резистивными датчиками путём подключения резистивных делителей на короткое время к «земле». При этом через делитель начинает течь ток. На резисторы воздействует вращающийся диск, создавая различные напряжения в точках делителя. Эти напряжения запоминаются при помощи УВХ. После стабилизации сигналов делитель может быть отключен для снижения энергопотребления. Опорное напряжение для компаратора формируется ЦАПом, компаратор детектирует превышение амплитудой сигнала опорного уровня. Если измеряемое напряжение выше опорного, на выходе компаратора будет высокий уровень. На Рис. 22–18 показан пример подключения резистивных датчиков.


Рис. 22–18 Пример подключения резистивных датчиков.

22.2.8 Квадратурное декодирование

Модуль Scan IF может использоваться для декодирования квадратурно-кодированных сигналов. Квадратурными называют сигналы, смещённые друг относительно друга на фазу 90°. Для создания таких сигналов используется специальное расположение датчиков, зависящее от прорезей либо покрытий на диске энкодера. На Рис. 22–19 показаны два примера положений датчиков и диаграммы квадратурно-кодированных сигналов.


Рис. 22–19 Примеры положений датчиков и диаграммы квадратурно-кодированных сигналов.

Для квадратурного декодирования требуется знать предыдущее значение пары сигналов S1 и S2, а также текущее их значение. Сравнение этих значений позволяет вычислить направление вращения. Например, если текущее значение 00, то оно может измениться на 01 или 10, в зависимости от направления вращения. Другая смена сигнала будет ошибочной, как показано на Рис. 22–20.


Рис. 22–20

Для преобразования состояний в счётные импульсы, прежде всего следует определить. какой угол поворота будет соответствовать счётному импульсу и какие переходы состояний соответствуют этому углу. В данном примере счётному импульсу соответствует полный оборот и переходы 00 > 01 и 00 > 10 при использовании диска с половинным затемнением и датчиков, расположенных под углом 90°. Все возможные варианты переходов помещены в таблицу, которая в дальнейшем может быть преобразована в соответствующую таблицу состояний для автомата PSM, как показано в Таблице 22–8.

Таблица 22–8

Предыдущее значение сигналов Текущее значение сигналов Направление движения Таблица состояний PSM
Q6 Q2 Q1 Q3 Q0 Код
Ошибка -1 +1 Текущая пара квадрантных сигналов
00 00 Нет движения 0 0 0 0 0 000h
00 01 Поворот вправо на +1 0 0 1 0 1 003h
00 10 Поворот влево на -1 0 1 0 1 0 00Ch
00 11 Ошибка 1 0 0 1 1 049h
01 00 Поворот влево 0 0 0 0 0 000h
01 01 Нет движения 0 0 0 0 1 001h
01 10 Ошибка 1 0 0 1 0 048h
01 11 Поворот вправо 0 0 0 1 1 009h
10 00 Поворот вправо 0 0 0 0 0 000h
10 01 Ошибка 1 0 0 0 1 041h
10 10 Нет движения 0 0 0 1 0 048h
10 11 Поворот влево 0 0 0 1 1 009h
11 00 Ошибка 1 0 0 0 0 040h
11 01 Поворот влево 0 0 0 0 1 001h
11 10 Поворот вправо 0 0 0 1 0 008h
11 11 Нет движения 0 0 0 1 1 009h
    Получить консультации и преобрести компоненты вы сможете у официальных поставщиков фирмы Texas Instruments,

поставщики электронных компонентов






 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники