Назад в библиотеку

Вопросы организации аналого-цифрового преобразования в устройствах на базе микроконтроллера ADuC841

Автор: Плахин С.В., Яременко П.А., Краснокутский В.А.
Источник: Плахин С.В., Яременко П.А., Краснокутский В.А. лахин С.В., Яременко П.А., Краснокутский В.А. // Информатика, управляющие системы, математическое и компьютерное моделирование - 2016 в рамках в рамках II Международного Научного форума Донецкой Народной Республики (ИУСМКМ-2016): VII Международная научно-техническая конференция студентов, аспирантов и молодых ученых, 26-27 мая 2015, г.Донецк: / Донец. национал. техн. ун-т; сост.: К.Н. Маренич (председатель) и др. – Донецк: ДонНТУ, 2016.

Аннотация

Плахин С.В., Яременко П.А., Краснокутский В.А. - Вопросы организации аналого-цифрового преобразования в устройствах на базе микроконтроллера ADuC841 Рассмотрены особенности работы аналого-цифрового преобразователя микроконтроллера ADuC 841. Приведен вариант программы аналого-цифрового преобразования сигнала. Предложены структуры устройств, которые целесообразно реализовать на аналоговых микроконтроллерах ADuC 84.

Общая постановка проблемы

В последние годы увеличился интерес к построению различных бытовых устройств на микроконтроллерах, работающих совместно с персональным компьютером (ПК). Персональный компьютер значительно повышает вычислительные возможности устройств и обеспечивает хорошее отображение информации на экране дисплея. К таким устройствам можно отнести цифровые осциллографы, домашние метеостанции, различные медицинские приборы, в частности, электрокардиографыи т.п. При создании таких приборов часто требуется измерять аналоговые сигналы. Для этих целей особенно удобны микроконтроллеры со встроенными аналого-цифровыми преобразователями (АЦП). Так широко используемые недорогие микроконтроллеры с RISC архитектурой Atmega фирмы ATMEL и PIC фирмы Microchip содержат в своем составе 10–разрядные АЦП и позволяют измерять напряжения на одном из восьми аналоговых входах. Однако ограниченный объем внутренней памяти данных, и сложность построения внешней памяти ограничивают использование этих контроллеров в устройствах, требующих ввода и хранения больших массивов данных. Да и реальная разрешающая способность АЦП этих контроллеров не всегда обеспечивают необходимую точность измерений.

Пути решения проблемы.

Увеличения качества аналого-цифрового преобразования возможно за счет использования отдельной микросхемы АЦП. Но это приводит к усложнению и удорожанию системы.

Фирма Analog Devises разработала линейку специализированных микроконтроллеров ADuC8xx для сбора и обработки аналоговых сигналов на базе ядра с архитектурой MCS 8052 [1] Отличительной особенностью этих устройств является наличие аналого-цифровых и цифро-аналоговых (ЦАП) преобразователей с высокими характеристиками. Кроме этого устройства имеют расширенную память программ и данных на кристалле, встроенные последовательные интерфейсы UART, SPI, I2C. Напряжение питания микросхем может быть,как 5В, так и 3В.

Микроконтроллеры ADuC8xx отличаются быстродействием, объемом внутренней памяти программ и данных, характеристиками АЦП и ЦАП, набором периферийных устройств. Среди микроконтроллеров линейки ADuC 84x микроконтроллер ADuC 841 обладает самым высоким быстродействием 20 MIPS, памятью программ объемом в 62 Кбайт, возможностью расширения внешней памяти данных до 16 Мбайт, внутренней памятью данных до 2304 байт, двенадцати разрядным АЦП со скоростью преобразования до 400 KSPS.

Одним из недостатков микропроцессорного ядра с архитектурой MCS 52 является низкое быстродействие, обусловленное тем, что машинный цикл осуществляется за 12 машинных тактов. В новой серии аналоговых микроконтроллеров AduC84x этот недостаток в значительной мере преодолен. За счет использования конвейерного принципа 80 % команд микроконтроллера выполняется за один машинный такт, т.е. быстродействие увеличилось почти в 12 раз по сравнению с рассмотренными выше сериями.

