скачать рефераты

скачать рефераты

 
 
скачать рефераты скачать рефераты

Меню

Микроконтроллерный регулятор оптимальной системы управления скачать рефераты

p align="left">Третье адресное пространство является основной частью памяти данных и содержит 32 регистра общего назначения с адресами $000 - $01F, 64 регистра ввода-вывода с адресами $020 - $05F и ОЗУ объемом 0,5 К однобайтовых ячеек с адресами $060 - $25F. Такая организация памяти данных позволяет адресовать все эти регистры как ячейки ОЗУ с известными адресами либо использовать для их адресации соответствующие обозначения или адреса в регистровых файлах. Например, регистр управления АЦП имеет адрес ОЗУ $026, адрес в файле регистров ввода-вывода $06 или символическое имя ADCSR.

Адресация ячеек памяти в третьем адресном пространстве производится стандартными способами. При прямой адресации адрес содержится в командах STS k, Rr и LDS Rd, k, где к - адрес в диапазоне $000-$25F, Rr и Rd любые из регистров общего назначения.

Рис.17. Память микроконтроллера АТ90S8535.

Косвенная адресация возможна регистрами X, Y, Z. Каждый из этих адресных регистров образован парой регистров общего назначения: X -R27-R26, Y - R29-R28, Z - R31-R30. Адресация также возможна с помощью указателя стэка (пара регистров SPH-SPL файла регистров ввода-вывода), обычно в качестве вершины стэка используется наибольший адрес ОЗУ с символическим именем RAMEND, для данного микроконтроллера - это физический адрес S25F.

Адресация регистров общего назначения стандартная: в команде указывается номер регистра (например, mov r2, r0) или присвоенное ему ранее символическое имя (например, mov r2, temp). Обращение к файлу регистров ввода-вывода производится командами in, out с использованием, как правило, символических имен (символические имена регистров ввода-вывода приведены в приложении).

Параллельные порты ввода-вывода.

Микроконтроллер содержит 32 линии ввода-вывода, объединенные в 4 двунаправленных порта (А, В, С, D). Управление каждым портом производится тремя регистрами порта из файла регистров ввода-вывода, символические имена этих регистров содержат наименование порта. Так как процедуры управления для всех портов аналогичны, рассмотрим их на примере порта А.

Регистр управления порта А с символическим именем DDRA*, адресом в файле регистров ввода-вывода $1А, адресом ОЗУ $03 А программно доступен и для чтения, и для записи и определяет направление передачи данных: 0 - ввод, 1 - вывод. Каждый бит DDRA (DDAO - DDA7) управляет соответствующей линией ввода-вывода и программируется независимо, начальное значение всех битов DDRA -- нулевое. Т.е. в процессе работы значение каждого бита не зависит от значений других битов, чтением содержимого регистра DDRA можно определить направление передачи данных по соответствующим линиям ввода-вывода в данный момент времени.

Регистр ввода данных PINA (адрес в файле регистров ввода-вывода -$19, адрес ОЗУ - $039) программно доступен только для чтения и обеспечивает считывание сигналов, поступающих в данный момент времени на соответствующие линии ввода-вывода (например, линия РА2 в режиме ввода формирует бит PINA2 регистра ввода данных). Никакого хранения данных регистр PINA не выполняет.

Регистр вывода данных PORTA (адрес в файле регистров ввода-вывода - $ 1В, адрес ОЗУ - $ОЗВ) программно доступен и для чтения, и для записи, обеспечивает хранение данных и выдачу их в режиме вывода на соответствующие линии ввода-вывода (например, PORTA4 - РА4). При чтении PORTA передает данные, ранее записанные в этот регистр для вывода.

Буферы портов в режиме вывода позволяют формировать логические сигналы с током нагрузки до 20 мА. В режиме ввода, кроме приема внешних сигналов, буферы позволяют подключать к входам портов внутренние резисторы, задавая на входах при отсутствии внешних сигналов уровень логического нуля. Например, DDA7=0 (ввод данных) при PORTA7=0 внутренний резистор буфера подключен и при отсутствии внешнего сигнала будет задавать на РА7 низкий уровень. Это позволяет устранить возможные неопределенности входных сигналов. При появлении сигнала внешнего источника уровень РА7 будет задаваться этим внешним сигналом. При PORTA7=1 внутренний резистор отключен и никакого влияния не оказывает.

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

