Министерство образования РФ
Сибирский государственный
индустриальный университет.
Кафедра автоматизированного электропривода и промышленной электроники.
Курсовая работа по курсу:
«Практическая схемотехника»
Разработка блока АЦП.
Выполнил: студент группы АПЭ – 992
Дужий А. В.
Проверил:
Кошев Е. В.
Новокузнецк 2002
Содержание
Введение 3
1 Постановка задачи 3
2 Разработка принципиальной схемы 3
2.1 Выбор АЦП. 3
2.2 Выбор алгоритма взаимодействия с ЭВМ. 3
2.3 Техническая реализация 4
Схема электрическая принципиальная модуля АЦП 7
3 Разработка конструкции печатной платы 8
Трассировочный чертеж верхней стороны 8
Трассировочный чертеж нижней стороны 9
4 Разработка программного обеспечения 10
Вывод 11
Список использованной литературы 12
В стоимость промышленного контроллера заложена:
1) стоимость железа (~1%)
2) сертификация (~5%)
3) комиссионные посреднику (10%)
4) зарплата разработчикам, административному аппарату и т.д. (~50%)
5) "накладные расходы" - (все остальное)
Таким образом возможно самостоятельное изготовление аналога контроллера за чуть более 1% стоимости промышленно выпускаемого оригинала. Если учесть то, что в оригинале используется Intel x86-совместимый процессор, то становится ясной возможность использовать в качестве ядра контроллера устаревшие ЭВМ IBM РC 286. Важными частями контроллера являются АЦП, необходимые для ввода аналоговых сигналов. В данной работе описывается процесс разработки конструкции блока АЦП для ЭВМ 286.
Разработать принципиальную схему модуля АЦП в соответствии с требуемыми техническими характеристиками:
Интерфейс с ЭВМ 286 шина ISA
Разрядность 8..12 бит
Кол-во каналов 2
Частота выборок не менее 10000
Наличие защиты от перенапряжения по входу и гальванической опторазвязки
Коэффициент усиления, изменяемый набором перемычек
Разработать конструкцию печатной платы модуля АЦП.
Разработать программное обеспечение - драйвер модуля АЦП под DOS.
2 Разработка принципиальной схемы
Поскольку планируется практическая реализация устройства в условиях ограниченных финансовых возможностей, требуется выбрать наиболее дешевый АЦП из имеющихся в продаже, отвечающий требуемым техническим характеристикам. Выбран КР572ПВ3.
2.2 Выбор алгоритма взаимодействия с ЭВМ.
Шина ISA предусматривает следующие режимы обмена с подключенными к ней внешними устройствами:
1. обмен с устройством ввода/вывода
2. обмен с памятью
3. прямой доступ к памяти
Вышеперечисленные режимы могут быть синхронными, когда устройство успевает провести обмен за цикл шины, и асинхронными, когда устройство не успевает и выдает сигнал I/O CH RDY для приостановки обмена. 8- и 16-разрядный обмен производится в зависимости от сигнала -I/O CS 16, выдаваемого устройством.
Легче всего реализуем обмен с устройством ввода/вывода, а другие режимы не имеют перед ним существенных преимуществ в данной ситуации. Синхронный обмен в данном случае невозможен, т.к. время преобразования АЦП (7,5 мкс) больше допустимого времени задержки цикла шины сигналом I/O CH RDY (2,5 мкс). Деваться тут некуда - пусть будет асинхронный.
Асинхронные режимы взаимодействия устройства с программным обеспечением:
1. опрос флага готовности
2. прерывания
Прерывания хорошо годятся в случае одиночных выборок, но если чтение будет производиться блоками, обработчик прерываний будет вызываться постоянно, что может существенно замедлить работу системы в целом. Поскольку предпочтительно чтение блоками, выбран опрос флага готовности. Поскольку 8 бит уже заняты данными, выбран 16-разрядный режим обмена, чтобы читать данные и флаг готовности одной операцией чтения.
Итак, алгоритм взаимодействия с ЭВМ:
1. Свой адрес обнаружен на ША (проверяется на спаде BALE).
2. Выдать -I/O CS 16 = 0.
3. Если обнаружен -IOR, выдать данные с АЦП на 0-7 биты и флаг готовности на 15-й бит ШД и снять данные по окончанию -IOR.
4. Снять -I/O CS 16 по отсутствию своего адреса на ША на спаде BALE.
Алгоритм работы программного обеспечения:
1. Выбрать канал чтением одной выборки. Ее нужно будет отбросить.
2. Считать выборку и проверить старший бит. Если там 1, значит преобразование закончено и данные в младшем байте действительны. В противном случае вернуться к п.2.
Данный алгоритм реализован в драйвере блока АЦП. Драйвер с т.з. прикладных программ - устройство, из которого можно считывать данные побайтно тем же способом, что из файлов.
Режимы работы драйвера:
1) чтение 1 байта - чтение выборки с ожиданием флага готовности;
2) чтение 2х байтов - чтение выборки и флага готовности без его ожидания;
3) чтение более 2х байтов - чтение нескольких выборок с ожиданием флага готовности
между чтениями;
4) запись 1 байта (0/1) - выбор канала.
1. Селектор адреса
В процессе обмена с блоком АЦП используются разряды шины адреса SA0..SA9. В адресном пространстве ввода/вывода специально предусмотрен диапазон 300..31F для прототипных плат, поэтому адрес для блока АЦП выбран из этого диапазона. Селектор адреса выполнен на логических элементах. Чтобы выполнить его всего на 2х ИС (DD6 - многовходовый элемент И-НЕ К555ЛА12 и DD8 - инверторы К555ЛН1) выбраны адреса 1100011110 (31E) и 1100011111 (31F). DD8 инвертирует те разряды адреса, которые должны быть = "0". На выходе DD12 (сигнал "-адрес выбран") появляется "0" когда на шине адреса присутствует 1 из адресов блока и отсутствует сигнал AEN. Младший бит адреса служит для выбора канала. Сигналы -адерс_выбран и НОМЕР_КАНАЛА защелкиваются триггерами DD15 по спаду сигнала BALE.
2. АЦП
АЦП К572ПВ3 специально предназначен для работы в составе микропроцессорных систем, поэтому его сопряжение с шиной ISA не составляет труда. В режиме ROM при чтении данных с АЦП на -CS всегда подается низкий уровень, а преобразование запускается подачей на -RD импульса лог. "0".
АЦП и аналоговая часть гальванически развязаны от ЭВМ оптопарами. АЦП работает непрерывно, по окончании предыдущего преобразования запускается следующее, т.к. передача сигнала на запуск через оптопару - потеря времени и усложнение схемы. Во время преобразования на выходе -BUSY присутствует логический "0". По фронту -BUSY одновибратор DD9.1 вырабатывает сигнал -RD - импульс лог."0" длительностью t1 = tRAD*4 = 360нс (время, через которое на выходе АЦП появятся данные, умноженное на 4 для надежности), по спаду которого АЦП выдает данные, а по фронту - регистр DD14, являющийся частью кодера, защелкивает данные с АЦП и в последствии выдает их на схему опторазвязки в последовательном коде, а АЦП сбрасывается и начинает новый цикл преобразования. Время от фронта -BUSY до фронта -RD, задаваемое RC-цепью R10C2, должно быть не менее времени выборки данных tRAD = 180нс, для надежности t = 4tRAD = 360нс. Тогда, при R10 = 2к, С2 = t/(0.45R10) = 400пф. Данные присутствуют на выходе АЦП минимум tRНD = 40нс после фронта -RD, так что регистр с его tздр = 18нс успеет их защелкнуть. Таким образом, данные текущей выборки передаются через опторазвязку во время следующего преобразования.
3. Кодер
Частотный код - это самосинхронизирующийся код с двумя состояниями, при котором в начале каждого бита происходит перепад, в середине нулевого бита перепада нет, в середине единичного бита перепад есть. Преимущество - относительная простота кодера и декодера.
Кодирование можно осуществить, сложив по модулю 2 два тактовых сигнала, сдвинутых на 90°, один из которых промодулирован информационным сигналом.
Кодер представляет собой 2 делителя частоты на 2 на D-триггерах DD16.1, DD16.2: на второй постоянно подается тактовый сигнал с генератора на DD4.1, DD4.2, C1, R8; а на первый - проинвертированный элементом DD10.4 тактовый сигнал только в моменты, когда входной сигнал - логическая единица. Выходы делителей подключены к элементу DD4.3 "исключающее ИЛИ". Входная информация поступает на вход элемента DD10.4 с выхода сдвигового регистра DD14, для этого на его тактовый вход подается последовательность из 8 импульсов, формируемая по импульсу запуска счетчиком DD6 и логическими элементами DD7.5, DD7.4. Импульс запуска, в свою очередь, формируется по фронту -RD логическими элементами DD7.1 - DD7.3, DD10.2.
Частота тактового генератора на DD4.1, DD4.2, C1, R8 f=5МГц, что соответствует скорости передачи данных через оптопару 2,5 Мбод (кодированных - 5Мбод). Это в 4 раза ниже максимально допустимой. Время передачи всего байта при этом 3,2мкс. Если принять R8=1k, то емкость С1:
4. Декодер
Алгоритм декодирования: если после перепада не позже времени t был второй перепад, то выдать на выход 1, если не было - 0, после чего ожидать следующего перепада, принимаемого за начало следующего бита. Оптимальное значение времени t = 3/4 длительности информационных битов. Отсюда следуют основные функции декодера, позволяющие восстановить исходные данные - определение границ информационных битов и наличия перепада между этими границами.
Формирователь коротких импульсов на DD19.1-DD19.3, C5 формирует короткие импульсы в моменты перепадов входного сигнала. Чтобы эти импульсы не оказались слишком короткими для запуска одновибратора DD17.2, использован конденсатор С5, емкость которого подбирается до четкого срабатывания одновибратора DD17.2. Элемент DD13.3 блокирует перезапуск одновибратора DD17.2 следующим перепадом (информационным). Триггер DD18.2 по фронту импульса с инвертирующего выхода одновибратора DD17.2 защелкивает текущее состояние входного сигнала. Одновременно запускается одновибратор DD17.1, по фронту импульса с инвертирующего выхода которого сдвиговый регистр DD21 запоминает очередной принятый бит, равный (выход DD18.2)Å(текущее состояние входного сигнала). Счетчик DD20 считает принятые биты, и после приема восьмого бита на его выходе появляется лог."1". Этот флаг готовности подается на разряд шины данных SD15 через буферный элемент DD1.1 с 3мя состояниями по сигналу -RD (чтение данных из регистра DD21), фронт которого сбрасывает счетчик DD20, тем самым устанавливая флаг готовности в "0". Таким образом, ЦП, считывая очередную выборку, получает информацию о том, произошло ли преобразование с момента последнего чтения.