Смекни!
smekni.com

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

int 21h

mov oldIp, Bx

mov Ax, Es

mov oldCs, Ax

lds Dx, IntVect

mov Ax, 2508h ; установим новый

int 21h

popa

ret

SetInt8 ENDP

MAIN PROC FAR

pusha

mov Ah, 3Ch ; создадимфайл

mov Cx, 0020h

lds Dx, FName

int 21h

jc @ERROR ; ошибка?

mov Ds:FHandler, Ax ; сохраним хэндлер

in Al, portSW ; читаем SW

cmp Al, 0FFh ; ошибка в устройстве?

jne @DEVICE_OK ; нет – переход

mov Ah, 40h ; запишем в выходной файл

mov Bx, Ds:FHandler ; сообщение об ошибке

mov Cx, 20

lds Dx, msgErrDevice

int 21h

mov Ah, 3Eh ; закроемфайл

int 21h

jmp @ERROR ; на выход

@DEVICE_OK:

mov Al, 00000011b

out portCW, Al ; запишем CW

call SetInt8 ; «посадим» на прерывание от таймера

@ERROR:

popa

ret

MAIN ENDP

PRG_COD ENDS

END MAIN

Параметры системы

1. Максимальная частота работы системы:

fmax=5 МГц

2. Максимальное время задержки выходных данных:

TЗД=727×tCLK=145 мкс

3. потребляемая мощность:

не более 15 Вт

4. надежность устройства (l=10-7 час-1):

P(10000)=e-25×l×t= 0,98

Конструктивно УВ может быть выполнено на двух печатных платах. На первой будут размещаться блок цифровой обработки и блок интерфейса, на второй – блок АЦП. Подключение к ПЭВМ осуществляется посредством разъема тип EISA. Подключение блока АЦП к устройству – посредством разъема RS‑232 (или другого).

Временная диаграмма работы устройства ввода приведена на чертеже К2.006.223.ТЧ.

Заключение

В ходе работы над курсовым проектом по курсу «Организация ЭВМ комплексов и систем» было разработано устройство ввода, предназначенное для автоматического ввода и цифровой обработки аналогового сигнала. Были разработаны модули, входящие в состав устройства ввода, а также программное обеспечение самого УВ и для совместной работы его в ПЭВМ. Были оценены параметры вычислительной системы, выбран оптимальный вариант схемы. В соответствии со всеми этапами проекта были оформлены соответствующие чертежи и документация.

Список использованной литературы

1. Компьютерное оформление отчетных документов: методические указания / Составитель Т.И. Матикашвили; ТулГУ. Тула, 2000. – 36 с.

2. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Cправочник. – М.: Радио и связь, 1990. – 304 c

3. Микропроцессоры и микропроцессорные комплекты интегральных микросхем. Справочник в 2-х томах под ред. В.А. Шахнова.

4. Нефедов А.В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 8. - М.: ИП РадиоСофт, 2000

5. Цифровые и аналоговые интегральные микросхемы: Справочник / Под ред. С.В. Якубовского. – М., 1990

6. Телец В.А., Федорков Б.Г. Микросхемы ЦАП и АЦП: Функционирование, параметры, применения. – М.: Энергоатом, 1998

7. Казаринов Ю.М. и др. Микропроцессорный комплект К1810: Структура, программирование, применение. – М.: Высш. шк., 1990

Приложение А. Текст программы работы УВ

SegRAM EQU 0FC00h ; сегментПЗУ

PrgSize EQU 112 ; размер программы (в словах)

portDAC EQU 0000b ; порт АЦП

portDAT EQU 0001b ; порт данных

portCW EQU 0110b ; порт упр. слова (CW)

portSW EQU 1010b ; порт слова сост. (SW)

portPRG EQU 0011b ; порт УС микросхем интерфейса

CODE

STARTUP

; тестПЗУ

mov Ax, SegRAM

mov Ds, Ax ; в Ds – сегментПЗУ

xor Ax, Ax ; очистим Ax

mov Cx, PrgSize ; в Cx – размер программы (в словах)

xor Bx, Bx

@@LOOP1:

add Ax, Ds: [Bx] ; в Ax – сумма всех слов

add Bx, 2

loop @@LOOP1

