Передовица » Макулатура » МПСС » Аналоговый интерфейс ПЭВМ «Агат»

Аналоговый интерфейс ПЭВМ «Агат» (4/89)

В.В.Медведев

Применение ПЭВМ для хранения и обработки непрерывных сигналов предполагает использование аналого-цифровых преобразователей. Для медленно меняющихся сигналов задачи дискретизации и квантования непрерывного сигнала применительно к ПЭВМ АГАТ, в комплекте которой отсутствует аналого-цифровой преобразователь, могут быть решены с помощью таймера. В составе ПЭВМ имеются два однотактных таймера КР1006ВИ1, включенных по схеме одновибраторов. В штатном исполнении они предназначены для преобразования в цифровой код сигналов от двух игровых аналого-цифровых пультов. Ниже описаны аппаратные и программные средства для преобразования и записи непрерывного по времени и уровню сигнала в ОЗУ ПЭВМ АГАТ для хранения и дальнейшей обработки. Реализация такого интерфейса не требует изменения схемы включения таймера в ПЭВМ. Аппаратная часть интерфейса соединяется с ПЭВМ через разъем «Пульт» на задней стенке системного блока.

Аналого-цифровые пульты идентичны и каждый включает в себя переменный резистор и кнопку. Резистор является внешним элементом времязадаю-щей RC-цепи и обеспечивает переменную длительность генерируемого одновибратором импульса Ти=1,1×R(a)C1, где Ти - длительность импульса одновибратора; R(a)-сопротивление переменного резистора как функция угла а поворота подвижного контакта; C1 - емкость RC-цепи.

Заменяя пульты устройством для ввода аналогового сигнала, необходимо обеспечить зависимость зарядового тока времязадающего конденсатора от напряжения на входе (рис. 1).


Рис. 1. Принципиальная схема устройства ввода аналогового сигнала

Преобразование напряжения в длительность импульса начинается после подачи на вход «Запуск» таймера низкого логического уровня. На выходе таймера формируется фронт выходного импульса и начинается заряд конденсатора C1, который продолжается до тех пор, пока напряжение на конденсаторе не достигнет величины 2Uп/3, где Uп - напряжение питания таймера. На выходе формируется срез импульса, а конденсатор разряжается по цепи разряда таймера (вывод 7). Длительность генерируемого импульса Ти=2С2R1Uп/3Uвх.

Программная поддержка аналогового интерфейса обеспечивает запуск одновибратора, вычисление длительности импульса, генерируемого одновибратором, запись значения в ОЗУ (рис. 2) и постоянство периода дискретизации. Преобразование сигнала начинается при появлении фронта импульса запуска программы, о чем можно судить, анализируя старший бит по адресу ¤С061 (здесь и далее знак ¤ предшествует числу, записанному в шестнадцатеричной форме). После запуска одновибратора, при выполнении любой операции с адресом ¤C070, измеряется длительность генерируемого импульса и записывается значение по текущему адресу в ОЗУ (рис.3). О существовании высокого уровня на выходе одновибратора можно судить по состоянию старшего бита по адресу ¤C064.

* Коломбет E. А. Таймеры.- М.: Радио и связь, 1983.


Рис. 2. Алгоритм записи сигнала в ОЗУ по входу одного из пультов

 
7OOO	A9 OO	  LDA #¤OO	;ЗАГРУЗИТЬ
7OO2	85 OO	  STA ¤OO	;НАЧАЛЬНЫЙ
7OO4	A9 1O	  LDA #¤1O	;АДРЕС
7OO6	85 O1	  STA ¤O1	;
7OO8	AO OO	  LDY #¤OO	;НАЧАЛЬНОЕ ЗНАЧЕНИЕ ИНДЕКСА
7OOA	A2 OO	  LDX #¤OO	;ОБНУЛИТЬ СЧЕТЧИК
7OOC	2C 61 CO  BIT ¤СO61	;ЦИКЛ-ОЖИДАНИЕ СТАРТОВОГО
7OOF	1O FB	  BPL ¤7OOС	; ИМПУЛЬСА СО ВХОДА кнопки
7O1O	8D 7O СO  STA ¤СO7O	;ЗАПУСТИТЬ ОДНОВИБРАТОРЫ
7O13	E8	  INX	        ;ДОБАВИТЬ ЕДИНИЦУ В СЧЕТЧИК
7O14	FO 31	  BEQ ¤7O37	;ПРИ ПЕРЕПОЛНЕНИИ ПЕРЕЙТИ НА П/П
7O16	2C 64 CO  BIT ¤СO64	;УСТАНОВИТЬ СТ. БИТ В ПРИЗНАК
7O19	3O F8	  BMI ¤7O13	;HE НУЛЬ - ПРОДОЛЖИТЬ ЦИКЛ
7O1В	8A	  TXA	        ;ЗАПИСАТЬ СОДЕРЖИМОЕ
7O1C	91 OO	  STA (¤OO),Y	;   СЧЕТЧИКА В ПАМЯТЬ
7O1E	2C 64 CO  BIT cСO64	;ЦИКЛ"ДО ПЕРЕПОЛНЕНИЯ
7O21	FO OO	  BEQ ¤7O23	;   В СЧЕТЧИКЕ"
7O23	E8	  INX	        ;
7O24	DO F8	  BNE ¤7O1Е	;
7O26	C8	  INY	        ;УВЕЛИЧИТЬ ИНДЕКС
7O27	DO E7	  BNE ¤7O1O	;СТ. БАЙТ АДРЕСА НЕ УВЕЛИЧИВАТЬ
7O29	2C 61 CO  BIT ¤СO61	;ЕСТЬ ИМПУЛЬС ОКОНЧАНИЯ ?
7O2C	1O O8	  BPL ¤7O36	;ДА, ЗАКОНЧИТЬ
7O2E	E6 O1	  INC ¤O1	;НЕТ, СТ. БАЙТ АДРЕСА УВЕЛИЧИТЬ
7O3O	A5 O1	  LDA ¤O1	; И СРАВНИТЬ ЕГО С КОНЕЧНЫМ
7O32	C9 7O	  CMP #¤7O	;КОНЕЧНЫЙ АДРЕС ДОСТИГНУТ ?
7O34	DO DA	  BNE ¤7O1O	;НЕТ, ПРОДОЛЖИТЬ
7O36	6O	  RTS	        ;ЗАКОНЧИТЬ ПРОГРАММУ

Рис. 3. Программа поддержки аналогового интерфейса ПЭВМ АГАТ

Переполнение счетчика и переход на подпрограмму обработки переполнения проводятся в цикле. Такая ситуация может возникнуть, если длительность импульса не согласована со скоростью опроса. Дополнительный цикл «до переполнения в счетчике» доводит содержимое счетчика до максимального значения независимо от того, какое число было в нем (независимо от ширины импульса). Это необходимо для достижения равномерности дискретизации при условии, если длительности одного шага циклов равны. Период дискретизации для программы иа ассемблере ПЭВМ АГАТ составляет 2,8 мс. Максимальная частота в спектре аналогового сигнала не превышает 175 Гц.

В программе поддержки интерфейса для записи сигнала отводится адресное пространство ¤1000...¤6FFF. Сама программа располагается с адреса ¤7000 и занимает в ОЗУ 55 байт. Подпрограмма обработки переполнения начинается с адреса ¤7037 и здесь не приводится. Отведенное адресное пространство заполняется сигналом за 96 с. Время записи можно увеличить, увеличивая период дискретизации введением одного или нескольких пустых операторов NOP.

При незначительных изменениях в программе можно вводить одновременно два аналоговых сигнала, используя адреса ячеек второго аналого-цифрового пульта: ¤C062 - состояние кнопки 2, ¤C070 - запуск одновибраторов (один адрес для обоих одновибраторов), ¤C065 - выход одновибратора 2. Быстродействие при этом упадет вдвое. Оператор перехода на программу отработки переполнения можно исключить, если максимальная длительность генерируемого импульса не вызывает переполнения счетчика. Тогда максимальная частота в спектре входного сигнала составит примерно 225 Гц. Однако ее можно увеличить до 500 Гц, если заменить цикл опроса ячейки ¤C064 последовательностью из 255 одинаковых операторов. В этом случае отпадает необходимость в дополнительном цикле и проверке на переполнение (рис. 4).

OOO	A9	81		LDA #¤81	;ЗАГРУЗИТЬ НАЧ. ЗНАЧЕНИЕ
OO2	18			CLC	        ;ОЧИСТИТЬ ПРИЗНАК ПЕРЕНОСА
OO3	8D	70	C0	STA ¤СO7O	;ЗАПУСТИТЬ ОДНОВИБРАТОРЫ
OO6	ED	64	C0	SBC ¤СO64	; - -
OO9	ED	64	C0	SBC ¤СO64	; !
OOC	ED	64	C0	SBC ¤СO64	; !
 -       -       -       -       -         -      !255 ОПЕРАТОРОВ
 -       -       -       -       -         -      !
 -       -       -       -       -         -      !ПРЕОБРАЗОВАТЬ ШИРИНУ
 -       -       -       -       -         -      !   ИМПУЛЬСА В КОД
3O7	ED	64	CO	SBC ¤СO64	; - -
3OA	9O	O7		BCC ¤312	; - -
3OC	OA			ASL	        ; !
3OD	E9	O1		SBC #¤O1	; !
3OF	4C	OA	O3	JMP ¤316	; !ДЕКОДИРОВАТЬ
312	38			SEC	; !
313	E9	81		SBC #¤81	; !
315	OA			ASL	        ; - -
316	91	OO		STA (¤OO),Y	;СОХРАНИТЬ ЗНАЧЕНИЕ В ПАМЯТИ

Рис. 4. Фрагмент программы ускоренного преобразования

Недостаток описанного интерфейса - нелинейность характеристики преобразования. Преодолеть его без изменения схемы включения таймера в ПЭВМ весьма затруднительно.

Телефон 134-16-21, Ленинград

Статья поступила 23.12.88

УДК 681.327.5.072.2

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *