Файл: Курс лекций по микроконтроллерам.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 1047

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

78

4)Система команд содержит более 300 базовых команд. Все команды контроллера либо двух, либо четырех - байтные. Большинство команд выполняются за 2 МЦ. Исключение составляют лишь команды переходов умножения и деления. Система команд нацелено на реализацию высокоэффективных вычислительных алгоритмов и имеет несколько модификаций команд умножения и деления.

5)Реализовано программно – настраиваемая внешняя системная магистраль. Программно можно задавать различные режимы работы ША и ШД:

–ШД может быть 8- или 16-разрядной;

–ША/ШД может быть совмещенная (мультиплексированная), либо раздельные шины ША и ШД.

Замечание: В системе, реализованной на ОМК С167 может одновременно присутствовать несколько системных магистралей, причем к каждой из магистрали может быть подключены свои устройства.

Имеется встроенный селектор адреса для пяти внешних устройств, генерирующий сигналы выбора CS0,…,CS4. (при этом используется программно – задаваемая полная 24-разрядная дешифрация адреса)

В контроллере для обращения к внутренней ОЗУ и некоторым встроенным устройствам используется режим Х - шины.

Земачание: Режим Х – шины позволяет внешним устройствам, подключенным а ОМК обращаться через системную магистраль к внутренним элементам (ОЗУ, CAN, …) так, как будто эти элементы находятся вне контроллера и подключены к внешней системной магистрали.

6)Реализован встроенный 8-канальный контроллер событий (PEC – Periferial Events Controller).

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

При обработке этих прерываний п/п обработки не вызывается, а весь обмен данными обеспечивается аппаратно контроллером событий за время равное 1 МЦ.

7)Система прерываний контроллера позволяет обслуживать 57 внешних и внутренних источников, причем каждому из них может быть присвоен 1 из 16 уровней приоритета.

8)Реализовано пять 16-разрядных встроенных таймеров счетчика, которые организованы в двух модулях таймера:

–модуль GPT1 (T2, T3, T4) –GPT2 (T5, T6)

79

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

–подсчет времени;

–подсчет импульсов;

–определение длительности импульсов;

–осуществление, как деления, так и умножение частоты и др.

9)Реализованы два 16-разрядных модуля “захват - сравнение”

(CAPCOM1 и CAPCOM2)

Данные модули предназначены для высокоточной фиксации или генерации сигнала во времени. Модуль CAPCOM1 работает совместно с двумя таймерами (Т0 и Т1), а CAPCOM2 – Т7 и Т8.

10)Реализован встроенный модуль ШИМ (PWM).

Данный модуль предназначен для управления мощными устройствами (двигателя) с использованием внешних транзисторных ключевых схем (не ниже пяти транзисторов, как правило, IGBT -транзисторы)

Например, возможна реализация 3-х фазного управления асинхронным двигателем с различной частотой.

Модуль ШИМ имеет 4 канала для одновременного управления четырьмя транзисторными ключами на основе широтной модуляции. Максимальная частота изменения ШИМ 74 КГц.

11)Реализован встроенный модуль АЦП (10-разрядный) с 16канальным аналоговым коммутатором и встроенной схемой выборки – хранения. Время преобразования АЦП порядка ~9мкс.

12)Реализованы два встроенных последовательных интерфейса:

–синхро – асинхронный, типа RS232 (ASC0) (подобный ОМК ВЕ51). Максимальная скорость передачи данных 625 Кбод.

–высокоскоростной синхронный последовательный интерфейс (SSC)- подобный интерфейсу SPI и обеспечивающий передачу данных со скоростью 5 Мбод. Данный интерфейс обеспечивает передачу потрем линиям:

–SCLK;

–MTSR;

–MRST и может использоваться как дополнительная последовательная системная магистраль для подключения ОЗУ, ПЗУ, АЦП.

13) Реализован встроенный контроллер промышленной CAN –сети, обеспечивающий одновременное сопряжение в единую сеть до 100 различных ОМК. Скорость передачи порядка 1Мбод. Все протоколы CAN – сети, а также алгоритм обмена реализуется контроллером на аппаратном уровне.


80

14)Реализовано 111 линий для организации портов ввода/вывода. Все они сформированы в виде 9 портов Р0÷Р8.

15)Реализован встроенный модуль начальной загрузки контроллера (Bootstrap Loader). Загрузчик обеспечивает при включении питания загрузку

