Открыть сервис

MC68HC(S)(08)

MC68HC(S)(08) — это семейство 8-битных микроконтроллеров с гарвардской архитектурой, разработанное компанией Motorola (впоследствии Freescale Semiconductor, ныне NXP Semiconductors). Представляет собой развитие и упрощение архитектуры более раннего семейства Motorola 6805, отличаясь улучшенной производительностью, расширенным набором команд и пониженным энергопотреблением. Микроконтроллеры этого семейства широко применялись в автомобильной электронике, бытовой технике, промышленных контроллерах, медицинских устройствах и системах управления двигателями.

История

Разработка семейства MC68HC08 началась в конце 1980-х годов как ответ на растущий спрос на недорогие, но производительные 8-битные микроконтроллеры для встраиваемых систем. Первые образцы появились в 1991 году, а серийное производство стартовало в 1992 году. Архитектура была создана на основе опыта эксплуатации семейства MC68HC05, но с рядом ключевых улучшений: увеличенный объём адресуемой памяти (до 64 КБ), более эффективный стек, поддержка умножения и деления, а также встроенный модуль для работы с внешними прерываниями.

В середине 1990-х годов семейство MC68HC08 стало одним из самых популярных 8-битных микроконтроллеров на рынке, особенно в автомобильной промышленности (например, для управления подушками безопасности, ABS, климат-контролем). В 2000-х годах, с развитием более мощных 32-битных архитектур (ARM, ColdFire), спрос на MC68HC08 постепенно снижался, однако они продолжают использоваться в legacy-проектах и в некоторых нишевых применениях до настоящего времени.

Архитектура

Гарвардская архитектура

MC68HC08 использует раздельные шины для команд и данных, что позволяет одновременно обращаться к памяти программ и памяти данных, увеличивая производительность. Разрядность шины данных — 8 бит, шины адреса — 16 бит (максимальный объём адресуемой памяти — 64 КБ).

Регистровая модель

Процессорное ядро включает:

  • Аккумулятор (A) — 8-битный регистр для арифметических и логических операций.
  • Индексный регистр (X) — 8-битный регистр для косвенной адресации и операций с массивами.
  • Регистр состояния (CCR) — содержит флаги: C (перенос), Z (нуль), N (отрицательный), I (маскирование прерываний), H (полуперенос) и другие.
  • Счётчик команд (PC) — 16-битный, указывает на текущую выполняемую команду.
  • Указатель стека (SP) — 16-битный, автоматически инициализируется при старте.

Набор команд

Набор команд MC68HC08 включает около 100 инструкций, большинство из которых имеют длину 1–3 байта. Поддерживаются:

  • Арифметические: ADD, SUB, MUL, DIV.
  • Логические: AND, OR, XOR, NEG.
  • Передачи данных: LDA, STA, LDX, STX, MOV.
  • Управления: BRA, BNE, BEQ, JMP, JSR, RTS.
  • Работы со стеком: PSHA, PULA, PSHX, PULX.
  • Специальные: STOP, WAIT (для энергосбережения), SWI (программное прерывание).

Особенностью является наличие инструкции DIV (беззнаковое деление) и MUL (беззнаковое умножение), что редко встречалось в 8-битных микроконтроллерах того времени.

Память

  • ПЗУ (ROM/OTP/Flash) — для хранения программы. В разных модификациях объём варьируется от 1 до 64 КБ. Более поздние версии (например, MC68HC908) использовали Flash-память.
  • ОЗУ (RAM) — для данных и стека. Объём от 128 байт до 2 КБ.
  • EEPROM — в некоторых моделях для хранения данных при отключении питания.

Классификация и модификации

Семейство MC68HC08 включает несколько подсемейств, различающихся объёмом памяти, набором периферии и корпусом:

MC68HC08 (базовое)

  • MC68HC08AB32 — 32 КБ ROM, 1 КБ RAM, 8-канальный 10-битный АЦП, два таймера.
  • MC68HC08AZ32 — версия с CAN-интерфейсом (Controller Area Network) для автомобильных применений.
  • MC68HC08GP32 — 32 КБ ROM, 1 КБ RAM, два таймера, SPI, SCI.

