Сигнальні мікропроцесори
Зміст
Вступ
1. Загальні відомості про цифрову обробку сигналів
2. Специфіка задач цифрової обробки сигналів
3. Сигнальні процесори компанії ANALOG DEVICES
3.1 Структурна схема ADSP21xx та призначення функціональних блоків
3.2 Функціонування хост-порта ADSP-2181
3.3 Функціонування циклічних буферів
Література
Вступ
Тема реферату «Сигнальні мікропроцесори» з дисципліни «Мультимікропроцесорні системи».
Мультимікропроцесорні системи (ММПС) - це системи, що мають два й більше компонент, які можуть одночасно виконувати команди. Підпорядкованими процесорами можуть бути спецпроцесори, розраховані на виконання певного типу завдання або процесори широкого застосування. Спецпроцесори - співпроцесори, процесори вводу-виводу.
У міру зменшення відносини вартість/продуктивність стає більше економічним застосовувати кілька мікропроцесорів (далі ─ МП), замість одного складного.
Мета роботи – загальне ознайомлення з сигнальними мікропроцесорами.
1. Загальні відомості про цифрову обробку сигналів
Цифрова обробка сигналів - це арифметична обробка в реальному масштабі часу послідовності значень амплітуди сигналу, визначаємих через рівні проміжки часу.
Прикладами цифрової обробки є:
- фільтрація сигналу;
- згортка двох сигналів;
- обчислення значень кореляційної функції двох сигналів;
- посилення, обмеження або трансформація сигналу;
- пряме/зворотне перетворення Фур'є перетворення.
Аналогова обробка сигналу (мал.1) є більше дешевим способом досягнення бажаного результату. Використовуваний у фільтрі операційний підсилювач розширює динамічний діапазон оброблюваних сигналів. Форма амплітудно-частотної характеристики (АЧХ) фільтра визначається значеннями величин Rf, Cf. Для аналогового фільтра складно забезпечити високе значення добротності, характеристики фільтра сильно залежать від температурного режиму. Компоненти фільтра вносять додатковий шум у результуючий сигнал. Аналогові фільтри важко перебудовувати в широкому діапазоні частот.
Малюнок 1 Аналогова обробка сигналу
Однак, коли потрібна висока точність обробки, мініатюрність пристрою, стабільність його характеристик у різних температурних умовах функціонування, цифрова обробка (мал.2) виявляється єдино прийнятним рішенням.
Малюнок 2 Цифрова обробка сигналу
Фільтри низької частоти виконують попереднє й наступне видалення із частотного спектра додаткових гармонік сигналу. АЦП і ЦАП призначені для перетворення аналогового сигналу в цифровий і навпаки. АЧХ Ких-фильтра визначається значеннями коефіцієнтів фільтра h(к). Змінюючи кількість коефіцієнтів (довжину фільтра) і їхнього значення, можна одержати фільтр із будь-який необхідної АЧХ. Внесений шум (шуми квантування) залежить від частоти й розрядності АЦП і ЦАП, а також точності обчислень.
Для ефективної реалізації алгоритмів цифрової фільтрації необхідна апаратна підтримка базових операцій : множення з накопиченням (МАС), модульної адресної арифметики, нормування результатів арифметичної операції.
Існує велика розмаїтість реалізацій дискретного перетворення Фур'є. У ряді алгоритмів використаються прийоми, що дозволяють зменшити обсяг необхідних обчислень. Ці алгоритми відомі під загальною назвою «швидке перетворення Фур'є»
2. Специфіка задач цифрової обробки сигналів
Для цифрової обробки сигналів використаються так названі сигнальні процесори. До їхніх особливостей відноситься малоразрядна (40 розрядів і менш) обробка операндів у форматі із плаваючою крапкою, переважне використання чисел у фіксованому форматі (розрядність 32 і менш), а також орієнтація на нескладну обробку більших масивів даних.
Особливість завдань цифрової обробки - потоковий характер обробки більших обсягів даних у реальному масштабі часу.
Сигнальні процесори мають високий ступінь спеціалізації. У них широко використаються методи скорочення тривалості командного циклу, характерні й для універсальних RISC-процесорів, такі як конвеєризація на рівні окремих мікроінструкцій і інструкцій, наявність тіньових регістрів для збереження стану обчислень при перемиканні процесів (контексту), поділ шин команд і даних (Гарвардська архітектура).
Характерним є наявність апаратного множника, що дозволяє виконувати операції множення двох чисел за один командний цикл. Іншою особливістю сигнальних процесорів є включення в систему команд таких операцій, як множення з накопиченням (МАС) = З: =А*В +С с зазначеним у команді числом виконань у циклі й із правилом зміни індексів використовуваних елементів масивів А и В. У сигнальних процесорах реалізується апаратна підтримка програмних циклів, кільцевих буферів. Один або трохи операндів витягаються з пам'яті в циклі виконання команди.
Сигнальні процесори різних компаній-виробників утворять два класи: більше дешеві мікропроцесори обробки даних у форматі з фіксованою крапкою й більше дорогі, апаратно підтримуючі операції у форматі із плаваючою крапкою.
Використання в сигнальній обробці формату із плаваючою крапкою обумовлено декількома причинами. Для багатьох завдань, пов'язаних з виконанням інтегральних і диференціальних перетворень, особливу значимість має точність обчислень, забезпечити яку дозволяє експонентний формат подання даних. Алгоритми компресії, декомпресії, адаптивній фільтрації в цифровій обробці сигналів пов'язані з визначенням логарифмічних залежностей і досить чутливі до точності подання даних у широкому динамічному діапазоні.
Робота з даними у форматі із плаваючою крапкою істотно спрощує й прискорює обробку, підвищує надійність програми, оскільки не вимагає операцій округлення й нормалізації даних, відстеження ситуацій втрати значимості й переповнення. Платою за ці “ комфорт і швидкість”, є висока складність функціональних пристроїв, що виконують обробку даних у плаваючому форматі, необхідність використання більше складних технологій виробництва мікросхем, великий відсоток відбраковування виробів і як наслідок - дорожнеча МП.
У цей час став популярний і інший підхід до одержання високої продуктивності. Велика кількість транзисторів на кристалі може бути використана для створення симетричної мультипроцесорної системи з більше простими процесорами, що обробляють цілочислені операнди. Прикладами таких медійних процесорів є Mediaprocessor компанії MicroUnity, Trimedia компанії Philips, Mpact Media Engine компанії Chromatic Research, NV1 компанії Nvidia, MediaGx компанії Сyrix. Ці процесори створювалися, виходячи з потреби обробки в реальному часі відео- і аудіоінформації в мультимедійних ПК, ігрових приставках, побутових радіоелектронних приладах. У зв'язку з більш простою системотехнікою в порівнянні з універсальними сигнальними процесорами вартість медійних процесорів досить низька (порядку $100 ), а значення показника «продуктивність/вартість» на два-три порядка більше. Пікове значення продуктивності медійних процесорів становить кілька мільярдів операцій у секунду.
У числі найпоширеніших сигнальних процесорів можна назвати вироби наступних компаній Motorola (56002,96002),Intel (i960),Texas Instruments (TMS320Cxx),Analog Devices (21xx,210xx). Більша продуктивність, необхідна при обробці сигналів у реальному масштабі часу, спонукала дві останні з перерахованих компаній випустити трансп’ютерні сімейства мікропроцесорів TMS320C4x і ADSP2106х, орієнтовані на використання в мультипроцесорних системах.
Вибір того або іншого процесора для реалізації конкретного проекту є складним завданням, однак слід зазначити перевагу процесорів компанії Analog Devices для додатків, що вимагають виконання більших обсягів математичних обчислень (таких як цифрова фільтрація сигналів, обчислення кореляційних функцій і т.п.) оскільки їхня продуктивність на подібних завданнях вище, ніж у процесорів компанії Motorola, Texas Instruments. У той же час для завдань, що вимагають виконання інтенсивного обміну із зовнішніми пристроями (багатопроцесорні системи, різного роду контролери) переважніше використати процесори фірми Texas Instruments, що володіють високошвидкісними інтерфейсними підсистемами.
3. Сигнальні процесори компанії ANALOG DEVICES
3.1 Структурна схема ADSP21xx та призначення функціональних блоків
Існує два сімейства цієї компанії:
- ADSP21xx - набір однокристальних 16-розрядних МП із загальною базовою архітектурою, оптимізованою для виконання алгоритмів цифрової обробки сигналів і інших додатків, що вимагають високошвидкісних обчислень із фіксованою крапкою. На даний момент існує 14 представників, що відрізняються друг від друга набором периферійних пристроїв, розташованих на кристалі. Загальна частина - АЛУ, блок МАС, зсувач, генератор адресу даних, генератор адресу команд, ОЗУ даних, ОЗУ команд, таймер. Змінна частина - багатоканальний послідовний порт, послідовний порт 1, порт хост-интерфейса, порт прямого доступу в пам'ять, аналоговий інтерфейс.
- ADSP210xx-однокристальні 32-розрядні мікропроцесори, орієнтовані на сигнальні алгоритми, що вимагають виконання обчислень із плаваючою крапкою. (ADSP21010, ADSP21020, ADSP21060, ADSP21062).
МП містить три незалежних повнофункціональних обчислювальні пристрої: АЛУ, МАС- множинник із накопичуванням, пристрій барабанного зрушення. Кожний пристрій безпосередньо оперує з 16-розрядними даними й забезпечує апаратну підтримку обчислень із різною точністю.
Пристрій формування адреси - це генератор адреси команд (PS) і два генератори адреси даних (DAG), що забезпечують адресацію до даних і команд, розташованим як у внутрішній так і в зовнішній пам'яті. Паралельне функціонування генераторів скорочує тривалість виконання команди, дозволяючи за один такт вибирати з пам'яті команду й два операнда.
Таймер-лічильник забезпечує періодичну генерацію переривань.
Послідовні порти забезпечують послідовний інтерфейс із більшістю стандартних послідовних пристроїв, а також з апаратними засобами відбудови-стиснення-відновлення даних, що використають А і μ - закони компандирування.
Порт інтерфейсу з хост-процесором дозволяє без додаткових інтерфейсних схем взаємодіяти з головним процесором системи, у якості якого може використатися як процесор даного сімейства, так і інший мікропроцесор, наприклад Motorola або Intel8051.
Малюнок 3 Узагальнена структура мікропроцесора ADSP21хх
МП даного типу відрізняє високий ступінь паралелізму внутрішніх операцій. За один такт процесор виконує:
- генерацію адреси наступної команди;
- завантаження з пам'яті наступної команди;
- виконання однієї або двох пересилань даних;
- відновлення одного або двох покажчиків на дані;
- виконати операцію.
МП, що має периферійні пристрої у своєму змінному составі, може одночасно з виконанням команди виконати й наступні операції:
- прийняти й/або передати дані через послідовні порти;
- прийняти й/або передати дані хост-процесору;
- прийняти й/або передати дані через аналоговий інтерфейс.
Внутрішні функціональні модулі зв'язані між собою за допомогою п'яти шин: шина адреси пам'яті даних (DMA), шина адреси пам'яті команд (РМА), шина даних пам'яті даних (DMD), шина даних пам'яті команд (РМ), шина внутрішніх результатів ( R ). Перші чотири шини мають мультиплексірований зовнішній інтерфейс у вигляді шини адреси й шини даних.
мультикомпресорна процесор сигнал цифровий
3.2 Функціонування хост-порта ADSP-2181
Порт інтерфейсу хост-машини можна представити як область загальної чи пам'яті регістрів поштової скриньки, за рахунок яких здійснюється комунікація між хост-машиной і цифровим сигнальним процесором. Хост-машина звертається до порту інтерфейсу хост-машини (далі – ХИП), як до області пам'яті, що містить 8- чи 16-розрядні слова. Для процесора ХИП виступає як група з восьми регістрів, відображених у карті пам'яті даних.
ХИП складається з чотирьох функціональних блоків:
- керуючий блок інтерфейсу хост-машини;
- блок із шести регістрів даних (HDR0 – HDR5);
- блок, що складається з двох регістрів стану (HSR6-HSR7);
- регістр HMASK, призначений для маскування переривань, сгенерованих ХИП.
Керуючий блок забезпечує керування записом регістрів хост-машини і зчитуванням з них. Два регістри стану представляють статусну інформацію, як хост-машині так і цифровому сигнальному процесору.
Регістри даних можна представити як блок двухпортовой пам'яті. Ні для одного з цих регістрів не заданий напрямок роботи: як хост-машина так і цифровий сигнальний процесор можуть зчитувати і записувати інформацію в ці регістри. Коли хост-машина зчитує дані з регістрів даних, генерується маскуєме переривання зчитування ХИП. Коли здійснюється операція запису від хост-машины, генерується маскуємий сигнал переривання запису.
Стану зчитування/запису зберігаються в регістрах стану. Формат регістрів стану наступний:
HSR6 – з 0 по 5 розряди – відображення стану запису з хост-машины у відповідний буфер даних ХИП Приклад – 0 розряд = 1 – проведена операція запису в буфер HDR0 c хост-машини; 1 розряд = 1 – проведена операція запису в буфер HDR1 з хост-машини і т.д. З 8 по 15 розряди – відображення стану запису з цифрового сигнального процесора у відповідний буфер даних ХИП.
Тому що ХИП, як правило, сполукається з більш повільною хост-машиною, сигнальний процесор виконує свої команди незалежно від роботи хип-порта.
Тому що хост-машина, для якої потрібно квитирування встановлення зв'язку, повинна очікувати підтвердження від сигнального процесора, то вона може зависнути. Якщо перезапуск сигнального процесора відбувається, коли хост-машина инициалізувала передачу, але ще не одержала підтвердження, то таке підтвердження не може бути потім сгенеровано, і, таким чином, хост-машина може знаходитися в стані чекання невизначений час.
У ХИП не передбачено ніякого апаратного забезпечення для запобігання ситуації, коли хост-машина здійснює запис у регістр, стан якого в цей момент зчитується цифровим сигнальним процесором ( і навпаки). Коли хост-машина і сигнальний процесор намагаються одночасно записати дані в той самий регістр, перевагою в такій операції користається хост-машина.
Опитування є одним з методів передачі даних між хост-машиной і сигнальним процесором. Щораз, коли хост-машина записує дані в регістр HDR, встановлюється один біт у молодшому байті регістра HSR6. Цей біт залишається встановленим доти, поки цифровий сигнальний процесор не зчитує вміст даного регістра HDR. Подібним чином, коли сигнальний процесор записує дані в регістр HDR, у старшому байті регістра HSR6 (і в молодшому байті регістра HSR7) установлюється відповідний біт. Цей біт автоматично скидається при зчитуванні вмісту регістра HDR хост-машиной.
Наприклад: сигнальний процесор може очікувати в циклі під час зчитування біта HSR, щоб упевнитися, що хост-машина записала нові дані. Коли сигнальний процесор виявляє, що відповідний біт установлений, він виходить з циклу по команді умовного переходу, обробляє нові дані, а потім повертається в цикл. При передачі даних на хост-машину сигнальний процесор очікує, поки та не вважає останні записані дані, щоб можна було передавати нові дані. Хост-машина опитує біти регістра HSR, щоб упевнитися, що нові дані є доступними.
Використання протоколу з керуванням по перериваннях звільняє хост-машину і сигнальний процесор від опитування стану регістрів стану. Для керованих перериваннями передач на сигнальний процесор хост-машина записує дані в регістри даних, а ХИП автоматично генерує при цьому внутрішнє переривання. Обслуговування цього переривання аналогічно всім іншим.
Для передачі на хост-машину сигнальний процесор записує дані в регістри даних, потім установлює висновок прапора, зв'язаний із входом переривань хост-машины, повідомляючи в такий спосіб останню про те, що дані готові для передачі . Якщо сигнальний процесор передає дані на хост-машину тільки через один регістр даних, то вміст цього регістра може бути безпосередньо злічено хост-машиной при одержанні нею сигналу переривання. Якщо для пересилання даних використовуються кілька регістрів даних, хост-машина повинна прочитати регістр стану, щоб визначити через які регістри передається інформація.
Крім передачі інформації для хост-машины існує ще режим завантаження через ХИП. При цьому можна завантажити внутрішнє ОЗУ програмою функціонування сигнального процесора.
Початкове завантаження здійснюється двома способами:
- із зовнішньої пам'яті (звичайно ППЗУ ) з використанням інтерфейсу пам'яті;
- з хост-машины з використанням ХИП.
При використанні якого-небудь конкретного способу необхідно формувати відповідні файли завантаження, користаючись відповідними утилітами програмного забезпечення.
3.3 Функціонування циклічних буферів
Для більш повного визначення поняття обертового (циклічного) буфера (регістра) необхідно розглянути функціонування циклічних буферів у сигнальних процесорах фірми ADSP.
Є три реєстрових файли:
1.Файл регістрів модифікації (М);
2.Файл індексних регістрів (I);
3.Файл регістрів довжини (L).
Зчитування і запис даних здійснюється через окрему шину,називаний шиною дані пам'яті даних. Індексні регістри містять дійсні адреси, використовувані для доступу до пам'яті ( як до пам'яті даних так і до пам'яті програм). Крім прямої адресації використовується також битреверсна адресація, при якій біти адреси на виході генератора адреси можуть бути переставлені в зворотному порядку за рахунок установки відповідного біта режиму в регістрі станів чи режиму з використанням спеціальної команди асемблера сигнального процесора. Цей особливий вид адресації полегшує виконання операцій швидкого перетворення Фур'є. Генератори адреси даних використовують так названу пост-модифікацію, а саме після доступу до даних при використанні непрямої адресації вміст заданого регістра М додається до вмісту заданого регістра I. У межах пар I0-I3, M0-M3 ( генератор адреси - даних 1) і пара I4-I7, M4-M7 (генератор адреси – даних 2) можливі будь-які комбінації індексних регістрів і регістрів модифікації. Адресація генератора адреси – даних 1 поширюється на пам'ять даних, а адресація генератора адреси - даних 2 – на пам'ять програм. Це також є особливістю архітектури сигнальних процесорів, тому що в пам'яті даних зберігаються перемінні значення одержуваних сигналів у дискретному еквіваленті, а в пам'яті програм – коефіцієнти для обчислення формули Фур'є.
Значення, що містяться в регістрах модифікації М є цілими числами зі знаком, так що наступна адреса може бути більше чи менше попереднього.
Генератори адреси – даних підтримують адресацію як з лінійним так і з циклічним буфером. Цей режим забезпечується регістром L, що відповідає номеру регістра I. Для нециклічного буфера вміст L = 0, а для циклічного буфера дорівнює довжині буфера. Розглянемо використання такої адресації на прикладах.
Ініціалізація регістрів довжини L для здійснення нециклічної адресації (лінійної непрямої адресації):
I3 = 0 x 3800;
M2 = 0;
L3 = 0;
AX0 = DM (I3,M2)
Перемінна пам'яті використовується для збереження покажчика адреси
VAR/DM/RAM add_prt (0x3800);
I3 = DM (addr_prt);
L3 =0;
M1 = 0;
AX0 = DM(I3,M1);
Адресація по модулю ( циклічні буфери). Логічний пристрій адресації по модулю виконує автоматичну адресацію по модулю для досягнення доступу до вмісту циклічних буферів. Для обчислення наступного адреси використовується – поточна адреса комірки пам'яті, що знаходиться в індексному регістрі (без знака), що модифікується значенням , що знаходиться в регістрі М ( зі знаком) і довжина буфера в регістрі L (без знака). Базова адреса циклічного буфера довжини L дорівнює 2n чи кратний 2n , де n задовольняє умові 2n-1< L ≤ 2n . Іншими словами базова адреса є округлення вмісту L до найближчого ступеня чи двійки кратної йому числа. Дане правило припускає, що визначене число біт базової адреси повинне дорівнювати 0. Це поняття аналогічне поняттю вирівнювання адрес для процесорів фірми INTEL. На практиці редактор зв'язків сам розміщає буфера, обумовлені як циклічні по правильних адреса.
Література
1. Ю-Чжен Лю, Г.Гибсон Микропроцессоры семейства 8086/8088 М.: Радио и связь, 1987.
2. Б.В.Шевкопляс Микропроцессорные структуры. Инженерные решения М.: Радио и связь, 1990
3. В.Шевкопляс Микропроцессорные структуры. Инженерные решения. Дополнение первое. М.: Радио и связь, 1993
4. М.Гук Аппаратные средства IBM PC С.Петербург Питер 2000
5. В.Корнеев А.Киселев Современные микропроцессоры Санкт-Петербург БХВ – Петербург 2003
6. Локазюк В.М. и др Микропроцессоры и микроЭВМ в производственных системах Киев Издательский центр Академия 2002
7. Гуржий А.М. и др Архитектура принципы функционирования и управления ресурсами IBM PC Харьков 2003
8. В.В.Сташин А. В. Урусов О.Ф. Мологонцева Проектирование цифровых устройств на однокристальных микроконтроллерах Л. Энергоатомиздат
9. Под ред.А.Д.Викторова Руководство пользователя по сигнальным микропроцессорам семейства ADSP-2100 Санкт- Петербургский государственный электротехнический университет. Санкт- Петербург 1997
10. М.Предко Руководство по микроконтроллерам в 2-х томах М: Постмаркет, 2001