Последовательный интерфейс SPI.

Последовательный интерфейс SPI обеспечивает синхронный ввод-вывод данных в последовательном формате через линии ввода-вывода порта В сигналами SCK (альтернативная функция линии ввода-вывода РВ7), MOSI (альтернативная функция линии РВ5), MISO (альтернативная функция РВ6), SS (альтернативная функция РВ4). Контроллер при обмене данными может работать в режиме ведущий (master) или ведомый (slave). Структурная схема, поясняющая алгоритмы работы интерфейса, приведена на рис.18. Этот же интерфейс используется для внутрисистемного программирования микроконтроллера с записью данных во флэш-память и ППЗУ.

SPI-master управляет обменом данных, формируя информационную 8-битовую последовательность на выходе MOSI, стробирующую выдачу данных последовательность тактовых импульсов на выходе SCK и одновременно может принимать на входе MISO 8-битовую последовательность, стробируемую импульсами SCK. Если РВ4 конфигурируется как выход (DDB4=1), сигнал SS не используется, и РВ4 может работать в стандартном режиме вывода. Если РВ4 конфигурируют как вход (DDB4=0), при SS=1 продолжается работа в режиме SPI-master; SS=0, поступающий от другого устройства должен рассматриваться как запрос на переход в режим SPI-slave для приема данных.

Рис. 18. Интерфейс SPI.

SPI-slave управляется последовательностью импульсов на входе SCK и принимает информационную 8-битовую последовательность, подаваемую на его вход MOSI. Параллельно с приемом данных по этим же стробирующим импульсам SCK может формироваться выходная информационная последовательность на выходе MISO. Для этого режима РВ4 должен конфигурироваться входом. При SS=0 реализуется режим SPI-slave, если SS=1, интерфейс переходит в пассивное состояние и перестает работать.

Для режима SPI-master конфигурирование порта В следующее: MISO -вход, MOSI - выход, SCK - выход, SS - вход (как вход используется только при необходимости), для режима SPI-slave: MISO - выход, MOSI - вход, SCK - вход, SS - вход (задается сигнал логического нуля для работы интерфейса). Обмен данными между SPI-master и SPI-slave производится по алгоритму кольцевого регистра сдвига (рис.18), по каждому такту SCK данные сдвигаются на один бит, после 8 тактов содержимое регистра-master и регистра-slave меняется местами. Соединение MOSI - MOSI обеспечивает передачу от SPI-master к SPI-slave, а соединение MISO - MISO используется при необходимости передачи данных в обратном направлении.

Управление интерфейсом SPI производится тремя регистрами файла регистров ввода-вывода: регистром данных - SPDR, регистром управления - SPCR, регистром состояния - SPSR. SPDR и SPCR программно доступны и для чтения, и для записи, SPSR доступен только для чтения.

SPDR служит для записи передаваемых данных и чтения данных, которые поступили в регистр сдвига. SPCR содержит 8 бит управления интерфейсом (слева в таблице символических имен старший бит).

Символические имена битов управления в регистре SPCR

SPIE - бит разрешения прерывания SPI, 0 запрещает прерывания.

SPE - бит разрешения работы; при 0 запрещены любые операции в SP1,

1 разрешает работу интерфейса.

DORD - при 1 первым передается младший бит слова данных,

при 0 -старший бит.

MSTR - при 1 определяется режим SPI-master, при 0 - режим SPI-slave.

Младшие 4 бита SPCR определяют параметры тактового сигнала

SCK:

CPOL - определяет пассивный уровень сигнала SCK в перерывах передачи данных, т.е. при 0 тактовый сигнал в пассивном состоянии интерфейса тоже нулевой.

СРНА - при 0 запись данных должна производиться каждым первым фронтом сигнала SCK после пассивного уровня, при 1 - каждым вторым фронтом сигнала после пассивного уровня.

SPR1 и SPR0 задают частоту сигнала SCK; коэффициент деления такто-вой частоты микроконтроллера для интерфейса определяется этими битами следующим образом:

00 - коэффициент деления 4,

01- коэффициент деления 16,