MC68HC908 (с Flash-памятью)

Серия MC68HC908 была анонсирована в 1998 году и отличалась использованием Flash-памяти вместо однократно программируемого ПЗУ (OTP). Это упростило разработку и позволило перепрограммировать микроконтроллеры в системе.

  • MC68HC908GP32 — 32 КБ Flash, 512 байт RAM, два таймера, АЦП.
  • MC68HC908QY1 — 1,5 КБ Flash, 128 байт RAM, миниатюрный корпус (8 выводов) для простых применений.
  • MC68HC908JB8 — 8 КБ Flash, 256 байт RAM, USB-интерфейс (версия 1.1).

MC68HC705 (с OTP-ПЗУ)

Это подсемейство ориентировано на однократное программирование и низкую стоимость. Пример: MC68HC705J1A — 1,2 КБ OTP, 64 байта RAM.

Специализированные версии

  • MC68HC08AB — с интегрированным CAN-контроллером.
  • MC68HC08AZ — с поддержкой LIN (Local Interconnect Network).
  • MC68HC08JB — с USB-интерфейсом (для клавиатур, мышей и других HID-устройств).

Периферийные модули

Микроконтроллеры семейства MC68HC08 оснащаются набором встроенных периферийных устройств, который варьируется в зависимости от модели:

  • Таймеры — 16-битные таймеры с возможностью захвата/сравнения, ШИМ-генерации и подсчёта внешних событий.
  • Аналого-цифровой преобразователь (АЦП) — 8- или 10-битный, число каналов от 4 до 16.
  • Последовательные интерфейсы:
  • SCI (Serial Communications Interface) — UART для асинхронной связи.
  • SPI (Serial Peripheral Interface) — синхронный последовательный интерфейс.
  • I²C — в некоторых моделях (например, MC68HC908GP32).
  • CAN-контроллер — в автомобильных версиях (MC68HC08AZ, MC68HC08AB).
  • USB-интерфейс — в MC68HC908JB (USB 1.1 Full Speed).
  • Сторожевой таймер (WDT) — для защиты от зависаний.
  • Генератор тактовой частоты — встроенный RC-генератор или возможность работы от внешнего кварца (до 8 МГц).
  • Модуль прерываний — поддержка до 16 внешних и внутренних источников прерываний.

Применение

Благодаря низкой стоимости, малому энергопотреблению и широкому набору периферии, MC68HC08 использовались в:

Инструменты разработки

Для программирования и отладки MC68HC08 использовались:

  • Ассемблер — встроенный в среду разработки (например, MCUez от Motorola).
  • Си-компиляторы — от компаний Cosmic, IAR, Metrowerks (CodeWarrior).
  • Отладочные комплекты — серия M68HC08 (например, M68HC08GP32KIT) с внутрисхемным эмулятором.
  • Программаторы — для записи Flash и OTP-памяти (например, P&E Microcomputer Systems Cyclone Pro).

Критика и недостатки

  • Ограниченная производительность — по сравнению с 16- и 32-битными архитектурами, скорость обработки данных невысока (типичная тактовая частота 2–8 МГц).
  • Малый объём памяти — максимальные 64 КБ программной памяти и 2 КБ ОЗУ ограничивают сложность приложений.
  • Сложность отладки — отсутствие встроенного отладчика в ранних версиях требовало внешних эмуляторов.
  • Устаревшая архитектура — с появлением ARM Cortex-M и других современных ядер, MC68HC08 потерял актуальность для новых проектов.

Источники

  • Motorola. MC68HC08 Family Reference Manual. Motorola, 1995.
  • Freescale Semiconductor. MC68HC908GP32 Technical Data. Freescale, 2000.
  • NXP Semiconductors. 8-bit Microcontrollers: MC68HC08 Product Summary. NXP, 2020.
  • Данные из каталогов электронных компонентов (Digi-Key, Mouser) по состоянию на 2023 год.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →