Шина доступа к данным доступа к командам

Содержание
  1. Контроллер прямого доступа к памяти: схема, логика, состояния и режим работы
  2. Состав контроллера ПДП
  3. Блок логики чтения–записи
  4. Регистр установки
  5. Регистр состояния каналов
  6. Основные состояния и режимы работы устройства.
  7. Исходное состояние.
  8. Программирование.
  9. Ожидание.
  10. Обслуживание.
  11. Прямой доступ к памяти: схема организации, типы процессоров
  12. Необходимость организации канала прямого доступа к памяти
  13. Motorola 6800
  14. Средства адресации и контроля переданных слов:
  15. Средства управления
  16. Краткое описание микроконтроллера C16x
  17. Организация памяти
  18. Внутреннее ОЗУ
  19. Системный стек
  20. Регистры-указатели контроллера событий PEC
  21. Регистры общего назначения
  22. Регистры специального назначения (SFR/ESFR)
  23. Внешняя память
  24. Центральное процессорное устройство
  25. Битовые операции
  26. Регистры специального назначения центрального процессора
  27. Регистр системной конфигурации SYSCON
  28. Порт вывода сигнала тактового генератора CLKOUT (CLKEN)
  29. Разрешение или запрет сегментации (SGTDIS)
  30. Установка размера системного стека (STKSZ)
  31. Регистр состояния процессора PSW
  32. Статус АЛУ (флаги N, C, V, Z, E, MULIP)
  33. Регистр-указатель команды IP
  34. Регистр-указатель сегмента кода CSP
  35. Регистр-указатели страниц данных DPPx
  36. Регистр-указатель контекста CP
  37. Режим короткой четырехбитовой адресации регистров GPR
  38. Режим короткой восьмибитовой адресации регистров GPR
  39. Регистр-указатель вершины стека SP
  40. Регистр-указатель переполнения стека STKOV
  41. Регистр-указатель дна стека STKUN
  42. Регистр умножения/деления MDH
  43. Регистр умножения/деления MDL
  44. Регистр MDC

Контроллер прямого доступа к памяти: схема, логика, состояния и режим работы

kontrollerВ качестве примера реализации принципов прямого доступа к памяти (ПДП) рассмотрим микросхему КР580ВТ57. Программируемый контроллер ПДП предназначен для высокоскоростного обмена данными между памятью системы и че­тырьмя внешними устройствами (ВУ).

Контроллер осуществляет двунаправленный обмен данными между памятью и ВУ (по требованию ВУ), при этом в адресном канале микропроцессорной систе­мы формируются параметры заданного массива адресов ячеек памяти (началь­ный адрес и число циклов) и управляющие сигналы. Каждый из четырех каналов контроллера обеспечивает адресацию (путем инкрементирования выработанного адреса) внешней памяти массивами объемом до 16К байт с возможностью зада­ния любого из 64К начальных адресов.

Состав контроллера ПДП

В контроллере можно выделить следующие блоки (рис. 3.11.1): блок обработки запросов, формирователь адреса, блок логики чте­ния–записи, блок управления, буфер данных и два регистра — регистр установки режима и регистр состояния каналов. Рассмотрим их особенности. 3.11.1

Блок обработки запросов предназначен:

● для приема сигналов запроса ЗПДП0–ЗПДП3 на прямой доступ к памяти от ВУ;

● для маскирования входов каналов К0–К3;

● для выдачи сигналов подтверждения запроса ¯ППДП0 – ¯ППДП3 прямого доступа к памяти, информирующих ВУ о готовности контроллера к обмену данными по каналу ПДП.

Формирователь адреса содержит 16–разрядные регистры начального адреса (РНА0…РНА3) и числа циклов (РЧЦ0…РЧЦ3), схему инкремента–декремен­та, триггер. В процессе выполнения программы начальной установки в РНА запи­сывается начальный адрес ячейки памяти, к которой будет обращаться ВУ по ка­налу ПДП. В 14 младших разрядов регистра числа циклов РЧЦ заносится число N – 1, где N — число циклов. Два старших разряда этого регистра используются для управления обменом по каналу ПДП.

В каждом цикле из РНА считывается два байта адреса. Триггер обеспечивает порядок считывания: старший байт выводится через буфер данных на ШД, а младший байт адреса — по шинам А0…А3, А4…А7. По завершении цикла схема инкремента–декремента содержимое РНА увеличивает, а содержимое РЧЦ умень­шает на единицу. Следует отметить, что выводы контроллера А4…А7 всегда ис­пользуются как выходы для разрядов А4…А7 кода адреса, а выводы А0…А3 ис­пользуются:

Блок логики чтения–записи

осуществляет прием, формирование и выда­чу сигналов, обеспечивающих обмен информацией между процессором и контрол­лером ПДП, памятью и ВУ. Блок логики чтения–записи имеет следующие выводы:

● ¯Зп — двунаправленный управляющий трехстабильный вход/выход, использу­емый:

• как вход для получения сигнала из процессора на запись данных во внут­ренние регистры контроллера ПДП при его начальной установке;

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

● ¯Чт — двунаправленный трехстабильный управляющий вход/выход, использу­емый:

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

• как выход длявыдачи сигнала на разрешение считывания данных из ВУ в память;

