Научная статья на тему 'H8s/2239 – недорогое решение недорогой задачи: микроконтроллер компании Renesas'

H8s/2239 – недорогое решение недорогой задачи: микроконтроллер компании Renesas Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
230
48
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лепихин Игорь

Микроконтроллер H8S/2239 компании Renesas предназначен для построения недорогих систем реального времени и имеет для этого все необходимое, начиная от 16-разрядного ядра с достаточно высокой производительностью и заканчивая большим набором периферийных устройств.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «H8s/2239 – недорогое решение недорогой задачи: микроконтроллер компании Renesas»

Компоненты и технологии, № 9'2003 Компоненты

H8S/2239 - недорогое решение

недорогой задачи

Микроконтроллер Н8Б/2239 компании Renesаs предназначен для построения недорогих систем реального времени и имеет для этого все необходимое, начиная от 16-разрядного ядра с достаточно высокой производительностью и заканчивая большим набором периферийных устройств.

Игорь Лепихин

[email protected]

В предыдущих статьях мы рассказывали о микроконтроллерах семейств H8/300H Tiny и SuperH. Эти семейства представляют собой «фундамент» и «крышу» серии высокопроизводительных микроконтроллеров от фирмы Renesas. Так, H8/300H Tiny начинает 16-разрядную сеть, а SuperH — завершает 32-разрядную. Если семейство Tiny в основном применяется в простеньких системах управления двигателем, где не требуется большого количества ШИМ-таймеров или мощного высокопроизводительного АЛУ, то SuperH ориентировано на системы реального времени, где требуются высокая скорость вычислений и обработки информации. А что же делать, если требуется построить недорогую систему реального времени с достаточно хорошей производительностью, и в то же время необходимо иметь возможность подключения большого количества устройств без использования внешних портов и интерфейсов? Выход есть. У Renesas в его огромном арсенале микроконтроллеров есть семейство H8S, которое удовлетворяет всем вышеперечисленным требованиям. Об этом семействе, а именно о его представителе H8S/2239, и пойдет речь в данной статье.

Характеристика ядра H8S

Ядро H8S является логическим продолжением и усовершенствованием серии H8/300H, которое говорит само за себя и не нуждается в особой рекламе. Собственно ядро H8/300H выполнено по передовой технологии 0,18 мкм (высшие его части), и, соответственно, микроконтроллеры семейства H8S также производятся по этой технологии. Формально H8S является 16-разрядным ядром, хотя, судя по его структуре, оно, конечно же, 32-разрядное.

В отличие от таких ядер, как 8051 или х86, которые имеют аккумуляторную структуру, ядро H8S более продвинуто и имеет модульный принцип построения. Что же это значит? Для выполнения львиной доли арифметических или логических операций в ядрах аккумуляторной структуры требуется сначала загрузить требуемое значение в аккумулятор, затем произвести над этим числом желаемые действия, и только потом уже сохранить

в каком-либо регистре общего назначения полученный результат. В модульном ядре, каким является ядро H8S, все иначе. Практически все регистры (за исключением специализированных) имеют равные права. Таким образом, операция сдвига значения регистра R0 в ядре 8051 запишется в три операции:

Моу Л,И0 ; копирование значения регистра R0 в аккумулятор ИЬ Л ; сдвиг влево на один разряд

Моу И0,Л ; запись обновленного значения обратно в регистр.

При этом каждая команда выполняется за 12 тактов; получаем 36 тактов. В то время как та же операция на ядре H8S выполняется всего за такт.

SHAL ER0; сдвиг влево на один разряд

Удивительно, но эта операция действительно выполняется всего за такт. Этот факт делает ядро Ш8 еще более привлекательным. Как известно, по производительности нет равных RISC-ядрам. Суть их состоит в том, что на кристалле выполнен очень широкий дешифратор команд, благодаря которому, собственно, команда дешифрируется за один такт и достигается максимальное быстродействие. Это обычно сопровождается уменьшением количества самих команд, что может вызвать увеличение объема кода. При проектировании ядра H8S пошли по похожему пути, но несколько иначе. Дешифратор команд здесь сложный и организован таким образом, что команды, работающие с фиксированными значениями (например, регистры) дешифриру-