впамять ОС или иной управляющей программы. Загрузка осуществляется через последовательный интерфейс ASC0. Т.о. системы построенные на основе ОМК С167 могут работать вообще без ПЗУ, а управляющие программы будут грузиться в ОЗУ и другие модули.

6.3.Внутренняя структура ОМК SAB80C167

Всостав контроллера С167 входит 9 портов ввода/вывода Р0÷Р8 каждый из перечисленных портов может работать в двух основных режимах:

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

– как порт для выдачи управляемых сигналов основных блоков ОМК (альтернативный режим)

Впервом случае использования портов их линии могут быть запрограммированы:

–как обычные ТТЛ входы и выходы (при вводе/выводе)

–как выходы с отрицательным коллектором

Замечание: в режиме с открытым коллектором могут работать порты Р2, Р2,

Р6, Р7, Р8.

Остановимся подробнее на альтернативных функциях портов Р0÷Р8.

6.4. Организация памяти ОМК С167

Память организована с помощью Фон - Неймановской архитектуры, т.е. в едином адресном пространстве 16 Мбайт размещается:

–модули внутренней и внешней ОЗУ;

–внутренний и внешний модули ПЗУ;

–регистры специальных функций (РСФ) (SFR, ESFR) предназначены для управления всеми встроенными модулями ОМК;

–регистры данных и управления всех подключенных внешних устройств.

Все единое адресное пространство объемом 16 Мбайт разбито на 256 сегментов, объем каждого из них 64 Кб.

Каждый сегмент в свою очередь разбит на 4 страницы, с объемом 16 Кб каждая (1024 стр.). Разбивка памяти на сегменты и страницы вызвана малой разрядностью процессорного модуля (16 бит) по сравнению с 24-разрядной ША.

Построим карту памяти контроллера С167. Она определяет распределение ОЗУ, ПЗУ и регистра устройств по всему адресному пространству:


81

SFR, ESFR–регистры специальных функций для управления всеми внутренними ОМК.

XRAM–расширение внутреннего ОЗУ , имеется у отдельных контроллеров модели С167.

CAN–регистры управления встроенного контроллера CAN-сети.

Вся внутренняя память ОМК С167 располагается в системном сегменте памяти. При этом:

–внутреннее ПЗУ объемом 32К размещается в ячейках 0’0000÷0’8000;

–внутреннее ОЗУ объемом 32К располагается вместе с управляющими регистрами SFR и ESFR в области с адресами: 0’F000H÷0’FFFFH.

Внутреннее ПЗУ программируемым способом может переключаться с начала ячеек нулевого сегмента в начало ячеек первого сегмента, при этом в нулевом сегменте с начальных ячеек может располагаться внешнее ПЗУ (удобно при отладке программы).

Рассмотрим подробнее организацию внутреннего ОЗУ контроллера. Посмотрим карту ОЗУ:

Внутреннее ОЗУ размещается в третьей странице памяти, при этом назначения областей ОЗУ следующие:

–область с адресами 0’F600H÷0’FA00H используются для расположения плавающего регистрового банка, состоящего из 16 регистров и переменных пользователя;

–область 0’FA00H÷0’FBFEH используется для расположения системного стека, размер которого может программно задаваться (по умолчанию 256 слов).

–область 0’FCE0H÷0’FCFEH отведена для расположения регистров указателей контроллера событий РЕС.

–область 0’FCFEH÷0’FE00H используется для расположения прямоадресуемых бит, каждый бит в этой области имеет свой адрес и к нему возможно прямое обращение.

Замечание: заштрихованные области регистров SFR ESFR также допускают прямую адресацию бит.

6.5. Системный стек ОМК С167

Располагается в ОЗУ с 0’FA00H и может иметь размер от 32 до 1024 байт. Размер стека задается программно через регистр специальных функций FSR с именем SYSCON. Помимо указанного управляющего регистра имеется два регистра специальных функций SFR, управляющих стеком:

STKOV–определяет верхнюю границу стека (в нем хранится адрес последней ячейки стека);

STKUN–определяет начало стека (в нем хранится адрес последней ячейки стека).

При выходе стека за границы, указанные в STKOV и STKUN генерируется прерывания (ошибка стека). Выход за границу STKOV – переполнение стека, за STKUN –антипереполнение.

82