● ¯ЧтП, ¯ЗпП — выходы для управления чтением из памяти и записью в память;

● ¯ВК — вход (выбор кристалла), на который подается нулевой сигнал выбора микросхемы после того, как установлены сигналы записи или чтения. Сигнал ¯ВК инициирует обмен данными между процессором и внутренними регистра­ми контроллера ПДП при программировании; автоматически блокируется в режиме прямого доступа. Вход ¯ВК подключается к ША микропроцессорной системы непосредственно или через дешифратор.

Выводы ¯Зп, ¯Чт подключаются к процессору как входы и к ВУ как выходы, а вы­ходы ¯ЗпП, ¯ЧтП — к памяти микропроцессорной системы.

На этапе начальной установки в формирователе адреса дешифрируются младшие разряды А3…А0 кода адреса и после поступления от процессора сигна­лов ¯Зп, ¯Чт организуется запись или чтение программно доступных регистров устройства ПДП. При работе в цикле ПДП логические цепи блока чтения–записи формируют пары сигналов ¯Чт, ¯ЗпП и ¯Зп, ¯ЧтП на выходах устройства, обеспечи­вающих тактирование процесса обмена данными между ВУ и памятью.

регламентирует последовательность операций в течение всех циклов ПДП с помощью управляющих сигналов, а также осуществляет пере­ход контроллера из состояния ожидания в состояние обслуживания по сигналу подтверждения захвата (ПЗх). Блок управления имеет следующие выводы:

Буфер данных представляет собой 8–разрядную двунаправленную шину с тремя состояниями, соединяющую контроллер ПДП с системной шиной дан­ных ШД.

Через буфер данных:

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

режимов хранит информацию о запрограммированных режимах автозагрузки, удлиненной и обычной записи, фиксированного приорите­та и циклического сдвига приоритетов, КС–стоп и др. В него при программировании контроллера ПДП записывается 8–разрядное управляющее слово. Регистр установки режима обычно загружается после того, как установлены регистр ад­реса (РгА) и регистр циклов (РгЦ). Назначение разрядов регистра установки режимов приведено в табл. 3.11.1. 3.11.1

Регистр состояния каналов

указывает, в каком из четырех каналов окончился процесс передачи массива. Для этого в младшие разряды РС0–РС3 (флаги завершения обслуживания) записывается значение сигнала КС = 1 конца счета, появляющегося на выходе КС и указывающего на конец массива по соот­ветствующему каналу. Назначение разрядов регистра установки режимов приве­дено в табл. 3.11.2. 3.11.2

Основные состояния и режимы работы устройства.

Основными состояния­ми являются исходное состояние, программирование, ожидание и обслуживание.

Исходное состояние.

При поступлении на вход Сброс единичного сигна­ла устройство переходит в исходное состояние. В этом состоянии маскируются запросы всех каналов ПДП (Р0 = Р1 = Р2 = Р3 = 0), буферные схемы шины А0…А3 переводятся в состояние приема информации.

Программирование.

В состоянии программирования устройства микро­процессор по шине данных (ШД — D 0… D 7) осуществляет запись начального ад­реса, числа циклов и других данных в соответствующие регистры, адрес которых задается кодом А3А2А1Ана шинах А0–А3 (табл. 3.11.3). Старший разряд А3 кода позволяет различать при А3 = 0 —регистры каналовК0…К3; при А3 = 1 —регистр установки режимов(работает только на запись) ирегистр состояния каналов(ра­ботает только на чтение). Младший разряд А0 выбирает регистры начального ад­реса (А0 = 0) и числа циклов (А0 = 1). Два средних разряда А2А1указывают номера регистров (или каналов) в двоичном коде. Например, код 0101 соответствует РЧЦ2 — регистру числа циклов канала 2. Регистры контроллера ПДП загружаются или из них считывается информация, если микропроцессор выполняет команду записи или чтения путем обращения к устройству и его регистрам. Для этого микропроцессору необходимо выдать соответствующие сигналы записи ¯Зп или чтения ¯Чт и на системные адресные шины ША выставить адрес регистра в виде кода А3А2А1А. В это время на шину данных ШД подается необходимая информа­ция D 7… D 0 для записи в регистры или через шину данных ШД читается информа­ция из котроллера ПДП. Для установки состояния программирования необходимо также подать сигнал выборки устройства ¯ВК = 0. В связи с тем, что регистры кана­лов являются 16–разрядными, для их загрузки или чтения требуется два про­граммных командных цикла. Вформирователе адресаконтроллера имеется триг­гер, который автоматически переключает цепи во время операции чтения или за­писи. Этот триггер определяет доступ к старшему или младшему байтам регистра. Сбрасывается триггер подачей единичного сигнала на входСброса,а также вся­кий раз при загрузке регистра установки режима.

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

Ожидание.

В состоянииожиданияконтроллер принимает от ВУ сигнал за­проса на получение цикла ПДП (ЗПДП0–ЗПДП3) и вырабатывает для микропро­цессора сигнал запроса захвата (ЗЗх). В этом состоянии системные шины нахо­дятся под управлением микропроцессора.

Обслуживание.

После поступления от микропроцессора сигнала подтверж­дения захвата (ПЗх) при наличии сигнала запроса (ЗПДП0 – ЗПДП3) от ВУ контрол­лер вырабатывает сигнал подтверждения запроса (¯ППДП0 – ¯ППДП3) для одного из ВУ и переходит всостояние обслуживания. Вэтом состоянии системные шины находятся под управлением контроллера, и реализуется один из запрограм­мированных режимов ПДП:

В первом цикле работы устройство ПДП передает начальный адрес ячейки па­мяти. В последующих циклах адрес увеличивается, а число циклов уменьшается на единицу, до тех пор, пока содержимое регистра числа циклов (вернее его 14 раз­рядов) не станет равным нулю. После этого формируется сигналконца счетаКС и возможны следующие режимы работы:

В процессе выполнения циклов ПДП возможны три режима работы:

Источник

Читайте также:  Втягивающее реле стартера киа кларус

Прямой доступ к памяти: схема организации, типы процессоров

piodmaНеобходимость организации канала прямого доступа к памяти

Инфор­мация, хранимая во внешних устройствах памяти большой емкости, таких, как на­копители на магнитных дисках и лентах, организована в виде блоков размером единицы и более килобайт. Для обмена данными между указанными устройст­вами памяти и основной (оперативной) памятью микропроцессора не подходят ни программный способ обмена, ни прерывания. Это обусловлено тем, что обмен производится блоками фиксированного размера в строгой последовательности, соответствующей расположению информации на магнитном носителе. Время на обмен одного байта данных строго фиксировано, ограничено скоростью передви­жения носителя относительно магнитных головок и составляет весьма малое зна­чение (единицы микросекунд и меньше). При программно–управляемом обмене и обмене с использованием прерываний на передачу байта данных затрачивается большее время. Для обмена данными в указанных условиях организуется прямой доступ к памяти (ПДП), или Direct Memory Access ( DMA ).

Каналом прямого доступа к памяти называют средства, позволяющие осуще­ствить быстрый обмен данными непосредственно между основной памятью и внешним устройством (ВУ) без участия процессора. При этом способе обмена процедура ввода/вывода полностью осуществляется аппаратными средствами и возлагается на контроллер ПДП.

Отметим, что обычный обмен между внешним устройством и памятью реали­зуются за два командных цикла: вначале данные поступают от источника в цент­ральный процессор, а затем — из процессора в приемник. При ПДП данные не проходят через процессор, и передача слова производится за один цикл. Поэто­му основное достоинство обмена по каналу ПДП — высокая скорость обмена, ог­раниченная только временем доступа к памяти.

3.10.1

Принципы организации ПДП. Структурная схема организации канала ПДП показана на рис. 3.10.1. Прямой доступ к памяти предоставляется по завершении текущего машинного цикла процессора. В отличие от прерывания обмен по кана­лу ПДП выполняется без участия программы, поэтому содержимое рабочих реги­стров процессора сохраняется и на вхождение в режим ПДП не требуется затрат времени (отсутствует необходимость хранения в стеке содержимого рабочих ре­гистров процессора).

Центральный процессор выполняет программирование контроллера, настраи­вая его на требуемый режим работы, и следит за состоянием контроллера. Во время обмена данными по каналу ПДП процессор отключен, а контроллер вы­рабатывает сигналы управления обменом для памяти и внешнего устройства. Связь внешнего устройства памятью осуществляется по шинам адреса и данных системного интерфейса. Проблема совместного использования шин центрально­го процессора и внешнего устройства решается двумя способами: организа­цией режима обмена с «захватом цикла» и (пакетного, или непрерывного) режима с блокировкой центрального процессора.

В режиме с «захватом цикла» обмен ведется одиночными передачами, когда для прямого доступа к памяти выделяются отдельные циклы (такты), т. е. переда­ча данных (слов) перемежается с выполнением программы.

Один из вариантов обмена с «захватом цикла» состоит в использовании тех тактов, в которых центральный процессор не обменивается данными с памятью. Такие такты должны быть известны контроллеру ПДП. Некоторые процессоры вы­рабатывают специальный сигнал, указывающий используется ли процессором в данном цикле память. Например, Такой сигнал VMA вырабатывает микропро­цессор

Motorola 6800

Процессор Intel 8080 никогда не использует четвертый и пятый такты машинных циклов для доступа к внешней памяти. Кроме того, каж­дый командный цикл начинается с машинного цикла М1 — выборки команды. В такте декодирования принятой процессором команды этого машинного цикла системные шины не используются. На это время системные шины можно отдать для передачи одного слова по каналу ПДП. Применение рассмотренного способа организации обмена не снижает производительности процессоров, однако:

● требует дополнительных аппаратных затрат и позволяет реализовать только случайные, нерегулярные передачи;

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

Более распространенным является вариант способа с «захватом цикла», при котором центральный процессор принудительно отключается от системных шин адреса и данных. Его реализация связана с введением двух линий для передачи сигналов запроса на захват шин (ЗЗхв) и подтверждения захвата (ПЗхв). Сигнал ЗЗхв формируется контроллером ПДП.

После получения сигнала ЗЗхв процессор:

● приостанавливает выполнение очередной команды, не дожидаясь ее завер­шения;

