техники. Эти системы находят применение в автомобильной промышленности, станко- и роботостроении, в самолетной индустрии, в производстве периферийных устройств компьютеров (приводы дисковых накопителей, скоростные принтеры, плоттеры и т.д.), в бытовой технике (стиральные машины, видеомагнитофоны и т.д.) и, разумеется, в энергетике и электромеханике, где 16-разрядные устройства управления появились даже в относительно несложных приводах бытовых кондиционеров. Особенно широкие возможности по применению этих контроллеров открываются перед разработчиками систем автоматизированного привода, стабилизированных источников питания, промышленных контроллеров и других средств автоматизации производственных процессов.
Список литературы:
1. Прокопенко В.С. Программирование микроконтроллеров ATMEL на языке C. - СПб.: КОРОНА-ВЕК, 2012. - 307 с.
2. Дхананья Гадре, Нигуал Мэлхотра. Занимательные проекты на базе микроконтроллеров tinyAVR. - СПб.: БХВ-Петербург, 2012. - 330 с.
3. Википедия - свободная энциклопедия [Электронный ресурс] // Wiki-media Foundation, Inc.: [сайт]. [2001]. - URL: http://ru.wikipedia.org/ (дата обращения: 30.01.2015).
ПРОЕКТИРОВАНИЕ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА НА БАЗЕ МИКРОКОНТРОЛЛЕРА
© Шаталов Н.В.*
Московский государственный университет леса, г. Мытищи
Рассмотрены прикладные возможности микроконтроллеров в контексте проектирования аппаратной части специализированного вычислительного устройства, получающего, обрабатывающего и передающего аналоговые и цифровые сигналы. Особое внимание акцентируется на выборе микроконтроллера фирмы Atmel Corporation («атмэл корпо-рэйшн», США) серии AVR и поиске оптимального способа использования его ресурсов. Конечным результатом является принципиальная схема вычислительного устройства, готового к программированию.
Ключевые слова: электроника, микроконтроллеры, цифровой сигнал, аналоговый сигнал, сдвиговый регистр, внутрисистемное программирование, программатор.
Микроконтроллер - промежуточное звено между жесткой логикой и полноценным встраиваемым компьютером. Микроконтроллеры имеют програм-
* Магистрант кафедры Вычислительной техники.
мируемую логику и целый набор встроенных дополнительных устройств, таких как многоканальный аналогово-цифровой преобразователь (АЦП), аналоговые компараторы, таймеры (счетчики) с аппаратной функцией широтно-импульсной модуляции (ШИМ) и генерацией волн с помощью ШИМ, интерфейсы иАЯТ, 12С, SPI и т.д.
Разрабатываемое устройство вычисляет две независимые величины, одна из которых является цифровым сигналом, а вторая аналоговым. При этом входные данные принимаются так же в двух формах: цифровой и аналоговой. Формула, по которой вычисляются выходные параметры, не имеет значения, но она должна описываться в алгоритмическом виде.
Для реализации такого устройства, понадобится принять аналоговый сигнал, принять цифровой сигнал, представить их в одинаковой форме для преобразования по формуле и вывести цифровое значение в аналоговом виде, а аналоговое значение в цифровом.
Первое, с чего следует начать проектирование - это с выбора конкретного микроконтроллера для поставленных задач. Для этого была составлена таблица, в которой перечислены задачи и соответствующие им требования к микроконтроллеру (табл. 1).
Таблица 1
Задачи и требования к микроконтроллеру
№ п/п Задача Комментарий Требования
1 Считывание цифрового сигнала Предположим что сигнал 4-битный 4 контакта входа (D3..0)
2 Считывание аналогового сигнала Точность не менее 8 бит АЦП + 1 контакт для входа (ANALOG)
3 Вывод цифрового значения 8 контактов входа
4 Вывод аналогового сигнала Аппаратный ШИМ + 1 контакт для выхода (PWM)
5 Контрольный 7-сегментный индикатор С дополнительным сегментом точкой 8 контактов выхода
6 Кнопка подтверждения 1 контакт входа (CONFIRM)
7 Переключатель между вводом и выводом 1 контакт входа (I/O)
8 Переключатель между просмотром на индикаторе аналогового и цифрового вводимого значения 1 контакт входа (A/D)
Итого, понадобится 25 контактов ввода-вывода, среди которых должен быть один АЦП и один (желательно аппаратный) ШИМ. Наиболее универсальный микроконтроллер ATmega8 имеет только 22 контакта, а более продвинутый ATmega16-32 контакта, но при этом он существенно дороже, а многие его возможности (хотя бы 7 контактов) не будут использованы в данном проекте. Для выхода из данной ситуации можно использовать динамическую индикацию, сдвиговый регистр или все же ATmega16. Динамическая индикация слишком сложна, а использовать ATmega16 слишком про-
сто. Поэтому, 8-ми битный вывод был реализован с помощью сдвигового регистра 74HC595, который требует только 3 контакта для управления и имеет n 8 (при каскадном соединении n регистров) выходных контактов. При использовании одного сдвигового регистра число необходимых контактов сокращается до 20 и становится возможным использование ATmega8, так как в данном микроконтроллере имеется аппаратный генератор ШИМ и АЦП.
После выбора микроконтроллера, можно приступать к синтезу принципиальной электрической схемы устройства на его основе. Для этого, необходимо знать цоколёвку микроконтроллера, представленную на рисунке 1. Для простоты монтажа на макетной плате, использовался микроконтроллер в корпусе DIP-28.
- SCK (контакт № 19);
- MISO (контакт № 18);
- MOSI (контакт № 17);
- RESET (контакт № 1);
- GND (земля);
- VCC (питание).
(RESET) РС6 С (RXD) PD0 С (TXD) PD1 С (INTO) PD2 С (INT1) PD3C (ХСКЯО) PD4 С VCCC GNDC
(XTAL1/TOSC1) РВ6 С (XTAUyTOSC2) РВ7 С (Т1) PD5C (AINO) PD6 С (AIN1) PD7C (1СР1)РВ0С
Рис. 1. Цоколёвка ATmega8 в PDIP корпусе
Первое, что обычно подключают на монтажной плате - это интерфейс, через который осуществляется внутрисхемное программирование (ISP), чтобы выяснить работоспособность микроконтроллера. В ISP разъем входят следующие контакты:
Через ISP разъем, микроконтроллер подключается к программатору, который взаимодействует с компьютером по шине USB (например, USBasp), COM (например, программатор Громова), или LPT (по методу «5 проводков»). На компьютер устанавливается программное обеспечение для выбранного программатора, которое позволяет загрузить программу в устройство.
1 28 ] РС5 (ADC5/SCL)
2 27 □ РС4 (ADC4/SDA)
3 СО 26 □ РСЗ (ADC3)
4 ГО О) 25 □ РС2 (ADC2)
5 03 Е Ь 24 И РС1 (ADC1)
6 23 □ РСО (ADC0)
7 < сс > 22 □ GND
8 21 И AREF
9 < 20 □ AVCC
10 В с 19 □ РВ5 (SCK)
11 с < 18 □ РВ4 (MISO)
12 17 □ РВЗ (MOSI/OC2)
13 16 □ РВ2 (SS/OC1B)
14 15 □ РВ1 (ОС1А)
Далее, необходимо определить номера контактов, соответствующие самому подходящему генератору ШИМ и каналу АЦП. Подробную и крайне понятную информацию обо всех возможностях микроконтроллера можно найти в его официальном документе, называемом datasheet (для микроконтроллеров содержит 300-400 страниц, в России обычно пишется произносится как «даташйт»).
В разделе АЦП (ADC), datasheet' а написано, что существует 6 равноправных каналов с максимальной точностью в 10 бит. Следовательно, можно выбрать любой контакт, в описании которого есть слово ADC, а именно, все с 23 по 28 контакты.
Рис. 2. Принципиальная схема устройства
Аппаратный ШИМ (PWM) в микроконтроллерах является функцией таймера (счетчика). У ATmega8 три независимых аппаратных счетчика: два 8-битных и один 16-битный. Один из 8-битных не имеет возможности аппаратной генерации ШИМ, остается выбор между 8-битный ШИМ с одним выходом и 16-битным ШИМ с двумя. Разрядность счетчика при генерации ШИМ влияет только на количество различных уровней напряжения на выходе, но так как получен цифровой сигнал разрядностью 4 бита, то смело
можно выбирать 8-битный счетчик, так как рабочая разрядность все равно будет в 2 раза меньше даже у него. Второму 8-битному счетчику соответствует контакт OC2, который на корпусе имеет номер 17. Его можно использовать, не смотря на то, что 17 контакт используется при программировании как MOSI (все контакты ISP могут работать в своем обычном режиме и на возможность внутрисхемного программирования это не повлияет).
Далее, необходимо подключить 7-сегментный индикатор и это лучше сделать в полный порт (порт, у которого имеют выводы на корпусе и свободны все 8 контактов, соответствующие 8-битному регистру). У ATmega8 такой таким портом может выступить порт D (контакты со 2 по 6 и с 11 по 13).
Для цифрового ввода достаточно половины порта, например, порта C (контакты с 23 по 26).
Тогда для АЦП остаются контакты 27 и 28. Подключим сигнал к контакту 27.
Остается, подключить сдвиговый регистр. Это можно сделать к любым трем контактам, которые можно сконфигурировать как выходы, например PB2..0 (с 14 по 16).
Два тумблера и кнопку можно подключать к любым оставшимся контактам входа / выхода.
Конечная схема устройства представлена на рис. 2. Контакты VCC и GND необходимо подключить к источнику постоянного напряжения 5 В.
Вариант сборки устройства на макетной плате представлен на рис. 3.
Рис. 3. Фотография устройства
Специализированное вычислительное устройство готово к программированию. При использовании АЦП и ШИМ, аналоговые данные будут иметь цифровую репрезентацию и их можно использовать для любых задач обработки информации и управления объектами.
Список литературы:
1. Прокопенко В.С. Программирование микроконтроллеров ATMEL на языке C. - СПб.: КОРОНА-ВЕК, 2012. - 307 с.
2. Дхананья Гадре, Нигуал Мэлхотра. Занимательные проекты на базе микроконтроллеров tinyAVR. - СПб.: БХВ-Петербург, 2012. - 330 с.
3. Википедия - свободная энциклопедия [Электронный ресурс] // Wiki-media Foundation, Inc.: [сайт]. [2001]. - URL: http://ru.wikipedia.org/ (дата обращения: 30.08.2013).
4. Краткий Курс - Самоучитель AVR, ATmega и ATtiny [Электронный ресурс]: [сайт]. [2007]. - URL: http://123avr.com/ (дата обращения: 30.08.2013).