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

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

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

Меню

Розробка мікропроцесорної системи управління та керування об'єктом на базі RISK AVR-мікроконтролера ATMega1281V-8AU скачать рефераты

p align="left">3.6 Система аналогового вводу інформації

Дана система призначена для прийому та обробки інформації від зовнішніх датчиків. Обробка виконується за допомогою вбудованого аналогово-цифрового перетворювача (АЦП), входи якого можуть конфігоруватись як несиметричні, і як симетричні, при цьому на входи подаються різні рівні напруги.

3.6.1 Підсистема аналогового вводу інформації з несиметричними входами

Так як АЦП із несиметричними входами може приймати та опрацьовувати напругу, що знаходиться в діапазоні від 0 до рівня зовнішньої опорної напруги, котра становить +5В, так як й напруга з датчиків, згідно варіанту, може подаватись в діапазоні від 0 до +5В,

3.6.2 Підсистема аналогового вводу інформації із симетричними входами

Для формування даної системи використовується АЦП, входи якого включені симетрично, тобто попарно, для передачі інформації від датчиків до МК для подальшої її обробки.

При виконанні реальної задачі може постати необхідність у усередненні результату перетворення АЦП, тобто видачі сигналу з АЦП через певну кількість виконаних перетворень.

Розрахуємо кількість перетворень АЦП (КОАЦП) при частоті опитування датчиків (fд), що становить . Для цього скористаємось наступною формулою:

де fАЦП - часота роботи АЦП, 62,5кГц;

Кt - кількість тактів перетворення, 14 тактів.

Таким чином видача результату перетворення сигналів з датчиків буде виконуватись через кожні 30 циклів АЦП. Проте необхідно пам'ятати, що перше перетворення при одиночному режимі роботи АЦП займатиме на 12 тактів більше, під час яких виконується ініціалізація АЦП.

3.7 Система аналогового виводу інформації

Дана система призначена для перетворення та виводу інформації у аналоговому вигляді. Складається вона із цифро-аналогового перетворювача (ЦАП) реалізованого на базі ШІМ. В свою чергу останній реалізується на базі таймера лічильника МК Т1.

Нам необхідний 10-розрядний ШІМ, отримаємо його при 10 режимі роботи Т1. Максимальне значення (ТОР), що прийматиме лічильник, розраховується за наступною формулою:

ТОР=2N-1

ТОР=210-1=1023

Коли стан лічильника, що зберігається у регістрі, TCNT1, збігається із змістом регістру OCR1, на виводі ОС1 МК встановлюється рівень лог. 0, таким чином завершуючи імпульс ШІМ-сигналу. Лічильник продовжує рахувати до максимального значення ТОР, після чого змінює напрямок руху. Як тільки стан лічильника знову співпаде із змістом регітру OCR1, на виводі ОС1 МК встановлюється рівень лог. 1.

Частота повторювання лічильних циклів fШІМ складає:

Якщо прийняти, що стан регістру OCR1 дорівнює Z, тоді час одного періоду імпульсу сигналу tн складатиме 2Z. Виходячи із цього, коефіцієнтом заповнення N-розрядного ШІМ-сигналу g можна керувати за допомогою змісту регістру OCR1:

Таким чином, коефіцієнт заповнення прямо пропорційний складу Z регістру порівняння OCR1. Середнє арифметичне UМ вихідної напруги Т/С1 на виході ОС1 МК, що отримується при проходженні ШІМ-сигналом фільтру нижчих частот, може бути розраховано за наступним рівнянням:

де - рівень логічної 1;

- рівень логічного 0;

g - коефіцієнт заповнення прямокутних імпульсів напруги Z.

Сигнал, що отримується з виходу ЦАП, необхідно профільтрувати для отримання достовірного сигналу постійної напруги. Для цього використовується активний фільтр низьких частот Баттерворта другого порядку, що дозволяє подавляти 40 Дб/дес. Схема фільтру Баттерворта другого порядку представлена на рисунку 4.4

Рисунок 3.2 - Схема фільтру Баттерворта другого порядку

Розрахунок параметрів схеми.

Для фільтру Баттерворта другого порядку час запізнювання сигналу (tv) становить 0.228Tg , а тривалість фронту (ta) - 0.342Tg , час зворотного значення граничної частоти - нормована величина. Викид складає 4,3%, час встановлення сигналу дорівнює 3Тg .

Підсилення постійної напруги схеми фільтра низьких частот приблизно рівно . Воно має негативне значення, оскільки базується на інвертуючій схемі ОП.

Для розрахунку параметрів фільтру низьких частот необхідно задати номінали конденсаторів С1 та С2 і розрахувати опори R1 та R2 згідно з наступними формулами.

(4.6)

(4.7)

(4.8)

При цьому V0 являється найбільш достовірним підсиленням постійної напруги фільтра, а1 и b1 - коефіцієнти фільтра, що дорівнюють 1,4142 та 1,0000 відповідно.

При виборі С1 та С2 необхідно дотримуватись наступої умови:

(4.9)

Характеристики фільтра Баттерворта др TCNT1угого порядку при V0=-1 представлено у таблиці 4.1

Таблиця 4.1 - Характеристики фільтра Баттерворта другого порядку

Резрешение,

разряды

Tint,мкс

1LSB,

мВ

Аt max,

мВ

V(TP)

fшим, Гц

fg max, Гц

ta, мс

tv, мс

10

15

2,5

1,25

0.000383

32,55

4,56

84,96

98,57

Обираємо номінал С1, що становитиме 122,2нФ, та розрахуємо С2 згідно формули (4.9).

Згідно із номінальним рядом Е192 номінал конденсатора С2 становитиме 252нФ.

Розраховуємо значення R2 згідно із формулою (4.6):

Найближче значення із ряду Е192:

Значення резистору R3 розраховуємо по формулі (4.8):

Найближче значення із ряду Е192:

Значення резистору R1 розраховуємо по формулі (4.7):

Найближче значення із ряду Е192:

3.8 Система дискретного вводу-виводу

Системи дискретного вводу та виводу інформації являють собою системи прийому та видачі сигналів дискретної форми сигналу, тобто цифрові сигнали. Для підвищення точності сигналів та уникнення неоднозначності у інтерпретації даних необхідно ввести у склад обох систем гальванічні розв'язки сигналів.

У якості гальванічного елемента використано оптрон АОД130, що являє собою пару: фотодіод та світло діод, що розташовані в одному чотирьох контактному корпусі.

4. Розробка програмного забезпечення

Згідно завдання на курсову роботу необхідно розробити програму ініціалізації МК для роботи із усіма пристроями, що входять до складу системи.

Для цього, по-перше, необхідно сконфігурувати регістри портів вводу-виводу на виконання операцій, що були зазначені для них, під час розробки принципової схеми. Конфігурування відбувається шляхом встановлення та скидання необхідних бітів у регістрах PORTх (рядки 25-38) та DDRх (рядки 39-50), а також читанням стану виводів портів через регістр PINx.

По-друге, сконфігорувати регістри вводу-виводу, що відображають внутрішнє налаштування периферійних пристроїв МК, а саме АЦП, таймера-лічильника Т1, зовнішнього ОЗП, модуля USART.

Для конфігурування АЦП необхідно встановити регістри ADCSRA та ADMUX (рядки 4-7, 52-57).

Для конфігурування таймера-лічильника Т1, щоб він працював як ШІМ, необхідно сконфігурувати регістри TCCR1A, TCCR1B, TCCR1C (рядки 13-15, 73-87).

Для конфігурації роботи із зовнішнім ОЗП використовуються регістри XMCRA, XMCRB (рядки 8, 9, 58-63).

Для конфігурування модуля USART використовуються UCSR0A, UCSR0B, UCSR0C (рядки 10-12, 64-72).

Лістинг програми

Мітка

Команда

Операнди

Примітка

1

.nolist

2

.include

:\Kursovoy\PMS_Kursovoy \"m1281def.inc"

3

.list

;--Содержимое регистров

4

.equ

ADCRS = 0b10000101

;ADEN=1 - АЦП включ., ADSC=0, ;ADATE=0 (одиночный режим), ADIF=0, ;ADEN=0, ADFPS[2..0]=101 (делитель ;частоты на 32) --> рабочая частота ;АЦП=2МГц : 32 = 62,5кГц

5

.equ

ADMX0 = 0b00000000

;несимметричный вход ADC0, внешнее ;опорное напряжение

Мітка

Команда

Операнди

Примітка

6

.equ

ADMX6 = 0b00000110

;несимметричный вход ADC6, внешнее ;опорное напряжение

7