10 - коэффициент деления 64,

11 - коэффициент деления 128.

В регистре SPSR используется только 2 старших бита. SPIF (бит 7) - флаг прерывания, WCOL (бит 6) - флаг коллизии. SPIF устанавливается в 1 после каждого цикла передачи данных или после отмены режима SPI-master сигналом SS и вызывает вектор прерывания SPI_STC (адрес вектора $00а), если бит SPIE=1 (разрешение прерывания в SPCR) и установлен флаг глобального прерывания I в регистре состояния SREG". Флаг прерывания очищается автоматически при вызове вектора прерывания SPI_STC либо одновременно с очисткой флага WCOL. Флаг коллизии устанавливается в случае чтения регистра SPDR в период передачи данных в SPI (некорректное чтение данных) и автоматически очищается одновременно с флагом SPIF после чтения регистра SPSR и последующего обращения к регистру SPDR.

Если биты в регистре управления SPCR для выбора необходимого режима заданы, запись байта данных в регистр SPDR контроллера в режиме SPI-master приводит к началу рабочего цикла интерфейса. SPI-master (рис.4) передает на MOSI данные, с входа MISO может записывать данные от SPI-slave и на выходе SCK формирует 8 импульсов, управляющих передачей байта данных. Под управлением этих же сигналов SCK SPI-slave (рис. 16) принимает данные с входа MOSI и может передавать из своего регистра SPDR данные на выход MISO.

После завершения рабочего цикла обмена данными контроллер, работающий в любом режиме, устанавливает флаг прерывания для вызова вектора прерывания SPI_STC. Подпрограмма обработки этого вектора должна выполнять операции доступа к регистрам SPI для реализации необходимых функций интерфейса. Например, чтение из SPDR поступивших в предыдущем цикле данных и запись в него новых данных для передачи в следующем цикле. К контроллеру SPI-master для обмена данными вместо второго контроллера может быть подключен и обычный регистр сдвига разрядности, соответствующей формату данных.

Таким образом, интерфейс SPI обеспечивает за один рабочий цикл и передачу байта данных из SPDR на выход, и запись в этот же регистр нового байта данных, поступивших на вход. Запуск рабочего цикла производится записью в SPI-master очередного байта данных в регистр SPDR.

7.1. Прикладная программа микроконтроллерного регулятора.

Программирование микроконтроллера начинается с внесения в ППЗУ при помощи программатора табулированных значений функции , при помощи которых определяем знак нелинейного воздействия.

Словесный алгоритм функционирования микроконтроллерного регулятора:

1. Инициализация и настройка МК на ввод сигналов x1 и x2.

Порт B на вывод.

2. Измеряем текущее значение x2

3. Проверяем условие

4. Измеряем значение x1

5. Если условие в пункте 3 ложно, переходим к пункту 8,

6. Проверяем условие .

7. Если оно истинно, то подаём на выход линейное управляющее воздействие и переходим к пункту 2

8. Считываем и сравниваем с x1

9. Если , то подаём на вывод нелинейное управляющее воздействие, иначе подаём его же, но с отрицательным знаком.

10. Переход к пункту 2.

Листинг программы:

.NOLIST

.INCLUDE "8535def.inc"

.LIST

.CSEG

.org $000

rjmp reset;прерывание по reset

.org $00e

rjmp adc0 ;прерывание по завершению преобразования АЦП

.ORG$011

reset:ldi r16, low(RAMEND)

out SPL, r16

ldi r16, high(RAMEND)

out SPH, r16 ;определить в указателе стека адрес RAMEND ldi r16, 0b11111110

out admux, r16 ;преобразовывать сигнал с первого выхода мультиплексора РА1

out DDRA, r16 ; определить все биты порта A на ввод

ldi r16, 0b11111110

out portA, r16 ; определить пассивный высокий уровень сигнала для всех битов порта А

ser r16 ;установить все биты $ff в регистр r16

out DDRB, r16 ;порт B на вывод

ldi r16, 0b11001110

out adcsr, r16;инициализация АЦП

ldi r16, 0b00000110 ;инициализация записи в ППЗУ

out EECR, r16

ldi r16, 0b00000000 ;инициализация чтения из ППЗУ

out EECR, r16

