- •1.1 Основні визначення
- •1.2 Принципи побудови та функціонування обчислювальних систем
- •1.2.1 Архітектура обчислювальних систем
- •1.3 Принципи побудови та функціонування мпс
- •1.4 Функціонування обчислювального пристрою
- •2.1 Подання даних в обчислювальних системах
- •2.2 Подання даних у кодах
- •2.3 Порозрядні операції над даними
- •3 Цифрові автомати
- •4 Типові пристрої обчислювальних систем (Для самостійного вивчення)
- •4.1 Суматори
- •4.2 Цифрові компаратори
- •4.3 Арифметично-логічний пристрій
- •4.4 Програмовані логічні інтегральні схеми (пліс)
- •5 Принципи побудови запам’ятовувальних пристроїв мпс з заданою організацією
- •5.1 Запам’ятовувальні пристрої мпс та їх класифікація
- •5.2 Постійні запам’ятовувальні пристрої – флеш-пам’ять
- •5.3 Оперативні запам’ятовувальні пристрої
- •5.4 Побудова блока запам’ятовувального пристрою мпс
- •6 Інтерфейс
- •6.1 Організація інтерфейсів
- •6.2 Асинхронний послідовний адаптер rs-232-c
- •7 Мікропроцесори
- •7.1 Архітектура мікропроцесорів
- •7.2.1 Історична довідка про розвиток мікропроцесорів фірми Intel (Для самостійного вивчення)
- •Програмна модель мп к580вм80а
- •7.2.2 Організація 16-розрядних мікропроцесорів
- •7.2.3 Програмна модель мп і8086
- •7.2.4 Режим переривань мп і8086
- •7.2.5 Організація 32-розрядних мікропроцесорів (Для самостійного вивчення)
- •7.3 Архітектура сучасних мікропроцесорів
- •7.3.1 Тенденції розвитку архітектури сучасних мікропроцесорів
- •7.3.2 Мікропроцесори Pentium
- •7.3.3 Процесори фірми amd
- •7.3.4 Продуктивність мікропроцесорів та її оцінювання
- •8 Використання сучасних мікропроцесорів
- •Список рекомендованої літератури до Частини і 1-го модуля
- •9 Програмування мікропроцесорів фірми intel
- •9.1 Сегментування пам’яті мікропроцесорами
- •9.2 Способи адресування операндів мп фірми Intel
- •9.3 Мова програмування Асемблер-86
- •9.3.1 Формат команди
- •9.3.2 Команди пересилань
- •9.3.3 Команди перетворення даних мови Асемблер-86
- •Команди логічних операцій
- •9.3.4 Команди умовних та безумовних переходів
- •9.3.5 Команди організації циклів
- •9.4 Створення програм на мові Асемблер-86
- •9.4.1 Лінійні програми
- •9.4.2 Розгалужені програми
- •9.4.3 Циклічні програми
- •10 Програмна реалізація вузлів телекомунікаційного обладнання мовою асемблер-86
- •10.1 Способи реалізації алгоритмів
- •10.2 Розробка апаратно-програмних комплексів
- •10.3 Приклади реалізації простих вузлів телекомунікацій
- •10.3.1 Ініціалізація послідовного асинхронного адаптера rs-232-c
- •10.3.2 Фрагмент програми передавання даних через асинхронний адаптер rs-232-c
- •10.3.3 Фрагмент програми приймання даних через асинхронний адаптер rs-232-c
- •10.3.4 Приклад програми ініціалізації rs-232-c та введення-виведення даних, написаної у програмному середовищі turbo assembler (tasm)
- •10.3.5 Програмна реалізація генератора імпульсних послідовностей
- •10.3.6 Програмне вимірювання періоду імпульсної послідовності det
- •10.3.7 Програмна реалізація мультиплексора
- •Список рекомендованої літератури до Частини іі 1-го модуля
- •11 Мікропроцесорні системи на універсальних мп фірми motorola
- •11.2 Побудова мпс на 16-розрядних мікропроцесорах фірми Motorola
- •11.2.1 Підсистема центрального процесорного елемента mc68000
- •11.2.2 Розподіл адресного простору мпс
- •11.2.3 Організація підсистеми пам’яті
- •11.2.4 Організація підсистеми введення-виведення
- •11.4 Побудова мпс на 32-розрядних мікропроцесорах фірми Motorola
- •11.4.1 Підсистема центрального процесорного елемента
- •11.4.2 Розподіл адресного простору мпс
- •11.4.3 Організація підсистеми пам’яті мпс
- •12 Програмування універсальних мп
- •Непряме регістрове адресування з постіндексуванням
- •Непряме регістрове адресування з преіндексуванням
- •Непряме відносне адресування з індексуванням
- •12.2 Система команд мп мс680х0 (Для самостійного вивчення)
- •12.2.1 Команди пересилань
- •12.2.2 Команди арифметичних операцій
- •12.2.3 Команди логічних операцій
- •12.2.4 Команди зсувів
- •12.2.5 Команди безумовних переходів
- •12.2.6 Команди умовних переходів
- •12.2.7 Команди організації програмних циклів
- •12.2.8 Команди звернення до підпрограм
- •12.3 Побудова програм з різною структурою мовою Асемблер
- •12.3.1 Лінійні програми
- •12.3.2 Розгалужені та циклічні програми. Підпрограми
- •12.4 Створення програмного забезпечення мпс на мп фірми Motorola
- •Список рекомендованої літератури до Частини і 2-го модуля
- •13.1 Типові мікроконтролери фірми Motorola
- •Сімейство 68нс16/916
- •13.2 Система команд мікроконтролерів фірми Motorola
- •13.3 Налаштовування вбудованих засобів мікроконтролерів
- •14 Risc-процесори фірми motorola
- •14.1 Risc-процесори PowerPc
- •14.2 Risc-процесори ColdFire
- •14.3 Система команд risc-мікропроцесорів сімейства PowerPc
- •15 Архітектура та принципи побудови процесорів цифрового оброблення сигналів
- •15.1 Основні напрямки цифрового оброблення сигналів (цос)
- •15.2 Узагальнена архітектура процесорів сімейства dsp563xx
- •15.3 Організація циклічного буфера в dsp
- •15.4 Програмна реалізація цифрового фільтра сіх
- •16 Мпс на мікроконтролерах, мікропроцесорах та dsp
- •Список рекомендованої літератури до Частини іі 2-го модуля
- •Предметний покажчик
10.3.5 Програмна реалізація генератора імпульсних послідовностей
Вхідний контроль:
Генератор, який синхронізує роботу МПС, видає імпульси на МП з частотою 10 МГц; яка тривалість тактового імпульсу МП?
Як можна реалізувати програмно часову затримку на 10 мкс?
В основу методу створення програмних моделей генераторів імпульсних послідовностей покладено три прийоми:
– використання різних підпрограм часових затримок;
– використання таблиць в ОЗП, які вміщують інформацію про імпульсні послідовності;
– використання алгоритмів обчислення часових логічних функцій.
Вираз для часової логічної функції генератора імпульсної послідовності Y = f(t), де t – дискретний час, показує залежність вихідного сигналу від дискретного реального часу. Обчислення часової логічної функції повинне відбуватися за рівні інтервали часу, інакше синхронізація формованих послідовностей буде порушуватись. На рис. 10.1 показано змодельовану імпульсну послідовність кінцевої довжини, яка виводиться через молодший розряд паралельного порту PORT.
Імпульсна послідовність розбивається на інтервали ∆t та кодується, закодований опис завантажується у пам’ять.
Рисунок 10.1 – Кодування імпульсної послідовності
Наведена нижче підпрограма ІМ реалізації імпульсної послідовності працює таким чином: через рівні інтервали часу ∆t наступний байт опису послідовності виводиться у PORT. Інтервал ∆t визначається кількістю тактів синхронізації МП, які потрібні для виводу байта у порт (10 тактів = 1 мкс) та кодом часу затримки у підпрограмі DELAY. Таким чином ∆t = 1МКС + tDELAY. Підпрограма моделює тільки період імпульсної послідовності, для моделювання довгої серії імпульсів треба організувати цикл звернення до підпрограми ІМ:
IM: MOV BX,A1ABН ; Занесення до ВХ адреси таблиці опису
M2: MOV CL,02H ; Занесення до CL кількості байтів опису
MOV DH,8H ; Занесення до DH кількості бітів у байті
MOV AL,[BX] ; Занесення до АL чергового байта опису
MOV DL,AL ; Запам’ятовування цього байта у DL
M1: AND AL,01H ; Виділення молодшого біта
OUT PORT ; Вивід його у PORT
SHR DL,1 ; Логічний зсув праворуч на 1 розряд
MOV AL,DL ; Запам’ятовування нового значення байта
CALL DELAY ; Затримка сигналу на виході порту
DЕC DH ; Декрементування лічильника бітів
JNZ M1 ; Повернення на початок циклу
INC BX ; Нарощування адреси елемента таблиці
LOOP M2 ; Звернення до наступного елемента таблиці
RET ; Повернення з підпрограми
NOP
10.3.6 Програмне вимірювання періоду імпульсної послідовності det
Період імпульсної послідовності Тпер вимірюється підрахуванням кількості відомих малих інтервалів часу Δt, які накопичуються за один період імпульсної послідовності. Імпульсна послідовність показана на рис. 10.1. Частота імпульсів повинна знаходитись у межах 5 Гц ... 167 кГц. Підпрограма DET кожні Δt = 3 мкс опитує порт, на молодший розряд якого надходить послідовність імпульсів. Фіксується фронт імпульсу, після чого у лічильнику СХ накопичується кількість дискретних інтервалів часу ТІ, протягом яких у порт надходить високий рівень напруги, а у лічильнику ВХ накопичується кількість інтервалів часу ТП, протягом яких зберігається низький рівень напруги. Числа ТІ та ТП запам’ятовуються відповідно за адресами 20Н та 22Н у сегменті даних, а кількість інтервалів часу за період Тпер = ТІ + ТП запам’ятовується у комірці пам’яті за адресою 24Н у сегменті даних.
В основній програмі після повернення з підпрограми DET можна підрахувати тривалість імпульсу ti, тривалість паузи tn та період Тпер у секундах
ti = Δt(ТІ) = 3 мкс (ТІ);
tn = Δt(ТП) = 3 мкс (ТП);
Тпер = Δt(ТІ + ТП) = 3 мкс (ТІ + ТП).
Фрагмент програми DET наведено нижче:
MOV DX,PORT ; Завантаження до DX адреси порту
DET: IN AL,DX ; Фіксація
AND AL,01H ; фронту
JNZ DET ; імпульсу
М1: IN AL,DX
AND AL,01H
JNZ M1
MOV CX,00H ; Скидання лічильника часу (ТІ) імпульса
М2: INС СX ; Вимірювання ТІ
IN AL,DX
AND AL,01H
JNZ M2
MOV [20H],CX ; Занесення ТІ у пам’ять
MOV ВX,00H ; Скидання лічильника часу (ТП) паузи
М3: INС ВX ; Вимірювання ТП
IN AL,DX
AND AL,01H
JNZ M3
MOV [22H],ВX ; Занесення ТП у пам’ять
ADD BX,CX ; Визначення періоду послідовності
; імпульсів (Тпер)
MOV [24H],ВX ; Занесення Тпер у пам’ять
RET ; Повернення з підпрограми
Контрольні питання:
Яка підпрограма використовується для формування будь-яких часових послідовностей?
Як за допомогою табличного метода програмно реалізувати генератор імпульсних послідовностей?
Як, використовуючи комп’ютер або МПС, здійснити вимірювання періоду імпульсної послідовності?
Контрольні питання підвищеної складності:
Напишіть програму формування імпульсної послідовності з коефіцієнтом заповнення 0,5.
Виведіть цю імпульсну послідовність через порт RS-232-C.