Для разработки и отладки программного обеспечения ADuC8xx применяются различные программные средства. Интегрированная программная среда KeiluVision 5 обеспечивает возможность разработки программного обеспечения на языках С и Ассемблер, а также отладку программ с использованием программного симулятора или внутрисхемного эмулятора. Программная среда может использоваться для программирования практически всех микроконтроллеров с архитектурой MCS51 и MCS52, включая все аналоговые микроконтроллеры ADuC8xx. Симулятор пакета Keil позволяет выполнять программу в пошаговом режиме как на уровне команд языка С, так и на уровне машинного кода.

Все эти качества микроконтроллера ADuc 841 обеспечивают решение многих проблем, которые возникают при проектировании устройств с повышенными требованиями к точности преобразования, производительности, к объему измеряемых и хранимых данных

Аналого-цифровой преобразователь ADuC 841.

Микроконтроллер ADuC841 содержит высокопроизводительный 8-ми канальный АЦП, питающийся однополярным напряжением [2]. В состав блока АЦП входят: многоканальный мультиплексор, усилитель выборки-хранения, встроенный источник опорного напряжения (ИОН), средства калибровки и собственно АЦП. Все элементы блока конфигурируются и управляются с помощью трех регистров специальных функций.

АЦП построен по схеме последовательного приближения с емкостным ЦАП. АЦП обеспечивает преобразование от 0 В до величины опорного напряжения (Vref). Внутренний источник опорного напряжения – это высокоточный откалиброванный на заводе источник с малым дрейфом и величиной 2,5 В. Вместо внутреннего источника опорного напряжения может быть подключен внешний источник, величина которого может быть в пределах от 1 В до напряжения питания AVDD.

Однократный или непрерывный режимы преобразования могут инициироваться программно или с помощью внешнего сигнала запуска. Периодический запуск преобразователя может быть осуществлен также с помощью таймера 2. АЦП может быть сконфигурирован для работы в режиме прямого доступа в память (ПДП). В режиме ПДП АЦП непрерывно преобразует и записывает данные во внешнюю память (XRAM) без участия центрального процессора. Для этого может быть использована вся внешняя память объемом 16 Мбайт.

Пример программы аналого-цифрового преобразования.

Пример тестовой программы работы АЦП ADuC 841 приведен на рис.1. Программа написана на языке С в среде программирования Keil uVision. Отладка программы была проведена с помощью оценочной платы MicroConverter SAR Eval Board (Rev. A3).

Программа измеряет сигнал, который поступает на заданный канал и записывает его значение в массив внутренней памяти XRAM. Номер измеряемого канала задается с помощью переменной CHAN. Периодический запуск АЦП осуществляется таймером 2.

В памяти микроконтроллера зарезервирован массив типа unsigned char из 100 элементов, каждый из которых имеет размерность один байт. Для работы с внутренней памятью микроконтроллера необходимо установить нулевой бит регистра CFG841. Это осуществляется посредством побитного «ИЛИ» с соответствующей маской. Затем осуществляется инициализация АЦП и выбор работы по переполнению таймера 2. В регистр ADCCON1 записывается соответствующее значение. В регистр ADCCON2 записывается номер канала, с которого осуществляется считывание сигнала. Переменной CHAN мы можем устанавливать номер канала, а также подавать на вход АЦП землю или напряжение Vref. Таймер 2 в данном случае работает в режиме автозагрузки, поэтому в регистры RCAP2H и RCAP2L записывается число, которое будет загружаться в счетчик таймера при его очередном пере полнении. С помощью битов EA и EADC, разрешаются общие прерывания и прерывание от АЦП. Запуск таймера 2 осуществляется путем установки TR2 в единицу. После этого следует цикл, который повторяется до тех пор, пока включен таймер 2. При переполнении таймера происходит прерывание и выполняется запись в массив данных значений из регистров ADCDATAH и ADCDATAL, которые являются результатом преобразования АЦП. В самом прерывании при каждом вхождении выполняется инкремент счетчика считываний и в конце выполняется проверка. Если все сто значений считаны и записаны в память, осуществляется остановка таймера, и запрещаются прерывания, путем обнуления TR2, EADC, EA. Программа выходит из цикла while и попадает в бесконечный цикл с меткой, имитирующий ожидание.