Запись и чтение информации в стек контролируется регистром SP (Stack Pointer). Этот регистр всегда содержит адрес текущей вершины стека.

При записи информации в стек он растет от старших адресов в ОЗУ к младшим. В стек возможна запись только слов.

При записи информации типа «слово», оно располагается в памяти следующим образом:

–младший байт слова всегда записывается по четному адресу N;

–старший байт слова записывается по нечетному адресу N+1. Замечание: все команды С167 всегда располагается в памяти только по

четным адресам (иначе будет генерироваться ошибка).

Для обращения к данным, хранящимся в памяти в ОМК С167 может использоваться различные способы адресации.

6.6. Способы адресации данных в ОМК С167

ОМК С167 использует три основных способа адресации данных:

–короткая адресация, при этом указывается 8-разрядный (короткий) адрес в команде;

–длинная адресация, если в команде указывается 16-разрядный адрес ячейки или УВВ.

–косвенная адресация, если 16-разрядная ячейка памяти или УВВ содержится в данном из регистров процессора.

Короткая адресация используется для обращения к регистрам общего назначения (РОН) R0,…,R15; к регистрам ESFR и SFR; а также к ячейкам, находящимся в области прямоадресуемых бит.

Короткий адрес (КА) представляет собой 8-разрядное смещение относительно определенного базового 24-разрядного адреса (БА). Адрес ячейки 24-разрядный вычисляется по короткому адресу по следующей формуле:

1, еслиадресуетсябайт

ФА=БА+∆·КА, ∆ =

0, еслиадресуетсяслово

Вслучае КА к РОН предыдущая формула приобретет вид: ФА=СР+∆·КА

СР –контекстный регистр, в нем всегда хранится 24-разрядный адрес начала плавающего банка ОЗУ. (СР=0’F600H÷0’FA00H)

При короткой адресации с регистром SFR формула определения фактического адреса имеет вид: ФА=0’FE00H+∆·КА

КА –8-разрядный адрес конкретного регистра SFR (00H÷0FFH)/

Вслучае короткой адресации к расширенным управляющим регистрам ESFR формула приобретает вид: ФА=0’F000H+∆·КА

Пример: коротких адресаций: MOV R0, R1 ; R0←R1

MOV SP, #2100H ; SP←2100H Иначе MOV 0E7H, #2100H ; SP←2100H


83

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

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

Выделяют два типа длинной адресации:

Пример: длинной адресации с использованием EXTS:

EXTS

#10H, 1 ; устанавливает текущий сегмент с номером 10Н, на

следующую команду

MOV

R1, 4225H

Замечание: в случае сегментной адресации ФА (24-разряд.) вычисляется просто, он равен:

Seg’(16-разрядный адрес), т.е. перед16-разрядным адресом достаточно дописать номер сегмента, в рассмотренном примере: ФА=104225Н (24разрядный)

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

6.7.Общая структура процессорного модуля С167 (CPU C167)

Ядро процессорного модуля включает: –16-разрядное АЛУ;

–аппаратный модуль умножения/деления (MUL/DIV) со своими регистрами: MDC, MDH, MDL;

–аппаратный сдвигатель –для ускоренной реализации операции сдвига;

–битовый процессор для скоростной обработки бит;

–четырех этапный конвейер команд, позволяющий одновременно осуществлять выборку до четырех команд из памяти и обработку АЛУ.

Процессорный модуль также включает банк РОН R0,…, R15, однако аппаратно банк располагается во внутреннем ОЗУ в виде плавающего регистрового банка.

Поясним назначение основных управляющих регистров CPU: –SP, STKOV, STKUN –регистры управления стеком;

–CSP (SFR:04H)-(Code Segment Pointer) указатель текущего сегмента выполняемой программы;

–IP (SFR:…(недоступен, только косвенно))-(Instruction Pointer)

указатель текущей выполняемой команды в сегменте CSP; в IP всегда содержится адрес(смещения) текущей выполняемой команды (0÷65535). Замечание: полный физический 24-разрядный адрес текущей выполняемой команды всегда равен:

CSP : IP

84

–CP (SFR:08H)-(Context Pointer)-контекстный регистр, определяющий начало плавающего регистрового банка во внутреннем ОЗУ (адрес регистра

R0 в ОЗУ) 0’F600H ≤ CP ≤ 0’FDE0H.

Для изменения содержимого СР используется специальная команда: SCXT CP, #0F700H.

