МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра „Електронних обчислювальних машин"
/
Курсова робота
з дисципліни “Мікропроцесорні системи”
на тему:
“Мікрокомп’ютер для керування виводом текстової інформації на LCD”
ЗМІСТ
ЗАВДАННЯ .....…………………………………………………………………...3
ВСТУП .............…………………………………………………………………...4
РОЗДІЛ 1 ................................................................................................................5
1.1. Початкові дані на проектування ................................................................5
1.2.1. Опис мікрокомп'ютера ..............................................................................6
1.2.2. Опис мікропроцесора .................................................................................8
1.2.2.1. Основні характеристики мiкропроцесора ADSP-BF609 ..................9
1.2.3. Архітектура мікропроцесора ADSP-BF609 ..........................................10
1.2.4. Адресний простір ......................................................................................22
1.2.4.1. Внутрішня пам’ять ...............................................................................23
1.2.4.2. Адресний простір для підсистеми вводу/виводу .............................24
1.2.5. Вузол синхронізації (PLL) .......................................................................25
1.2.6. Вузол початкової установки (RESET) ..................................................26
1.2.7. Універсальний асинхронний приймач/передавач UART .................27
РОЗДІЛ 2. .............................................................................................................30
2.1. Розробка схеми електричної функціональної ........................................30
2.2. Розробка схеми електричної принципової .............................................33
2.2.1. Проектування вузла синхронізації ........................................................33
2.2.2. Проектування вузла RESET ...................................................................35
2.3. Проектування зовнішньої пам’яті програм ...........................................37
2.4. Проектування зовнішньої пам’яті даних ................................................40
РОЗДІЛ 3. .............................................................................................................45
3.1. Розробка програмної частини ...................................................................45
3.2. Програмна ініціалізація вузлів мікрокомп’ютера ................................46
ВИСНОВОК ….....................................................................................................48
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ................................................49
ДОДАТКИ ............................................................................................................50
ЗАВДАННЯ
Спроектувати мікрокомп’ютер на базі мікропоцесора ADSP-BF609.
Розробити функціональну та принципову електричні схеми мікрокомп’ютера.
Розробити програму ініціалізації та керування мікрокомп’ютером.
Забезпечити роботу LCD в режимі 8-ми бітного інтерфейсу.
Час доступу до зовнішньої пам’яті не менше 45 нс;
ВСТУП
Системи автоматичного управління виробничими процесами, інформаційно-вимірювальні та контрольно-діагностичні системи, а також автоматизація наукових досліджень не можуть бути реалізовані без приладів, які виконують функції управління.
При побудові системи управління будь-яким об'єктом стає ряд завдань: робити вимірювання (можливо у великій кількості і від кількох об'єктів), проводити їх обробку, забезпечувати зберігання інформації, виробляти керуючі сигнали. Все це буде займати в оператора багато часу і може призводити до грубих помилок. Тому постає питання про автоматизацію вимірювань, що збільшує швидкість роботи, а, отже, і обсяг одержуваної інформації, веде до підвищення точності та достовірності результатів вимірювань та звільняє людину від монотонної і трудоємкої роботи.
У зв'язку з цим останнім часом в якості пристроїв управління зростає застосування мікропроцесорів. Сучасні мікропроцесори володіють такими обчислювальними ресурсами і можливостями керування в режимі реального часу, для отримання яких раніше необхідні були дорожчі багатокристальні системи.
Розвиток електронної обчислювальної техніки є на даний момент пріоритетним напрямком розвитку науково-технічного прогресу.
Метою курсової роботи є проектування мікрокомп’ютера для керування виводом текстової інформації на LCD.
Реалізація поставленого завдання здійснюється за допомогою процесора ADSP-BF609, LCD-дисплею, постійної та оперативної пам’яті а також периферійного пристрою UART. Технічні характеристики даної конфігурації повністю задовольняють вимоги системи, що розробляється.
РОЗДІЛ 1.
1. Початкові дані на проектування
1. Тип мiкропроцесора: ADSP-BF609
2. Постiйна пам’ять: AT27C256R (ROM 32Kx8)
3. Оперативна пам’ять: MCM6226A (RAM 128Kx8);
4. Пiдсистема вводу-виводу (периферійний пристрій): UART.
1.2.1. Опис мікрокомп’ютера
Дуже часто користувачеві потрібно з чогось зчитувати інформацію. Для цих цілей добре підходить дисплей. Індикатори РКЕ є невід'ємною частиною радіоелектронної апаратури для виведення різної інформації.
У цій курсовій роботі розробляється мікрокомп’ютер для виведення текстової інформації на символьний рідкокристалічний дисплей із знакосинтезуючим контролером HD44780.
Структурна схема мікрокомп’ютера наведена на Рис.1.1.:
/
Рис.1.1. Структурна схема мікрокомп’ютера
Дисплеї HD44780 (LCD Display) часто використовуються при проектуванні цифрових пристроїв.
В основі рідкокристалічного дисплея лежить матриця з рідких кристалів, подаючи напругу на елемент якої ми можемо «запалити» точку на екрані. У нашому випадку матриця складається з знакомісць (найчастіше 8х5 пікселів), згрупованих в кілька рядків. Цим всім керує вбудований контроллер HD44780. У контролера є однобайтні комірки пам'яті (DDRAM), вміст яких власне відображається на екрані згідно з таблицею записаною в CGRAM. Комірок пам'яті зазвичай більше ніж знакомісць в дисплеї, тому адресацію знакомісць потрібно звіряти із документацією контролера. Тобто нам необхідно тільки в потрібну позицію записати код потрібного знака, а все інше HD44780 зробить сам.
Для вибору позиції існує віртуальний курсор (номер поточної комірки пам'яті), яким можна керувати за допомогою команд, курсор можна зробити видимим. За замовчуванням при записі символу в клітинку, курсор зміщується вперед на одну позицію. Коди символів які підтримує рідкокристалічний дисплей можна побачити в Додатку 4.
На кожен символ потрібно 5 байт, де одиниці відповідають за «засвічені» пікселі.
Для того, щоб вивести необхідний символ на LCD, потрібно ознайомитись із вихідними портами контролера. Виходи DB0-DB7 відповідають за вхідні / вихідні дані. Високий рівень на виході RS дає індикатору зрозуміти, що сигнал на виходах DB0-DB7 є даними, а найнижчий - командою. Вихід W / R відповідає за напрямок даних, чи пишуться дані в пам'ять або читаються з неї (зазвичай читання з РКЕ не використовується, можемо сміливо на нього подати низький рівень). Імпульс на вихід Е (тривалістю не менше 500 нс) використовується як сигнал для запису / читання даних з виходів DB0-DB7, RS і W / R.
Вихід V0 використовується для задання контрасту зображення, вихід А, К - для живлення підсвічування. Решта 2 виходи - власне живлення РКЕ. Тобто, для управління РКЕ потрібно 8 + 1 + 1 = 10 виходів. Але можна працювати в режимі 4-х бітного інтерфейсу. При цьому, спершу буде передаватися старша тетрада команди / даних на виходи DB4-DB7, а потім - молодша. Виходи DB0-DB3 при цьому не використовуються. Разом для управління потрібно 6 виходів мікроконтролера.
1.2.2. Опис мікропроцесора
1.2.2.1. Мікропроцесор Blackfin ADSP-BF609 оптимізований для застосування у вбудованих системах технічного нагляду та аналізу відеозображень.
ADSP-BF609 – це двоядерний цифровий сигнальний процесор з фіксованою комою і унікальним конвеєрним відео-співпроцесором PVP (Рipelined vision processor). PVP - це набір функціональних блоків, які розташовуються в безпосередній близькості до процесорних ядер Blackfin. Загалом PVP призначений для прискорення алгоритмів обробки зображень і скорочення часу доступу до загальної смуги пропускання.
Мікропроцесор ADSP-BF609 ідеально підходить для багатьох вбудованих додатків аналізу зображень, таких як сучасні автомобільні системи допомоги водієві (ADAS), систем технічної видимості та робототехніки для промислового виробництва, аналізу зображень в охоронних системах і системах спостереження, а також для побудови сканерів штрих-кодів.
В курсовій роботі розробляється мікрокомп’ютер для керування виводом текстової інформації на LCD. Найкраще для виконання завдання обрати LCD дисплей на основі контролера HD44780. Перевагою символьних багаторядкових LCD є те, що контроль за подачею необхідних напруг на масив конденсаторів бере на себе вбудований керуючий контролер. Він зазвичай виконаний у вигляді однієї або двох мікросхем- "крапельок", рідше - у вигляді фірмової SMD-мікросхеми. Загальноприйнята назва таких мікросхем "Dot Matrix Liquid Crystal Display Controller / Driver", з чого випливає їх подвійна функція - контролер управляє інтерфейсом, а драйвер "запалює" сегменти.
Інтерфейс у таких дисплеїв паралельний, але є можливість скоротити кількість виходів мікроконтролера, підключивши дисплей не по 8-ми бітній, а по 4-х бітній шині. При цьому, крім 4-х виходів даних потрібно буде підключити ще сигнал E і RS. Вихід RW потрібен для того, щоб контролер дисплея міг визначити чи дані з нього будуть записуватися, чи зчитуватися. Якщо на ньому 0 - значить відбувається запис, 1 - читання. Оскільки, читати будь-які дані з дисплея нам навряд чи доведеться, його можна просто з'єднати із Землею.
Для роботи з такими дисплеями використовуються спеціальні бібліотеки, які саме, залежить від середовища в якому відбувається програмування мікроконтролера. За допомогою цих бібліотек відбувається ініціалізація дисплея. Надається можливість відправити команду дисплею, здійснити запис даних в дисплей. Дані – це символи, які виводяться на дисплей. Символи завантажуються у відповідний регістр у вигляді ASCII-коду. Записати символ у ASCII можна тільки якщо він (символ) є цифрою або записаний англійською мовою. Якщо ж символ кириличний, доведеться записувати його шістнадцятковий код. Отримати його можна за допомогою конвертерів. Використовуючи бібліотеки, можна встановити адресу комірки в пам'яті даних дисплея, з якої буде проводиться запис символів на екран.
1.2.2.1. Основні характеристики мiкропроцесора ADSP-BF609
Таблиця.1. «Основні характеристики процесора»
Виробник:
Analog Devices
Модель:
ADZS-BF609-EZLITE
Тактова частота:
500 МГц на 1 ядро
Постійна пам’ять:
До 32Мбіт
Оперативна пам’ять 1-го рівня (SRAM L1)
148 Кбайт
Оперативна пам’ять 2-го рівня (SRAM L2)
256 Кбайт
SPI Flash ПЗП:
до 512Мбіт; до 128 Гбайт
Відеопроцесор:
Pipeline Vision Processor
Rotary counter:
1
Таймер/Лічильник з ШІМ:
8
3-х фазний ШІМ модуль (4-пари)
2
SPORT
3
SPI
2
USB OTG
1
PPI (Паралельний периферійний інтерфейс)
3
RSI (SD/MMC/eMMC)
1
UART
2
CAN
1
TWI (I2C)
2
ADC (ACM)
1
Link port
4
Ethernet MAC (IEEE 1588)
2
SMC Шина (Паралельна шина для NOR Flash/FPGA)
1
GPIO (Виходи загального призначення)
+
JTAG
+
Мікропроцесор ADSP-BF609 має два ядра Blackfin з продуктивністю до 500 МГц / 1000 MMACs (2000 MMACs, сумарна) для вирішення задач обробки сигналів з підвищеними вимогами. Корпус CSP BGA, 19x19 мм.
Внутрішня статична оперативна пам'ять (SRAM) загальним об'ємом 552 Кбайт, складається з пам'яті SRAM L1, об'ємом по 148 Кбайт на ядро та з підтримкою контролю на парність; і з спільно використовуваної пам'яті SRAM L2, об'ємом 256 Кбайт з можливістю виявлення та виправлення помилок.
Мікропроцесор оснащений конвеєрним відеопроцесором (PVP, Pipeline Vision Processor), який підтримує відео високої чіткості. Загалом PVP представлений як набір параметрів, блоків обробки, призначених для прискорення до п'яти паралельних алгоритмів обробки, за рахунок чого і досягається високий ступінь продуктивності в процесі відеоаналізу. Також ADSP-BF609 має відеоприскорювач Pixel Compositor.
Його повністю інтегрований контролер прямого доступу до пам'яті (DMA), дозволяє здійснювати підтримку пересилання між будь-якими областями внутрішньої / зовнішньої пам'яті і периферійними модулями.
1.2.3. Архітектура мікропроцесора ADSP-BF609
/
Рис.1.2.3.1. Архітектура мікропроцесора ADSP-BF609
System control blocks – це блоки управління системою (SCB), вони надають інформацію щодо впровадження системи, і системи управління. Їх робота включає в себе конфігурацію, контроль і звітність за системними виключеннями. До блоків управління системою входять: Emulator Test and Control, PLL and Power Management, Fault Management, Event Control, Dual Watchdog.
Emulator Test and Control – це блок, який є моделлю процесу для операційної системи. Будь-яка операція, яка виконується операційною системою над процесом, викликає певні зміни в ET&C. В рамках прийнятої моделі станів процесів вміст цього блоку між операціями залишається постійним.
/
Рис.1.2.3.2. Емулятор тестування і контролю (Emulator Test and Control)
PLL and Power Management - дозволяє оптимізувати енергоспоживання кристала шляхом управління тактовою частотою процесора (системною тактовою частотою, і тактовою частотою периферійних пристроїв кристала).
/
Рис.1.2.3.3. ФАПЧ і управління живленням (PLL and Power Management)
Fault Management - це блок аналізу та обробки подій. Основне його завдання це - відфільтрувати зайве і залишити тільки те, що вимагає безпосередньої уваги.
/
Рис.1.2.3.4. Блок управління збоями (Fault Management)
Event Control – блок управління подіями (ECB) надає код завершення програми, який описує, чи була програма каналу завершена з помилками або без них.
/
Рис.1.2.3.5. Блок управління подіями (Event Control)
Dual Watchdog - основне завдання цього модуля це - своєчасний перезапуск обладнання яке працює зі збоями, або тимчасово перестало працювати, з метою відновлення його працездатності.
/
Рис.1.2.3.6. Блок Dual Watchdog
CORE 0, CORE1 – ядро мікропроцесора. Основна функція ядра ЦП (Рис.2.3.7.) полягає в гарантуванні коректності виконання програми. Крім цього, ЦП повинен мати можливість адресації до різних видів пам'яті, виконувати обчислення, управляти периферійними пристроями і обробляти переривання. Як показано на Рис.1, процесор має два ядра Blackfin продуктивністю 500 МГц. Кожне ядро, містить два 16-розрядних мультиплексори, два 40-бітових акумулятори, два 40-розрядні АЛП, чотири відео АЛП і 40-розрядний перетворювач. Обчислення можуть здійснюватися над 8-, 16- або 32-розрядними даними, які знаходяться у регістровому файлі.
/
Рис.1.2.3.7. Функціональна схема ядра
Регістровий файл містить вісім 32-бітових регістрів. Виконання обчислювальних операцій здійснюється над 16-бітовими даними операнда,
регістровий файл працює як 16 незалежних 16-бітних регістрів. Операнди для обчислювальних операцій надходять з багатопортового регістрового файлу та з полів команд. Кожен MAC може виконувати 16-розрядні операції багаторазово в кожному циклі, накопичуючи результати в 40-розрядний акумулятор.
АЛП виконує традиційний набір арифметичних і логічних операцій над 16-бітовими або 32-бітовими даними. Крім того, багато спеціальних інструкцій використовуються для прискорення обробки сигналів. До них відносяться бітові операції, множення по модулю 232, ділення, округлення, а також визначення знака. Набір відео інструкцій включає в себе вирівнювання байтів і операцій з сортуванням, 16-бітне і 8-бітне додавання з округленням до 8-біт, віднімання абсолютного значення / акумулювання (SAA) операцій.
Крім того, виконуються операції порівняння, вибірки даних і пошуку необхідних інструкцій. Для деяких інструкцій, дві 16-бітові операції на АЛП можуть бути виконані одночасно на парі 16-розрядних регістрів.
40 бітний зсувний регістр може здійснювати операції зсуву та обернення а також розроблений для здійснення нормалізації та вибірки даних з полів. Програмний секвенсор контролює потік виконання команд включаючи вирівнювання та декодування команд. Для управління потоком команд секвенсор підтримує комп’терні умовні та безумовні переходи (з статичним прогнозуванням розгалуження). Устаткування підтримує нульові накладні зациклення. Архітектура повністю пов’язана, що означає що програмісту не потрібно конфігурувати програмний конвеєр коли будуть виконуватись команди із залежністю за даними. Адресний арифметичний блок надає дві адреси для одночасного витягу даних з пам’яті, він містить багатопортовий регістровий файл в якому міститься 3 набори 32-х бітних індексних, змінних та базових регістрів, та 8 додаткових 32-х бітних вказівникових регістрів. Blackfin процесори підтримують модифіковану Гарвардську архітектуру з ієрархічною структурою пам’яті. Пам’ять першого рівня це та, яка працює на швидкості процесора зазвичай з малою або відсутньою затримкою, на першому рівні пам’ять інструкцій зберігає тільки інструкції, пам’ять даних зберігає тільки дані, а пам’ять SPM містить в собі стек та дані локальних змінних, в додаток декілька блоків першорівневої пам’яті надають конфігуровану SRAM та кеш пам’ять. MMU забезпечує захист пам’яті для індивідуальних процесів, які можуть виконуватись одночасно в ядрі, та захищає системні регістри від несанкціонованого доступу. Архітектура надає три режими доступу: користувацький режим, режим адміністратора та режим емуляції. Режим користувача має обмежений доступ до ресурсів системи, режим адміністратора має повний доступ до ресурсів системи та ядра.
DMA System - DMA, або прямий доступ до пам'яті - технологія прямого доступу до пам'яті, яка минає центральний процесор. В епоху 486-их і перших Pentium під всю царювала шина ISA, а також метод обміну даними між пристроями - PIO (Програмований вхід / вихід).
/
Рис.1.2.3.8. Система прямого доступу до пам’яті (DMA System)
External Bus Interfaces – шинні інтерфейси використовуються для підтримування зв'язку між усіма власними пристроями та тими, які зовні підключаються до материнської плати. Шини, як відомо, використовуються для передачі даних від центрального процесора з іншими пристроями персонального комп'ютера. Для того, щоб узгодити передачу даних до окремих компонентів, які працюють на своїй частоті, використовується чіпсет - набір контролерів, конструктивно об'єднаних в Північний і Південний мости.
/
Рис.1.2.3.9. External Bus Interfaces
Dynamic Memory Controller - Контролер динамічної пам'яті спеціально розроблений, щоб забезпечити оптимальне рішення для додатків інфраструктури, включаючи сервери, підприємства, ГПЦ і створення мереж.
/
Рис.1.2.3.10. Контролер динамічної пам'яті (Dynamic Memory Controller)
DDR2 - За замовчуванням в конфігурації використовується пам'ять DDR2 Samsung K4T1G164QFBIE6, об'ємом 128Мбайт (Можливо розширення до 256Мбайт).
Static Memory Controller - контролер зовнішньої статичної пам'яті, який підтримує роботу з динамічною пам'яттю SDRAM.
/
Рис.1.2.3.11. Контролер статичної пам'яті (Static Memory Controller)
Пам’ять SPI Flash - за замовчуванням, в конфігурації використовується SPI-Flash пам'ять, об'ємом 1 Мбайт (Можливі варіації від 128Кбайт до 4Мбайт). через функціональну обмеженість портів вводу/виводу використовується пам'ять SPI флеш, а не NAND / EMMC / NOR. Для збільшення обсягу пам'яті
необхідно використовувати EMMC, NAND, NOR-пам'ять або SD / SDHC / MMC слот на материнській платі.
Кеш першого рівня (L1) - найбільш швидкий рівень кеш-пам'яті, який працює безпосередньо з ядром процесора, завдяки цій щільній взаємодії, даний рівень має найменший час доступу і працює на частотах близьких процесору. Є буфером між процесором і кеш-пам'яттю другого рівня.
/
Рис.1.2.3.12. Кеш першого рівня (L1)
Кеш другого рівня (L2) - другий рівень більш масштабний, ніж перший, але в результаті, має менші «швидкісні характеристики». Відповідно, служить буфером між рівнем L1 і L3.
/
Рис.1.2.3.13. Кеш другого рівня (L2)
Peripherials - периферійні вузли призначені для забезпечення вводу-виводу інформації в необхідному для оператора форматі, а також зручності взаємодії останнього з комп’ютером. Периферійні пристрої бувають зовнішніми або вбудованими.
/
Рис.1.2.3.14. Периферійні вузли (Peripherials)
Мікропроцесор ADSP-BF609 має: три паралельних периферійних інтерфейси (ePPI) з розрядністю до 24 біт та підтримкою режимів
ITU-R BT.656 і безпосереднього підключення до TFT ЖК панелей, паралельних АЦП / ЦАП, відео кодерів / декодерів, сенсорів зображень та інших пристроїв.
Три синхронних послідовних порти (SPORT) з підтримкою режимів I2S, Packed I2S, з вирівнюванням по лівому краю (left-justified) і мультиплексуванням в часі (TDM).
В комплектацію також входить контролер USB 2.0 HS OTG, два контролери 10/100 Ethernet MAC з підтримкою IEEE +1588.
Мікроконтролер має чотири лінк-порти з підтримкою пересилання
8-розрядних даних в режимі DMA. Два сторожових таймери, 8 таймерів/лічильників з підтримкою широтно-імпульсної модуляції(ШІМ). Два 16-розрядних канали (ШІМ). Два порти SPI з підтримкою режимів ведучого і веденого. Два порти UART і два двопровідних інтерфейси. Інтерфейс знімних носіїв інформації (RSI, Removable Storage Interface). Інтерфейс Controller Area Network (CAN).
Мікропроцесор ADSP-BF609 підтримує механізм перевірки контрольної суми. Також розроблені варіанти з комерційним і промисловими робочими температурними діапазонами.
UART (Universal asynchronous receiver/transmitter)
UART - тип асинхронного приймача-передавача, компонентів комп'ютерів та периферійних пристроїв, що передає дані між паралельною та послідовною формами. UART зазвичай використовується спільно з іншими комунікаційними стандартами. UART це, як правило, окрема мікросхема чи частина мікросхеми, що використовується для з'єднання через комп'ютерний чи периферійний послідовний порт.
1.2.4. Адресний простір
Процесорна пам’ять складається з 4-гігабайтного адресного простору, де використовуються 32-розрядні адреси. Всі ресурси, включаючи внутрішню пам’ять, зовнішню пам’ять та регістри управління введенням/виведенням, займають окремі розділи в адресному просторі. Розділ, який зарезервований під пам’ять має ієрархічну структуру, це потрібно для того, щоб забезпечити баланс між розділами пам’яті які мають високу ціну та продуктивність і є дуже швидкі, з мінімальною затримкою (кеш-пам’ять, SRAM) та ті розділи пам’яті, які мають нижчу ціну та продуктивність і є дещо повільнішими. Адресний простір для внутрішньої та зовнішньої пам’яті мікроконтролера ADSP-BF609 наведений в табл.2.5.1.
Таблиця 1.2.4.1. «Адресний простір Внутрішньої / Зовнішньої пам'яті»
Адресний простір Ядра 0
Адресний простір Ядра 1
0хFFFF FFFF
0хFFE0 0000
MMR-регістри ядра (2Мб)
MMR-регістри ядра (2Мб)
0xFFC0 0000
Системні MMR-регістри (2Мб)
0xFFB0 1000
Зарезервовано
Зарезервовано
0хFFB0 0000
L1 SRAM(4 Kбайт)
Зарезервовано
0xFFA1 4000
Зарезервовано
Зарезервовано
0xFFA1 0000
L1 інструкцій SRAM/кеш (16 Кбайт)
Зарезервовано
L1- інструкцій
0xFFA0 0000
L1 інструкцій SRAM (64 Кбайт)
Зарезервовано
0xFF90 8000
Зарезервовано
Зарезервовано
0xFF90 4000
L1 банк даних B SRAM/кеш (16 Кбайт)
Зарезервовано
L1 - даних банк В
0xFF90 0000
L1 банк даних B SRAM (16 Кбайт)
Зарезервовано
0xFF80 8000
Зарезервовано
Зарезервовано
0xFF80 4000
L1 банк даних А SRAM/кеш (16 Кбайт)
Зарезервовано
L1 - даних банк А
0xFF80 0000
L1 банк даних А SRAM (16 Кбайт)
Зарезервовано
0xFF70 1000
Зарезервовано
Зарезервовано
0xFF70 0000
Зарезервовано
L1 SRAM (4 Кбайт)
0xFF61 4000
Зарезервовано
Зарезервовано
0xFF61 0000
Зарезервовано
L1 інструкцій SRAM/кеш (16 Кбайт)
L1- інструкцій
0xFF60 0000
Зарезервовано
L1 інструкцій SRAM (64 Кбайт)
0xFF50 8000
Зарезервовано
Зарезервовано
0xFF50 4000
Зарезервовано
L1 банк даних B SRAM/кеш (16 Кбайт)
L1 - даних банк В
0xFF50 0000
Зарезервовано
L1 банк даних B SRAM (16 Кбайт)
0xFF40 8000
Зарезервовано
Зарезервовано
0xFF40 4000
Зарезервовано
L1 банк даних А SRAM/кеш (16 Кбайт)
L1 - даних банк А
0xFF40 0000
Зарезервовано
L1 банк даних А SRAM (16 Кбайт)
0xC810 0000
Зарезервовано
0xC80A 0000
Зарезервовано
0xC808 0000
L2 SRAM (256 Кбайт)
0xC800 8000
Зарезервовано
0xC800 0000
L2 ROM (32 Кбайт)
0xC000 0000
Зарезервовано
0xBC00 0000
Асинхронний банк пам'яті 3 (64 Мбайти)
Асинхронна пам'ять
0xB800 0000
Асинхронний банк пам'яті 2 (64 Мбайти)
0xB400 0000
Асинхронний банк пам'яті 1 (64 Мбайти)
0xB000 0000
Асинхронний банк пам'яті 0 (64 Мбайти)
0x1000 0000
Зарезервовано
0x0000 0000
DDR2 або LPDDR пам'ять (256 Мбайт)
Внутрішня пам’ять займає адресний простір від 0хFFFF FFFF до 0xC800 8000, зовнішня пам’ять займає адресний простір від 0xC800 8000 до 0x0000 0000.
1.2.4.1. Внутрішня пам’ять
Кожне ядро має свою власну пам'ять L1. Пам’ять L1 є найпродуктивнішою пам’яттю, яка входить до складу процесорних ядер Blackfin. Модифікована Гарвардська архітектура підтримує одночасно 32-розрядний доступ до даних поряд з вибіркою команди на максимальній швидкості процесора. Завдяки цьому підвищується продуктивність процесора та забезпечується висока пропускна здатність. У кожному ядрі є 64 K-байтний блок пам'яті даних з 80 K-байтними блоками пам'яті для зберігання команд. Кожен блок даних є багатобанковим для ефективного обміну даними через DMA, тобто може бути налаштований як SRAM або як кеш L1. Чотири способи встановлення асоціативної кеш-пам’яті команд і два способи встановлення асоціативної кеш-пам’яті даних значно прискорили продуктивність доступу до пам'яті, особливо до зовнішньої пам'яті.
Область пам'яті L1 також має 4 Kбайтний SRAM блок, який ідеально підходить для зберігання локальних змінних і програмний код. Вся пам'ять L1 захищена бітом мульти-парності, незалежно від того, чи пам'ять працює в режимі SRAM або режимі кеш-пам’яті.
За межами області пам’яті L1, розташовані L2 та L3 пам’яті згідно з топологією Фон-Неймана. Область пам'яті L2 - це пам'ять команд і даних, вона може містити будь-яку суміш коду і даних, необхідних при проектуванні системи. Домен пам'яті L2 доступний на обох Blackfin ядрах через виділений 64-бітний інтерфейс. Він працює на частоті SYSCLK.
Процесор має до 256К байт SRAM L2, яка ECC-захищена і побудована на восьми банках. Кожен банк може підключатись окремо до будь-якого з ядер або підсистеми DMA.
Існує також одиничний 32К-байтний банк ROM в пам’яті L2. Він містить код завантаження і безпеки функції.
1.2.4.2. Адресний простір для підсистеми вводу/виводу
Процесор не виділяє окремий адресний простір для пристроїв введення/виведення. Всі ресурси відображаються через 32-бітний адресний простір. Пристрої введення / виведення на чіпі мають свої регістри управління відображення в пам'яті, відображення регістрів (MMR) за адресами, поблизу верхньої частини 4G-байтного адресного простору. Вони розділені на два менших блоки, один з яких містить MMR управління для всіх основних функцій, а інший, містить перелік регістрів, необхідних для установки і управління периферійними пристроями на чіпі поза ядром. MMR доступні тільки в режимі супервізора і з'являються як зарезервований простір на чіпі периферійних пристроїв.
1.2.5. Вузол синхронізації (PLL)
Вузол синхронізації призначений для формування тактових сигналів, які забезпечують функціонування усіх вузлів мікропроцесора. Синхронізація роботи процесора виконується за допомогою підключення зовнішнього джерела тактових імпульсів до входу тактової частоти процесора.
Вхідні імпульси тактової синхронізації поступають в процесор через вхід CLKIN. Процесор використовує систему фазового автопідстроювання частоти (ФАПЧ) для генерації своєї внутрішньої частоти тактової синхронізації. Оскільки для захоплення фази системі ФАПЧ потрібний деякий час, сигнал CLKIN повинен бути істинним протягом певного мінімального періоду часу.
В таблиці 1.2.5. наведено значення часових параметрів сигналів синхронізації для процесора ADSP-BF609 при різних частотах.
Таблиця 1.2.5. «Часові параметри сигналів синхронізації»
/
1.2.6. Вузол початкової установки (RESET)
Скидання до початкового стану обох ядер процесора або одного з них є результатом апаратного або програмного виклику події. У цьому стані всі значення в регістрах управління встановлюються по замовчуванню і функціональні блоки простоюють. Повне скидання системи починається з Ядра-0, коли воно готове до завантаження. Скидання Ядра-1 починається в той момент, коли воно готове до завантаження.
Блок управління RESET управляє тим як всі функціональні блоки починають скидання і завершують його. Відмінності між функціональними вимогами і параметрами синхронізації залежать від того як будуть генеруватися сигнали скидання. Цей вузол має бути запрограмований таким чином, щоб жодна з функцій не викликала застою або припинення роботи усієї системи.
ADSP-BF609 виконує операцію початкового скидання автоматично, при ввімкнені живлення і посилає сигнал RESET всій системі. Для виконання “ручного” скиду мікроконтролера достатньо лише під’єднати до входу RESET відповідний перемикач. Після надходження низького рівня сигналу RESET внутрішня логіка мікроконтролера утримує RESET в такому стані на протязі 4tCK, де tCK лежить в діапазоні від 6,67 нс до 11* tCK нс, для забезпечення повного скиду системи.
Таблиця 1.2.6. «Параметри сигналів вузла початкової установки RESET»
/
1.2.7. Універсальний асинхронний приймач/передавач UART
Процесор ADSP-BF609 має два вбудованих універсальних асинхронних передавачі (UART), тільки UART0 з'єднаний з передавачем UART по лінії. UART0 володіє повним набором функцій RS-232 через драйвер ADM3315 лінії Analog Devices і приймача (U39). Pin PD07 / UART0_TX / TM0_ACI3 процесора підключений безпосередньо до ADM3315 пристрою. Pin PD08 / UART0_RX / TM0_ACI0 підключений за замовчуванням до перемикача SoftConfig. За замовчуванням сигнали RTS і CTS не підключені до UART0 (але можуть підключатися через перемикач SoftConfig). Порти 1, 4 і 6 роз'єму UART (J2) можуть бути підключені в якості вхідних портів в схему скидання на платі через перемикач SoftConfig.
/
Рис.1.2.7.1. Структура UART
UART має чотири режими роботи (один синхронний та три асинхроних) які визначаються бітами регістра керування SCON. Ці чотири режими описані в Таблиці 1.2.7.1.
Таблиця 1.2.7.1. «Режими UART»
Режим
Синхронізація
Тактові імпульси
Розрядність даних
Старт/Стоп Біти
0
Синхронна
SYSCLK чи SYSCLK/12
8
Відсутні
1
Асинхронна
Timer1 чи Timer2 переповнення
8
1 Старт, 1 Стоп
2
Асинхронна
SYSCLK/32 чи SYSCLK/64
9
1 Старт, 1 Стоп
3
Асинхронна
Timer1 чи Timer2 переповнення
9
1 Старт, 1 Стоп
Таблиця 1.2.7.2. «Вихідні сигнали Microchip GPIO Expander (U45 порт B)»
/
/
Рис.1.2.7.2. Взаємозв’язок в режимі 0 UART
/
Рис.1.2.7.3. Режим 0 UART
/
Рис.1.2.7.4. Взаємозв’язок в режимі 1 UART
/
Рис.1.2.7.5. Режим 1 UART
РОЗДІЛ 2.
2.1. Розробка схеми електричної функціональної
Мікрокомп’ютер, побудований на основі мікроконтролера ADSP-BF609, окрім нього складається ще із зовнішньої пам’яті програм та даних, , вузла скиду і синхронізації, а також з периферійного вузла UART.
Використовується 16-розрядна шина даних та 32-розрядна шина адрес. Шина керування складається з керуючих сигналів кожного з пристроїв мікрокомп’ютера.
Вузол RESET призначений для затримки сигналу на деякий час, для того щоб мікропроцесорні пристрої мали змогу перезавантажитись та встановитись в початковий режим роботи. Сигнал Reset спрацьовує по низькому логічному рівні та використовується для початкового скидання та ініціалізації процесора.
Вузол синхронізації призначений для формування тактових сигналів, які забезпечують функціонування усіх вузлів мікропроцесора. Він під’єднується до мікроконтролера за допомогою порту CLKIN.
Фрагмент електричної функціональної схеми з підключенням вузлів синхронізації та скиду наведено на рис. 2.1.1.
Рис. 2.1.1. Фрагмент схеми мікрокомпютера з вузлами скиду та синхронізації
Оскільки лінії адреси та даних не є мультиплексованими, тому необхідність використовувати регістри для збереження значення встановленої на шині адреси не має потреби. Пам’ять можна під’єднувати напряму – як постійну так і оперативну. Це дозволяє значно спростити схеми, створені на базі цього мікроконтролера.
Для побудови мікрокомп’ютера використовується оперативний запам’ятовуючий пристрій DD4 з організацією 128К x 8 та з керуючими сигнали (запис даних), (читання даних), (вибір кристалу). Даний оперативний пристрій виконує читання при наявності сигналів , , , запис при , , , при чому вивід є заведений на логічну “1” в обох випадках. Старші виводи адреси мікроконтролера ADDR15-ADDR31 повинні з'єднуватися з лініями адреси RAM (DD4) A0-A16, а вихідні виводи RAM (DD4) D0-D7 повинні з’єднуватися з виводами DATA0-DATA7 шини даних мікроконтролера. Лінія запису даних RAM (DD4) з’єднується з , а лінія читання даних повинна з’єднуватися з сигналом мікроконтролера, при чому лінія вибору кристалу з’єднується з . На рис. 2.1.2 зображена схема під’єднання зовнішньої оперативної пам’яті.
Рис. 2.1.2. Під’єднання оперативної зовнішньої пам’яті
Для зберігання програми початкової ініціалізації використовується постійний запам’ятовуючий пристрій DD3 з організацією 32К x 8 та з керуючими сигнали (читання даних), (вибір кристалу). Даний постійний пристрій виконує читання при наявності сигналів , , при чому вивід є заведений на логічну “1”, а виводи мікроконтролера EBOOT та LBOOT заводяться на логічну “1” і на логічний “0” відповідно. Молодші виводи адреси мікроконтролера ADDR0-ADDR14 повинні з'єднуватися з лініями адреси ROM (DD3) A0-A14, а вихідні виводи ROM (DD3) D0-D7 повинні з’єднуватися з виводами DATA16-DATA23 шини даних мікроконтролера. Лінія читання даних повинна з’єднюватися з лінією , а лінія вибору кристалу - з сигналом мікроконтролера. На рис. 2.1.3 зображена схема під’єднання зовнішньої постійної пам’яті.
Рис. 2.1.3. Під’єднання постійної зовнішньої пам’яті
Записавши дані в пам'ять, їх можна використовувати для пересилання через певний периферійний пристрій. У даному випадку це здійснюється через порт UART. Для цього використовуємо програмну реалізацію SPI-інтерфейсу, тобто передачу даних з пам’яті на SPI буде здійснювати спеціальна програма, яка буде доступатись до пам’яті та передаватиме дані із неї. Алгоритм роботи такої передачі даних буде зображений у наступних розділах. На рис. 2.1.4 зображена схема підключення SPI порту.
/
Рис. 2.1.4. Функціональна схема підключення мікроконтролера до UART порту
2.2. Розробка схеми електричної принципової
2.2.1. Проектування вузла синхронізації
Вузол синхронізації призначений для формування тактових сигналів, які забезпечують функціонування усіх вузлів мікроконтролера та під’єднується до нього за допомогою порту CLKIN.
Синхронізація з мікропроцесором виконується за допомогою програмованого генератора тактових імпульсів на базі мікросхеми IDT5V9885T.
/
Рис. 2.2.1. Вузол синхронізації IDT5V9885T
Вузол синхронізації побудований на основі програмованого генератора тактових імпульсів IDT5V9885T, він призначений для використання у високопродуктивних системах, в побутовій електроніці та мережевих додатках. Генератор містить три внутрішніх PLL, кожен з яких програмується індивідуально, що дозволяє працювати з трьома унікальними і не пов'язаними між собою частотами.