16-бит микроконтроллеры фирмы HITACHI серии H8S. Часть 1.

Д.Чоловсий

16-бит микроконтроллеры фирмы HITACHI серии H8S. Часть 1

Микроконтроллеры HITACHI пользуются устойчивым спросом на европейском рынке. По итогам 1999 года компания Hitachi занимала там второе место по объ╦му продаж 16-бит микроконтроллеров, третье место по поставке 4-бит, шестое - по поставке 8-бит и второе место в мире по поставке 32-бит RISC-микроконтроллеров.

В результате многолетней работы компании Hitachi и е╦ стремления удовлетворить требования заказчиков появились 16-разрядные микроконтроллеры серии H8/300H. H8S - ответ Hitachi на требования большей производительности и снижения энергопотребления при лучшем соотношении "цена/быстродействие". Микроконтроллеры стали снабжать памятью большего объ╦ма и усовершенствованной периферией, что позволило создать однокристальные системы там, где раньше требовалось несколько элементов. Включение такой структуры в однокристальную систему способно значительно снизить электромагнитные излучения, что чрезвычайно важно для современной электронной промышленности.

Семейство микроконтроллеров H8S является частью программно совместимого ряда изделий Н8 (рис. 1). Hitachi предлагает микроконтроллеры Н8S в различных типах корпусов и с разными температурными режимами. H8S включает в себя более 25 вариантов высокопроизводительных микроконтроллеров (рис. 2) с различной периферией и опциями памяти (например, H8S/2238F с 256 Кб флэш-памятью и 16К RAM). Это делает семейство Н8S промышленным стандартом в телекоммуникационном оборудовании и весьма распростран╦нным в промышленности (например, в управлении двигателями, торговых автоматах и системах безопасности). Представители семейства используются в бытовой технике, например, в видеокамерах, фотоаппаратах и новейших моделях автомобильных радиопри╦мников. Совсем недавно H8S и H8/300H стали успешно использоваться в исполнении со встроенной CAN-шиной и в быстро растущей области применения смарт-карт, так как многие производные включают один или несколько последовательных интерфейсов, соответствующих IS07816.

Рисунок 1. Развитие контроллеров серии H8

Рисунок 2. Семейство H8S

CPU

Вся серия Н8 обладает сходной архитектурой CPU. Архитектура, основанная на регистрах общего назначения, позволяет эффективно выполнять программы, написанные на С, и обеспечивает плотный код. Высокая плотность кода важна для сокращения необходимого объ╦ма памяти, что, в свою очередь, приводит к снижению стоимости системы и помогает исключить необходимость во внешней памяти. Как показано на рис. 3, 8-бит ряд Н8 имеет регистры с 16-бит разрядностью, а 16-бит ряд имеет регистры с 32-бит разрядностью, все они могут использоваться частично (например, побайтно). Н8S имеет дополнительный расширенный регистр кода условия (EXR) для улучшенного управления прерываниями, а Н8S/26XX - блок умножения с накоплением (как в DSP).

Рисунок 3. Структура регистров

Микроконтроллеры семейства Н8S выполняют основные команды за один такт. Каждый регистр можно использовать для операции "указателя" или операции с данными. Архитектура позволяет использование любого из режимов адресации данных с любым регистром.

Поскольку каждый регистр может использоваться как аккумулятор, индексный регистр или указатель адреса, вычисление адресов, выполняемое компилятором, может производиться чрезвычайно эффективно. Регистр ER7 используется как указатель стека, поэтому время доступа к данным стека чрезвычайно мало.

В дополнение к регистрам общего назначения, предусмотрены два управляющих регистра: регистр кода условия (CCR) и сч╦тчик команд (РС). 8-бит CCR-регистр содержит все флаги CPU: переполнения, нуля, переноса, а также флаги прерываний.

Набор команд

Н8/300Н имеет набор команд, соответствующий общим требованиям программирования на языках высокого уровня (HLL). Он содержит 62 команды (табл. 1), в которых особое внимание уделяется арифметическим командам, операциям с адресами и поразрядной обработке данных. Более половины всех команд имеют длину 2 байт, что делает код очень компактным. Н8S обладает 69-командным набором, новые команды выделены жирным шрифтом.

Таблица 1. Система команд для семейств H8/300H и H8S

Function Instruction Data transfer MOV, PUSH, POP, MOVTPE, MOVFPE, LDM, STM Arithmetic operations ADD, SUB, ADDX, SUBX, INC, DEC, ADDS, SUBS, DAA, DAS, MULXU, DIVXU, MULXS, DIVXS, CMP, NEG, EXTS, EXTU, TAS, MAC, LDMAC, STMAC, CLRMAC Logic operations AND, OR, XOR, NOT Shift operations SHAL, SHAR, SHLL, SHLR, ROTL, ROTR, ROTXL, ROTXR Bit manipulation BSET, BCLR, BNOT, BTST, BAND, BIAND, BOR, BIOR, BXOR, BIXOR, BLD, BILD, BST, BIST Branch Bcc, JMP, BSR, JSR, RTS System control TRAPA, RTE, SLEEP, LDC, STC, ANDC, ORC, XORC, NOP

