Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
20.06.2014
Размер:
885 Кб
Скачать

Цифровая часть устройства

Основой устройства является микроконтроллер DD1 AtMega128 фирмы Atmel. Данный контроллер имеет все необходимые встроенные средства, но у него недостаточно оперативной памяти для накопления данных в течении заданного интервала – 240 секунд. Поэтому дополнительно установлена микросхема оперативной памяти DD3 62256 объемом 32КБайта и параллельный регистр DD2 74AC573, необходимый для формирования полной шины данных контроллером.

Память конфигурируется с максимальной рабочей частотой, чтобы минимизировать время выполнения теста ОЗУ. Поэтому регистр и память выбраны быстродействующие, время работы с ОЗУ не должно превышать 120нс. Этому условию удовлетворяет ОЗУ фирмы Samsung, KM62256CLI, имеющая к тому же достаточный диапазон температур. Могут быть использованы и микросхемы других фирм.

Линии RD, WR и A15 подтянуты к плюсу питания через резисторы для исключения случайных процессов при включении питания и при переводе портов ввода-вывода в третье состояние между обменами с ОЗУ.

Линии Reset и PEN подтянуты к плюсу питания согласно требованиям, описанным в документации контроллера через резисторы R50-R52.

Контроллер тактируется кварцевым резонатором ZQ1 с частотой 7.3728МГц, что необходимо для точной установки скорости последовательного порта. Кварцевый резонатор подключен в соответствии с требованиями документации – с двумя конденсаторами С2, С4 на общий провод.

Вывод AREF опорного напряжения АЦП контроллера подключен к повторителю на операционном усилителе и конденсатору C1 для повышения точности измерения АЦП.

Пять светодиодов VD1-VD5 (типа КИПД14Б-К), сигнализирующие перегрузку каналов, подключены к выводам PB0-PB4 порта B микроконтроллера, через токоограничивающие резисторы. Светодиод индикации ошибки VD8 (типа КИПД14Д-Л) самотестирования системы подключен к выводу PD4 микроконтроллера, также через токоограничивающий резистор.

К выводам RX0/TX0 внутреннего аппаратного последовательного порта микроконтроллера подключен преобразователь уровней DD3 MAX232, предназначенный для преобразования TTL или CMOS логических сигналов в сигналы порта RS232 и обратно. Данный преобразователь уровней имеет встроенный повышающий и инвертирующий источники напряжения и требует для своей работы наличия внешних конденсаторов C6-C9.

Питание схемы осуществляется от внешнего двуполярного источника с напряжениями +5В и -5В. Питание осуществляется через разъем X8, на тот же разъем выведены линии RX и TX порта RS232. Конденсаторы по питанию C3, C5 устанавливаются вблизи микроконтроллера, C11, C12 вблизи операционных усилителей DA1-DA4, подключенных к обоим напряжениям питания, а конденсаторы C13-C14 - вблизи разъема X8.

Протокол обмена с компьютером

Разрабатываемая система отсылает один раз в 240 секунд пакет данных, содержащий значения отсчетов за прошедшее время и данные о наличии выхода сигналов за допустимые пределы.

Данный пакет содержит следующие данные:

Заголовок пакета – байты 0x55, 0x00

Длину пакета в байтах, исключая заголовок, длину и поле CRC – два байта, для обычного пакета – 0xЕ1, 0x2Е, то есть 0x2ЕЕ1, или 12001 в десятичной форме.

Один байт, кодирующий младшими битами флаги переполнения каналов.

Данные АЦП каналов, по 5 байт на один отсчет, начиная с первого канала, 2400 отсчетов (данные за 240 секунд по 10 отсчетов в секунду). CRC пакета, полученную сложением по модулю 256 всех байтов пакета, исключая заголовок и CRC.

Каждый отсчет кодируется одним байтом в дополнительном коде, с приведением к шкале в заявленном диапазоне. Для каждого из 5 каналов после приема должен применяться коэффициент пересчета для получения входного напряжения. Коэффициент K получается делением максимального входного напряжения на 127:

U

K

1

-10..10

0.078740157

2

-1..1

0.007874016

3

-0.1..0.1

0.000787402

4

-0.05..0.05

0.000393701

5

-0.01..0.01

0.0000787402

Например, для канала 2 значение 0В будет кодироваться как 0x00, 10В – как 0x7F, а -10В будет кодироваться как 0x81.

Один раз в 10 циклов передачи данных и при включении питания генерируется пакет, определяющий состояние системы. Пакет содержит следующие данные:

Пакет, определяющий что система работает нормально:

0xA5, 0x00, 0xAA,0xAA

Пакет, определяющий что есть ошибки системы:

0xA5, 0x00, 0xFF, 0xFF

Для сброса флагов переполнения и отключения светодиодов используется пакет, отсылаемый с компьютера. Данный пакет содержит следующие данные:

Заголовок пакета – байты 0xAA,0x00

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

CRC, равное предыдущему байту, поскольку байт всего один.

Соседние файлы в папке Материалы