Вычислительная система обработки данных в реальном времени
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
результата следует проводить анализ слова состояния.
Ниже приведен фрагмент программы для работы с проектируемым устройством. Программа вешает процедуру чтения и обработки сигнала на прерывание от таймера. Полученные результаты записываются в некоторый файл. В случае если устройство не исправно, в файл будет записано соответствующее сообщение, а вектор прерывания не будет перегружен.
386
portDATEQU0320h
portCWEQU0322h
portSWEQU0322h
S_STACKSEGMENT PARA STACK stack
DB32 DUP(stack)
S_STACKENDS
S_DATSEGMENT PARA PUBLIC data
msgErrDevicelabeldword
dbУстройство сломано!
outDatadd?
FNamelabeldword
dboutput.dat, 0
FHandlerdw?
oldVectlabeldword
oldIpdw?
oldCsdw?
IntVectddInt8
S_DATENDS
PRG_CODSEGMENT PARA PUBLIC code
ASSUME CS:PRG_COD, DS:S_DAT, SS:S_STACK
Int8PROCFAR; модуль перегруженного прерывания
pusha; сохраним все регистры
inAl, portSW; читаем SW
testAl, 10000000b; результат готов?
jz@@EXIT; нет на выход
inAx, portDAT; читаем результат
cmpAx, 0; исключительная ситуация
jne@NO_EXEPTION; нет переход
; обработка исключения (может отсутствовать)
;…
@NO_EXEPTION:
movword ptr [outData], Ax; сохраним результат в файле
movAh, 40h
movBx, Ds:FHandler
movCx, 2
ldsDx, outData
int21h
@@EXIT:
popa; восстановим регистры
iret
Int8ENDP
SetInt8PROC
pusha
movAx, 3508h; сохраним старый вектор прерывания
int21h
movoldIp, Bx
movAx, Es
movoldCs, Ax
ldsDx, IntVect
movAx, 2508h; установим новый
int21h
popa
ret
SetInt8ENDP
MAINPROCFAR
pusha
movAh, 3Ch; создадим файл
movCx, 0020h
ldsDx, FName
int21h
jc@ERROR; ошибка?
movDs:FHandler, Ax; сохраним хэндлер
inAl, portSW; читаем SW
cmpAl, 0FFh; ошибка в устройстве?
jne@DEVICE_OK; нет переход
movAh, 40h; запишем в выходной файл
movBx, Ds:FHandler; сообщение об ошибке
movCx, 20
ldsDx, msgErrDevice
int21h
movAh, 3Eh; закроем файл
int21h
jmp@ERROR; на выход
@DEVICE_OK:
movAl, 00000011b
outportCW, Al; запишем CW
callSetInt8; посадим на прерывание от таймера
@ERROR:
popa
ret
MAINENDP
PRG_CODENDS
ENDMAIN
Параметры системы
1.Максимальная частота работы системы:
fmax=5 МГц
2. Максимальное время задержки выходных данных:
TЗД=727tCLK=145 мкс
3.потребляемая мощность:
не более 15 Вт
4.надежность устройства (=10-7 час-1):
P(10000)=e-25t= 0,98
Конструктивно УВ может быть выполнено на двух печатных платах. На первой будут размещаться блок цифровой обработки и блок интерфейса, на второй блок АЦП. Подключение к ПЭВМ осуществляется посредством разъема тип EISA. Подключение блока АЦП к устройству посредством разъема RS232 (или другого).
Временная диаграмма работы устройства ввода приведена на чертеже К2.006.223.ТЧ.
Заключение
В ходе работы над курсовым проектом по курсу Организация ЭВМ комплексов и систем было разработано устройство ввода, предназначенное для автоматического ввода и цифровой обработки аналогового сигнала. Были разработаны модули, входящие в состав устройства ввода, а также программное обеспечение самого УВ и для совместной работы его в ПЭВМ. Были оценены параметры вычислительной системы, выбран оптимальный вариант схемы. В соответствии со всеми этапами проекта были оформлены соответствующие чертежи и документация.
Список использованной литературы
1.Компьютерное оформление отчетных документов: методические указания / СоставительТ.И.Матикашвили; ТулГУ. Тула, 2000. 36с.
2.ПухальскийГ.И., НовосельцеваТ.Я.Проектирование дискретных устройств на интегральных микросхемах: Cправочник. М.: Радио и связь, 1990. 304 c
3.Микропроцессоры и микропроцессорные комплекты интегральных микросхем. Справочник в 2-х томах под ред. В.А.Шахнова.
4.НефедовА.В.Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 8. - М.: ИП РадиоСофт, 2000
5.Цифровые и аналоговые интегральные микросхемы: Справочник / Под ред. С.В.Якубовского. М., 1990
6.ТелецВ.А., ФедорковБ.Г.Микросхемы ЦАП и АЦП: Функционирование, параметры, применения. М.: Энергоатом, 1998
7.КазариновЮ.М. и др. Микропроцессорный комплект К1810: Структура, программирование, применение. М.: Высш. шк., 1990
Приложение А. Текст программы работы УВ
SegRAMEQU0FC00h; сегмент ПЗУ
PrgSizeEQU112; размер программы (в словах)
portDACEQU0000b; порт АЦП
portDATEQU0001b; порт данных
portCWEQU0110b; порт упр. слова (CW)
portSWEQU1010b; порт слова сост. (SW)
portPRGEQU0011b; порт УС микросхем интерфейса
CODE
STARTUP
; тест ПЗУ
movAx, SegRAM
movDs, Ax; в Ds сегмент ПЗУ
xorAx, Ax; очистим Ax
movCx, PrgSize; в Cx размер программы (в словах)
xorBx, Bx
@@LOOP1:
addAx, Ds: [Bx]; в Ax сумма всех слов
addBx, 2
loop@@LOOP1
cmpAx, Ds: [PrgSize*2]; совпадает ли с заданным?
je@CONTINUE1; да идем дальше
movAl, 0FFh
outportSW, Al; SW < ошибка
@HALT:
hlt; вешаем систему
jmp@HALT
@CONTINUE1:
; программирование интерфейса
movAl, 10010000b; первая МС. порт C на ввод
movAh, 10011001b; вторая МС. порт C на вывод
outportPRG, Ax; программируем
; выполнение функции
movBx, 1; по-умолчанию X(0)=1
xorCx, Cx; очистим Cl=SW и Ch=CW
@@LOOP2:
xchgAx, Cx
outportSW, Al; SW < данные не готовы
xchgAx, Cx
andCl, 01100000b
shrCl, 2
inAx, portCW; в Ch слово управления
movCh, Ah
inAx, portDAC; в Ax с АЦП
testAx, 0400h; было переполнение?
jz@@LABEL1; не было приступим к работе
testCh, 00000010b; переполнение. Что делать?
jz@@LABEL2
orCl, 01100000b; установим в бесконечность
@@LABEL2:
movAx, 0FFFFh; установим максимум
@@LABEL1:
testCl, 01010000b; будут ли исключительные ситуации?
jnz@@LABEL3; будут -> переход
movDx, Ax
shrDx, 8
cmpDx, Bx; X(i)>=256*X (i1)?
jae@@LABEL8
@@LABEL9:
cm