Показаны сообщения с ярлыком микроконтроллеры. Показать все сообщения
Показаны сообщения с ярлыком микроконтроллеры. Показать все сообщения

воскресенье, 1 февраля 2009 г.

Косвенная адресация данных

Косвенная адресация подразумевает, что указатель на аргумент размещен не явно в аргументе, а в регистре-указателе. В базовой серии, а также в среднем подсемействе микроконтроллеров Р1С этот регистр называется FSR (File Select Register — регистр выбора файла). Команды с косвенной адресацией не требуют аргумента, поскольку он загружается заранее в FSR.

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

Это означает, что должен задаваться какой-то особенный аргумент, который не является "правильным" аргументом данных. В базовой серии и среднем подсемействе микроконтроллеров Р1С это — адрес 0, следовательно, с таким адресом не может быть задан физический файловый регистр. Таким образом, файловый регистр с адресом 0, — это символический регистр, который в ассемблере обозначается именем INDF (косвенный файловый регистр).

Кроме того, в языке ассемблера нет никакого дополнительного кода операции для косвенной адресации, например:
ADDWF INDF.W
В старшем подсемействе микроконтроллеров PIC присутствует три регистра FSR, что повышает удобство программирования. Более подробно об этом сказано в главе "PIC18".

Память данных

Для адресации файловых регистров в распоряжении имеется ограниченное число разрядов в словах команд (в базовой серии PIC — 5 разрядов, с помощью которых можно адресовать 32 файловых регистра). Файловые регистры от 0 до 7 применяются для специальных целей. Их называют Special Function Register (SFR) — регистрами специального назначения. Таким образом, для использования в качестве пользовательских переменных остается еще 24 разряда.

В среднем подсемействе микроконтроллеров PIC используется 7 разрядов, которых достаточно уже для адресации 128 файловых регистров. Файловые регистры от 0 до 31 — регистры специального назначения (SFR). так что для переменных остается 96 байт.

Именно в малом размере адресного пространства заключается главный недостаток сжатых команд. Хотя большинство микросхем предоставляют до 4 банков ПО 32 и 128 файловых регистров, операции по переключению банков не совместимы с удобством программирования. При каждом обращении к файловому регистру необходимо обращать внимание на то. правильно ли выбран банк.

Разряды для выбора банка расположены в FSR для базовой серии и в регистре STATUS для среднего подсемейства микроконтроллеров РIС. С некоторого времени MPASM позволяет выбирать банк с помощью ассемблерного макроса:
BANKSEL WERT ;WERT - пример любой переменной
По этому макросу ассемблер вставляет команды, принадлежащие определенно* MJ типу микроконтроллеров, для выбора банка, в котором находится переменная
WERT.

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

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

Для упрощения этой процедуры компанией Microchip при разработке микроконтроллеров PIC был принят ряд мер. Так, в PIC с четырьмя банками присутствуют области адресов, расположенные друг над другом, к которым можно обращаться независимо от выбора банка (так называемая "область доступа"). Выло бы бессмысленно дополнительно перед каждым доступом к переменной выполнять переключение банка- В этой области доступа располагают, например, рабочие переменные стандартных подпрограмм. Наиболее важные регистры специального назначения. к которым часто обращаются (рабочие регистры), обычно располагаются в банке 0. Регистры специального назначения, расположенные в банке 1. используются, преимущественно, для инициализации.

пятница, 23 января 2009 г.

Перспективы микроконтроллеров

Ежегодно на рынке появляются десятки новых типов микроконтроллеров. Также и в сфере периферии уже нельзя довольствоваться только испытанными, давно известными устройствами.

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