Автор работы: Пользователь скрыл имя, 03 Марта 2013 в 09:32, курсовая работа
Данный курсовой проект является завершающим этапом изучения курса «Цифровые устройства и микропроцессоры». Задание – спроектировать устройство, формирующее трехфазное гармоническое напряжение, базовым элементом которого является микроконтроллер. Обусловлено это тем, что микроконтроллеры получили в настоящее время большое распространение в связи с их широкими возможностями, а также различными областями применения, доступностью, простотой в разработке и дешевизной.
Введение……………………………………….……………...…………..........5
1 Выбор структурной схемы, принцип работы устройства в целом.…..…..6
2 Выбор принципиальной схемы, расчеты, выбор элементов…….…..........8
2.1 Выбор микроконтроллера …………………………..……………8
2.2Выбор вспомогательных элементов…………………….……….10
3 Алгоритм работы программы…………………………….……….……......12
4 Листинг программы с комментариями…………………….……..…….….13
Заключение…………………………...……….…………………………….....17
Список использованных источников………………………………...………18
Принципиальная схема
Спецификация
Задание № 6 на курсовой проект студенту Дворова К.И. гр. 548
РЕФЕРАТ
Пояснительная записка 18 с, 3 рисунка, 5 источников, графическая документация: 1 л. А3, спецификация
ЦИФРОВЫЕ УСТРОЙСТВА, МИКРОКОНТРОЛЛЕР, AVR, АНАЛОГО-ЦИФРОВОЕ ПРЕОБРАЗОВАНИЕ.
Ключевым объектом является формирователь трехфазного напряжения.
Цель работы – разработка формирователя трехфазного напряжения с использованием микроконтроллера, применение знаний, полученных в курсе «Цифровые устройства и микропроцессоры».
Произведен выбор структурной и принципиальной схем формирователя. Выполнены расчеты и обоснование выбранных схем в соответствии с поставленным технически заданием. Произведено написание программы для микроконтроллера.
Введение……………………………………….…………….
1 Выбор структурной схемы, принцип работы устройства в целом.…..…..6
2 Выбор принципиальной схемы, расчеты, выбор элементов…….…..........8
2.1 Выбор микроконтроллера …………………
2.2Выбор вспомогательных элементов…………………….……….10
3 Алгоритм работы программы…………………………….……….……...
4 Листинг программы с комментариями…………………….……..…….…
Заключение…………………………...……….………
Список использованных источников………………………………...………18
Принципиальная схема
Спецификация
Данный курсовой проект является завершающим этапом изучения курса «Цифровые устройства и микропроцессоры». Задание – спроектировать устройство, формирующее трехфазное гармоническое напряжение, базовым элементом которого является микроконтроллер. Обусловлено это тем, что микроконтроллеры получили в настоящее время большое распространение в связи с их широкими возможностями, а также различными областями применения, доступностью, простотой в разработке и дешевизной.
1 ВЫБОР СТРУКТУРНОЙ СХЕМЫ, ПРИНЦИП РАБОТЫ УСТРОЙСТВА В ЦЕЛОМ
На рисунке 1 представлена структурная схема устройства:
Рисунок 1 – Структурная схема устройства
Блок-схема устройства, приведённая на рисунке 1, состоит из :
- Микроконтроллер – Аtmega16А, выбран в виду наличия АЦП, модулей ШИМ, достаточное количество выводов
- ЦАП – устройство, необходимое для преобразования сигнала цифрового в аналоговый
- Потенциометр – задает амплитуду напряжения, требуемую на выходе устройства
- Усилитель – усиливает выходное напряжение до необходимого уровня.
Принцип действия устройства :
- потенциометром задается амплитуда выходного напряжения
- программная
часть обеспечивает
- ЦАП преобразует
сигнал из цифрового в
- усилительные каскады обеспечивают усиление сигнала до нужной величины
Далее была составлена принципиальная схема, а также произведен выбор и расчет элементов в соответствии с заданием.
2 ВЫБОР ПРИНЦИПИАЛЬНОЙ СХЕМЫ, РАСЧЕТЫ, ВЫБОР ЭЛЕМЕНТОВ
В этой части курсовой работы производится расчет и выбор элементов, от качества которых будет зависеть правильность работы устройства, а также степень соответствия заданию.
Принципиальная схема приведена в виде графической документации на листе А3.
2.1 Выбор микроконтроллера
Микроконтроллер в данном устройстве – ключевой объект, поэтому от его выбора зависит качество работы устройства, надежность, а также достоверность полученных результатов.
Был выбран микроконтроллер фирмы Atmel – AVR ATmega16A. Его структурная схема представлена на рисунке 2.
Это 8-разрядный микроконтроллер с RISC архитектурой, векторной системой прерываний, гарвардской архитектурой памяти, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность.
Критерии выбора данного микроконтроллера:
- Напряжение питания (2,7-5,5В).
- Высокая производительность - частота тактирования до 16 МГц
- Низкое энергопотребление (0,6 мА в активном режиме)
- Наличие 10-разрядного АЦП.
Рисунок 2 – блок схема ATmega16A
Схема тактирования кварцевым резонатором (элементы ZQ1, C2, C3), схема сброса (SB1, R2), а также схема развязки аналоговой и цифровой «земли»(L1, C1) и их номиналы стандартны, освещены в документах на микроконтроллер и в пояснениях не нуждаются.
1.ЦАП. Выбираем AD5307. Он имеет разрядность 8 бит, SPI интерфейс, питающее напряжение до 5.5 вольт.
Исходя из заданной погрешности задания напряжения 5%, проверим, достаточна ли разрядность ЦАП.
Диапазон напряжения : 10-115 В. Ширина диапазона равна 105В.
8 бит – это 256 градаций, соответственно,
0,41 В и есть минимальное
2.Потенциометр. Регулировка задающего напряжения осуществляется с помощью переменного резистора. Напряжение, снимаемое с 3го вывода оцифровывается АЦП микроконтроллера, преобразуется и служит для регулировки амплитуды выходного сигнала. Номинал данного потенциометра выбирается исходя из максимального тока на входе микроконтроллера, который равен 40 мА.
3. Блок питания. На вход БП подаётся переменное напряжение 220В. С помощью трансформатора оно понижается до 6,3В во вторичной обмотке и подаётся на диодные мосты VD1-VD3, где оно выпрямляется. На выходах диодного моста включён линейный стабилизатор напряжения, на базе микросхемы LM323K, выходное напряжение +5В.
В схеме также установлены
фильтрующие конденсаторы, которые
стабилизируют питание,
4.Операционный усилитель. Выбираем AD8647, счетверенный ОУ, исходя из питающего напряжения – 5 вольт.
5. Усилитель. Основными элементами усилителя являются транзисторы, работающие в режиме AB, а также выходные трансформаторы и предварительные каскады. VT1, VT4, VT7 – работают одинаково, нужны для получения противофазного напряжения для последующего каскада. Включены как повторитель. Выберем КТ3102, исходя из того, что токи небольшие. R9, R10 (R13и R14, R17 и R18) – резисторы задающие рабочую точку примем R9=R10= 120 Ом, рабочая точка транзистора в этом случае Uб= 2.5 В. С10-С12 – разделительные конденсаторы. R11, R12 (R15 и R16, R19 и R20) – задают коллекторный ток должны быть равны. Зададимся Ik=100 мА, тогда R11=R12=25 Ом. С13-С18 – разделительные емкости.
TV1, TV2, TV3 – выходные трансформаторы, ТН64-115-400 из расчета на 400 Гц. Токи обмоток равны : первичной(115В): 1.6 А, вторичных(5В): 3А.
N=23.
VT3, VT3 (VT5 и VT6, VT8 и VT9) – мощные транзисторы 2sc1398, выбираются исходя из значения тока коллектора. Пересчитаем сопротивление нагрузки в нагрузку транзисторов.
Rэ=Rн/N=100/23=43 Ом
Ток в коллекторной цепи каждого транзистора будет равен: 5/43=1.16 А. Максимальный ток коллектора данного типа транзисторов составляет 3А .
3АЛГОРИТМ РАБОТЫ ПРОГРАММЫ
Алгоритм работы программы микроконтроллера выглядит следующим образом:
4ЛИСТИНГ ПРОГРАММЫ С КОММЕНТАРИЯМИ.
/*
* mega16DAC.c
*
* Created: 22.11.2012 23:03:56
* Author: Dvorova Karina
* AVR Studio 5
* ATMega16A
*/
#include <avr/io.h> // базовая библиотека
#define F_CPU 16000000UL
// Частота контроллера для
#include <util/delay.h> // библиотека генерации временных задержек
#include <avr/interrupt.h> // библиотека прерываний
// Глобальные переменные и константы
unsigned float ampl_correct=0; // переменная регулировки амплитуды
unsigned char i=0; // счетная переменная
unsigned char data_byteH=0; // старший байт посылки
unsigned char data_byteL=0; // младший байт посылки
unsigned char buf=0; // промежуточная переменная
#define DACA 0b00000000; // константы выбора номера
#define DACB 0b01000000; // и параметров ЦАП
#define DACC 0b10000000;
/*время: | 0 |0.3125|0.625|0.938|1.25|1.
unsigned char sin0[8]={128,218,255,218,128,
// дискретные значения одного периода синуса 0град
unsigned char sin1[8]={238,160,65,5,18,95,
// дискретные
значения одного периода синуса
+120 град
unsigned char sin2[8]={18,5,64,161,238,251,
// дискретные значения одного периода синуса +240 град
// Функция инициализации
void init(void){
//настройка АЦП:
DDRA=0b11111110; // настройка порта для АЦП
PORTA=0b00000000; // для определенности пишем в порт
ADMUX=0b01100000;
// настройка
АЦП: внешний источник
ADCSRA=0b00000110; // правое выравнивание(5бит), нулевой канал (4-0 биты)
// АЦП выкл частота АЦП=clk/64
DDRB = (1<<MOSI_BIT)|(1<<7)|(1<<4); // MOSI, SCK,SS - выходы
PORTB=0b00010000;
SPCR = (1<<SPE)|(1<<MSTR)|(1<<CPHA);
// выборки по заднему фронту, частота f/4
}
// Функция
чтения напряжения
unsigned char adc_read(void){
cli();
unsigned char result_adc=0;
ADCSRA=0b11000110;
while(ADCSRA==0b1100110){}
result_adc=ADC/4;
sei();
return
result_adc;
}
// Функция передачи данных по SPI
void SPI_send(unsigned char dataH, unsigned char dataL)
{
PORTB=0b00000000;
SPDR =dataH ; // отправляем старший байт
while(!(SPSR & (1<<SPIF)));
// дожидаемся окончания передачи.
SPDR=dataL;
while(!(SPSR & (1<<SPIF)));
// дожидаемся окончания передачи.
PORTB=0b00010000;
}
// Основная функция программы
int main(void)
{
init(); //выполнили инициализацию
// Бесконечный цикл
while(1)
{
ampl_correct=adc_read()/255; //прочитали напряжение
с потенциометра,
for(i=0; i<8; i++){
buf=sin0[i]*ampl_correct; // готовим данные для 1 цап:
data_byteH=DACA;
data_byteH|=(buf>>4);
data_byteL=0b00000000; // затем младший
data_byteL|=(buf<<4);
SPI_send(data_byteH, data_byteL); // отослали по SPI
buf=sin1[i]*ampl_correct; // готовим данные для 2 цап:
data_byteH=DACB; // заполняем старший байт..
data_byteH|=(buf>>4);
data_byteL=0b00000000; // затем младший
data_byteL|=(buf<<4);
SPI_send(data_byteH, data_byteL); // отослали по SPI
buf=sin2[i]*ampl_correct; // готовим данные для 3 цап:
data_byteH=DACC; // заполняем старший байт..
data_byteH|=(buf>>4);
data_byteL=0b00000000; // затем младший
data_byteL|=(buf<<4);
SPI_send(data_byteH, data_byteL); // отослали по SPI
_delay_us(291);
// выждали время которое
// для соблюдения интервала
}
}
}
ЗАКЛЮЧЕНИЕ
В курсовой работе был разработан формирователь трехфазного напряжения. Управление устройством выполняется с помощью микроконтроллера ATmega16A фирмы ATMEL , для которого была написана программа на языке СИ.
Для достижения
цели применялись знания курса «Цифровые
устройства и микропроцессоры», а
также дополнительная литература, документация
производителя контроллеров и ресурсы
сети интернет.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Информация о работе Цифровые устройства, микроконтроллер, AVR, аналого-цифровое преобразование