cmp Ax, Ds: [PrgSize*2] ; совпадает ли с заданным?

je @CONTINUE1 ; да – идем дальше

mov Al, 0FFh

out portSW, Al ; SW < – ошибка

@HALT:

hlt ; вешаем систему

jmp @HALT


@CONTINUE1:

; программирование интерфейса

mov Al, 10010000b ; первая МС. порт C на ввод

mov Ah, 10011001b ; вторая МС. порт C на вывод

out portPRG, Ax ; программируем

; выполнение функции

mov Bx, 1 ; по-умолчанию X(0)=1

xor Cx, Cx ; очистим Cl=SW и Ch=CW

@@LOOP2:

xchg Ax, Cx

out portSW, Al ; SW < – данные не готовы

xchg Ax, Cx

and Cl, 01100000b

shr Cl, 2

in Ax, portCW ; в Ch – слово управления

mov Ch, Ah

in Ax, portDAC ; в Ax – сАЦП

test Ax, 0400h ; было переполнение?

jz @@LABEL1 ; не было – приступим к работе

test Ch, 00000010b ; переполнение. Что делать?

jz @@LABEL2

or Cl, 01100000b ; установим в бесконечность

@@LABEL2:

mov Ax, 0FFFFh ; установим максимум

@@LABEL1:

test Cl, 01010000b ; будут ли исключительные ситуации?

jnz @@LABEL3 ; будут -> переход

mov Dx, Ax

shr Dx, 8

cmp Dx, Bx ; X(i)>=256*X (i‑1)?

jae @@LABEL8

@@LABEL9:

cmp Ax, Bx ; X(i)<X (i‑1)?

jl @@LABEL10

xor Dx, Dx ; очистим Dx

div Bx ; Dx: Ax/Bx -> A+D/B

mov Si, Ax ; сохраним значение A

mul Dx ; Dx: Ax < – A*D

shl Ax, 1 ; *2

shl Dx, 1

div Bx ; 2*A*D/B

mov Bx, Ax

mov Ax, Si ; восстановим A

mul Ax ; Dx: Ax < – A*A

add Ax, Bx ; в Ax – результат!

jmp @@LABEL7

@@LABEL8:

or Cl, 00000010b ; SW < – OF

test Ch, 00000100b ; переполнение. Что делать?

jnz @@LABEL9

mov Ax, 0FFFFh ; результат < – максимум

jmp @@LABEL7

@@LABEL10:

or Cl, 00000001b ; SW < – UF

mov Al, Ch

and Ax, 0001h ; результат < – UF

jmp @@LABEL7

@@LABEL3:

xor Ax, Ax ; результатом будет 0

mov Dl, Cl ; Dl < – SW

mov Dh, Cl ; Dh < – SW

and Dx, 0001100001100000b ; замаскируем по операндам

cmp Dl, 01000000b ; X(i)==0?

je @@LABEL4 ; да – на выход

cmp Dh, 00011000b ; X (i‑1)==бесконечность?

je @@LABEL4 ; да – на выход

test Ch, 00001000b ; результат = бесконечность

jnz @@LABEL4

mov Ax, 0FFFFh ; результат < – максимум

@@LABEL4:

cmp Dl, 01100000b ; X(i)==бесконечность?

jne @@LABEL5

or Cl, 00000010b ; SW < – OF

@@LABEL5:

cmp Dh, 00010000b ; X (i‑1)==0?

jne @@LABEL6

or Cl, 00000100b ; SW < – div0

@@LABEL6:

cmp Dh, 00011000b ; X (i‑1)==бесконечность?

jne @@LABEL7

or Cl, 00000001b ; SW < – UF

@@LABEL7:

out portDAT, Ax ; результат в порт

mov Bx, Ax ; X (i‑1)=X(i)

mov Al, Cl

or Al, 10000000b ; SW < – данныеготовы!

out portSW, Al ; SW впорт

wait ; ждем пока данные прочитают

jmp @@LOOP2 ; в начало

db 00h ; выравниевание на границу слова

dw xxxxh ; контрольная сумма ПЗУ

END

Также, при программировании ПЗУ необходимо записать команду перехода jmp 0FC00:0000hпо адресу ПЗУ 3F0h(физический адрес 0FFF0h).