Методические указания для практических занятий по дисциплине мдк. 02. 01
Скачать 7.37 Mb.
|
Практическая часть. Перед началом выполнения практической части необходимо ознакомиться с лабораторной установкой на базе платы Freescale и программным обеспечением CodeWarrior. Для того чтобы воспользоваться модулем аналого-цифрового преобразования ATD для измерения уровня напряжения на нескольких аналоговых входах МК, необходимо выполнить следующие действия: 1) Подключить источники стабилизированного напряжения ко входам опорного напряжения VRF и VRL . Необходимо помнить, что напряжение на входе высокого уровня опорного напряжения VRF не должно превышать 5,0 В, а на входе низкого уровня VRL напряжение должно быть не менее 0 В. Кроме того, разность напряжений на входах VRF и VRL, равная напряжению полной шкалы АЦП UREF = URH – URL , не должна быть менее 2,5 В; 2) Подключить источники измеряемых аналоговых сигналов ко входам AN0…AN7. Напряжение измеряемых сигналов должно находиться в диапазоне от 0 В до 5,0 В; 3) Осуществить внутреннюю коммутацию напряжения питания к модулю ATD. Для этого записать 1 в бит ADPU регистра управления ATDCTL2. Адрес регистра – $0062; 4) Выдержать паузу в 100 мкс для завершения переходных процессов в модуле ATD. В рассматриваемом ниже программном фрагменте мы покажем, как организовать такую задержку; 5) Назначить режим работы модуля ATD посредством записи необходимых слов инициализации в управляющие регистры модуля; 6) Запустить измерительную последовательность посредством записи в регистр управления ATDCTL5; 7) Контролировать ход преобразования, используя флаги регистра состояния модуля ATDSTAT; 8) Когда измерительная последовательность будет завершена, считать данные из регистров результата ADR0H…ADR7H в память МК. Программный фрагмент voltmeter.c производит измерение аналогового сигнала на входе AN6. Измерительная последовательность состоит из четырех преобразований. Режим измерения однократный. Результаты четырех последовательных преобразований одного и того же сигнала располагаются в четырех регистрах результата ADR0H…ADR3H. Эти измерения усредняются, что позволяет снизить влияние шумов. Полученный 8 разрядный двоичный код преобразуется к истинному значению измеряемого напряжения, умноженному на 100. Умножение на нормирующий коэффициент (100 в десятичной системе счисления) необходимо, чтобы использовать в программе целочисленные форматы представления данных. Полученный результат содержит одну десятичную цифру целой части измеренного напряжения, это единицы Вольт. А также две цифры десятичной дробной части. Это десятые и сотые доли Вольт в представлении результата. Промежуточные результаты исполнения программы, а также измеренное напряжение выводятся на экран персонального компьютера. 333 Контрольные вопросы. 1) Назначение процессорного ядра микроконтроллеров. 2) Основные аппаратные средства современных МК. 3) Дополнительные аппаратные средства современных МК. 4) Особенности микроконтроллеров на примере МК семейства Motorola. 5) Многофункциональный таймер. 6) Модуль контроллера CAN интерфейса msCAN12 (Motorola Scalable Controller Area Network). 7) Модули контроллеров последовательных интерфейсов SPI (Serial Peripheral Interface) и SCI (Serial Communication Interface). 8) Модуль аналого-цифрового преобразователя ATD (Analog To Digital convertion system). 9) Модуль широтно-импульсного модулятора PWM (Pulse Width Modulation). Практическая работа №75. Программные модели аппаратных средств микропроцессорных систем (способы построения программ). Цель работы: ознакомление с внутренней структурой современных микроконтроллеров. Изучение основных функциональных блоков на примере МК семейства Motorola. Общие сведения Все МК обладают процессорным ядром. Семейство объединяет ряд моделей. Отдельные модели в составе семейства различаются набором периферийных модулей, которые подключаются к внутренней межмодульной магистрали. Основные отличия между отдельными представителями семейства состоят в типе и объеме размещенной на кристалле резидентной памяти, количестве параллельных портов и контроллеров последовательных интерфейсов. Структура современных микроконтроллеров на примере МК MC68HC912B32 приведена на рисунке ниже. 334 Отличия современных микроконтроллеров на примере МК Motorola. Низкое энергопотребление. Микроконтроллеры семейства 68HC12 производятся на основе CMOS технологии (CMOS – Complementary Metaloxide semiconductor). Эта технология позволяет создать транзисторные структуры с относительно низкими потерями энергии при работе в ключевых режимах. Поэтому МК семейства 68HC12 характеризуются малым потреблением энергии, что позволяет рекомендовать их для использования в изделиях с автономным питанием (от аккумуляторов или батареек). Однако не следует забывать, что потребляемая энергия для полупроводниковых CMOS структур прямопропорциональна частоте переключения. Поэтому для достижения оптимальных энергетических характеристик следует выбирать частоту тактирования центрального процессора микроконтроллеров 68HC12 минимально возможной для конкретного применения. Микроконтроллеры 68HC12 имеют специальные режимы пониженного энергопотребления, которые также позволяют оптимизировать энергетические характеристики проектируемого изделия. Высокопроизводительное 16 разрядное процессорное ядро. Центральный процессор семейства 68HC12 выполняет действия над 16 разрядными операндами, поэтому время выполнения алгоритмов над переменными, разрядность которых превышает байт, существенно сокращается по сравнению с 8 разрядными МК. Максимальная частота тактирования процессорного ядра fBUS для микроконтроллеров семейства 68HC12 составляет 8 МГц. Однако частота внешнего генератора или кварцевого резонатора должна составлять 16 МГц, поскольку внутренние цепи микроконтроллера делят эту частоту на два для получения fBUS. Новое семейство МК HCS12 унаследовало архитектуру процессорного ядра и большинства периферийных модулей от своего предшественника, семейства 68HC12. Отметим основные отличия: 335 1) Напряжение питания большинства моделей МК семейства HCS12 равно 5,0 В, что позволяет обеспечить электромагнитную совместимость в авто мобильных и общепромышленных применениях; 2) Повышенна производительность процессорного ядра. Частота тактирования центрального процессора и межмодульных магистралей МК семейства HCS12 составляет 25 МГц против 8 МГц у HC12; 3) Увеличен объем резидентной памяти. Объем встроенного в МК семейства HCS12 ОЗУ достигает 12 Кб, объем Flash ПЗУ – 512 Кб. Кроме того, в составе большинства моделей МК имеется значительная область EEPROM (до 4 Кб) для хранения перепрограммируемых констант пользователя; 4) Большое число интегрированных на кристалл разнообразных контроллеров последовательных интерфейсов, т.к. МК семейства предназначены для работы в качестве интеллектуальных узлов распределенных систем управления. Функциональные блоки микроконтроллеров Семейство HCS12 объединяет ряд моделей МК с одинаковым процессорным ядром CPU HCS12. Отдельные представители семейства различаются объемом встроенной памяти и количеством и типом интегрированных на кристалл МК периферийных модулей. Однако каждый МК из семейства HCS12 имеет в своем составе следующие функциональные модули: 1) Память трех типов: FLASH память программ, энергонезависимая память EEPROM для хранения изменяемых констант пользователя и статическое ОЗУ для размещения промежуточных переменных прикладной программы управления; 2) Многофункциональный 16 разрядный таймер с 8 каланами IC/OC; 3) Многоканальный аналого-цифровой преобразователь; 12 4) Контроллеры последовательного обмена нескольких стандартов; 5) Модуль ШИМ общего назначения, ряд моделей оснащен специализированным модулем ШИМ для управления автономными вентильными преобразователями. Режимы работы микроконтроллеров Микроконтроллеры семейства 68HC12/HCS12 функционируют в одном из восьми режимов, которые делят на две группы: рабочие режимы и специальные режимы. Рабочие режимы позволяют создать различную аппаратную реализацию встраиваемого контроллера, в то время как специальные режимы работы предназначены для проведения тестовых испытаний и диагностики МК в процессе производства. Поэтому инженерам по применению микроконтроллеров важно изучить лишь группу рабочих режимов.Каждый режим из группы рабочих задает собственное распределение адресного пространства МК и конфигурацию магистралей для подключения внешней памяти. Режим работы МК назначается посредством комбинации логических сигналов на входах BKGD, MODB, MODA микроконтроллера в состоянии начального запуска МК. Состояние начального запуска именуют также состоянием сброса (Reset). Сразу после выхода из состояния сброса МК запоминает кодовую комбинацию на перечисленных входах и переходит в соответствующий режим работы. Там же указаны альтернативные функции линий портов PORT A и PORT B, которые они приобретают в каждом из режимов работы. В большинстве проектируемых устройств Вы будете использовать МК 68HC12/HCS12 в одном из трех рабочих режимов: • Однокристальном или автономном режиме; • Расширенном режиме с 16 разрядной внешней шиной; • Расширенном режиме с 8 разрядной внешней шиной. Расширенные режимы работы предоставляют возможность подключения к МК внешней памяти и внешних периферийных ИС с использованием параллельных магистралей адреса и данных. Сигналы магистралей формируются на линиях портов PORTA и PORTB, поэтому использование соответствующих выводов МК в качестве линий ввода/вывода общего назначения в расширенных режимах работы становится невозможным. Краткое описание рабочих режимов Однокристальный режим работы (BKGD: 1, MODB: 0, MODA: 0) обеспечивает функционирование МК с использованием только внутренней памяти. Поэтому коды прикладной программы управления и ее переменные должны размещаться только во внутреннем ПЗУ и ОЗУ МК. Порты PORTA и PORTB используются в качестве обычных двунаправленных портов 336 ввода/вывода. Подключение внешних периферийных ИС должно производиться с использованием последовательных интерфейсов или с программной поддержкой временной диаграммы обмена на линиях портов ввода/вывода. Расширенный режим с 16 разрядной системной шиной (BKGD: 1, MODB: 1, MODA: 1) обеспечивает функционирование МК с использованием как внутренней, так и внешней памяти. Для подключения внешней памяти предназначена 16_разрядная мультиплексированная магистраль адрес/данные ADDR15_0/DATA15_0. При этом старший байт мультиплексированной во времени магистрали ADDR15_8/DATA15_8 формируется на линиях PORTA, младший байт ADDR7_0/DATA7_0 – на линиях PORTB. Расширенный режим с 8_разрядной системной шиной (BKGD: 1, MODB: 0, MODA:1) также реализует работу МК с использованием внутренней и внешней памяти. Но для13 подключения внешней памяти предназначены 16 разрядная магистраль адреса ADDR15_0 и 8 разрядная магистраль данных DATA7_0. Старший байт магистрали адреса ADDR15_8 выводится на PORTA, младший байт ADDR7_0 – на PORTB. Двунаправленная 8 разрядная магистраль данных DATA7_0 использует линии порта PORTA в мультиплексированном со старшими разрядами магистрали адреса режиме. В обоих расширенных режимах некоторые линии порта PORTE используются для передачи сигналов управления обменом по шине. Практическая часть. Перед началом выполнения практической части необходимо ознакомиться с лабораторной установкой на базе платы Freescale и программным обеспечением CodeWarrior. Рассмотрим последовательность действий, которую необходимо проделать для инициализации модуля PWM: 1) Для конкретного приложения следует определить разрешающую способность генерируемого ШИМ сигнала, т.е. число дискретных отсчетов частоты тактирования канала в периоде и длительности импульса выходного сигнала канала. На основании полученных данных следует определить, в каком режиме, 8_разрядном или 16_разрядном, Вы будете использовать каналы модуля PWM; 2) Для конкретного приложения следует определить требуемую частоту генерируемого ШИМ сигнала. На основе полученных данных определить структуру подсистемы тактирования каналов модуля PWM; 3)Установить биты CON23 и CON01 в регистре PWCLK для выбора 8 раз рядного или 16 разрядного режима работы; 4) Определить, будете ли Вы использовать режим центрированной или режим фронтовой ШИМ. В соответствие с выбранным режимом установить бит CENTR в регистре PWCTL; 5) Определить активный уровень ШИМ сигнала, в соответствии с выбором установить биты PPOL0…PPOL3 в регистре PWPOL; 6) Назначить источники тактирования для каналов, для чего установить биты PCLK0…PCLK3 в регистре PWPOL; 7) Установить коэффициенты деления для импульсных последовательностей CLOСK A и CLOСK_B, используя для этого биты PCKA2… PCKA0 и PCKB2… PCKB0 регистра PWCLK; 8)Установить для используемых каналов значения регистров периода и регистров коэффициента заполнения; 9) Разрешить работу выбранных каналов модуля PWM, используя для этого биты PWEN0…PWEN3 регистра EPWM. Определим параметры настройки модуля PWM для генерации ШИМ сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%. Частоту тактирования канала ШИМ выберем равной 8МГц/32 = 250 кГц. Этой частотой будем тактировать 8_разрядный счетчик канала. Для формирования частоты 976 Гц потребуется 256 отсчетов частоты 250 кГц, что соответствует максимально возможному коэффициенту счета 8_разрядного счетчика периода канала. Для формирования сигнала с коэффициентом заполнения 66,7% следует установить код периода, равный 256 отсчетам, а код коэффициента заполнения – 171 отсчету. Для формирования ШИМ сигнала будем использовать канал 0 модуля PWM. Программный фрагмент init_pwm.c производит начальную установку регистров специальных функций модуля PWM для генерации на выходе PP0 ШИМ сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%: 337 Контрольные вопросы 1) Внутренняя структура микроконтроллеров. 2) Отличия современных МК. 3) Функциональные блоки МК. 4) Режимы работы МК. 5) Однокристальный режим работы. 6) Расширенный режим с 16 разрядной системной шиной. 7) Расширенный режим с 8 разрядной системной шиной. 8) Назначение модуля широтно-импульсного модулятора PWM (Pulse Width Modulation). Практическая работа №76. Программные модели аппаратных средств микропроцессорных систем (моделирование функций). Цель работы: ознакомление с видами памяти микроконтроллеров: память данных, память программ. Изучение регистров и стековой памяти МК. Общие сведения Подсистема памяти МК семейства 68HC12/HCS12 включает четыре различных модуля памяти: энергонезависимая Flash память программ, энергонезависимая EEPROM память данных, статическое ОЗУ и блок регистров специальных функций для управления режимами работы периферийных модулей. Расположение различных модулей памяти в адресном пространстве МК принято отражать на так называемой карте памяти. Карта памяти МК B32 представлена на рис. ниже. Указанные на ней адреса будут действительны при выходе МК из состояния сброса. В ходе исполнения прикладной программы адресное пространство для каждого модуля памяти может быть изменено. Тогда для обращения к ячейкам памяти будут использоваться не указанные на рис. физические адреса, а измененные виртуальные адреса. Память программ и память данных микроконтроллера на примере МК семейства Motorola Микроконтроллер B32 предназначен для использования преимущественно в однокристальном режиме работы. Он содержит в себе 32Кб ПЗУ программ, 768 байт памяти типа EEPROM, 1Кб статического ОЗУ и 512 регистров управления. Строго говоря, аббревиатура EEPROM (Electrically Erasable Programmable ROM) обозначает энергонезависимую память с электрическим программированием и электрическим стиранием. Поэтому и резидентная память программ, выполненная на основе технологии FLASH, и энергонезависимая память данных должны быть характеризованы как EEPROM. Однако энергонезависимая память программ и энергонезависимая память данных отличаются по своим свойствам не только на уровне технологии изготовления, но и на уровне разработчика встраиваемых систем. Память типа Flash допускает выполнение операции стирания только над некоторым множеством ячеек, что неудобно при необходимости замены только одного байта информации. Энергонезависимая память данных позволяет стереть и потом запрограммировать один байт информации. Однако ячейки памяти с подобным свойством занимают значительную площадь полупроводникового 338 кристалла МК, поэтому на их основе не может быть выполнена память программ большого объема. Во избежание путаницы у российских разработчиков принято использовать аббревиатуру EEPROM только для памяти с побайтным стиранием и побайтным программированием. А память со стиранием блоками обозначают как Flash, хотя и эта память по своим свойствам относится к EEPROM. Используя МК от Freescale Semiconductor, в частности семейство 68HC12/HCS12 следует знать, что гарантированное число циклов стирания/программирования для МК HCS12 составляет 10000, а для МК 68HC12 – всего 100. Именно поэтому во многих отладочных средствах на основе МК 68HC12 рекомендуется промежуточные версии программы записывать и исполнять из ОЗУ. Поскольку резидентное ОЗУ у микроконтроллеров обладает недостаточным объемом для размещения программы, то многие отладочные платформы используют расширенный режим работы МК с подключением внешнего ОЗУ. В МК семейства HCS12 для целей отладки обычно используется внутреннее Flash ПЗУ программ, т.к. 10000 циклов перезаписи обычно остаточно для внесения всех исправлений в процессе отладки. Пример применения16 В процессе эксплуатации память типа EEPROM часто используют для создания счетчиков аварийных ситуаций на объекте. Возможные аварии предварительно классифицируются, в системе устанавливаются датчики, которые позволяют микроконтроллеру отнести возникшую аварийную ситуацию к тому или иному типу. Если тип аварии диагностирован, то МК увеличивает соответствующий счетчик и запоминает его новое состояние в энергонезависимой памяти данных типа EEPROM. Такое решение позволяет сохранить информацию об авариях даже при отключении системы питания. Регистры специальных функций Блок регистров специальных функций микроконтроллера по реализуемым функциям очень похож на пульт управления. Каждый регистр осуществляет управление или отображает состояние того периферийного модуля МК, к которому он отнесен в техническом описании. Часть битов регистров специальных функций может быть сопоставлена с переключателями: установка бита в 1 разрешает реализацию, какой либо функции периферийного модуля, сброс в 0 – прекращает исполнение этой функции. Другая часть битов регистров аналогична индикаторам состояния: установка 1 свидетельствует о завершении выполнения назначенной функции, пребывание в 0 свидетельствует о том, что процесс еще не завершился. Регистры специальных функций МК семейства 68HC12/HCS12 объединены в блок, который размещается в адресном пространстве памяти МК. Доступ к каждому из 512 регистров блока осуществляется теми же командами центрального процессора, что и к ячейкам памяти. Никакого различия с точки зрения программного обслуживания между регистрами специальных 339 функций и ячейками ОЗУ не существует. Исключение составляют лишь регистры конфигурации и другие, так называемые защищенные регистры, состояние которых невозможно изменить в произвольный момент исполнения прикладной программы. В момент начального запуска, когда МК находится в состоянии сброса, в каждый регистр специальных функций записывается определенное в техническом описании значение. Начальные состояния регистров специальных функций обычно таковы, что функции соответствующего периферийного модуля отключены. Это очень удобно как с точки зрения потребления энергии микроконтроллером, так и с точки зрения программиста, составляющего прикладную программу управления. Если при запуске большинство периферийных модулей не работает, то МК потребляет минимальную энергию. Далее будут активизированы только те модули, которые потребуются для выполнения управляющего алгоритма. Остальные модули останутся не задействованными, что обеспечит минимизацию энергии потребления в процессе функционировании конечного устройства. При составлении программы управления МК сначала предстает перед разработчиком в минимальной конфигурации, когда большинство периферийных модулей как бы не существует. Таким МК легко управлять, поэтому ошибок в прикладной программе будет меньше. По мере реализации программы управления разработчик активизирует работу только тех модулей, которые ему потребуются. Поэтому ему не придется думать о программном обслуживании не задействованных при реализации алгоритма периферийных модулей. Каждый регистр специальных функций имеет свой собственный адрес в карте памяти МК. При программировании на ассемблере изменение значений регистров специальных функций и считывание их состояния может быть произведено командами загрузки и пересылки данных, такими как LDAA, STAA, MOV, а также командами битовых операций BSET, BCLR. Для того чтобы избавить программиста от запоминания физических адресов регистров специальных функций, следует использовать псевдокоманду операции присваивания EQU языка Ассемблер. Эта псевдокоманда назначит символьному имени регистра, которое одинаково для всех моделей МК семейства 68HC12/HCS12, абсолютный адрес. И при записи исходного текста программы можно будет использовать только символьные имена регистров специальных функций. Использование символьных имен также полезно при переносе прикладной программы с одной модели МК на другую. В этом случае следует заменить только абсолютные адреса в псевдокомандах, в то время, как исходный текст программы останется неизменным. |