Научная статья на тему 'ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ В ПРОГРАММНОЙ СРЕДЕ NI CIRCUIT DESIGN SUITE - MULTISIM 12.0'

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ В ПРОГРАММНОЙ СРЕДЕ NI CIRCUIT DESIGN SUITE - MULTISIM 12.0 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
418
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Колесникова Татьяна

В Multisim 12.0 реализовано множество функций для профессионального проектирования микроэлектронных устройств, ориентированных на современные средства моделирования. Одной из таких функций является имитация работы микроконтроллеров. В состав библиотеки микроконтроллеров программной среды Multisim входят х8051, х8052, PIC16F84 и PIC16F84A. В статье даны рекомендации по использованию программы для моделирования схем микроэлектронных устройств на базе микроконтроллеров семейства х51. Несмотря на непрерывное развитие и появление все новых 16‑ и 32‑разрядных микроконтроллеров, наибольшая доля мирового микропроцессорного рынка и по сей день остается за 8‑разрядными устройствами благодаря оптимальному сочетанию цены и возможностей. 8‑разрядные микроконтроллеры имеют традиционную архитектуру MCS‑51 и расширенные периферийные функции. Наличие необходимых периферийных модулей и достоинства классической архитектуры микроконтроллеров х51 позволяют широко применять их в новых разработках.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Колесникова Татьяна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ В ПРОГРАММНОЙ СРЕДЕ NI CIRCUIT DESIGN SUITE - MULTISIM 12.0»

Программирование микроконтроллеров

в программной среде NI Circuit Design Suite — Multisim 12.0

Татьяна КОЛЕСНИКОВА

В Multisim 12.0 реализовано множество функций для профессионального проектирования микроэлектронных устройств, ориентированных на современные средства моделирования. Одной из таких функций является имитация работы микроконтроллеров. В состав библиотеки микроконтроллеров программной среды Multisim входят х8051, х8052, PIC16F84 и PIC16F84A. В статье даны рекомендации по использованию программы для моделирования схем микроэлектронных устройств на базе микроконтроллеров семейства х51.

Несмотря на непрерывное развитие и появление все новых 16- и 32-разрядных микроконтроллеров, наибольшая доля мирового микропроцессорного рынка и по сей день остается за 8-разрядными устройствами благодаря оптимальному сочетанию цены и возможностей. 8-разрядные микроконтроллеры имеют традиционную архитектуру MCS-51 и расширенные периферийные функции. Наличие необходимых периферийных модулей и достоинства классической архитектуры микроконтроллеров х51 позволяют широко применять их в новых разработках.

Микроконтроллеры семейства х51. Общие сведения

Сегодня существует более 200 модификаций микроконтроллеров семейства х51, которые выпускает почти 20 компаний. Эти модификации включают в себя кристаллы с широчайшим спектром периферии: от простых 20-выводных устройств с одним таймером и 1К программной памяти до сложнейших 100-выводных кристаллов с 10-разрядными АЦП, массивами таймеров-счетчиков, аппаратными 16-разрядными умножителями и 64К программной памяти на кристалле. Каждый год появляются все новые варианты моделей этого семейства. Основные направления их развития: увеличение быстродействия (повышение тактовой частоты и переработка архитектуры), снижение напряжения питания, увеличение объема ОЗУ и flash-памяти на кристалле с возможностью внутрисхемного программирования, а также введение в состав периферии микроконтроллера сложных устройств типа системы управления приводами, CAN- и USB-интерфейсов.

Все микроконтроллеры из семейства MCS-51 имеют общую систему команд. Наличие дополнительного оборудования

влияет только на количество регистров специального назначения.

х51-совместимые микроконтроллеры выпускают практически все известные мировые производители: Intel, Atmel, Philips, Siemens, Winbond, Cypress, Texas Instruments, STM, TDK, Cygnal и многие другие. Эти микросхемы имеют следующие аппаратные особенности:

• наличие 128 байт внутреннего ОЗУ;

• наличие четырех двунаправленных, по-битно настраиваемых восьмиразрядных портов ввода/вывода данных;

• наличие двух 16-разрядных таймеров-счетчиков;

• встроенный тактовый генератор;

• адресация 64К памяти программ и 64К памяти данных;

• две линии запросов на прерывание от внешних устройств;

• интерфейс для последовательного обмена данными с другими устройствами. Выводы микроконтроллера х51 имеют следующее назначение (рис. 1):

• Vss — общий.

• Vcc — питание.

• XTAL1, XTAL2 — входы для подключения кварцевого резонатора.

) еа

RESET

38 37 36 35

Ж]

33

iil

Р1.0

PSEN Р1.1

ALE Р1.2

Р1.3

XTAL2 Р1.4

Р1.5

Р1.6

Р1.7

XTAL1

РО.О Р2.0

Р0.1 Р2.1

Р0.2 Р2.2

Р0.3 Р2.3

Р0.4 Р2.4

Р0.5 Р2.5

Р0.6 Р2.6

Р0.7 Р2.7

РЗ.О

Р3.1

Р3.2

РЗ.З

Р3.4

Р3.5

Р3.6

Р3.7

1 2

3

4

_S_ 6_ 7_

21 22

23

24

25

27

10. 11_ 12. 13. 14

[Ж ж

17.

Рис. 1. Назначение выводов микроконтроллера х51

Рис. 3. Окно «мастера»: а) «Создатель МСи — шаг 1 из 3»; б) «Создатель МСи — шаг 2 из 3»; в) «Создатель МСи — шаг 3 из 3»

• RESET — вход общего сброса микроконтроллера.

• PS EN — разрешение внешней памяти программ, выдается только при обращении к внешнему ПЗУ.

• ALE — строб адреса внешней памяти.

• EA — отключение внутренней программной памяти.

• Р0-Р3 — порты ввода/вывода данных. Линии портов Р0.0-Р3.7 — двунаправленные, то есть могут работать как на ввод, так и на вывод информации независимо друг от друга.

Внутренняя память программ микроконтроллера может быть расширена за счет подключения микросхем внешней памяти программ. Необходимо отметить, что в разных модификациях микроконтроллеров х51 количество портов ввода/вывода и цоколевка могут отличаться от того, что представлено на рис. 1. К примеру, фирма Winbond выпускает микроконтроллеры, которые имеют пять портов ввода/вывода данных.

Программирование микроконтроллеров в программной среде Multisim

Необходимо отметить, что в состав системы Multisim 12.0 входит 68 моделей микроконтроллеров и 60 моделей микропроцессоров, однако запуск процесса моделирования возможен только для микроконтроллеров, которые находятся в библиотеке компонентов MCU: это х8051, х8052, PIC16F84 и PIC16F84A. Рассмотрим процесс моделирования схем с использованием микроконтроллеров на примере х8051.

Для того чтобы добавить эту микросхему в рабочее поле проекта, необходимо в программе Multisim в меню «Вставить» выбрать пункт «Компонент...», в результате чего откроется окно «Выбор компонента» (рис. 2). В левой верхней части окна находится меню «Раздел», в котором из выпадающего списка следует выбрать нужную библиотеку компонентов базы данных Multisim. В нашем случае необходимо выбрать пункт MCU.

В поле «Семейство» расположены все группы семейств микросхем выбранной би-

Рис. 2. Окно «Выбор компонента»

блиотеки, в то время как в поле «Компонент» отображаются все компоненты выбранного семейства. После того как выбор компонента сделан, его условное графическое обозначение отобразится в поле предварительного просмотра «Символ (ANSI)». Для того чтобы разместить выбранный компонент на схеме, необходимо в окне «Выбор компонента» нажать на кнопку ОК, после чего это окно будет закрыто, а символ компонента будет прикреплен к курсору мыши, при помощи которой необходимо поместить компонент в нужное место на схеме.

При размещении микроконтроллера х51 в рабочем поле проекта откроется окно «мастера» MCU «Создатель MCU — шаг 1 из 3». Работа «мастера» состоит из трех шагов, на первом из которых (рис. 3а) пользователю будет предложено выбрать директорию размещения проекта и создать для него рабочую папку. Для этого необходимо указать «Путь доступа к рабочей области для этого MCU» и «Название рабочей области». После того как соответствующие поля заполнены, необходимо нажать на кнопку «Далее», в результате чего будет открыто следующее окно «мастера» «Создатель MCU — шаг 2 из 3» (рис. 3б).

