Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
способность;
время преобразования - 1 ?s;
18 каналов, из которых 16 - внешние;
возможность задавать время преобразования индивидуально для каждого канала (8 дискретных значений);
возможность задания одиночного или непрерывного преобразования;
самокалибровка;
наличие оконного компаратора;
запуск преобразования от внешнего источника;
работа с модулем DMA.
Структурная схема аналогово-цифрового преобразователя представлена на рисунке 14.MUX - это селектор каналов. АЦП имеет 18 каналов (входов). 16 каналов - это выводы микроконтроллера, на которые подается измеряемый сигнал. Еще два канала задействованы под внутренние сигналы: один для подачи внутреннего образцового напряжения, второй для подключения датчика температуры, который расположен на кристалле.channels (инжектированные каналы) и Regular channels (регулярные каналы). Это две разновидности опроса каналов. Если нужно опрашивать несколько каналов, создается их список, и АЦП измеряет напряжение на каждом канале из этого списка последовательно друг за другом. К примеру, нужно измерять напряжение в такой последовательности: канал №2 - канал № 5 - канал №1 - канал №1 - канал № 9. Эта последовательность записывается в специальный регистр, после чего запускается процесс преобразования. В результате все каналы будут последовательно опрошены.
Рисунок 14 - Функциональная схема аналогово-цифрового преобразователя
Не имеет значение порядок следования каналов, также один канал может опрашиваться несколько раз.
Регулярные каналы
Количество измерений в группе регулярных каналов может достигать 16. Возможно непрерывное измерение выбранных каналов (по окончанию измерения автоматически запустится новый цикл).
Инжектированные каналы
Максимальное количество измерений в группе инжектированных каналов равно четырем. Если запустить измерение инжектированных каналов, то измерение регулярных каналов будет приостановлено. Затем будет выполнено измерение заданных инжектированных каналов и вновь восстановлено измерение каналов регулярной группы.
Например необходимо измерять постоянно напряжение на четырех выводах. Для этого нужно включить эти каналы в регулярную группу и запустить преобразование. АЦП последовательно их опросит, в нужный момент сгенерируется прерывание, данные сохраняются и обрабатываются. Однако если возникла необходимость измерить температуру кристалла , то чтобы не нарушать измерение в регулярном канале, запускаем инжектированный. На время работа регулярного канала автоматически будет приостановлена, а по окончанию измерения инжектированной группы автоматически восстановлена.
В нижней части схемы мы видим источники, которые могут запускать процесс преобразования отдельно для регулярной и инжектированной группы каналов. Это могут быть сигналы от таймеров, внешний сигнал или два специальных разряда управляющих регистров, установив которые можно программно запустить преобразование в регулярной или инжектированной группе.
Оконный компаратор
Оконный компаратор (Analog watchdog) имеет в своем составе два регистра.
В один регистр заносится нижний уровень сигнала, во второй - верхний уровень. Также задается номер канала, к которому нужно подключить компаратор. Если измеряемое напряжение заданного канала выйдет за указанные границы, то будет установлен соответствующий флаг, и сгенерирован запрос на прерывание.
Оконный компаратор может быть весьма полезным.
Допустим, необходимо контролировать температуру контроллера чтобы он не перегрелся. Для этого периодически измеряем уровень сигнала от датчика температуры. Если он превысил какой-то порог, предпринимаем определенные действия - можно снизить тактовую частоту, или отключить некоторые устройства, или вообще уйти в спячку . Но для этого необходимо отвлекать процессор от выполнения основной программы для анализа температуры. А это время и лишний программный код.
Если использовать оконный компаратор, от этого можно избавиться.
Выполнить инициализацию компаратора - задать пороговые уровни, включить этот канал в список регулярных каналов и разрешить прерывание от него.
Если уровень выйдет за заданный предел, сработает компаратор, будет вызвана функция-обработчик в которой нужно принять решение что делать дальше. И не надо периодически анализировать уровень сигнала.
Прерывания от АЦП
На схеме видно, что прерывание от АЦП могут генерировать три сигнала: конец преобразования регулярной группы, конец преобразования инжектированной группы и сигнал от оконного компаратора.
Сохранение результата преобразования
Для каждого из инжектированных каналов предусмотрен свой регистр данных, в котором сохраняется результат.
Для результатов преобразования регулярных каналов регистр один.
2.4.2 Описание работы АЦП
Режим одиночного преобразования
В этом режиме АЦП выполняет всего одно преобразование. Оно запускается после установки разряда ADON регистра ADC_CR2 (только для регулярных каналов) или от внешнего сигнала (для регулярного и инжектированного каналов). При этом разряд CONT регистра ADC_CR2 должен быть равен нулю.
После окончания преобразования в выбранном канале выполняется:
Для регулярного канала:
Результат преобразования сохраняется в регистре ADC_DR
Устанавливается флаг EOC
Генерируется прерывание, если установлен разряд EOCIE
Для инжектированного канала:
Результ?/p>