Смекни!
smekni.com

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

Блок цифровой обработки

Блок цифровой обработки содержит элементы, участвующие в обработке сигнала. Кроме того, данный блок выполняет инициализацию УВ, самотестирование, настройку интерфейса и т.п. Данные функции достаточно легко можно осуществить с помощью микропроцессора К1810ВМ86. Заданием предусмотрено использование данного процессора в минимальном режиме, что не допускает использования дополнительных процессоров типа АСП или СПВВ. Кроме того, для демультиплексирования шины адреса / данных в данный блок входят буферные регистры К1810ИР82 и шинные формирователи К1810ВА86. Для генерации синхроимпульсов, сигналов сброса и готовности используется БИС ГТИ К1810ГФ84.

Также неотъемлемой частью блока цифровой обработки являются микросхемы памяти. Для данного УВ необходимо ПЗУ для хранения программы и ОЗУ для хранения промежуточных результатов. Размеры необходимой памяти, а также необходимые микросхемы памяти, будут исследованы и обозначены в следующих разделах.

Микросхема К1810ВМ86

Микросхема представляет собой однокристальный 16‑разрядный микропроцессор, осуществляющий общую обработку данных и управление блоками системы в соответствии с заданной программой. На рисунке 2 приведено условное обозначение микросхемы с сигналами, соответствующими минимальному режиму. Подробно функционирование данной БИС описано в [3, 5, 7].

В данном проекте микропроцессор выполняет функции получения, обработки и передачи входного сигнала в соответствии с заданной программой.

Микросхема К1810ИР82

Восьмиразрядные буферные регистр (рис. 4) используются для организации запоминающих буферов и адресных защелок. Они состоят из восьми информационных триггеров с выходными схемами с тремя состояниями, общими сигналами записи информации и управления выходными схемами.

Микросхема К1810ВА86

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

Микросхема К1810ГФ84

Генератор тактовых импульсов (рис. 3) предназначен для управления процессором и периферийными устройствами, а также для синхронизации сигналов готовности с тактовыми сигналами процессора и сигналов интерфейсной шины.

В проектируемом устройстве генератор включается независимо, т.е. выдает синхроимпульсы независимо частоты системной шины.

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

Блок интерфейса предназначен для организации связи между устройством ввода и ПЭВМ, а также между процессором и блоком АЦП. Основным элементом данного блока является микросхема интерфейса. В данном случае это микросхема К580ВВ55А, представляющая собой трехпортовую БИС ввода-вывода [5]. Для подключения выходов данной БИС к системной шине необходимы буферные элементы. Их роль выполняют описанные выше элементы К1810ВА86.

Микросхема К580ВВ55А

Микросхема представляет собой универсальную программируемую БИС для организации портов ввода-вывода информации в параллельной форме. Обмен информацией между магистралью данных и микросхемой осуществляется через 8-разрядный двунаправленный тристабильный канал данных. Для связи с периферийными устройствами используются три 8-разрядных канала, в которых направление передачи информации зависит от режима работы. В нашем случае микросхема настраивается на режим 0, а порты подключаются следующим образом: порт A– блок АЦП; порт B – данные; порт C – слово управления / состояния.

Интерфейс системной шины

Подробную информацию об интерфейсе системной шины можно найти в [7]. Ниже пойдет описание, необходимое для представления принципа работы проектируемого УВ.

Для сопряжения с интерфейсом системной шины в блоке интерфейса необходима отдельная логическая схема, осуществляющая управление обращением к УВ со стороны ПЭВМ. Эта схема должна дешифрировать адрес и управляющие сигналы на системной шине и в соответствии с ними выдавать управляющие сигналы обратно на системную шину и в УВ. К сигналам выдаваемым на системную шину относится сигнал IO16, говорящий о 16-разрядной передаче данных. Данный сигнал будет иметь активный (низкий) уровень в случае выдачи на шину данных результата. В случаях чтения слова состояния или записи управляющего слова данный сигнал имеет высокий уровень, что говорит о передаче байта. К сигналам, выдаваемым в УВ, относятся сигналы управления шинными формирователями на выходах портов и сигнал готовности на ГТИ, приостанавливающий работу процессора ВМ86 на время обмена, а также сигнал, информирующий процессор о том, что данные еще не были считаны и нет необходимости формировать следующий результат. Приостановка процессора необходима для избежания коллизий.

Для обращения к проектируемому устройству резервируются адреса: 320h – для чтения результата; 322h – для чтения слова состояния и для записи управляющего слова.

Ниже приведены форматы слова состояния и слова управления:


Слово состояния:

R – флаг готовности результат. Устанавливается в 1 после записи в выходной регистр результата и сбрасывается в 0 при чтении регистра. Анализируется процессором для записи нового результата только после чтения предыдущего, и приложением работы с УВ, для чтения результата только после его готовности.

op1, op2 – значение операндов, участвующих в вычислении функции: текущее значения (op1) и предыдущее (op2). Могут принимать значения: 0x – произвольное ненулевое число; 10 – нуль; 11 – бесконечность. Предназначены для выявления исключительных ситуаций, таких как 0/0 или ¥/¥. В таких ситуациях выдается нулевой результат, а эти биты должны быть проанализированы для определения типа ситуации.

div0, OF, UF – флаги ошибок деления на нуль, переполнения и антипереполнения соответственно.

Слово управления:

УБ – управление бесконечностью. В случаях, когда результатом является бесконечность, данный бит управляет формированием результата. 0 – выдается нулевое значение результата; 1 – выдается максимально возможное значение (0FFFFh). В обоих случаях определить бесконечность можно анализом слова состояния.

УП – управление переполнением. В случаях, когда результат превышает 16‑разрядов, данный бит управляет формированием результата: 0 – результатом будут младшие 16 бит результата; 1 – результатом будет максимально возможное значение (0FFFFh). В обоих случаях установить факт переполнения можно анализом слова состояния.

УД – управление данными АЦП. В случаях, когда разряд переполнения АЦП установлен в 1, данный бит позволяет определить как интерпретировать входной сигнал: 0 – сходной сигнал интерпретируется как бесконечность; 1 – входной сигнал интерпретируется как максимально возможное значение (0FFFFh).

УА – управление антипереполнением. Антипереполнение возникает в случае, когда значение результата оказывается меньше младшего разряда. Данный бит позволяет интерпретировать данный результат двумя способами: 0 – нулевой результат; 1 – результат равен 1.

Алгоритм вычисления функции

Вычисляемая в устройстве ввода функция имеет вид:


где Xi– текущее значение входного сигнала;

Xi-1 – предыдущее значение входного сигнала;

Yi – выходной сигнал.

Разрядность входного сигнала равна 10, в связи с чем максимальная разрядность результата будет составлять 20. Однако, из-за особенностей работы УВ и используемой аппаратуры, результат формируется 16-разрядным.

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

На рисунке 7 приведен фрагмент алгоритма вычисления функции и формирования результата. При этом следует обратить внимание на некоторые особенности алгоритма. Входные значения находятся регистрах Ax=Xi и Bx=Xi-1. Результат формируется в регистре Ax. Т.к. слово состояния представляет собой набор бит, то операция типа SW¬div0 представляет собой установка соответствующего бита. Более того, наличие исключительных ситуаций предполагает наличия двух значений для каждого операнда: само значение и его представление в слове состояния (см. рисунок 6), причем, изменение одного из них не влечет изменения другого.

Ниже приведена программа, соответствующая приведенному


алгоритму:

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: