Учебное пособие: Методические указания к лабораторному практикуму по курсу «Управление в технических системах»
Название: Методические указания к лабораторному практикуму по курсу «Управление в технических системах» Раздел: Остальные рефераты Тип: учебное пособие | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
А.А.Бошляков , В.И.Рубцов
Методические указания к лабораторному практикуму по курсу «Управление в технических системах» (микропроцессорные системы управления)
Рассмотрены принципы работы микропроцессорной системы управления на основе микроконтроллера PIC16F877 и этапы разработки программного обеспечения для неё. Для студентов, изучающих курс «Управление в технических системах». Рецензент: Нечаев Л.Д. Введение Структура замкнутого привода с микропроцессором в контуре управления показана на рис.1. Рис.1 Изучение основ работы с микропроцессорной системой управления проводится на примере одной из наиболее производительных моделей микроконтроллеров, имеющую развитую систему модулей для связи с объектом управления, PIC16F877 фирмы Microchip. В методических указаниях использована техническая документация фирмы Microchip. Цель работы: 1. Изучение принципов работы микроконтроллера (МК). 2. Знакомство с этапами разработки программного обеспечения МК.
Характеристика микроконтроллера PIC 16 F 877. Характеристика вычислительного ядра МК: · выполнено по высокоскоростной RISC технологии. Высокая производительность достигается за счет применения конвейерной архитектуры и малого числа команд (всего 35); · тактовая частота МК составляет 20 МГц, при этом время длительности машинного цикла достигает 200 нс; · 8Кх14 слов FLASH памяти программ; · 368х8 байт памяти данных (ОЗУ); · 256х8 байт EEPROM памятью данных; · систему прерываний (14 источников). Характеристика периферийных модулей: · два 8-разрядных таймера/счетчика; · один 16-разрядный таймер/счетчик с возможностью подключения внешнего резонатора; · два модуля захват/сравнение/ШИМ: - 16-разрядный захват (максимальная разрешающая способность 12.5 нс); - 16-разрядный сравнение (максимальная разрешающая способность 200нс); - 10 разрядный ШИМ; · 8-канальное 10-разрядное АЦП; · последовательный синхронный порт; - ведущий/ведомый режим SPI; - ведущий/ведомый режим I2 C; · последовательный асинхронный приемопередатчик USART c поддержкой детектирования адреса; · ведомый 8-разрядный параллельный порт PSP с поддержкой внешних сигналов #RD, #WR, #CS. Аппаратная составляющая микроконтроллера
Архитектура микроконтроллера. Архитектура МК показана на рис.2. МК можно условно разделить на две части: вычислительное ядро (серый цвет) и периферийные модули (белый цвет). Рис.2. Архитектура МК Вычислительное ядро работает следующим образом. Программа работы МК находится в FLASH памяти программ. Программа выполняется последовательно до тех пор, пока не встретится команда перехода. Регистр команд (РК) содержит текущую команду на время ее дешифрации и выполнения, а программный счетчик (ПС) предназначен для хранения адреса следующей команды. Когда текущая команда завершена, то: 1. по адресу из ПС производится выборка команды из памяти программ в РК; 2. пока дешифрируется эта команда, производится инкремент ПС на единицу и ПС адресует следующую команду; 3. когда выполнение данной команды заканчивается, содержимое ПС выдается памяти программ и цикл повторяется. Команды безусловного перехода позволяют изменить естественный порядок следования команд путем замещения содержимого ПС (т. е. адреса следующей по порядку команды) адресом, определяемым самой командой перехода. Команды условных переходов замещают или не замещают содержимое ПС в зависимости от признаков результатов предыдущих команд. Признаки результатов предыдущих команд находится в регистре STATUS. В этом регистре имеются биты, показывающие такие условия, как получение в предыдущих операциях положительного, отрицательного или нулевого результата. Когда реализован переход, начинается новая последовательность команд с адреса, к которому осуществлен переход. Циклы реализуются с помощью команд условных переходов. Действия, связанные с вызовом подпрограммы, требуют специальной разновидности перехода. Как и в других переходах, вызов подпрограммы также заменяет содержимое ПС на адрес перехода, но при этом запоминается текущее содержимое ПС в специальной области памяти, называемой стеком. Команда возврата должна восстановить в ПС адрес возврата, чтобы после завершения подпрограммы продолжалось последовательное выполнение основной программы. Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические операции над данными. Входные данные АЛУ в зависимости от кода операции могут находиться: а. в регистре W; б. либо в РК, либо в памяти данных. Структура памяти данных показана на рис. 4. Мультиплексор данных подключает к входу АЛУ в соответствии с кодом операции либо РК (в режиме непосредственной адресации), либо память данных (в режиме прямой и косвенной адресации). Мультиплексор адреса в зависимости от режима адресации позволяет адресовать ячейки памяти данных либо от РК (в режиме прямой адресации), либо от регистра косвенной адресации FSR (в режиме косвенной адресации). Биты конфигурации задают режим функционирования МК: · сброс по включению питания (POR); · таймер включения питания (PWRT); · таймер запуска генератора (OSC); · сброс по снижению напряжения питания (BOR); · сторожевой таймер (WDT); · режим низковольтного последовательного программирования (LVP); · режим внутрисхемной отладки (ICD). Организация памяти команд Структура памяти команд показана на рис.3. Микроконтроллеры PIC16F877 имеет 13-разрядный программный счетчик ПС, способный адресовать 8К х 14 бит памяти программ. Адрес вектора сброса - 0000h. Адрес вектора прерываний - 0004h. Рис.3. Структура памяти программ и стека Организация памяти данных Структура памяти данных показана на рис.4. Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения. Биты RP1 (STATUS<6>) и RP0 (STATUS<5>) предназначены для управления банками данных. В таблице 1 показано состояние управляющих битов при обращении к банкам памяти данных. Таблица 1. Обращение к банкам памяти данных
Объем банков памяти данных до 128 байт (7Fh). В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все банки содержат регистры специального назначения. Часто используемые регистры специального назначения отображаться в других банках памяти. Старшие 16 байт памяти данных в банках 1, 2 и 3 отображены в банке 0. Рис.4. Структура памяти данных
Периферийный модуль – порт ввода/вывода PORTB Познакомимся в работой периферийных модулей МК на примере порта ввода/вывода PORTB. PORTB - это 8-разрядный двунаправленный порт. Любой разряд порта можно конфигурировать как выход или вход. Запись "1" в соответствующие разряды регистра TRISB переводит разряды порта в режим входа; запись "0" – режим выхода. Пример 5-2: Инициализация порта В CLRF PORTB ; обнуление регистра выходных данных BANKCELL TRISB ; обращение к банку, ;содержащему регистр ;TRISB. MOVLW 0x0F ;константа для инициализации порта MOVWF TRISB ;установка RB <3:0> как входов, ;RB <7:4> как выходы. Все разряды PORTB могут быть подтянуты к высокому уровню внутренними ключами для подключения к длинным линиям связи. Включение ключей выполняется записью "0" в разряд 7 регистра OPTION (бит RBPU). Ключи выключаются при: · программировании разряда порта как выход; · после "Сброса". Четыре разряда PORTB (RB7-RB4) формируют прерывание при изменении состояния. Только разряды сконфигурированные как входы могут вызывать это прерывание. Состояние сигналов на них сравнивается со старым значением, записанным при последнем чтении PORTB. Несовпадение текущего состояния со старым вызывает прерывание – поднимается флаг RB1F (INTCON < 0>). Можно сбросить флаг прерывания в программе обработки прерывания, выполнив следующие операции: · считать PORTB, что закончит условие несоответствия; · сбросить флажок RBIF. Прерывание по изменению состояния и программируемое подключение разрядов к высокому уровню этих четырех контактов позволяет создать простой интерфейс клавиатуры. Опрос PORTB не рекомендуется при использовании прерывания при изменении состояния. RB0/INT вход внешнего источника прерываний, настраиваемых битом INTEDG (OPTION_REG<6>). Программная составляющая микроконтроллера Система команд микроконтроллер. Каждая команда микроконтроллера состоит из одного 14-разрядного слова разделенного на: · код операции, определяющий тип команды · один или несколько операндов, определяющие операцию команды. Полный список команд смотрите в таблице 2. Команды разделены на следующие группы: · байтовые команды; · битовые команды; · команды управления и операций с константами. На рисунке 5 показан формат команд трех основных групп. Для байт ориентированных команд: · 'f ' является указателем регистра и определяет - какой регистр должен использоваться в команде; · 'd' указателем адресата результата и определяет, где будет сохранен результат. Если 'd'=0, результат сохраняется в регистре W. Если 'd'=1, результат сохраняется в регистре, который используется в команде. В бит ориентированных командах: · 'b' определяет номер бита участвующего в операции; · 'f ' - указатель регистра, который содержит этот бит. В командах управления или операциях с константами: · 'k' представляет восемь или одиннадцать бит константы. Рис. 5. Формат команд. Все команды выполняются за один машинный цикл, кроме команд условия, в которых замещается значение программного счетчика. В случае выполнения команды за два машинных цикла, во втором цикле выполняется инструкция NOP. Один машинный цикл состоит из четырех тактов генератора. Для тактового генератора с частотой 4 МГц команда выполняется за 2 мкс. Таблица 2. Команды микроконтроллера PIC16F877.
Примечание 1: Если регистр ввода/вывода изменяется, то исходным значением будет величина, считанная непосредственно с контактов. 2: Если команда модифицирует регистр TMR0, то предделитель будет обнулен. 3: Если в счетчик программ записывается адрес (т.е. условие проверки «истина»), то команда выполняется за два цикла. Второй цикл выполняется как команда NOP. Рекомендуемая структура программы для микроконтроллера PIC 16 F 877
list p=16f877 ; директива определения процессора #include <p16f877.inc> ; подключение списока определений переменных ;процессора __CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_ON & _DEBUG_OFF & _CPD_OFF ; '__CONFIG' - директива определения битов конфигурации процессора ;***** определение переменных w_temp EQU 0x70 ; переменная для сохранения текущего состояния при ;обработке прерывания status_temp EQU ; переменная для сохранения текущего состояния при ;обработке прерывания ;********************************************************************** ORG 0x000 ; размещение команд по адресу сброса процессора clrf PCLATH ; очистка старших бит счетчика команд goto main ; переход на основную программу ORG 0x004 ; размещение команд по вектору прерывания ;процессора movwf w_temp ; сохранение текущего значения регистра W movf STATUS,w ; сохранение текущего значения регистра ;STATUS movwf status_temp ; прерывающая программа movf status_temp,w ; восстановление значения регистра STATUS movwf STATUS swapf w_temp,f swapf w_temp,w ; восстановление значения регистра Ц retfie ; возврат в основную программу main ; основная программа END ; директива конца программы Описание лабораторного стенда Принципиальная схема системы на базе микроконтроллера PIC16F877 показана на рис. 6. Генератор тактовых импульсов для микроконтроллера PIC16F877 (микросхема DD1) реализован на кварцевом резонаторе ZQ1 и двух конденсаторах С1 и С2. Для запуска контроллера при подаче питающего напряжения к входу MCLR (ножка 1) подключено питание через ограничивающий резистор R1. К ножке 40 МК подключен светодиод D1 и ограничивающий резистор R2. Рис. 6. Принципиальная схема системы на базе микроконтроллера PIC16F877 В состав лабораторного комплекса также входит персональный компьютер с установленной на нем средой разработки программ для контроллеров Microchip MPLAB и программатор PICPROG для программирования микроконтроллера (рис.7). Рис. 7. Лабораторный комплекс
Постановка задачи Необходимо разработать и протестировать программу для микроконтроллера, обеспечивающую мигание светодиода D1 с частотой 1 Гц. Порядок выполнения работы 1. Разработка алгоритма работы МК. 2. Написание программы на языке ассемблера в соответствии с алгоритмом. 3. Набор и отладка программы в среде MPLAB. 4. Программирование МК с помощью программатора. 5. Проверка корректности работы программы в системе. Отчет Отчет включает в себя: 1. Постановку задачи. 2. Описание системы. 3. Алгоритм программы. 4. Текст программы. Литература 1. Основы микропроцессорной техники. /Новиков Ю.В., Скоробогатов П.К. – М:ИНТУИТ.РУ «Интернет-Университет Информационных технологий», 2003. – 440 с. 2. Ульрих В.А. Микроконтроллеры PIC16C7X.Семейство восьмиразрядных КМОП микроконтроллеров с аналого-цифровым преобразователем.-СПб.:Наука и техника,2000.-253 с. 3. PIC16F87x: Однокристальные 8-миразрядные FLASH CMOS микроконтроллеры компании Microchip Technology Incorporated. – http://www.microchip.ru, 2002 – 184 с. 4. MPLAB IDE: Интегрированная среда разработки для микроконтроллеров PICmicro компании Microchip Technology Incorporated. - http://www.microchip.ru, 2001 - 156 c. 5. MPMASM: Руководство пользователя. http://www.microchip.ru, 2000 – 62 с. Содержание
|