Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

Процессорное ядро

 

 

 

Встроенную память микроконтроллера можно разделить на два типа: память программ и память данных.

В МК реализовано 1024 14-разрядных перепрограммируемых ячеек памяти. Работа с памятью осуществляется с помощью 13-разрядного счетчика команд. Учитывая, что 13 разрядов – обращение к 8кб, то обращение к физически не реализованной памяти приводит к обращению к реализованной в адресном пространстве от 0000 до 05FF. Память программ представлена 2-мя векторами: адрес сброса 000, вектор прерывания 004. Память предназначена для хранения программ пользователя и обеспечивает до 10 000 циклов записи.

 

Данный МК рассматривает 2 типа памяти: регистровая память данных (ОЗУ) и постоянная память данных (реализуется как дополнительный периферийный модуль).

Регистровая память данных разделена на два банка и содержит 2 блока, которые содержат регистры общего (GPR) и специального (SFR) назначения. Первые 32 ячейки каждого банка зарезервированы под регистры специального назначения (нулевой банк – регистры с адресом 00-1F, первый банк – регистры с адресами 80-9F). Регистры с 20-5F адреса реализованы в нулевом банке, в первом являются физически нереализованными (обращаются к нулевому банку). Регистры общего назначения предназначены для хранения операндов, переменных, участвующих в операциях при выполнении программ пользователя.

 

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

При любом виде сброс МК происходит очищение обоих регистров. Возможна 2 способа загрузки данных в счетчик команд:

1) непосредственная загрузка младшего регистра СК

2) загрузка СК при выполнении команды вызова подпрограммы или команд переходов.

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

При выполнении табличного чтения вычисляемых переходов, пользователю необходимо отслеживать, чтобы содержимое регистра PCL не пересекло границу блока памяти (256байт), т.к. операции над младшим разрядом не вызывает изменения содержимого старшего.

Регистр INDF (0,80), FSR (3,83) предназначены для организации косвенной адресации к регистровой памяти данных. Для выполнения косвенной адресации необходимо обратиться к физически нереализованному регистру INDF. При этом обращение к этому регистру фактически вызывает действие с регистром, адрес которого указан в регистре FSR. Косвенное чтение непосредственно регистра INDF дает результат 0, запись не вызывает никаких действий.

 

Организация стека.

Рассматриваемый МК имеет 8-уровневый 13-разрядный аппаратный стек. Стековая память не имеет отображения на память программ и память данных, т.е. при помощи стандартного набора команд нельзя производить запись и чтения данных из стека. Загрузка и считывание данных производится автоматически при выполнении инструкции перехода на подпрограмму (команда call) или обработка прерывания, путем загрузки в него значения счетчика команд. Чтение из стека производится аппаратно при выполнении операции команды возврата из подпрограммы. При данной процедуре значение регистра PCL не изменяется. Стек работает как циклический буфер, т.е. после 8-ми записей стек, 9-ая записывается на место 1-ой, тем самым не сохраняя начальные адреса возврата. Контроль за переполнением стека возлагается на программу пользователя. В МК базового семейства стек является 2-х уровневым.

Регистр OSCCAL – калибровка генератора. Данный регистр содержит 6 функциональных разрядов, которые представляют собой загружаемую константу, позволяющую регулировать собственный внутренний RC генератор. (Константа 100000 соответствует частоте 4 МГц).

Регистр STATUS – доступен для чтения и записи и играет роль регистра признаков/флагов. Условно признаки регистра делятся на 3 части:

1) флаги состояния АЛУ: C, DC, Z. Данные признаку используются для формирования условий.

С – признак переполнения. В зависимости от операции выполняет 2 функции:

а)при операциях сложения и логических сдвигов выполняет бит переноса в 9 разряд результата.

б)при операциях вычитания формирует признак знака.

DC – аналогичен С, только для двоично-десятичных чисел.

Z – признак нуля.

2) Флаги причины сброса МК: TO, PD. Данные признаки не изменяются при программном обращении к регистру STATUS.