sei ;флаг глобального разрешения прерываний

main:

nop

rjmp main

adc0: ;подпрограмма обработки прерываний АЦП

inc r20

cpi r20, 1

brne adc1

in r17, ADCL ;занести младший байт кода результата преобразования АЦП в регистр r17

in r18, ADCH;занести старший байт кода результата преобразования АЦП в регистр r18

ldi r16, 0b00000001

out admux, r16 ;преобразовывать сигнал с первого выхода мультиплексора РА0 x1

sbi adcsr, ADSC ;запустить АЦП для однократного преобразования

reti

adc1:

clr r20

in r21, ADCL ;занести младший байт кода результата преобразования АЦП в регистр r21

in r22, ADCH ;занести старший байт кода результата преобразования АЦП в регистр r22

ldi r23, 0b10110011

ldi r24, 0b01101011 ;занести С1

ldi r27, 0b00000110

ldi r28, 0b11010101 ;занести С2

cpi r28, r18 ;сравнить C2 и x2

brne u1;перейти если разность (C2-x2) отрицательная

cpi r27, r17

brne u1

cpi r22, r24 ;сравнить С1 и x1

brne u1;перейти если разность (С1-х1) отрицательная

cpi r21, r23

brne u1

ldi r16,0b0000001;загрузить U2 линейная зависимость

out PORTB, r16

reti

u1:

lsl r17

rol r18

out EEARL, r17

out EEARH, r18

sbi EECR, EERE

rcall pausa ;задержка для нормального чтения из ППЗУ

in r11, EEDR

cpi r22, r11

brne otrsign

ldi r31,1

clr r30

add r17, r31

adc r18, r30

out EEARL, r17

out EEARH, r18

sbi EECR, EERE

rcall pausa ;задержка для нормального чтения из ППЗУ

in r11, EEDR

cpi r21, r10

brne otrsign

ldi r16,0b0000010; загрузить U1 нелинейная зависимость

out PORTB, r16

sbi adcsr, ADSC ; запустить АЦП для однократного преобразования

reti

otrsign:

ldi r16,0b0000100 ;загрузить U1 с обратным знаком нелинейная зависимость

out portB, r16

sbi adcsr, ADSC ; запустить АЦП для однократного преобразования

reti

;подпрограмма задержки для нормального чтения из ППЗУ

pausa:

inc r29

cpi r29, r39

brne pausa

clr r29

reti

5. ВЫБОР ЭЛЕМЕНТНОЙ БАЗЫ.

8.1. Выбор операционного усилителя

Так как одна из основных задач курсового проекта - реализовать закон управления с заданной погрешностью (не более 2,5%), рассчитаем обе схемы на точность попадания в прямоугольную область и на точность удержания рабочей точки. Для этого найдем максимальные отклонения напряжения от заданных значений, с помощью формулы:

,

где первое слагаемое - это дрейф нуля операционного усилителя. Второе слагаемое - влияние шумов усилителя. Третье - погрешность, вносимая резисторами.

Выбирая операционный усилитель необходимо минимизировать напряжение дрейфа нуля ОУ. Таким образом, необходимо добиться выполнения следующего условия:

(мВ)

Значит, требуется выбрать операционный усилитель, параметры которого удовлетворяют последнему условию.

Из справочной литературы выбираем тип и необходимые характеристики операционного усилителя. В качестве операционного усилителя был взят малошумящий прецизионный усилитель OP27. Необходимые параметры занесены в таблицу 1.

Таблица 1.5.

Параметр

Буквенное

обозначение

Значение

Единица

измерения

Число элементов в корпусе

Т

1

-

Напряжение смещения ОУ

0,03

мВ

Входной ток

40

нА

Частота единичного усиления

8

МГц

Минимальный стабильный коэффициент усиления

-

Напряжение питания

В

Максимальный потребляемый ток на один элемент

9,3

мА

Тип корпуса

DIP-8, SO-8, TO99-8

-

-

Рис.19. Функциональная схема малошумящего прецизионного усилителя OP27.

8.2.Выбор резисторов

В спроектированном устройстве будем использовать прецизионные резисторы типа С2-29. Это резисторы с металлодиэлектрическим проводящим слоем, предназначенные для работы в высокоточных электрических цепях постоянного, переменного и импульсного тока в качестве элементов навесного монтажа. Резисторы типа С2-29 относятся к изолированным.

