Использование цифровой обработки сигналов. Технические характеристики комплекса. Микропроцессорная система на базе ADSP 21xx, страница 10


ЗАКЛЮЧЕНИЕ

Проведен курсовой проект по разработке микропроцессорной системы на базе ADSP приемника двух сигнальных частот многочастотной сигнализации. В процессе работы был изучен теоретический материал по таким вопросам: многочастотная система сигнализации связи, построение микропроцессорных устройств, разработка программного обеспечения на языке Ассемблер. Также проведены практические расчеты по определению параметров элементов функциональных блоков МПС.

Результатом работы является принципиальная схема МПС и разработанная к ней программное обеспечение, реализующая протокол многочастотной системы сигнализации.


ПРИЛОЖЕНИЕ А

Листинг программы на языке Ассемблер

/*      ADSP-21msp58     Main

Основная программа приемника двух сигнальных частот многочастотной сигнализации

*/

.EXTERN  on;                                                           // Внешняя подпрограмма с меткой on

.EXTERN  sport;                                                      // Внешняя подпрограмма с меткой sport

.EXTERN  adc;                                                         // Внешняя подпрограмма с меткой adc

.EXTERN  dac;                                                         // Внешняя подпрограмма с меткой dac;

.EXTERN  r_adc;                                                      // Внешняя подпрограмма с меткой r_adc;

.section/pm interrupts;                                              // ----Таблица векторов прерываний---_reset: JUMP start; NOP; NOP; NOP;                     // 0x0800: Reset

JUMP on; NOP; NOP; NOP;            // 0x0804: IRQ2

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

JUMP sport; NOP; NOP; NOP;        // 0x0814: SPORT0 Receive

RTI; NOP; NOP; NOP;

JUMP adc; NOP; NOP; NOP;           // 0x081C: Analog Interface Receive

RTI; NOP; NOP; NOP;

RTI; NOP; NOP; NOP;

JUMP timer; NOP; NOP; NOP;       // 0x0828: Timer

RTI; NOP; NOP; NOP;

.section/pm program;

start:  

AX0=0x2807;                                    // Настройка SPORT0

DM(0x3FF6)=AX0;

AX0=DM(0x3FFF);                          // Активизация SPORT0 и блокировка SPORT1

AY0=0x0400;

AR=AX0 OR AY0;

DM(0x3FFF)=AR;

ICNTL=0x07;                                    // разрешена реакция на фронт прерывания

AX0=0x0068;                                    // Настройка аналогового интерфейса

DM(0x3FEE )=AX0;

IMASK=0x229;                                 // Разрешение прерывания от аналогового интерфейса,

// от IRQ2, от приема по SPORT0. Запрещены

// от таймера

IDLE;                                                 //ожидание включения приемника по IRQ2

loop:   IDLE;                                                 //ожидание ответа

AY0=0x000B;                                   // проверка AR=B, если да, то программа

AR=AR XOR AY0;                          // стартует сначала, если нет, то переходит

IF EQ JUMP start;                            // на ожидание ответа

JUMP loop;

/*      ADSP-21msp58     on

Подпрограмма осуществляющет вызов подпрограммы dac с параметром B = 1

*/

.GLOBAL  on;                                              // Описание метки on как внешней

.section/pm  program;

on:                                                                  // Метка входа в подпрограмму

AX0=0x0001;                                    // параметр = 1

CALL dac;                                         // вызов процедуры dac

RTI;                                                    // возрат в main

/*      ADSP-21msp58     adc

Подпрограмма осуществляющет анализ принятой информации с АЦП и в зависимости от результата производит необходимые действия

*/

.GLOBAL  adc;                                            // Описание метки adc как внешней