на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Вычислительная система обработки данных в реальном времени
p align="left">Генератор тактовых импульсов К1810ГФ84 формирует собственные синхроимпульсы, для чего к его входам X1 и X2 подключен кварцевый резонатор, а к входу TANK - RC_цепочка. Сигнал RES на вход ГТИ подается с системной шины. На вход RDY подается сигнал от схемы управления системной шиной (см. блок интерфейса), предназначенный для запрещения работы на время обращения к УВ со стороны ПЭВМ. Это необходимо для избежания коллизий одновременного доступа к портам ввода-вывода.

Для организации памяти используются микросхемы КМ1608РТ2. В процессе работы процессор будет обращаться лишь к самому старшему 1 Кбайту памяти и к небольшому числу портов. Данный факт позволяет в рамках курсового проекта сократить разрядность шины адреса до 10 при обращении к памяти и до 4 при обращении к портам, что позволяет заметно сократить аппаратные затраты и уменьшить сложность устройства.

Блок интерфейса

Микросхема параллельного интерфейса К580ВВ55 позволяет подключать к ней до трех 8_разрядных внешних устройств (портов). Для организации 16_разрядных портов параллельно устанавливаются две такие микросхемы. К порту A обеих микросхем подключается блок АЦП. Порт B подключен к системной шине и используется для выдачи результат. Порт C первой микросхемы используется для выдачи на системную шину слова состояния, а порт C второй микросхемы используется для приема слова управления.

Также, важными частями блока интерфейса является логика чтения результата и логика управления системной шиной.

Логика управления готовностью и чтением результата предназначена для исключения ситуаций, когда процессор подготовил новые данные, а предыдущие еще не были считаны. Данная операция осуществляется путем подачи на вход TEST процессора сигнала неготовности на время, пока результат не будет считан. Процессор ждет разрешающего уровня на данном входе, а затем приступает к формированию следующего результата. Аппаратно логика реализована на одном D_триггере, устанавливающимся в 1 при записи результата в порт и сбрасывающимся в 0 при чтении из порта. Выход данного триггера соединен с входом TEST процессора.

Логика управления системной шиной заключается в выдаче сигнала IO16, информирующего о передаче 16_разрядных данных. Также, данная логика формирует управляющие сигналы, отпирающие необходимые буферы на входах и выходах портов, а также сигнал RDY на ГТИ, запрещающий вырабатывать синхроимпульсу на время обращения со стороны системной шины.

Факт обращения со стороны системной шины определяется с помощью дешифратора системного адреса. Для обращения к проектируемому устройству зарезервированы два адреса, на которые оно будет откликаться: 320h - для чтения результата и 322h - для чтения слова состояния и для записи управляющего слова.

Принципиальная схема проектируемого устройства приведена на чертеже К2.006.223.Э3.1.

Разработка программного обеспечения УВ

При разработке программного обеспечения УВ следует читывать следующие детали. Устройство реагирует только на два адреса: 320h - данные и 322h - управляющее слово (для записи) и слово состояния (для чтения). В связи с особенностями построения УВ при работе со словами управления и состояния необходимо использовать младший байт данных системной шины.

Старший бит слова состояния установленный в 1 информирует о готовности нового результата. В противном случае, с порта данных можно прочитать старое значение. Более того, если результат оказался нулевым, то это может означать исключительную ситуацию или бесконечность. В этом случае для определения действительного результата следует проводить анализ слова состояния.

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

386

portDAT EQU 0320h

portCW EQU 0322h

portSW EQU 0322h

S_STACK SEGMENT PARA STACK 'stack'

DB 32 DUP('stack')

S_STACK ENDS

S_DAT SEGMENT PARA PUBLIC 'data'

msgErrDevice label dword

db 'Устройство сломано!'

outData dd ?

FName label dword

db 'output.dat', 0

FHandler dw ?

oldVect label dword

oldIp dw ?

oldCs dw ?

IntVect dd Int8

S_DAT ENDS

PRG_COD SEGMENT PARA PUBLIC 'code'

ASSUME CS:PRG_COD, DS:S_DAT, SS:S_STACK

Int8 PROC FAR ; модуль перегруженного прерывания

pusha ; сохраним все регистры

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

test Al, 10000000b ; результат готов?

jz @@EXIT ; нет - на выход

in Ax, portDAT ; читаем результат

cmp Ax, 0 ; исключительная ситуация

jne @NO_EXEPTION ; нет - переход

; обработка исключения (может отсутствовать)

;…

@NO_EXEPTION:

mov word ptr [outData], Ax ; сохраним результат в файле

mov Ah, 40h

mov Bx, Ds:FHandler

mov Cx, 2

lds Dx, outData

int 21h

@@EXIT:

popa ; восстановим регистры

iret

Int8 ENDP

SetInt8 PROC

pusha

mov Ax, 3508h ; сохраним старый вектор прерывания

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ЗД=727tCLK=145 мкс

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

не более 15 Вт

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

P(10000)=e-25t= 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).

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.