≡ Передовица » Макулатура » МПСС » Аналоговый интерфейс ПЭВМ «Агат»
Аналоговый интерфейс ПЭВМ «Агат» (4/89)В.В.Медведев Применение ПЭВМ для хранения и обработки непрерывных сигналов предполагает использование аналого-цифровых преобразователей. Для медленно меняющихся сигналов задачи дискретизации и квантования непрерывного сигнала применительно к ПЭВМ АГАТ, в комплекте которой отсутствует аналого-цифровой преобразователь, могут быть решены с помощью таймера. В составе ПЭВМ имеются два однотактных таймера КР1006ВИ1, включенных по схеме одновибраторов. В штатном исполнении они предназначены для преобразования в цифровой код сигналов от двух игровых аналого-цифровых пультов. Ниже описаны аппаратные и программные средства для преобразования и записи непрерывного по времени и уровню сигнала в ОЗУ ПЭВМ АГАТ для хранения и дальнейшей обработки. Реализация такого интерфейса не требует изменения схемы включения таймера в ПЭВМ. Аппаратная часть интерфейса соединяется с ПЭВМ через разъем «Пульт» на задней стенке системного блока. Аналого-цифровые пульты идентичны и каждый включает в себя переменный резистор и кнопку. Резистор является внешним элементом времязадаю-щей RC-цепи и обеспечивает переменную длительность генерируемого одновибратором импульса Ти=1,1×R(a)C1, где Ти - длительность импульса одновибратора; R(a)-сопротивление переменного резистора как функция угла а поворота подвижного контакта; C1 - емкость RC-цепи. Заменяя пульты устройством для ввода аналогового сигнала, необходимо обеспечить зависимость зарядового тока времязадающего конденсатора от напряжения на входе (рис. 1).
Преобразование напряжения в длительность импульса начинается после подачи на вход «Запуск» таймера низкого логического уровня. На выходе таймера формируется фронт выходного импульса и начинается заряд конденсатора C1, который продолжается до тех пор, пока напряжение на конденсаторе не достигнет величины 2Uп/3, где Uп - напряжение питания таймера. На выходе формируется срез импульса, а конденсатор разряжается по цепи разряда таймера (вывод 7). Длительность генерируемого импульса Ти=2С2R1Uп/3Uвх. Программная поддержка аналогового интерфейса обеспечивает запуск одновибратора, вычисление длительности импульса, генерируемого одновибратором, запись значения в ОЗУ (рис. 2) и постоянство периода дискретизации. Преобразование сигнала начинается при появлении фронта импульса запуска программы, о чем можно судить, анализируя старший бит по адресу ¤С061 (здесь и далее знак ¤ предшествует числу, записанному в шестнадцатеричной форме). После запуска одновибратора, при выполнении любой операции с адресом ¤C070, измеряется длительность генерируемого импульса и записывается значение по текущему адресу в ОЗУ (рис.3). О существовании высокого уровня на выходе одновибратора можно судить по состоянию старшего бита по адресу ¤C064. * Коломбет E. А. Таймеры.- М.: Радио и связь, 1983.
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 * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |