где a и b – коэффициенты, представленные в форме чисел с фиксированной точкой. С АЦП приходит 12-ти разрядный код в диапазоне 0..4095,что соответствует диапазону входных напряжений 0 ...+2.5 В. Разрешающую способность по напряжению можно рассчитать как:
|U = код*МЗР(Младший Значащий Разряд) |(3) |
где МЗР =[pic] где UВХ MAX – максимальное входное напряжение подаваемое на вход АЦП;
UВХ MIN – минимальное входное напряжение подаваемое на вход
[pic]
[pic] Выразив p из (2) и приняв во внимание (3), формула нахождения давления от напряжения примет следующий вид:
|[pic] |(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. РАСЧЕТ ПОТРЕБЛЯЕМОЙ МОШНОСТИ ОСНОВНЫМИ ЭЛЕМЕНТАМИ СХЕМЫ Примерную потребляемую мощность можно найти по формуле
[pic][pic] где РМП – мощность потребляемая МП(РМП=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 |
Приложение 3 ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ
Нет
Да
Приложение 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
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
RET
Подпрограмма работы сWDT
ACALL DELAY2 ;ожидаем
CPL P1.6
Подпрограмма чтения 15-ти бит с линии DATA OUT AD7890
SETB P1.3; Устанавливаем линию RFS
MOV R2,08h ; организовываем счетчик принятых бит в аккумулятор
(если R2=0 – аккумулятор полный
MET0: MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
RLC A ; достаем из флага С принятый бит
DEC R2
JZ MET2 ; если байт принят R2=0
MOV R3,A ; тогда занесем из А в R3 принятый байт
CLR A ; и обнулим аккумулятор, если не принят то - MET2: ACALL DELAY ;ожидаем
MOV R2,07h ;приняли первые восемь бит, теперь приймем еще семь
CPL P1.2 ;инверсия Р1.2 MET3: MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
JZ MET4
MOV R4,A
CLR A MET4: 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
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
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,R5
MOV R5,A
MOV A,R6
MOV R6,A
MOV A,R7
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 ;
ADD A,R3
MOV 12H,A
ADDC A,R2
MOV 11H,A
JNC M1
MOV A,#01
ADD A,11H
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 C,P ;Р - бит четности аккумулятора
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b ;Выставляется приоритет прерываний
NOP
NOP ;Передача 2 байта данных
MOV C,P
MOV IE,#10010000b
NOP ;Передача 3 байта данных
NOP ;Передача 4 байта данных
NOP ;Передача 5 байта данных
END
8.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Каталог по интегральным микросхемам фирмы ANALOG DEVICES за 1996 год. ----------------------- [1] В качестве источника опорного напряжения будет использоваться внутреннее опорное напряжение интегральной микросхемы AD7890. Вклад погрешности вносимой источником опорного напряжения учитываться не будет.
----------------------- Ожидается запрос от ПК (требуется рассчитать и передать давление с датчика
N)
НАЧАЛО
АЦП преобразовывает сигнал с ДД в двоичный код и передает этот код в
МП(по инициативе МП)
Передача от МП в АЦП данных (переключение нужного канала и запуск преобразования )
МП выполняет программу расчета давления и передает найденное давление В ПК по RS-232
КОНЕЦ
–??/???????–??/????????–??/????????[pic]
Страницы: 1, 2, 3