Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт
Шрифт:
Интервал:
Закладка:
• Высокопроизводительное 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 поговорим о дополнительных программных мерах, которые следует предпринять для предупреждения подобных отказов.