logo search
HCS12 с применением языка С - royallib

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 импульсов на один оборот двигателя. С помощью счетчика внешних событий эти импульсы могут быть подсчитаны на определенном временном интервале, после чего МК рассчитает число оборотов двигателя в мин.

• Таймер меток реального времени.  Этот модуль также относится к подсистеме реального времени. Он позволяет организовать прерывания основной программы МК для выполнения некоторых других «неотложных функций». Например, эта подсистема может быть использована для регулярного, один раз в 15 мин, опроса напряжения питающей систему батарейки с целью исключения потери информации при ее разряде. В главе 8 мы покажем использование таймера меток реального времени для обеспечения работы в микроконтроллере операционной системы реального времени.

• Модули контроллеров последовательных интерфейсов SPI (Serial Peripheral Interface) и SCI (Serial Communication Interface).  Микроконтроллеры семейства 68HC12 обладают достаточно мощными аппаратными средствами для обмена с другими устройствами в последовательном коде. Модуль контроллера SPI реализует обмен в синхронном режиме, в то время как модуль SCI предназначен для асинхронного последовательного обмена. Синхронный режим обмена в стандарте SPI характеризуется более высокими скоростями обмена по сравнению с стандартным асинхронным протоколом. Однако расстояние между взаимодействующими устройствами ограничено 20…30 см. Интерфейс в стандарте SPI часто используется для подключения к МК дополнительных интерфейсных компонентов, установленных на плате с МК. Например, МК семейства 68HC12 не имеют в своем составе цифро аналоговых преобразователей (ЦАП). Поэтому система с МК может быть дополнена внешней ИС ЦАП, подключенной к микроконтроллеру с использованием встроенного модуля контроллера SPI. Интерфейс асинхронного обмена SCI часто используется для обмена данными между двумя и более контроллерами, т.к на его основе созданы интерфейсы, сигналы которых могут передаваться на значительные расстояния.

• Модуль аналого-цифрового преобразователя ATD (Analog To Digital conversion system).  Большинство сигналов в системах, которыми управляют микроконтроллеры, имеют аналоговую природу. Например, температура и давление воздуха окружающей среды изменяются плавно, а не скачкообразно. Для работы с аналоговыми сигналами в микропроцессорной системе, эти сигналы должны быть предварительно преобразованы в цифровую форму. В русскоязычной литературе говорят, что эти сигналы должны быть оцифрованы. Для этой цели в составе МК B32 имеется модуль аналого-цифрового преобразователя. Модуль имеет 8 входов для одновременного подключения восьми измеряемых аналоговых сигналов. Однако оцифровка этих сигналов будет производиться последовательно. Измеряемые аналоговые сигналы будут подключаться ко входу одного аналого цифрового преобразователя (АЦП) посредством встроенного в модуль ATD мультиплексора. Оцифрованный сигнал представляется в 8-и или 10-разрядном прямом коде без знака. Два дополнительных бита кода представления результата позволяют увеличить чувствительность АЦП с 19.53 до 4.88 мВ.

• Модуль сторожевого таймера COP (Computer Operating Properly).  Встраиваемая микропроцессорная система должна обладать высокой надежностью. Одним из путей повышения этой надежности является свойство самовосстановления системы при возникающих некатострофических отказах. Такими отказами являются нарушения исполнения прикладной программы, вызванные помехами, и не сопровождаемые отказом аппаратных средств МК. Для восстановления правильного хода исполнения прикладной программы используется механизм сторожевого таймера. Если программа исполняется без нарушений, то сторожевой таймер регулярно обнуляется (сбрасывается) под управлением этой программы. Если же ход исполнения программы нарушен, то своевременный сброс может не произойти, и сторожевой таймер переполнится. Переполнение вызовет состояние внутреннего сброса МК, в результате исполнение прикладной программы будет начато заново, т.е. правильный ход исполнения программы будет восстановлен. В главе 5 мы обсудим возможные источники помех и шумов, которые могут вызвать сбой в исполнении программы. В главе 6 поговорим о дополнительных программных мерах, которые следует предпринять для предупреждения подобных отказов.

