МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра «Спеціалізовані комп’ютерні системи»
/
Курсова робота
з курсу "Мікропроцесорні системи"
на тему:
"Проектування мікрокомп'ютера"
АНОТАЦІЯ
В даній курсовій роботі розроблено мікрокомп’ютер на базі мікропроцесора ATmega8.
Для роботи з великим обсягом даних підключено зовнішню пам'ять типу F-RAM.
Розроблено вузол синхронізації та вузол скиду.
Спроектовано функціональну та принципову електричні схеми та реалізовано програмну частину системи.
ВСТУП
З розвитком сучасної науки, промислових та мобільних технологій виникає потреба в обробці великих масивів даних. Із підвищенням вимог до надійності та швидкості роботи, від мікроконтролерів вимагають високу обчислювальну потужність, збільшену пам'ять програм та даних а також низьке енергоспоживання.
Сучасні мікроконтролери повністю задовольняють усі ці вимоги та дозволяють реалізувати проект практично будь-якої складності - від вимірювальних пристроїв до технічних систем спеціального призначення (військова промисловість, авіація, автомобілі і т.д).
Основною метою курсової роботи є розробка високопродуктивної мікропроцесорної системи, здатної ефективно вирішувати поставлені перед нею завдання.
Реалізація поставленого завдання проводиться за допомогою процесора ATmega8, постійної та оперативної пам’яті а також периферійного вузла UART. Така реалізація є доцільною, оскільки технічні характеристики даної конфігурації повністю задовільняють вимоги розроблюваної системи.
Дане технічне рішення може застосовуватися у різноманітних галузях, зокрема у промисловості, побутовій та комп’ютерній техніці.
ЗМІСТ
АНОТАЦІЯ……………………………………………………………….………..2
ВСТУП………………………………………………………………………...……3
1. ПОЧАТКОВІ ДАНІ НА ПРОЕКТУВАННЯ…………..……………………5
2. ОПИС МІКРОКОНТРОЛЕРА………………………………..………………6
2.1. Мікроконтролер …………………. ………………………………….……6
2.1.1. Основні характеристики ……………………………………………...…6
2.1.2. Внутрішня структура …………………..………..………………………8
2.1.3. Ядро …..………………………………………………….………………11
2.1.4. Програмна модель…………………………………………….…………13
2.1.5. Структура пам’яті………………………………………………….….…14
2.1.6. Коротка характеристика системи команд………………..………….…15
2.1.7. Вузол синхронізації (PLL) …………………………………………...…19
2.1.8. Вузол початкової установки (Reset) ………………………...…………20
2.1.9. Пiдсистема вводу-виводу (інтерфейс UART)……...………….……….22
2.1.10. Призначення контактів……………………………………...……....…23
2.1.11. Конструктивне зображення мікросхеми…………………...……....…25
3. РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ФУНКЦІОНАЛЬНОЇ………...…26
4. РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ПРИНЦИПОВОЇ...........................28
4.1. Проектування вузла синхронізації………………………………………...….28
4.2. Проектування вузла скиду………...…………………………………………..28
4.3. Проектування зовнішньої пам’яті програм…………………………..............29
4.4. Проектування UART інтерфейсу………………...……………………….…..34
5. РОЗРОБКА ПРОГРАМНОЇ ЧАСТИНИ СИСТЕМИ………………..……36
5.1. Опис алгоритму……………………………………………………………..…36
5.2. Блок схема алгоритму………………………………………………..….….....37
ВИСНОВОК………….………………………………………..………….………..38СПИСОК ЛІТЕРАТУРИ……………………………….…………………..…….39
ДОДАТКИ
А. Лістинг програми
Б. Схема електрична функціональна
В. Схема електрична принципова
Г. Перелік елементів
ПОЧАТКОВІ ДАНІ НА ПРОЕКТУВАННЯ
1. Тип мiкроконтролера - ATMEL ATmega8
3. Оперативна пам’ять: тип м/сх - FM24СL64 (RAM 64Kx8);
4. Периферійний пристрій -UART
2. ОПИС МІКРОКОНТРОЛЕРА
2.1 Мікроконтролер
Сімейство megaAVR є найбільш різноманітним з точки зору характеристик мікроконтролерів, наприклад обсягів пам'яті, кількості виходів, набору периферійних пристроїв, можливість повторного використання коду в різних проектах. Ці пристрої оптимізовані для скорочення циклу розробки і володіють найефективнішою в галузі архітектурою для програмування мовою С і асемблері. Мікроконтролери megaAVR оснащені вбудованою флеш-пам'яттю, пам'яттю SRAM, внутрішньою пам'яттю EEPROM, інтерфейсами SPI, TWI (I2C), USB, CAN, LIN, USART, сторожовим таймером, зовнішнім або внутрішнім прецизійним генератором і контактами для введення / виведення даних загального призначення, що спрощує проектування і скорочує перелік використовуваних в системі компонентів.
2.1.1 Основні характеристики
основні характеристики:
8-розрядний високопродуктивний AVR мікроконтролер з малим споживанням.
Прогресивна RISC архітектура:
130 високопродуктивних команд, більшість команд виконується за один тактовий цикл.
32 8-розрядних робочих регістра загального призначення.
Продуктивність наближається до 16 MIPS (при тактовій частоті 16 МГц)
Вбудований 2-цикловый перемножувач.
Незалежна пам'ять програм і даних:
8 Кбайт внутрисистемно програмованої Flash пам'яті (In-System Self-Programmable Flash).
Додатковий сектор завантажувальних кодів з незалежними бітами блокування.
Забезпечений режим одночасного читання/запису (Read-While-Write).
512 байт EEPROM.
Забезпечує 10000 циклів стирання/запису.
1 Кбайт вбудованої SRAM.
Програмоване блокування, що забезпечує захист програмних засобів користувача.
Вбудована периферія:
Два 8-розрядних таймера/лічильника з окремим попереднім дільником, один з режимом порівняння.
Один 16-розрядний таймер/лічильник з окремим попередніми дільником і режимами захоплення і порівняння.
Лічильник реального часу з окремим генератором.
Три канали PWM.
8-канальний аналого-цифровий перетворювач (в корпусах TQFP і MLF).
6 каналів з 10-розрядною точністю.
2 канали з 8-розрядною точністю.
6-канальний аналого-цифровий перетворювач (у корпусі PDIP):
4 канали з 10-розрядною точністю.
2 канали з 8-розрядної точністю.
Байт-орієнтований 2-провідний послідовний інтерфейс
Програмований послідовний USART
Послідовний інтерфейс SPI (ведучий/ведений)
Програмований сторожовий таймер з окремим вбудованим генератором
Вбудований аналоговий компаратор
Спеціальні мікроконтролерні функції:
Скидання по подачі живлення і програмований детектор короткочасного зниження напруги живлення
Вбудований калібрований RC-генератор
Внутрішні і зовнішні джерела переривань
П'ять режимів зниженого споживання: Idle, Power-save, Power-down, Standby і зниження шумів ADC
Виводи I/O і корпусу:
23 програмовані лінії вводу/виводу
28-вивідний корпус PDIP, 32-вивідний корпус TQFP і 32-вивідний корпус MLF
Робочі напруги
2,7 - 5,5 В
Робоча частота
0 - 8 МГц (ATmega8L)
0 - 16 МГц (ATmega8)
2.1.2 Внутрішня структура
ATmega8 містить наступні елементи: 8 кбайт внутрисистемно програмованої флеш-пам'яті з підтримкою читання під час запису, 512 байт EEPROM, 1 кбайт статичного ОЗП, 23 лінії універсального введення-виводу, 32 універсальних робочих регістра, лічильник реального часу (RTC), три гнучких таймера-лічильника з режимами порівняння і ШІМ, USART, двопровідний послідовний інтерфейс орієнтований на передачу байт, 6-канальний 10-розрядний АЦП, програмований сторожовий таймер з внутрішнім генератором, послідовний порт SPI, а також шість програмно вибраних режимів зменшення потужності. Режим холостого ходу (Idle) зупиняє ЦПУ, але при цьому підтримуючи роботу статичного ОЗП, таймерів-лічильників, SPI-порту і системи переривань.
Режим виключення (Powerdown) дозволяє зберегти вміст регістрів, при зупиненому генераторі і виключенні вбудованих функцій до наступного переривання або апаратного скидання. В економічному режимі (Power-save) асинхронний таймер продовжує роботу, дозволяючи користувачеві зберегти функцію відліку часу в той час, коли інша частина контролера знаходиться в стані сну. Режим зменшення шумів АЦП зупиняє ЦПУ і всі модулі введення-виведення, крім асинхронного таймера й АЦП для мінімізації імпульсних шумів у процесі перетворення АЦП. В черговому режимі (Standby) кварцовий/коробку резонатора генератор продовжують роботу, а інша частина мікроконтролера знаходиться в режимі сну. Даний режим характеризується малою споживаною потужністю, але при цьому дозволяє досягти найшвидшого повернення в робочий режим.
Мікроконтролер виробляється за технологією високощільної енергонезалежної пам'яті компанії Atmel. Вбудована внутрисистемно програмована флэш-пам'ять дозволяє перепрограмувати пам'ять програм безпосередньо усередині системи через послідовний інтерфейс SPI за допомогою простого програматора або за допомогою автономної програми в завантажувальному секторі. Завантажувальна програма може використовувати будь-який інтерфейс для завантаження прикладної програми у флеш-пам'ять. Програма в завантажувальному секторі продовжує роботу в процесі відновлення прикладної секції флэш-пам'яті. Читання під час запису. За рахунок поєднання 8-розрядної RISC ЦПУ з внутрисистемно самопрограмованою флеш- пам'яттю в одній мікросхемі ATmega8 є потужним мікроконтролером, що дозволяє досягти високої ступеня гнучкості й ефективної вартості при проектуванні більшості додатків вбудованого управління. ATmega8 підтримується повним набором програмних і апаратних засобів для проектування, в т. ч.: Сі- компілятори, макроассемблери, програмні відлагоджувачі/симулятори, внутрішньосистемні емулятори і оціночні набори.
/
Рис 2.1. Архітектура ATmega8
2.1.3 Ядро
Основна функція ядра ЦП полягає в гарантуванні коректності виконання програми. Крім цього, ЦП повинен мати можливість адресуватися до різних видів пам'яті, виконувати обчислення, управляти периферійними пристроями і обробляти переривання.
/
Рис 2.2. Функціональна схема ядра
З метою досягнення максимальної продуктивності і паралелізму у AVR-
мікроконтролерів використовується Гарвардська архітектура з роздільними пам'яттю і шинами програм і даних. Команди в пам'яті програм виконуються з однорівневою конвеєризацією. У процесі виконання однієї інструкції наступна попередньо зчитується з пам'яті програм. Дана концепція дозволяє виконувати одну інструкцію за один машинний цикл. Пам'ять програм являє собою внутрисистемно програмовану флеш-пам'ять. Регістровий файл зі швидким доступом містить 32 x 8-разр. робочих регістрів загального призначення з однотактовим циклом доступу. Завдяки цьому досягнута однотактність роботи арифметико-логічного пристрою (АЛП). При звичайній роботі АЛП спочатку з регістрового файлу завантажується два операнда, потім виконується операція, а після результат відправляється назад у регістровий файл і все це відбувається за один машинний цикл.
6 регістрів з 32 можуть використовуватися як три 16-разр. регістра непрямої адреси для ефективної адресації в межах пам'яті даних. Один з цих покажчиків адреси може також використовуватися як покажчик адреси для доступу до таблиці перетворення у флеш-пам'яті програм. Дані 16-разр. регістри називаються X-регістр, Y-регістр і Z-регістр.
АЛП підтримує арифметичні і логічні операції між регістрами, а також між константою і регістром. Крім того, АЛП підтримує дії з одним регістром. Після виконання арифметичної операції регістр статусу обновлюється для відображення результату виконання операції. Процес виконання програми забезпечується умовним та безумовним переходом і команд виклику, які в змозі безпосередньо адресувати ціле адресний простір. У більшості інструкцій AVR є єдиний 16-розрядний формат слова. Кожна адреса пам'яті програм містить 16-або 32- розрядну інструкцію.
Флеш-пам'ять програм розділена на дві секції: секція програми початкової завантаження і секція прикладної програми. Обидві секції мають роздільні біти захисту від запису і читання/запису. Інструкція SPM (запис у секцію прикладної програми) повинна використовуватися тільки усередині секції програми початкової завантаження.
При генерації переривання і виклику підпрограм адреса повернення з програмного лічильника записується в стек. Стек ефективно розподілений у статичному ОЗП пам'яті даних і, отже, розмір стека обмежений загальним розміром статичного ОЗП і використовуваним його обсягом. В будь-якій програмі відразу після скидання повинна бути виконана ініціалізація покажчика стека (SP) (тобто перед виконанням процедур обробки переривань або викликом підпрограм).
Покажчик стека - SP - доступний для читання і запису у просторі введення-виведення. Доступ до статичного ОЗП даних може бути легко здійснений через 5 різних режимів адресації архітектури AVR.
Простір пам'яті в архітектурі AVR - лінійне і безперервне.
Гнучкий модуль переривань містить свої керуючі регістри в просторі введення-виведення і має додатковий біт загального дозволу роботи системи переривань у регістрі статусу. У всіх переривань є свій вектор переривання відповідно до таблиці векторів переривань. Переривання мають пріоритет згідно з позицією їх вектора. Переривання з меншою адресою переривання мають більш високий пріоритет. Простір пам'яті введення-виведення містить 64 адреси периферійних функцій ЦП як Регістри Управління, SPI, та інші функції вводу-виводу. До Пам'яті вводу -виведення можна отримати доступ безпосередньо, або як до пам'яті даних наступна за регістрами за адресами 0x20 - 0x5F.
2.1.4 Програмна модель
Рис 2.3. Програмна модель
/
Рис 2.4. структура 32 регістрів загального призначення в ЦПУ
2.1.5 Структура пам’яті
Пам'ять AVR-мікроконтролера розділена на дві області: пам'ять даних і пам'ять програм. Крім того, ATmega8 містить пам'ять на EEPROM для енергонезалежного зберігання даних. Всі три області пам'яті є лінійними і рівномірними.
/
Рис 2.5. Розподіл адрес пам’яті програм
/
Рис 2.6. Карта пам’яті данних
2.1.6 Коротка характеристика системи команд
Синтаксис більшості команд ассемблерної мови складається з мнемонічного позначення функції, за яким йдуть операнди, які вказують методи адресації і типи даних. Різні типи даних або режими адресації визначаються встановленими операндами, а не змінами мнемонічних позначень.
Систему команд умовно можна розбити на такі групи:
Арифметичні команди;
Логічні команди;
Команди передачі даних;
Команди бітового процесора;
Команди розгалуження та передачі управління.
Типи адресації операндів-джерел:
Реєстрова адресація
Пряма адресація
Побічно-реєстрова адресація
Безпосередня адресація
Табл. 2.1
Системи команд ATmega8
Позначення
Функція
ADC
Скласти з перенесенням
ADD
Скласти без переносу
ADIW
Скласти безпосереднє значення зі словом
AND
Виконати логічне AND
ANDI
Виконати логічне AND c безпосереднім значенням
ASR
Арифметично зрушити вправо
BCLR
Очистити прапор
BLD
Завантажити T прапор біт регістра
BRBC
Перейти якщо біт в регістрі статусу очищений
BRBS
Перейти якщо біт в регістрі статусу встановлений
BRCC
Перейти якщо прапор переносу очищений
BRCS
Перейти якщо прапор переносу встановлений
BREQ
Перейти якщо одно
BRGE
Перейти якщо більше або дорівнює (з урахуванням знака)
BRHC
Перейти якщо прапор полупереноса очищений
BRHS
Перейти якщо прапор полупереноса встановлений
BRID
Перейти якщо глобальне переривання заборонено
BRIE
Перейти якщо глобальне переривання дозволено
BRLO
Перейти якщо менше (без знака)
BRLT
Перейти якщо менше ніж (зі знаком)
BRMI
Перейти якщо мінус
BRNE
Перейти якщо не одно
BRPL
Перейти якщо плюс
BRSH
Перейти якщо дорівнює або більше (без знака)
BRTC
Перейти якщо прапор T очищений
BRTS
Перейти якщо прапор T встановлений
BRVC
Перейти если переполнение очищено
BRVS
Перейти якщо переповнення встановлено
BSET
Встановити прапор
BST
Переписати біт з регістра під прапор T
CALL
Виконати довгий виклик підпрограми
CBI
- Очистити біт в регістрі I/O
CBR
Очистити біти в регістрі
CLC
Очистити прапор переносу
CLH
Очистити прапор полупереноса
CLI
Очистити прапор глобального переривання
CLN
Очистити прапор від'ємного значення
CLR
Очистити регістр
CLS
Очистити прапор знака
CLT
Очистити прапор T
CLV
Очистити прапор переповнення
CLZ
Очистити прапор нульового значення
COM
Виконати доповнення до одиниці
CP
Порівняти
CPC
Порівняти з урахуванням перенесення
CPI
Порівняти константою c
CPSE
Порівняти і пропустити якщо одно
DEC
Декрементировать
EOR
Виконати виключає OR
ICALL
Викликати підпрограму побічно
IJMP
Перейти побічно
IN
Завантажити дані з порту I/O в регістр
INC
Инкрементировать
FMUL
Дробове незнаковое множення
FMULS
Дробове множення зі знаком
FMULSU
Дробове знакового множення з незнайомим
JMP
Перейти
LD Rd,X
Завантажити побічно
LD Rd,X+
Завантажити побічно инкрементировав згодом
LD Rd,-X
Завантажити побічно декрементировав попередньо
LDI
Завантажити безпосереднє значення
LDS
Завантажити безпосередньо з СОЗУ
LPM
Завантажити байт пам'яті програм
LSL
Логічно зрушити вліво
LSR
Логічно зрушити вправо
MOV
Копіювати регістр
MUL
Перемножити
NEG
Виконати доповнення до двох
NOP
Виконати команду холосту
OR
Виконати логічне OR
ORI
Виконати логічне OR з безпосереднім значенням
OUT
Записати дані з регістра в порт I/O
POP
Завантажити регістр з стека
PUSH
Помістити в регістр стек
RCALL
Викликати підпрограму щодо
RET
Повернутися з підпрограми
RETI
Повернутися з переривання
RJMP
Перейти щодо
ROL
Зрушити вліво через перенесення
ROR
Зрушити вправо через перенесення
SBC
Відняти з перенесенням
SBCI
Відняти безпосереднє значення з перенесенням
SBI
Встановити біт в регістр I/O
SBIC
Пропустити якщо біт в регістрі I/O очищений
SBIS
Пропустити якщо біт в регістрі I/O встановлений
SBIW
Відняти безпосереднє значення слова
SBR
Встановити біти в регістрі
SBRC
Пропустити якщо біт в регістрі очищений
SBRS
Пропустити якщо біт в регістрі встановлений
SEC
Встановити прапор переносу
SEH
Встановити прапор полупереноса
SEI
Встановити прапор глобального переривання
SEN
Встановити прапор від'ємного значення
SER
Встановити всі біти регістра
SES
Встановити прапор знака
SET
Встановити прапор T
SEV
Встановити прапор переповнення
SEZ
Встановити прапор нульового значення
SLEEP
Встановити режим SLEEP
ST X,Rr
Записати побічно
ST Y,Rr
Записати побічно з регістра в СОЗУ з використанням індексу Y
ST Z,Rr
Записати побічно з регістра в СОЗУ з використанням індексу Z
STS
Завантажити безпосередньо в СОЗУ
SUB
Відняти без переносу
SUBI
Відняти безпосереднє значення
SWAP
Поміняти місцями нибблы
TST
Перевірити на нуль або мінус
WDR
Скинути сторожовий таймер
2.1.7 Вузол синхронізації (PLL)
Не обов'язково вся синхронізація повинна працювати в один час. В цілях зниження енергоспоживання тактування використовуваних модулів може бути припинено шляхом переведення в різні режими сну.
XTAL1 і XTAL2 - вхід і вихід, відповідно, інвертуючого підсилювача, який може бути налаштований для використання в якості вбудованого генератора. Для завдання частоти може використовуватись або кварцовий або керамічний резонатор. Конфігураційний біт CKOPT вибирає один з двох режимів підсилювача генератора. Якщо CKOPT запрограмований, то амплітуда коливань вихідного сигналу генератора буде обмежена рівнями живлення.
Цей режим рекомендується використовувати при високому рівні навколишніх шумів або при використанні виходу XTAL2 в якості джерела синхронізації зовнішньої схеми. Даний режим характеризується широким частотним діапазоном. Якщо CKOPT - незапрограмований, то амплітуда вихідних коливань генератора знижується. Використання даного режиму дозволяє істотно знизити споживану потужність, але при цьому обмежений частотний діапазон і не можна XTAL2 використовувати для зовнішньої синхронізації.
При використанні резонаторів максимальна частота дорівнює 8 МГц, якщо CKOPT - незапрограмований, і 16 МГц, якщо CKOPT - запрограмований. C1 і C2 повинні бути завжди дорівнюють незалежно від використання кварцового або керамічного резонатора. Оптимальне значення ємностей конденсаторів залежить від використання кварцового або керамічного резонатора, від значення паразитної ємності і від навколишнього рівня електромагнітного шуму.
Якщо необхідно тактувати мікроконтролер від зовнішнього джерела, то його необхідно підключити до виходу XTAL1. У цьому випадку зовнішня синхронізація має бути дозволена записом в конфігураційні біти СКСЕЛ значення "0000". Якщо запрограмувати конфігураційний біт CKOPT, то між XTAL1 і GND буде підключений внутрішній конденсатор номіналом 36 пФ.
2.1.8 Вузол початкової установки (Reset)
В процесі скидання у всі регістри вводу-виводу записуються їх початкові
значення і виконання програми починається з вектора скидання. По вектору скидання повинна зберігатися інструкція абсолютного переходу JMP на мітку процедури обробки скидання. Якщо в програмі не використовуються джерела переривання, то вектори переривань не використовуються, а зарезервовані під них комірки пам'яті можуть використовуватися для рівномірного розташування коду програми. Є також випадок, коли вектор скидання розташований у секції прикладної програми, а вектори переривань знаходяться в завантажувальному секторі або навпаки. Після припинення дії всіх джерел скидання набирає чинності лічильник затримки, що подовжує внутрішнє скидання. Дана послідовність вимагається для гарантування запуску мікроконтролера при досягненні напругою живлення стабільного рівня. Тривалість затримки при старті визначається конфігураційними бітами CKSEL.
ATmega8 має чотири джерела скидання:
• Скидання при подачі живлення. Мікроконтролер переходить в стан скидання, якщо напруга живлення нижче порога скидання при подачі живлення (VPOT).
• Зовнішнє скидання. Мікроконтролер переходить в стан скидання, якщо на вихід RESET подати низький логічний рівень на час довше, ніж мінімальна
тривалість імпульсу скидання.
• Скидання по сторожовому таймері. Якщо дозволена робота сторожового таймера і стек період його спрацьовування, то мікроконтроллер скидається.
• Скидання при зниженні живлення. Мікроконтролер скидається, якщо напруга
живлення VCC стає нижче порогового значення (VBOT) та дозволена робота
схеми контролю живлення BOD.
/
Рис 2.7. Логіка скиду
2.1.9 Пiдсистема вводу-виводу (інтерфейс UART)
Універсальний синхронний і асинхронний послідовний приймач
(УПП) призначений для організації гнучкої послідовної зв'язку.
Відмінні особливості:
• Повнодуплексна робота (роздільні регістри послідовного прийому і
передачі)
• Асинхронная або синхронна робота
• Провідне або підлегле тактирование зв'язку в синхронному режимі роботи
• Висока роздільна здатність генератора швидкості зв'язку
• Підтримка формату переданих даних з 5, 6, 7, 8 або 9 бітами даних і 1
або 2 стоп-битами
• Апаратна генерація і перевірка біта паритету (парність / непарність)
• Визначення переповнення даних
• Визначення помилки в структурі посилки
• Фільтрація шуму з виявленням помилкового старт-біта і цифровим ФНЧ
• Три роздільних переривання по завершенні передачі, звільненні
регістра переданих даних і завершенні прийому
• Режим многопроцессорной зв'язку
• Режим подвоєння швидкості зв'язку в асинхронному режимі
Призначення контактів
/
Рис 2.8. Корпус і призначення виводів
Таблиця 2.2
Призначення виводів
VCC
Напруга живлення цифрових елементів
GND
Загальний
Port B (PB7..PB0) XTAL1/XTAL2/TOSC1/TOSC2
Порт B - 8-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту B будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту B знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена. В залежності від налаштувань фюзів генератора PB6 може бути як інверсний вхід генератора так і введено до внутрішнього годинника через операційний підсилювач. Якщо Внутрішній Калібрований RC генератор використовується в якості тактового джерела мікросхеми, PB7.. 6 використовується в якості TOSC2.. 1 введення Асинхронного Таймера/Counter2, якщо біт AS2 в ASSR встановлений.
Port C (PC5..PC0)
Порт C - 7-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту C мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту C будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту C знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена.
PC6/RESET
Якщо фьюз RSTDISBL запрограмований, PC6 використовується в якості контакту вводу-виводу. Електричні характеристики PC6 відрізняються від інших контактів Порту C. Якщо фьюз RSTDISBL не програмується, PC6 використовується в якості введення Скидання. Низький рівень на цьому контакті довше ніж мінімальна довжина імпульсу генерує Скидання, навіть якщо генератор не буде працювати. Більш короткі імпульси, не гарантують, генерацію Скидання.
Port D (PD7..PD0)
Порт D - 8-разр. порт двонаправленого вводу-виводу з внутрішніми резисторами. Вихідні буфери порту D мають симетричну вихідну характеристику з однаковими впливаючими і випливаючими струмами. При введенні, лінії порту D будуть діяти як джерело струму, якщо зовні діє низький рівень і включені резистори. Виводи порту D знаходяться в третьому стані при виконанні умови скидання, навіть якщо синхронізація не запущена. Порт D використовується для різних спеціальних функцій ATmega8.
RESET
Вхід скидання. Якщо на цей вхід подати низький рівень тривалістю понад мінімально необхідної буде генероване скидання незалежно від роботи синхронізації. Дія імпульсу меншої тривалості не гарантується генерація скидання.
AVCC
Вхід живлення аналого-цифрового перетворювача Порт C (3.. 0), і ADC (7.. 6).. Він повинен бути зовні пов'язаний з VCC, навіть якщо АЦП не використовується. При використання АЦП цей вивід пов'язаний з VCC через фільтр низьких частот. Порт C (5.. 4)може бути виходом цифрової напруги VCC.
AREF
Вхід підключення джерела опорної напруги АЦП.
ADC7..6 (TQFP and QFN/MLF Package Only)
В TQFP і корпусі QFN/MLF, ADC7.. 6 служать аналоговими входами до конвертора A/D. Ці аналогові контакти і служать 10-бітовими каналами ADC.
2.1.11 Конструктивне зображення мікросхеми
/
/
Рис 2.9. Кунструктивне зображення
Таблиця 2.3
Розміри корпусу/
РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ФУНКЦІОНАЛЬНОЇ
Мікрокомп’ютер складається з зовнішньої пам’яті, мікропроцесора, вузла скиду і синхронізації, а також з вузла периферії . Вузол скиду призначений для затримки сигналу на деякий час, для того щоб мікропроцесорні пристрої встигли перезавантажитись та встановитись в початковий режим роботи. Сигнал RESET спрацьовує по високому логічному рівні та використовується для початкового скидання та ініціалізації процесора.
Вузол синхронізації призначений для формування тактових сигналів, які забезпечують функціонування усіх вузлів мікропроцесора. Він під’єднюється до мікропроцесора за допомогою виводів XTAL1 і XTAL2.
На рисунку 3.1 зображено фрагмент електричноїфункціональної схеми з підключенням вузлів синхронізації та скиду.
/
Рис. 3.1. Фрагмент мікрокомп’ютера з вузлами синхронізації та скиду
Підключення зовнішньої оперативної памяті:
В даному мікрокомп’ютері використовуються оперативний запам’ятовуючий пристрій DD2 з організацією 64К. Записавши дані в пам'ять, їх можна використовувати для пересилання через певну периферію. У даному випадку це здійснюється через порт UART. Для цього використовуємо програмну реалізацію UART- інтерфейсу, тобто передачу даних з пам’яті на UART буде здійснювати спеціальна програма, яка буде доступатись до пам’яті та передаватиме дані із неї. Алгоритм роботи такої передачі даних буде зображений у наступних розділах. На рисунку зображено 3.2 підключення ОЗП.
/
Рис. 3.2. Підключення ОЗП
Вузол периферії:
Для підключення МП до UART порту будемо використовувати програмну реалізацію UART інтерфейсу, тобто передачу даних з пам’яті на UART порт буде здійснювати спеціальна програма. Для цього використовуємо сигнали RXD та TXD мікроконтролера, яким відповідають сигнали UART порту TX та RX відповідно.
/
Рис 3.3. Підключення UART
РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ПРИНЦИПОВОЇ
4.1 Проектування вузола синхронізації
В мікроконтролері АТmega8 XTAL1 і XTAL2 є входом і виходом, відповідно, інвертуючого підсилювача, який з використанням кварцового кристала або керамічного резонатора працює як вбудований генератор, як показано на рисунку 4.1.
/
Рис 4.1. Схема вузла синхронізації
Кварцовий кристал генератора таймера під'єднується безпосередньо до виведень XTAL1 і XTAL2. Додаткові зовнішні конденсатори не потрібні. Генератор оптимізований під часовий кварц з частотою 32,768 КГц. Зовнішній тактовий сигнал, який подається на ці виводи, поступає на підсилювач зі смугою пропускання 256 КГц. Таким чином частота зовнішнього сигналу повинна знаходитися в діапазоні від 0 до 256 КГц.
4.2 Проектування вузла скиду
При ввімкненні живлення мікро контролер АТmega8 виконує операцію початкового скидання автоматично, при чому посилає сигнал RESET всій системі. Така операція називається “power-on-reset” ”(POR), часова діаграма її виконання зображена на рисунку.
/
Рис 4.2. Часова діаграма виконання сигналу початкового скидання
Затримка POR забезпечує достатній час, щоб дозволити ініціювати коректно всі складові частини процесора після ввімкнення живлення.
Для виконання скиду потрібно утримувати низький рівень на вході на протязі двох машинних циклів. Reset має найвищий пріоритет з усіх переривань і перериває будь-яку операцію, що виконується. Лічильник команд PC встановлюється в значення 0000H і вибірка команд відбувається з зовнішньої пам'яті програм за цією адресою.
Щоб реалізувати схему „ручного” скиду мікроконтролера потрібно під'єднати до входу Reset, як показано на рисунку 17, відповідний перемикач К1.
/
Рис 4.3. Схема „ручного” формування сигналу Reset
4.3 Зовнішня пам'ять
Мікроконтролер АТmega8 працює з пам'яттю програм.
На рисунку показана схема під’єднання ОЗП до мікроконтролера.
/
Рис 4.4. Схема під'єднання зовнішньої пам'яті до мікроконтролера
FM24CL64 - енергонезалежна пам'ять ємністю 64Кбіт, виконана за сегнетоелектричною технологією. Сегнетоелектричний оперативний запам'ятовуючий пристрій або FRAM є енергонезалежним і виконує операції читання і запису подібно ОЗП. Вона забезпечує надійне зберігання інформації протягом 10 років, при усуненні проблем пов'язаних зі складністю, обмеженим швидкодією запису і рівнем системної надійності EEPROM та іншої незалежної пам'яті.
FM24C64 виконує операцію запису на швидкості шини. При цьому не виникає ніяких затримок при записі. Наступний цикл шини може бути розпочати негайно без необхідності опитування даних. Крім того, пам'ять має зносостійкість, яка на багато перевищує зносостійкість EEPROM. Також FRAM споживає набагато меншу потужність при записі, ніж EEPROM, якому потрібно додаткове джерело живлення схеми програмування.
Дані можливості роблять FM24CL64 ідеальним для додатків з енергонезалежним зберіганням інформації, де потрібно часто і швидко записувати даних. Приклади таких додатків простягаються від накопичувачів даних, де час запису може бути критичним параметром, до промислового управління, де затримки при записі в EEPROM можуть привести до втрати інформації. У сукупності дані переваги дозволяють записувати дані з більшою частотою, не викликаючи при цьому незручності в програмуванні.
Для користувачів EEPROM , які хочуть перейти на дану технологію, FM24СL64 пропонує можливість безпосередньої апаратної заміни EEPROM. FM24CL64 випускається в стандартному 8-вив. корпусі SOIC і використовує стандартний 2-дротовий інтерфейс. Виконання технічних характеристик гарантується для всього промислового температурного діапазону: -40°C… +85°C.
Структура пам’яті наведена на рис. 19:
/
Рис. 4.5. Блок-схема пристрою пам’яті FM24СL64
Таблиця 4.1
Опис виводів FM24CL64.
Найменування виводу
Опис
A0-A2
Входи завдання адреси пристрою на послідовній шині
ПДД
Введення / висновок послідовних даних / адреси
SCL
Вхід тактування послідовної зв'язку
WP
Вхід захисту від запису
VSS
Земля
VDD
Напруга живлення
/
Рис. 4.6 Типова схема підключення пам’яті FM24СL64 до мікроконтролера
/
Рис. 4.7 Протокол передачі даних пам’яті FM24СL64
Умова завершення
Умова завершення вказує шині SDA змінити рівень від низького до високого в той час як сигнал SCL повинен мати високий рівень. Всі операції з використанням FM24CL64B повинні закінчитися станом завершення. Якщо операція виконується , коли з’являється стан завершення - операція буде перервана. Master повинен мати контроль над SDA (не читання з пам'яті), щоб створити умову завершення.
Умова старту
Стартова умова вказує шині SDA змінити рівень від високого до низького, а сигнал SCL повинен мати високий рівень. Умова старту повинна передувати всім командам роботи з пам’яттю. Завершення стартового сигналу переводить FM24CL64B в режим готовності для нової операції. Якщо під час роботи блоку живлення падає нижче заданого мінімального VDD, система повинна видавати стартову умову перед виконанням іншої операції.
Дані / Адреса передачі
Всі передачі даних (включаючи адреси) мають місце в той час як сигнал SCL високий. За винятком двох описаних вище умов, сигнал SDA не повинно змінюватися в той час як SCL високий.
Підтвердження
Підтвердження, має місце після того, як 8-й біт даних був переданий. У цьому стані передавач повинен звільнити шину SDA.
Адреса Slave
Перший байт, що FM24CL64B очікує після умовою старту є адреса Slave. Як показано на малюнку 4.6 , адреса веденого містить тип пристрою або ID, пристрій вибрати адресу біта, біт адреси сторінки, який визначає, тип транзакції читання або запису. Біти 7-4 є тип пристрою (ID) і повинен бути встановлений на 1010B для M24CL64B. Ці біти дозволяють іншим видам функції знаходяться на 2-провідний шини в ідентичних діапазону адрес. Біти 3-1 вказують біти адреси. Вони мають збігатися з відповідним значенням на зовнішніх контактів адреси, щоб вибрати пристрій. До восьми FM24CL64B пристроїв можуть знаходитися на одній двопровідній шині, призначивши іншу адресу для кожного з них. Біт 0 читання / запису біта. R / W = 1 вказує на операції читання і R / W = 0 вказує на операцію запису.
/
Рис. 4.8. Адреса Slave
/
Рис. 4.9. Часові діаграми читання і запису пам’яті
4.4 Проектування інтерфейсу UART
/
Рис. 4.10. Підключення UART
Для підключення МП до UART порту будемо використовувати програмну реалізацію SPI інтерфейсу, тобто передачу даних з пам’яті на UART порт буде здійснювати спеціальна програма. Для цього використовуємо сигнали RXD та TXD мікроконтролера, яким відповідають сигнали UART порту 1,2 відповідно. Якщо використовується режим синхронного зв'язку (UMSEL = 1), то вивід XCK використовується або як вхід синхронізації або як вихід синхронізації (провідний режим). Залежність між тактовими фронтами і вибіркою даних або зміною даних одна і та ж. Основний принцип роботи полягає в тому, що вибірка даних, що вводяться (на RxD) здійснюється фронтом XCK, який