Реферат по предмету "Коммуникации и связь"


Система вимірника струмів

Зміст
Вступ
1. Аналіз поставленої задачі.
1.1 Обґрунтування достатностіапаратних засобів та програмних ресурсів.
1.2 Добирання наборуапаратних засобів для реалізації пристрою.
1.3 Розподіл функцій пристроюміж вузлами мікропроцесору.
1.4 Обрання та обґрунтуваннярежимів функціонування мікропроцесору та периферійних засобів.
2. Проектування принциповоїсхеми пристрою .
2.1 Схема включеннямікропроцесора.
2.2 Формування тактовихімпульсів.
2.3 Схема скидання.
2.4 Схема вхідних та вихіднихпристроїв.
2.5 Схема стабілізаторунапруги живлення.
3. Проектування програмногозабезпечення мікропроцесора.
3.1 Проектування процедури ініціалізаціїапаратури мікропроцесора.
3.2 Проектування процедуробробки переривань.
3.3 Проектування процедурвводу інформації.
3.4 Проектування процедурвиводу інформації.
3.5 Проектування процедуриперетворення інформації.
3.6 Проектування процедуриmain().
4. Лістинг програми.
5. Рекомендаціі по розробціпрограмних та апаратних діагностичних засобів для перевірки працездатностіпристрою.
6. Проектування платидрукованої пристрою.
Заключення
Література
Додаток А – Схема електричнапринципова
Додаток Б – Плата друкована

Вступ
Однокристальні мікроконтролери знаходять широке використання у самихрізноманітних сферах: від вимірювальних пристроїв, фотоапаратів та відеокамер,принтерів, сканерів та копіювальних апаратів до виробів електронних розваг тарізноманітної побутової техніки.
Від часу появи перших мікропроцесорів у 1970-х роках їх складністьпостійно зростала за рахунок появи нових апаратних рішень та додавання новихкоманд, призначених для рішення нових задач. Так поступово склаласьархітектура, яка потім отримала назву CISC (Complex Instruction Set Computers –комп’ютери із складним набором команд). У подальшому розвитку позначився тазнайшов активний розвиток ще один напрямок: архітектура RISC (ReducedInstruction Set Computers – комп’ютери із скороченим набором команд). Саме доцієї архітектури відносяться мікроконтролери AVR компанії Atmel та PIC Microchip.
Основні переваги RISC-архітектури полягає у тому, що вони прості,виконують обмежений набір команд, і як наслідок, дуже швидкодійні. Це дозволяє знизитивартість та складність їх програмування.
Зворотною стороною RISC-процесорів стала необхідність створеннядодаткових команд на асемблері, які у СISC-пристроїв реалізовані у апаратнійчастині. Однак подібний недолік з лихвою компенсується ціною та швидкістюроботи RISC-пристроїв. До того ж, якщо будувати програми на мові С, то подібніпроблеми взагалі перестають мати будь-який сенс для інженера, так як вонирішаються компілятором, який автоматично генерує весь недостатній асемблернийкод.
У початку виникнення мікропроцесорів розробка програмного забезпеченняпроходила виключно на тій чи іншій мові асемблера, орієнтованого на певнийпристрій. По суті, такі мови являли собою символьні мнемоніки відповіднихмашинних кодів, а перевід мнемоніки у машинний код виконувався транслятором.Однак головний недолік асемблер них мов полягає у тому, що кожний із нихприв’язан до конкретного типу пристроїв та логіки їх роботи. До того ж,асемблер складний у освоєнні, що потребує достатніх зусиль для його вивчення,який, до того ж, становиться витраченим впусту, якщо надалі потребуєтьсяперейти на мікроконтролери інших виробників.
Мова С, являючи собою мову високого рівня, не має подібних недоліків іможе використовуватись для програмування любого мікро контролера, для якого єкомпілятор з мови С. У мові С усі низько рівневі операції, виконуємікомп’ютерами, представлені у вигляді абстрактних конструкцій, які дозволяють інженерамзосередитись на програмуванні однієї лише логіки, не піклуючись о машинномукоді. Вивчивши мову С, можна легко переходити від однієї родини мікроконтролерів до другої, витрачаючи набагато менше часу на розробку.

1. Аналіз поставленої задачі
У курсовому проекті буде розроблятись пристрій на основі мікроконтролера ATmega16з напругою живлення 3,3В. Потрібно виміряти струм у діапазоні від 0 до 2 А задопомогою мікросхеми MAX4173T, обробити сигнал з неї та відобразити його на РКІ ВС1602Афірми Bolymin.
Пристрій складається із наступних блоків:
- блокдатчику та формування сигналу;
- пристрійкерування;
- блоквідображення інформації;
Структурна схема пристрою приведена на рисунку 1.1
/>
Рис. 1.1 – Блок-схема пристрою.
1.1 Обґрунтування достатностіапаратних засобів та програмних ресурсів
Заданий мікроконтролер має наступні основні параметри:
- напругаживлення, В: 3,3/5
- робочачастота, МГц: 16
- розмірпам’яті програм, кБ: 16
- розмірпам’яті даних(EEPROM), Б: 512
- розмірвнутрішньої SRAM, кБ: 1
- кількістьпортів В/В (8 біт): 4
- кількістьтаймерів-лічильників: 3
- програмуємийУСАПП: 1
- АЦП: 1
Апаратних параметрів цього МК достатньо для вимірювання напруги задопомогою вбудованого АЦП, перетворення інформації з АЦП та вивід її наалфавітно-цифровий РКІ.
1.2 Добирання набору апаратних засобів для реалізаціїпристрою
Для максимального використання можливостей АЦП та зменшенняпохибки вирішено використати мікросхему опорної напруги МАХ6004, яка призначенаспеціально для формування опорної напруги для систем з використанням АЦП танапругами живлення 3 та 5 В.
Для формування сигналу скидання RES ми використаємоспеціалізовану мікросхему МС33064 — супервізор, яка призначена для використанняу мікроконтролерних системах.
Так як система живиться напругою 3,3 В, то необхідно длязабезпечення живлення мікросхеми МАХ6004 та РКІ стабілізований напруги Н34063(підвищуючий імпульсний стабілізатор напруги).
1.3 Розподіл функцій пристрою між вузлами мікропроцесору
Пристрій повинен виконувати дві основні функції:
- вимірюванняструму;
- відображенняна РКІ результату;
Для вимірювання напруги після мікросхеми МАХ4173Н доцільно використативбудований АЦП. При цьому ми використаємо один вивід порту А. Для періодичноговмикання АЦП можна використати вбудований таймер-лічильник та використатипереривання від нього. Для роботи РКІ використаємо порт РС: РС7-РС4 для даних, тавиводи РС0, РС1, РС2 порту для сигналів керування.

1.4 Обрання та обґрунтування режимівфункціонування мікропроцесору та периферійних засобів
Задіяні вузли МК повинні працювати у наступних режимах:
а) АЦП:
— зовнішня опорна напруг;
— перетворення за перериванням таймера-лічильника 0;
— частота дискретизації 125 кГц;
— задіян вхідний канал 0 (РА0);
б) Таймер-лічильник 0:
— дозволити переривання від Т/Л0;
— тактовий сигнал fclk/1024;
в) Порти вводу/виводу:
— порт А вхід АЦП;
— порт С вихід;

2. Проектування принципової схеми пристрою
 
2.1 Схема включення мікропроцесора
Мікроконтролер потребує підключення джерел живлення довиводів VCC та AVCC, земля підключається до всіх виводів GND. Напруга живлення+5 В до виводу AVCC підключається крізь LC-фільтр, який пригнічує завади таперешкоди у ланцюгах живлення МК. До виводу AREF підключається мікросхемаопорного живлення. Вивід 0 порта А під’єднується до виходу мікросхеми МАХ4173Нбезпосередньо. Виводи керування та даних РКІ під’єднуються до виводів порта Вта С відповідно. До виводів XTAL1, XTAL2 під’єднується тактовий генератор. Інщівиводи керування МК не задіяні. Схема електрична принципова включення МКприведена на рисунку 2.1
/>
Рис. 2.1 – Схема включення МК.

