Техническое задание
В режиме ПДП ввести N отсчетов (1000≤N≤2000) с АЦП в ОЗУ, найти их среднее значение и вывести его на индикатор.
Анализ и реализации технического задания
Устройство должно обеспечить ввод определенного количества отсчетов аналогового сигнала, количество отсчетов задается в программе константой. Так как процессор работает с цифровыми кодами, а сигнал аналоговый, следовательно требуется применение аналого-цифрового преобразователя с разрядом и скоростью преобразования, удовлетворяющего требованиям по теореме Котельникова. Но так как параметры сигнала заданы не были и требования особые не предъявлялись, следовательно это позволяет выбирать элементы схемы исходя из удобства программирования и отладки программной части.
Конкретно для удобства обработки воспользуемся 8-ми разрядным АЦП, что позволит без дополнительных сложностей работать с 8-ми разрядным контроллером ПДП, а также это позволит более рационально использовать память ОЗУ, т.к в этом случае одному отчету будет соответствовать одна ячейка памяти.
В связи с тем, что количество отсчетов сигнала (а оно напрямую связано с числом ячеек в памяти) будет превышать 255, следовательно адресация памяти контроллером ПДП должна осуществляться в 16-ти разрядном формате, что требует применения дополнительного регистра, в который будет защелкиваться старший байт адреса, который включается по типовой схеме. Настройка КПДП будет осуществляться в режим память-память с неизменным адресом источника (адрес АЦП) и инкрементируемым адресом приемника (область ОЗУ). Таким образом по окончанию циклов ПДП в ОЗУ будет находиться массив считываемых с АЦП данных размерность которого численно равна числу циклов ПДП.
Обработку массива полученных таким образом данных удобнее всего производить по прерыванию генерируемому по окончанию циклов ПДП, для этого удобнее всего поступить след образом: соединить выход «окончание циклов» КПДП с входом запроса прерывания.
Математическая обработка массива данных (вычисление среднего значения) будем производить классическим способом, т.е сложение всех его элементов и деление результата на их количество. В случае сложения 8-ми разрядных элементов будет получено 16-ти разрядное число, которое потребуется поделить на 11-ти разрядное (т.к N в промежутке от 1000 до 2000), что вызывает некоторую сложность, в связи с тем что процессор имеет лишь команды деления 16-ти разрядного делимого на 8-ми разрядный делитель. Для разрешения этой сложности удобнее всего сократить делитель и делимое и таким образом привести делитель к 8-ми разрядному виду и выполнить операцию деления имеющейся командой.
Для вывода на дисплей потребуется применение дополнительных регистров, в которых будут записываться и храниться данные индикации. Так как в десятичной системе это будет трех разрядное число, потребуется три индикатора, соответственно три дешифратора, и два 8-ми разряд регистра. Данные следует выводить на индикацию с предварительной десятичной коррекцией.
В связи с тем, что для реализации поставленной задачи используется 16-ти разрядный процессор, то соответственно шина данных и адреса будут 16-ти разрядными, это потребует удвоенное количество всех элементов схемы если они будут 8-ми разрядными.
Описание принципиальной схемы
Генератор тактовых импульсов
Формирует при включении питания сигналы РЕАДИ и СБРОС, которые поданы на соответствующие выводы процессора. Частота импульсов на выходе микросхемы на выходе CLK втрое ниже собственной частоты кварцевого резонатора.
Процессор
Тактируется от внешнего генератора, вход немаскируемого прерывания соединен с выходом завершения циклов ПДП контроллера ПДП. Т.е при окончании этого процесса сгенерирывается прерывание и процессор переходит к процедуре обработки немаскируемого прерывания по адресу 00008h.
Выходы RD WR для увеличения нагрузочной способности подключены через логические элементы И, с открытым коллектором. Открытый коллектор необходим для того чтобы при переходе процессора в пассивное состояние - во время работы контроллера ПДП не возникало конфликта логических уровней, т.к линиями RD и WR будет управлять уже не процессор а КПДП. Для управления дешифратором адреса, эти сигналы собраны схемой И и ее выход подан на вход выбора кристалла дешифратора. Так осуществляется его активация только в момент чтения либо записи информации в внешние устройства.
Сигнал ALE - строб адреса подключен в входам стробирования регистров адреса, таким образом адрес с мультиплексируемой шины запоминается в регистрах.
Сигнал BHE - разрешение старшего байта. Назначение сигнала это управление старшей половиной ОЗУ. Так как сигнал мультиплексируется то его необходимо запоминать в регистрах вместе с адресом, поэтому сигнал подан на вход одного из регистров, с выхода которого он подан на один из входов выбора кристалла микросхемы старшего байта ОЗУ.
Сигнал DT/R - направление передачи по шине. Подключается к входу управления направлением передачи (Т) шинных формирователей. При передаче данных процессором они работают на трансляцию слева направо, при чтении справа на лево.
Сигнал DEN - разрешение работы шинных формирователей. При неактивном состоянии этого сигнала они отключаются от шин. Сигнал активизируется при чтении и записи данных процессором.
Универсальная мультиплексированная шина AD0-AD15 - подана на шинные формирователи и регистры адреса, которые разделяют (демультиплексируют) ее на шину данных и адреса соответственно. Шина адреса подключена к адресным входам ОЗУ, ПЗУ и периферии. Шина данных к входам-выходам данных этих устройств.
Контроллер прямого доступа к памяти (КПДП)
Тактируется как и процессор от генератора тактовых импульсов. Сигнал сброса поступает оттуда же, вход выбора кристалла соединен с дешифратором адреса - это назначает ему свой адрес. Вход и выход запроса и подтверждения захвата шины соединены с процессором с соответствующими выводами. Т.е это типовая схема - контроллер выставит сигнал запроса захвата шины, процессор разрешит ответив сигналом разрешения и уйдет в пассивный режим, шину захватит КПДП, сделает все операции и отдаст обратно процессору.
Сигналы WR и RD соединены с соответствующими сигналами устройств шины, так контроллер управляет направлением передачи данных на шине.
Сигнал строб адреса подан на вход стробирования регистра старшего байта адреса - в нем он и запомнится.
Сигнал AEN - это сигнал который включает регистр старшего байта адреса и отключает прочие регистры и шинные формирователи связанные с процессом от шин. Этот сигнал поэтому подан на все входы разрешения.
Сигнал ЕОР - это сигнал окончания циклов ПДП, он соединен с входом прерывания, таким образом по окончании циклов ПДП сгенерируется прерывание и процессор обработает полученную информацию во время ПДП достав ее из ОЗУ.
Регистры адреса
Регистры адреса по срезу сигнала ALE запоминают адрес который процессор выставляет на шину в первом такте. Вход выбора кристалла соединен с выходом активизации регистра адреса контроллера ПДП через инвертор так как требуется отключение этих регистров от шины адреса при работе КПДП. В регистрах запоминается адрес и состояние сигнала ВНЕ.
Регистр ДД10 предназначен для запоминания старшего байта адреса, который контроллер ПДП выдает мультиплексированно по шине данных, младший байт адреса он выставляет напрямую на выводы А0-А7. Старший же байт как и у процессора должен запоминаться дополнительном регистре. Регистр во время работы процессора не активен, это осуществляется путем подачи неинверсного сигнала AEN с контроллер ПДП, но когда работает КПДП регистр будет активен, а регистры ДД6 ДД7 будут отключены - на них подан инверсный сигнал.
Шинные формирователи
Шинные формирователи - повышают нагрузочную способность линий процессора, т.к на шину подключено много устройств то ее как правило не хватает. Шинниками управляет процессор сигналами направления передачи и разрешения.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.