Аппаратно-программный комплекс на базе универсального лабораторного стенда для изучения 8, 16 и 32-разрядных микроконтроллеров
Современный этап развития микроконтроллеров связан с появлением широкого круга задач, требующих увеличения разрядности процессорного ядра до 16/32 разрядов и перехода на языки программирования высокого уровня. Увеличивается число прикладных областей, задачи которых решаются с помощью операционных систем реального времени, функционирующих на микроконтроллерных платформах. Высокопроизводительные 32разрядные микроконтроллеры с архитектурой ARM7 и ARM9, CortexM3 и другие стерли границу между ранее обособленными областями встраиваемых систем компьютерной, на основе 32разрядных процессоров с программированием на языках высокого уровня, и контроллерной, на основе 8разрядных микроконтроллеров с программированием на ассемблере. Но и старые архитектуры не исчезли. Такие фирмы, как Atmel, Analog Devices, Winbond, Silicon Laboratories и ряд других использовали новые возможности микроэлектроники для выпуска на основе ядра 8051 микроконтроллеров с расширенными наборами периферийных модулей. Благодаря этому архитектура 8051, которой многие прочили забвение, обрела «второе дыхание» и стала стандартом «дефакто».
В целом можно заключить, что современный специалист в области встраиваемых систем должен владеть практическими навыками проектирования на основе широкой гаммы 8, 16 и 32разрядных микроконтроллеров с применением нескольких языков программирования. Задача обучения, повышения квалификации и переподготовки в настоящее время важна не только для образовательных учреждений, но и для индивидуальных специалистов, которые нуждаются в периодическом тренинге. В связи с этим весьма актуальными выглядят универсальные учебные средства по микроконтроллерам, наращиваемые по возможностям и позволяющие освоить широкую номенклатуру элементной базы и программных средств.
Компания mikroElektronika (Сербия) имеет значительный опыт разработки и производства аппаратных и программных учебных средств для микроконтроллеров. Ее изделия отличаются хорошей методической проработкой комплекса задач, связанных с передачей практического опыта проектирования. В лабораторных стендах удачно выбраны комбинации процессорных ядер микроконтроллеров, наборов их внутренних интерфейсных блоков и модулей ввода/вывода на платах.
Комплект аппаратных средств от фирмы mikroElektronika включает универсальный лабораторный стенд на основе платы UNIDS3 (рис. 1) и набора микроконтроллерных плат специализации, а также платы расширения. В настоящее время лабораторный стенд поддерживает 8разрядные микроконтроллеры 8051 и AVR (ATMEL), PICmicro (Microchip), 16разрядные микроконтроллеры dsPIC, 32разрядные ARM7 микроконтроллеры NXP и «системы на кристалле» PSoC фирмы Cypress Semiconductor.
Аппаратные средства лабораторного стенда представляют собой конструктор из набора функциональных модулей. На универсальной плате установлены функциональные модули ввода/вывода и стабилизатор напряжения питания, используемый при подключении внешнего источника. На рис. 1 видно, что продуманное расположение функциональных модулей на плате подкреплено множеством поясняющих надписей и знаков, так что процесс работы становится во многом интуитивно понятен до чтения документации. Кроме фиксированного набора модулей ввода/вывода на плате стенда, производитель выпускает функциональные модули в виде небольших плат расширения. Все линии портов микроконтроллера на универсальной плате выведены на девять штыревых разъемов 2×5 выводов, к которым возможно подключение внешних плат, расширяющих номенклатуру изучаемых периферийных устройств.
На универсальной плате в качестве устройств ввода могут использоваться кнопки, подключенные ко всем линиям портов микроконтроллеров, 12разрядный АЦП, часы реального времени, считыватель MMC/SDкарт. Для отображения данных на плате имеются светодиоды на всех линиях портов микроконтроллера, а также предусмотрены посадочные места со штыревыми разъемами для установки алфавитноцифрового и графического дисплеев. Вывод данных может производиться на 12разрядный ЦАП. Для двунаправленного обмена установлены драйверы и разъемы RS232, RS485, CAN и Ethernet.
Универсальный лабораторный стенд UNIDS3 имеет развитую систему коммутации, которая позволяет выборочно подключать к линиям портов микроконтроллера устройства ввода/вывода и формировать аппаратную конфигурацию микроконтроллерной системы в соответствии с требованиями проекта.
На плате универсального стенда имеется разъем, в который может быть установлена одна из плат специализации. На этих платах находятся целевые микроконтроллеры и схемы их ближайшего обрамления, включая интегрированные программаторы. В настоящее время набор плат специализации следующий:
- UNIDS3 40 PIN PIC CARD (рис. 2). Плата предназначена для изучения новых 8разрядных микроконтроллеров семейства PIC. На ней установлен микроконтроллер PIC18F4520, разработанный на основе технологии nanoWatt. Он имеет 8разрядное ядро c производительностью 10 MIPS и аппаратным умножителем 8×8 разрядов. Ядро может тактироваться от внутреннего прецизионного генератора с программируемой частотой от 31 кГц до 8 МГц. Флэшпамять программ составляет 32 кбайт,
Рис. 2. Плата специализации UNIDS3 40 PIN PIC CARD
ОЗУ равно 1536 байт, 256 байт EERPOM. В набор блоков ввода/вывода входит 10разрядный АЦП (13 каналов, 100 KSPS), канал ECCP (расширенный модуль захвата/сравнения/ШИМ) и канал CCP (стандартный модуль захвата/сравнения/ШИМ), интерфейсы EUSART и MSSP (SPI, I2C), два аналоговых компаратора, один 8разрядный и три 16разрядных таймера, сторожевой таймер. Напряжение питания может составлять от 2,0 до 5,5 В. На плату интегрирован программатор PICFlash2, совмещающий функции программатора и внутрисхемного отладчика mikroICD.
- UNIDS3 80 PIN PIC CARD (рис. 3). Плата предназначена для изучения 8разрядных микроконтроллеров увеличенной производительности семейства PIC. На ней установлен микроконтроллер PIC18F8520 со встроенным умножителем 8×8 и интегрированным эмулятором. Ядро работает с 16разрядными командами и 8разрядными данными на частоте синхронизации 40 МГц (10 MIPS). Микроконтроллер имеет память программ 16384×16, ОЗУ 2 кбайт, 16 каналов 10 разрядного АЦП и два аналоговых компаратора, пять модулей ШИМ, два интерфейса USART, интерфейсы SPI и I 2C. Линии портов снабжены драйверами, обеспечивающими ток до 25 мА. Микроконтроллер способен адресовать до 2 Мбайт внешней памяти. На плату интегрирован программатор PICFlash2, совмещающий функции программатора и внутрисхемного отладчика mikroICD.
- UNIDS3 64 PIN AVR CARD (рис. 4). Для изучения микроконтроллеров семейства AVR фирмы Atmel, одного из самых распространенных в практике отечественного проектирования. На плате установлен микроконтроллер ATmega128, имеющий 8разрядное ядро с Fmax = 16 МГц, 128 кбайт флэшпамяти программ, 4 кбайт ОЗУ, 4 кбайт EEPROM, 8 каналов 10разрядного АЦП и аналоговый компаратор, два 8разрядных счетчика/таймера с режимами сравнения, два 16разрядных счетчика/таймера с режимами захвата/сравнения, RTC и WDT с отдельными генераторами, два 8разрядных канала ШИМ и шесть каналов ШИМ с программируемым разрешением 216 разрядов, интерфейсы USART, SPI и TW, шесть режимов пониженного энергопотребления. На плату интегрирован программатор AVRProg2. Предусмотрена возможность подключения JTAGэмулятора AT JTAG ICE2.
- DS3 48 PIN PSoC CARD (рис. 5). Позволяет изучать применение БИС типа «система на кристалле» (PSoC) фирмы Cypress Semiconductor. На плате установлена БИС CY8C27643, объединяющая на одном кристалле микроконтроллер, цифровые блоки, аналоговые блоки, а также программируемые элементы внутренней коммутации. БИС этого типа позволяют создать индивидуальную схему для обработки смешанного набора сигналов и заменить несколько традиционных компонентов микроконтроллерных систем. Ядро M8C 8разрядное с Fmax = 24 МГц, имеется умножитель 8×8 с 32разрядным накопителем, флэшпамять программ 16 кбайт. Восемь цифровых блоков позволяют реализовать 8…32разрядные таймеры, 8…32разрядные счетчики, 8…16разрядные ШИМ, генераторы псевдослучайных чисел и генераторы CRC16, а также интерфейсы UART, SPI, IrDA. Для реализации каждого устройства затрачивается от одного до четырех блоков.
Двенадцать аналоговых блоков позволяют реализовать АЦП, ЦАП, усилители с программируемым усилением, программируемые компараторы и фильтры. На плате специализации находится программатор PSoC Prog2. Бесплатная версия системы проектирования PSoC Designer доступна на сайте www.cypressmicro.com. - UNIDS3 40 PIN 8051 CARD (рис. 6). Позволяет изучать микроконтроллеры 8051, ставшие уже классикой. На плате установлен микроконтроллер AT89S8253 фирмы Atmel. Он имеет 8разрядное ядро, 12 кбайт ISP флэшпамяти программ, 2 кбайта EEPROM, три 16разрядных счетчика/таймера, порты SPI и UART, WDTтаймер, два режима пониженного энергопотребления. На плате находится ISPпрограмматор 8051flash.
- UNIDS3 64 PIN ARM CARD (рис. 7). Плата предназначена для изучения 32разрядных микроконтроллеров семейства ARM7. На плате установлен микроконтроллер LPC2148 фирмы NXP (Philips). Он характеризуется небольшой стоимостью при высокой производительности ядра и функциональной мощности периферийных блоков, быстрой реакцией на прерывания и низким энергопотреблением. Это позволяет рассматривать его во многих случаях в качестве варианта замены 8разрядных микроконтроллеров. Микроконтроллер имеет ядро ARM7TDMIS с Fmax = 60 МГц, флэшпамять программ 512 кбайт с ISP/IAP, ОЗУ 40 кбайт, JTAG, интерфейс USB 2.0 Full Speed (12 МГц) с 8 кбайт ОЗУ данных и доступом через канал ПДП, два 10разрядных АЦП (14 аналоговых входов), 10разрядный ЦАП, два 32разрядных таймера/счетчика с 4 каналами выборки/сравнения, 6 каналов модуля ШИМ, сторожевой таймер, часы реального времени, два UART, два I2C, SPI и SSP, режимы энергосбережения Idle и Powerdown, питание +3,3 В, индивидуальное управление питанием модулей ввода/вывода; выводы совместимы с логическими уровнями от питания +5 В. На плате находится ISP/IAP программатор ARMprog.
- UNIDS3 80 PIN dsPIC CARD (рис. 8). Плата предназначена для изучения 16разрядных микроконтроллеров семейства dsPIC, имеющих особую группу команд и аппаратные ресурсы для цифровой обработки сигналов. Семейство dsPIC включает три линейки микроконтроллеров: для работы с датчиками (18 выводов), для управления двигателями и системами электропитания (2880 выводов), микроконтроллеры общего применения (4080 выводов). На плате установлен микроконтроллер dsPIC 30F6014A общего назначения.
Процессорное ядро dsPIC работает с 24разрядными командами, причем 3операндные команды преобразования данных выполняются за один машинный цикл (4 периода тактовой частоты). Память данных разбита на два блока, обозначаемых как X и Y память данных. Микроконтроллерные команды работают только с Хобластью памяти, а команды из группы DSP работают с обеими областями памяти. Ядро микроконтроллера имеет 40разрядное АЛУ и два 40разрядных аккумулятора, выполняет команды умножения 17×17 за один цикл.
Микроконтроллер dsPIC 30F6014A имеет 144 кбайт памяти программ, 8 кбайт ОЗУ и 4 кбайт EEPROM, пять 16разрядных счетчиков/таймеров, восемь линий захвата и восемь линий сравнения, 16 каналов 12разрядного АЦП, по два интерфейса UART, SPI и CAN, интерфейс I2C, 80выводный корпус TQFP.
На плату интегрирован программатор dsPICprog2, совмещающий функции программатора и внутрисхемного отладчика mikroICD.
В соответствии с концепцией универсального стенда как конструктора, производитель выпускает более полусотни функциональных модулей ввода/вывода в виде небольших плат расширения. Часть этих функциональных модулей уже имеется на универсальной плате, а другие позволяют расширить набор функций. Все модули могут быть присоединены к универсальной плате стенда через штыревые разъемы, на которые выведены порты микроконтроллеров.
В набор функциональных модулей, уже имеющихся на плате, входит модуль 12разрядного ЦАП (рис. 9). Он может быть подключен для увеличения количества аналоговых выходов.
На рис. 9 видно, что этот модуль, как и некоторые другие внешние модули, является настраиваемым. Конфигурация переключателей должна соответствовать типу микроконтроллера на установленной плате специализации.
Из функциональных модулей, отсутствующих на плате, можно обратить внимание на модули трехосевого акселерометра, инфракрасного датчика движения и цифрового потенциометра. Внешние платы акселерометра и датчика движения при подключении добавляют к набору модулей ввода группу датчиков и позволяют проводить натурные эксперименты.
Плата расширения на базе 3осевого акселерометра выполнена на основе микросхемы ADXL330 (рис. 10). С ее помощью возможно как измерение динамического ускорения при движении, ударах и вибрации, так и измерение наклона в статике. Диапазон измеряемых ускорений равен ±3g. Выходы акселерометра буферизованы операционными усилителями микросхемы MCP6284.
Плата датчика движения включает пассивный инфракрасный датчик типа AMN11112, формирующий на выходе значение логической «1» при обнаружении движения объекта, излучающего энергию в инфракрасном диапазоне.
Плата цифрового потенциометра реализована на базе микросхемы MCP41010 (рис. 11), которая обеспечивает полное активное сопротивление 10 кОм и 256 ступеней регулирования. Такие микросхемы применяются в аналоговых цепях для цифрового регулирования величины активного сопротивления. Дистанционное управление осуществляется по интерфейсу SPI. Изучение цифрового потенциометра полезно, поскольку демонстрирует реализацию пассивного компонента электронных цепей в виде программируемой интерфейсной микросхемы, которая хранит значение текущего номинала при отключении питания и имеет команду отключения для снижения энергопотребления, как и микроконтроллеры.
Интересны платы MP3плееров, а также плата аудиоусилителя, позволяющие добавить к стенду канал воспроизведения цифрового звука.
В наборе плат расширения имеется макетная плата, на которой можно смонтировать собственный фрагмент схемы и отладить его во взаимодействии с микроконтроллерной системой.
На сайте производителя доступны схемы всех плат расширения и схемы их подключения к стенду, а также примеры программ обслуживания.
Разработка прикладных программ для микроконтроллеров универсального стенда может осуществляться с использованием систем программирования на языках mikroC, mikroBasic, mikroPascal от компании mikroElektronika. В настоящее время имеются следующие версии систем:
- mikroC для микроконтроллеров 8051, PIC (PIC12/16/18), dsPIC (dsPIC24/30/33), Sensory RSC4x;
- mikroPascal для микроконтроллеров PIC (PIC12/16/18), dsPIC (dsPIC24/30/33), Atmel AVR;
- mikroBasic для микроконтроллеров PIC (PIC12/16/18), dsPIC (dsPIC24/30/33), Atmel AVR.
Все перечисленные системы имеют похожие оболочки (IDE Integrated Development Environment) с удобным многооконным интерфейсом пользователя. Вид рабочего экрана системы mikroC dsPIC приведен на рис. 12.
Каждая система включает полный набор инструментальных модулей редактор текста, компилятор, редактор связей, библиотекарь, отладчик и программатор флэшпамяти микроконтроллера.
Прикладная программа создается, транслируется и отлаживается как некоторый проект, структуру которого отображает Code Explorer. В его окне (слева вверху на рис. 12) можно видеть имена переменных, функций, подключаемых файлов и других элементов исходного текста программы. Щелчок по имени элемента приводит к переводу курсора в окне исходного текста на строку с его определением. Это удобно для поиска элементов в больших файлах. В этом окне может также отображаться список «горячих» клавиш (Keyboard) и список доступных функций языка mikroC (QHelp). Двойной щелчок по имени функции открывает ее описание.
При создании проекта необходимо определить тип целевого микроконтроллера, его рабочую частоту, а также необходимость внедрения в формируемый код отладочной информации. Эти параметры проекта определяются с использованием окна Project Setup (слева внизу на рис. 12). В этом окне может также отображаться структура проекта (Project Summary) наборы файлов исходного текста, подключенных библиотечных функций и выходных файлов.
Окно редактора исходного текста находится в центре на рис. 12. Все системы программирования имеют мощные редакторы текста с выделением (цветом или увеличенной яркостью знаков) синтаксических конструкций и механизмами поддержки создания исходного текста на определенном языке программирования. Имеются механизмы Code Assistant (выдача списка зарезервированных имен по первым набранным буквам), Parameter Assistant (выдача списка параметров по имени функции), Code Templates (выдача фрагмента исходного текста по введенному имени).
Компания mikroElektronika поддерживает создание прикладных программ для микроконтроллеров большим количеством функций обслуживания периферийных устройств. Например, набор функций обслуживания аппаратуры в системе программирования mikroC dsPIC включает следующие библиотеки:
- ADC Library.
- Advanced SPI Ethernet Library.
- CAN Library.
- CANSPI Library.
- Compact Flash Library.
- DSP Library.
- Enhanced CAN Library.
- EEPROM Library.
- Flash Memory Library.
- Graphic LCD Library.
- I2C Library.
- Keypad Library.
- LCD Custom Library.
- LCD8 Custom Library.
- Manchester Code Library.
- Multi Media Card Library.
- OneWire Library.
- Port Expander Library.
- PS/2 Library.
- PWM Library.
- PWM Motor Library.
- RS485 Library.
- Software I2C Library.
- Software SPI Library.
- Software UART Library.
- Sound Library.
- SPI Library.
- SPI Ethernet Library.
- SPI Graphic LCD Library.
- SPI LCD Library.
- SPI LCD8 Library.
- SPI T6963C Graphic LCD Library.
- T6963C Graphic LCD Library.
- UART Library.
Использование этих функций позволяет быстро продвигаться по пути приобретения практических навыков интеграции программного обеспечения и аппаратуры стенда MEUNIDS3. Системы программирования на языке Си, разумеется, включают его стандартные функции:
- ANSI C Ctype Library.
- ANSI C Math Library.
- ANSI C Stdlib Library.
- ANSI C String Library.
После установки системы программирования в директории ProgramFiles …examples можно найти демонстрационные программы работы с периферийными устройствами, входящими в набор функциональных модулей платы MEUNIDS3. У системы mikroC dsPIC набор демопрограмм для микроконтроллера dsPIC30F6014A (рис. 13).
После успешной трансляции проекта можно увидеть информацию о загрузочном коде программы. Эта информация отображается в окне Statistics, которое может иметь следующие варианты отображения:
- Memory Usage (рис. 14) отображает в форме гистограмм использование памяти программ и ОЗУ.
- Procedures (sises) (рис. 15) отображает в виде гистограммы занимаемый каждой функцией объем памяти программ.
- Procedures (locations) (рис. 16) отображает набор функций программы в виде цепочки с указанием занимаемого объема памяти программ.
- RАM (рис. 17) отображает распределение памяти данных указанием адресов регистров общего назначении, регистров специальных функций и переменных.
- ROM (рис. 18) отображает команды в памяти программ с указанием их адресов, кодов и символических имен.
Аппаратнопрограммный комплекс, включающий плату UNIDS3, микроконтроллерную плату специализации и одну из рассматриваемых систем программирования, позволяет выполнять как автономную отладку разрабатываемой программы с использованием программнологической модели, так и комплексную отладку аппаратуры и ПО в реальном времени с использованием аппаратного отладчика IDE (InCircuit Debugger). Для этого нужно выбрать соответствующую опцию проекта в окне Project Setup. При отладке возможен пошаговый режим выполнения команд, выполнение фрагмента программы до курсора, отладка с использованием механизма контрольных точек. Возможность наблюдения за изменением значений переменных и регистров специальных функций предоставляет окно Watch.
Создание проекта значительно ускоряют такие встроенные инструменты (Tools), как ASCII Chart (средство формирования кодов, удобное при работе с дисплеями), USART Terminal (средство визуального программирования универсального последовательного порта), Segment Display Decoder (средство формирования кодов для 7сегментного индикатора). На рис. 1922 приведены окна инструмента Filter designer tool, системы mikroC dsPIC. Этот инструмент является средством формирования исходного текста на выбранном языке программирования, описывающего определенный в диалоговом окне тип фильтра с указанными параметрами.
В комплект поставки каждой системы программирования входят руководство пользователя интегрированной системы и описание языка программирования.
Современная тенденция непрерывное и быстрое обновление версий аппаратного и программного обеспечения средств отладки, в том числе и учебных. По этой причине многие производители переносят основной объем информационной поддержки своих изделий на свои корпоративные сайты. Компания mikroElektronika следует этой тенденции: на ее сайте можно ознакомиться с демонстрационными версиями систем программирования, ограниченными по размеру компилируемого кода (2 кбайта). Доступны также примеры программ обслуживания модулей ввода/вывода для всех систем программирования, драйверы интегрированных программаторов и принципиальные схемы плат.