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 использовались в:
- Автомобильная электроника: блоки управления двигателем (ECU), системы ABS, подушки безопасности (SRS), климат-контроль, иммобилайзеры.
- Бытовая техника: стиральные машины, микроволновые печи, кондиционеры, холодильники.
- Промышленность: программируемые логические контроллеры (ПЛК), датчики, исполнительные механизмы.
- Медицина: глюкометры, тонометры, инфузионные насосы.
- Компьютерная периферия: клавиатуры, мыши, джойстики (особенно MC68HC908JB с USB).
- Телекоммуникации: модемы, таксофоны, телефонные аппараты.
Инструменты разработки
Для программирования и отладки 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 →