Проектирование системы сбора данных

Проектирование системы сбора данных
1. ВВЕДЕНИЕ
В настоящее время проектированию измерительных систем уделяется много времени.
Делается большой акцент на применение в этих системах электронно-цифровых приборов.
Высокая скорость измерения параметров, удобная форма представления информации,
гибкий интерфейс, сравнительно небольшая погрешность измерения по сравнению с
механическими и электромеханическими средствами измерения все эти и многие другие
преимущества делаю данную систему перспективной в развитии и в дальнейшем
использовании во многих отраслях производства.
Развитие микроэлектроники и широкое применение ее изделий в промышленном
производстве, в устройствах и системах управления самыми разнообразными объектами и
процессами является в настоящее время одним из основных направлений научно-
технического прогресса.
Использование микроконтроллеров в изделиях не только приводит к повышению технико-
экономических показателей (надежности, потребляемой мощности, габаритных размеров),
но и позволяет сократить время разработки изделий и делает их модифицируемыми,
адаптивными, а также позволяет уменьшить их стоимость. Использование
микроконтроллеров в системах управления обеспечивает достижение высоких
показателей эффективности при низкой стоимости.
Системы сбора данных в наши дни сделали большой шаг в вперед и в плотную
приблизились к использованию совершенных электронных технологий. Сейчас, многие
системы сбора данных состоящие из аналогового коммутатора, усилителя выборки-
хранения, АЦП, стали размещать на одной интегральной микросхеме, что сравнительно
повлияло на скорость обработки данных, удобство в использовании, и конечно же на их
стоимость.
2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Требуется спроектировать систему сбора данных предназначенную для сбора и первичной
обработки информации поступающей с четырех датчиков давления и датчика контроля за
давлением.
Основные характеристики:
Количество каналов подключения датчиков
давления
4
Количество линейных датчиков
статическая характеристика
диапазон измеряемого давления
собственная погрешность измерения
3
U(p)=a0p+b a0=0.1428 b=-0.71
5..50 КПа
0.1%
Количество нелинейных датчиков
статическая характеристика
диапазон измеряемого давления
собственная погрешность измерения
1
U(p)=a0p+a1p2+a2p3+b a0=0.998,
a1=0.003 a2=-0.001 b=-2.5
0.01..5 Мпа
0.1%
Максимальная погрешность одного канала не более
0.5%
Количество развязанных оптоизолированных входов
для подключения датчика контроля за давлением
Активный уровень
Выходное напряжение логического нуля
Выходное напряжение логической единицы
Максимальный выходной ток
логического нуля мА
логической единицы мА
1
1
уровень ТТЛШ
уровень ТТЛШ
2.5
1.2
Режим измерения давления
Статический
Базовая микро-ЭВМ
89С51 фирмы Atmel
3. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ. ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ
Структурная схема системы сбора данных представлена на рис.1
Обобщенная структурная схема системы сбора данных.
ДД1,ДД2,ДД3 – линейные датчики давления,
ДД4- нелинейный датчик давления,
ДКД1, ДКД2 – датчики контроля за давлением
AD7890 – АЦП, УВХ, ИОН, аналоговый коммутатор,
98С51 – микро-ЭВМ,
WDT –сторожевой таймер.
Рисунок 1.
Датчики давления преобразовывают измеренное давление в электрический сигнал.
Нормирующие усилители преобразовывают выходное напряжение с датчиков давления к
входному напряжению АЦП.
AD7890 (далее АЦП) служит для того чтобы, переключать требуемый канал коммутатора,
преобразовать аналоговую величину напряжения в соответствующий ей двоичный
цифровой код.
Однокристальная микро-ЭВМ предназначена для того чтобы:
производить расчет - Р(код) по известной статической характеристике датчика давления;
передавать рассчитанное давление по последовательному интерфейсу RS-232 в ПК.
Буфер последовательного интерфейса RS-232 введен в схему, для того чтобы
преобразовывать логические уровни между ПК и микро-ЭВМ и микро-ЭВМ и ПК.
Т.К. работа системы производится в автономном режиме и она не предусмотрена для
работы с оператором, то в состав системы дополнительно вводится интегральная
микросхема сторожевого таймера, предназначенная для вывода микро-ЭВМ из состояния
зависания и ее сбросе при включении питания.
Временная диаграмма работы сторожевого таймера представлена на листе 2 графической
части.
Блок схема обобщенного алгоритма работы представлена в приложении 4.
При включении питания микро-ЭВМ 89С51 реализует подпрограмму инициализации (1.
инициализация УАПП, 2. установка приоритета прерываний, 7. разрешение прерываний).
По запросу от ПК "Считать измеренное давление с датчика N" (где N – номер датчика
давления), МП последовательно выдает с линии 1 порта 1(Р1.1), байт данных (в котором
1-ый, 2-ой и 3-ий биты указывают на выбор канала мультиплексора) на вход АЦП —
DATA IN. Прием каждого бита этого байта происходит по фронту импульсов сигнала
поступающего на вход SCLK от МП с линии 2 порта 1 (Р 1.2). Передача этого байта
стробируется сигналом (низкий уровень), поступающего на вход от МП с линии 4
порта 1 (см. графическую часть лист 2) Приняв байт информации АЦП производит
переключение требуемого канала. После этого МП выдает отрицательный импульс на
вывод с линии 7 порта 1 и по положительному переходу этого импульса
начинается процесс преобразования напряжение в двоичный код, которое поступает от
датчика давления – N. По истечении 5.9 ?с (время преобразования ) АЦП готов к
последовательной передачи полученного 12-ти разрядного двоичного кода. Процесс
передачи данных от АЦП к МП производится при стробировании сигнала (низкий
уровень), поступающего с линии 5 порта 1 на вывод (см. графическую часть лист 2).
Формат посылки состоит из 15-ти бит (первые три бита несут за собой номер
включенного текущего канала, а остальные 12 бит двоичный код ). Приняв двоичный код,
МП путем математических вычислений(см. п.5) находит зависимость Р(код) и посылает в
ПК по последовательному интерфейсу RS-232 полученное значение давления P. На этом
цикл работы системы заканчивается.
4. РАЗРАБОТКА И РАСЧЕТ ЭЛЕМЕНТОВ ПРИНЦИПИАЛЬНОЙ
ЭЛЕКТРИЧЕСКОЙ СХЕМЫ
4.1 Выбор микропроцессорного комплекта
В соответствии с заданием ядром системы послужила однокристальная микро-ЭВМ 89С51
фирмы Atmel.
Основные характеристики однокристальной микро-ЭВМ 89С51:
• Совместима с однокристальной микро-ЭВМ серии MCS-51
• 4Kb ре-программируемой флешь памяти
допустимо: 1000 циклов Записи/Стирания
• Рабочий диапазон частоты синхронизации : от 0 Гц до 24 МГц
• 128 x 8-бит встроенного ОЗУ
• 32 программируемых I/O линии
• Два 16-разрядных таймер/счетчика
• Семь источников внешних прерываний
• Программируемый УАПП
• Возможность включения режима пониженного энергопотребления
4.1.1 Аппаратное сопряжение ПК и микроконтроллера
Для решения задачи сопряжения ПК и микроконтроллера было решено использовать
интерфейс RS-232C.
Последовательный порт используется в качестве универсального асинхронного
приемопередатчика (УАПП) с фиксированной или переменной скоростью
последовательного обмена информацией и возможностью дуплексного включения.
Последовательный интерфейс микроконтроллера МК-51 может работать в следующих
четырех режимах:
Режим 0.Информация передается и принимается через вход RxD приемника (вывод P3.0).
Через выход передатчика TxD (вывод P3.1) выдаются импульсы синхронизации,
стробирующие каждый передаваемый или принимаемый бит информации. Формат
посылки – 8 бит. Частота приема и передачи – тактовая частота микроконтроллера.
Режим 1.Информация передается через выход передатчика TxD, а принимается через вход
приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных,
программируемый девятый бит и стоп-бит (единица). Частота приема и передачи задается
таймером/счетчиком 1.
Режим 2.Информация передается через выход передатчика TxD, а принимается через вход
приемника RxD. Формат посылки – 11 бит: старт-бит (ноль), восемь бит данных,
программируемый девятый бит и 2 стоп-бита (единицы). Передаваемый девятый бит
данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8
в регистре SCON может быть программно установлен в "0" или в "1", или в него, к
примеру, можно поместить значение бита Р из регистра PSW для повышения
достоверности принимаемой информации (контроль по паритету). При приеме девятый
бит данных принятой посылки поступает в бит RB8 регистра SCON. Частота приема и
передачи в режиме 2 задается программно и может быть равна тактовой частоте
микроконтроллера деленной на 32 или на 64.
Режим 3.Режим 3 полностью идентичен режиму 2 за исключением частоты приема и
передачи, которая в режиме 3 задается таймером/счетчиком 1.
Для реализации обмена информацией между ПК и микроконтроллером наиболее удобным
является режим 2, т.к. дляработы в этом режиме не требуется таймер/счетчик. Этот режим
полностью удовлетворяет предъявленным требованиям.
4.1.2 Выбор кварцевого резонатора
Для работы МП необходим кварцевый резонатор который подключается к выводам XTAL1
и XTAL2 (см. графическую часть курсового проекта, лист 1)
Рабочая частота кварцевого резонатора непосредственно связана со скоростью работы
УАПП, мы выбираем из п.1 fрез=11.059 МГц
4.1.3 Выбор скорости приема/передачи по RS-232
Скорость приема/передачи, т.е. частота работы универсального асинхронного
приемопередатчика (УАПП) в режиме 2 зависит от значения управляющего бита SMOD в
регистре специальных функций.
Частота передачи определяется выражением:
f=(2SMOD/64)fрез.
Иными словами, при SMOD=0 частота передачи равна (1/64)fрез, а при SMOD=1 равна
(1/32)fрез.
Исходя из вышеизложенного, выберем частоту приема данных при SMOD=1. Если
fрез=11,059 МГц, тогда частота приема данных будет 19,2 КБод.
Другие значения частот кварца могут быть выбраны из таблиц в п.1 и п.2.
4.1.4 Разработка формата принимаемых и передаваемых данных по RS-232
Формат принимаемых и передаваемых данных почти полностью описан режимом 2
работы последовательного интерфейса.
Формат должен состоять из 11 бит:
стартовый бит – ноль;
восемь бит данных;
девятый бит – контроль по паритету, для повышения достоверности принимаемой
информации;
два стоповых бита – единицы.
4.2 Выбор буфера RS-232
Обмен данными между ПК и микроконтроллером будет производиться по
последовательному интерфейсу RS-232. Т.к. стандартный уровень сигналов RS-232 - -12 В
и +12 В, а стандартный уровень сигналов асинхронного интерфейса микроконтроллера
89С51 – +5 В необходимо обеспечить согласование уровней между RS-232 и 89С51.
Преобразование напряжения будет производить цифровая интегральная микросхема ADM
202E. Выбор данной микросхемы был произведен исходя из ТЗ (техническое задание).
Основные характеристики цифровой интегральной микросхемы ADM 202E приведены в
табл. 3.
Таблица 3.
Основные характеристики цифровой интегральной микросхемы ADM 202E
Параметр
Минимальный
Максимальный
Единица измерения
Напряжение питания
4.5
5.5
В
Нижний входной лог. порог
0.8
В
Высокий входной лог. порог
2.4
В
RS-232 приемник
Входное допустимое напр.
-30
+30
В
Входной нижний парог
0.4
В
Входной высокий парог
2.4
В
RS-232 передатчик
Выходной размах напр.
-+5
В
Сопр. Выхода передатчика
300
Ом
Температурный диапазон
-40
+85
?C
Функциональная блок-схема интегральной микросхемы ADM 202E представлена на рис.2
Функциональная блок-схема интегральной микросхемы ADM 202E
Рисунок. 2
4.3 Выбор АЦП.
В качестве аналого-цифрового преобразователя послужила интегральная микросхема
фирмы Analog Devices – AD7890-2. Выбор данной микросхемы был произведен исходя из
ТЗ
Основные характеристики:
• 12-разрядный АЦП, время преобразования 5.9 мкс
• Восемь входных аналоговых каналов
• Входной диапазон :
от 0 В до +2.5 В
• Раздельный доступ к мультиплексору и к АЦП
• Встроенный источник опорного напряжения +2.5 В (возможно подключение внешнего.)
• Высокая скорость, "гибкость", последовательный интерфейс
• Низкая потребляемая мощность (50 мВт максимум)
• Режим пониженного энергопотребления (75 мкВт).
Функциональная блок-схема интегральной микросхемы AD 7890-2 представлена на рис.3
Функциональная блок-схема интегральной микросхемы AD 7890-2
Рисунок 3
4.3.1 Расчет погрешности вносимой АЦП.
Аналого-цифровой преобразователь вносит следующие виды погрешностей:
? нелинейности (погрешность нелинейности- это максимальное отклонение
линеаризованной реальной характеристики преобразования от прямой линии,
проходящей через крайние точки этой характеристики преобразования АЦП.);
? дифференциальной нелинейности(погрешность дифференциальной нелинейности-
это отклонение фактической разности уровней (входного сигнала АЦП),
соответствующим двум соседним переключениям кода, от идеального значения
этой разности, равной 1 МЗР. Для идеального АЦП разница уровней между
соседними переключениями кода в точности равна 1 МЗР.);
? погрешность полной шкалы (погрешность полной шкалы- это отклонение уровня
входного сигнала, соответствующего последнему переключению кода от
идеального значения, после того как была откорректирована погрешность
биполярного нуля.);
В табл. 4 приведены погрешности взятые из каталога, на интегральную микросхему
AD7890 фирмы Analog Devices
Таблица 4
Основный погрешности интегральной микросхемы AD7890
Вид погрешности
Значение
%
Интегральная нелинейность
?1 МЗР
0.0244
Дифференциальная нелинейность
?1 МЗР
0.0244
Полной шкалы
?2.5 МЗР
0.061
Общая (?АЦП)
0,1098
4.4 Выбор сторожевого таймера.
Т.к. работа системы происходит в автономном режиме и не предусматривает работу
оператора с ней, то для случая зависания микро-ЭВМ в схему системы сбора данных
добавляется интегральная микросхема MAX690AMJA – сторожевой таймер. Выполняющая
две основные функции: выведение МП из состояния зависания и сброс МП при
включении питания.
Основные характеристики интегральной микросхемы МАХ690AMJA:
• Время сброса: 200 мС
• Рабочий диапазон напряжения питания: от 1 до 5.5 В
• Ток потребления: 200 мкА
• температурный диапазон эксплуатации: от –55 до +125 ?C.
4.5 Выбор интегральной микросхемы операционного усилителя
Нормирующий усилитель выполнен на аналоговой микросхеме OP-27А (операционный
усилитель), исполненной в восьми контактном DIP-корпусе. Основные хар-ки
операционного усилителя OP-27A приведены в табл.5.
Таблица 5
Основные характеристики аналоговой микросхемы ОР-27А
Напряжение питания (UПИТ)В:
V+
V-
22
-22
Напряжение смещения (UСМ)мкВ:
25 макс.
Ток смешения (IСМ)нА
±40 макс.
Ток сдвига (IСДВ)нА
35 макс.
Коэффициент озлобления синфазного сигнала (КООС)
501190 макс. (144 Дб)
Коэффициент усиления при разомкнутой обратной связи
1800000
В систему сбора данных входят три линейных и один нелинейный датчики давления.
Выходной диапазон напряжения нелинейного датчика давления составляет -2.5..+2.5, в
входной диапазон АЦП – 0..+2.5. Согласовать уровни напряжения выхода датчика
давления и входа АЦП можно с помощью схемы представленной на рис. 4. Данная схема
состоит из: операционного усилителя – DA1, повторителя напряжения – DA2, схемы
смещения – R1 и R2, схемы защиты – VD1 и VD2.. Для того чтобы не нагружатьисточник
опорного напряжения в состав схемы нормирующего усилителя вводится повторитель
напряжения. Данная схема вносит в ССД погрешность.
Нормирующий усилитель
R1,R2 – 40 КОм,
R3 – 20 КОм.
VD1, VD2 – схема защиты
Рисунок 4
4.5.1 Расчет погрешностей нормирующего усилителя
Суммарная погрешность нормирующего усилителя складывается из погрешности
напряжения смещения (?Uсм), погрешности тока сдвига (?Iсдв), погрешности обратного тока
диодов (В схеме защиты используются диоды марки 1N914A с обратным током утечки IД
ОБР.=25 нА. Рассмотрим худший случай, когда IД ОБР.== 2*IД ОБР.) (?Iд обр.), погрешности
КООС (?КООС), погрешности разброса параметров сопротивлений от номинального
значения (?R1 R2 MAX).
Оценка погрешности от напряжения смещения (?Uсм)
?Uсм= Uсм*Ку
где Ку – коэффициент усиления (в нашем случае Ку=1)
?Uсм=25 мкВ
?Uсм%=
?Uсм%=0.001 %
Оценка погрешности от обратного тока диодов (?Iд обр )
U+д= IД ОБР.*R2
U+д=0.002
?Iд обр= U+д*Ку
?Iд обр=2 мВ
?Iд обр%=
?Iд обр%=0.0016
Оценка погрешности от КООС (?КООС)
,
где Кд – коэффициент усиления дифференциального сигнала (Кд=1);
КС – коэффициент усиления синфазного сигнала
КС=1/501190
КС=1.96*10-6
?КООС=UВХ СИН MAX*KC,
где UВХ СИН MAX – синфазное максимальное входное напряжение (UВХ СИН MAX=2.5 В).
?КООС=2.5*1.996*10-6
?КООС=7.7 мкВ
?КООС%=
?КООС%=0.0003
Оценка погрешности от тока сдвига (?Iсдв)
U+=IСДВ*R2
где U+ - см. рис.4
U+= 0.7 мкВ
?Iсдв= U+*Ку
?Iсдв=0.7 мкВ
?Iсдв%=
?Iсдв%=0.00004%
Оценка погрешности вносимой разбросам сопротивлений R1 и R2 от их номинального
значения.
Для того чтобы уменьшить погрешность выбираем сопротивления с отклонениями от
номинального значения ± 0.05%
R1MIN= 39,996 Ом
R2MAX=40,004 Ом
Ток протекаемый через R1 и R2 будет
И тогда общая погрешность нормирующего усилителя будет равна
?НУ=((?R1R1max+?Iсдв+?КООС+?Iд обр+?Uсм)/Ку)*100
?НУ=0.0277778 %
(1)
4.6 Выбор и расчет внешних элементов гальванической развязки
В качестве элементов гальванической развязки используется цифровая микросхема
249ЛП5 - оптоэлектронный переключатель на основе диодных оптопар выполненных в
металлостеклянном корпусе. основные характеристики цифровой микросхемы 249ЛП5
приведены в табл. 5.
Таблица 5
Основные характеристики цифровой микросхемы 249ЛП5
Электрические параметры
Входное напряжение при IВХ=15 мА
не более 1.7 В
Выходное напряжение в состоянии логического нуля
0.4 В
Выходное напряжение в состоянии логической единицы
2.4
Предельные эксплутационные данные
Входной постоянный ток
12 мА
Входной импульсный ток
15 мА
Напряжение питания
5(?0.5) В
Диапазон рабочих температур
-60…+85 ?С
VT1- КТ3102Г(h21Э=100),
R2, VT1 –схема усиления входного тока,
Рисунок 5
Выходной ток ДКД усиливается с помощью транзистора VT1 т.к. максимальный выходной
ток датчика контроля за давлением меньше, чем входной ток элемента гальвано развязки.
Значения сопротивления R1 можно рассчитать по следующей формуле
при IД=5 мА, а значение сопротивления R2 будет равно
где UБЭ VT1 – напряжение насыщения на переходе база - эмиттер транзистора VT1;UВХ_МIN –
минимальное входное напряжение (2.4 В - уровень ТТЛШ);
IБ – ток протекающий через базу VT1
где IК – ток протекающий через коллектор VT1 (IК= IД)
5. АПРОКСИМАЦИЯ СТАТИЧЕСКОЙ ХАРАКТЕРИСТИКИ НЕЛИНЕЙНОГО
ДАТЧИКА
Уравнение аппроксимированного участка статической характеристики нелинейного
датчика выглядит следующим образом:
U (p) = a*p + b,
(2)
где a и b – коэффициенты, представленные в форме чисел с фиксированной точкой.
С АЦП приходит 12-ти разрядный код в диапазоне 0..4095,что соответствует диапазону
входных напряжений 0 ...+2.5 В.
Разрешающую способность по напряжению можно рассчитать как:
U = код*МЗР(Младший Значащий Разряд)
(3)
где МЗР =
где UВХ MAX – максимальное входное напряжение подаваемое на вход АЦП;
UВХ MIN – минимальное входное напряжение подаваемое на вход
Выразив p из (2) и приняв во внимание (3), формула нахождения давления от напряжения
примет следующий вид:
Для уменьшения погрешности аппроксимации статическая характеристика нелинейного
датчика давления делится на 4 равных отрезка и находятся коэффициенты a и b (см. табл.6)
для уравнения вида p(код)=a*код+b описывающего каждый из этих отрезков.
Таблица 6
Таблица переведенных коэффициентов
№ участка
a10
b10
a16
b16
1
0.001203
0.010377
0.004edf
0.02a8
2
0.001206
0.007413
0.004f03
0.01e5
3
0.001219
-0.02094
0.004fe5
0.055c
4
0.001245
-0.101148
0.005197
0.19e4
Аппроксимация статической характеристики нелинейного датчика давления была
произведена с помощью программы MATHCAD 8.0 (см п.5)
5.1 Оценка погрешности аппроксимации
Оценка этой погрешности была произведена на программе MATHCAD 8.0 (см п.4), и она
составляет ?АПР=0.093 %
6. ВЫБОР ФОРМАТА ДАННЫХ
В курсовом проекте выбран формат чисел с фиксированной точкой.
Для коэффициентов a выделяется три байта под дробную часть и один байт под целую
часть, а для b два байта под дробную часть и один байт под целую часть Для кода
достаточно двух байт, а для результата три байта под целую и два байта под дробную
части соответственно.
6.1 Оценка погрешности от перевода коэффициентов
В соответствии с выбранным форматом данных данную погрешность можно найти так:
?пер.коэф=?k*код+?b=2-24*4096-2-16
?пер.коэф = 0.044 %
(4)
7. ОЦЕНКА ПОГРЕШНОСТЕЙ
При расчетах в курсовой работе мы оценили погрешности возникающие от АЦП,
аппроксимации, нормирующего усилителя и других. Суммарная погрешность всей ССД
равняется сумме найденных погрешностей, то есть:
?СУМ=?АЦП+?НУ+?АПР+?пер.коэф
где ?АЦП – погрешность вносимая от АЦП (см табл.4);
?НУ - погрешность от нормирующего усилителя (см. ф.(1));
?АПР - погрешность от аппроксимации(см.п.4);
?пер.коэф - погрешность от перевода коэффициентов (см. 4)
?СУМ=0,1098+??+0.093+0.044
8. РАСЧЕТ ПОТРЕБЛЯЕМОЙ МОШНОСТИ ОСНОВНЫМИ ЭЛЕМЕНТАМИ
СХЕМЫ
Примерную потребляемую мощность можно найти по формуле
где РМП – мощность потребляемая МП(РМП=0,1 Вт);
РАЦП - мощность потребляемая АЦП(РАЦП=0.0050 Вт);
РWDT - мощность потребляемая сторожевым таймером (РWDT=0.001);
PБУФ - мощность потребляемая буфером порта RS-232 (PБУФ=0.01);
PОУ - мощность потребляемая операционным усилителем (PОУ=0.09);
ПРИЛОЖЕНИЯ
Приложение 1
Точные значения кварцев
Кратность
Скорость передачи
(Кбод)
Частота кварца (МГц)
SMOD=0 (1/64)
SMOD=1 (1/32)
1
115,2
7,3728
3,6864
2
57,6
3,6864
1,8432
3
38,4
2,4576
1,2288
4
28,8
1,8432
0,9216
5
23,04
1,4746
0,73728
6
19,2
1,2288
0,6144
7
16,457142
1,053257
0,526628
8
14,4
0,9216
0,4608
9
12,8
0,8192
0,4096
10
11,52
0,73728
0,36864
12
9,2
0,6144
0,3072
Приложение 2
Возможные значения кварцев
SMOD=0
Кратность
Скорость передачи
(Кбод)
Частота кварца (МГц)
SMOD=0 (1/64)
SMOD=1 (1/32)
1
115,2
7,366503
7,378725
2
57,6
3,673807
3,698251
3
38,4
2,438711
2,475377
4
28,8
1,818014
1,866903
5
23,04
1,443078
1,504189
6
19,2
1,191022
1,264355
7
16,457142
1,009183
1,094738
8
14,4
0,871229
0,969007
9
12,8
0,762533
0,872533
10
11,52
0,674317
0,796539
12
9,2
0,538844
0,685511
SMOD=1
Кратность
Скорость передачи
(Кбод)
Частота кварца (МГц)
SMOD=0 (1/64)
SMOD=1 (1/32)
1
115,2
3,683252
3,689363
2
57,6
1,836904
1,849126
3
38,4
1,219356
1,237689
4
28,8
0,909007
0,933452
5
23,04
0,721539
0,752095
6
19,2
0,595511
0,632178
7
16,457142
0,504592
0,547369
8
14,4
0,435615
0,484504
9
12,8
0,381267
0,436267
10
11,52
0,337159
0,398270
12
9,2
0,269422
0,342756
Приложение 5
Подпрограмма инициализации
MOV SCON,#10010000b ; устанавливается второй режим УАПП
SETB 87h,1 ;SMOD=1
MOV IP,#00010000b ;высокий уровень приоритета прерывания у приема передатчика
MOV IE,#10010000b ; разрешаем прерывания
Подпрограмма записи 12-ти бит в управляющий регистр AD7890
SETB P1.2 ;Устанавливаем линию SCLK
SETB P1.4; Устанавливаем линию TFS
MOV R1,0Ch ; организовываем счетчик переданных бит (12)
MOV A,R0 ; загружаем а аккумулятор передаваемые биты
MET0:RRC A ; проталкиваем во флаг С передаваемый бит
MOV P1.1,C ; выставляем передаваемый бит на Р1.1
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
DJNZ R2,MET0
CPL P1.4
Подпрограмма задержки на 0.006 сек.
DELAY:MOV R0,C8h
MET1:NOP
DJNZ R0,MET1
RET
Подпрограмма задержки на 0.6 сек.
DELAY2:MOV R0,Ah
`MOV R1,Ah
MET1:NOP
MET2:NOP
DJNZ R1,MET2
DJNZ R0,MET1
RET
Подпрограмма работы сWDT
ACALL DELAY2 ;ожидаем
CPL P1.6
ACALL DELAY2 ;ожидаем
CPL P1.6
Подпрограмма чтения 15-ти бит с линии DATA OUT AD7890
SETB P1.2 ;Устанавливаем линию SCLK
SETB P1.3; Устанавливаем линию RFS
MOV R2,08h ; организовываем счетчик принятых бит в аккумулятор (если R2=0 –
аккумулятор полный
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
MET0:MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
RLC A ; достаем из флага С принятый бит
DEC R2
JZ MET2 ; если байт принят R2=0
MOV R3,A ; тогда занесем из А в R3 принятый байт
CLR A ; и обнулим аккумулятор, если не принят то -
MET2:ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
ACALL DELAY ;ожидаем
DJNZ R2,MET0
MOV R2,07h ;приняли первые восемь бит, теперь приймем еще семь
CPL P1.2 ;инверсия Р1.2
MET3:MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
RLC A ; достаем из флага С принятый бит
DEC R2
JZ MET4
MOV R4,A
CLR A
MET4:ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
ACALL DELAY ;ожидаем
DJNZ R2,MET3 ;ну вот, и все готово младшая часть посылки находится (8 бит) в R3, а
старшая (7 бит) в R4
CPL P1.4
;Подпрограмма выбора коэффициентов нелинейного датчика
MOV DPL,00h
MOV DPH,04h
MOV A,#00001100b
ANL A,R0
RL A
RL A
CLR 0D4H
CLR 0D3H
MOV R0,#0AH
MOV R1,#04H
M1: MOV A,#06H
MOVC A,@A+DPTR
MOV @R0,A
INC R6
INC R0
DJNZ R1,M1
END
;Подпрограмма умножения двух байт (регистры R0, R1 - 1-ый банк) на три (регистры
;R2, R3, R4 - 1-ый банк ), результат помещается в R3, R4, R5, R6, R7 - 0-ой ;банк.
MOV R4,#0h
MOV R5,#0h
MOV R6,#0h
MOV R7,#0h
MOV R3,#0h
MOV R0,#10h
me1:SETB 0D3h
CLR 0D4h
MOV A,R0
RRC A
MOV R0,A
MOV A,R1
RRC A
MOV R1,A
JNC me2
MOV A,R4
ADD A,5h
MOV 5h,A
MOV A,R3
ADDC A,4h
MOV 4h,A
MOV A,R2
ADDC A,3h
MOV 3h,A
me2:CLR 0D4h
CLR 0D3h
MOV A,R4
RRC A
MOV R4,A
MOV A,R5
RRC A
MOV R5,A
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
DJNZ r0,MET1
;Подпрограмма сложения пяти байт(R3, R4, R5, R6, R7 - 0-ой банк.
;) с двумя (R2(0Dh),R3(0Eh) - 0-ый банк), результат помещается в R3(13h), ;R4(14h),
R5(15h), R6(16h), R7(17h) - 2-ой банк.
CLR 0D3H ;
CLR 0D4H ;
MOV A,R5
ADD A,R3
MOV 12H,A
MOV A,R4
ADDC A,R2
MOV 11H,A
JNC M1
MOV A,#01
ADD A,11H
MOV 11H,A
JNC M1
MOV A,#01H
ADD A,10H
MOV 10H,A
MOV 14h,0Ch
MOV 13h,0Bh
M1:CLR 0D3H
SETB 0D4H
END
Подпрограмма передачи пяти байт находящихся в R3 R4 R5 R6 R7.
;Выбор второго банка
SETB 0D4h
CLR 0D3h
;Передача первого байта данных
MOV A,R7
MOV C,P;Р - бит четности аккумулятора
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b ;Выставляется приоритет прерываний
NOP
NOP
NOP
;Передача 2 байта данных
MOV A,R6
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 3 байта данных
MOV A,R5
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 4 байта данных
MOV A,R4
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 5 байта данных
MOV A,R3
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
END