● выдает в системный интерфейс сигнал подтверждения захвата ПЗхв;

● отключается от шин адреса и данных, переводя в высокоомное состояние шинные формирователи.

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

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

Способ ПДП с блокировкой процессора отличается от способа с «захватом цикла» тем, что управление шинами контроллеру передается на время обмена блоком данных, а не на время обмена байтом или словом. Его следует приме­нять, когда время обмена байтом сопоставимо с циклом процессора. В этом слу­чае между двумя операциями обмена процессор не успевает выполнить ни одной команды. При непрерывной передаче массива данных скорость обмена огра­ничивается длительностью циклов устройства памяти, быстродействием самого контроллера и скоростью выдачи/приема данных внешним устройством.

Обмен данными по каналу ПДП требует предварительной подготовки контрол­лера. Она заключается в том, что программа загрузки устанавливает необходи­мые параметры для передачи:

● количество байтов (слов) данных, которые должны быть переданы;

● начальный адрес передаваемых данных (адрес первого байта или слова);

● направление передачи (запись/чтение).

Для занесения этих параметров в контроллере предусмотрены регистр адреса и счетчик байтов (слов).

Реализация прямого доступа к памяти. В качестве примера рассмотрим особенности схемной реализации и работы канала ПДП при передаче из внешне­го устройства в память блоков данных в режиме с «захватом цикла». Схема такого устройства ПДП приведена на рис. 3.10.2. В устройстве можно выделить три вида аппаратных средств.

3.10.2

Средства адресации и контроля переданных слов:

● суммирующий 16–разрядный счетчик текущего адреса, разделенный на две половины для младших (МР) и старших (СР) разрядов. Каждая половина имеет свой адрес, по которому происходит начальная загрузка счетчика. На выходе счетчиков включены управляемые буферы для передачи адреса в память;

● вычитающий 8–разрядный счетчик слов, контролирующий число оставшихся для передачи слов. На его выходе включен логический элемент ИЛИ–НЕ, формирующий для внешнего устройства Флаг = 1 по завершении передачи блока данных, когда на вход ИЛИ–НЕ (10) поступает код 000000002;

DС с тремя логическими элементами ИЛИ–НЕ (1, 2, 3), включен­ными на его выходе. Дешифратор с логическими элементами инициирует загрузку счетчиков адреса и слов.

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

Средства управления

● двухразрядный двоичный счетчик, управляющий записью данных в память и состоянием счетчиков адреса и слов;

триггер запроса ТЗ, предназначенный для формирования сигнала запроса на ПДП (ЗПДП) для центрального процессора по стробу, поступающему от внеш­него устройства, и хранения сигнала ЗПДП до конца передачи блока данных;

● логические элементы 4–9, обеспечивающие требуемый алгоритм управления. Назначение используемых сигналов приведено в табл. 3.10.1.

3.10.1

Принцип работы устройства ПДП. Программа, выполняемая центральным процессором, задает необходимые параметры для передачи данных:

● 16–разрядный адрес ячейки памяти для хранения первого слова путем последо­вательной загрузки в счетчик адреса младшего (МБ) и старшего (СБ) байтов;

● количество передаваемых слов путем загрузки числа л в счетчик слов. Из внешнего устройства ВУ поступают байт данных и строб, по которому байт данных заносится в буферный регистр. Строб также устанавливает триггер за­проса ТЗ в единичное состояние. С выхода триггера ТЗ снимается сигнал запро­са ПДП (ЗПДП). Получив сигнал ЗПДП, процессор приостанавливает выполнение программы, отключается от шин, предоставляя их устройству ПДП, и посылает сигнал разрешения ПДП (РПДП).

Сигнал РПДП выполняет следующие функции:

● открывает буфер для передачи содержимого буферного регистра на ШД;

● открывает буферы для передачи содержимого счетчика адреса на 16–разряд­ную шину адреса ША;

● запускает двухразрядный счетчик подачей сигнала на вход «Сброс» через ин­вертор (5);

● открывает элемент И (4) для поступления тактовых импульсов на вход «Счет» счетчика.

При втором тактовом импульсе ТИ на выходе счетчика появляются сигналы

Q = 0. При комбинации

Q =10 элемент 8 закрыт, элементы 7 и 9 — от­крыты. Сигнал «Запись в память» ЗпП, проходя через элемент И (9), инициирует запись в память байта данных из буферного регистра по адресу, выставленному на ША счетчиком адреса.

Третий ТИ переводит двухразрядный счетчик в состояние Q1

Q = 11, благодаря чему открывается элемент И (8). На его выходе формируется сигнал «Счет», который:

● увеличивает на 1 содержимое счетчика адреса;

● уменьшает на 1 содержимое счетчика слов;

● производит сброс триггера запроса ТЗ, снимая сигнал запроса ПДП.

В результате этих операций процессор возобновляет работу, а счетчики под­готовлены к передаче следующего слова (байта данных). Процессор продолжает работать до тех пор, пока не будет загружен буферный регистр новым словом и не будет послан новый запрос на ПДП. Далее процесс передачи слов по каналу ПДП повторяется. После того, как содержимое счетчика слов станет равным нулю (000000002), включенный на его выходе элемент ИЛИ–НЕ (10) установит флаг в единичное состояние, свидетельствующее об окончании передачи блока данных.