Фрагментлистинга тестовой программы:
int k=0,cikl=0;
unsigned char xdata array[100] _at_ 0x000000;
unsigned char mask;
void adc_int() interrupt 6
{ array[k] = ADCDATAH;
k++;array[k] = ADCDATAL ;
k++;
cikl++;
if (cikl>50) {
/*Отключение прерыванийи таймера*/
EA = 0;
EADC = 0;
TR2 = 0;
}
return;
}
void main()
{ int CHAN=0x01B;
//Установка канала mask = 1;
CFG841 = CFG841 | mask; //Разрешение работы с внутренней памятью
ADCCON1 = 0x09E;// Включение АЦП и режим работы по таймеру
ADCCON2 = CHAN ; // Выбор канала
RCAP2L = 0x011; //Число для перезагрузки счетчика
RCAP2H = 0x0FF;
TL2 = 0x0D2;
TH2 = 0x0FF;
/*Активация таймера 2*/
EA = 1;// Разрешить прерывания
EADC = 1;// Разрешить прерывания АЦП
TR2 = 1;
// Запустить таймер 2
while (TR2==1){}
m1: goto m1;

Электрокардиограф на базе ADuC841.

В работе [3] предлагается простой электрокардиограф на базе аналогового контроллера ADuC841. Структурная схема кардиографа показана на рис.1. Кардиограф подключается к персональному компьютеру, в котором осуществляется основная обработка сигнала, формирование и отображение кардиограммы. Существует возможность передачи сигнала в систему моделирования MATLAB. Использование системы моделирования MATLAB позволяет разрабатывать и отлаживать алгоритмы цифровой обработки сигнала кардиограммы. Рассматриваемый кардиограф можно использовать для разработки новых алгоритмов цифровой обработки биопотенциалов.

Рисунок 1 - Структурная схема кардиографа

Рисунок 1 – Структурная схема кардиографа

Цифровой осциллограф на микроконтроллере ADuC841.

В работе [4] рассматривается цифровой осциллограф на базе аналогового контроллера ADuC841. Отличительной особенностью данного осциллографа является возможность сопряжения его с системой моделирования MATLAB. Система MATLAB дает мощные средства для цифровой обработки полученных сигналов. В сочетании с возможностями MATLAB визуализации результатов обработки сигналов можно получить удобную среду для экспериментального исследования различных объектов. Структурная схема осциллографа представлена на рис. 2.

Устройство может работать в двух режимах: с персональным компьютером и в автономном.

Рисунок 2 - Структурная схема цифрового осциллографа

Рисунок 2 – Структурная схема цифрового осциллографа

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

Связь с компьютером осуществляется с помощью универсального последовательного порта (UART) через интерфейс RS-232. Так как многие современные компьютеры не обладают последовательным портом (интерфейсом RS-232), то предусмотрена возможность подключения к интерфейсу USB через схему преобразования интерфейсов. Причем персональный компьютер с устройством может работать как с виртуальным СОМ-портом, так и с устройством USB.

В автономном режиме работы прибор используется для измерения постоянных напряжений или действующих напряжений синусоидального тока. Этот режим также используется для тестирования прибора. Вывод результатов измерений при этом может выполняться посредством использования ЖКИ базового аналогового контроллера ADuC841

Выводы

Рассмотрены способы организации аналого-цифрового преобразования в микроконтроллерах ADuС 841.

Предложены структуры устройств с повышенными требованиями к качеству аналого-цифрового преобразования и объему измеряемых и хранимых данных, которые могут быть реализованы на микроконтроллерах ADuC841. Рассмотрены структурные схемы портативного кардиографа и цифрового осциллографа на базе микроконтроллера ADuС 841 с возможностью передачи полученных данных в персональный компьютер.

Список использованной литературы

1. Зайцев О., Троицкий Ю. Аналоговые микроконтроллеры ADuC83x и ADuC84x //Электронные компоненты, 2005. – No1. – С. 45–48.
2. AduC841/ AduC842/ AduC843 [Электронный ресурс]. – Режим доступа: http://www.analog.com/media/en/technical-documentation/data-sheets/ADUC841_842_843.pdf.
3. Плахин С.В. Портативный кардиограф на базе микроконтроллера ADuC841/ Плахин С.В., Краснокутский В.А.– Компьютерная и программная инженерия. Сборник материалов международной научно-технической конференции студентов, аспирантов и молодых учёных 15-16 декабря 2015 года . – Донецк, ДонНТУ – 2015. – C. 13–14.
4. Яременко П.А. Разработка структуры цифрового осциллографа / Яременко П.А., Краснокутский В.А. – Компьютерная и программная инженерия. Сборник материалов международной научно- технической конференции студентов, аспирантов и молодых уч?ных 15-16 декабря 2015 года. – Донецк, ДонНТУ – 2015. – C. 18–19.