2.2 Формування тактових імпульсів
Тактові імпульси формуються за допомогою вбудованого генератора,стабілізованого зовнішнім кварцовим резонатором на частоту 4 МГц. Цей спосібдосить простий та забезпечує високу стабільність тактової частоти МК.
Схема включення стандартна, рекомендована виробником. Ємність додатковихконденсаторів дорівнює 22 пФ.
/>
Рис 2.2 – Схема підключення кварцового генератору.
2.3 Схема скидання
Схема скидання повинна формувати імпульс скидання МК привмиканні пристрою. Також треба передбачити можливість скидання пристрою задопомогою кнопки. Для цих потреб варто використати спеціалізованумікросхему-супервізор МС33064, призначену для використання у мікропроцесорнихсистемах.

/>
Рис. 2.3 – Схема включення мікросхеми скидання.
2.4 Схема вхідних та вихідних пристроїв
У нашому випадку вхідними та вихідними пристроями є МАХ4173Н та РКІВС1602А. Приведемо їх основні електричні параметри та типові схеми включення.
Основні електричні характеристики мікросхеми МАХ4173Н наведені у таблиці2.1
Таблиця 2.1 – Основні електричні характеристики ІМС МАХ4173Н
/>
/>
Таблиця 2.2 – Основні електричні характеристики РКІ
/>

/>
Рис. 2.4 – Типова схема включення ІМС МАХ4173Н
/>
Рис. 2.5 – Схема включення РКІ ВС1602А
2.5 Схема стабілізатору напруги живлення
Мікросхема Н34063 являє собою монолітну ІМС з набором усіхнеобхідних блоків для побудування DC-DC перетворювача-стабілізатора напруги.
Її основні електричні параметри приведені у таблиці 2.3

Таблиця 2.3 – Основні електричні характеристики Н34063
/>
/>
Рис. 2.6 – Схема стабілізатору напруги живлення
Розрахунок резистора R4:
R4 = UVcc/Id – R3 = 5/0.0006 – 1800 = 6333 Ом
Приймемо значення опору R4 рівним 6,2 кОм.

3. Проектування програмного забезпечення мікропроцесора
Розробку програми для мікроконтролеру варто почати залгорітму його функціонування. Програма повинна послідовно виконувати наступнізадачі:
- ініціалізуватинеобхідні у схемі вузли;
- зніматирезультати перетворення АЦП;
- перетворюватиданні з АЦП;
- видаватиоброблені данні на РКІ;
/>

