
Шумахер У. Полупроводниковая электроника
.pdf
INFSEMI_2-Text.fm, стр. 282 из 589 (September 3, 2010, 17:05)
282 7. Микроконтроллеры
ми, поступающими от логической схемы |
фазы работы конвейера, использование ко- |
|||||||
декодирования команд. Основные характе- |
торых позволяет оптимизировать |
работу |
||||||
ристики этих блоков состоят в следующем: |
процессорного ядра. |
|
||||||
1. Высокая скорость выборки и исполне- |
ВЫБОРКА — в этой фазе команда извле- |
|||||||
ния команд. |
|
|
|
|
кается из внутреннего ПЗУ, ОЗУ или из |
|||
2. Высокопроизводительное |
арифметико- |
внешней памяти, в зависимости от текуще- |
||||||
логическое устройство с возможностью |
го значения счётчика команд. |
|
||||||
обработки 8- и 16-битных данных. |
ДЕКОДИРОВАНИЕ — в этой фазе ранее |
|||||||
3. Развитая система обработки битовых пе- |
выбранная команда декодируется, и из па- |
|||||||
ременных и управления вводом/выво- |
мяти извлекаются необходимые для её ис- |
|||||||
дом. |
|
|
|
|
|
полнения операнды. |
|
|
4. Эффективная система организации ветв- |
ИСПОЛНЕНИЕ — в этой фазе извле- |
|||||||
ления программ, вызова подпрограмм и |
чённые из памяти операнды обрабатывают- |
|||||||
реализации программных циклов. |
ся так, как это предусмотрено командой. |
|||||||
5. Единообразные |
и оптимизированные |
ОБРАТНАЯ ЗАПИСЬ — в этой фазе ре- |
||||||
форматы команд. |
|
|
|
зультат операции записывается в заданную |
||||
6. Программируемая структура прерыва- |
область памяти. |
|
||||||
ний для многоуровневых приоритетов. |
Описанный выше конвейер |
команд |
||||||
Все эти характеристики будут подробно |
обеспечивает увеличение скорости обра- |
|||||||
рассмотрены ниже. |
|
|
|
|
ботки команд и позволяет обслуживать |
|||
Высокая скорость выборки и исполнения |
большее количество задач и прерываний. |
|||||||
В отсутствие конвейера процесс исполне- |
||||||||
команд |
|
|
|
|
|
|||
|
|
|
|
|
ния каждой команды занимал бы четыре |
|||
|
|
|
|
|
|
|||
Применяемые |
в |
микроконтроллерах |
машинных цикла. |
|
||||
C166 аппаратные решения позволяют ис- |
Декодер команд |
|
||||||
полнять большинство команд в течение од- |
|
|||||||
|
|
|||||||
ного машинного цикла, который длится 2 |
Декодирование команды начинается с |
|||||||
периода |
тактовой |
|
частоты |
процессора |
момента появления сигналов на выходах |
|||
(2 1/fCPU = 4TCLK). Так, например, операции |
ПЛА (программно-логического автомата), |
|||||||
сдвига и циклического сдвига всегда испол- |
соответствующих выбранной команде. Не |
|||||||
няются в течение одного машинного цикла |
используется никакого микрокода, и даль- |
|||||||
независимо от того, на какое количество би- |
нейшее управление каждой из ступеней |
|||||||
тов должен быть сдвинут исходный операнд. |
конвейера осуществляется сигналами, ко- |
|||||||
Команды ветвления, умножения и деле- |
торые были сохранены в управляющих ре- |
|||||||
ния обычно требуют более одного машин- |
гистрах ПЛА во время фазы декодирования |
|||||||
ного цикла. Однако и эти команды были |
команды. Иногда конвейер команд может |
|||||||
оптимизированы. Команды |
ветвления, к |
находиться в состоянии ожидания; в основ- |
||||||
примеру, требуют только одного дополни- |
ном это происходит, во время циклов ожи- |
|||||||
тельного машинного цикла, если условие |
дания при обращении к внешней памяти, в |
|||||||
ветвления выполняется, а в процессе про- |
течение которых сигналы «удерживаются» в |
|||||||
хождения «пустых» |
программных |
циклов |
управляющих регистрах ПЛА. При испол- |
|||||
большинство команд ветвления не требуют |
нении команд микроконтроллера длитель- |
|||||||
дополнительных машинных циклов благо- |
ностью в несколько машинных циклов ис- |
|||||||
даря использованию так называемого кэ- |
пользуются аппаратные механизмы инжек- |
|||||||
ширования (маскирования) переходов. |
ции (вставки) команд и контроля внутрен- |
|||||||
32/16-битное деление занимает 20 пери- |
него состояния, которые соответствующим |
|||||||
одов тактовой частоты процессора (TCPU), а |
образом видоизменяют управляющие сиг- |
|||||||
умножение двух 16-битных операндов — |
налы. |
|
||||||
10·TCPU. Среднее время исполнения одной |
Высокопроизводительное 8- и 16-битное |
|||||||
команды удаётся значительно сократить за |
||||||||
арифметико-логическое устройство |
||||||||
счёт использования |
конвейера |
команд. |
||||||
|
|
|||||||
Благодаря наличию конвейера процессор- |
Все стандартные арифметические и ло- |
|||||||
ное ядро может обрабатывать различные |
гические операции реализуются в микро- |
|||||||
участки |
командных |
последовательностей |
контроллере с помощью 16-битного ариф- |
|||||
параллельно. Ниже |
перечислены |
четыре |
|
|




INFSEMI_2-Text.fm, стр. 286 из 589 (September 3, 2010, 17:05)
286 7. Микроконтроллеры
4. В микроконтроллерах семейства C166 |
ных ресурсов, интегрированных на одном |
||||||
разрешены прерывания в процессе ис- |
кристалле с ЦПУ. Такая комбинация ресур- |
||||||
полнения команд, занимающих несколь- |
сов обеспечивает высокую производитель- |
||||||
ко машинных циклов (например, команд |
ность микроконтроллеров. |
||||||
умножения и деления). Благодаря этому |
Ниже в данной главе рассматриваются |
||||||
удалось сократить время задержки при |
ресурсы, доступные для использования на |
||||||
обработке прерываний. Время реакции |
момент написания книги. Однако не ис- |
||||||
на прерывание (если запрос на это пре- |
ключено, что не все из описанных ресурсов |
||||||
рывание поступает в ходе исполнения |
будут присутствовать в конкретных моделях |
||||||
команд из внутренней памяти) находит- |
микроконтроллеров семейства С166. |
||||||
ся в диапазоне 5…10 периодов fCPU, т.е. |
Контроллер периферийных событий |
||||||
микроконтроллер |
способен |
исключи- |
|||||
(PEC) и управление обработкой |
|||||||
тельно быстро реагировать на любые не- |
|||||||
прерываний |
|||||||
детерминированные |
события. |
Входы |
|||||
|
|||||||
быстрых внешних прерываний микро- |
Использование контроллера периферий- |
||||||
контроллера опрашиваются |
в |
каждом |
ных событий (Peripheral Event Controller — |
||||
машинном цикле, что позволяет обнару- |
PEC) позволяет свести ответ на запрос на |
||||||
живать даже очень быстро меняющиеся |
прерывание к операции однократной пере- |
||||||
внешние сигналы. |
|
|
|
|
|
дачи данных (слова или байта). Эта опера- |
|
В микроконтроллерах семейства С166 |
ция занимает всего один машинный цикл, а |
||||||
реализован ещё один превосходный меха- |
сохранять и затем восстанавливать состоя- |
||||||
низм идентификации и обработки исклю- |
ние системы не требуется. В каждом машин- |
||||||
чительных ситуаций или ошибок, возника- |
ном цикле блок управления прерываниями |
||||||
ющих в процессе работы системы, — так |
назначает каждому из источников прерыва- |
||||||
называемое системное прерывание («аппа- |
ний свой уровень приоритета. При наличии |
||||||
ратная ловушка»). При возникновении сис- |
прерывания, обслуживаемого PEC, начина- |
||||||
темного прерывания в микроконтроллере |
ется передача данных. При обнаружении за- |
||||||
немедленно генерируется |
немаскирован- |
проса на обработку прерывания в первую |
|||||
ный запрос на его обработку, как и при вы- |
очередь проверяется хранящийся в регистре |
||||||
полнении стандартной |
задачи |
обработки |
PSW текущий уровень приоритета прерыва- |
||||
внешнего прерывания (т.е. происходит пе- |
ний, для того чтобы определить, не обраба- |
||||||
редача управления по адресу, указанному в |
тывается ли в настоящий момент прерыва- |
||||||
соответствующем векторе |
прерывания). |
ние с более высоким уровнем приоритета. |
|||||
Возникновение системного |
(аппаратного) |
Если запрос на обработку прерывания удов- |
|||||
прерывания индицируется состоянием со- |
летворён, то текущее состояние процессора |
||||||
ответствующего бита в регистре флагов |
сохраняется во внутреннем системном сте- |
||||||
TFR, и это событие приостанавливает ис- |
ке, и происходит передача управления по |
||||||
полнение любой текущей программы, за |
соответствующему этому периферийному |
||||||
исключением уже запущенной программы |
устройству вектору прерывания. |
||||||
обработки системного прерывания с более |
Контроллер периферийных событий со- |
||||||
высоким приоритетом. В то же время, вы- |
держит набор регистров специальных фун- |
||||||
полнение задачи по обработке аппаратного |
кций, в которых для каждого из восьми воз- |
||||||
прерывания не останавливается при воз- |
можных каналов передачи хранятся биты |
||||||
никновении программного (обычного или |
управления и сведения о длине передавае- |
||||||
PEC) прерывания. Для того чтобы это про- |
мого пакета данных. Кроме того, PEC ис- |
||||||
изошло, необходимо |
выполнить |
команду |
пользует зарезервированную за ним область |
||||
Trap, задавая в качестве параметра индиви- |
ОЗУ для хранения адресов источников дан- |
||||||
дуальный номер аппаратной ловушки (но- |
ных и адресов их назначения. Управление |
||||||
мер прерывания). |
|
|
|
|
|
контроллером периферийных событий осу- |
|
7.3.6. Встроенные ресурсы |
|
|
ществляется таким же образом, как и всеми |
||||
|
|
остальными периферийными устройства- |
|||||
микроконтроллера |
|
|
|
||||
|
|
|
ми микроконтроллера — с помощью регис- |
||||
|
|
|
|
|
|
||
Микроконтроллеры семейства С166 ха- |
тров специальных функций, в которых со- |
||||||
рактеризуются наличием мощных систем- |
храняется конфигурация для каждого из ка- |
налов передачи данных.


INFSEMI_2-Text.fm, стр. 288 из 589 (September 3, 2010, 17:05)
288 7. Микроконтроллеры
Для размещения регистров специальных |
В немультиплексированных режимах ра- |
|||||||||||||
функций зарезервированы 1024 байт адрес- |
боты шины порт 1 используется для переда- |
|||||||||||||
ного пространства. Первые 512 байт отведе- |
чи адреса, а порт 0 — для ввода/вывода дан- |
|||||||||||||
ны под стандартный блок регистров специ- |
ных. В мультиплексированных режимах ра- |
|||||||||||||
альных |
функций |
(SFR), |
а |
оставшиеся |
боты шины порт 0 используется как для пе- |
|||||||||
512 байт представляют собой расширенную |
редачи адреса, так и для ввода/вывода дан- |
|||||||||||||
область |
регистров |
специальных |
функций |
ных. Порт 4 используется для передачи |
||||||||||
(ESFR). |
|
|
|
|
|
|
старших битов адреса (А16…), если эти ад- |
|||||||
Регистры (E)SFR имеют |
разрядность, |
реса были выбраны. |
|
|
|
|||||||||
равную одному слову, и используются как |
Важные временные характеристики вне- |
|||||||||||||
управляющие и функциональные регистры |
шней шины (время ожидания, длитель- |
|||||||||||||
различных встроенных ресурсов. Незадей- |
ность сигнала ALE, задержки при чте- |
|||||||||||||
ствованные адреса (E)SFR зарезервирова- |
нии/записи) теперь могут быть запрограм- |
|||||||||||||
ны для будущих модификаций микроконт- |
мированы, что даёт пользователю возмож- |
|||||||||||||
роллеров семейства С166 с расширенными |
ность варьировать их в зависимости от ис- |
|||||||||||||
функциями. |
|
|
|
|
|
пользуемых типов памяти и периферийных |
||||||||
7.3.7. Интерфейс внешней шины |
устройств. Обращение к очень медленным |
|||||||||||||
устройствам памяти и периферийным уст- |
||||||||||||||
Часто |
пользователю |
не |
хватает объёма |
ройствам осуществляется с помощью спе- |
||||||||||
циальной функции Ready. |
|
|
||||||||||||
внутренней памяти программ или памяти |
|
|
||||||||||||
Для приложений, требующих для своей |
||||||||||||||
данных микроконтроллера. Для того чтобы |
||||||||||||||
работы |
менее |
64 Кбайт адресного |
про- |
|||||||||||
расширить её до потенциально возможных |
||||||||||||||
странства, может быть выбрана несегмен- |
||||||||||||||
16 Мбайт, к микроконтроллеру через внеш- |
||||||||||||||
тированная модель памяти, в рамках кото- |
||||||||||||||
нюю шину могут быть подключены допол- |
||||||||||||||
рой вся доступная память может быть адре- |
||||||||||||||
нительные модули ПЗУ и/или ОЗУ. Приме- |
||||||||||||||
сована |
с |
помощью |
16-битного |
адреса |
||||||||||
нение интегрированного в структуру микро- |
||||||||||||||
(А0…А15). При этом не будет необходимос- |
||||||||||||||
схемы контроллера внешней шины (External |
||||||||||||||
ти задействовать порт 4 для вывода старших |
||||||||||||||
Bus Controller — EBC) обеспечивает макси- |
||||||||||||||
битов адреса (А16…Аxx), которые использу- |
||||||||||||||
мальную гибкость при организации доступа |
||||||||||||||
ются в сегментированной модели памяти. |
||||||||||||||
к внешней памяти и/или периферийным ус- |
||||||||||||||
Встроенная шина XBUS является внут- |
||||||||||||||
тройствам. Вид шины (мультиплексирован- |
||||||||||||||
ренним «отображением» внешней систем- |
||||||||||||||
ная/немультиплексированная), её |
ширина, |
|||||||||||||
ной шины, и её использование позволяет |
||||||||||||||
или разрядность (8 бит/16 бит) и даже вре- |
||||||||||||||
организовать доступ |
к интегрированным |
|||||||||||||
менные характеристики цикла обращения к |
||||||||||||||
специализированным |
периферийным мо- |
|||||||||||||
памяти |
(время ожидания, |
временные за- |
||||||||||||
дулям тем же способом, что и к внешним |
||||||||||||||
держки сигналов) могут быть выбраны неза- |
||||||||||||||
периферийным |
устройствам. |
Подобный |
||||||||||||
висимо друг от друга для пяти различных |
||||||||||||||
принцип |
организации обмена данными |
|||||||||||||
диапазонов адресов. Это позволяет получать |
||||||||||||||
обеспечивает стандартизированный подход |
||||||||||||||
прямой доступ к различным видам памяти и |
||||||||||||||
к подключению специализированных пе- |
||||||||||||||
периферийных устройств с |
максимальной |
|||||||||||||
риферийных модулей. Примерами такого |
||||||||||||||
эффективностью. |
Если |
микроконтроллер |
||||||||||||
рода X-периферии являются |
встроенные |
|||||||||||||
работает не в однокристальном режиме, ког- |
||||||||||||||
модули памяти XRAM, контроллера интер- |
||||||||||||||
да для его функционирования не требуется |
||||||||||||||
фейса I2C и контроллера шины CAN. |
|
|||||||||||||
внешней памяти, то EBC может управлять |
|
|||||||||||||
|
|
|
|
|
|
|
||||||||
доступом к внешним устройствам в одном из |
7.3.8. Встроенные периферийные модули |
|||||||||||||
перечисленных ниже режимов работы: |
||||||||||||||
|
|
|
|
|
|
|
||||||||
16/18/20/24-битный адрес, 16-битные |
У микроконтроллеров семейства |
С166 |
||||||||||||
данные, немультиплексированная шина; |
периферийные функции отделены от про- |
|||||||||||||
16/18/20/24-битный |
адрес, |
8-битные |
цессорного ядра. Такая структура обеспечи- |
|||||||||||
данные, немультиплексированная шина; |
вает возможность параллельного исполне- |
|||||||||||||
16/18/20/24-битный адрес, 16-битные |
ния максимально возможного количества |
|||||||||||||
данные, мультиплексированная шина; |
задач и позволяет добавлять или убирать |
|||||||||||||
16/18/20/24-битный |
адрес, |
8-битные |
периферийные функциональные модули из |
|||||||||||
данные, мультиплексированная шина. |
любого контроллера этого семейства без не- |


INFSEMI_2-Text.fm, стр. 290 из 589 (September 3, 2010, 17:05)
290 7. Микроконтроллеры
ЦПУ приостанавливается, в то время как |
ды АЦП. Все выводы порта, не имеющие |
|||||
периферийные модули продолжают функ- |
альтернативных функций, могут быть ис- |
|||||
ционировать. В свою очередь, блок управ- |
пользованы в качестве стандартных линий |
|||||
ления энергопотреблением может времен- |
ввода/вывода общего назначения. |
|||||
но приостанавливать работу группы пери- |
Таймеры общего назначения (GPT) |
|||||
ферийных модулей, отключая подаваемый |
||||||
|
|
|
||||
на них тактовый сигнал. ЦПУ может полу- |
Блок таймеров GPT представляет собой |
|||||
чить доступ к регистрам специальных |
гибкую многофункциональную структуру |
|||||
функций (SFR) периферийных |
модулей |
на основе таймера/счётчика, которая при- |
||||
один раз за такт. Если пользовательская |
меняется при решении многих задач, свя- |
|||||
программа попытается осуществить запись |
занных с измерением времени. С его помо- |
|||||
в регистр SFR периферийного модуля в то |
щью могут быть определены временные ха- |
|||||
время, когда в этот регистр производит за- |
рактеристики и произведён подсчёт числа |
|||||
пись периферийный модуль, то действия |
событий, измерены длительность импульса |
|||||
программы будут обладать более высоким |
и коэффициент заполнения |
(скважность) |
||||
приоритетом, чем действия периферии. Бо- |
импульсной |
последовательности, а также |
||||
лее подробные описания временных харак- |
сгенерированы импульсы или осуществле- |
|||||
теристик периферийных модулей можно |
но перемножение импульсов. Каждый из |
|||||
найти в соответствующих разделах техни- |
таймеров блока GPT может функциониро- |
|||||
ческих описаний микроконтроллеров. |
вать независимо от других в одном из четы- |
|||||
Параллельные порты |
|
рёх основных режимов или же работать сов- |
||||
|
местно с другими таймерами из этого же |
|||||
|
|
|
||||
Входы и выходы микроконтроллеров се- |
модуля. Поддерживаются следующие режи- |
|||||
мейства С166 сгруппированы в порты вво- |
мы работы: таймер, стробируемый таймер, |
|||||
да/вывода. Каждая из линий порта поддер- |
таймер/счётчик, а также (для таймеров |
|||||
живает индивидуальную (побитовую) адре- |
GPT1) режим интерфейса инкрементных |
|||||
сацию и с помощью регистра направления |
датчиков. В режиме таймера входной такто- |
|||||
может быть сконфигурирована как вход или |
вый сигнал формируется путём деления |
|||||
выход. Порты ввода/вывода являются пол- |
внутреннего тактового сигнала ЦПУ на |
|||||
ностью двунаправленными. При конфигу- |
программируемый коэффициент, тогда как |
|||||
рировании в качестве входов они перево- |
в режиме счётчика синхронизация таймера |
|||||
дятся в высокоимпедансное («третье») со- |
осуществляется внешними сигналами (че- |
|||||
стояние. |
|
|
рез вход TxIN). Режим таймера со строби- |
|||
Выходные драйверы некоторых портов |
рованием используется для измерения дли- |
|||||
ввода/вывода |
могут быть индивидуально |
тельности входных импульсов или коэффи- |
||||
(побитно) запрограммированы через управ- |
циента заполнения импульсной последова- |
|||||
ляющие регистры как двухтактные каскады |
тельности, при этом таймер управляется |
|||||
или как каскады с открытым стоком. В про- |
внешними |
стробирующими |
сигналами, |
|||
цессе внутреннего сброса микроконтролле- |
поступающими на вход TxIN. |
|
||||
ра все выводы его портов конфигурируются |
В режиме интерфейса инкрементных |
|||||
как входы. Входные каскады некоторых |
датчиков таймеры GPT1 могут быть напря- |
|||||
портов ввода/вывода могут быть сконфигу- |
мую подключены к квадратурным выходам |
|||||
рированы с использованием их управляю- |
A и B инкрементного датчика через соот- |
|||||
щих регистров таким образом, чтобы соот- |
ветствующие входы TxIN и TxEUD. Из этих |
|||||
ветствовать ТТЛлибо КМОП-уровням. |
сигналов модуль GPT1 формирует счётные |
|||||
Для большинства выводов портов пре- |
импульсы и сигнал направления счёта, в ре- |
|||||
дусмотрены |
программируемые |
альтерна- |
зультате чего содержимое таймера Tx соот- |
|||
тивные функции. Эти выводы могут, на- |
ветствует положению датчика. Третий сиг- |
|||||
пример, работать как линии передачи адре- |
нал датчика (TOP0) может быть подключён |
|||||
са и данных при обращении к внешнему ус- |
к входу прерываний. |
|
||||
тройству памяти, входы выбора микросхе- |
Направление счёта для каждого таймера |
|||||
мы (CS), входы быстрых внешних |
(прямое/обратное) задаётся программно и |
|||||
прерываний и тактовых сигналов, вхо- |
может изменяться динамически подачей |
|||||
ды/выходы таймеров, линии последова- |
внешнего сигнала (TxEUD), например, что- |
|||||
тельных интерфейсов или аналоговые вхо- |
бы упростить отслеживание положения. |