По шкале Е192 резисторы имеют точность:

R=0,001

Температурный коэффициент сопротивления:

R=5,5·10-5 1/0С (при -10t200C)

R=5·10-5 1/0С (при 20t500C)

Рис.20. Вид резистора С2-29В

8.3.Выбор конденсаторов

Также в схеме будем использовать конденсаторы типа К71-6.

Рис.21. Конденсатор типа K71-6.

Конденсаторы К71-6 предназначены для работы в цепях постоянного, переменного и импульсного тока.

Имеют цилиндрический металлический герметизированный корпус.

Диапазон рабочих температур: -60 … +200 0С.

9.АНАЛИЗ КАЧЕСТВЕННЫХ ПОКАЗАТЕЛЕЙ МИКРОКОНТРОЛЛЕРНОЙ СИСТЕМЫ.

Динамический диапазон измеряемой величины х1:

Относительная погрешность дифференциального напряжения, зависящая от технологии изготовления ЧЭ .

Статическая погрешность измерения величины х1:

Коэффициент ослабления синфазного напряжения:

Цена одного кванта:

Технологическая несбалансированность моста чувствительного элемента приводит к смещению нуля усилителя:

(В)

Относительная погрешность сопротивления резисторов схемы:

(1/0С)

Результирующая статическая погрешность устройства:

Следовательно, результирующая погрешность меньше результирующего кванта 10-разрядного АЦП. Именно поэтому доминирующей составляющей общей погрешности является смещение нуля, вызванное влиянием соответствующих параметров ОУ.

Влияния собственного шума активных элементов:

( нВ/).

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

ЗАКЛЮЧЕНИЕ

Для автоматизации производства и технологических процессов датчики являются неотъемлемой составляющей частью САУ. Датчики с цифровым выходом всё более вытесняют датчики с аналоговым выходом из-за простоты разработки канала обмена с микроконтроллером, но каналы обработки аналогового сигнала по сей день имеют более высокую интеграцию и универсальность за счёт того, что компоненты, которые включает в себя канал предназначены для универсальных подсистем. На базе АЦП, ЦАП, коммутаторов, схем выборки и хранения, операционных усилителей и других аналоговых элементов разрабатывают операционные узлы, способные обрабатывать аналоговую информацию без преобразования ее в цифровую форму. Каналы обработки аналоговой информации обладают большим быстродействием по сравнению с каналами обработки цифровой информации. При выполнении данного курсового проекта было разработано двухканальное устройство согласования датчиков с микроконтроллером, произведен расчет параметров системы, выполнено моделирование. Данное устройство имеет высокую интеграцию и универсальность, обладает модернизационным запасом, стабильностью работы и высоким быстродействием, что подтверждают проделанные расчеты и результаты моделирование.

СПИСОК ЛИТЕРАТУРЫ

1) А.В. Евстифеев Микроконтроллеры AVR семейства Classic фирмы ATMEL. Москва, Издательский дом «Додэка-XXI», 2006.

2) Иванов Ю.И., Югай В.Я. Микропроцессорные устройства систем управления. Учебное пособие для вузов. -Таганрог. Изд. ТРТУ, 2005.

3) Иванов Ю.И., Югай В.Я. Применение микроконтроллеров AVR. Учебное пособие, Таганрог. Изд. ТРТУ, 2003.

4) Крутчинский С.Г., Маньков Ю.В. Микроконтроллеры и локальные системы. Методическое пособие по проектированию. Таганрог. Изд. ТРТУ, 1999.

5) Иванов Ю.И., Югай В.Я. Интерфейсы средств автоматизации. Учебное пособие.-Таганрог. Изд. ТРТУ, 2005.

6) Баранов В.Н. Применение микроконтроллеров AVR. Схемы, алгоритмы, программы. Издательский дом «Додэка-XXI», 2004

7) «Микросхемы ЦАП и АЦП»/ Б.Г. Федорков, В.А. Телец, М.: Энергоатомиздат 1990, 320с.

8) Справочник «Резисторы», под редакцией Четверткова.

Страницы: 1, 2, 3