49548 (609152), страница 3

Файл №609152 49548 (Вычислительная система обработки данных в реальном времени) 3 страница49548 (609152) страница 32016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Генератор тактовых импульсов К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)

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,51 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6529
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее