Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
zapiska (2).doc
Скачиваний:
60
Добавлен:
11.05.2015
Размер:
324.61 Кб
Скачать

7.3 Пропускная способность канала

Пропускная способность для симметричного дискретного канала телеизмерения рассчитывается по формуле 7.10

(7.10)

Где техническая скорость передачи информации.

Следовательно пропускная способность равна:

С=9600*0,99=9504 дв.ед./с

7.4 Расчет надежности

Надежность – свойство изделия выполнять определенные задачи в определенных условиях эксплуатации, т.е. надежность есть внутреннее свойство изделия, включающее в свою очередь такие свойства, как безотказность, долговечность, ремонтопригодность и сохраняемость

В основе понятия надежности лежит понятие отказа. Отказом называется событие, заключающееся в нарушении работоспособности объекта.

В практических расчетах вероятностью безотказной работы определяют по формуле:

, (7. 11)

где t – заданное время работы изделия.

– интенсивность отказов системы

Произведем расчет количественных показателей надежности спроектированной системы. Данные для расчета занесем в таблицу 8.1

Таблица 8.1

Тип элемента

λ, 1/час

Кол-во, шт

λi, 1/час

Цифровые интегральные микросхемы

2,50E-07

20

5,00E-06

Конденсаторы керамические

8,00E-08

20

1,60E-06

Резисторы постоянные компазиционные

5,00E-08

20

1,00E-07

Разъем штепсельный

3,00E-09

4

1,20E-08

Кварцевые резонаторы

5,00E-07

2

1,00E-06

Пайка ручная

5,00E-10

1000

5,00E-07

λсх=

2,09E-05

Наработка до отказа (7.12)

Вероятность безотказной работы при времени работы системы, равном 10000ч., будет:

(7.13)

Следовательно, вероятность отказа составит

Q=1-P=1-0,81=0,08 (7.14)

8 Разработка программногоо обеспечения

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

8.1 Программное обеспечение кп

.equ SpisOldIzm=100;адрес списка переданных измерений

.equ AdrSpisIzm=200; адрес списка активных измерений

.equ AdrSpisAdr=300; адрес списка активных датчиков

.equ=$ff;код синхрокода

.equ=$fE;код конца блока

.equ=$ff;код конца

.equ ND=11;

.def r16= tmp;

.def r17= CarIzm; т

.def r18= AD;

.def r19=Izm;

.def r20=carAD;

.def r21=nact;

.def=r22=cnt;

Start: сall getData;получение данных их ЛС

Mov tmp,r1;

Cpi tmp,sk;сравнивание с синхкрокодом

Brne start;

LDI AD,0;первый адрес датчика

Ldi nact,0;обнуление счетчика активных датчиков

FormSpis: call GetIzm;получение измерения с АЦП

Mov R1, CarIzm;

LD oldIzm, X+; загрузка измерения из памяти

Sub R1, oldIzm; вычитание

Call abs; получение абсолютного значения разницы

Mov tmp,r1;

Cpi tmp,ust; сравнение с уставкой

Brcs NextAD; если уставка больше переход к следующему датчику

ST Z+, CarIzm; если разница больше уставки запись значения в список

St Y+, AD; адрес в список

Dec XL;

St X, CarIzm; новое значение в память

Inc XL;

Inc nact; увеличение счетчика активных датчиков

NextD:Inc AD; увеличение адреса датчиков

Cpi AD, ND ; сравнение адреса с числом датчиков в системе

Brne FormSpis; если опрошены не все переход к следующему

;формирование посылки

FormPos:

ldi ZL,low(AdrSpisIzm); указатели на начало списка

ldi ZH, high(AdrSpisIzm);

ldi YL,low(AdrSpisAdr);

ldi YH, high(AdrSpisAdr);

LD AD, Y+; первый адрес из списка

LD Izm,Z+; первый код измерения из списка

Call del; удаление текущей записи из списка

Mov R1, Izm;

Call SendData; передача измерения

Call cod;кодирование

Call SendData;передача контрольных символов

Mov R1, AD;

Call SendData;передача адреса

Call cod;

Call SendData; передача контрольных символов

Dec cnt;

Dec nact;

Mov cnt, nact; в счетчик количество записей в списке

Sravn: LD carAD, Y+; очередной адрес из списка

LD carIzm,Z+;очередное измерение из списка

Sub carIzm, Izm;вычитание

Call abs; получение абсолютного значение разницы

Mov tmp,r1;

Cpi tmp,ust;сравнение с уставкой

Brcs NextD; если меньше уставки к следующей записи

Dec nact; если больше уменьшение счетчика записей

Mov r1, carAD;

Call SendData; отправка адреса

Call cod;

Call SendData;

Call delZap; удаление записи

FPNextD: Dec cnt; уменьшение счетчика

Brne Sravn; если не ноль, обработка следующей записи

Mov R1, KKB;

Call SendData; передача кода конца блока

Tst nact; проверка значения количества записей в списке

Brne FormPos; если не ноль формирование следующего блока

Rjmp SRART; если обработанао все переход к отправке синхрокода

;---чтение информации с датчика

GetIzm:

.def MASKCS=r24;

.def MASKEOC=r25;

;определение микросхемы АЦП к которой будет идти обращения

;в зависимости от адреса датчика выбирается маска для сигнала CS и проверки EOC

mov tmp,zD;

andi tmp, 0b11110000 ;выделяем старшую тетраду

ldi MASKCS,0b11111110;

ldi MASKEOC,0b00010000;

cpi tmp,0b00000000 ; первые 16 датчиков

breq OPRSTART

ldi MASKCS,0b11111101;

ldi MASKEOC,0b00100000;

cpi tmp,0b00010000 ; 16-31

breq OPRSTART

ldi MASKCS,0b11111011;

ldi MASKEOC,0b01000000;

OPRSTART:

Out portD, MASKCS ; генерация сигнала CS

ldi tmp,0xb0 ;конфигурация SPI

out ddrb,tmp

ldi tmp,(1<<spe0)|(1<<mstr0);

out spcr0, tmp;

ldi tmp,(1<<1)+(1<<2) ;код операции

out spdr0, tmp ; передача кода операции по spi

sbi portb,4

OPROSD_w1:

in tmp2,spsr0 ;чтение регистра состояния

andi tmp,1<<spif0 ;байт передан

breq OPROSD_w1 ;ожидание пока не передан

out spdr0, ZD ; передача адреса датчика

OPROSD_w2: ;ожидание передачи

in tmp,spsr0;

andi tmp,1<<spif0;

breq OPROSD_w2

OPROSD_w3:

in tmp, portD ; ожидание конца преобразования EOC по требуемому входу

and tmp, MASKEOC ; сравнение с маской

brne OPROSD_w3 ;ожидание если не ноль

OPROSD_w4: ;чтение результата из АЦП в МК

in tmp3,spsr0

andi tmp3,1<<spif0;

breq w3;

in dD,spdr0 ;результат преобразования

ldi tmp,0b11111111 ; запрет работы микросхем АЦП

out portB,tmp;

ret

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]