Введение

Линия микроконтроллеров, производимых Freescale Semiconductor.

68HC12 (также сокращенно 6812 или HC12) — семейство микроконтроллеров от Motorola Semiconductor (позже от Freescale, а затем NXP). Архитектура, впервые представленная в середине 1990-х годов, является усовершенствованием Freescale 68HC11. Программы, написанные для HC11, как правило, совместимы с HC12, который обладает несколькими дополнительными инструкциями. Первые модели 68HC12 имели максимальную частоту шины 8 МГц и объемы флэш-памяти до 128 КБ.

Архитектура 68HC12

Как и 68HC11, 68HC12 имеет два 8-битных аккумулятора A и B (которые могут рассматриваться как единый 16-битный аккумулятор D при каскадном соединении A и B для выполнения 16-битных операций), два 16-битных регистра X и Y, 16-битный счетчик команд, 16-битный указатель стека и 8-битный регистр кодов состояния. В отличие от 68HC11, данный процессор имеет 16-битные внутренние шины данных.

68HC12 добавляет и заменяет небольшое количество инструкций 68HC11 новыми вариантами, более близкими к инструкциям процессора 6809. Более существенно, он изменяет кодировку инструкций, делая её значительно более компактной, и добавляет множество функций индексации, аналогичных 6809, некоторые из которых обладают ещё большей гибкостью. В конечном итоге, размеры кода обычно уменьшаются на 30%.

Деривативы HCS12/MC9S12

Начиная с 2000 года семейство было расширено за счет появления производных MC9S12, обладающих тактовой частотой шины до 25 МГц и объемом флэш-памяти до 512 КБ. В сентябре 2004 года компания Freescale представила MC9S12NE64, заявив, что это "первый в отрасли однокристальный микроконтроллер с быстрой Ethernet и флэш-памятью". Он включает в себя 25-мегагерцовый процессор HCS12, 64 КБ флэш-ЭППРОМ, 8 КБ оперативной памяти и контроллер Ethernet 10/100 Мбит/с.

XGATE

XGATE – это 16-битный RISC-процессор, работающий с частотой, вдвое превышающей частоту системной шины. Он разгружает ядро S12X, обрабатывая исключительно прерывания и не выполняя фоновый цикл. В первых версиях XGATE прерывания более высокого приоритета не могут прервать текущее обрабатываемое прерывание, однако в "XGATEV3", используемом в 9S12XEP100 (и других), такая возможность предусмотрена. Ядро S12X может генерировать программные прерывания для ядра XGATE и наоборот. Реализована семафорная система для синхронизации доступа ядер S12X и XGATE к периферийным устройствам. Как правило, код XGATE копируется в ОЗУ при запуске устройства, а затем выполняется из ОЗУ для повышения производительности. XGATE имеет частичное 64КБ адресное пространство без постраничной организации памяти. Регистры используют общие адреса, но области флэш-памяти и ОЗУ отображаются по разным адресам для каждого ядра. (Подробности см. в техническом описании.)