По сравнению с CPU Н8/300, большинство команд переноса данных, логических, сдвига и арифметических операций усовершенствованы для работы с 16- и 32-бит данными. Новые команды, добавленные в Н8/300Н, включают умножение чисел со знаком, знаковое расширение, 16-бит команды ветвления и команды прерывания программы.

В H8S набор команд ещ╦ более усовершенствован. Добавлены команды STM (store multiple) и LDM (load multiple). Они позволяют загрузить содержимое комбинированных регистров в стек, значительно сокращая время, по сравнению с командами PUSH и POP. Например, перенос содержимого 4-х регистров в стек занимает 40 тактов в Н8/300Н и только 11 - в H8S. Также улучшены некоторые битовые операции (для включения 16/32-бит абсолютной адресации) и операции сдвига для поддержки 2-бит сдвига. В H8S/26XX добавлены также команды для поддержки умножения c накоплением.

Арифметические операции

Для выполнения комплексных алгоритмов, таких как цифровая фильтрация, контроллеры H8S и Н8/300Н снабжены мощными арифметическими командами, включающими сложение и вычитание 32-бит данных, умножение 16x16-бит данных и деление 32/16-бит данных. Операции умножения и деления возможны со знаками и без, что исключает необходимость обращения к специальным подпрограммам - библиотекам. В табл. 2 приведены сведения о скорости выполнения различных арифметических операций с тактовой частотой 16 (Н8/300Н) и 20 МГц (H8S).

Таблица 2. Сравнение скорости выполнения команд для семейств H8/300H и H8S

Operation H8S H8/300H Add 32 bit operands 50ns 125ns AND 32 bit operands 50ns 125ns multiply/divide 16 bit operands (32 bit result, signed) 200ns/650ns 875ns Побитовые операции

В микроконтроллерных системах часто бывает необходимо обрабатывать данные побитно. Для решения таких задач H8S и Н8/300Н имеют 14 команд для побитовых операций, позволяющие программисту легко управлять битовыми данными.

Возможно также выполнение операций булевой алгебры над битами, используя флаг переноса регистра CCR как битовый аккумулятор. В микроконтроллерных системах часто бывает необходимо выполнить переход к той или иной части программы, в зависимости от значения двух битовых флагов, расположенных в RAM или портах ввода/вывода. Используя логические операции, предусмотренные в H8S и Н8/300Н, первый бит может быть загружен в разряд флага переноса. Затем можно выполнять побитовые логические операции, используя второй бит. Дальнейшая последовательность будет сопровождаться переходом, зависящим от значения флага переноса.

Особенность побитовых операций в H8S и Н8/300Н - это возможность косвенного битового выбора с использованием значения из регистра общего назначения в качестве указателя бита. Этот механизм изображ╦н на рис. 4.

Рисунок 4. Механизм переходов

Прерывание программы

В CPU H8S и Н8/300Н введена команда TRAPA. Она включает прерывание программы, переход к обслуживающей программе с использованием одного из четыр╦х векторов исключительных условий (TRAPA 0 - 3). Эта операция может использоваться для включения быстрых, эффективных вызовов часто используемых подпрограмм, таких как, например, планировщик. Команда TRAPA может также использоваться для вызова программы обработки ошибок.

Адресация

Для поддержки систем с большой памятью линейное адресное пространство CPU H8S позволяет осуществлять прямой доступ по любому адресу во вс╦м 16-Мбайт адресном пространстве, используя 24-бит указатели адреса. Термин "Линейное адресное пространство" означает, что нет необходимости в установке указателей страницы и нет ограничений размера кодовых модулей или массивов и структур данных.

Режимы адресации

Другой путь, при помощи которого архитектура CPU может поддерживать эффективность компилятора, состоит в обеспечении полного набора мощных и гибких режимов адресации. Для обеспечения максимальной эффективности компилятора CPU H8S и Н8/300Н обеспечивает восемь режимов адресации (табл. 3). Каждая команда может использовать подмножество возможных режимов. Поддерживая такие типы данных, как массивы и стеки, CPU обладает косвенной адресацией либо с последующим приращением, либо с предварительным уменьшением адреса. Эти режимы поддерживают данные в виде байта, слова или длинного слова (±1,2 и 4).

Таблица 3. Способы адресации

Register direct R n Register indirect @ E R n Register indirect @ (d: 16, E R n) with displacement @ (d: 24, E R n)






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.