Компоненты и технологии, № 9'2003

General Registers (Rn) Extended Registers (En)

15 0 7 0 7 0

ER0 E0 R0H R0L

ER1 E1 R1H R1L

ER2 E2 R2H R2L

ER3 E3 R3H R3L

ER4 E4 R4H R4L

ER5 E5 R5H R5L

ER6 E6 R6H R6L

ER7 (SP) E7 R7H R7L

Control Registers (CR) 23

PC

EXR

CCR

7 6 5 4 3 2 1 I °

ITI -1 -1 - 12 11 10

7 6 5 4 3 2 1 I °

I I Ul H U N Z | V | c I

Legend:

SP

PC

EXR

T

12 to 10 CCR

I

Ul

: Stack pointer : Program counter : Extended control register : Trace bit : interrupt mask bits : Condition-code register : Interrupt mask bits User bit or interrupt mask bit*

H

U

N

Z

V

с

: Half-carry flag : User bit : Negative flag : Zero flag : Overflow flag : Carry flag

Рис. 1

Note: "The interrupt mask bit is not available in this LSI.

ются за один такт. Что же касается абсолютных значений, то здесь все как в остальных продвинутых ядрах: от 2 до 4 тактов за счет применения конвейеров команд.

Ядро содержит шестнадцать 16-разрядных регистров общего назначения, которые для совместимости с предыдущими моделями (Н8/300 и Н8/300Н) могут быть использованы как 8-разрядные регистры общего назначения, а могут быть и сгруппированы парами, образующими восемь 32-разрядных регистров общего назначения. Регистры микропроцессорного ядра показаны на рис 1. Для манипулирования данными ядро включает 65 инструкций, которые делятся на 8/16/32-разрядные арифметические и логические инструкции, инструкции умножения и деления, а также мощные инструкции для манипуляции с битами. Процессорное ядро поддерживает восемь различных режимов адресации; ширина внешних шин (как адреса, так и данных) составляет 24 разряда, что позволяет адресовать до 16 Мбайт внешней памяти. Наконец, о быстродействии: небольшой пример приведен выше, теперь немного общих слов и цифр: команда, не требующая передачи непосредственного значения, выполняется за такт. Если же надо передать это значение или обратиться к памяти, то это займет два такта (чем не ИКС-производительность?). Операции умножения и деления выполняются, конечно же, дольше, в этом и есть разница с ИКС-ядром. 8-разрядные операции умножения и деления выполняются за 12 тактов, а 16-разрядные за 20 тактов. Следует отметить, что в ядрах серии Н88/26хх команды умножения и деления выполняются в 3-4 раза быстрее.

Микропроцессорное ядро может работать в двух режимах: нормальном и расширенном. В нормальном режиме микропроцессор работает с линейной структурой памяти до 64 кбайт. При этом используются стар--------------------www.finestreet.ru-

шие половинки 32-разрядных регистров общего назначения, таблица исключений располагается с адреса 0Н, словом, здесь ядро Н88 функционирует как быстродействующее ядро Н8/300. В расширенном режиме доступны все «преимущества» этого микроконтроллера: использование 32-разрядных регистров и операций, расширенное адресное пространство, более гибкое формирование таблицы исключений. Более подробную информацию по структуре микропроцессорного ядра Н88 можно найти в техническом описании.

Особенности микроконтроллера Н8Б/2239

Когда речь заходит о выборе микроконтроллера, то первый вопрос звучит так: чем же данный контроллер отличается от ос-

тальных? А отличие одного микроконтроллера от другого заключается, как правило, в разнообразии периферийных устройств и в объемах памяти. Опции памяти составляют 384 кбайт постоянной и 32 кбайт оперативной памяти, причем есть выбор между Flash-версией и маской, что при больших объемах, в которых обычно эти микроконтроллеры потребляются, выходит на порядок дешевле.

