Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Курсова робота
з предмету: “Мікропроцесорні системи”
тема: “Проектування мікрокомп’ютера”
Виконав: студент групи
Перевірив:
Львів – 2004
Зміст
TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc73906059" 1. Загальні відомості про процесор PIC16C765 PAGEREF _Toc73906059 \h 3
HYPERLINK \l "_Toc73906060" 1.1. Основні характеристики PIC16С765 [3]: PAGEREF _Toc73906060 \h 3
HYPERLINK \l "_Toc73906061" 1.2. Загальний опис PAGEREF _Toc73906061 \h 4
HYPERLINK \l "_Toc73906062" 1.3. Призначення виводів PAGEREF _Toc73906062 \h 7
HYPERLINK \l "_Toc73906063" 1.4. Організація пам'яті PAGEREF _Toc73906063 \h 10
HYPERLINK \l "_Toc73906064" 1.5. Периферія процесора PAGEREF _Toc73906064 \h 11
HYPERLINK \l "_Toc73906065" 2. Опис схеми електричної функціональної та основних режимів функціонування. PAGEREF _Toc73906065 \h 13
HYPERLINK \l "_Toc73906066" 2.1. Загальна схема системи PAGEREF _Toc73906066 \h 13
HYPERLINK \l "_Toc73906067" 2.2. Формування магістралі адреси та даних PAGEREF _Toc73906067 \h 13
HYPERLINK \l "_Toc73906068" 2.3. Підключення зовнішнього пристрою PAGEREF _Toc73906068 \h 14
HYPERLINK \l "_Toc73906069" 3. Опис схеми електричної принципової по вузлах з часовими діаграмами в основних режимах функціонування. PAGEREF _Toc73906069 \h 15
HYPERLINK \l "_Toc73906070" 3.1 Вузол синхронізації PAGEREF _Toc73906070 \h 15
HYPERLINK \l "_Toc73906071" 3.2. Вузол початкового скидання PAGEREF _Toc73906071 \h 16
HYPERLINK \l "_Toc73906072" 3.3. Послідовний інтерфейс PAGEREF _Toc73906072 \h 17
HYPERLINK \l "_Toc73906073" 3.4. Підключення зовнішнього пристрою PAGEREF _Toc73906073 \h 19
HYPERLINK \l "_Toc73906074" 4. Програма початкового завантаження PAGEREF _Toc73906074 \h 21
HYPERLINK \l "_Toc73906075" 4.1. Блок-схема алгоритму PAGEREF _Toc73906075 \h 21
HYPERLINK \l "_Toc73906076" 4.2. Текст програми PAGEREF _Toc73906076 \h 22
Додаток 1. Перелік елементів
Лист 1. Схема електрична функціональна
Лист 2. Схема електрична принципова
1. Загальні відомості про процесор PIC16C765
1.1. Основні характеристики PIC16С765 [3]:
Вископродуктивний RISC-процесор;
Усього 35 простих для вивчення односкладових інструкції
Всі інструкції виконуються за один такт, окрім інструкцій переходу, що виконуються за два такти
Підтримує переривання (12 внутрішніх та зовнішніх джерел)
Пам’ять програм 8К
Пам’ять даних 256 байт
8-рівневий апаратний стек
пряма, непряма та відносна адресація
скидання при завантаженні (power on Reset)
таймер для початкового завантаження (Power up timer) та таймер початку роботи осцилятора (oscillator start-up timer)
Сторожовий таймер (WDT) з власним вбудованим RC- генератором для підвищення надійності роботи
Програмований захист коду
Різні програмовані режими роботи осцилятора
Зовнішня 24МГц
Зовнішня з PLL 6МГц
Кристал/резонатор 24МГц
Кристал/резонатор з PLL 6МГц
енегргозберігаючий режим очікування Sleep
повністю статична, високошвидкісна CMOS
послідовний програмований інтерфейс І2С
Низьке споживання енергії
Периферія:
Універсальна послідовна шина USB
64байти пам’яті порту USB
33 лінії для вводу-виводу
3 таймера-лічильника:
timer0 – 8-бітний таймер-лічильник
timer1 – 16-бітний таймер-лічильник. Може бути задіяний зовнішнім генератором в режимі очікування
timer2 – 8-бітний таймер-лічильник
8-бітний багатоканальний АЦП
універсальний асинхронний приймач-передавач (UART)
паралельний порт, який працює в режимі SLAVE, з зовнішніми керуючими сигналами
1.2. Загальний опис
Процесор є дешевим, високопродуктивним, повністю статичним. Всі процесори РІС виконані на RISC-архітектурі. Розділені потоки інструкцій та даних (процесор побудовано на Гарвардській архітектурі) дозволяють одночасно пересилати 14-бітні інструкції з 8-бітними даними. Більший набір регістрів загального ризначення надає нові можливості по підвищенні продуктивності процесора [4].
Універсальна послідовна шина надає можливість з’єднання між шинами. Процесор містить 8-бітний АЦП, що надає можливість його виокристання в побудові дешевого аналогового інтерфейсу (термостатичний контроль, контроль тиску, тощо). Процесор має спеціальні можливості для того щоб зменшити пристуність зовнішніх компонент та зменшити схемну надлишковість. Це надає змогу підвищити надійність схеми.
Режим очікування потрібний для економїї енергії. Користувач може “розбудити” процесор з режиму очікування через зовнішнє переривання а бо апаратне скидання.
Процесор містить таймери Watchdog Таймер (WDT). Watchdog Таймер включає свій власний вбудований RC- сцилятор, що надає захист проти програмного зависання.
Рис. 1 – Структурна схема мікроконтролера
Як вже було зазначено процесор використовує Гарвардську архітектуру, в якій програми ті код зберігаються окремо і використовують окремі шини. Це дозволяє розширити програмну перепускну здатність системи порівняно із нейманівською архітектурою, в якій програми та дані витягуються з одної пам’яті, використовуючі ожні й ту саму шину. Розділення пам’яті програм та даних дозволяє інструкціям мати розрядність іншу від 8-біт. Коди інструкцій є 14-розрядними, що дозволяє бути всім існтрукціям однослівними.
З 14-бітної програмної пам’яті витягується одна інструкція за цикл. За другий цикл інструкцяя виконується. Інструкції виконуються конвеєром. Схема його роботи зображена на рисунку 2.
Рис. 2 – Конвейр програм
Більшість інструкцій виконується за 1 цикл – 166,666нс при частоті 24МГц (за винятком переходів). Процесор може прямо та непрямо адресувати регістровий файл та пам’ять даних. Всі спеціальні регістри, включаючи програмний лічильник відображаються в пам’яті, тобто до них є доступ.
PIC16С558 містить 8-біт ALU і робочий регістр. ALU є арифметичним пристроєм загального призначення. Він виконує арифметичні і логічні операції над даними в робочому регістрі і будь-яким регістровим файлом. ALU може виконувати додавання, віднімання, зсуви, і логічні операції. Як правило в арифметичній інструкції приймають участь два-операнди, один операнд – робочий регістр (W регістр). Інший операнд є регістровий файл або константа. В інструкції з одним операндом, операнд є або W-регістр або регістровий файл. W-регістр є 8-бітним [3]. Його не можна адресувати.
Залежно від виконаної інструкції, ALU може вплинути на значення бітів у регістрі прапорців (C, DC, Z).
1.3. Призначення виводів
Рис. 3 – Умовне графічне зображення процесора РІС16С65
Таблиця 1 – Призначення та тип виводів [3]
1.4. Організація пам'яті
Процесор має 13-розрядний лічильник команд, здатний до адресації 8K x 14 простору пам'яті програм. Вектор скидання знаходиться в 0000h і вектор переіривання знаходиться у 0004h [3].
Карта пам’яті програм процесора показана на рисунку 4
Рис. З – Карта програмної пам’яті мікроконтролера
Організація пам'яті даних
Пам'ять даних поділена на декілька банка, які містять регістри загального призначення, і спеціальні регістри. Біти RP0 і RP1 дозволяють вибирати кожен банк пам’яті.
00 – Банк0
01 – Банк1
10 – Банк2
11 – Банк3
Кожний банк розширюється до 7Fh (128 байтів). Перші комірки кожного банку зарезервовані для спеціальних функціональних регістрів. Над ними розташовується статична пам’ять RAM. Всі банки пам’яті містять регістри спеціального призначення. Деякі регістри можуть відображатися в інші банки для швидшого доступу.
Регістровий файл загального призначення може адресуватися прямо чи непрямо, за допомогою регістру вибору FSR.
Спеціальні регістри поділяються на 2 категорії: регістри, які асоційовані з ядром процесора, та регістри які спеціалізовані на периферійних пристроях.
Регістри спеціального призначення використовуються процесором для контролю необхідних операцій у пристрої. Ці регістри є статичною RAM.
1.5. Периферія процесора
Аналогово-цифровий перетворювач
8-бітний аналогово-цифровий перетворювач має 8 виводів. Він дозволяє перетворення вхідного аналогового сигналу в відповідний йому 8-бітний цифровий код. Результат на виході підраховується з деякою точністю.
Цап може працювати та перетворювати напругу у цифровий код навіть тоді, коли процесор знаходиться в сплячому режимі. Для роботи, коли процесор знаходиться в стані очікування, АЦП повинен включати свій власний вбудований осцилятор.
Модуль ЦАП має 3 регістри:
A/D Result Register (ADRES). Контролює операції в модулі АЦП.
A/D Control Register 0 (ADCON0).
A/D Control Register 1 (ADCON1) Визначає функції входів порта. Входи порта можуть бути визначені як аналогові входи, або цифрові входи-виходи
Універсальна послідовна шина
USB було розроблено для задоволення зростаючих потреб по покращенню швидкості передачі даних через послідовний порт в специфікаці РС2000. Основними вимогами було розширення полоси пропускання та кількості пристроїв, які можуть бути під’єднані. Також цей інтерфейс підтримує підключення „на гарячу”.
USB підключення представляють собою наступну топологію: хост в голові, хаби посередині та периферійні присрої на кінцях. Обмеженням є 127 пристроїв на одній лінії, та утворене дерево не може бути більшим за 6 рівнів. USB підтримує передачу даних на одній з 2 швидкостей:
Повна швидкість – 12Мбіт/с
Мала швидкість – 1,5Мбіт/с
Повна швидкість використовується для передачі даних в системах, які призначені для переробки звуку та відео аплікацій. Мала швидкість використовується для роботи на лініях з невисоким навантаженням даних.
2. Опис схеми електричної функціональної та основних режимів функціонування.
2.1. Загальна схема системи
Мікрокомп’ютер складається з наступних вузлів процесора оперативної пам'яті, підсистеми вводу-виводу, яка обслуговує один або декілька периферійних пристроїв [1] В системі використовуються 3 магістралі: даних, адрес та магістраль керування. Дані передаються по магістралі даних а адреси - по магістралі адрес По магістралі керування передаються керуючі сигнали На вузол пам’яті подається сигнал EMBED Equation.3 (запис або читання даних) Сигнал скидання використовується для початкового скидання та ініціалізації процесора Спрощена функціональна схема мікрокомп’ютера показана на рис.5.
РІС16С765
Блок синхронізації
Блок початкової установки
Пам’ять
Периферійний пристрій
SHAPE \* MERGEFORMAT
Рис. 5 – Загальна структура мікрокомп’ютера
2.2. Формування магістралі адреси та даних
Оскільки в РІС16С765 лінії порту RD є мультиплексовані для передачі молодшої частини адреси і передачі/приймання даних, то виникає необхідність використання регістру для проміжного зберігання молодшої частини адреси [1].
МА
SHAPE \* MERGEFORMAT Р2
Р0
ALE
8
8
8
16
RG
D
C
Q
Рис.6 – Формування магістралі адреси
2.3. Підключення зовнішнього пристрою
В якості зовнішнього пристрою використовується клавіатура. Підключається до системи через порт RD.
Рис.7 – Підключення зовнішнього пристрою
3. Опис схеми електричної принципової по вузлах з часовими діаграмами в основних режимах функціонування.
3.1 Вузол синхронізації
PIC16С765 включає в себе вбудований осцилятор, що дає економію в ціні та в апаратній частині [4].
PIC16С765 може працювати з 4 різним варіантами синхронізації. Користувач може програмно задати конфігурацію слова (CONFIG<0>), щоб вибрати один з варіантів:
Зовнішня
Зовнішня з PLL
Кристал/резонатор
Кристал/резонатор з PLL 6МГц
В мікрокомпьютері, що проектується використовується третій варіант.
Цей режим синхронізації передбачає підключення кристального або керамічного осцилятора до виводів CLKIN та CLKOUT.
Рис. 8 – Схема під’єднання джерела імпульсів до процесора
Рис. 9 - Діаграма тактової частоти процесора
3.2. Вузол початкового скидання
В PIC16С558 є наступні види скидання:
Power-on скидання (POR)
MCLR скидання протягом нормальної дії
MCLR скидання протягом режиму Sleep
WDT просте скидання (нормальна дія)
Деякі регістри не змінюють свій стан , після скидання; їхній статус є невідомим при POR. Більшість інших регістрів скидаються при Power-on, MCLR. Вони не змінюють свій стан під час WDT Wake-up, яке розглядається як оновлення даних дії. Біти TO і PD використовуються для встановлення типу скидання [4].
SHAPE \* MERGEFORMAT Reset
R1
C1
K1
Рис. 10 – Вузол скидання
Рис. 11 - Діаграма початкового скидання процесора
3.3. Послідовний інтерфейс
В процесорі міститься послідовний інтерфейс для зв’язку із зовнішніми пристроями. Ці зовнішні пристрої можуть бути послідовними EEPROMs, регістрами зсуву, A/конверторами, тощо. I2C є послідовним 2-лінійним інтерфейсом.
Інтерфейс може бути сконфігуровано на наступні режими роботи[2]:
асинхронний (пвнодуплексний)
синхронний – мастер (напівдуплексний)
синхронний – слуга (напівдуплексний)
I2C використовує протокол для надійного передавання та прийому даних. Коли іде передача даних, один пристрій є "майстром" (генерує тактову частоту), а інший пристрій(s) є веденим. Всі частини протоколу веденого пристрою виконані в апаратному забезпеченні.
В цьому інтерфейсі протокол повинен шукати адресу пристрою, в який він хоче передати дані. Коли ведучий пристрій хоче ініціалізувати передачу даних, він встановлює адресу пристрою в який має вестися передача даних. Всі пристрої зчитують цю адресу і визначають чи ця адреса є їх власна. Всередині цієї адреси, біт конкретизує, що саме необхідно робити – читати від або писати до веденого пристрою.
Майстер і ведений пристрої знаходяться завжди в протилежних режимах (transmitter/receiver) дії протягом передачі даних. Вони можуть діяти в любому цих двох режимів:
Головний-відправник і ведений-одержувач
Ведений-відправник і головний-одержувач
В обох випадках головний генерує синхронізуючий сигнал.
Зовнішні резистори натягнення використані, щоб гарантувати високий рівень, коли немає пристроя, який не використовує лінію.
Сигнали START STOP визначають відповідно запуск і зупинку передачі даних. START визначається я к перехід з високого до низького рівня SDA, коли сигнал SCL є високим. STOP є перехід з низького до високого рівняв SDA, коли сигнал SCL є високим. Головний пристрій генерує ці сигнали для стартування і закінчення передачі даних. Коли дані передані, лінія може змінити свій стан тільки тоді коли SCL є низьким.
Рис. 12– Асинхронна передача даних в послідовному інтерфейсі
Лінія І2С підключається до двонаправлених портів RС і при встановленні стану високого імпедансу (через резистори Rp), порти працюють на прийом, а при встановленні низького рівня – на передачу.
Вся система підключається до комп’ютера за допомогою послідовного інтерфейсу RS232, як показано на рисунку 17.
Рис. 13 - Схема підключення до ПК
3.4. Підключення зовнішнього пристрою
В якості зовнішнього пристрою використовується плівкова клавіатура з тактильним ефектом CK-12.
Плівкова клавіатура на поліефірних плівках з тактильним ефектом. На внутрішню сторону лицьової плівки нанесений багатоколірний малюнок із зображенням клавіш і спеціальних символів. Зовнішня сторона має антивідблиск, стійка до стирання і дії агресивних середовищ. На внутрішній стороні клавіатури нанесений клейовий шар для монтажу на корпус приладу.
Вона має наступні характеристики [4]:
Конструкційні характеристики:
Кількість клавіш 16
Розмір 80х75 мм
Схема включення 4х4
Електричні характеристики:
Комутована напруга не більше 36В
Комутований струм не більше 100мА
Максимальна потужність не більше 0.6Вт
Кількість спрацьовувань клавіш не менше 1 000 000
Брязкіт контактів не більше 10мс
Опір замкнутого ланцюга довжиною 500мм не більше 100Ом
Опір ізоляції не менш 20МОм
Умови експлуатації:
Робочий температурний діапазон від -40 до +50 гр.С
Відносна вогкість повітря при 25гр.С не більше 93%
Стійкість лицьової плівки до агресивних середовищ - розчинники, масла і змащування, бензин і диз. паливо, миючі засоби
Синусоїдальна вібрація (працездатність під час і після впливу) - 5 - 80 Гц з амплітудою прискорення 2 g і амплітудою переміщення 2 мм
Багатократні механічні удари (працездатність під час і після дії) 10 g в 3-х напрямах з частотою 40 - 60 уд/ мін. - 1000 ударів
Схему її підключення до системи зображено на рисунку 14.
Рис. 14 – Схема підключення клавіатури до комп’ютера
4. Програма початкового завантаження
4.1. Блок-схема алгоритму
SHAPE \* MERGEFORMAT Початок
Ініціалізація функціональних регістрів
Вибір режим синхронізації
Ініціалізація та запуск сторожевого таймера
Налаштування послідовного порту UART
Налаштування АЦП
Блок обробки переривань
Опитування клавіатури
Передача інформації через послідовний порт
Робота з АЦП
Кінець
4.2. Текст програми
ORG 0x500
BSF PCLATH,3 ;Select page 1 (800h-FFFh)
CALL SUB1_P1 ;Call subroutine in
: ;page 1 (800h-FFFh)
:
ORG 0x900 ;page 1 (800h-FFFh)
SUB1_P1
: ;called subroutine
: ;page 1 (800h-FFFh)
:
RETURN ;return to Call subroutine
;in page 0 (000h-7FFh)
;Ініціалізація порта A
BCF STATUS, RP1 ;
BCF STATUS, RP0 ;
CLRF PORTA ; Initialize PORTA by
; clearing output
; data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISA ; Set RA<3:0> as inputs
; RA<5:4> as outputs
; TRISA<7:6> are always
; read as ’0’.
; Ініціалізація порта B
BCF STATUS, RP1 ;
BCF STATUS, RP0 ;
CLRF PORTB ; Initialize PORTB by
; clearing output
; data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISB ; Set RB<7:0> as inputs
; Ініціалізація порта C
BCF STATUS, RP1 ;
BCF STATUS, RP0 ;
CLRF PORTC ; Initialize PORTC by
; clearing output
; data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISC ; Set RC<7:0> as inputs
; Ініціалізація порта D
BCF STATUS, RP1 ;
BCF STATUS, RP0 ;
CLRF PORTD ; Initialize PORTD by
; clearing output
; data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISD
; Ініціалізація порта E
BCF STATUS, RP1 ;
BCF STATUS, RP0 ;
CLRF PORTE ; Initialize PORTE by clearing output
; data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISE
call InitUSB ; Set up everything so we can enumerate
ConfiguredUSB ; wait here until we have enumerated.
idleloop
call CheckSleep ; Ok, here’s a good point to put part to sleep if no activity on the bus.
CheckEP1 ; Check Endpoint 1 for an OUT transaction
bcf STATUS,IRP ; point to lower banks
movlw buffer
movwf FSR ; point FSR to our buffer
movlw 1 ; check end point 1
call GetUSB ; If data is ready, it will be copied.
btfss STATUS,C ; was there any data for us?
goto idleloop ; Nope, check again.
PutBuffer
bcf STATUS,IRP ; point to lower banks
movwf bufferlen ; save buffer length
movlw buffer
movwf FSR ; point FSR to our buffer
swapf bufferlen,w ; upper nybble of W is buffer length
iorlw 1 ; lower nybble of W is EndPoint number
call PutUSB
btfss STATUS,C ; was it successful?
goto PutBuffer ; No: try again until successful
goto idleloop ; Yes: restart loop
end
MAIN
BCF STATUS,RP0 ;Установка банка 0.
BTFSC PORTB,0
GOTO CHK_ZERO
CHK_ONE
BTFSS PORTB,0 .
GOTO CHK_ONE
GOTO RUN
CHK_ZERO
BTFSC PORTB,0
GOTO CHK_ZERO
RUN
bsf PORTB,4
CALL DELAY
BCF PORTB,4
BSF PORTB,5
CALL DELAY
BCF PORTB,5
BSF PORTB,6
CALL DELAY
BCF PORTB,6
BSF PORTB,7
CALL DELAY
BCF PORTB,7
GOTO RUN
DELAY ;Підпрограми затримки
CLRF TMR0 ;Початкове значення таймеру рівне 0.
select_TMR0 ;Переключення.дільника с WDT на TMR0.
clrwdt ;Скид WDT
bsf STATUS, RP0 ;Установка банка 1.
MOVLW b'00000101' ;Вибір коеф. ділення, Вибір джерела
тактування,
;вибір режиму таймеру
MOVWF OPTION_REG
BCF STATUS, RP0 ;Установка банка 0.
NOP
GOTO DLY1
RETURN end
Висновки
В створеній мікропроцесорній системі використовується мікропроцесор PIC16С765. Він представляє собою завершену систему на одному чіпі, яка включає в себе пам'ять даних ЕППЗУ об'ємом 8Кбайт, 256 байт пам’яті SRAM (універсальні регістри), аналогово-цифровий перетворювач.
Створена мікропроцесорна система містить зовнішню пам’ять, що надає можливість завантажування програм великих обсягів. Пам’ять під’єднано через послідовний інтерфейс. В якості зовнішнього пристрою використовується плівкова клавіатура з тактильним ефектом CK-12.
Література
Конспект лекцій з курсу “Мікропроцесорні системи”.
“Интегральные микросхемы”. Справочник под ред. Б. В. Тарабрина.- М.:Радио и связь,1984 г.
PIC16С7хх.Family. 1999 Microchip Technology Inc.
Internet : http:// www.microchip.ru