5.1 Оценка погрешности аппроксимации
Оценка этой погрешности была произведена на программе MATHCAD 8.0 (см п.4), и она составляет DАПР=0.093 %
6. ВЫБОР ФОРМАТА ДАННЫХ
В курсовом проекте выбран формат чисел с фиксированной точкой.
Для коэффициентов a выделяется три байта под дробную часть и один байт под целую часть, а для b два байта под дробную часть и один байт под целую часть Для кода достаточно двух байт, а для результата три байта под целую и два байта под дробную части соответственно.
6.1 Оценка погрешности от перевода коэффициентов
В соответствии с выбранным форматом данных данную погрешность можно найти так:
Dпер.коэф=Dk*код+Db=2-24*4096-2-16
Dпер.коэф = 0.044 % | (4) |
7. ОЦЕНКА ПОГРЕШНОСТЕЙ
При расчетах в курсовой работе мы оценили погрешности возникающие от АЦП, аппроксимации, нормирующего усилителя и других. Суммарная погрешность всей ССД равняется сумме найденных погрешностей, то есть:
DСУМ=DАЦП+DНУ+DАПР+Dпер.коэф
где DАЦП – погрешность вносимая от АЦП (см табл.4);
DНУ - погрешность от нормирующего усилителя (см. ф.(1));
DАПР - погрешность от аппроксимации(см.п.4);
Dпер.коэф - погрешность от перевода коэффициентов (см. 4)
DСУМ=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);
Кратность | Скорость передачи (Кбод) | Частота кварца (МГц) | |
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 ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ
Да
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 сек.
MET1: NOP
DJNZ R0,MET1
RET
Подпрограмма задержки на 0.6 сек.
` 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