Семейство H8S отличается от других высокой интеграцией различных периферийных устройств, что собственно, и иллюстрирует рис. 2. Начнем с контроллера прерываний, так как без этого устройства говорить о чем-либо еще просто не имеет смысла.

Контроллер прерываний обеспечивает обработку девяти внешних источников прерывания, среди которых одно немаскируемое прерывание. Процедуры обработки прерываний, а точнее сказать, адреса, по которым они находятся, собраны в один вектор прерываний, расположенный, как водится, в начале адресного пространства. Маски прерываний (кроме немаскируемого прерывания) также собраны в один вектор, кроме того, существует специальный регистр IPR, позволяющий установить приоритет каждого прерывания (кроме немаскируемого, которое имеет наивысший приоритет). Управляет контроллер прерываний также и контроллером передачи данных (DTC — data transfer controller), и контроллером прямого доступа к памяти (DMAC — direct memory access controller). Остальные периферийные устройства, встроенные в микроконтроллер H8S/2239, тоже имеют свои биты в регистрах контроллера прерываний, позволяя маскировать результаты работы того или иного устройства. Вообще, контроллер прерываний микроконтроллера 2239 очень гибко конфигурируется. Он имеет различные режимы работы, может переключаться между ними в процессе выполнения программы, обеспечивая полную свободу для пользователя.

H8S/2239 group Overview

Specifications H8S/2239 Block Diagram

H8S/2000CPU : Low-voltage/

High-speed operation

16 MHz/2,7 to 3,6 V (Flash, Mask)

6,25 MHz/2,2 to 3,6 V (Mask)

Built-in large size memory 384 kB/32 kB

High-speed UART mode(SCI)

High-speed UART mode

720 bps/460 kbps/115 kbps at 16 MHz I

Powerful data transmission Built-in DMAC/DTC

Packages

QFP-100:

FP-100B (14x14 mm, 0,5 mm pitch) TQFP-100 : I

TFP-100B (14x14 mm, 0,5 mm pitch) TFP-100G (12x12 mm, 0,4 mm pitch)

H8S/2000CPU

Bus Controller

ROM

RAM

Interrupt Controller SCI x 4ch

DMAC High-speed UART x 1ch

DTC l2C X 2ch

PC Break Controller TPU (16bit timer x 6ch)

A/D x 8ch TMR (8bit timer x 4ch)

D/A x 2ch wnT WDT WDT {for clock)

Oscillator (system clock) Oscillator (sub clock)

16 MHz 32 kHz

I I Different functions from H8S/2238

Рис. 2

Компоненты и технологии, № 9'2003

PBC (program break controller) — это некоторое подобие JTAG. Он обеспечивает останов процессора в заданном месте, что позволяет производить отладку программы и мониторинг состояния процессора. Этот контроллер может управлять остановом по различным критериям (запись, чтение данных), причем либо на шину контроллера, либо в режиме передачи данных по периферийным интерфейсам.

Встроенный контроллер шины (bus controller) управляет внешней адресацией, а также контролирует состояние внутренних шин процессора, связанных с контроллером прямого доступа к памяти (DMAC) и контроллером передачи данных (DTC). Что касается внешней шины, то здесь с помощью контроллера шины можно достаточно гибко управлять подключенными внешними устройствами. Например, контроллером шины управляются восемь внешних сигналов CS (chip select), для которых задается свое адресное пространство (16 Мбайт всего, поэтому по 2 Мбайта на один chip select). К шине адреса подключается параллельно до 8 устройств, а далее, при желании обратиться к какому-либо из них, достаточно выполнить обращение командой по адресу, выделенному под заданное устройство. Нужный сигнал CS (chip select) сработает сам, выбрав, таким образом, желаемое устройство.

