- •1 Область применения системы и описание
- •2 Структура системы
- •2.1 Выбор структуры системы
- •2.2 Выбор линии связи
- •2.3 Выбор структуры сигналов
- •3 Алгоритм функционирования системы
- •3.1 Алгоритм функционирования контролируемого пункта
- •3.2 Алгоритм функционирования пункта управления
- •4 Разработка структурной схемы системы
- •4.1 Структурная схема контролируемого пункта
- •4.2 Структурная схема пункта управления.
- •5 Принципиальная электрическая схема системы
- •5.1 Выбор элементной базы системы
- •5.2 Принципиальная электрическая схема контролируемого пункта
- •5.3 Принципиальная электрическая схема пункта управления
- •6 Расчетная часть
- •6.1 Расчет частотных и временных параметров
- •6.2 Выбор и расчет линии связи
- •7 Системные расчеты
- •7.1 Расчет помехоустойчивости
- •7.2 Спектр сигнала линии связи
- •7.3 Пропускная способность канала
- •7.4 Расчет надежности
- •8 Разработка программногоо обеспечения
- •8.1 Программное обеспечение кп
- •7.2 Программное обеспечение пу
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