МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ
при Національному університеті "Львівська політехніка"
кафедра Електронних Обчислювальних Машин
Курсова робота
Мікропроцесорні системи
DSP56F827
Зміст
Завдання ..........................................................................................................................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. Функціональні групи ліній
Функціональна група
Кількість ліній
Живлення (VDD, VDDIO, VDDA or VDDA_ADC)
3,5,1,1
Земля (VSS, VSSIO, VSSA or VSS_ADC)
3,5,1,1
VPP (ця лінія повинна бути від’єднана як відкрите коло для нормального функціонування)
1
PLL і таймер
3
Шина адреси
16
Шина керування
4
Переривання та Керування програмою
5
визначені входи/виходи загального користування
16
Порт синхронного послідовного інтерфейсу (SSI)
6
Послідовний периферійний інтерфейс (SPI)
4
Послідовний інтерфейс зв’язку1 (SCIO, SCI1)
4
Послідовний інтерфейс зв’язку2 (SCIO, SCI1)
2
Чотирьох канальний порт таймера
4
JTAG/On-Chip Симуляція (OnCE)
6
Цифровий та аналоговий перетворювач(ADC)
15
Програмований вибір кристалу(PCS)
6
2.2 Сигнали і Корпус
Всі входи мають внутрішні підсилювачі, які асоціюються з ними. Ці підсилювачі завжди є. Виключення:
Коли лінія означена, як GPIO, то тоді підсилювач може бути вимкнений програмно.
TCK має такий підсилювач завжди активний.
Таблиця 2. інформація про сигнали та корпус DSP56F827.
Імя сигналу
Номер ліній
Тип
Опис
VDD
116
VDD
Живлення – ця лінія забезпечує живлення внутрішньої структури кристалу і приєднується вона до 2.5 вольт
VDD
81
VDD
VDD
19
VDD
VSS
115
VSS
GND – Ці лінії забезпечують заземлення внутрішніх структур кристалу. Всі лінії повинні приєднуватись до VSS
VSS
80
VSS
VSS
20
VSS
VDDIO
113
VDDIO
Живлення входів/виходів – ці лінії забезпечують живлення структур входів/виходів на кристалі і звичайно приєднані до живлення 3.3 вольта.
VDDIO
82
VDDIO
VDDIO
56
VDDIO
VDDIO
29
VDDIO
VDDIO
4
VDDIO
VSSIO
114
VSSIO
GND входів/виходів – ці лінії забезпечують заземлення I/O кіл на кристалі. Всі повинні бути приєднанні до VSS
VSSIO
83
VSSIO
VSSIO
58
VSSIO
VSSIO
30
VSSIO
VSSIO
5
VSSIO
VDDA
62
VDDA
Аналогове живлення – ця лінія є визначена як лінія для аналогової частини кристалу і повинна бути приєднана до живлення 3.3 вольта з низькими завадами
VSSA
61
VSSA
Аналогове заземлення – ця лінія забезпечує заземлення аналогового живлення.
VDDA_ADC
69
VDDA
Аналогове живлення – ця лінія є визначена як лінія для аналогової частини модуля АЦП і повинна бути приєднана до живлення 3.3 вольта з низькими завадами
VSSA_ADC
63
VSSA
Аналогове заземлення – ця лінія забезпечує заземлення аналогового живлення в модулі АЦП.
VPP
90
Input
Vpp – ця лінія повинна бути роз’єднана, як відкрите коло для нормальної функціональності.
EXTAL
59
Input
вихід( що подає тактові імпульси на зовнішні мікросхеми( Якщо використовується зовнішній тактовий генератор( то вихід TAL не задіяний(
XTAL
60
OutPut
вихід тактових імпульсів( Якщо використовується внутрішній подільник частоти (PLL)( то частота на CLKOUT в загальному випадку рівна частоті на вході EXTAL( а якщо ні( то половині частоти EXTAL(
CLOCKIN
Input
Ця лінія повинна використовуватись, коли використовується зовнішній годинник.
CLKO
57
OutPut
Ця лінія виводить буферизований сигнал годинника. Запрограмувавши CLKO регістр, користувач може вибрати який сигнал буде виводитись, XTAL чи сигнал з пристрою DSP. Частота на цій лінії може бути нульовою, якщо так запрограмувати.
A0
(GPIOA0)
21
OutPut
Адресна шина, 16 використовується, для доступу до даних або програм в зовнішній пам’яті GPIO – Запрограмувавши, можна використовувати, як вхідні так і вихідні лінії.
A1
(GPIOA1)
22
A2
(GPIOA2)
23
A3
(GPIOA3)
24
A4
(GPIOA4)
25
A5
(GPIOA5)
26
A6
(GPIOA6)
27
A7
(GPIOA7)
28
A8
(GPIOA9)
29
A15
(GPIOA15)
38
Input/Output
D0
(GPOIG0)
125
Input/Output
Шина даних, 16 трьох станова. Для прийому/передачі даних від процесора і до нього
GPIOG – лінії загального користування можуть програмуватись за потребами користувача.
D1
(GPOIG1)
126
D2
(GPOIG2)
127
D3
(GPOIG4)
1
D5
(GPOIG5)
2
D6
(GPOIG6)
3
D7
(GPOIG7)
4
D8
(GPOIG8)
5
D9
(GPOIG9)
6
D10
(GPOIG10)
7
D11
(GPOIG11)
8
D12
(GPOIG12)
9
D13
(GPOIG13)
10
D15
(GPOIG15)
14
AA0-AA3/
56-60
додаткові адресні лінії статичної (АА) або лінії регенерації (строб рядка ) динамічної пам(яті
68
дозвіл читання даних з зовнішньої пам(яті(
94
дозвіл запису даних у зовнішню пам(ять(
-
98
вхід підтвердженя прийому даних( які передавались через зовнішню шину процесора зовнішніми пристроями
SC00
38
при асинхронному режимі цей сигнал використовується як вхід генератора прийому, а при синхронному- або як вихід передавача 1, або для прапорця 0.
PC0
39
по замовчуванню це сигнал PC0 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як SC00 можна за допомогою регістра контролю портів (PCR0).
SC01
45
при асинхронному режимі цей сигнал використовується як вхід кадра синхронізації вводу-виводу, а при синхронному- або як вихід передавача 2, або для прапорця 1.
PC1
56
по замовчуванню це сигнал PC1 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як SC01 можна за допомогою регістра контролю портів (PCR0)
SC02
48
використовуэться для кадру синхронізації вводу- виводу (в синхронному режимі для передавача і приймача, а в асинхронному- тільки для передавача.). При передачі даних через цю ніжку мікросхеми кадр видається назовні, а при прийомі- приймається ззовні
PC2
78
по замовчуванню це сигнал PC2 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як SC02 можна за допомогою регістра контролю портів (PCR0).
SCK0
69
цей сигнал є входом або виходом тактового генератора побітового прийому або передачі даних.Причому частота системного тактового генератора має бути втричі більша, ніж частота SCK0.
PC3
55
по замовчуванню це сигнал PC3 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як SCK0 можна за допомогою регістра контролю портів (PCR0).
SRD0
33
вхід послідовного прийому даних
PC4
69
по замовчуванню це сигнал PC4 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як SRD0 можна за допомогою регістра контролю портів (PCR0).
STD0
34
вихід послідовної передачі даних
PC5
49
по замовчуванню це сигнал PC5 групового порту вводу- виводу. Напрям передачі визначається регістром напрямків передачі (PRR0), а запрограмувати цю лінію як STD0 можна за допомогою регістра контролю портів (PCR0).
Цоколівка корпуса мікросхеми(
Вузол синхронізації
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( Конспект лекцій з курсу “Аналогово-цифрові засоби відбору та передачі інформації”(