Контроллер передачи данных (DTC — data transfer controller) встроен в микроконтроллер H8S/2239 для управления механизмом передачи данных. Он позволяет вести прием и передачу одновременно по нескольким каналам, причем количество этих каналов неограниченно. Есть возможность организовывать передачу в нормальном режиме, с повторением, а также блоками. Единицами передачи могут быть как байты, так и слова, причем можно специфицировать прямой 24-разрядный адрес. Контроллер может быть запущен по прерыванию от внешнего устройства, от какого-либо внутреннего сегмента микроконтроллера, либо программным путем, либо... можно продолжать еще долго говорить о возможностях этого контроллера передачи данных. Достаточно только сказать, что есть возможность организовывать цепные пересылки, где один пакет порождает другой и т. д. Получается такой маленький TCP/IP.

SCI (serial communication interface) — последовательный интерфейс передачи данных, который в микроконтроллере H8S/2239 имеет 5 каналов и может работать в асинхронном режиме (UART) и синхронном режиме, а также в режиме интерфейса смарт-карты. Асинхронный и синхронный режимы практически не отличаются от встроенных в другие микроконтроллеры, за исключением того, что один из каналов UART может быть сконфигурирован как «быстрый», что позволяет значительно повысить скорость передачи данных. Существует возможность выбора режимов передачи, установки стартового и стопового битов, коррекция ошибок передачи битом четности. Наибольший интерес представляет режим интерфейса

смарт-карты. При работе со смарт-продукта-ми важно обеспечить надежность передачи данных и незамедлительно отреагировать на сообщение об ошибке. Функции обработки ошибок обычно возлагаются на центральный процессор смарт-продукта, а вот обнаружение ошибок передачи и сигнализирование может выполнить микроконтроллер H8S/2239. При приеме в режиме интерфейса смарт-карты микроконтроллер автоматически генерирует сигнал ошибки, а также может поймать ошибку внешнего устройства в режиме передачи и заново отослать последовательность. Обнаружение ошибок производится на основе проверки бита четности.

Естественно, микроконтроллер H8S/2239 включает и стандартный набор периферии. Это 6-канальный 16-разрядный таймер, 4-канальный 8-разрядный таймер, два сторожевых таймера (один на основе 8-разрядного счетчика, другой на основе 16-разрядного), последовательный синхронный интерфейс IIC, имеющий 2 канала, дополнительный генератор на 32768 кГц — для организации часов реального времени.

Помимо цифровой части, микроконтроллер H8S/2239 также оснащен и аналоговой частью для измерения, обработки и вывода аналоговой информации. Аналого-цифровой преобразователь имеет 8 входных каналов, разрядность 10 бит и скорость преобразования 9,6 мкс на канал. Как обычно, встроенный в микроконтроллер АЦП имеет мультиплексную структуру, то есть каналы поочередно коммутируются и с них по очереди записывается в регистр преобразованное значение. Есть возможность единичного запуска преобразования (считывается один канал, затем останов), либо режим сканирования (считываются до 4 каналов последовательно). Принцип преобразования последовательный, то есть при помощи сравнения с напряжением, которое выдает внутренний ЦАП. Другой составляющей частью аналогового блока является двухканальный цифроаналоговый преобразователь, имеющий разрядность 8 бит и работающий в диапазоне напряжения от нуля до аналоговой единицы.

На этом, наверное, описание периферии кристалла можно бы и закончить, если только не извечный вопрос: куда это можно применить? А применений ему можно найти много. Семейство микроконтроллеров H8S в основном позиционируется как семейство микроконтроллеров универсального применения. Возьмем, например, охранную систему. Есть и аналоговые входы для подключения датчиков, и ЦАП для вывода обработанной информации, интерфейсы для организации master-slave, сети, даже часы реального времени можно организовать для синхронизации. Или, например, телекоммуникации: в качестве коммутатора простых телефонных линий он тоже вполне сгодится. Системы контроля реального времени, такие, как контроль параметров устройств или автомобильная система впрыска топлива также будет весьма и весьма благосклонна к этому микроконтроллеру за счет наличия мощного ядра для хранения и обработки данных

