Вычислительная система обработки данных в реальном времени

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

результата следует проводить анализ слова состояния.

Ниже приведен фрагмент программы для работы с проектируемым устройством. Программа вешает процедуру чтения и обработки сигнала на прерывание от таймера. Полученные результаты записываются в некоторый файл. В случае если устройство не исправно, в файл будет записано соответствующее сообщение, а вектор прерывания не будет перегружен.

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