Читайте также:  Шарошка из шаровой опоры

Источник

Краткое описание микроконтроллера C16x

Микропроцессорные контролеры серии C16x разработаны на базе универсального 16-разрядного RISС-процессора с четырехcтупенчатым конвейером. Серии C167, C166, C164, C161 отличаются набором периферийных блоков, типом корпуса и наличием соответствующего количества портов ввода-вывода. Ниже приводится краткое описание центрального процессора и структура микроконтроллера C167, который в серии C16x содержит наибольшее количество периферийных устройств.

Рис. 1. Функциональная схема микроконтроллера C167

Организация памяти

Центральное процессорное устройство (ЦПУ) микроконтроллера C167 имеет фон-неймановскую архитектуру, что обеспечивает доступ к исполняемому коду и оперативным данным в пределах единого линейного адресного пространства.

Максимальный размер адресуемой памяти составляет 16 Мбайт, которая разделена на 256 сегментов по 64 Кбайта в каждом или 1024 страниц размером 16 Кбайт.

Регистры общего назначения (GPR), регистры специального назначения (SFR и ESFR), внутренняя память (ROM/RAM), периферийные устройства (CAN, последовательныые каналы, PWM и др.) и внешняя память расположены в пределах единого адресного пространства.

Верхние 4 Кбайта нулевого сегмента (00F000h … 00FFFFh) занимает область внутреннего ОЗУ и область регистров специального назначения (SFR и ESFR). Нижние 32 Кбайт могут быть заняты внутренним ПЗУ (масочное ПЗУ или Flash память), которое может быть переадресовано в первый сегмент (010000h …01FFFFh).

Исполняемый код и оперативные данные могут находиться в любой области внутреннего ОЗУ за исключением области управляющих регистров (SFR/ESFR).

Рис. 2. Пространство памяти и адресное пространство

Внутреннее ОЗУ

Внутреннее ОЗУ объемом 2 килобайта (1Кх16) располагается в третьей странице данных нулевого сегмента. Во внутреннем ОЗУ размещаются:

Рис. 3. Хранение Слов, Байтов и Битов в памяти

Инструкции исполняемого кода должны находится только по четному адресу.

Для доступа к данным, расположенным во внутреннем ОЗУ, регистр DPP должен указывать на третью страницу данных (регистр должен содержать число 3).

Контроллер PEC выполняет пересылку данных независимо от содержимого регистров DPP в соответствии со значениями адресов, находящихся в регистрах-указателях источника и приемника в пределах сегмента 0.

В пределах сегмента 0 для верхних 256 байт внутреннего ОЗУ (0FD00h. 0FDFFh) доступен режим битовой адресации. Это пространство памяти может быть использовано для размещения пользовательских флагов.

Рис. 4. Область внутреннего ОЗУ, ПЗУ и регистров SFR

Системный стек

Системный стек размещается во внутреннем ОЗУ, его размер определяется содержимым битового поля STKSZ в регистре SYSCON.

Доступ к данным, хранящимся на стеке, осуществляется посредством регистра-указателя стека SP. При добавлении данных на стек, указатель стека SP декрементируется, стек при этом растет в сторону младшего адреса. Для контроля за переполнением и исчерпанием системного стека служат регистры STKOV и STKUN.

Регистры-указатели контроллера событий PEC

Во внутреннем ОЗУ по адресам 00FCE0h…00FCFEh расположены 16 двухбайтовых регистров-указателей, предназначенных для хранения адресов источников и приемников контроллера событий PEC. Каждому из восьми каналов PEC контроллера соответствуют расположенные последовательно регистр источника SRCPx и приемника DSTPx (х = 0…7).

Во время работы PEC контроллера регистры SRCPx и DSTPx задают соответствующие адреса регистров источников и приемников независимо от содержимого регистра DPP0. DPP3.

В том случае, когда пользовательская программа не использует PEC-контроллер, регистры источника и приемника могут использоваться для хранения данных.

Рис. 5. Расположение PEC-указателей C167

Регистры общего назначения

Регистры общего назначения GPR занимают во внутреннем ОЗУ блок из шестнадцати последовательно размещенных слов. Расположение блока во внутренней памяти определяется содержимым указателя контекста CP, в котором хранится адрес первого слова блока GPR.

Каждый блок GPR может содержать до 16-ти двухбайтовых регистров (R0, R1, …, R15) и (или) до 16-ти байтных регистров (RL0, RH0, …, RL7, RH7).

Регистры блока GPR доступны в режимах короткой 2-, 4-, или 8-битовой адресации, в которых регистр-указатель контекста CP используется в качестве базового адреса. Независимо от положения блока GPR во внутренней памяти, все его регистры бит-адресуемы.

Важным достоинством микроконтроллера C16X является возможность быстрой смены текущего блока GPR (контекста), при записи в регистр CP другого значения базового адреса. Во внутреннем ОЗУ одновременно может быть организовано несколько блоков GPR, однако текущим будет только тот из них, адрес начала которого хранится в регистре CP.

