Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Сопряжение акселерометра с микроконтроллерами

В данной статье я опишу несложно устройство на ПЛИС фирмы Xilinx, служащее для согласования акселерометра ADXL202 фирмы Analog Devices с микроконтроллером.

Акселерометр ADXL202 представляет из себя микросхему, в которую встроены два датчика ускорения, расположенные взаимно перпендикулярно в плоскости корпуса (см. рис. 1). Пределы измерений составляют +/-2g (g – ускорение свободного падения). Датчики измеряют как динамическое ускорение (разнообразные вибрации), так и статическое (гравитацию). В микросхему встроен широтно-импульсный модулятор (см. рис. 2). Выходами являются цифровые импульсы, скважность которых (отношение ширины лог. 1 к периоду импульса) пропорциональна проекции вектора ускорения на соответствующую ось микросхемы. Эти импульсы могут непосредственно измеряться счетчиком микроконтроллера, и нет необходимости в использовании АЦП. Период импульсов выбирается в пределах 0.5 .. 10 мс посредством резистора Rset. Если необходим аналоговый сигнал, пропорциональный ускорению, его можно снять с контактов Xfilt Yfilt микросхемы. От номиналов конденсаторов Cx Cy зависит максимальная частота, с которой можно снимать верные данные с датчиков и уровень шума на выходе (который определяет разрешающую способность датчиков). Скажем, для значений конденсаторов Cx Cy 0.1 мкф шум составит около 4 mg (милли-g)Разрешающая способность всей системы может быть ниже, если недостаточно точно подсчитывать скважность выходного импульса. Для уяснения этого представим себе, что ШИМ-смодулированный сигнал с одной из осей служит сигналом разрешения счетчика, на который подается опорный тактовый сигнал с периодом T0. Количество тактов опорного сигнала, укладывающееся в интервал, когда на цифровом выходе одной из осей присутствует лог. 1 дискретно и равно оцеленному значению (T1 / T0). Из этого следует, что относительная ошибка, вносимая оцифровкой сигнала, оценивается выражением (T0/T1). Именно поэтому тактовая частота счетчика должна быть достаточно высокой, чтобы не вносить дополнительных погрешностей. Величины погрешностей для некоторых частот опорного генератора и ШИМ можно увидеть в таблице на рис. 3. Более полную информацию об акселерометрах можно найти на сайте фирмы Analog Devices www . analog . com

Несмотря на то, что интерфейс акселерометра предназначен для непосредственного подсоединения к микроконтроллерам без какой-бы то ни было связующей логики, как сказано в описании к нему, при подключении его к микроконтроллеру AVR at90s8515 возникли некоторые трудности. Встроенные счетчики микроконтроллера использовать для этих целей затруднительно, так как они разные (8 и 16 бит) и их нельзя сконфигурировать на разрешение счета от внешнего источника. Можно добиться результата программными ухищрениями, но тогда значит, что время от времени процессор будет заниматься только одним делом – а именно преобразованию сигнала от акселерометра. Это дорогостоящая потеря, когда требуется проверять матрицу клавиатуры на нажатие клавиш и еще производить вычисления с полученными данными, а частота съема данных с акселерометра порядка 50 Гц. Для решения данной задачи был спроектирован двухканальный периодомер на основе ПЛИС CPLD xc9572 фирмы Xilinx. Внутренняя схема ПЛИС состоит из предварительного делителя частоты задающего генератора L1 (см. рис. 4), который делит частоту до значения 1 МГц. Например, если мы используем опорный генератор на 4 МГц, этот делитель конфигурируем на деление на 4. Сигнал с делителя подается на два эквивалентных периодомера L2, L3 для двух осей акселерометра.

Содержимое каждого периодомера представлено на рис. 5. Основной элемент – это 12-разрядный счетчик L4 со входами асинхронного сброса (ASYNC_CTRL) и разрешения счета (CLK-EN). L7 – защелка, которая служит буфером данных при передаче их в последовательном виде в микроконтроллер. L8 – мультиплексор, преобразующий данные с выходов защелки L7 в последовательный вид. L9 – четырехразрядный двоичный счетчик. L5 – формирователь из асинхронного импульса двух синхронных с тактовым сигналом (схема на рис. 6, диаграмма работы – рис. 8). L6 – формирователь одиночного импульса, синхронного с тактовой последовательностью (схема на рис. 7, диаграмма работы – рис. 9). На вход IN подается цифровой сигнал с одного из каналов акселерометра. На вход C опорная частота 1 МГц. Входами R и RD управляет микроконтроллер. В исходном состоянии на них лог. 0. (см. диаграмму на рис. 10). От микроконтроллера подается короткий импульс на вход R, который после преобразования модулем L6 в синхронный сбрасывает триггер FDC (в середине рисунка), обнуляется сигнал готовности данных на выходе (RDY), разрешается перезапись информации со счетчика в регистр-защелку и запрещается работа счетчика считывания данных L9. Система готова к очередному циклу измерения. Как только на входе IN появляется положительный перепад, счетчик L4 начинает считать количество тактовых импульсов, которое уместится за время действия лог. 1 на входе IN. После спадания сигнала на входе IN благодаря модулю L5 формируется сначала положительный фронт на выходе Y, переписывающий состояние счетчика L4 в регистр L7, и потом – положительный фронт на выходе Z, который обнуляет счетчик L4, подготавливая его к следующему циклу счета. Также устанавливается в 1 триггер FDC, который формирует сигнал готовности данных RDY и разрешает их считывание микроконтроллером. На последовательном выходе D появился нулевой бит данных с защелки L7. Микроконтроллер, подавая на вход RD серию импульсов, последовательно увеличивает значение счетчика L9, который через мультиплексор коммутирует на выход все биты, начиная с нулевого и до последнего 11. Необязательно подавать все 11 импульсов, если мы желаем считать не все биты, а только несколько младших, как изображено на диаграмме для уменьшения ее размера. После считывания данных коротким сигналом сброса R микроконтроллер переводит схему к началу следующего цикла. В процессе считывания данных микроконтроллером благодаря блокировки перезаписи регистра L7 схема обеспечивает корректность передаваемых данных, т.е. если в процессе считывания счетчик L4 окончил очередной цикл, он не сможет перезаписать новые данные в защелку. Как уже было сказано, входы R и RD каждого из каналов (на рис. 4 это RA RDA для канала A, RB RDB для канала B) управляются микроконтроллером и подсоединены к его портам вывода. Выход D является выходом данных, его следует подключить к порту ввода микроконтроллера. А выход RDY удобно использовать для генерации прерывания микроконтроллера по готовности данных, хотя вовсе и не обязательно. ПЛИС xc9572 используется довольно эффективно, приведенная схема занимает в ней 70 макроячеек из 72 доступных.

Скворцов Артём

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика