Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Знакомясь с оглавлением, Вы должны были заметить, что эта глава — самая длинная в книге. В ней мы с достаточной степенью подробности изучим структуру и режимы работы всех подсистем микроконтроллеров семейства 68HC12 и HCS12. Для определенности рассмотрение будем вести на примере двух моделей МК: MC68HC912B32 и MC9S12DP256. Далее с целью удобства восприятия будем называть эти модели просто B32 и DP256. Периферийные модули в составе МК 68HC12 и HCS12 очень похожи друг на друга. Поэтому мы сначала будем рассматривать модули МК 68HC12, а затем остановимся на отличиях конкретного модуля в составе семейства HCS12 от его прототипа в составе 68HC12. Изучению каждого периферийного модуля будет предшествовать краткая теоретическая справка, затем будут рассмотрены структура аппаратных средств и регистры специальных функций модуля. В завершение для каждого модуля приведены несколько
Очень важно, чтобы Вы достаточно глубоко поняли особенности подсистем в составе МК 68HC12 перед тем, как перейти к примерам практической реализации достаточно сложных систем на основе этих МК. Если Вы уже знакомы с МК семейства 68HC12, то у Вас возникнет желание пропустить главу 4. Однако мы советуем Вам все же ознакомиться с примерами программ управления из этой главы, поскольку последние используются в приложениях главы 7. Заметим также, что примеры этой главы могут использоваться Вами для получения навыков отладки программного обеспечения с использованием платы отладки M68EVB912B32 или каких либо других отладочных средств.
4.1. Аппаратные средства микроконтроллеров семейства 68HC12
На рис. 4.1. представлена структура микроконтроллера MC68HC912B32 или в сокращенном виде B32. Мы уже использовали этот рисунок в гл. 1, однако обратились к нему снова, для более подробного рассмотрения технических характеристик МК B32.
Рис. 4.1. Структура микроконтроллера MC68HC912B32
Все МК семейства 68HC12 обладают 16-разрядным процессорным ядром. Семейство объединяет ряд моделей, в том числе ранее упомянутый МК 68HC812A4 (A4) и рассматриваемый в данной главе МК 68HC912B32 (B32). Отдельные модели в составе семейства различаются набором периферийных модулей, которые подключаются к внутренней межмодульной магистрали. Основные отличия между отдельными представителями семейства состоят в типе и объеме размещенной на кристалле резидентной памяти, количестве параллельных портов и контроллеров последовательных интерфейсов. В настоящей главе будет подробно рассмотрен МК модели 68HC912B32, который был выбран по причине наличия в нем всех типовых периферийных модулей. Подробное изучение предложенного МК позволит читателю с минимальными затратами адаптироваться к проектированию приложений на основе других моделей семейства 68HC12 и HCS12.
МК 68HC912B32 характеризуются следующими отличительными особенностями:
• Низкое энергопотребление. Микроконтроллеры семейства 68HC12 производятся на основе CMOS технологии (CMOS — Complementary Metal oxide semiconductor). Эта технология позволяет создать транзисторные структуры с относительно низкими потерями энергии при работе в ключевых режимах. Поэтому МК семейства 68HC12 характеризуются малым потреблением энергии, что позволяет рекомендовать их для использования в изделиях с автономным питанием (от аккумуляторов или батареек). Однако не следует забывать, что потребляемая энергия для полупроводниковых CMOS структур прямо пропорциональна частоте переключения. Поэтому для достижения оптимальных энергетических характеристик следует выбирать частоту тактирования центрального процессора микроконтроллеров 68HC12 минимально возможной для конкретного применения. Микроконтроллеры 68HC12 имеют специальные режимы пониженного энергопотребления, которые также позволяют оптимизировать энергетические характеристики проектируемого изделия.
• Высокопроизводительное 16 разрядное процессорное ядро. Центральный процессор семейства 68HC12 выполняет действия над 16-разрядными операндами, поэтому время выполнения алгоритмов над переменными, разрядность которых превышает байт, существенно сокращается по сравнению с 8 разрядными МК. Максимальная частота тактирования процессорного ядра fBUS для микроконтроллеров семейства 68HC12 составляет 8 МГц. Однако частота внешнего генератора или кварцевого резонатора должна составлять 16 МГц, поскольку внутренние цепи микроконтроллера делят эту частоту на два для получения fBUS.
• Резидентное ОЗУ объемом 1024 байта (1Кб). Встроенное в кристалл микроконтроллера ОЗУ используется для хранения промежуточных результатов вычислений. Число ячеек, равное 1К, достаточно для большинства прогнозируемых для семейства 68HC12
• Резидентная энергонезависимая память данных типа EEPROM объемом 768 б. Этот тип энергонезависимой памяти (энергонезависимая память сохраняет содержимое после отключения питания) обычно используют для сохранения изменяемых констант прикладной программы. Например, в области EEPROM могут храниться коды доступа к данной модели устройства, или на основе ячеек EEPROM могут быть организованы счетчики аварий исполнительного механизма, которым управляет микропроцессорный контроллер. Энергонезависимая память типа EEPROM позволяет выполнять операции записи и перезаписи содержимого ячеек памяти в течение сеанса работы микропроцессорного устройства под управлением прикладной программы, а также чтение ячеек памяти в произвольном порядке.
• Резидентная память программ типа Flash объемом 32 Кб. Этот тип памяти предназначен для хранения прикладной программы, которая функционально завершена, прошла отладку и тестирование на реальном объекте. Объем памяти программ МК B32 составляет 32 Кб, что позволяет разместить в ней достаточно большие программы. В процессе работы над примерами из нашей книги Вы почувствуете, какой алгоритм может быть реализован программным кодом объемом 32 Кб. Использование Flash памяти в качестве памяти программ позволяет реализовать технологию программирования в системе ISP (In System Programming). Эта технология обеспечивает выполнение операций стирания и записи новых кодов в резидентное ПЗУ программ микроконтроллера без демонтажа МК с платы конечного изделия. Учитывая, что наиболее надежным способом монтажа МК на плату встраиваемой системы в настоящее время является пайка, читатель должен оценить, сколь полезна технология ISP. Если Вы собрались использовать технологию ISP на плате отладки MC68HC912B32EVB, то следует помнить, что программа монитора отладки D-Bug12, которая в том числе необходима для реализации этой технологии, располагается в области Flash памяти. Поскольку любой операции записи во Flash ПЗУ предшествует операция стирания Flash памяти, необходимо соблюдать осторожность, чтобы не стереть коды монитора отладки. Необходимые для этого сведения Вы найдете в разделе 7.8.
• Мультиплексированная шина адрес/данные для адресации внешней памяти и периферийных устройств. Число выводов корпуса, в котором размещается полупроводниковый кристалл микроконтроллера, ограничено. Причиной тому — стремление разработчика выпускать миниатюрные и относительно недорогие МК, в то время, как увеличение числа выводов корпуса увеличивает его размеры и стоимость. Одним из способов сокращения числа выводов корпуса МК при сохранении функций этих выводов является мультиплексирование линий магистралей адреса и данных для сопряжения МК с внешней памятью. При мультиплексировании одни и те же выводы МК на протяжении одного временного интервала используются для передачи информации об адресе внешней ячейки памяти, а в течение другого временного интервала — для обмена данными с этой ячейкой. В микроконтроллере B32 функции мультиплексированных во времени магистралей адрес/данные выполняют линии портов Port A и Port B (рис. 4.1).
• Многофункциональный таймер. Подсистема реального времени МК семейства 68HC12 включает несколько модулей, но основным является таймер с 16-разрядным счетчиком временной базы, программируемым делителем частоты тактирования и 8 каналами входного захвата IC (Input Capture) или выходного сравнения OC (Output Compare). Эти каналы могут быть сконфигурированы произвольно: любое число каналов из 8 настраивается на реализацию функции входного захвата IC, оставшиеся каналы — на функцию выходного сравнения OC. При этом возможны конфигурации, когда все каналы находятся в режиме IC или в режиме OC. Такая организация модуля таймера позволяет производить точные измерения временных характеристик входных сигналов МК, и генерировать многоканальные импульсные последовательности на его выходах.
• Независимый 16 разрядный счетчик внешних событий. Этот модуль также принадлежит к подсистеме реального времени. Он предназначен для подсчета так называемых внешних событий, каждое из которых представляется импульсом на одном из входов МК. Например, в главе 7 мы будем рассматривать пример системы управления скоростью вращения электрического двигателя. Этот двигатель оснащен оптическим датчиком скорости, который генерирует 60 импульсов на один оборот двигателя. С помощью счетчика внешних событий эти импульсы могут быть подсчитаны на определенном временном интервале, после чего МК рассчитает число оборотов двигателя в мин.