Для быстрой смены контекста может исполльзоваться команда установки контекста (Switch Context SCXT), которая пересылает из регистра CP на системный стек адрес текущего блока GPR, затем записывает в регистр CP адрес того блока GPR, который необходимо сделать текущим.

Возможность быстрой смены контекста целесообразно использовать в подпрограммах обработки прерываний. Каждому прерыванию или группе прерываний может быть назначен один из блоков GPR.

Адрес во внутреннем ОЗУ Однобайтовые регистры Двухбайтовые регистры
+ 1EH R15
+ 1CH R14
+ 1AH R13
+ 18H R12
+ 16H R11
+ 14H R10
+ 12H R9
+ 10H R8
+ 0EH RH7 RL7 R7
+ 0CH RH6 RL6 R6
+ 0AH RH5 RL5 R5
+ 08H RH4 RL4 R4
+ 06H RH3 RL3 R3
+ 04H RH2 RL2 R2
+ 02H RH1 RL1 R1
+ 00H RH0 RL0 R0

Регистры специального назначения (SFR/ESFR)

Доступ к регистрам SFR и ESFR осуществляется через 16-битовые косвенные или прямые режимы адресации. В режиме короткой 8-битовой адресации обеспечивается доступ к словам и младшим байтам блока SFR. Однако этот тип адресации (при байтовой адресации) не обеспечивает доступ к старшим байтам соответствующих слов.

Верхняя половина адресного пространства каждого блока регистров является бит-адресуемой, т.е. соответствующие биты управления-статуса могут быть модифицированы с помощью битовой адресации.

В режиме доступа к регистрам ESFR при использовании 8-битовой адресации и прямой битовой адресации, предварительно необходимо использовать команду EXTR для переключения режима короткой адресации со стандартного SFR пространства на расширенное ESFR пространство. Этого не требуется в режимах 16-битовой и косвенной адресации. Регистры R15…R0 доступны в обоих блоках регистров через адрес длиной 2, 4 или 8 бит.

Внешняя память

Адресное пространство, не занятое внутренней памятью микроконтроллера, может быть использовано для доступа к внешним устройствам памяти. Доступ осуществляется через интерфес внешней шины.

Рис. 6. Область On-chip XRAM

Микроконтроллер C167 поддерживает четыре режима доступа к внешней памяти в зависимости от ее размера:

Пять выводов Порта 6 (CS0-CS4) могут быть запрограммированы для выборки внешних устройств, что позволяет легко расширять память микроконтроллера внешними устройствами памяти.

Интерфейс внешней шины обеспечивает четыре различных режима:

Доступ к данным, расположенным во внешней памяти, может выполняться только в режиме косвенной или полной 16-битовой адресации с использованием одного из четырех регистров DPP, а также с помощью команд EXTP, EXTS.

Контроллер событий РЕС выполняет передачу данных в пределах нулевого сегмента памяти независимо от значений регистров DPP по адресам, указанным в регистрах-указателях источника и приемника.

Доступ к внешней памяти в режиме битовой или короткой адресации невозможен.

Центральное процессорное устройство

Центральное процессорное устройство (ЦПУ или центральный процессор ЦП) является ядром микроконтроллера С167, которое обеспечивает выборку исполняемых команд из памяти, их дешифрацию, пересылку операндов в арифметико-логическое устройство (АЛУ), выполнение соответствующих арифметических операций, сохранение полученных результатов в памяти или в регистрах.

Рис. 7. Схема ЦПУ

В основу работы ЦПУ положена конвейерная организация выполнения команд. Благодаря этому для выполнения большинства из них требуется 100 наносекунд при тактовой частоте микроконтроллера 20 МГц.

Периферийные устройства могут изменять работу ЦПУ, вырабатывая запросы прерываний. Контроллер прерываний сравнивает уровни приоритетов устройств, одновременно запросивших прерывание, и выбирает то из них, приоритет которого окажется наибольшим.

Обработка прерываний в микроконтроллере выполняется тремя способами:

Наивысшим приоритетом обладают внешнее немаскируемое прерывание и прерывания, генерируемые при обработке системных ошибок (прерывания-ловушки).

Во время работы центральный процессор находится в тесном взаимодействии со сторожевым таймером (WatchDog Timer). Если работа сторожевого таймера разрешена, то его содержимое необходимо обновлять через определенные промежутки времени, в противном случае произойдет его исчерпание (таймер декрементируется), что вызовет системный сброс микроконтроллера.

Сторожевой таймер позволяет предотвратить длительное «зависание» микроконтроллера из-за ошибок выполнения программы или непредусмотренной комбинации внешних сигналов.

Помимо нормального режима работы ЦПУ может находиться в одном из следующих состояний:

Управление режимами работы центрального процессора микроконтроллера обеспечивается следующими регистрами:

SYSCON регистр системной конфигурации;
PSW регистр управления и индикации
состояния ЦПУ;
IP, СSP регистры-указатели команд;
DPP0..DPP3 регистры-указатели страниц данных;
CP регистр-указатель контекста;
SP, STKUN, STKOV регистры системного стека;

Для уменьшения времени выполнения команд центральным процессором в микроконтроллере используется четырехступенчатый конвейер, который позволяет сократить время выполнения команды до 100 нс (для большинства инструкций) при тактовой частоте микроконтроллера 20 МГц.