На втором шаге «мастер» предложит определить следующие установки проекта: • «Тип проектирования» («Стандартный»

или «Использовать внешний hex файл»).

Выберите второй параметр, если у вас уже

есть готовый .hex файл, в противном случае установите стандартный тип проектирования.

• «Язык программирования» («С» или «Ассемблер»).

• «Инструменты ассемблера/компилятора».

• «Название проекта» — вводится вручную. После установки всех параметров необходимо нажать на кнопку «Далее», в результате чего будет открыто третье окно «мастера» «Создатель MCU — шаг 3 из 3» (рис. 3в). В этом окне посредством установки переключателя в нужную позицию необходимо выбрать один из параметров:

• «Начать с пустого проекта»;

• «Добавить исходный файл». Выберите первый пункт, если у вас уже

есть на диске компьютера подготовленный файл .hex. В противном случае выберите второй пункт.

При этом в поле «Имя исходного файла»

необходимо прописать название файла .asm, в который в процессе проектирования будет вноситься код программы инициализации микроконтроллера. После того как переключатель будет установлен в нужную позицию, нажмите на кнопку «Закончить», в результате чего работа с «мастером» MCU будет завершена.

Новый файл можно добавить в проект и в процессе работы над схемой. Для этого в меню «Микроконтроллеры» выберите пункт «MCU 8051 и?/Менеджер кодов MCU», в результате чего будет открыто окно «Менеджер кодов MCU» (рис. 4), и в поле «Добавить в проект» нажмите на кнопку «Новый файл». Значение «U?» в пункте меню «MCU 8051 U?» зависит от количества микроконтроллеров в вашем проекте. Если в вашем проекте один микроконтроллер, этот пункт меню получит название «MCU 8051 U1». Если же в нем несколько микроконтроллеров, то в меню «Микроконтроллеры» количество пунктов «MCU 8051 U?» будет соответствовать количеству микроконтроллеров в вашем проекте, а значение «U?» — номеру микроконтроллера.

Отметим, что если в вашей рабочей области создано несколько проектов, то предварительно посредством выделения при помо-

Рис. 4. Окно «Менеджера кодов МСи» Рис. 6. Окно «Менеджера кодов МСи», вкладка «Основные»

Рис. 5. Окно «Новый»

щи левой кнопки мыши необходимо определить в окне «Менеджер кодов MCU» в поле дерева проектов тот из них, к которому будет добавлен новый файл. В результате выполненных действий откроется окно «Новый» (рис. 5), в котором в поле «Тип файла» следует выбрать один из следующих пунктов меню:

• «Файл ассемблера (.asm)»;

• «Вложенный файл ассемблера (.inc)»;

• «Исходный файл С (.с)»;

• «Выходной файл С (.h)»,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

а в поле «Имя файла» ввести название файла, который будет добавлен в проект.

В проект можно также добавить и уже подготовленные ранее .hexили .asm файлы.

Для того чтобы добавить .asm файл, в окне «Менеджер кодов MCU» в поле «Добавить в проект» нажмите на кнопку «Файлы...», в результате чего откроется окно проводника Windows, в котором нужно выбрать на диске компьютера необходимый файл. Затем следует нажать на кнопку «Открыть».

Для того чтобы добавить .hex файл, необходимо в меню «Микроконтроллеры» выбрать пункт «MCU 8051 и?/Менеджер кодов MCU» и в открывшемся окне «Менеджер кодов MCU» на вкладке «Основные» в поле «Файл машинного кода для моделирования (*.hex)» нажать на кнопку «Просмотр.» (рис. 6). В результате выполненных действий будет открыто окно проводника Windows,

в котором следует выбрать на диске компьютера нужный .hex файл, после чего нажать на кнопку «Открыть». Для того чтобы на вкладке «Основные» стало активным поле «Файл машинного кода для моделирования (*.hex)», необходимо в дереве проектов при помощи левой кнопки мыши выделить название проекта, к которому добавляется файл машинного кода.