по сложным алгоритмам и наличия большого количества линий ввода-вывода для контроля периферийных устройств. В предыдущей статье, посвященной микропроцессору SH7709, был приведен пример коррекции голоса. Так вот с коррекцией 8-разрядного голоса справится и H8S/2239. А это можно применить в синтезаторах речи, которые часто устанавливаются на вокзалах и в аэропортах, или в цифровых фильтрах речи в системах, работающих в сложной акустической обстановке. Применений можно найти еще массу, как говорится, было бы желание.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Средства разработки для процессора H8S/2239

Что же нужно для нормальной полноценной и комфортной работы с любым микроконтроллером? Сначала хочется увидеть, что этот микроконтроллер, собственно, может. Для этого требуется оценочный набор. Затем захочется что-нибудь изменить самому в уже готовой написанной программе. Для этого необходимо иметь компилятор с языка высокого уровня, например C/C++, транслятор ассемблера, причем желательно, чтобы все это было бы вместе и в удобной красивой оболочке. После этого пора уже делать свою собственную систему «с нуля». Тут требуется плата разработчика. Ну и наконец, когда все сделано и написано, приходит время отладчика реального времени. Микроконтроллер H8S/2239 обеспечен всеми четырьмя позициями.

Оценочный набор для микроконтроллера H8S/2239 вообще бесплатен, и его можно взять в аренду в фирме «ГАММА Санкт-Петербург», официального дистрибьютора Renesas. Оценочная плата имеет минимум возможностей, но программировать контроллер позволяет, что уже несколько расширяет ее возможности. Все оценочные наборы называются EDKxxxx, а в данном случае это будет EDK2239. EDK2239 позволяет пользователю оценить возможности микроконтроллера, поиграть с периферией, попро-граммировать Flash и т. д. Строго говоря, для разработки больше ничего и не надо. ПО поставляется вместе с оценочным набором, периферийные слоты есть (подключай что угодно, главное, по току не перебери), память прошивать можно (пиши свое ПО), связь по последовательному интерфейсу есть (делай отладчик по прерыванию UART) — вот и все. Если есть идея недорогого проекта, то это выход. Если же проект очень серьезный и сложный, то. продолжим описание средств разработки.

Компиляторы и трансляторы обычно используются «родные», а именно написанные самими программистами из Renesas. Это известный HEW (High-performance Embedded Workshop) различных версий. HEW имеет привлекательный интерфейс от Visual C++ с многооконным режимом, работой с проектами, генерацией необходимых выходных файлов, симулятором для программной отладки кода, автоматической генерацией кода запуска для любых процессоров и т. д.

Компоненты и технологии, № 9'2003

Этот программный продукт по праву признан лучшим для программирования контроллеров от Renesas, несмотря на обилие конкурентов. HEW устанавливается на любую Windows-платформу. Версии HEW до второй не могли самостоятельно производить отладку, а это необходимо. Приходилось использовать отдельную программу под названием HEW Debugger, что доставляло определенные трудности. Теперь, начиная со второй версии HEW, эти программы объединены вместе и отладка реального времени может производиться прямо «на лету». Существуют также и другие компиляторы C++, например IAR — только компилятор C, или GNU — UNIX-подобный бесплатный компилятор C/C++ без оболочки. Следует отметить, что сейчас GNU входят в состав HEW. Очень удобна и красива программа для программирования Flash-контроллеров от Renesas под названием FDT. Функции программирования и тестирования памяти там выполнены на 100 процентов, но отсутствует разработка и отладка кода. Существуют также генераторы драйверов под контроллеры Renesas, в частности под H8S/2239. Наиболее распространены MakeApp от IAR и Codelines. Так что если есть необходимость писать драйвера, то здесь тоже все поставлено на «высший» уровень.

Плата разработчика называется DB2239. Она позволяет произвести полную разработку системы «с нуля» и при этом фактически является расширением демонстрационной платы. В эту плату, в отличие от демонстрационной, микроконтроллер не впаян, а вместо этого оставлено для него место. Это позволяет как разрабатывать систему на реальном кристалле, так и использовать внутрисхемные эмуляторы.