Битовые операции

Микроконтроллер обладает гибкой системой команд, обеспечивающей битовые операции с регистрами специального назначения (SFR), c регистрами управления портами микроконтроллера, с регистром флагов, а также с бит-адресуемой областью внутренней памяти.

Инструкции BSET, BCLR, BAND, BOR, BXOR, BMOV, BMOVN позволяют устанавливать или сбрасывать соответствующие биты. Команды BFLD и BFLDH обеспечивают доступ к группе битов (до 8-ми). Инструкция JNBC устанавливает, а JBC сбрасывает заданные биты во время выполнения команды перехода. Команды JB и JNB осуществляют переход в зависимости от состояния заданных битов.

При чтении бита в адресном пространстве, которое не является бит-адресуемым, результатом чтения всегда будет 0.

Читайте также:  Цены на шиномонтаж боковые порезы

Регистры специального назначения центрального процессора

Для обслуживания работы центрального процессора в микроконтроллере предусмотрено несколько специальных регистров. С их помощью устанавливается системная конфигурация, выполняется умножение и деление операндов, осуществляется доступ к сегментам кода, страницам данных, вершине стека, а также регистрам общего назначения. Эти регистры располагаются в области памяти регистров специального назначения (SFR). Доступ к ним осуществляется так же, как и к другим, расположенным в этой области регистрам. Исключение составляют регистры-указатели команды IP и сегмента кода CSP. Для предотвращения нарушений в работе микроконтроллера их изменение возможно только косвенно с помощью команд перехода.

Содержимое регистров PSW, SP и MDC может изменяться программно (прямая запись в регистры) или аппаратно во время работы центрального процессора.

Регистр системной конфигурации SYSCON

Регистр SYSCON определяет конфигурацию центрального процессора и контроллера внешней шины. Во время выполнения системного сброса состояние регистра SYSCON определяется значением, считанным из порта 0.

Рис. 8. Регистр системной конфигурации
Бит Функция
XPER-SHARE Доступ внешних устройств к перифе­рий­ным устройствам шины X-BUS
0: запрещено
1: разрешено
VISIBLE Доступ к периферийным устройствам X-BUS
0: цикл шины внутри контроллера
1: цикл шины обрабатывается периферией
XPEN Доступ к внутренним периферийным устройствам X-BUS
0: запрещен
1: разрешен
WRCFG Конфигурация выводов WR и BHE
0: выводы WR и BHE выполняют их основную функцию
1: вывод WR устанавливается как WRL,
BHE устанавливается как WRH
CLKEN Настройка порта P3.15 для вывода сигнала CLKOUT
0: CLKOUT запрещен. P3.15 может использоваться как порт ввода-вывода
1: CLKOUT разрешен
BYTDIS Настройка порта P3.12 для вывода сигнала BHE
0: BHE разрешен
1: BHE запрещен
ROMEN Использование внутреннего ПЗУ микроконтроллера
0: ПЗУ запрещено.
Область ПЗУ во внешней памяти
1: ПЗУ разрешено
SGTDIS Управление режимом сегментации памяти
0: разрешена.
PSW, IP и CSP запоминаются/восстанавливаются во время входа/выхода из прерывания
1:запрещена.
Только IP и PSW запоминаются/восстанавливаются
ROMS1 Размещение области внутреннего ПЗУ (32 Кбайта)
0: в сегменте кода 0 (000000h…007FFFh)
1: в сегменте кода 1 (010000h…017FFFh )
STKSZ Управление размером системного стека (во внутреннем ОЗУ) от 32 до 1024 слов

Порт вывода сигнала тактового генератора CLKOUT (CLKEN)

Выход сигнала тактового генератора микроконтроллера CLKOUT разрешается установкой бита CLKEN регистра SYSCON. Если бит CLKEN установлен в состояние лог.1, порт P3.15 выдает сигнал тактового генератора с частотой Fout = Fcpu (коэффициент заполнения 50%). При установке бита CLKEN в состояние лог.0 направление порта переключается на вывод независимо от предыдущего состояния. После системного сброса бит CLKEN всегда очищен, а вывод сигнала запрещен.

Разрешение или запрет сегментации (SGTDIS)

Бит SGTDIS регистра SYSCON устанавливает режим сегментации памяти. Если бит SGTDIS =1, при выполнении команд TRAP и RETI только значение регистра IP и PSW автоматически сохраняется на стеке (-*снимается при выполнении команды RETI). В случае если бит SGTDIS=0, значение регистров CSP, PSW и IP автоматически сохраняется на стеке при выполнении команды TRAP и снимается со стека при выполнении команды RETI.

Установка размера системного стека (STKSZ)

Поле битов STKSZ определяет размер (от 32 до 512 слов) системного стека, расположенного во внутреннем ОЗУ.

Регистр состояния процессора PSW