После того как работа с «мастером» MCU закончена, в проект будет добавлена еще одна вкладка для ввода текста программы инициализации микроконтроллера. В меню «Микроконтроллеры» находятся команды для обеспечения написания и отладки программы с учетом особенностей разрабатываемого устройства.

Для наглядной демонстрации работы программы инициализации микроконтроллера воспользуемся цветными пробниками, порог

срабатывания которых установим в соответствии с нижним уровнем значения напряжения логической единицы. Цветные пробники расположены на панели инструментов «Виртуальные измерительные компоненты», которую можно добавить в проект при помощи команды меню «Вид» ^ «Панель инструментов». Пробники определяют напряжение в конкретной точке схемы и, если исследуемая точка имеет напряжение, равное или большее значения напряжения срабатывания, которое указано в настройках этого цветного пробника, то пробник загорается цветом. Установить необходимое пороговое значение срабатывания цветного пробника можно в окне настроек этого прибора на вкладке «Параметры», установив в поле «Пороговое напряжение (УТ)» необходимое значение напряжения. Окно настроек можно открыть с помощью двойного щелчка ле-

Рис. 7. Демонстрационная схема с использованием микроконтроллера и цветных пробников напряжения

схемотехника

проектирование

147

W^d > ¡UP MIHI HU HTLMKAI 1 + 1 IM M1UMI IIMVitr

J m un

HÜV H.ID«№»]I l H±«l3ir uil=.-ni

wi и.кмч«»

H» ll.IHMWll Ж71 kl.lt

WT> И.1Н1Ш1 LI

■ W n.n № rl.lMKlut

I

Рис. 8. Вкладка «*^т» Рис. 11. Файл листинга программы инициализации микроконтроллера

_ I Щ 1Д|> H4L>4

Рис. 9. Рабочая папка проекта MCU

вой кнопки мыши на пиктограмме прибора на схеме.

Ряд пробников подсоединим к исследуемым линиям портов микроконтроллера. В результате чего при появлении на выходе линии порта значения логической единицы пробник будет подсвечен, при появлении же значения логического нуля пробник светиться не будет.

После того как в рабочей области проекта собрана схема (рис. 7), а на вкладке «*.asm» введен код программы (рис. 8), можно запускать моделирование. Процесс моделирования запускается при помощи кнопки «Пуск», которая находится на панели инструментов «Моделирование». Эту панель можно добавить в проект при помощи команды меню «Вид» ^ «Панель инструментов». Также для запуска моделирования можно воспользоваться функциональной клавишей на клавиатуре F5. В результате, в том случае если компилятор в листинге программы не обнаружит ошибок, на диске вашего компьютера в рабочей папке проекта будут созданы следующие файлы (рис. 9):

• *.hex — файл машинного кода (рис. 10);

• *. asm — файл с ассемблерным кодом программы;

• *. 1st — файл листинга программы (рис. 11).

Программа инициализации микроконтроллера пишется на языке программирования asm51. Это язык ассемблера, который предназначен специально для написания

: ic >гах»п:'! чг уг ■ ■ "Гьомгли

Ji. J 'DJri0W-'^U4MF}

программ для микроконтроллеров семейства х51. Написанная программа транслируется с помощью ассемблера asm51, в результате чего будут получены .hex файл для загрузки в память программ и листинговый файл с кодами команд и адресами расположения этих кодов. Файл листинга формируется ассемблером в процессе трансляции и представляет собой начальный ассемблерный файл, дополненный следующей информацией. Перед каждой командой размещен номер ее строки в ассемблерном тексте, адрес ячейки памяти программ, в которой размещен код операции команды, а после этого адреса — один, два или три байта самой команды. В конце программы находится таблица имен и меток.