Внутрисхемным эмуляторам обычно уделяется особое внимание не только из-за того, что эта «штука» стоит немалых денег, но и потому, что без нее построить полноценную отлаженную систему практически невозможно. Эмуляторы по стоимости различаются следующим образом: чем универсальнее эмулятор, тем дороже он стоит. Эмулятор E6000 позволяет производить отладку любого микроконтроллера или микропроцессора от Renesas. При этом доступны все функции: просмотр памяти, точки останова, изменение значений в ходе выполнения программы и т. д. Также E6000 можно использовать вместе с реальным кристаллом, при этом есть возможность распределения функций и памяти между ними. Есть возможность использовать свой тактовый генератор или генератор целевой системы (в случае совместной работы), также задается последовательность событий и определенная реакция на них. Другим, более дешевым эмулятором является E10A. Он позволяет производить эмуляцию устройства в реальном времени, расставлять точки останова, производить трассировку, а также читать и программировать Flash-память.

Фирма Lauterbach также производит программные и аппаратные средства разработки и отладки для микроконтроллеров и микро-

H8SX Series Product Development

*2

*2 Memory Development

H8SX/16XXF------------► H8SX/16XX

Large-capacity internal

*1

■V.J,"- ■„/ -.Щя

H8SX/1650

-capacity mm іаі Flash version

*2

^-performance ■function versi

--------►

H8SX/16XX

Encham

V

anced Function

Operating frequency 35MHz>> Low price Low power consumption version

Operating frequency: 50MHz Low-power consumption version , *2

ASSP Development

PC peripheral devices. (Internal USB2.0 version) digital consumer appliance. Automotive field

ROM - less

F-ZTAT

ASSP

*1: Under Development *2: Under Planning

Рис. З

процессоров от фирмы Renesas. В большинстве своем по функциям они напоминают HEW и E6000, поэтому описывать их подробно не имеет смысла, а вопрос выбора одних или других средств остается, естественно, за клиентом.

Развитие H8S

Несомненно, нужно остановиться на перспективах семейства и линиях его развития. Семейство H8S, будучи самым прогрессивным семейством из 16-разрядных микроконтроллеров, продолжает развиваться и пополняться новыми членами. Наибольшее внимание уделяется вопросам интеграции кристалла, энергопотреблению, производительности, а также стоимости, что немаловажно для российского производителя. Серия 21xx имеет наиболее низкие цены. Это делается путем удаления «лишних» для некоторых задач периферийных устройств. Согласитесь, не везде требуется 32 ШИМ-таймера или 512 кбайт Flash-памяти. Серия 22xx, к которой как раз относится описываемый H8S/2239, является наиболее компромиссной по интеграции и энергопотреблению. Серия 23xx позиционируется как «общего назначения», то есть оптимизирована по всем возможным критериям. Наконец, серия 26xx — наиболее вы-

сокопроизводительная. Здесь настолько усовершенствован конвейер команд, что быстродействие вплотную приближается в ШвС-системам. Представьте только: 16-разрядное умножение за 4 такта! Семейство Н88Х показано на рис. 3.

Нельзя не сказать о 32-разрядной версии семейства Н8в, семействе Н88Х, которое компания Иепе8а8 анонсировала в начале 2003 года. Микроконтроллеры этой серии представляют собой усовершенствованный вариант Н8в/26хх. Более того, в Н88Х усовершенствован конвейер команд, расширено внешнее адресное пространство, внутренние шины также стали 32-разрядными, да и система команд стала полноценно выполнять 32-разрядные операции за пару тактов. Это все при частотах до 80 (в перспективе до 100) мегагерц, при еще более высокой, чем у Н8в, интеграции периферии и при цене, сопоставимой с 16-разрядными моделями!

Недавно компания Иепе8а8 анонсировала выход в свет в качестве образцов микроконтроллеры Н88Х/1650. Это опытная модель, но ее успех и технологии будут закладывать основу для развития этого перспективного семейства.

Полную информацию по продуктам Иепевав можно найти на сайте компании www.renesas.com/eng.

i Надоели баннеры? Вы всегда можете отключить рекламу.