Міністерство освіти І науки України
ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ
при Національному університеті "Львівська політехніка"
кафедра Електронних Обчислювальних Машин
Курсова робота
Мікропроцесорні системи
DSP56F827
Виконав:
Студент гр. СКС-4
Прийняв:
Львів 2003
Зміст
Завдання ..........................................................................................................................3
Основні характеристики процесора .............................................................................4
Короткий огляд...............................................................................................................6
Ядро цифрової обробки сигналів .............................................................................6
Пам'ять .......................................................................................................................7
Периферійні схеми для DSP56F827.........................................................................7
Технічні дані.................................................................................................8
Живлення....................................................................................................................8
“Найкраще в класі” Середовище розробки..................................................................10
Опис сигналів/ліній........................................................................................................11
Цоколівка корпуса мікросхеми.....................................................................................16
Вузол синхронізації........................................................................................................18
Вузол ресет......................................................................................................................18
Часові діаграми вузлів процесора.................................................................................20
Програма початкової ініціалізації.................................................................................22
Список використаної літератури..................................................................................27
ЗАВДАННЯ
Потрібно спроектувати мікро-ЕОМ з наступними параметрами:
1. Тип мiкропроцесора – МС68330 фірми Motorola;
2. Постiйна пам’ять: 8x32kb;
3. Пiдсистема вводу-виводу: послідовний інтерфейс RS-232.
Необхідно привести схему електричну функціональну та принципову, а ткож програму початкової ініціалізації.
DSP56F827 Технічні дані
DSP56F827 Цифровий сигнальний 16 бітний процесор
• До 40 мільйонів команд за сек. при 80MHz
• DSP та MCU функціональні можливості об’єднанні, C-подібна архітектура
• Апаратно реалізовані DO та REP цикли
• 64 КБ * 16 біт програмна флеш пам’ять
• 1 КБ *16 біт програмна RAM пам’ять
• 4 КБ * 16 біт флеш пам’ять даних
• 4 КБ * 16 біт RAM пам’ять даних
• До 64 КБ * 16 біт зовнішня пам’ять для програм та даних
• JTAG/OnCE ™ для відлагодження
• Таймер для загальних цілей
• набір MCU- інструкцій підтримує DSP та контролер функцій: MAC, модуль операцій над бітами, 14 способів адресації.
• 8 канальний програмований вибір кристалу
• 10 канальний ADC на 12 біт
• Синхронний послідовний інтерфейс (SSI)
• Послідовний інтерфейс (SPI)
• Послідовний комунікаційний інтерфейс (SCI)
• (TOD) Таймер
• 128 LQFP корпус
Частина 1 Короткий Огляд
1.1 DSP56F827 Особливості
1.1.1 Ядро цифрової обробки сигналів
• Ефективний 16 бітний процесор сімейства DSP56800 з подвійною Гарвардською архітектурою.
• 40 мільйонів команд в секунду (MIPS) при 80MHz
• 16 16-розрядних паралельних суматорів (MAC)
• Два суматора на 36 бітів, включаючи біти розширення
• 16-розрядний двонаправлений зсувач
• Паралельна система команд с унікальними способами адресації
• Апаратно реалізовані DO та WHILE цикли
• Три внутрішніх адресних шини і одна зовнішня адресна шина
• Чотири внутрішніх шини даних і одна зовнішня шина даних
• Система команд підтримує і функції контролера та відключені пристрої
• різні способи адресації для компактного коду
• Ефективний C компілятор та місцева підтримка
• Кількість та глибина переривань обмежується тільки розміром пам’яті
• JTAG/OnCE відлагодження, програмований інтерфейс
1.1.2 Пам’ять
• Гарвардська архітектура надає можливість трьох одночасних доступів до програм та даних
• пам’ять, має низьку ціну, великий об’єм та багато разів можна перепрограмувати
— Пам’ять програм 64К
— Оперативна пам’ять програм 1К
— Оперативна пам’ять даних 4К
— Пам'ять даних 4К
• можливість розширення пам’яті зовні кристалу, програмовану для 0, 4, 8, або 12 станів очікування
— 64 K пам’яті даних
— 64 K пам’яті програм
1.1.3 Периферійні схеми для DSP56F827
• 10 канальний АЦП
• універсальний таймер
• послідовний інтерфейс з портом на чотири мультиплексованих входи-виходи
• три послідовних інтерфейси передачі даних з 2 виходами кожен (або 6 додаткових GPIO виходів)
• два послідовних інтерфейси з портом на чотири виходи, реконфігурований (або 4 додаткових GPIO виходи)
MOTOROLA DSP56F827 Технічні дані
• Один синхронний послідовний інтерфейс на 6 ліній (або 6 додаткових GPIO ліній)
• Один 8 канальний програмований вибір кристалу
• 16 спеціалізованих и 48 мультиплексованих GPIO лінії (64загальна кількість)
• Система слідкування за коректною роботою процесора
• Дві зовнішні лінії переривань
• Зовнішня лінія reset для апаратного reset
• JTAG/On-Chip емуляція, незалежне та швидке від лагодження
• Програмно програмований, система блокування циклів
• Цифрові виходи сумістимі з ТТЛ рівнями та 5V
• Таймер реального часу
1.1.4 Живлення
• подвійне енергоживлення 3.3V та 2.5V
• Сплячий та Multiple Stop режими
1.2 DSP56F827 Опис
DSP56F827 - член DSP56800 сімейства на основі ядра DSP. Сукупності пристроїв на одному кристалі, великі можливості обробки відключення пристроїв та функціональних можливостей мікро контролера з гнучким набором периферійних пристроїв для створення найбільш рентабельних рішень в універсальних пристроях. Низька ціна та гнучкість конфігурації з компактним кодом програми, DSP56F827 - пристойний процесор для задач типу: шумове подавлення, читання сигналів звукові датчики, пристрої систем захисту, віддалене вимірювання, звукові сигналізації та телефонія. Ядро DSP56800 розроблено на основі Гарвардської архітектури, що дозволяє виконувати шість операцій в секунду. Система команд ефективна для використання С/C++ компілятора, що забезпечує швидкий розвиток оптимізованих програм для керування процесором. Програма може знаходитись в пам’яті процесора, так і в зовнішній пам’яті. Також є дві спеціалізовані лінії переривань і до 64 універсальних вводів-виводів (GPIO), в залежності від конфігурації.
1.3 “Найкраще в класі” Середовище розробки
SDK (Комплект розробки програмного забезпечення) забезпечує повністю готовими та відлагодженими драйверами бібліотеками та інтерфейсами, це дозволяє програмістам створювати унікальні програмні продукти з кодонезалежною архітектурою.
CodeWarrior - Інтегроване середовище обробки – складний перенесення коду, компілювання та від лагодження. Закінчений набір модулів (EVMs) і плат системи розробки програм підтримує паралельну роботу. Разом, SDK, CodeWarrior та EVMs створюють закінчене, масштабоване рішення інструментальних засобів для простого, швидкого та ефективного розвитку.
Частина 2. Опис сигналів/ліній
2.1 Вступ
Вхідні та вихідні сигнали процесора DSP56F827 об’єднанні у функціональні групи, яке показано в таблиці 1 та проілюстровано на малюнку 2.
Таблиця 1. Функціональні групи ліній
2.2 Сигнали і Корпус
Всі входи мають внутрішні підсилювачі, які асоціюються з ними. Ці підсилювачі завжди є. Виключення:
Коли лінія означена, як GPIO, то тоді підсилювач може бути вимкнений програмно.
TCK має такий підсилювач завжди активний.
Таблиця 2. інформація про сигнали та корпус DSP56F827.
Цоколівка корпуса мікросхеми:
Вузол синхронізації
DSP56F827 має вбудовану систему фазової автопідстройки частоти (PLL) і систему керованого живлення внутрішнього генератора (VCO). Внутрішній генератор використовує кварц, під’єднаний до виводів EXTAL і XTAL. На рисунку 14 зображена схема під’єднання вузла синхронізації.
Рисунок 14 – Схема підключення вузла синхронізації
5.2 Вузол формування сигналу RESET
МС68330 виконує операцію початкового скидання автоматично, при ввімкнені живлення і посилає сигнал RESET всій системі. Ця операція носить назву “power-on-reset”, діаграма її виконання зображена на рисунку 16. Так як підчас скиду виконується вибір джерела тактування мікроконтролера (вхід MODCK), то для забезпечення тактування внутрішнім генератором на цей вхід подається високий рівень.
Рисунок 16 – Виконання операції RESET
Для виконання „ручного” скиду мікроконтролера достатньо лише під’єднати до входу RESET відповідний перемикач.
Після надходження низького рівня сигналу RESET внутрішня логіка мікроконтролера утримує RESET в такому стані на протязі 512 циклів для забезпечення повного скиду системи. RESET має найвищий пріоритет з усіх переривань і перериває будь-яку операцію, що виконується. Операція скидання виконує наступні дії:
Скидає біти Т0 і Т1 в регістрі SR для заборони трасування;
Встановлює S-біт в регістрі SR для переходу в привілейований режим;
Встановлює маску переривань на найвищий рівень (111h);
Скидає регістр VBR в 00000000h;
Генерує номер переривання, що відповідає сигналу RESET;
Завантажує перше довге слово за адресою 00000000h в регістр SP;
Завантажує друге довге слово за адресою 00000004h в регістр РС;
Вибирає і виконує першу команду за адресою, вказаною в лічильнику команд РС.
5.3 Під’єднання зовнішньої пам’яті
Підключення зовнішньої пам’яті є досить простим, при використанні програмованих ліній вибору кристалів. В цьому випадку відпадає необхідність в декодуванні адреси і розмірності даних.
В розробляємому мікрокомп’ютері використовується дві мікросхеми RAM 8х32kb (М62256). Таким чином буде реалізовано 32kb 16-розрядних слів оперативної пам’яті. Процеси читання та запису з зовнішньої пам’яті відображені на рисунках 18 і 19, відповідно.
Часові діаграми RESET
Часові діаграми переривань
Часові діаграми роботи шини даних і шини адрес
Часові діаграми роботи флеш - пам’яті
Часові діаграми JTAG - тестування
Лістінг програми початкової ініціалізації мікро- ЕОМ.
BOOT equ $D00000 ; this is the location in P memory
AARV equ $D00409 ; AAR1 selects the EPROM as CE~
M_SSR EQU $FFFF93 ; SCI Status Register
M_STXL EQU $FFFF95 ; SCI Transmit Data Register (low)
M_SRXL EQU $FFFF98 ; SCI Receive Data Register (low)
M_SCCR EQU $FFFF9B ; SCI Clock Control Register
M_SCR EQU $FFFF9C ; SCI Control Register
M_PCRE EQU $FFFF9F ; Port E Control register
M_AAR1 EQU $FFFFF8 ; Address Attribute Register 1
M_HPCR EQU $FFFFC4 ; Host Polarity Control Register
M_HSR EQU$FFFFC3; Host Status Register
M_HRX EQU$FFFFC6; Host Receive Register
HRDF EQU$0 ; Host Receive Data Full
HF0 EQU$3 ; Host Flag 0
HEN EQU$6 ; Host Enable
ORG PL:$ff0000,PL:$ff0000 ; bootstrap code starts at $ff0000
START
clr a #$0a,X0 ; clear a and load X0 with constant 0a0000
jclr #2,omr,EPRSCILD ; If MC:MB:MA=0xx, go load from EPROM/SCI
jclr #1,omr,OMR1IS0; IF MC:MB:MA=10x, go to look for ISA/HC11 options
jclr #0,omr,I8051HOSTLD ; If MC:MB:MA=110, go load from 8051 Host
jmp MC68302HOSTLD ; If MC:MB:MA=111, go load from MC68302 Host
OMR1IS0
jset #0,omr,HC11HOSTLD ; If MC:MB:MA=101, go load from HC11 Host
; If MC:MB:MA=100, go load from ISA HOST
;=============================================================================
ISAHOSTLD
movep #%0101000000011000,x:M_HPCR; керуюче слово
bra <HI08CONT
;=============================================================================
HC11HOSTLD
movep #%0000001000011000,x:M_HPCR керуюче слово
;=============================================================================
I8051HOSTLD
movep #%0001110000011110,x:M_HPCR керуюче слово
bra <HI08CONT
;=============================================================================
MC68302HOSTLD
movep #%0000000000111000,x:M_HPCR керуюче слово
;=============================================================================
HI08CONT
bset #HEN,x:M_HPCR ; Enable the HI08 to operate as host
jclr #HRDF,x:M_HSR,* ; wait for the program length to be written
movep x:M_HRX,a0
jclr #HRDF,x:M_HSR,* ; wait for the program starting address to be written
movep x:M_HRX,r0
move r0,r1
do a0,HI08LOOP ; set a loop with the downloaded length counts
HI08LL
jset #HRDF,x:M_HSR,HI08NW ; If new word was loaded then jump to read that word
jclr #HF0,x:M_HSR,HI08LL ; If HF0=0 then continue with the downloading
enddo ; Must terminate the do loop
bra <HI08LOOP
HI08NW
movep x:M_HRX,p:(r0)+ ; Move the new word into its destination location in the ;program RAM
HI08LOOP
bra <FINISH
;========================================================================
EPRSCILD
jclr #1,omr,EPROMLD ; If MC:MB:MA=001, go load from EPROM
;========================================================================
SCILD
movep #$0302,X:M_SCR ; Configure SCI Control Reg
movep #$C000,X:M_SCCR ; Configure SCI Clock Control Reg
movep #7,X:M_PCRE ; Configure SCLK, TXD and RXD
do #6,_LOOP6 ; get 3 bytes for number of
jclr #2,X:M_SSR,* ; Wait for RDRF to go high
movep X:M_SRXL,A2 ; Put 8 bits in A2
jclr #1,X:M_SSR,* ; Wait for TDRE to go high
movep A2,X:M_STXL ; echo the received byte
asr #8,a,a
_LOOP6
move a1,r0 ; starting address for load
move a1,r1 ; save starting address
do a0,_LOOP7 ; Receive program words
do #3,_LOOP8
jclr #2,X:M_SSR,* ; Wait for RDRF to go high
movep X:M_SRXL,A2 ; Put 8 bits in A2
jclr #1,X:M_SSR,* ; Wait for TDRE to go high
movep a2,X:M_STXL ; echo the received byte
asr #8,a,a
_LOOP8
movem a1,p:(r0)+ ; Store 24-bit result in P mem.
_LOOP7
bra <FINISH ; Boot from SCI done
;========================================================================
EPROMLD
move #BOOT,r2 ; r2 = address of external EPROM
movep #AARV,X:M_AAR1 ; aar1 configured for SRAM types of access
do #6,_LOOP9 ; read number of words and starting address
movem p:(r2)+,a2 ; Get the 8 LSB from ext. P mem.
asr #8,a,a ; Shift 8 bit data into A1
_LOOP9 ;
move a1,r0 ; starting address for load
move a1,r1 ; save it in r1
; a0 holds the number of words
do a0,_LOOP10 ; read program words
do #3,_LOOP11 ; Each instruction has 3 bytes
movem p:(r2)+,a2 ; Get the 8 LSB from ext. P mem.
asr #8,a,a ; Shift 8 bit data into A1
_LOOP11 ; Go get another byte.
movem a1,p:(r0)+ ; Store 24-bit result in P mem.
_LOOP10 ; and go get another 24-bit word.
; Boot from EPROM done
;========================================================================
FINISH
; This is the exit handler that returns execution to normal
; expanded mode and jumps to the RESET vector.
andi #$0,ccr ; Clear CCR as if RESET to 0.
jmp (r1) ; Then go to starting Prog addr.
Список використаної літератури
1. Конспект лекцій з курсу “Мікропроцесорні системи”.
2. “Интегральные микросхемы”. Справочник под ред. Б. В. Тарабрина.- М.: Радио и связь,1984 г.
3. Інструкція до лабораторної роботи № 4 з курсу “Мікропроцесорні системи”.
4. Конспект лекцій з курсу “Схемотехніка ЕОМ”.
5. Конспект лекцій з курсу “Периферійні пристрої та механізми обчислювальних систем”.
6. Конспект лекцій з курсу “Аналогово-цифрові засоби відбору та передачі інформації”.