.equ

ADMX3_1 = 0b00010011

;симметричный входы ADC3-1, внешнее ;опорное напряжение

8

.equ

XMCR_A = 0b10000001

;SRE=1 (разрешена работа с вн. ОЗУ), ;SRL[2..0]=0 (один сектор), ;SRW[11..00]=0001 (один такт ожидания)

9

.equ

XMCR_B = 0b00000100

;XMBK=0, биты 6-3 зарезервир ;XMM[2..0]=100 (выводы РС[7..4] могут ;свободно использоваться как порты ВВ)

10

.equ

UCSRA = 0b00100000

; регистр А управления USART

11

.equ

UCSRB = 0b00000010

; регистр B управления USART

12

.equ

UCSRC = 0b00100110

;UMSEL[01..00]=00 (асинхр. режим ;работы), UPM[01..00]=10 (проверка на ;четность), UCSZ[01..00 (8-ми битный ;формат посылок)]

13

.equ

TCCRA = 0b00110010

;COM1A[1..0]=00 отключен вывод ;OCR1A, COM1B[1..0]=11 OCR1B при ;прямом счете на выходе равен 1, при ;инверстном счете - 0, COM1C[1..0]=00 ;отключен вывод OCR1C, ;WGM[11..10]=10 определяет 10 режим ;работы

14

.equ

TCCRB = 0b00010010

;WGM[13..12]=10 определяет 10 режим ;работы, CS[12..10]=010 источник ;тактового сигнала (clk_IO/8)

15

.equ

TCCRC = 0b00000000

; регистр управления Т1

;--Рабочие регистры

16

.def

t0 = r16

; регистру r16 присвоить имя t0

17

.def

t1 = r17

; регистру r176 присвоить имя t10

;--Начало

18

.cseg

; начало сегмента кода

19

.org 0

20

rjmp

Initial

; переход к подпрограмме Initial

Мітка

Команда

Операнди

Примітка

;--Инициализация МК

21

Initial:

ldi

t1, low(RAMEND)

;инициализация

22

out

SPL, t1

;младшего и старшего байтов

23

ldi

t1, high(RAMEND)

;указателя

24

out

SPH, t1

;стека

;--Конфигурация портов ввода-вывода

;--Включаем подтягивающие резисторы и задаем начальное значение выводов

25

ldi

t0, 0x00

; для порта А не требуются

26

out

PORTA, t0

; подтягивающие резисторы

27

ldi

t0, 0b00111111

; для выводов PB5-0 включить

28

out

PORTB,t0

; подтягивающие резисторы

29

ldi

t0, 0b11110000

; для выводов PС7-4 включить

30

out

PORTC,t0

; подтягивающие резисторы

31

ldi

t0, 0b11000000

; для выводов PD7, PD6 включить

32

out

PORTD,t0

; подтягивающие резисторы

33

ldi

t0, 0b11111101

; для всех выводов портаЕ, кроме РF1,

Мітка

Команда

Операнди

Примітка

34

out

PORTЕ,t0

;включить подтягивющие резисторы

35

ldi

t0, 0xFF

; для всех выводов порта F

36

out

PORTF,t0

;включить подтягивющие резисторы

37

ldi

t0, 0b11100000

; для выводов порта PG7-5

38

out

PORTG,t0

;включить подтягивющие резисторы

;--Конфигцрируем выводы портов (режим работы)

39

ldi

t1, 0xFF

;выводы РА

40

out

DDRA, t1

;определить как выходы

41

ldi

t1, (1<<DDB7)|(1<<DDB6)

;выводы РВ7, РВ6 определить как

42

out

DDRB,t1

;выходы, остальные - как входы

43

ldi

t1, (1<<DDC3)|(1<<DDC2)|

(1<<DDC1)|(1<<DDC0)

; выводы РС3-0 определить как выходы

44

out

DDRC,t1

; остальные - как входы

45

ldi

t1, (1<<DDD5)|(1<<DDD4)|

(1<<DDD3)|(1<<DDD2)|

(1<<DDD1)|(1<<DDD0)

; выводы PD6, PD7 определить как

; входы

46

out

DDRD,t1

;остальные выводы - как выходы

47

ldi

t1, (1<<DDE1)

; вывод РЕ1 установить как выход,

48

out

DDRE,t1

;остальные как вход

49

ldi

t1, (1<<DDG4)|(1<<DDG3)|

(1<<DDG2)|(1<<DDG1)|

(1<<DDG0)

;выводы PG7-5 установить как входы

50

out

DDRG,t1

;остальные как выходы

51

nop

;--Инициализация АЦП

52

ldi

t1, ADMX0

;записать в регистр ADMUX значение

53

ldi

XL, ADMUX

;соответствующее необходимому режиму

54

st

X, t1

;работы мультиплексора АЦП

55

ldi

t1, ADCRS

;записать в регистр ADCSRA значение

56

ldi

XL, ADCSRA

;соответствующее необходимому режиму

57

st

X,t1

;работы АЦП

Мітка

Команда

Операнди

Примітка

;--Инициализация работы с внешним ОЗУ

58

ldi

t1, XMCR_A

;сконфигурировать регистр А

59

ldi

XL, XMCRA

;управления

60

st

X, t1

; внешним ОЗУ

61

ldi

t1, XMCR_B

;сконфигурировать регистр В

62

ldi

XL, XMCRB

;управления

63

st

X, t1

; внешним ОЗУ

;--Порт USART

64

ldi

t1, UCSRA

;сконфигурировать регистр А

65

ldi

XL, UCSR0A

;управления

66

st

X, t1

; модулем USART

67

ldi

t1, UCSRB

;сконфигурировать регистр B

68

ldi

XL, UCSR0B

;управления

69

st

X, t1

; модулем USART

70

ldi

t1, UCSRC

;сконфигурировать регистр C

71

ldi

XL, UCSR0C

;управления

72

st

X, t1

; модулем USART

Мітка

Команда

Операнди

Примітка

;--Инициализация ШИМ

73

ldi

t1, TCCRA

;сконфигурировать регистр А

74

ldi

XL, TCCR1A

;управления

75

st

X, t1

;таймером-счетчиком Т1

76

ldi

t1, TCCRB

;сконфигурировать регистр В

77

ldi

XL, TCCR1B

;управления

78

st

X, t1

;таймером-счетчиком Т1

79

ldi

t1, TCCRC

;сконфигурировать регистр С

80

ldi

XL, TCCR1C

;управления

81

st

X, t1

;таймером-счетчиком Т1

82

ldi

t0, 0x07

; установка коеффициента

83

ldi

XL, ICR1H

; пересчета ТОР

84

st

X, t0

; равного

85

ldi

t0, 0xFF

; ТОР=2^(N-1), где

86

ldi

XL, ICR1L

; N=11, т.е.

87

st

X, t0

; ТОР=2047

;--Инициализация ЖКИ

88

initLCD_1:

ldi

t0,$20

;4-битный интерфейс, 1-строка, шрифт-5х7 точек

89

initLCD_2:

ldi

t0,$0C

;включить дисплей, выключить курсор

90

initLCD_3:

ldi

t0,$01

;очистить дисплей и установить курсор в начальную позицию

91

nop

92

ret

Висновок

В данній курсовій работі була розроблена система управління та керування об'єктом на базі одно кристального RISK AVR-мікроконтролера ATMega1281V-8AU , що складається з:

- Системи аналогового вводу інформації;

- Системи аналогового виводу інформації;

- Системи дискретного вводу інформації;

- Системи дискретного виводу інформації;

- Клавіатура;

- Індикація;

- Зовнішній ОЗП;

- Інтерфейс зв'язку з ПЕОМ.

Список використаних джерел

1. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. - М.: Издательский дом «Додэка-ХХІ», 2007. - 592с.: ил.

2. Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному. Изд.2-е, испр. и доп. - М.: СОЛОН-Пресс, 2004. - 304с.

3. Трамперт В. Измерение, управление и регулирование с помощью AVR микроконтроллеров.: Пер. с нем. - К.: «МК-Пресс», 2006. - 208с.

4. Микропроцессоры: В 3 кн. Кн. 2. Средства сопряжения. Контролирующие и информационно-управляющие системы: Учеб. для втузов/В.Д. Вернер, Н.В. Воробьев, А.В. Горячев и др.; Под. ред. Л.Н. Преснухина. - М.: Высш. шк., 1986. -383 с.: ил.

5. http://atmel.ru/Articles/Atmel17.htm

6. http://tehdoka.ru/BP/mst.php

7. http://www.gaw.ru/html.cgi/txt/interface/rs232/

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