3.1 Проектування процедуриініціалізації апаратури мікропроцесора
У процедурі ініціалізації ми повинні налаштувати усі задіяні вузлимікроконтролеру та зовнішніх пристроїв за допомогою функцій, які встановлятьусі необхідні режими роботи та початкові значення регістрів, потрібних для роботипрограми. Ми повинні проініціалізувати наступні блоки:
— порти вводу/виводу;
— таймер-лічильник 0;
— АЦП;
— РКІ;
Функція налаштування портів, АЦП та таймеру:
void init_mega (void)
{
DDRC = 0xFF; // порт С на вивід
DDRB = 0xFF; // порт В на вивід
DDRD = 0xFF; // порт D на вивід
ACSR = 0x80; // вимкнення компаратору
ADMUX = ADC_VREF_TYPE; // зовнішнє джерело опорної напруги, вхідАЦП – порт А, вхід 0
ADCSRA = 0xEE; // АЦП – вкл, почати перетворення, режимпереривання від Т/Л0, дозвіл переривання від АЦП
SFIOR = 0x80; // переривання по переповненню Т/Л0
#asm(«cli») // заборона усіх переривань
TIMSK |= (1
TCNT0=Tmr0_Reload;          // завантаження початковогозначення
TCCR0=PrescalerTmr0;                  // обрання частотитактового сигналу
}

Функція налаштування роботи РКІ
void lcd_init (void)
Ця функція використана із стандартного include – файлу LCD.h компілятору.Її повне описання можна переглянути у компіляторі. Вона налаштовує РКІ на режимроботи з 4 лініями даних, без включення курсору, відображення символівввімкнено, режим роботи з двома строками. Керуюча послідовність:
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x20);
_long_delay();
_lcd_write_data(0x28);
_long_delay();
_lcd_write_data(0x04);
_long_delay();
_lcd_write_data(0x85);
_long_delay();
3.2 Проектування процедур обробки переривань
Обробка процедури переривань досить проста:
— переривання від Т/Л0
interrupt [TIM0_OVF] void TIMER0_OVF_interrupt(void)
{
TCNT0=Tmr0_Reload;          // перезавантаження Т/Л0
TMR0Flag = 1;             // встановлення флагу переривання Т/Л0
SETBIT(ADCSRA,6);  // запуск АЦП
}
- перериваннявід АЦП
interrupt [ADC_INT] void adc_isr(void)
{
ADCFlag = 1;               // встановлення флагу переривання АЦП
}
3.3 Проектування процедур вводу інформації
Процедура вводу інформації полягає у об’яві змінної таприсвоєнні їй значення 16 бітного регістру доступу до АЦП ADCW.
int A;
A = ADCW;
3.4 Проектування процедур виводу інформації
Вивід інформації полягає у виводі даних після обробки на РКІ.Ця процедура виконується за допомогою функцій, які входять до бібліотекиLCD.lib та файлу LCD.h
lcd_gotoxy(2,0); //Встановлення адреси знакомісця на 2позицію у першій строці
lcd_putsf(«Current, A:»);        //Вивід строки
lcd_gotoxy(5,1);            // Встановлення адреси знакомісцяна 5 позицію у другій строці
lcd_putchar(a1 + 0x30);         // Вивід першої значущоїцифри результату із зміщенням
lcd_gotoxy(6,1);            // Встановлення адреси знакомісцяна 6 позицію у другій строці
lcd_putchar(0x2C);       // Вивід символу коми
lcd_gotoxy(7,1);            // Встановлення адреси знакомісцяна 7 позицію у другій строці
lcd_putchar(a2 + 0x30);         // Вивід другої значущоїцифри результату із зміщенням
lcd_gotoxy(8,1);            // Встановлення адреси знакомісцяна 8 позицію у другій строці
lcd_putchar(a3 + 0x30);         // Вивід третьої значущоїцифри результату із зміщенням
3.5 Проектування процедури перетворення інформації
Для виводу інформації на дисплей її необхідно обробити. АЦПмає 10 розрядів, тобто він може перетворювати вимірювану величину з кроком1/1023*Uref. Для простоти перетворень задамось, що максимальне значення нашоїзмінної яка буде зберігати значення після перетворення буде дорівнювати 2048.Таким чином ми отримуємо формулу для перетворення:
Current = 2 * ADC
Current = ((long)2 * (long)A;
Максимальне значення АЦП – 1023 буде відповідати значенню 2048нашої змінної.
Тепер нам необхідно перекодувати значення змінної Current доBCD формату. Це можна реалізувати за допомогою функцій:

a1 = a/1000;
a2 = (a — (a1 * 1000))/100;
a3 = (a — (a1 * 1000) — (a2 * 100))/10;
a4 = (a -(a1 * 1000) — (a2 * 100) — (a3 * 10));
де а – вхідна змінна типу int;
а1 – тисячі;
а2 – сотні;
а3 – десятки;
а4 – залишок;
3.6 Проектування процедури main()
Процедура main() повинна складатися з процедур ініціалізації, основноготіла програми та незкінченного циклу. Після ініціалізації всіх вузлів дозволяютьсяусі переривання і ми очікуємо переривання від АЦП, при приході переривання мианалізуємо флаг ADCFlag, і якщо він дорівнює 1, то ми переходимо до тілаосновної програми. Зчитуємо значення АЦП, перетворюємо його, виводимо текстовеповідомлення на РКІ. Далі ми аналізуємо чи змінилось значення АЦП, і якщо так,то забороняємо переривання, викликаємо процедури перетворення та відображеннярезультату, відновлюємо дозвіл на переривання.
void main(void)
{
init_mega();
lcd_init(16);
#asm(«sei»)
while(1)
{

int A, Current;
A = ADCW;
if (ADCFlag)
{
ADCFlag = 0;
Current = 2 * A;
lcd_gotoxy(2,0);
lcd_putsf(«Current, A:»);
//lcd_gotoxy(0,1);
//lcd_putsf(«PREVED AE-022!!!»);
if (d != A)
{
#asm(«cli»)
bar (2000,0);
d = A;
convert_out (Current, 5, 1);
#asm(«sei»)
}
}
}
}

4. Лістінг програми
#include «interrupt.h»
#include «io.h»
#include «mega16.h»
#include «signal.h»
#include «delay.h»
#include «string.h»
#include
#include
#include
//############################################################################################
#define ADC_VREF_TYPE 0x40
#define Tmr0_Reload 0
#define PrescalerTmr0 5 // timer0 counts clk/256
#define TOIE0 0
#define ADSC 0
#define CLRBIT(x,y) ((x&=~(1
#define SETBIT(x,y) ((x|=(1
//############################################################################################
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
//############################################################################################
unsigned char ADCFlag = 0;
unsigned char TMR0Flag = 0;
int d;
//############################################################################################
interrupt [ADC_INT] void adc_isr(void)
{
ADCFlag = 1;
}
//############################################################################################
interrupt [TIM0_OVF] void TIMER0_OVF_interrupt(void)
{
TCNT0=Tmr0_Reload;
TMR0Flag = 1;
SETBIT(ADCSRA,6);
}
//############################################################################################
void init_mega (void)
{
DDRC = 0xFF;
DDRB = 0xFF;
DDRD = 0xFF;
ACSR = 0x80;
ADMUX = ADC_VREF_TYPE;
ADCSRA = 0xEE;
SFIOR = 0x80;
#asm(«cli»)
TIMSK |= (1
TCNT0=Tmr0_Reload;
TCCR0=PrescalerTmr0;
}
//############################################################################################
void convert_out (int a, char position_x, char position_y )
{
int a1, a2, a3, a4;
a1 = a/1000;
lcd_gotoxy(position_x,position_y);
lcd_putchar(a1 + 0x30);
a2 = (a — (a1 * 1000))/100;
lcd_gotoxy(position_x + 1,position_y);
lcd_putchar(0x2C);
lcd_gotoxy(position_x + 2,position_y);
lcd_putchar(a2 + 0x30);
a3 = (a — (a1 * 1000) — (a2 * 100))/10;
lcd_gotoxy(position_x + 3,position_y);
lcd_putchar(a3 + 0x30);
a4 = (a -(a1 * 1000) — (a2 * 100) — (a3 * 10));
lcd_gotoxy(position_x + 4,position_y);
lcd_putchar(a4 + 0x30);
}
//############################################################################################
void bar (char time, char posit)
{
lcd_clear();
lcd_gotoxy(posit,0);
lcd_putsf(«Working.»);
delay_ms(time);
lcd_clear();
lcd_putsf(«Working..»);
delay_ms(time);
lcd_clear();
lcd_putsf(«Working...»);
delay_ms(time);
lcd_clear();
lcd_putsf(«Working....»);
delay_ms(time);
lcd_clear();
}
//############################################################################################
void main(void)
{
init_mega();
lcd_init(16);
#asm(«sei»)
while(1)
{
int A, Current;
A = ADCW;
if (ADCFlag)
{
ADCFlag = 0;
Current = 2 * A;
lcd_gotoxy(2,0);
lcd_putsf(«Current, A:»);
//lcd_gotoxy(0,1);
//lcd_putsf(«PREVED AE-022!!!»);
if (d != A)
{
#asm(«cli»)
bar (2000,0);
d = A;
convert_out (Current, 5, 1);
#asm(«sei»)
}
}
}
}
//############################################################################################
Файл LCD.h
#ifndef _LCD_INCLUDED_
#define _LCD_INCLUDED_
#pragma used+
void _lcd_ready(void);
void _lcd_write_data(unsigned char data);
// write a byte to the LCD character generator or display RAM
void lcd_write_byte(unsigned char addr, unsigned char data);
// read a byte from the LCD character generator or display RAM
unsigned char lcd_read_byte(unsigned char addr);
// set the LCD display position x=0..39 y=0..3
void lcd_gotoxy(unsigned char x, unsigned char y);
// clear the LCD
void lcd_clear(void);
void lcd_putchar(char c);
// write the string str located in SRAM to the LCD
void lcd_puts(char *str);
// write the string str located in FLASH to the LCD
void lcd_putsf(char flash *str);
// initialize the LCD controller
unsigned char lcd_init(unsigned char lcd_columns);
#pragma used-
#pragma library lcd.lib
#endif

5. Рекомендаціі по розробціпрограмних та апаратних діагностичних засобів для перевірки працездатностіпристрою
Для розробки програми варто використати достатньо легкий уосвоєнні пакет CodeVisionAVR C Compiler. До його функцій входить така важлива риса,як наявність власного програматора. Для відпрацювання програми требавикористовувати фірмовий пакет ATMEL AVR Studio.
Зібраний пристрій треба запрограмувати та відкалібрувати задопомогою точного зовнішнього амперметру, джерела живлення, навантаження.Калібрування треба проводити встановленням або зняттям перемичок на шунті(резистор R1 на схемі пристрою) виконаним друкованим способом. Встановити такимчином рівні показання приладу та амперметру при різних значеннях струму.

6. Проектування плати друкованої пристрою
На сьогоднішній день існує багато програмних пакетівспеціально розроблених для розведення та проектування друкованих плат, таких якPCad, OrCad, Eagle, але з метою закріплення знань з таких дисциплін як САПР, ТЕМЦ, метрології та т.п. вирішено розробити плату друковану ручним способом упакеті Sprint-Layout4 з урахуванням усіх вимог та стандартів. Розмір ПД вирішенообрати таким самим як і розміри плати РКІ. Їх крепіжні отвори співпадають. Укорпусі вони кріпляться друг за другом за допомогою гвинтів.

Висновок
У даному курсовому проекту ми детально розібрали устрій,алгорітм роботи та способи програмування мікроконтролерами фірми ATMEL. Наприкладі МК ATmega16 розробили пристрій вимірювання струму до 2А. Відладилипрограму, розробили принципову схему та плату друковану. Зібрали пристрій намакетній платі та опробували його працездатність.

Література
1. Программирование на языкеС для AVR и PIC микроконтроллеров. / Сост. Ю.А.Шпак – К.: «МК-Пресс», 2006. –400 с., ил
2. Микроконтроллеры AVRсемейств Tiny и Mega фирмы ATMEL, 2-е изд., стер. – М.: Издательский дом«Додека-ХХІ», 2005. – 560с.

/>Вид со стороны А (деталей)

/>
Вид со стороны В
/> 
                                                                                                         

Схема расположения элементов (вид сверху)
/>


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат The Monk Of Cantebury Essay Research Paper
Реферат Система цивільної оборони
Реферат 14. Понятие протокола передачи данных. Введение
Реферат Социально - психологические аспекты деятельности финансового менеждера в туристском бизнесе
Реферат Конспект из Адама Смита
Реферат Теоретические воззрения Макса Вебера на бюрократию
Реферат Ценообразование 22
Реферат Топографические и тактические условные знаки
Реферат Философия любви в цикле И. А. Бунина «Темные аллеи»
Реферат 7. 09. 1970 -25. 08. 1938
Реферат Теоретичні основи фінансового управління діяльності комерційних банків
Реферат Сущность чрезвычайного положения обстоятельства и порядок его введ
Реферат Теоретичний розрахунок лінійного електричного кола залізничної телемеханіки й зв'язку
Реферат Сунь Цзы Философия войны
Реферат Норвегия - налогообложение физических лиц