3) Флаг выбора банка памяти данных RP0. 0 в этом разряде определяет рабочим 0-ой банк, 1 – 1-ый банк. Существуют МК, в области регистровой памяти которых 4 банка. В этом случае регистр STATUS содержит дополнительный бит RP1.

Регистр OPTIONREG – содержит биты управления базовых модулей МК:

-- биты управления таймером TMR0(T0SC, T0SE, PSA, PS0..2).

T0SC - выбор тактового сигнала для таймера. 0 – модуль работает как таймер (от внутренней системной тактовой частоты), 1- от внешних сигналов, подаваемых на вход T0CKI (режим счетчика).

T0SE – определяет фронт приращения счетных сигналов в режиме счетчика.

PSA – бит направления подключения встроенного предделителя: 0 – к таймеру TMR0, 1 – к специальному сторожевому таймеру.

PS0..2 – определяет коэффициент предделителя от 1/1 до 1/128.

-- INTEDG - определяет активный фронт внешнего прерывания INT.

-- GPPU - разрешение работы подтягивающих регистров на входе GP.

 

6.2 Организация периферийных модулей

6.2.1 Порты ввода/вывода

 

 

В рассматриваемом МК реализовано 6 каналов порта ввода/вывода, т.е. один порт в неполном объеме. Существуют МК, в которых количество портов может быть до 4-х и носят названия соответственно Port А, B, C, D. Все каналы портов ввода/вывода. Все каналы портов мультиплексированы с дополнительными функциями периферийных модулей МК. При этом линия порта ввода/вывода может работать как порт ввода/вывода или как линия периферийных функций. Непосредственно работу портов задает регистр GPIO, который и представляет собой 6-разрядный порт, т.е. логическая 1 в соответствующем разряде определяет высокий уровень на данном выходе порта. Все каналы GPIO имеют соответствующие биты направления, расположенных в регистре TRISIO, позволяющие настраивать канал как вход или выход. Запись «1» в TRISIO переводит соответствующий выходной буфер в 3-е состояние. Запись «0» в регистр TRISIO определяет соответствующий канал как выход, содержимое защелки GPIO передается на вывод микроконтроллера. Вывод GP3 может работать только на вход, чтение соответствующего бита TRISIO дает результат «1».

Чтение регистра GPIO возвращает состояние на выводах порта, а запись производится в защелку GPIO. Все операции записи в порт выполняются по принципу «чтение - модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку. Биты регистра TRISIO управляют направлением канала GPIO, даже если они используются как аналоговые функции, т.е. пользователь программно должен задать режимы работы внешних портов. Дополнительно порты GPIO содержат индивидуальные биты разрешения прерывания по изменению уровня сигналов, данная информация хранится в регистре IOGB. Кроме этого каналы программно могут подключать внутренние подтягивающие резисторы при работе портов на вход. Данные резисторы автоматически выключаются при настройке порта на выход. Информация о данных резисторах находится в регистре WPU. Работа прерывания по изменению уровня сигнала на входе заключается в следующем: сигнал на выходе GPIO постоянно сравнивается со значением, сохраненным при последнем чтении регистра GPIO. В случае несовпадения одного из значений формируется флаг события и пре разрешенном прерывании генерируется прерывание.

 

Можно условно выделить:

1)блок управления портом. Сюда входят 4 D-триггера, представляющие собой защелки соответствующих разрядов регистров: GPIO, TRISIO, WPU, IOCB.

2)дополнительные функции. Подтягивающий резистор, представляющий собой p-n-переход с модулем управления (R=50кОм).

3)блок формирования прерывания. 2 динамические D-триггера с выходным сигналом формирования события.

Порт ввода/вывода имеет защитные диоды, позволяющие принимать сигналы от -0,6 относительно земли до + 0,6 В от напряжения питания.

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

· GPIO

· TRISIO (регистр направления)

· ANSEL (регистр выбора аналогового или цифрового канала)

· WPU, IOCB

· INTCON, OPTIONREG, CMCON (регистры определяют дополнительные функции портов)

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 674; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.