• Модуль широтно-импульсного модулятора PWM (Pulse Width Modulation).  Широтно-импульсная модуляция (ШИМ) — один из способов формирования импульсного сигнала с регулируемыми временными характеристиками. Способ широтно-импульсной модуляции часто используется для регулирования скорости вращения двигателей постоянного тока, а также для управления электрическими двигателями других типов. Для генерации ШИМ-сигнала в МК B32 могут быть использованы аппаратные средства модуля многофункционального таймера TIM. Однако МК B32 оснащен специальным модулем ШИМ. Этот модуль позволяет генерировать четыре независимых импульсных последовательности с 8 разрядным разрешением для задания коэффициента заполнения, или две импульсные последовательности с 16-разрядным заданием коэффициента заполнения. Допускается комбинация этих режимов. Например, ШИМ сигнал используется для управления двигателем рулевого управления в игрушечных радиоуправляемых машинках. Для того, чтобы машинка повернула направо или налево, она должна получить импульсный сигнал, у которого частота следования импульсов постоянная, а длительность импульсов изменяется, как показано на рис. 4.2. Отношение длительности импульса к длительности периода сигнала называется коэффициентом заполнения. Машинка повернет налево, если коэффициент заполнения менее 50% , или направо, если коэффициент заполнения превышает 50%. Модуль PWM микроконтроллера B32 позволяет организовать импульсную последовательность с требуемыми значениями периода следования и коэффициента заполнения при использовании минимального числа команд прикладной программы.

а) Временные диаграммы ШИМ-сигналов с различными коэффициентами заполнения

б) Регулировочная характеристика

Рис. 4.2. Широтно-импульсная модуляция

• Модуль контроллера последовательного обмена BDLC (Byte Data Link Communication)  поддерживает коммуникационный протокол SAE J1850, который является действующим стандартом бортовой информационной сети в автомобилях североамериканского производства.

• Модуль контроллера CAN интерфейса msCAN12 (Motorola Scalable Controller Area Network)  содержит в себе набор аппаратных средств для поддержки коммуникационного протокола промышленных сетей в стандарте CAN 2.0 A/B. Этого модуля нет в составе МК модели B32, однако он присутствует во многих других моделях семейства HC12 и HCS12. Пример работы с этим модулем приведен в главе 9.

Для более полного восприятия структуры МК B32 мы дополним приведенные технические характеристики небольшим примером применения.

На рис. 4.3. представлена микропроцессорная система регулирования скорости электрического двигателя на основе МК семейства 68HC12. Желаемая скорость вращения двигателя (число оборотов в секунду — об/с) задается посредством шестнадцатикнопочной клавиатуры. МК 68HC12 осуществляет преобразование вводимых с клавиатуры кодов в ШИМ сигнал для управления двигателем. Информация о скорости вращения двигателя снимается с выхода оптического импульсного датчика, установленного на валу двигателя. Измеренное значение скорости используется для вычисления коэффициента заполнения ШИМ сигнала, который управляет подключением силового напряжения к обмотке двигателя. Регулирование коэффициента заполнения ШИМ сигнала позволяет поддерживать скорость вращения двигателя на заданном уровне. Текущая скорость двигателя отображается на жидкокристаллическом (ЖК) индикаторе.

Рис. 4.3. Система управления электрическим двигателем на основе МК 68HC12

Вопрос:  какие подсистемы МК семейства 68HC12 используются для реализации рассмотренной системы регулирования скорости вращения двигателя?

Ответ:

• Параллельный порт задействован для ввода сигналов с клавиатуры.

• Модуль ШИМ используется для генерации широтно-модулированного сигнала управления силовым ключом IRF530. Этот ключ коммутирует силовое напряжение к обмотке двигателя. Если в примере использовать МК семейства 68HC12, который не имеет в своем составе модуля ШИМ, например A4, то этот же сигнал может быть сгенерирован одним из каналов многофункционального таймера в режиме выходного сравнения OC.

• Выход оптического импульсного датчика подключается на вход счетчика внешних событий PA. Внешний датчик и встроенный в МК счетчик вместе образуют цепь обратной связи системы управления скоростью вращения двигателя.

• Модуль меток реального времени RTI реализует периодические прерывания для считывания накопленного в счетчике внешних событий числа импульсов. Это значение используется для вычисления реальной скорости вращения двигателя.

• Параллельный порт и несколько дополнительных линий другого порта используются для вывода информации на ЖК индикатор.