Рис. 9. Регистр состояния процессора PSW
Бит Функция
N Флаг отрицательного знака при выполнении операции. Устанавливается, если при выполнении операции в АЛУ в результате получается отрицательное число.
C Флаг переноса. Устанавливается, если при выполнении операции в АЛУ был установлен бит переноса.
V Флаг переполнения. Устанавливается, если при выполнении операции в АЛУ имело место переполнение.
Z Флаг равенства результата нулю. Устанавливается, если результатом выполнения последней операции в АЛУ является ноль.
E Флаг конца таблицы. Устанавливается, если операнд-источник команды имел значение 8000h (слово) или 80h (байт).
MULIP Флаг прерывания операций деления и умножения. Устанавливается, если во время обработки прерывания выполнение этих операций было прервано.
0: нет прерывания операции деления или умножения
1: операция умножения или деления была прервана
USR0 Пользовательский флаг. Может устанавливаться или сбрасываться программным обеспечением пользователя.
ILVL,HLDEN,IEN Биты, управляющие прерываниямии арбитражем внешней шины.

Статус АЛУ (флаги N, C, V, Z, E, MULIP)

Флаги регистра PSW N, C, V, Z, и E отражают текущее состояние АЛУ. Их значение изменяется в процессе работы АЛУ микроконтроллера. Во время непосредственного изменения состояния регистра PSW (запись или прямая установка) результат установки PSW предыдущей операцией аннулируется. После выполнения системного сброса биты статуса имеют нулевое значение.

Регистр-указатель команды IP

Регистр IP содержит 16-битовый адрес, по значению которого выполняется выборка команды из области памяти, установленной регистром CSP. Программный доступ к содержимому регистра IP может быть осуществлен только косвенно, при помощи команд перехода или вызова подпрограмм.

Во время работы центрального процессора содержимое регистра IP изменяется автоматически после выполнения выборки команды из памяти.

Регистр-указатель сегмента кода CSP

Регистр CSP содержит 8-битовый адрес сегмента (256 сегментов по 64 Кбайт в каждом), определяющий область памяти, из которой выполняется выборка команды. Если сегментация разрешена, полный адрес определяется содержимым регистров IP (адрес команды) и CSP (сегмент). При запрещенной сегментации адрес определяется содержимым регистра IP в нулевом сегменте.

Программный доступ к содержимому регистра CSP может быть осуществлен только косвенно, при помощи команд JMPS, CALLS или RETS, RETI или при помощи MOV, ADD, но только в режиме чтения.

Рис. 10. Адресация через указатель кодового сегмента

Регистр-указатели страниц данных DPPx

Доступ к регистрам DPP0…DPP3 невозможен через битовые режимы адресации, т.е. данные регистры не бит-адресуемы.

Рис. 11. Адресация через указатели страниц данных

Регистр-указатель контекста CP

Регистр CP предназначен для хранения адреса начала текущего банка регистров общего назначения (GPR). Область банков (GPR) располагается в диапазоне адресов внутреннего ОЗУ (F600h…FDFEh) по четным адресам.

При создании банков необходимо следить за тем, чтобы все регистры GPR располагались в пределах внутреннего ОЗУ микроконтроллера. Регистр CP не является бит-адресуемым.

Для быстрой смены контекста с одновременным сохранением прежнего значения на стеке в системе команд микроконтроллера предусмотрена команда SCXT. Ее удобно использовать в программах обработки прерываний для быстрой смены текущего банка GPR.

Рис. 12. Выбор банка регистров с помощью установки регистра CP

Режим короткой четырехбитовой адресации регистров GPR

Режим короткой четырехбитовой адресации регистров GPR (мнемоническое обозначение: Rw и Rb) определяет адрес регистра GPR относительно базового адреса, находящегося в регистре CP. В зависимости от типа операнда (слово Rw или байт Rb) четырех битовое значение адреса GPR перед сложением со значением, хранящимся в указателе контекста, умножается на 2 при адресации к 2-байтовому регистру или берется без изменения при адресации к байтовому регистру.

Режим короткой восьмибитовой адресации регистров GPR

Режим короткой восьмибитовой адресации регистров GPR (мнемоническое обозначение: reg или bitoff) в диапазоне от F0h до FFh четыре младших бита адресуют регистр GPR как показано выше.

Регистр-указатель вершины стека SP

Биты 0, 12, 13, 14, 15-й регистра SP не могут быть изменены при записи, при этом младший бит регистра SP установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр SP доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режиме битовой адресации.

Регистр-указатель переполнения стека STKOV

Значение регистра STKOV во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP меньше содержимого регистра STKOV, генерируется прерывание переполнения стека.

Биты 0, 12-15-й регистра STKOV не могут быть изменены при записи, при этом младший бит регистра STKOV установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение границы стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKOV доступен для операций чтения и записи в режиме непосредственной адресации, но не является бит-адресуемым.

Регистр-указатель дна стека STKUN

Значение регистра STKUN во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP больше содержимого регистра STKUN, генерируется прерывание исчерпания стека.

Биты 0, 12-15-й регистра STKUN не могут быть изменены при записи, при этом младший бит регистра STKUN установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение дна стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKUN доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режимах битовой адресации.

Регистр умножения/деления MDH

Регистр MDH представляет собой старшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDH хранятся 16 старших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDH помещается старшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится 16-битовое значение остатка.

Регистр умножения/деления MDL

Регистр MDL представляет собой младшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDL хранятся 16 младших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDL помещается младшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится значение 16-битовое значение частного.

Регистр MDC

Источник

Оцените статью
Adblock
detector