Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1559
Скачиваний: 1
дополнительно может производиться прерываниями таймера 2, если в этом таймере задан асинхронный режим работы от вспомогательного генерато ра.
На структурной схеме (рис. 4) и в дальнейшем при описании микро контроллеров будут использованы названия и обозначения, используемые фирмой ATMEL. Внешние выводы (рис.4) микроконтроллера:
•VCC и GND (общий) - источник питания цифровых элементов;
•AVCC, AGND (общий аналоговый), AREF - питание и опорное на пряжение АЦП и его мультиплексора;
•RESET - сигнал внешнего сброса (низкий уровень длительностью бо лее 50 не), при включении питания сброс микроконтроллера произ водится автоматически;
•XTAL1 и XTAL2 - соответственно вход и выход тактового генератора (для подключения частотозадающего кварцевого резонатора и общей синхронизации с другими устройствами), аналогичные электроды вспомогательного генератора асинхронного режима таймера 2 - вы воды РС6 и РС7;
•РА0-РА7, РВ0-РВ7, РС0-РС7, PD0-PD7 - 32 линии ввода-вывода, объ
единены в 4 восьмиразрядных порта (PORTA, PORTB, PORTC, PORTD).
PORTA, PORTB, PORTC, PORTD могут использоваться как стандартные двунаправленные порты ввода-вывода либо для передачи сигналов других устройств микроконтроллера. Альтернативные функции PORTA: передача аналоговых сигналов через мультиплексор на вход АЦП. Альтернативные функции PORTB: РВО и РВ1 - внешние входы ТО и Т1 таймеров 0 и 1 соот ветственно, РВ2 и РВЗ - входы AIN0 и AIN1 аналогового компаратора, ос тальные - сигналы синхронного последовательного интерфейса SPI (PB4 - SS, PB5 - MOSI, PB6 - MISO, PB7 - SCK). Альтернативные функции PORTC: PC6 и РС7 - вход и выход вспомогательного генератора таймера 2. Альтернативные функции PORTD: PD0 и PD1 - сигналы RXD и TXD асин хронного последовательного интерфейса UART соответственно, PD2 и PD3 - сигналы внешних прерываний INTO и INT1, PD4-PD7 - сигналы ОС 1В, ОС1 A, ICP, OC2 таймеров 1 и 2.
42
2.3. Запоминающие устройства микроконтроллера AT90S8535
Как указывалось ранее, запоминающие устройства микроконтроллера - FLASH, RAM, EEPROM, регистры общего назначения и регистры вводавывода образуют три отдельных адресных пространства (рис. 5).
Память программ |
Память данных |
Память данных |
$000 |
$000 |
$000 |
Регистры! общего |
||
назначения |
||
$01F |
EEPROM |
|
$020 |
||
(0,5 К ж 8) |
||
FLASH |
Регистры |
|
ввода-вывода |
||
(4Kxt6) |
$05F |
|
$060 |
$1FF |
|
RAM |
||
0,5 К х 8) |
||
$25F |
||
$FFF |
||
Рис. 5. Память микроконтроллера AT90S8535 |
||
FLASH - постоянное |
запоминающее устройство |
и предназначено для |
хранения кодов программы, адресация в этой области памяти производится программным счетчиком. Изменение адреса FLASH в программном счет чике производится в соответствии со стандартной организацией микропро цессорной системы. Как и обычно, для изменения адреса в программном счетчике можно применять команды управления микроконтроллера (см. главу 1). FLASH можно использовать и для хранения констант, чтение этих констант производится специальной командой "lpm" с регистровой адреса цией через регистр Z.
FLASH объемом 8 Кбайт предназначена для хранения кодов программ и констант, в том числе и при выключенном питающем напряжении, и состо-
43
ит из 4 К двухбайтовых ячеек с адресами $000 - $FFF\ Запись данных про изводится специальным программатором в процедуре внутрисистемного программирования, допустимое количество циклов перезаписи не менее 1000. Большинство кодов команд имеют 16-битовый формат, поэтому, как правило, одна ячейка флэш-памяти хранит код 1 команды или две 8- битовых константы.
В памяти данных EEPROM образует отдельное адресное пространство объемом 0,5 К однобайтовых ячеек с адресами $000 - $ IFF и хранением данных при выключении питающего напряжения. Доступ к данным в EEPROM производится специальной процедурой с особым алгоритмом ад ресации через соответствующие регистры из файла регистров вводавывода. Эта процедура по организации ближе к процедурам ввода-вывода (глава 1) и будет рассмотрена позднее, программно доступно и чтение, и запись данных. Запись данных также может производиться программато ром в процедуре внутрисистемного программирования.
Третье адресное пространство является основной рабочей областью па мяти данных и включает 32 регистра общего назначения с адресами $000 - $01F, 64 регистра ввода-вывода с адресами $020 - $05F и, собственно, RAM объемом 0,5 К однобайтовых ячеек с адресами $060 - $25F. Такая ор ганизация памяти данных позволяет адресовать все регистры как ячейки RAM с известными адресами либо использовать для их адресации соответ ствующие обозначения или адреса в регистровых файлах. Например, ре гистр управления АЦП имеет адрес RAM $026, адрес в файле регистров ввода-вывода $06 или символическое имя ADCSR.
Адресация ячеек памяти в третьем адресном пространстве производится стандартными способами. При прямой адресации адрес содержится в ко мандах sts k, Rr и Ids Rd, к (см. главу 4), где к - адрес в диапазоне $000- $25F, Rr и Rd любые из регистров общего назначения. Косвенная адресация возможна регистрами X, Y, Z. Каждый из этих адресных регистров образо ван парой регистров общего назначения: X - r27-r26, Y - r29-r28, Z - г31гЗО. Также возможна стековая адресация с помощью указателя стека (пара регистров SPH-SPL файла регистров ввода-вывода), обычно в качестве вершины стека используется наибольший адрес ОЗУ с символическим именем RAMEND, для данного микроконтроллера - это физический адрес $25F. Данные в командах с непосредственной адресацией являются эле ментами кодов программы и вместе с ними хранятся в FLASH.
Адресация регистров общего назначения стандартная: в команде указы вается номер регистра (например, mov r2, г0 - передать байт данных из г0 в г2) или присвоенное ему в программе символическое имя (например, mov
Символ $, как и символ Ох применяется для обозначения шестнадцатиричного формата дан ных 4 4
r2, temp, где temp - символическое имя регистра). Обращение к файлу ре гистров ввода-вывода производится командами in, out (например, out SPL, г16 - передать байт данных из регистра г16 в регистр ввода-вывода SPL) с использованием, как правило, символических имен (символические имена регистров ввода-вывода приведены в приложении).
Необходимо обратить внимание не только на отличия в командах адре сации регистров, но и на их совершенно разное функциональное назначе ние. Регистры общего назначения, как и в любой микропроцессорной сис теме, содержат данные для программного преобразования. Следовательно, команды преобразования данных выполняются только над содержимым ре гистров общего назначения. Дополнительная особенность микроконтрол лера - каждый регистр общего назначения может быть аккумулятором при выполнении любых команд преобразования данных. Система команд и ор ганизация программной обработки данных микроконтроллеров семейства AVR достаточно типична для микропроцессорных средств и будет рас смотрена позднее.
С точки зрения программного преобразования регистры ввода-вывода, как правило, доступны только для операций чтения и записи. Байты дан ных в регистрах ввода-вывода строго связаны с работой соответствующих аппаратных интерфейсных средств. Поэтому обмен данными с этими реги страми производится либо для программного управления функциями и ре жимами аппаратных интерфейсных средств, либо для приема от них дан ных, сформированных в результате выполнения заданных функций.
Функции, выполняемые комплексом аппаратных интерфейсных средств, являются важнейшими характеристиками микроконтроллера и в значи тельной степени определяют эффективность его работы. Особенности при менения регистров ввода-вывода для организации взаимодействия с аппа ратными интерфейсными средствами рассматриваются в следующей главе.
45
3. АППАРАТНЫЕ ИНТЕРФЕЙСЫ МИКРОКОНТРОЛЛЕРА AT90S8535
Дополнительные аппаратные средства микроконтроллеров, реализую щие стандартные интерфейсные функции, позволяют существенно расши рить возможности программной обработки данных. Возможность решения нескольких задач параллельно с программным преобразованием данных не только повышает скорость работы, но и заметно упрощает алгоритмы и ра бочие программы. Следует помнить, что любые средства аппаратной реа лизации обладают весьма ограниченными пределами изменения алгорит мов и параметров работы, их функции строго специализированы, поэтому они и должны рассматриваться как вспомогательные средства.
Хотя основные свойства микропроцессорных средств определяются про граммной реализацией функций, их эффективность может сильно зависеть от набора вспомогательных средств. Наиболее стандартизованы различные интерфейсные функции, кроме того, интерфейсы в системах автоматизации являются важнейшим элементом обеспечения корректного взаимодействия. Именно по этим причинам вспомогательные аппаратные средства микро контроллеров предназначены в первую очередь для выполнения стандарт ных интерфейсных функций.
Интерфейсные средства микроконтроллера AT90S8535 достаточно ти пичны и поддерживают функции ввода-вывода в параллельном и последо вательном форматах, обработки аналоговых сигналов, формирования за данных временных интервалов. В данной главе рассматриваются режимы работы этих средств и вопросы применения регистров ввода-вывода для организации взаимодействия с ними. Используемые для пояснений фраг менты программ ориентированы на мнемонику и систему команд микро контроллера AT90S8535, которая рассматривается детальнее в главе 4.
3.1. Параллельные порты ввода-вывода
Как указывалось ранее, микроконтроллер содержит 32 линии вводавывода (рис. 4), объединенные в 4 двунаправленных порта (А, В, С, D). Управление каждым портом производится тремя регистрами порта из фай ла регистров ввода-вывода, символические имена этих регистров содержат наименование порта. Так как процедуры управления для всех портов ана логичны, рассмотрим их на примере порта А.
Регистр управления порта А с символическим именем DDRA, адресом в файле регистров ввода-вывода $1А, адресом RAM $03А программно дос тупен и для чтения, и для записи и определяет направление передачи дан-
46
ных: 0 - ввод, 1 - вывод. Каждый бит DDRA* (DDA0 - DDA7) управляет соответствующей линией ввода-вывода и программируется независимо, начальное значение всех битов DDRA - нулевое. То есть в процессе работы значение каждого бита не зависит от значений других битов, чтением со держимого регистра DDRA можно определить направление передачи дан ных по соответствующим линиям ввода-вывода в данный момент времени.
Пример 1: |
|
ml: ldirl6, ObOOOllllO |
; запись в г16 константы, указанной |
; в двоичном формате, |
|
т2: out DDRA, г16 |
; пересылка из г16в регистр управления DDRA. |
В соответствии с байтом управления в регистре DDRA линии РА7, РА6, РА5, РАО будут работать в режиме ввода, а РА4, РАЗ, РА2, РА1 - в ре жиме вывода сигналов.
Регистр ввода данных PINA (адрес в файле регистров ввода-вывода - $19, адрес RAM - $039) программно доступен только для чтения (in rl6, PINA - пример команды чтения данных из PORTA) и обеспечивает считы вание сигналов, поступающих в данный момент времени на соответствую щие линии ввода-вывода (например, линия РА5 в режиме ввода формирует бит PINA5 регистра ввода данных). Никакого хранения данных регистр PINA не выполняет.
Регистр вывода данных PORTA (адрес в файле регистров ввода-вывода - $1В, адрес ОЗУ - $03В) программно доступен и для чтения, и для записи, обеспечивает хранение данных и выдачу их в режиме вывода на соответст
вующие |
линии ввода-вывода (например, PORTA4 - РА4). При |
чтении |
|
PORTA передает данные, ранее записанные в этот регистр для вывода. |
|||
Пример 2: |
|||
тЗ: ldirl6, ObOWlOWl ; запись в г16 константы, указанной |
|||
т4: out |
PORTA, r!6 |
; в двоичном формате, |
|
; пересылка из г!6 в выходной регистр PORTA, |
|||
т5: in г15, PINA |
; пересылка из входного регистра PINA в г16. |
||
Если полагать, что режим порта А задан в примере 1, то РА4-1, |
РАЗ-0, |
||
РА2-1, РА1~0 и определяются соответствующими битами константы,
В дальнейшем будут использоваться только символические имена регистров, в программах на ассемблере эти стандартные имена определяются специальным файлом с расширением .inc. Такие файлы существуют для каждой модели микроконтроллера (например, "8535def inc") и включаются в тексты программ. Таблица соответствия символических имен и физических ад ресов приведена в приложении.
47
записанной командами тЗ, т4 в выходной регистр порта. Чтение байта из входного регистра (команда т5) в этих битах, настроенных в режим вывода, даст такие же значения сигналов; в остальных битах, настроен ных в реоким ввода, будет определяться поступающими на них внешними сигналами.
Буферы портов в режиме вывода позволяют формировать логические сигналы с током нагрузки до 20 мА. В режиме ввода, кроме приема внеш них сигналов, буферы позволяют подключать к входам портов внутренние резисторы (pull-up), задавая на входах при отсутствии внешних сигналов уровень логической единицы. Например, DDA7=0 (ввод данных) при PORTA7=:l внутренний резистор буфера подключен и при отсутствии внешнего сигнала будет задавать на РА7 высокий уровень. Это позволяет устранить возможные неопределенности входных сигналов, в частности, при отключении внешних источников сигналов. При появлении сигнала внешнего источника уровень РА7 будет задаваться этим внешним сигна лом. При PORTA7==0 внутренний резистор отключен и никакого влияния не оказывает.
Для остальных портов ввода-вывода используются такие же регистры с аналогичными именами и заменой буквы, обозначающей наименование порта. Логическая организация параллельных портов достаточно проста и очевидна: пересылка данных в регистры ввода-вывода любого порта ото бражается на его работе в течение одного такта микроконтроллера. К их существенным свойствам можно отнести как полную взаимную независи мость портов, так и полную независимость отдельных линий ввода-вывода: функции каждой линии ввода-вывода можно программировать и использо вать абсолютно независимо. Следует учитывать, что другие интерфейсные средства формируют сигналы через эти же линии ввода-вывода. Передачу этих сигналов в дальнейшем будем называть альтернативными функциями портов.
При использовании альтернативных функций портов ввода-вывода в ре гистрах управления должны задаваться соответствующие этим функциям направления передачи сигналов. Очевидно, что одновременное программи рование нескольких функций для одной и той же линии ввода-вывода не возможно. Более детальное описание альтернативных функций приведено далее при описании соответствующих аппаратных средств микроконтрол лера.
3.2. Последовательный интерфейс SPI
Последовательный интерфейс SPI обеспечивает синхронный ввод-вывод данных в последовательном формате через линии ввода-вывода порта В сигналами SCK (альтернативная функция линии ввода-вывода РВ7), MOSI (альтернативная функция линии РВ5), MISO (альтернативная функция 48