Міністерство освіти України
Національний університет “Львівська Політехніка”
кафедра ЕОМ
К у р с о в а р о б о т а
з курсу
“Мікропроцесорні системи”
на тему
“Проектування мікрокомп’ютера”
Львів 2003
З м і с т
Початкові дані на проектування 3
1. Розробка схеми електричної функціональної мікро ЕОМ та основних
режимів функціонування 4
1.1. Основні технічні характеристики МП C8051F018 7
1.2. Структура МП C8051F018 7
1.3. Основні вузли та опис МП C8051F018 8
2. Розробка схеми електричної-принципової мікро ЕОМ 17
3. Розробка блок схеми та програми початкової ініціалізації мікро ЕОМ 23
3.1. Структура пам’яті 23
3.2. Програмна конфігурація вузлів МП 25
3.3. Контроль перетворень та передача даних 25
3.4. Відображення та збереження інформації 26
3.5. Сканування аналогових величин 27
Література 28
Додаток 1. Перелік елементів
Додаток 2. Лістинг програми керування та ініціалізації мікрокомп’ютера
Лист 1. Схема електрична фунціональна
Лист 2. Схема електрична принципова
Початкові дані на проектування
Спроектувати мікро ЕОМ на базі мікропоцесора Cygnal C8051F018. Розробити функціональну та принципову електричні схеми мікрокомп’ютера. Розробити програму ініціалізації та керування мікрокомп’ютером.
1. Розробка схеми електричної функціональної мікрокомп’ютера та основних режимів функціонування
Для цифрової обробки сигналів використовують так звані сигнальні мікропроцесори. До їх особливостей належить малорозрядність (до 40 розрядів) оброблювальних чисел з рухомою комою, переважне використання чисел із фіксованою комою розрядністю до 32 біт, а також орієнтацію на нескладну обробку великих масивів даних.
Відмінною особливістю задач цифрової обробки сигналів є потоковий характер обробки даних великих об'ємів в реальному масштабі часу, що вимагає від обчислювальних засобів високої продуктивності та інтенсивного обміну даними з зовнішніми пристроями. Відповідність таким вимогам досягається завдяки специфічній архітектурі сигнальних процесорів, проблемно-орієнтованій системі команд.
Сигнальні процесори володіють високим ступенем спеціалізації. В них широко використовуються методи скорочення тривалості командного циклу, характерні для універсальних RISC-процесорів, такі як конвеєризація на рівні окремих мікрокоманд та інструкцій, розміщення операндів більшості команд у регістрах, використання тіньових регістрів для збереження станів обчислень при переключенні контексту, розділення шин команд і даних (Гарвардська архітектура). В той самий час для сигнальних процесорів характерною є наявність апаратного множника, що дозволяє виконувати множення двох чисел за один командний такт. В універсальних процесорах множення реалізується за декілька тактів, як послідовність операцію зсуву та додавання. Іншою особливістю сигнальних процесорів є включення в систему команд таких операцій як множення з накопиченням, інверсія біт адреси, різнорідні бітові операції. В сигнальних процесорах реалізується апаратна підтримка програмних циклів, кільцевих буферів. Один або декілька операндів викликаються з пам'яті в циклі виконання команди.
Реалізація однотактного множення і команд, що використовують в якості операндів вмістиме комірок пам'яті обумовлюють порівняно низькі тактові частоти роботи таких процесорів. Спеціалізація не дозволяє підвищувати продуктивність за рахунок швидкого виконання коротких команд, як це виконують в універсальних процесорах. Цих команд просто не має в програмах обробки сигналів.
Сигнальні процесори різних компаній-виробників утворюють два класи, які суттєво відрізняються ціною: більш дешеві мікропроцесори для обробки даних в форматі з фіксованою комою та дорогі мікропроцесори, що апаратно підтримують операції над даними з рухомою комою.
Використання в сигнальній обробці даних із даних з рухомою комою обумовлене декількома причинами. Для багатьох задач, пов'язаних з виконання диференціальних та інтегральних перетворень, важливе місце має точність обчислень, забезпечити яку може лише експоненціальний формат представлення даних. Алгоритми компресії, декомпресії, адаптивної фільтрації в цифровій обробці пов'язане з визначенням логарифмічних залежностей і ому дуже чутливі до точності представлення даних в широкому динамічному діапазоні.
Робота з даними в форматі з рухомою комою, суттєво спрощує і прискорює обробку, збільшує надійність програми, так як не вимагає операцій округлення та нормалізації даних, відслідковування ситуацій втрати ваги та переповнення.
Платити за такий “комфорт та швидкість” доводиться високою складністю функціональних вузлів, що виконують обробку даних, необхідність використання більш складних технологій виготовлення мікросхем.
Останнім часом став популярним інший підхід підвищення продуктивності. Велика кількість транзисторів на кристалі може бути використана для створення симетричної багатопроцесорної системи з більш простими процесорами, що обробляють цілочисельні операнди. Прикладами таких “медійних” процесорів є вироби компаній MicroUnit, Philips, Chromatic Research, Nvidia, Cyrix.
Ці процесори створюються для потреб обробки у реальному масштабі часу відео- аудіоінформації. В зв'язку з більш простою схемотехнікою порівняно з універсальними процесорами вони мають низьку вартість (до 100$). Пікова продуктивність сучасних спеціалізованих процесорів складає декілька міліардів цілочисельних операцій за секунду.
В переліку найбільш поширених сигнальних процесорів слід назвати вироби компаній Motorola, Intel, Texas Instruments, Analog Device, Cygnal. Вироби останньої з названих фірм набули популярності в розробці недорогих вимірювальних пристроїв і будуть розглянуті в даній роботі.
Вибір того чи іншого процесора для реалізації конкретного проекту – багатокритеріальна задача, однак слід зазначити перевагу процесорів Analog Device для задач що вимагають об'ємних математичних розрахунків (цифрової фільтрації сигналів, обчислень кореляційних функцій) так як їх показники продуктивності на порядок вищі в цій галузі на відміну від виробів інших фірм. В той самий час для задач які вимагають інтенсивного обміну із зовнішніми пристроями переважно використовують вироби Texas Instruments, які володіють високошвидкісними інтерфейсними підсистемами.
Компанія Motorola є лідером по виробництву сигнальних мікропроцесорів, більшу частину яких складають недорогі 16-ти та 24-розрядні МП з фіксованою комою.
1.1. Основні технічні характеристики МП C8051F018
- швидкодія до 25 MIPS на 25MHz
- 22 вектори переривань
- використання режимів IDLE-Mode та SLEEP-Mode
- можливість роботи із RC, LP, XT, HP схемами генератора
- вбудована схема підтримки емулювання
- 16 кБ FLASH-пам’яти програм, внутрисхемне програмування
- 256 + 1Kбайт ОЗП (стандарт), до 64Кбайт зовнішньої
- 4 таймера 16-біт, 5 модулів Capture/Compare
- Watchdog-таймер
- сенсор температури з точністю до 3 °C;
- вхідний мультиплексор з кофігуруванням 1/8, або диференційні входи;
- АЦП 10-біт з інтегральною нелінійністю до +1LSB;
- два компаратори з виходом на переривання або скидом;
- прецезійний монітор напруги живлення
- порти RS232, SPI, SMBus (IIC)
- напруги живлення 2.8 3.6 В
- споживання 12.5 мА, на 25 MHz
1.2. Структура МП C8051F018
Структурна схема МП представлена на рисунку 1.1.
Структуру МП можна розділити на 2 частини: аналогову та цифрову.
В аналоговій частині МП розміщені:
- сенсор температури з точністю до +2 °C;
- вхідний мультиплексор з кофігуруванням 1/8, або диференційні входи;
- АЦП 10 - біт з інтегральною нелінійністю до +1LSB;
- два компаратори з 16 рівнями гістерезісу з виходом на переривання або скидом.
В цифровій часині МП представлені власне мікропроцесорне ядро СІР-51, основна (RAM), розширена (ХRAM) та флеш пам’ять, модуль JTAG логіки, системи керування перериваннями, системи інтерфейсів портів вводу/виводу.
Рис. 1.1. Структурна схема МП
1.3. Основні вузли МП C8051F018
Мікроконтролер CIP-51
Мікро контролер системи має такі характеристики:
- швидкодія до 25MIPS на 25MHz;
- 21 вектор переривань;
- використання режимів IDLE-Mode і SLEEP-Mode
- напруги живлення 2.7-3.6 В
- можливість роботи із RC, LP, XT, HP схемами генератора
- вбудована схема підтримки емулювання
- 4 таймера 16-біт, 5 модулів Capture/Compare
- Watchdog-таймер
Структурна схема мікроконтролерного ядра представлена на рисунку 1.2.
Рис. 1.2. Структурна схема ядра CIP-51
Основні елементи схеми:
ALU – арифметико – логічний пристрій
Stack pointer – вказівник стеку
B reg.- В регістр
Accumulator- акумулятор
PC increment – інкремент лічильника
Program counter - лічильник
Data pointer- вказівник даних
Buffer- буферні регістри
Program address reg. – рег. адреси команд
Power control reg. – рег. контролю живлення
Interupt int. – інтерфейс переривань
Memory int.- інтерфейс пам’яті
SFR Bus int. – шина регістрів спеціального призначення
Data Bus – шина даних
Система команд мікропроцесорного ядра містить набори команд для виконання арифметичних, логічних, бітових операцій, операцій роботи із пам’яттю та портами і наведена у таблиці 1.1.
Таблиця 1.1. Система команд СІР-51
Мнемоніка команди
Опис команди
К-сть байт
К-сть тактів
Арифметичні операції
ADD A,Rn Add
Додати регістр до A
1
1
ADD A,direct
Додати безпосередньо байт до A
2
2
ADD A,@Ri
Додати з комірки RAM до A
1
2
ADD A,#data
Додати до A
2
2
ADDC A,Rn
Додати регістр до A з переносом
1
1
ADDC A,direct
Додати безпосередньо байт до A з переносом
2
2
ADDC A,@Ri
Додати з комірки RAM до A з переносом
1
2
ADDC A,#data
Додати до A з переносом
2
2
SUBB A,Rn
відняти регістр з A з запозиченням
1
1
SUBB A,direct
відняти безпосередньо байт з A з запозиченням
2
2
SUBB A,@Ri
відняти з комірки RAM з A з запозиченням
1
2
SUBB A,#data
відняти з A з запозиченням
2
2
INC A
збільшити A
1
1
INC Rn
збільшити регістр
1
1
INC direct
збільшити безпосередньо байт
2
2
INC @Ri
збільшити з комірки RAM
1
2
DEC A
зменшити A
1
1
DEC Rn
зменшити регістр
1
1
DEC direct
зменшити безпосередньо байт
2
2
DEC @Ri
зменшити з комірки RAM
1
2
INC DPTR
збільшити Data Pointer
1
1
MUL AB
перемножити A та B
1
4
DIV AB
поділити A на B
1
8
DA A
десяткова корекція
1
1
Логічні операції
ANL A,Rn
AND регістр A
1
1
ANL A,direct
AND безпосередньо байт в A
2
2
ANL A,@Ri
AND з комірки RAM в A
1
2
ANL A,#data
AND в A
2
2
ANL direct,A
AND A з безпосередньо байтом
2
2
ANL direct,#data
AND з безпосередньо байт
3
3
ORL A,Rn
OR регістр з A
1
1
ORL A,direct
OR безпосередньо байт з A
2
2
ORL A,@Ri
OR з комірки RAM до A
1
2
ORL A,#data
OR з A
2
2
ORL direct,A
OR A з безпосередньо байтом
2
2
ORL direct,#data
OR з безпосередньо байтом
3
3
XRL A,Rn
Exclusive-OR рег. з A
1
1
XRL A,direct
Exclusive-OR безпосередньо байт з A
2
2
XRL A,@Ri
Exclusive-OR з комірки RAM до A
1
2
XRL A,#data
Exclusive-OR з A
2
2
XRL direct,A
Exclusive-OR A з безпосередньо байтом
2
2
XRL direct,#data
Exclusive-OR з безпосередньо байтом
3
3
CLR A
очистити A
1
1
CPL A
доповнити A
1
1
RL A
зсув A вліво
1
1
RLC A
зсув A вліво з переносом
1
1
RR A
зсув A вправо
1
1
RRC A
зсув A вправо з переносом
1
1
SWAP A
поміняти з A
1
1
Команди пересилки
MOV A,Rn
перенести регістр до A
1
1
MOV A,direct
перенести безпосередньо байт до A
2
2
MOV A,@Ri
перенести з комірки RAM до A
1
2
MOV A,#data
перенести до A
2
2
MOV Rn,A
перенести A до регістру
1
1
MOV Rn,direct
перенести безпосередньо байт до регістру
2
2
MOV Rn,#data
перенести до регістр
2
2
MOV direct,A
перенести A до безпосередньо байту
2
2
MOV direct,Rn
перенести регістр до безпосередньо байту
2
2
MOV direct,direct
перенести безпосередньо байт
3
3
MOV direct,@Ri
перенести з комірки RAM до байту
2
2
MOV direct,#data
перенести до байту
3
3
MOV @Ri,A
перенести A до з комірки RAM
1
2
MOV @Ri,direct
перенести безпосередньо байт з комірки RAM
2
2
MOV @Ri,#data
перенести з комірки RAM
2
2
MOV DPTR,#data16
Зчитати вказівник з константою
3
3
MOVC A,@A+DPTR
перенести code байт DPTR до A
1
3
MOVC A,@A+PC
перенести code байт PC до A
1
3
MOVX A,@Ri
перенести (8-біт address) до A
1
3
MOVX @Ri,A
перенести A до (8-біт address)
1
3
MOVX A,@DPTR
перенести (16-біт address) до A
1
3
MOVX @DPTR,A
перенести A до (16-біт address)
1
3
PUSH direct
Занести безпосередньо байт в стек
2
2
POP direct
Зчитати безпосередньо байт з стека
2
2
XCH A,Rn
поміняти регістр з A
1
1
XCH A,direct
поміняти безпосередньо байт з A
2
2
XCH A,@Ri
поміняти з комірки RAM з A
1
2
XCHD A,@Ri
помяніти комірки RAM з A
1
2
Бінарні операції
CLR C
очистити перенос
1
1
CLR bit
очистити безпосередньо біт
2
2
SETB C
встановити перенос
1
1
SETB bit
встановити безпосередньо біт
2
2
CPL C
доповнити перенос
1
1
CPL bit
доповнити безпосередньо біт
2
2
ANL C,bit
AND безпосередньо біт з переносом
2
2
ANL C,/bit
AND з доповненням безпосередньо до біту з переносом
2
2
ORL C,bit
OR безпосередньо біт з переносом
2
2
ORL C,/bit
Or з доповненням безпосередньо до біту з переносом
2
2
MOV C,bit
перенести безпосередньо біт з переносом
2
2
MOV bit,C
перенести перенос до безпосередньо біту
2
2
JC rel
перехід якщо перенос встановлено
2
2/3
JNC rel
перехід якщо перенос не встановлено
2
2/3
JB bit,rel
перехід якщо безпосередньо встановлено біт
2
¾
JNB bit,rel
перехід якщо безпосередньо біт не встановлено
2
¾
JBC bit,rel
перехід якщо безпосередньо встановлено біт в скид
3
¾
Команди переходів
ACALL addr11
виклик процедури
2
3
LCALL addr16
виклик дальньої процедуриl
3
4
RET
повернення з процедури
1
5
RETI
повернення з переривання
1
5
AJMP addr11
безумовний перехід
2
3
LJMP addr16
довгий перехід
3
4
SJMP rel
короткий перехід
2
3
JMP @A+DPTR
перехід з комірки + DPTR
1
3
JZ rel
перехід якщо A = 0
2
2/3
JNZ rel
перехід якщо A недорівнює 0
2
2/3
CJNE A,direct,rel
Порівняти безпосередньо байт з A та перейти якщо не 0
3
¾
CJNE A,#data,rel
Порівняти до A та перейти якщо не 0
3
¾
CJNE Rn,#data,rel
Порівняти до регістр та перейти якщо не 0
3
¾
CJNE @Ri,#data,rel
порівняти до з комірки та перейти якщо не 0
3
4/5
DJNZ Rn,rel
зменшити регістр та перейти якщо не 0
2
2/3
DJNZ direct,rel
зменшити безпосередньо байт та перейти якщо не 0
3
¾
NOP
нема операції
1
1
АЦП 10-Bit
Підсистема АЦП складається з: 9-канального аналогового мультиплексора з переналаштованою конфігурацією (AMUX), програмованого підсилювача напруг (PGA), 100ksps, 10-ти розрядного SAR АЦП з інтегрованим модулем track-and-hold та програмованим детектором вікон. AMUX, PGA, Data Conversion Modes, та Window Detector є повністю програмно керовані через спеціальний функціональній регістр (регістр спеціального призначення)
Рис. 1.3. Структура ADC 10-Bit
Аналоговий мультиплексор та PGA
Вісім каналів мультиплексора є доступні для зовнішніх сигналів (вимірів) тоді як дев’ятий канал під’єднаний до вбудованого температурного давача. Вхідні пари можуть бути запрограмовані для операцій в differential та single-ended режимах. Це дозволяє користувачу обирати на найбільш зручний режим вимірів для вхідних каналів “on-the-fly”. Два регістри є пов’язані з AMUX це Channel Selection регістр AMX0SL та Configuration регістр AMX0CF. Значення по замовчуванню заносяться під час скиду.
Компаратори
Дане сімейство МП містить 2 інтегровані компаратори напруг.
Вхід компараторів є доступний через виводи МС. Вихід – опціонально – через систему переривань, або на виводи МС. Обидва компаратори програмно можна встановити у прозорий (проточний) режим або у двотактний режим. Гістерезіс обох компараторів встановлюється програмним шляхом (регістри CPT0CN, CPT1CN).
На вхід можна подавати сигнали в межах -0.25V до (AV+) + 0.25V.
Величини негативного/позитивного гістерезісу визначаються у регістрах бітами CP0HYN/CP0HYP відповідно.
Рис. 1.4. Структура компаратора
Система живлення
Дана схема (схема формування/пов’язання напруг) містить генератор та gain-of-two вихідний підсилювач і може під’єднуватись до зовнішніх пристроїв схеми + термічний сенсор. Керування вузлами схеми та режимами роботи відбувається 3 бітами регістру REF0CN.
Рис. 1.6. Структура інтегрованої системи живлення
Часові діаграми перетворень сигналу
Процес перетворення в АЦП
Режим 0 UART
Режим 1 UART
2. Розробка схеми електричної-принципової мікрокомп'ютера
Використовуючи як основу мікропроцесор C8051F018 спроектуємо модель мікрокомп'ютера, яка виконуватиме функції цифрового осцилографа. Мікропроцесор C8051F018 виконуватиме роль повнофункціонального вузла для перетворення і обробки аналогових та цифрових сигналів. Відображення та збереження отриманої інформації відбуватиметься засобами персонального комп'ютера.
МП C8051F018 фірми Cygnal є потужний сигнальний процесор. Він містить багатофункціональний аналоговий модуль, який може виконувати швидке захоплення вхідного сигналу (до 100 КГц) в досить широкому діапазоні. Він не має можливості розширення та доступу до зовнішньої пам'яті, проте мікропроцесор містить вмонтований високошвидкісний (до 115,200 бод) UART який дозволяє передавати дані до персонального комп'ютера із швидкістю приблизно 5000 елементів за сек. Персональний комп'ютер може зберігати отримані виміри або відображати результати у реальному масштабі часу.
МП C8051F018 виконаний у 64 контактному корпусі типу TQFP-64:
ЇРис. 2.1. Схема розміщення вузлів МП
Рис. 2.1. TQFP-64 діаграма виводівТаблиця 2.1. Призначення виводів мікросхеми МП
Назва
Номер виводу
Тип
Опис
VD
31,40,62
Цифрове значення напруги
DGND
30,41,61
Цифрове значення землі
AV+
16,17
Позитивне аналогове значення подачі живлення
AGND
5,15
Аналогове значення заземлення
TCK
22
D In
JTAG Тест годинника внутрішньою напругою
TMS
21
D In
JTAG перевірка роботи вибірки SELECT внутрішньою напругою
TDI
28
D In
JTAG Тест вхідних даних внутрішньою напругою. TDI є тригерно замкнений на час TCK
TDO
29
D Out
JTAG Тест вихідних даних . Дані заблоковані від TDO, що є тригерно замкнений на час TCK
XTAL1
18
D In
Вхід кристалу. Належить до внутрішньої схеми генератора , до кристалічного чи керамічного резонатора. Для точності внутрішній годинник, з’єднує кристал чи керамічний резонатор від XTAL1 до XTAL2.
XTAL2
19
D Out
Вихід з кристалу. Ця ніжка призначеня для керамічного чи кристального генератора.
/RST
20
D I/O
Скид процесора.
VREF
6
A I/O
Контроль живлення
CPO+
4
A In
Компаратор № 0. Неінверсний вхід
CPO-
3
A In
Компаратор № 0. Інверсний вхід
CP1+
2
A In
Компаратор № 1. Неінверсний вхід
CP1-
1
A In
Компаратор № 1. Інверсний вхід
DAC0
64
A Out
ЦАП вихід №0
DAC1
63
A Out
ЦАП вихід №1
AIN0
7
A In
Канал входу №0 аналогового мультиплексора
AIN1
8
A In
Канал входу №1 аналогового мультиплексора
AIN2
9
A In
Канал входу №2 аналогового мультиплексора
AIN3
10
A In
Канал входу №3 аналогового мультиплексора
AIN4
11
A In
Канал входу №4 аналогового мультиплексора
AIN5
12
A In
Канал входу №5 аналогового мультиплексора
AIN6
13
A In
Канал входу №6 аналогового мультиплексора
P0.0
39
D I/O
Port0 Bit0. Cистеми вводу/виводу
P0.1
42
D I/O
Port0 Bit1. Cистеми вводу/виводу
P0.2
47
D I/O
Port0 Bit2. Cистеми вводу/виводу
P0.3
48
D I/O
Port0 Bit3. Cистеми вводу/виводу
P0.4
49
D I/O
Port0 Bit4. Cистеми вводу/виводу
P0.5
50
D I/O
Port0 Bit5. Cистеми вводу/виводу
P0.6
55
D I/O
Port0 Bit6. Cистеми вводу/виводу
P0.7
56
D I/O
Port0 Bit7. Cистеми вводу/виводу
P1.0
38
D I/O
Port1 Bit0. Cистеми вводу/виводу
P1.1
37
D I/O
Port1 Bit1. Cистеми вводу/виводу
P1.2
36
D I/O
Port1 Bit2. Cистеми вводу/виводу
P1.3
35
D I/O
Port1 Bit3. Cистеми вводу/виводу
P1.4
34
D I/O
Port1 Bit4. Cистеми вводу/виводу
P1.5
32
D I/O
Port1 Bit5. Cистеми вводу/виводу
P1.6
60
D I/O
Port1 Bit6. Cистеми вводу/виводу
P1.7
59
D I/O
Port1 Bit7. Cистеми вводу/виводу
P2.0
33
D I/O
Port2 Bit0. Cистеми вводу/виводу
P2.1
27
D I/O
Port2 Bit1. Cистеми вводу/виводу
P2.2
54
D I/O
Port2 Bit2. Cистеми вводу/виводу
P2.3
53
D I/O
Port2 Bit3. Cистеми вводу/виводу
P2.4
52
D I/O
Port2 Bit4. Cистеми вводу/виводу
P2.5
51
D I/O
Port2 Bit5. Cистеми вводу/виводу
P2.6
44
D I/O
Port2 Bit6. Cистеми вводу/виводу
P2.7
43
D I/O
Port2 Bit7. Cистеми вводу/виводу
P3.0
26
D I/O
Port3 Bit0. Cистеми вводу/виводу
P3.1
25
D I/O
Port3 Bit1. Cистеми вводу/виводу
P3.2
24
D I/O
Port3 Bit2. Cистеми вводу/виводу
P3.3
23
D I/O
Port3 Bit3. Cистеми вводу/виводу
P3.4
58
D I/O
Port3 Bit4. Cистеми вводу/виводу
P3.5
57
D I/O
Port3 Bit5. Cистеми вводу/виводу
P3.6
46
D I/O
Port3 Bit6. Cистеми вводу/виводу
P3.7
45
D I/O
Port3 Bit7. Cистеми вводу/виводу
Повнофункціональна модель повинна містити такі вузли:
- аналогову інтерфейсну частину;
- вузол контролю перетворень та передачі даних;
- систему збереження та відображення даних.
В свою чергу для створення аналогового інтерфейсу на базі C8051F018 будуть задіяні такі модулі мікпроцесора:
- 8-ми канальний аналоговий мультиплексор;
- програмований підсилювач;
- 10 – бітний АЦП.
Мультиплексор можна запрограмувати як для роботи у 4-х канальному диференційному режимі так і для роботи в режимі 8-ми канального одиночного мультиплексора. Диференційний (вибірковий) режим є більш практичний. Вихід мультиплексора під’єднаний до програмованого підсилювача (PGA). PGA може отримувати диференційний сигнал та видавати (генерувати) єдиний вихідний сигнал. Коефіцієнт підсилення можна змінювати в реальному масштабі часу (на льоту) але він може приймати лише такі фіксовані значення: 0,5; 1; 2; 4; 8; 16.
Сигнал з виходу підсилювача спрямований на 10-бітний АЦП конвертер. Максимальна пропускна здатність цього перетворювача близько 100,000 перетворень за секунду. Пропускна здатність (швидкодія) може бути контрольована та визначена програмним шляхом. Цикл перетворення може змінюватись через Timer0, Timer3, External signal або внутрішнім програмним шляхом.
Модель мікропроцесорної системи складається з:
- мікропроцесора C8051F018
- інтерфейсу RS-232 IC
- узгоджувача напруг.
Основні характеристики та часові діаграми режимів роботи
комунікаційного інтерфейсу RS-232 на базі МС МАХ-232
Тип МС МАХ232 (МАХ202)
Живлення +5В
К-сть портів вв/вив 2/2
Номінальна ємність нав. (мкФ) 1,0 (0,1)
Пропускна здатність 120 Кбіт/с
Рис. 2.3. УГП та структура МС МАХ232
Рис. 2.4 Часові діаграми режимів пересилки (а) та прийому даних (б)
Початкове внутрішнє налагодження системи відбувається через фізичне замикання відповідних керуючих виводів. Так ініціалізація UART відбувається через виводи Р0.6-Р0.7. Коли на мікропроцесор подається живлення по замовчуванню відбувається самоініціалізація всіх вузлів МП. Ініціалізація програми примусово переводить МП на використання зовнішнього тактового генератора.
Система готова до роботи.
3. Розробка програмної моделі та програми початкової
ініціалізації мікрокомп'ютера
3.1. Структура пам’яті
Пам’ять МП розділяється на програмну та пам'ять даних.
Пам'ять програм виконана як флеш пам'ять. Однак у цій області пам'яті можна зберігати як дані так і програмний код. Ємність 16 Кбайт.
Передбачено до 10000 циклів перезапису.
У випадку розміщення у флеш пам'яті коду даних він зберігається у секторі 0x8000 – 0x807F.
Рис. 3.1. Структура пам’яті
1024 байти ОЗП можуть адресувати 1К для 64К зовнішньої пам’яті даних.
Першу половину пам'яті даних (128 байт) займають регістри спеціального призначення їх опис приведено у таблиці 3.1.
Таблиця 3.1. Перелік регістрів спеціального призначення
Адреса
Регістр
Призначення
0xE0
ACC
Акумулятор
0xBC
ADC0CF
ADC конфігурація
0xE8
ADC0CN
ADC контроль
0xC5
ADC0GTH
ADC Greater-Than Data Word (High Byte)
0xC4
ADC0GTL
ADC Greater-Than Data Word (Low Byte)
0xBF
ADC0H
ADC Data Word (High Byte)
0xBE
ADC0L
ADC Data Word (Low Byte)
0xC7
ADC0LTH
ADC Less-Than Data Word (High Byte)
0xC6
ADC0LTL
ADC Less-Than Data Word (Low Byte)
0xBA
AMX0CF
ADC MUX конфігурація
0xBB
AMX0SL
ADC MUX вибір каналу
0xF0
B
B регістр
0x8E
CKCON
Clock контроль
0x9E
CPT0CN
компаратор 0 контроль
0x9F
CPT1CN
компаратор 1 контроль
0x83
DPH
Data Pointer (High Byte)
0x82
DPL
Data Pointer (Low Byte)
0xCE
DSROP
DSR Options
0xE6
EIE1
Extended Interrupt Enable
0xE7
EIE2
Extended Interrupt Enable
0xF6
EIP1
External Interrupt Priority 1
0xF7
EIP2
External Interrupt Priority 2
0xB7
FLACL
Flash Memory Read Limit
0xB6
FLSCL
Flash Memory Timing Prescaler
0xA8
IE
Interrupt Enable
0xB8
IP
Interrupt Priority контроль
0xB2
OSCICN
Internal Oscillator контроль
0xB1
OSCXCN
External Oscillator контроль
0x80
P0
Port 0 Latch
0x90
P1
Port 1 Latch
0xA0
P2
Port 2 Latch
0xB0
P3
Port 3 Latch
0xD8
PCA0CN
програмований лічильник Array 0 контроль
0xFA
PCA0CPH0
PCA модуль захоплення Data Word (High Byte)
0xFB
PCA0CPH1
PCA модуль захоплення Data Word (High Byte)
0xFC
PCA0CPH2
PCA модуль захоплення 2 Data Word (High Byte)
0xFD
PCA0CPH3
PCA модуль захоплення 3 Data Word (High Byte)
0xFE
PCA0CPH4
PCA модуль захоплення 4 Data Word (High Byte)
0xEA
PCA0CPL0
PCA модуль захоплення 0 Data Word (Low Byte)
0xEB
PCA0CPL1
PCA модуль захоплення 1 Data Word (Low Byte)
0xEC
PCA0CPL2
PCA модуль захоплення 2 Data Word (Low Byte)
0xED
PCA0CPL3
PCA модуль захоплення 3 Data Word (Low Byte)
0xEE
PCA0CPL4
PCA модуль захоплення 4 Data Word (Low Byte)
0xDA
PCA0CPM0
програмований лічильник Array 0 Capture/Compare 0
0xDB
PCA0CPM1
програмований лічильник Array 0 Capture/Compare 1
0xDC
PCA0CPM2
програмований лічильник Array 0 Capture/Compare 2
0xDD
PCA0CPM3
програмований лічильник Array 0 Capture/Compare 3
0xDE
PCA0CPM4
програмований лічильник Array 0 Capture/Compare 4
0xF9
PCA0H
PCA лічильник/Timer Data Word (High Byte)
0xE9
PCA0L
PCA лічильник/Timer Data Word (Low Byte)
0xD9
PCA0MD
програмований лічильник Array 0 Mode
0x87
PCON
Power контроль
0xA4
PRT0CF
Port 0 Configuration
0xA5
PRT1CF
Port 1 Configuration
0xAD
PRT1IF
Port 1 Interrupt Flags
0xA6
PRT2CF
Port 2 Configuration
0xA7
PRT3CF
Port 3 Configuration
0x8F
PSCTL
Program Store RW контроль
0xD0
PSW
Program Status Word
0xCB
RCAP2H
лічильник/Timer 2 Capture (High Byte)
0xCA
RCAP2L
лічильник/Timer 2 Capture (Low Byte)
0xD1
REF0CN
Voltage Reference контроль Register
0x99
SBUF
Serial Data Buffer (UART)
0x98
SCON
Serial Port контроль (UART)
0xC3
SMB0ADR
SMBus 0 Address
0xC0
SMB0CN
SMBus 0 контроль
0xCF
SMB0CR
SMBus 0 Clock Rate
0xC2
SMB0DAT
SMBus 0 Data
0xC1
SMB0STA
SMBus 0 Status
0x81
SP
Вказівник стеку
0x9A
SPI0CFG
Serial Peripheral Interface Configuration
0x9D
SPI0CKR
SPI Clock Rate
0xF8
SPI0CN
SPI Bus контроль
0x9B
SPI0DAT
SPI Port 1Data
0xC8
T2CON
лічильник/Timer 2 контроль
0x88
TCON
лічильник/Timer контроль
0x8C
TH0
лічильник/Timer 0 Data Word (High Byte)
0x8D
TH1
лічильник/Timer 1 Data Word (High Byte)
0xCD
TH2
лічильник/Timer 2 Data Word (High Byte)
0x8A
TL0
лічильник/Timer 0 Data Word (Low Byte)
0x8B
TL1
лічильник/Timer 1 Data Word (Low Byte)
0xCC
TL2
лічильник/Timer 2 Data Word (Low Byte)
0x89
TMOD
лічильник/Timer Mode
0x91
TMR3CN
Timer 3 контроль
0x95
TMR3H
Timer 3 High
0x94
TMR3L
Timer 3 Low
0x93
TMR3RLH
Timer 3 Reload High
0x92
TMR3RLL
Timer 3 Reload Low
0xFF
WDTCN
Watchdog Timer контроль
0xE1
XBR0
Port I/O Crossbar Configuration 1
0xE2
XBR1
Port I/O Crossbar Configuration 2
0xE3
XBR2
Port I/O Crossbar Configuration 3
3.2. Програмна конфігурація вузлів МП
Мультиплексор можна запрограмувати як для роботи у 4-х канальному диференційному режимі так і для роботи в режимі 8-ми канального одиночного мультиплексора. Диференційний (вибірковий) режим є більш практичний. Вихід мультиплексора під’єднаний до програмованого підсилювача (PGA). PGA може отримувати диференційний сигнал та видавати (генерувати) єдиний вихідний сигнал. Коефіцієнт підсилення можна змінювати в реальному масштабі часу (на льоту) але він може приймати лише такі фіксовані значення: 0,5; 1; 2; 4; 8; 16.
3.3. Контроль перетворень та передача даних.
Timer3 завжди встановлюється в режим автоперевантаження, він генерує імпульс коли 16-бітний лічильник перекидається з FFFF в 0000. Після кожного переповнення 16-бітне значення з регістру Timer3 RL зчитується в Timer3 і починається новий відлік. Значення перекиду знаходиться в межах від 0000 до FFFF, що дає змогу задавати період від 10000 циклів до 1. Частотний діапазон для кожного з випадків визначається від величини SYSCLK до SYSCLK/12.
Коли процес оцифровки завершено 16-бітний результат зчитується з вихідного регістру АЦП і через послідовний порт поступає в персональний комп'ютер. Порт функціонує на частоті 11,0582 МГц та надає пропускну здатність 115,200 бод. Це дозволяє передавати приблизно 10,000 байт за секунду. Перетворення даних у представлення ASCII подвоює інформаційний потік, що вдвічі зменшує швидкодію. Тому максимальна швидкодія досягається лише при використанні двійкового формату даних.
3.4. Відображення та збереження інформації
Керування мікропроцесорною системою відбувається повністю програмним шляхом. З персонального комп'ютера можна всією роботою моделі. Мікропроцесорна система отримує від користувача вихідні дані та налагоджує згідно них АЦП. Коли настройка завершена система готова для обробки та пересилки сигналу. Дані які отримує комп'ютер можуть бути збережені у файлі або виводитись на екран у режимі реального часу. Проте на практиці зручніше спочатку зафіксувати інформаційний потік а потім вже його візуалізувати. Програмне забезпечення вимагає від користувача такі початкові умови:
- аналоговий канал
- тип каналу (одиночний чи диференціальний)
- коефіцієнт підсилення
- частота опрацювання
- кількість вимірів
- ім'я файлу для збереження результатів.
Ця інформація частково пересилається в мікропроцесорну систему для налагодження її параметрів. Після цього система готова для роботи. Коли виміри завершено – користувачу надається можливість відобразити отримані результати, поновити виміри або вийти з програми.
3.5. Сканування аналогових величин
ЦАП запускається командою яка поступає від програми керування ПК. Формат команди є універсальним і має вигляд:
$ NNNN TTTT M C G 0dh 0ah
- $ символ початку команди
- NNN – ASCII значення об'єм вимірів
- ТТТТ – ASCII значення інтервалу між вибірками
- М – ASCII значення режиму роботи мультиплексора
- С – ASCII значення номеру каналу
- G –ASCII значення коефіцієнта підсилення
- 0dh 0ah символ переводу каретки
Максимальна довжина команди – 16 символів. Дані передаються у 16-й формі. Для спрощення програмного забезпечення не відбувається жодної перевірки та корекції синтаксису команд. У випадку виникнення помилки мікропроцесорну систему слід перезавантажити шляхом повторного вмикання та ініціалізації.
Лістинг програми яка виконує початкову ініціалізацію, запуск мікрокомп'ютера та передачу даних до ПК наведено у Додатку 2.
Література
1. PDF Document, title “C8051F018”, subject Product Spec, author Danny Allred, ver 1.2 25.09.2000
2. PDF Document, title “MAX232 full Data Sheet”, subject Product Spec,
author Maxim, ver 1.3 15.11.2000
3. Web-HTML Document, title “Digital Storage Scope Using Cygnal - C8051F018 Mixed Signal Processor”, Part I, author Sudhir Gupta
http://www.cygnal.com