русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Адресація регістрів введення/виводу і пам'яті SRAM

Регістри введення/виводу, також зображені на рис. 1, представляють собою набір регістрів управління процесорного ядра і регістрів управління і даних апаратних вузлів AVR-мікроконтролера. Регістрами введення/виводу є регістри SREG, MCUSR і покажчик стека SPH:SPL а також регістри, керуючі системою переривання мікроконтролера, режимами підключення EEPROM пам'яті, сторожовим таймером, порти введення/виводу та іншими периферійними вузлами. Вивчення даних регістрів зручно виконувати одночасно з вивченням конкретного периферійного вузла.

Всі регістри вводу/виводу можуть читатися і записуватися через РОН за допомогою команд IN, OUT (див. групу команд передачі даних додаток 1). Регістри введення/виводу, що мають адреса в діапазоні $00 - $1F (знак $ вказує на шістнадцяткову базу числа), володіють можливістю побітовою адресації. Безпосередня установка і скидання окремих позицій цих регістрів виконується командами SBI і CBI (див. групу команд роботи з бітами додаток 1). Для ознак результату операції, які є бітами регістра вводу/виводу SREG, є цілий набір команд установки і скидання. Команди умовних переходів в якості своїх операндів можуть мати як біти-ознаки результату операції, так і окремі розряди побитно адресованих регістрів введення/виводу.

На рис. 2.3 показано розподіл адрес в єдиному просторі адрес. Молодші 32 адреси ($0 - $1F) відповідають оперативними регістрів тобто РОН. Наступні 64 адреси ($20 - $5F) зарезервовані для регістрів введення/виводу. Внутрішня SRAM у всіх AVR починається з адреси $60.

Таким чином, регістри вводу/виводу мають подвійну нумерацію. Якщо використовуються команди IN, OUT, SBI, CBI, SBIC, SBIS, то слід використовувати нумерацію регістрів введення/виводу, що починається з нуля (назвемо її основний). Якщо ж до регістрів вводу/виводу доступ здійснюється як до комірок пам'яті, то необхідно використовувати нумерацію єдиного адресного простору оперативної пам'яті даних AVR. Очевидно, що адреса в єдиному просторі адрес пам'яті даних виходить шляхом збільшення числа $20 до основного адресою регістра введення/виводу.

Для зберігання оперативних даних програміст, крім РОН, може використовувати внутрішню і зовнішню (якщо вони є) блоки SRAM (див. рис. 2.3).

 

 

Рис. 2.3. Програмна модель AVR-мікроконтролерів.

Робота з зовнішньої SRAM може бути програмно дозволена/заборонена установкою/скиданням біта SRE в регістрі вводу/виводу MCUSR.
Операції обміну з внутрішньої оперативною пам'яттю AVR-мікроконтроллер виконує за два машинних циклу. Доступ до зовнішньої SRAM вимагає одного додаткового циклу на кожен байт порівняно з внутрішньою пам'яттю. Крім того, установкою біта SRW в регістрі вводу/виводу MCUSR можна програмно збільшити час обміну з зовнішньої SRAM ще на один додатковий машинний цикл очікування.

Виконувати арифметико-логічні операції та операції зсуву безпосередньо над вмістом комірок пам'яті не можна. Не можна також записати константу або очистити вміст комірки пам'яті. Система команд AVR дозволяє лише виконувати операції обміну даними між комірками SRAM і оперативними регістрами. Перевагою системи команд можна вважати різноманітні режими адресації комірок пам'яті. Крім прямої адресації є наступні режими: непряма, непряма із пост-инкрементом, непряма з пре-декрементом і непряма зі зміщенням.

Оскільки внутрішня і зовнішня SRAM входять в єдине адресний простір (разом з оперативними регістрами і регістрами введення/виводу), то для доступу до комірок внутрішньої і зовнішньої пам'яті використовуються одні і ті ж команди.
Слід зазначити, що регістри введення/виводу не повністю використовують відведені для них 64 адреси. Невикористовувані адреси зарезервовані для майбутніх застосувань, додаткових елементів пам'яті за цими адресами не існує.

Переглядів: 9216

Повернутися в зміст: Архітектура мікроконтролерів




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн