Рефераты. Проектирование системы сбора данных p>|U (p) = a*p + b, |(2) |

где 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);

[pic]

ПРИЛОЖЕНИЯ


Приложение 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

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

8.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Каталог по интегральным микросхемам фирмы ANALOG DEVICES за 1996 год.
-----------------------
[1] В качестве источника опорного напряжения будет использоваться внутреннее опорное напряжение интегральной микросхемы AD7890. Вклад погрешности вносимой источником опорного напряжения учитываться не будет.


-----------------------
Ожидается запрос от ПК (требуется рассчитать и передать давление с датчика

N)

НАЧАЛО


[pic]

АЦП преобразовывает сигнал с ДД в двоичный код и передает этот код в

МП(по инициативе МП)

Передача от МП в АЦП данных (переключение нужного канала и запуск преобразования )

МП выполняет программу расчета давления и передает найденное давление В ПК по RS-232

КОНЕЦ

[pic]

[pic]

–??/???????–??/????????–??/????????[pic]

[pic]

[pic]


Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.