–MDH, MDL (SFR: 05, 06H)-старший и младший байт 32-разрядного регистра данных аппаратного умножителя/делителя.

Пример: MULU R1, R2 ; R1·R2→(MDH, MDL) DIV R1 ; (MDH, MDL)/R1→MDL

–MDC (SFR: 87H)- регистр состояния аппаратного умножителя/ делителя, в регистре используется только один четвертый бит MDRIU. Если значение этого бита равна, то следовательно полученный результат умножения (деления) был считан или модифицирован программой;

Основными регистрами управления CPU являются: PSW и SYSCON. PSW (SFR: 88H)-(Program Status Word) слово состояния или регистр

признаков полученного результата ОМК. Его формат:

15

6

5

4

3

2

1

0

ILVL

DMAEN

IEN

USR0

MDRIP

E

Z

V

C

N

PSW содержит следующие биты – признаки результата: –N –отрицательного результата;

–С –признак переноса; –V –признак переполнения;

–Z –признак нулевого результата;

–Е –признак минимального отрицательного числа (80Н-для байтов, 8000Н-для слов);

–MDRIP –бит, показывающий, что результат умножителе/делителе получен не был из-за сбоя его работы в результате запуска новой команды умножения/деления. В этой ситуации генерируется прерывание ошибки умножителя/делителя;

–USR0 –бит пользователя, модифицируется по усмотрению пользователя;

–IEN –бит разрешения прерываний ОМК (IEN=0-запрещены все маскируемые прерывания);

–DMAEN –бит разрешения режима прямого доступа к памяти (ПДПDMA)

–ILVL –поле бит, определяющее уровень приоритета обрабатываемой в данный момент п/п или программы (ОМК имеет 16 уровней приоритета прерываний).

SYSCON (SFR: 89H)-(System Configuration) –регистр задания конфигурации и режима работы основных модулей ОМК.

Формат регистра:

15

13

0

STKSZ

ROMS1

SGMDIS

ROMEN

BYTDIS

CLROUT

WRCNF

X2

X1

X0

упрввление режимом Х - шина


85

–STKSZ – поле бит, определяющее размер стека ОМК реализованного во внутреннем ОЗУ.

256

128

64

32

512

1024

размер стека в байтах

000

001

010

011

100

101

110

111

STKSZ

стек располагается с

0'FDE0H

адреса 0'FAE0

–ROMS1 –бит, переключающий внутреннее ПЗУ из нулевого сегмента в первый, это делается, чтобы с начала нулевого адреса расположить внешнее ПЗУ при отладке. Если ROMS1=1, то начальный адрес внутреннего ПЗУ меняется: 0’0000H→1’0000H.

–SGMDIS –бит, определяет формат адреса возврата, который будет сохраняться в стеке при вызове п/п (в том числе п/п прерываний)

Если SGMDIS=0 в стеке сохраняется полный 24-разрядный адрес→CSP:IP

Если SGMDIS=1 в стеке сохраняется только IP;

–ROMEN –разрешение работы с внешним ПЗУ. При сбросе контроллера бит ROMEN дублирует состояние вывода ЕА контроллера; –BYTDIS –запрещение передачи по 16-разрядной ШД D15…D0 отдельных байт. Если BYTDIS=0, то на разряд Р3.12 ОМК выдается сигнал

ВНЕ (разрешение передачи по ШД старшего байта).

6.8.Особенности системы прерываний ОМК

SAB80C167

Архитектура С167 поддерживает несколько механизмов обработки прерываний:

нормальная обработка прерываний.

обработка прерывания с использованием периферийного контроллера событий (PEC-Pereferial Events Controller).

прерывания-ловушки (trap), генерируется в ответ на ошибку возникшую при выполнении программы или по линии NMI

ускоренная обработка внешних прерываний:

С каждым источником прерывания связаны:

–регистр управления прерывания (xxIC)

–вектор прерывания (IV)

Регистр управления прерыванием (IC) содержит:

–биты определения уровня приоритета (0…15) ILVL

–бит запроса прерывания (xxIR)

–бит разрешения/запрещения прерывания (xxIE)

В ОМК реализуется векторная система прерываний.

С каждым вектором прерывания (IV) связана область в нулевом сегменте памяти, состоящие из четырех байт: Адрес области = 4·IV

При возникновении прерывания осуществляется переход на эту область ,где хранится команда безусловного перехода на п/п обработки.