Если же в ходе компиляции кода программы инициализации микроконтроллера были обнаружены ошибки, они будут отмечены компилятором в файле листинга. При этом .hex файл не будет сгенерирован до тех пор, пока ошибки не будут устранены. В файле листинга для каждой обнаруженной ошибки компилятор указывает причину ошибки и номер строки, в которой она была обнаружена. На рис. 11 представлен файл листинга, в котором отладчик сообщает об ошибке номер 2 (неопределенный идентификатор), которая обнаружена в восьмой строке кода программы и состоит в том, что в коде программы неверно указано название порта ввода/вывода данных. (В используемом микроконтроллере нет порта с названием Р4.) Отчет о возможных ошибках в программе Multisim отображается и в нижней части рабочего про-

=

Рис. 12. Окно «Просмотр памяти MCU»

екта в окне «Блок информации» на вкладках «Результаты» и «Моделирование». Состояние памяти можно просмотреть при помощи команды меню «Микроконтроллеры» ^ «MCU 8051 U?» ^ «Просмотр памяти» (рис. 12).

Проанализируем работу демонстрационной схемы, представленной на рис. 7.

На вкладке main.asm при помощи команды MOV были даны указания программе инициализации микроконтроллера записать в порт Р1 значения линий порта Р1.7-Р1.0 (00111111), а в порт Р2 — значения линий порта Р2.7-Р2.0 (00000101). После запуска моделирования при помощи цветных пробников мы можем проверить правильность работы программы. Как видно на рис. 7, на выводах портов микроконтроллера Р1 и Р2 действительно находится та комбинация, которую мы указали в коде программы.

При написании кода программы для микроконтроллера х51 необходимо владеть синтаксисом языка программирования asm51. Система команд микроконтроллеров х51 насчитывает 111 базовых команд, которые разделены по функциональному признаку на пять групп: команды передачи дан-

Рис. 10. .hex файл машинного кода

компоненты и технологии • № 6 '2014 www.kit-e.ru

Таблица. Система команд микроконтроллера х51

Название команды Мнемокод

Пересылка в аккумулятор из регистра MOV A, R

Пересылка в регистр из аккумулятора MOV R, A

Загрузка константы в регистр MOV R, #d

Обмен аккумулятора с регистром XCH A, R

Сложение аккумулятора с регистром ADD A, R

Сложение аккумулятора с константой ADD A, #d

Инкремент аккумулятора INC A

Инкремент регистра INC R

Декремент аккумулятора DEC A

Декремент регистра DEC R

Логическое И аккумулятора и регистра ANL A, R

Логическое ИЛИ аккумулятора и регистра ORL A, R

Сброс аккумулятора CLR A

Инверсия аккумулятора CPL A

Переход, если аккумулятор равен нулю (тй — метка в коде программы) JZ mt

Переход, если аккумулятор не равен нулю (тй — метка в коде программы) JNZ mt

Пустая операция, которая может быть использована в качестве задержки на 1 мкс NOP

Выход из подпрограммы RET

ных, арифметических операций, логических операций, передачи управления и операций с битами. Наиболее часто используемые команды asm51 представлены в таблице.

Далее представим описание наиболее распространенных ошибок трансляции ассемблерного кода в программной среде Multisim: • Ошибка #1. Illegal character (недопустимый символ) — эта ошибка возникает в том слу-

чае, когда ассемблер встречает символ, который не описан в синтаксисе компилятора.

• Ошибка #2. Undefined symbol (неопределенный идентификатор) — ошибка возникает в том случае, когда пользователь в коде программы использует идентификатор, который не был определен ассемблером. Наиболее частая причина этой ошибки — опечатка пользователя.

• Ошибка #3. Duplicate symbol (повторяющийся идентификатор) — эта ошибка возникает при попытке определить заново уже ранее определенный или зарезервированный идентификатор.

• Ошибка #5. Number too large (слишком большое число) — заданное число или значение результата работы программы превышает допустимую величину.

• Ошибка #6. Missing END directive (отсутствует директива END) — эта директива является обязательной и должна быть указана в конце кода программы.

• Ошибка #12. Unbalanced parentheses (незакрытые скобки).

• Ошибка #16. Division by zero (деление на ноль).

• Ошибка #38. Unable to open file (не удается открыть файл) — ошибка может возникнуть в том случае, если в программном коде указано название несуществующего файла.

