2. Логическая структура микропроцессорной системы
Для выполнения своих функций микропроцессор должен иметь регистры, сумматоры, логические схемы, дешифраторы и другие элементы, которые соединены между собой с помощью шин — соединительных линий. Схема, которая показывает, из каких блоков состоит микропроцессор, и связь между этими блоками, называется структурной схемой микропроцессора.
Функции, реализуемые микропроцессором, определяются не только его структурой, но и последовательностью управляющих слов (команд). При изменении этой последовательности изменяется и выполняемая микропроцессором функция. Для комплексной характеристики возможностей микропроцессора пользуются понятием «архитектура микропроцессора».
Архитектура микропроцессора — это его логическая организация, определяемая возможностями микропроцессора по аппаратной или программной реализации функций, необходимых для построения микроЭВМ.
Архитектура микропроцессора отражает:
а) структуру микропроцессора;
б) способы обращения ко всем элементам структуры;
в) способы представления и форматы данных;
г) набор операций, выполняемых микропроцессором;
д) способы указания адреса данных;
е) форматы управляющих слов, поступающих извне;
ж) характеристики управляющих сигналов;
з) реакцию микропроцессора на внешние сигналы.
Зная архитектуру микропроцессора и всей микропроцессорной системы, можно составить определенную последовательность команд, называемую программой, которая обеспечит выполнение заданной функции.
Обобщенную схему микропроцессора можно представить в виде, приведенном на рис. 7.2. В этой структуре используется трехшинная организация работы. Шиной называют группу линий передачи информации, объединенных общим функциональным признаком. Приняты такие условные обозначения:
БА,
БД — буферные регистры адресов и данных;
БП — блок прерывания;
РОН — регистры общего назначения;
ИР — индексные регистры;
СТЕК — блок регистров;
УС — указатель стека;
ПС - программный счетчик;
А — аккумулятор;
АЛУ — арифметическо - логическое устройство;
РП — регистр признаков;
СИД — схема «инкремент-декремент»;
УУ — устройство управления;
РК — регистр команд;
ДК — дешифратор команд.
Конкретные микропроцессоры, как правило, не содержат всех узлов, показанных на рис. В этих случаях соответствующие функции могут выполняться программно, а в качестве некоторых специальных регистров могут использоваться РОН или ячейки памяти. В ряде микропроцессорных комплексов отдельные функциональные узлы могут выполняться в виде отдельных БИС.
Для управления преобразователем в микроконтроллере используются регистры:
Регистр управления мультиплексором ADMUX (ADC Multiplexer Selection Register);
Регистр управления аналого-цифровым преобразователем ADCSR (ADC Control and Status Register);
Регистры данных ADCL и ADCH (ADC Low и ADC High);
Регистр состояния микроконтроллера SREG (Status Register).
Биты | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADMUX $07($27) | REFS1 | REFS0 | ADLAR | MUX4 | MUX3 | MUX2 | MUX1 | MUX0 |
ADCSR $06($26) | ADEN | ADSC | ADFR | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 |
ADCH $05($25) | SIGN | ADC9 | ADC8 | |||||
ADCL $04($24) | ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADC1 | ADC0 |
SREG $3F($5F) | I |
Рис. 7. Регистры, используемые АЦП
Аналого-цифровой преобразователь может работать в двух режимах: режиме однократного преобразования и в циклическом режиме. В режиме однократного преобразования каждое преобразование инициируется пользователем. В циклическом режиме аналого-цифровой преобразователь осуществляет выборку и обновление содержимого регистра данных непрерывно. Выбор режима производится битом ADFR (ADC Free Run ) регистра ADCSR.
Работа аналого-цифрового преобразователя разрешается установкой в состояние 1 бита ADEN в регистре ADCSR. Преобразование начинается с установки в состояние 1 бита начала преобразования ADSC (ADC Start Conversion). Если в процессе выполнения преобразования производится смена канала данных, то ADC вначале закончит текущее преобразование, а потом выполнит переход к другому каналу.
Поскольку аналого-цифровой преобразователь формирует 10-разрядный результат, то по завершении преобразования результирующие данные размещаются в двух регистрах данных ADCH и ADCL. Для обеспечения соответствия результирующих данных считываемому уровню используется специальная логика защиты. Этот механизм работает следующим образом: при считывании данных первым должен быть считан регистр ADCL. Если регистр ADCL считан, обращение аналого-цифрового преобразователя к регистрам данных блокируется. Таким образом, если после считывания состояния ADCL, но до считывания ADCH, будет завершено следующее преобразование, ни один из регистров не будет обновлен и записанный ранее результат не будет искажен. Обращение аналого-цифрового преобразователя к регистрам ADCH и ADCL разрешается по завершении считывания содержимого регистра ADCH.
Аналого-цифровой преобразователь имеет свое собственное прерывание ADC (вектор $1С), которое может быть активизировано по завершению преобразования. Когда обращение к регистрам запрещено, в процессе считывания регистров ADCL и ADCH, прерывание будет активизироваться, даже при потере результата.
Регистр ADMUX (ADC Multiplexer Selection Register) предназначен для управления входным аналоговым мультиплексором
Биты 7 и 6 - REFS1..0 (Reference Selection Bits) - обеспечивают выбор эталонного напряжения на входе AREF аналого-цифрового преобразователя. Выбор производится в соответствии с таблицей 1. Изменение этих битов во время процесса преобразования приводит к ошибке. Для ее исключения пользователь должен игнорировать первый результат после изменения битов. Внутренние источники напряжения не могут быть использованы, если к контакту AREF приложено внешнее напряжение.
Таблица 1. Выбор источника опорного напряжения АЦП
REFS1 | REFS0 | Выбор источника напряжения |
0 | 0 | AREF, внутреннее напряжение Vref отключено |
0 | 1 | AVCC с внешним конденсатором на контакте AREF |
1 | 0 | Резерв |
Бит 5 - ADLAR (ADC Left Adjust Result) - воздействует на запись результата в регистры данных ADCL и ADCH. При ADLAR=0 можно использовать упрощенное 8-битное преобразование.
Биты 4..О - MUX4..MUXO (Multiplexer bits) - предназначены для выбора входа, коммутируемого на вход преобразователя. Выбор осуществляется в соответствии с таблицей 2. Изменение этих битов в процессе преобразования, когда флаг ADIF в регистре ADCSR установлен, не приводит к изменению результата.
Таблица 2. Выход входного сигнала ADC
MUX4..0 | Подключаемый контакт |
00000 | ADCO |
00001 | ADC1 |
00010 | ADC2 |
00011 | ADC3 |
00100 | ADC4 |
00101 | ADC5 |
00110 | ADC6 |
00111 | ADC7 |
01000. .11101 | Резерв |
11110 | 1.22V |
11111 | 0V (AGND) |
Регистр - ADCSR (ADC Control and Status Register) предназначен для управления работой аналого-цифрового преобразователя.
Бит 7 - ADEN (ADC Enable) - разрешение работы ADC. Очистка бита запрещает работу ADC. Запрещение ADC в процессе преобразования прекращает преобразование.
Бит 6 - ADSC (ADC Start Conversion) - запуск преобразования ADC. В режиме однократного преобразования для запуска каждого цикла преобразования необходимо устанавливать бит ADSC в состояние 1. В циклическом режиме бит ADSC устанавливается в состояние 1 только при запуске первого цикла преобразования. Каждый раз после первой установки бита ADSC. выполненной после разрешения или одновременно с разрешением, будет выполняться пустое преобразование. Это пустое преобразование активизирует преобразователь. ADSC будет сохранять состояние 1 в течение всего цикла преобразования и сбрасывается по его завершению. При выполнении пустого преобразования, предшествующего активизируемому, бит ADSC остается установленным до завершения активируемого преобразования. Запись 0 в этот бит эффекта не оказывает.
Бит 5 - ADFR (ADC Free Run Select) - установка циклического режима работы ADC. При установленном в состояние 1 бите ADFR аналого-цифровой преобразователь будет работать в циклическом режиме. В этом режиме производятся выборки и обращения к регистрам непрерывно (одно за другим). Очистка бита приводит к прекращению циклического режима.
Бит 4 - ADIF (ADC Interrupt Flag) - флаг прерывания ADC. Данный бит устанавливается в состояние 1 по завершению преобразования и обновления регистров данных. Прерывание по завершению преобразования ADC выполняется, если в состояние 1 установлены бит ADIE и I - бит регистра статуса SREG. Бит ADIF сбрасывается аппаратно при выполнении подпрограммы обработки соответствующего вектора прерывания. Кроме того, бит ADIF может быть очищен записью во флаг логической 1. Этого необходимо остерегаться при чтении-модификации-записи ADCSR, поскольку может быть запрещено отложенное прерывание. Это применимо и в случаях использования команд sbi и cbi.
Бит 3 - ADIE (ADC Interrupt Enable) - разрешение прерывания ADC. При установленных в состояние 1 бите ADIE и l-бите регистра SREG активируется прерывание с вектором $1С по завершению преобразования ADC.
Биты 2..0 - ADPS2..ADPSO (ADC Prescaler Select Bits) - выбор коэффициента предварительного деления. Данные биты определяют коэффициент деления тактовой частоты микроконтроллера для получения необходимой тактовой частоты ADC.
Таблица 3. Выход входного сигнала ADC
ADPS2 | ADPS1 | ADPSO | Коэффициент деления |
0 | 0 | 0 | Без деления |
0 | 0 | 1 | 2 |
0 | 1 | 0 | 4 |
0 | 1 | 1 | 8 |
1 | 0 | 0 | 16 |
1 | 0 | 1 | 32 |
1 | 1 | 0 | 64 |
1 | 1 | 1 | 128 |
Регистры ADCL и ADCH являются регистрами данных. Их содержимое зависит от состояния бита ADLAR регистра ADMUX.
Когда преобразование выполнено, десятибитный результат находится в этих двух регистрах. Если младший регистр ADCL считан, то регистры не изменяются до чтения старшего регистра ADCH. ADLAR бит в ADMUX воздействует на представление результата.
Биты | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADCH $05($25) | ADC9 | ADC8 | ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 |
ADCL $04($24) | ADC1 | ADC0 |
0 комментариев