Восьмиразрядные микроконтроллеры компании freescale semiconductor в корпусах с малым числом выводов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Восьмиразрядные микроконтроллеры компании freescale semiconductor в корпусах с малым числом выводов



 

Анализируя пути совершенствова­ния элементной базы микроконтрол­леров, можно заметить, что развитие их архитектуры подобно спирали:

  • на первом витке производитель­ность процессорного ядра не толь­ко достаточна, но даже избыточ­на для используемых алгоритмов управления, а структура перифе­рийных устройств далека от совер­шенной;
  • на следующем витке производи­тельность процессорного ядра оказывается минимально доста­точной, а совершенствование структуры периферийных моду­лей позволяет разгрузить процес­сорное ядро от несвойственных ему операций.

Когда все возможности по оптими­зации структуры периферии исчер­паны, начинается новый виток раз­вития, отмеченный скачкообразным увеличением производительности процессорного ядра.

Ещё недавно различные произво­дители совершенствовали 8-разряд­ные микроконтроллеры (МК), пред­лагая МК верхней гаммы с объёмами памяти 40...60 Кб и множеством пе­риферийных устройств. Достаточно быстро для требовательных прило­жений были предложены 16-разряд­ные МК, в том числе с сигнальным процессорным ядром. Можно пред­положить, что теперь 8-разрядным МК уготована судьба цифровых ИС малой и средней степени интеграции, которые производятся и приме­няются, но функциональное совер­шенствование которых замедлилось. Однако производители 8-разрядных МК опровергли пессимистичный прогноз, предложив два актуальных направления развития 8-разрядной элементной базы.

Первое направление - оптимиза­ция 8-разрядных МК нижней гаммы, которые выполняются в корпусах с малым числом выводов (6 - 16). Вто­рое направление - интеграция МК в один корпус с силовыми ключами, трансиверами, аналоговыми схема­ми, входными и выходными форми­рователями с нестандартными уров­нями сигналов. Компания Freescale Semiconductor активно совершен­ствует свои продукты в каждом из этих направлений. В данном реферате подробно остановимся на МК с малым числом выводов.

 

МОДЕЛЬНЫЙ РЯД МК

 

В 2006 г. компания Freescale Semiconductor практически пол­ностью обновила свои продукты в сегменте маловыводных 8-разряд­ных МК. В настоящее время она пред­лагает разработчикам 16 моделей в корпусах с шестью, восемью или 16 выводами (табл. 1). Казалось бы, имея столь малое число выводов корпуса, эти МК должны быть очень похожи друг на друга, поскольку на малое число выводов корпуса трудно «спроецировать» большое количество периферийных модулей. Однако, обладая одним и тем же корпусом, предлагаемые модели отличаются достаточно сильно.

Первым отличием являются про­цессорные ядра. При формальной принадлежности к одному семей­ству, а именно НС08, фактически в составе моделей МК реализованы три процессорных ядра. Модели QT/QY/QB/QL обладают самым «ста­рым» ядром НС08, модели QG и QD - более производительной версией этого ядра HCS08, которая разраба­тывалась для верхней гаммы 8-раз­рядных МК. Модели КА оснащены последней версией ядра RS08, кото­рая существенно упрощена по отно­шению к своему родоначальнику - процессорному ядру НС08.

Второе отличие - функциональная насыщенность периферийны­ми модулями. Микроконтроллеры серии КА (с предельно упрощён-­
ным процессорным ядром) имеют в своем составе упрощённый таймер, аналоговый компаратор и несколько линий портов с функцией внешнего прерывания KBI. Такое решение позволило уменьшить
площадь полупроводникового кристалла МК более чем в три раза по сравнению с другими МК, пере­численными в таблице 1. Поэтому модели MC9RS08KA1/ КА2 размеща­ются в сверхминиатюрных корпу­сах 3x3 мм и имеют предельно низ­кую стоимость. Напротив, МК серии QG и QD, обладающие самым произ­водительным процессорным ядром HCS08, имеют в своём составе пол­нофункциональный модуль процес­сора событий, три контроллера по­следовательных интерфейсов и 10-разрядный АЦП. Входы и выходы этих периферийных модулей мно­гократно мультиплексированы на ножках корпуса МК. Поэтому в каж­дом конкретном приложении разра­ботчик может воспользоваться толь­ко частью ресурсов этих МК, но та­ким образом предоставляется воз­можность использования одной мо­дели МК в разных приложениях.

Третье отличие - возможнос­ти модулей таймеров. Модели MC9RS08KA1/KA2 оснащены упро­щённым 8-разрядным модулем тай­мера, который не имеет функций входного захвата и выходного срав­нения. Все остальные модели МК об­ладают 16-разрядным таймерным модулем с функциями входного за­хвата или выходного сравнения или многоканальным ШИМ.

Перечислив основные отличия, от­метим общие черты рассматривае­мых микроконтроллеров. Все они имеют внутренний модуль тактиро­вания с точностью поддержания частоты ±2% от указанного в техничес­ком описании значения. Все модели реализуют режим программирова­ния и отладки в системе благодаря наличию в их составе модуля внут­рисхемной отладки. Все МК оснаще­ны несколькими режимами низкого энергопотребления.

 

ТРИ ПРОЦЕССОРНЫХ ЯДРА HC08

При современном программиро­вании приложений на языке Си, изучать архитектурные особенности процессорного ядра, как правило, не обязательно. Поэтому дана сравнительная характе­ристика трёх модификаций процес­сорного ядра НС08. На её основе можно сделать осознанный выбор модели МК для конкретного приложения.

Все три рассматриваемых процес­сорных ядра: НС08, HCS08 и RS08, -выполнены на основе CISC-архитек­туры. Программно-логическая мо­дель центрального процессора НС08 (см. рис. 298) содержит пять ре­гистров, которые не являются частью объединённого адресного пространства, и, следовательно, для обращения к ним должны быть ис­пользованы специальные команды. Это 8-разрядный аккумулятор АСС, 16-разрядный индексный регистр НХ (Н - старший байт, X - младший байт), 16-разрядные программный счётчик PC и указатель стека SP, 8-разрядный регистр признаков CCR. Последний содержит пять фла­гов, информирующих о состояния операнда в аккумуляторе: переноса (С), нулевого результата (Z), отрицательного результата (N), переполне­ния (V),дополнительного переноса

Рис. 298. Программно-логическая модель центрального процессора НС08.

 

(Н), а также бит глобальной маски прерывания (I). Размещение тригге­ра запрета всех прерываний цент­рального процессора I в регистре признаков является традиционным для всех МК компании Freescale Semiconductor.

Программный счётчик, указатель стека и регистр НХ позволяют линей­но адресовать все 64 Кб памяти, что обусловливает две особенности сис­темы команд:

  • во-первых, подавляющее число действий исполняется над операн­дами, которые могут быть располо­жены в любом адресном простран­стве из 64 Кб;
  • во-вторых, МК с процессорным яд­ром НС08 могут одинаково успеш­но исполнять программы как из ПЗУ, так и из ОЗУ. Последнее суще­ственно упрощает построение мо­дуля внутрисхемной отладки.

Система команд ядра НС08 включа­ет 90 инструкций языка Ассемблер, в том числе команды целочисленного беззнакового умножения восьмираз­рядных операндов (время выполне­ния операции составляет 5 циклов или 625 нс) и целочисленного без­знакового деления 16: 8 (время вы­полнения операции - 7 циклов или 875 нс). Операция сложения или вы­читания однобайтовой константы выполняется за 250 нс (2 цикла).

Центральный процессор НС08 поддерживает 12 способов адреса­ции, имеет двухадресные команды, которые позволяют выполнять пере­сылки данных между двумя ячейка­ми памяти или регистрами специ­альных функций, минуя регистры центрального процессора. Процессор оснащён большим набором ко­манд ветвления. Кроме переходов по традиционным условиям С, Z, N, Н, реализованы переходы по комбина­циям флагов С и Z для сравнения операндов в прямом коде без знака, а также по комбинациям флагов С, Z, и V для сравнения операндов в допол­нительном коде со знаком. Общее число инструкций ветвления ассем­блера НС08 равно 40. Процессорное ядро НС08 реализует векторные пре­рывания, а также имеет специаль­ную команду программного преры­вания.

Программно-логическая модель и система команд процессорного ядра HCS08 полностью идентична ядру НС08. В чём же отличия?

Во-первых, использован новый тех­нологический процесс, что позволи­ло повысить частоту внутренней ши­ны до 20 МГц при напряжении пита­ния 3,6 В.

Во-вторых, процессорное ядро HCS08 работает в диапазоне напря­жений питания от 1,8 до 3,6 В, т.е. ориентировано на работу в устрой­ствах с автономным питанием.

В-третьих, процессорное ядро HCS08 имеет расширенный набор ре­жимов энергосбережения, что полез­но в автономных приборах.

В-четвертых, процессорное ядро HCS08 имеет более совершенный модуль отладки, реализующий ре­жим BDM (BDM - Background Debug Mode, т.е. фоновый режим отладки). В отличие от модуля отладки, реали­зованного в НС08, новый модуль от­ладки позволяет часть функций вы­полнять без останова исполнения прикладной программы. Кроме того, для перевода МК в режим от­ладки используется всего одна линия, что для маловыводных МК очень важно. В рассматриваемых МК на основе процессорного ядра НС08 с интерфейсом отладки MON08 иногда до половины выводов долж­ны быть использованы в режиме от­ладки. Поэтому приходится комму­тировать выводы, а лишние разъёмы нежелательны в малогабаритных приложениях.

Обратимся теперь к ядру RS08. При его разработке преследовалась цель предельно минимизировать ап­паратные средства 8-разрядного процессорного ядра, ориентирован­ного на очень простые приложения с объёмом программного кода в не­сколько килобайт. Программно-ло­гическая модель центрального про­цессора RS08 представлена на ри­сунке 2. Она содержит 8-разрядный аккумулятор АСС, 14-разрядный счётчик команд PC, 14-разрядный регистр SPC и двухразрядный ре­гистр признаков CCR.

Уменьшенная разрядность про­граммного счётчика PC свидетель­ствует о том, что максимальный объём программного кода для это­го процессорного ядра составляет 16 Кб. Наличие всего двух флагов условий (переполнения С и нулево­го результата Z) в регистре состоя­ния CCR определяет ориентацию этого процессорного ядра на вы­полнение, в основном, логических операций и на очень простые вы­числения, которые не предполага­ют использования представления чисел со знаком. И, как следствие, в системе команд отсутствуют инструкции умножения и деления. Существенно сократилось и число команд ветвления - в предыду­щих версиях процессорного ядра HC08/HCS08 их было 40, в версии RS08 осталось всего 11.

Существенные изменения претер­пела модель памяти и система адре­сации. Процессорное ядро RS08 использует страничную систему ад­ресации, при которой линейно ад­ресуются лишь ячейки памяти с адресами 0x00 - OxFF. Старшие 64 адреса (ОхСО - OxFF) рассматри­ваются как окно для обращения к одной из 252 страниц постоянной памяти объёмом 64 байта каждая. Для выбора номера страницы пред­назначен новый регистр управле­ния PAGESEL. Три страницы памяти с младшими адресами (ОxОО - OxBF) адресуются линейно. В этом адрес­ном пространстве располагаются ОЗУ МК и регистры управления пе­риферией.

Число способов адресации операн­дов сократилось с 12 в предыдущих
версиях процессорного ядра до 7 в версии RS08. Изменение модели па­мяти и способов адресации имело целью сократить число байтов кодов команд, что позволило повысить плотность управляющего кода. Те­перь двухбайтовое представление операнда используют только коман­ды безусловного перехода jmp adr и вызова подпрограмм jsr adr. Осталь­ные команды, в том числе арифмети­ческие и логические, имеют только двухбайтовый или даже однобайто­вый формат. Это достигается введе­нием двух способов прямой адреса­ции, которые ранее были несвой­ственны микроконтроллерам.

Freescale Semiconductor - это прямая адресация типа Tiny, при которой возможно обращение только к опе­рандам, расположенным по адресам ОxОО - OxOF, и прямая адресация типа Short, для которой доступны ячейки памяти с адресами ОхОО - OxIF.

Следует обратить внимание на интересное архитектурное реше­ние, которое позволило эмулиро­вать индексный регистр косвенной адресации X, унаследованный от предыдущих версий процессорно­го ядра (см. рис. 298), и связанные с ним способы индексной адресации со смещением и автоинкрементированием после выборки операнда. Теперь регистр косвенной адресации X располагается в оперативной памяти МК. При обращении с использованием прямой адресации к другому регистру оперативной памяти D[X] происходит выборка операнда, расположенного по адресу, значение которого содержится в X (см. рис. 30). Таким образом, разработчики процессорного ядра RS08 сумели сохранить в системе команд такие способы адресации, как индексная (косвенная по регистру X), индексная со смещением в 8 или I6 бит, индексная со смещением и автоматическим увеличением на 1 содержимого X после выборки операнда. В самом центральном процессоре таких способов адресации нет, поэтому площадь кристалла велика, а для программиста эти способы адресации доступны.

Существенные изменения пре­терпела подсистема вызова под­программ и подсистема прерыва­ний. В процессорном ядре RS08 от­сутствует указатель стека SP (см. рис. 29), вместо которого появился регистр одноуровневого аппарат­ного стека SPC (Shadow PC). В этот регистр загружается адрес возврата при вызове подпрограммы или при переходе на подпрограмму пре­рывания. Организация многоуров­невого вызова подпрограмм воз­можна только с применением специальных программных кон­струкций. Для этого предусмотре­ны команды передачи содержимо­го регистра SPC в оперативную па­мять и обратно.

Рис. 29. Программно-логическая модель центрального процессора НС08.

Подсистема прерываний процес­сорного ядра RS08 перестала быть векторной. Микроконтроллеры типа MC9RS08KA1/KA2 имеют пять источ­ников запросов на прерывания: мо­дуль таймера MTIM, внешние запро­сы на входах портов KBI, аналого­вый компаратор АСМР, модуль меток реального времени RTI и запрос от модуля слежения за пониженным напряжением питания LVD. События запросов отображаются в специаль­ном регистре, который должен быть опрошен программой для определе­ния источника запроса на прерыва­ние. Очень важно, что подсистема прерывания в МК MC9RS08KA1/KA2 предназначена только для вывода этих МК из режимов пониженного энергопотребления типа ожидания (Wait) или останова (Stop). При ра­боте МК в активном режиме, т.е. в процессе исполнения программы, подсистема прерывания запросы фиксирует, но не изменяет ход выполнения программы. Флаги за­просов должны программно опра­шиваться, и при необходимости вы­полняется ветвление программы управления.

Что же получилось в итоге столь существенных изменений? Процес­сорное ядро RS08 сохранило хоро­шую систему команд, которая была свойственна ядру HC08/HCS08. По существу не стало только команд умножения и деления. Но при отсут­ствии в МК встроенного АЦП и на­личии упрощённого таймера, кото­рый не предполагает измерения временных интервалов, эти коман­ды требуются редко.Сохранилось множество способов

Рис. 30. Эмуляция индексной адресации в процессорном ядре RS08.

 

адресации, хотя все способы, связанные с регист­ром X, теперь эмулируются на уров­не программы Ассемблера или ком­пилятора с языка Си.

Существенно изменилась логика организации работы МК в реальном времени. Отсутствует возможность прерываний от внешних и внутрен­них источников в ходе выполнения программы, но все события фикси­руются, запоминаются и могут быть опрошены программно, что для не­быстрых приложений вполне до­пустимо.

Очень важно, что процессорное яд­ро RS08 унаследовало от ядра HCS08 режим фоновой внутрисхемной от­ладки BDM. Для данного класса МК он удобен по двум причинам. Во-первых, можно следить за изменением ресур­сов МК в режиме отладки без остано­ва выполнения программы, посколь­ку приложения достаточно простые и медленные. Во-вторых, вход в ре­жим отладки и взаимодействие с МК в процессе отладки происходит по единственному выводу, что делает возможным использование отладки в системе даже при корпусе МК с шестью выводами.

 



Поделиться:


Последнее изменение этой страницы: 2016-09-18; просмотров: 353; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.119.17 (0.023 с.)