• Ошибка #41. Insufficient memory (недостаточно памяти).

• Ошибка #43. ENDIF without IF (ENDIF без IF) — в цикле отсутствует парный оператор IF.

• Ошибка #44. Missing ENDIF (отсутствует ENDIF) — в цикле отсутствует парный оператор ENDIF.

• Ошибка #50. Line exceeds 255 characters (строка превышает 255 символов) — слишком длинная строка. Лишние символы будут игнорироваться. ■

Литература

1. NI Circuit Design Suite — Getting Started with NI Circuit Design Suite. National Instruments. Jan., 2012.

2. Технология виртуальных приборов. National Instruments, 2013.

3. NI Multisim — Fundamentals. National Instruments. Jan., 2012.

4. Professional edition release notes NI. Circuit Design Suite Version 12.0.1. National Instruments, 2012.

5. Пашкевич А. П., Чумаков О. А. Микропроцессорные системы управления. Ч. 2. Минск: БГУИР, 2006.

6. 8051 cross assembler user's manual. MetaLink Corporation Chandler. Arizona, USA. Jan. 27, 1996.

новости I энкодеры

EC 45 flat и EC 90 flat — плоские двигатели от maxon теперь с энкодерами MILE

Серия энкодеров MILE была создана в 2012 году для плоских двигателей maxon с диаметром 60 и 90 мм. Преимущества такого решения: высокий удельный момент и небольшой размер. Теперь это распространяется и на другие двигатели: компания maxon запускает в производство MILE энкодеры для плоских двигателей EC 45 flat.

На данный момент новые двигатели с MILE-энкодерами доступны для трех серий двигателей:

• EC 45 flat 30 Вт;

• EC 45 flat 50 Вт;

• EC 45 flat 70 Вт.

Энкодеры серии MILE встраиваются непосредственно в двигатель, что делает окончательную разницу в посадочных размерах крайне малой. Энкодеры обеспечивают высокую точность благодаря разрешению до 2048 импульсов на оборот.

Уже существующий плоский двигатель EC 90 flat, укомплектованный энкодером MILE, теперь также имеет разрешения, соответствующие целым степеням 2х(512, 1024, 2048). Это делает возможным использование цифровых контроллеров с более простым процессором и большей скоростью исполнения команд.

Сокращение MILE представляет собой англоязычную аббревиатуру, означающую в переводе «малый индуктивный энкодер maxon». Принцип

его работы основан на измерении высокочастотного индукционного поля, генерируемого вихревыми токами, текущими в проводящем целевом диске.

Преимущества методики измерения высокочастотного поля в сравнении с другими решениями:

• Высокая стойкость к пыли и испарениям. Это подразумевает отсутствие необходимости в дополнительной защите (например, кожухах и уплотнителях).

• Высокая скорость.

• Высокая устойчивость к импульсным помехам (например, от ШИМ-контроллеров или магнитов моторов).

Все это делает плоские двигатели EC 45 flat с энкодерами MILE оптимальным решением для задач по позиционированию или точному управлению скоростью.

Плоские двигатели EC 45 flat 30, 50 и 70 Вт доступны для заказа с обмотками, выполненными под задачи конкретного клиента, и могут комплектоваться следующими компонентами:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• новой конструкцией со встроенным энкодером MILE с разрешением 256/512/1024/2048 импульсов на оборот;

• редукторами GS 45 и GP 42 C;

• контроллерами: сервоусилителями ESCON и контроллерами положения EPOS2;

удлинительным кабелем 354046 для подключения энкодера к контроллеру. Параметры энкодеров:

Высокая повторяемость благодаря разрешению в 2048 имп./об. Компактный размер:

- 30 Вт: 044x14,9 мм;

- 50 Вт: 044x22,6 мм;

- 70 Вт: 044x28,4 мм.

Высокая скорость работы: до 10 000 об./мин. Высокое значение непрерывного момента: до 134 мН-м (без редуктора). Энкодер можно использовать в сложных условиях (пыль, масло, магнитные поля).

www.aviton.spb.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.