Болл С.Р. Аналоговые интерфейсы микроконтроллеров (2007) (1264220), страница 23
Текст из файла (страница 23)
Преобразовать результат в температуру (по таблице или через встроенный алгоритм); сохранить новый для следующего прерывания. Примечание. Данная программа рассчитана на 16-битный счетчик. Если применить счетчик большей ширины слова, то константа для коррекции отрицательного результата составит максимальное число отсчетов плюс 1. Например, 20-битный таймер использовал бы 100000а, вместо 1ООООл. Другой метод коррекции отрицательного результата — запрограммировать микроконтроллер так, чтобы таймер генерировал прерывание при переходе счетчика через О. Программа для данного типа прерывания таймера устанавливает флаг.
Когда случается следуюшее прерывание захвата, подпрограмма обработки этого прерывания считывает данный флаг, подстраивает вычисленное время, а затем сбрасывает флаг. Микропроцессоры, не снабженные схемой захвата, могут выполнить подобное измерение, разрешив счетчику свободный счет при подаче частотного сигнала на вход прерываний. Счетчик может быть как внешним, так и внутренним, синхронным с таймером процессора. Когда происходит прерывание, ПО считывает содержимое счетчика и сбрасывает его в исходное состояние.
Этот метод немного менее точный, чем метод захвата из-за различного времени обработки прерывания. Если вам важна точность измерения, и в процессоре имеется вход немаскируемых прерываний, можно использовать этот вход для частотного сигнала, иначе другие прерывания подействуют на точность измерений. Если микроконтроллер снабжен таймером, который переключается внешним сигналом, частотный вход может быть соединен с таким таймером.
Микроконтроллер может затем считывать данные таймера на базе 124 ° Глава 4. Измерение временных параметров встроенного счетчика для определения числа отсчетов, произошедших за время измерения. Погрешности, обусловленные задержкой обработки прерывания, могут быть минимизированы подачей периодического сигнала на счетчик, синхронизируемый от внутреннего таймера микропроцессора, выбирая только те отсчеты, когда входной сигнал в ВЫСОКОМ логическом уровне (счетчики некоторых микроконтроллеров могут работать в таком режиме). Счетчик будет считать на сложение, пока на входе ВЫСОКИЙ уровень, и будет удерживать выходную величину, когда на входе НИЗКИЙ уровень. Микропроцессор может считать данные в любой момент, пока на входе НИЗКИЙ логический уровень.
Если микропроцессор считает данные счетчика до того, как счетчик снова включится на счет, то результат получится довольно точный (Рис. 4.2). Измерение периода сигнала с использованием асинхронного счетчика Измеряемыйсигнал, периодкоторогосодержит информацию о входном аналоговом сигнале Асинхронный счетчик Прерывание микропроцессора Считывание микропроцессором результата Разли~ные времена задержки прерывания ведут к погрешностям резулмата, поскольку счетчик считает также и во время задержки Измерение периода сигнала с исполюованием счетчика, работающего толща, если входной сигнал находится в высоком логическом уровне Измеряемый сигнал, период которого содержит информацию овходном аналоговом сигнале Асинхронныйсчетчик Прерывание микропроцессора Считывание Различныедпительности задержки обрабопги прерывания больше не влияют на результат, посколькусчетчикостановлен,когдана входе низкий логический уровень Рис.
4.2. Измерение периодического входного сигнала с помощью счетчика 4.2. Измерение периода иеи часмомы ° 125 Фирма Апа!ол 2)еггсез выпускает, наряду с МАХ)М/Ра!!аз и другими известными фирмами, температурные дагпчики, например ТМРОЗ/04, которые преобразуют величину температуры в периодический сигнал. Эти приборы формируют на выходе сигналы с фиксированными максимальной и минимальной длительностями импульсов, изменяющихся от температуры. Другими словами, и период, и частота изменяются вместе с температурой.
Температура вычисляется, как отношение максимальной длительности к минимальной. Отношение используется, чтобы компенсировать изменения частоты от температуры. 4.2. Измерение периода или частоты Однажды я работал над системой, в которой аналоговая величина преобразовывалась в частоту. Схема обработки сигналов датчика преобразовывала механические изменения в небольшой частотный сдвиг в области радиочастот (КР яйла!).
Величина частоты отдельных датчиков определялась с помощью ПЛИС, а затем считывалась микропроцессором. Структурная схема системы сбора данных показана на Рис. 4.3. На тактовый вход счетчика подавался частотный входной сигнал. Один раз за каждый период выборки данные счетчика записывались в регистр и считывались микропроцессором. В этом случае счетчик никогда не сбрасывался, однако переходил через ГЕРЕ!з в 0000)з; ответственность за вычисление корректной величины возлагалась на микропроцессор.
Причем, в данной системе надо было определить изменения частоты довольно быстро, всего за 2 мс. В соответствии с данным примером, скажем, частота изменилась от 5 до 5.005 МГц, а интервал дискретизации остался 2 мс. Результаты будут выглядеть следующим образом: 2 мс На частоте 5 МГц процессор сосчитает — = 10000 отсчетов. 200 мс На частоте 5.005 МГц процессор сосчитает = 10010 отсчетов. 2 мс 199.8 нс Такое изменение частоты производит в результате разницу в 10 отсчетов.
Для получения лучшего разрешения потребуется больший промежуток времени или изменение цепи, формирующей входную частоту. На Рис. 4.3 также показан альтернативный метод произведения подобных измерений. Здесь частота входного сигнала делится на 10000, в результате чего формируется 500-Гц сигнал (при 5 МГц на входе). Этот сигнал подается на вход регистра 16-битного счетчика. Счетчик синхронизируется тактовым сигналом с частотой 10 МГц в этом примере.
Переполнение 126 ° Глава 4. Измерение врелгенных параметров счетчика контролируется программно. Изменение сдвига частоты даст следуюший результат: На частоте 5 МГц процессор отсчитает = 20000. 10 МГц 500 Гц На частоте 5.005 МГц процессор отсчитает = 19980. 1О МГц 500.5 Гц Полученные результаты отличаются уже иа 20 отсчетов. Данный метод измерения потребует более сложную схему и повышенную частоту дискретизации, однако позволяет повысить разрешаюшую способность системы без увеличения интервала дискретизации. Еше большее разрешение достигается простым увеличением частоты дискретизации. Изменение частоты с 10 до 20 МГц, например, удвоит число отсчетов иа том же иитервале.
Естественно, поиадобится счетчик с большим числом битов. Измерение частоты сигнала Сигнал с изменяющейся частотой Тактовые импульсы К микропроцессору Входной сигнал с изменяемой частотой Тактовые импул Измерение периодасигнала Тактовые импульсы с частотой 10 М Г К микропроцессору Входной сигнал с частотой 5 МГц Сигнал с частотой 500 Гц (после делителя) при частоте входного сигнала 5 МГц Рие. 4.3. Измерение частоты относительно периода 4.3. Смешение частот ° 127 4.3. Смешение частот На Рис.4.4 показано развитие данного принципа для еще большего увеличения частотного сдвига при том же изменении на входе.
Входной сигнал проходит через смеситель с частотои смешения 7 МГц. На выходе смесителя образуются сигналы двух частот, а также нх сумма и разность. В этом случае на выходе смесителя образуются сигналы с частотами 5, 7, 12 (сумма) и 2 МГц (разность). Выходной сигнал проходит через 2.5 МГц ФНЧ лля подавления всех сигналов, кроме сигнала с частотой 2 МГц. Этот сигнал усиливается и делится на 4000 для получения того же 500-Гц сигнала, у которого далее измеряется период с помощью уже известной логики.
Входной сигнал с частотой 5 МГц сигнала 5 МГц Сигнал с частотой смещения 7 МГц а) Схема лростого смесителя Входной сигнал Выход Сигнал с частотой смещении 6) Рис. 4 4. Использование смесителя частот для получения большего сдвига Теперь, если частота входного сигнала изменится с 5 на 5.005 МГц, разность составит 7 — 5.005, или 1.995 МГц. Поделив на 4000, получим 498.75 Гц.
Если измерим период относительно тех же 1О МГц, получим следующее: 128 ° Глава 4. Измерение временных параметров На частоте 5 МГц процессоротсчитает = 20000. 10 МГц 500 Гц На частоте 5.005 МГц процессор отсчитает = 20050. 1О МГц 498.75 Гц Теперь вместо разницы в 20 отсчетов мы получили разницу уже в 50 отсчетов. Заметим, что сдвиг частоты в цепи деления на 4000 отрицательный, хотя исходный сдвиг частоты положительный. Это происходит из-за того, что в цепи используется высокочастотный вход, введенный для упрощения фильтра низких частот (ФНЧ) и смешивающий входную частоту 5 МГц с более высокой частотой 7 МГц. Если бы мы смешали 5 МГц с 4 МГц для получения разницы в 1 МГц, то направление сдвига частоты выходного сигнала совпадал бы с направлением сдвига входного. Нежелательные высшие гармоники, образующиеся при смешивании, легче отфильтровываются.
На Рис. 4.4б показан также пример простого смесителя на двух диодах, который может быть использован лля двух логических сигналов. Почти любой нелинейный элемент может работать как смеситель сигналов в той или иной степени. Можно также применить смесители радиочастот в интегральном исполнении (в виде ИМС), например г(Е612 фирмы РЬйрз. В данном примере (Рис.4.4а) использован двухзвенный ЕС-фильтр НЧ. В некоторых приложениях понадобится более сложный полосовой фильтр. Можно даже применить цифровую фильтрацию сигнала, что намного сложнее.