Разработка микропроцессорной системы автоматической переездной сигнализации

Принципиальные схемы вычислительного канала, устройств сравнения и контроля, безопасного ввода информации. Разработка алгоритма управления состоянием переезда, передачи и программного обеспечения. Расчет показателей безотказности и безопасности системы.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 08.02.2014
Размер файла 822,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Белорусский государственный университет транспорта

Кафедра «Микропроцессорная техника и информационно-управляющие системы»

Курсовой проект

по дисциплине

"Микропроцессорные информационно-управляющие системы"

на тему

"Разработка микропроцессорной системы автоматической переездной сигнализации"

Выполнил: ст. гр. ЭМ-51 Куприенко А.Н.

Гомель 2013

Введение

В настоящее время в нашей стране используются только релейные системы железнодорожной автоматики и телемеханики (СЖАТ). Однако уже с 80-х годов по всему миру внедряются микропроцессорные СЖАТ, имеющие следующие преимущества: резервирование технических средств, обеспечивающее надежное функционирование системы при выходе из строя отдельных компонентов, построение системы из отдельных независимых модулей с простой структурой, значительно меньшие масса и габариты модулей системы, что снижает затраты на их размещение, более простое техническое обслуживание и меньшие эксплуатационные расходы [1]. Поэтому микроэлектронная, микропроцессорная и компьютерная техника определяет на ближайшее будущее развитие средств СЖАТ.

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

Исходя из сказанного, в данном проекте разработана микропроцессорная система автоматической переездной сигнализации.

Разрабатываемая микропроцессорная централизация должна соответствовать существующим нормам безопасности, предъявляемых к СЖАТ.

1. Разработка структурной схемы

В основу разрабатываемой безопасной МПС положена структура троированной (мажоритарной) системы с умеренными связями. Основа такой системы состоит из трех идентичных вычислительных каналов (ВК1, ВК2 и ВК3) (рисунок 1) и безопасного мажоритарного элемента (БМЭ). Кроме этого, в настоящей схеме присутствуют устройства сопряжения с объектом управления (УСО Х) и (УСО Y).

Рисунок 1 - Структурная схема разрабатываемой МС

Работа каналов синхронизирована по входам и выходам, т. е. входная информация X считывается одновременно всеми каналами, а результаты обработки Y1, Y2 или Y3 одновременно поступают на входы безопасного мажоритарного элемента (БМЭ). БМЭ сравнивает эти сигналы и формирует сигнал сброса Ri отказавшего i-го канала, сигнал которого Yi не совпадает с двумя другими. Безопасность такой структуры сравнима с безопасностью дублированной структуры с умеренными связями, но отказоустойчивость ее выше.

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

В качестве датчиков входной информации используются: 3 путевых реле, воспринимающие информацию с рельсовых цепей, 4 огневых реле, контроль питания фидеров.

В качестве объектов управления выступают реле управления переездными светофорами и телесигнализация о состоянии системы.

2. Разработка принципиальных электрических схем

2.1 Разработка принципиальной электрической схемы вычислительного канала

Вычислительные каналы разрабатываемой системы построены с использованием программируемых логических интегральных схемах (ПЛИС) Xilinx Spartan-II.

Программируемые логические интегральные схемы (ПЛИС) благодаря своим преимуществам являются наиболее перспективной элементной базой цифровой электроники. Фирма Xilinx, используя достижения передовых технологий, выпускает семейства ПЛИС с различной архитектурой, которые позволяют создавать в сжатые сроки цифровые системы с различным уровнем сложности и степенью интеграции[4].

В 1985 г. фирма Xilinx представила новый тип логических микросхем - перепрограммируемые пользователем базовые матричные кристаллы (Field Programmable Gate Array, или FPGA). Эти микросхемы предоставили разработчику электронных устройств преимущества использования стандартных базовых матричных кристаллов (БМК), при этом появилась возможность проектировать, конфигурировать, отлаживать, исправлять ошибки и реконфигурировать микросхему непосредственно на рабочем месте, что добавило гибкости и значительно сократило время выхода устройства на рынок готовой продукции.

Конфигурационная последовательность (bitstream) может быть загружена в ПЛИС FPGA непосредственно в системе и перегружена неограниченное число раз. Инициализация ПЛИС производится автоматически из загрузочного ПЗУ Xilinx при подаче напряжения питания или принудительно по специальному сигналу. Процесс инициализации занимает от 20 до 200 мс, в течение которых выводы ПЛИС находятся в высокоомном состоянии (подтянуты к логической единице).

Выпуск нового семейства ПЛИС Spartan™-3 с архитектурой FPGA начат в апреле 2003 г. Семейство специально разработано для использования в электронных устройствах, рассчитанных на большие тиражи и невысокую стоимость комплектующих.

Архитектура ПЛИС семейства Spartan-З содержит 5 фундаментальных программируемых элементов:

- Конфигурируемый логический блок (КЛБ). На базе КЛБ реализуется комбинаторная и синхронная логика, включая базовые запоминающие элементы.

- Блок ввода-вывода (БВВ). БВВ осуществляют коммутацию выводов корпуса микросхемы с внутренней конфигурируемой логикой. БВВ поддерживают большинство сигнальных стандартов ввода-вывода, существующих в настоящее время.

- Блок памяти. Каждый блок может конфигурироваться как двухпортовое ОЗУ емкостью 18 кбит.

- Блок умножителя. Встроенный умножитель 18x18 бит.

- Цифровой блок управления синхронизацией (DCM - Digital Clock Manager).

Все эти элементы расположены в кристалле. Блоки ввода-вывода расположены вокруг регулярной матрицы конфигурируемых логических блоков. Каждый блок памяти ассоциирован с блоком умножения 18x18. Модули управления синхронизацией располагаются рядом с крайними столбцами памяти.

Одним из кристаллов этого семейства Spartan-2 является кристалл XC2S100. Его основные особенности:

· Высокопроизводительные, программируемые пользователем логические интегральные схемы с архитектурой FPGA (Field Programmable Gate Arrays);

· Ёмкость от 15 000 до 200 000 системных вентилей;

· Системная производительность до 200 МГц;

· Корпусировка в наиболее дешевые корпуса;

· Совместимость по выводам кристаллов разной ёмкости в одинаковых корпусах;

· Встроенные цепи управления тактированием;

· Четыре встроенных модуля автоподстройки задержек (DLL - delay-locked loop) для расширенного управления тактовыми сигналами как внутри ПЛИС, так и всего устройства;

· Иерархическая система элементов памяти на базе 4-х входовых таблиц преобразования (4-LUT - Look-Up Table) конфигурируемых либо как 16-ти битовая RAM (Random Access Memory), либо как 16-ти битовая двухпортовая RAM, либо как 16-ти битовый сдвиговый регистр;

· 92 пользовательских вывода

Тактовый сигнал на ПЛИС каждого канала и на ПЛИС БМЭ подаётся с микросхемы-генератора с частотой 200 МГц.

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

Вычислительный канал осуществляет приём релейной информации, проверку её корректности, выполнение алгоритма работы. Алгоритм работы вычислительного канала реализован на ПЛИС. Листинг программного обеспечения приведен в приложении А.

На микросхеме DD3.2 собран усилитель с коэффициентом усиления 4.8, который усиливает выходное значение амплитудой 5В. Коэффициент усиления по напряжению составляет: Кu =(R12/R11) + 1 = 10. Пусть R11= 2кОм, тогда R12=8кОм. Цепь коррекции ОУ состоит из корректирующего конденсатора С3 емкостью 33пФ.

Для согласования фидеров питания с ПЛИС применяется делитель напряжения. Значения сопротивлений R3=(Uвых R2)/(Uвх-Uвых).Примем значение сопротивления R3=1кОм, тогда R4=(5·1)/(24-5)=260 Ом. Соответственно R5=1кОм и R6=260 Ом.

2.2 Разработка принципиальных электрических схем устройств сравнения и контроля

В состав разрабатываемой безопасной МПС входит безопасный мажоритарный элемент (БМЭ). Он строится на базе известного устройства контроля шин трехканальной структуры, схема которого приведена на рисунке 2.

Рисунок 2 - Функциональная схема устройства сравнения шин трехканальной системы

При отказе одного из микропроцессоров выключаются два из трех контрольных реле. Например, при отказе первого канала отключатся реле Р12 и Р13, т. к. реле Р12 контролирует синхронную работу первого и второго каналов, а реле Р13 - первого и третьего каналов. С помощью контактов контрольных реле осуществляется дешифрация номера неисправного канала и его отключение (рисунок 3).

Рисунок 3- Схема дешифрации номера неисправного канала

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

Если до восстановления неисправного канала произойдет еще один отказ, то произойдет рассогласование работы двух оставшихся каналов. Это приведет к выключению последнего контрольного реле, которое выключит оба оставшихся питающих реле. Все три канала будут выключены и система перейдет в защитное состояние.

Модуль БМЭ состоит из двух основных блоков: первый представляет собой часть устройства сравнения шин трехканальной системы до CCBР, во второй присутствует остальная часть устройства сравнения шин трехканальной системы после CCBР, схема дешифрации номера неисправного канала и схема запуска рестарта неисправного канала.

Первая часть модуля БМЭ размещена в корпусе ПЛИС. Её структура приведена на рисунке 4. Выходы SSVR11-32 идут на ССВР, которые схематически расположены во втором блоке модуля БМЭ.

При исправной работе каналов на выходе фиксирующих элементов присутствует парафазный сигнал, а при неисправности - непарафазный.

Основу первого блока модуля БМЭ составляет фиксирующий элемент FE с программным восстановлением, схема которого приведена на рисунке 5.

PTGen - парафазный тактовый генератор, вырабатывающий импульсы с периодом 5 мс. Process_1 вырабатывает импульс начального сброса парафазного триггера ПТ1. Vosstan формирует импульсы восстановления состояния парафазного триггера ПТ2.

Рисунок 4 - Первая часть модуля БМЭ, созданная в ActiveHDL

Рисунок 5 - Модель фиксирующего элемента, созданная в ActiveHDL

В состав фиксирующего элемента, позволяющего различать сбои и отказы, входят: тестер 2/4-СПТ, парафазный тактовый генератор PTGen, парафазные триггеры ПТ1, ПТ2 и схема восстановления. При появлении запрещенной кодовой комбинации на входе фиксирующего элемента появляется не парафазный сигнал. Распространяясь по цепям фиксирующего элемента этот сигнал вызывает блокировку парафазных триггеров ПТ1 и ПТ2. С выходов триггера ПТ2 на схему восстановления поступает не парафазный сигнал, что влечет генерацию импульса восстановления для триггера ПТ1.

Рисунок 6 - Модель тестера 2/4 СПТ, созданная в ActiveHDL

Если к моменту выработки сигнала восстановления на вход фиксирующего элемента поступает разрешенная кодовая комбинация, то парафазный триггер ПТ1 сбрасывается и возобновляет нормальную работу. Парафазный триггер ПТ2 выйдет из заблокированного состояния по импульсу с Vosstan.

Если к моменту выработки сигнала восстановления на вход фиксирующего элемента все еще поступает неразрешенная кодовая комбинация, то триггер ПТ1 блокируется окончательно и на выход ФЭ поступает не парафазный сигнал, что влечет к рестарту неисправного канала.

При восстановлении работы канала после неисправности выход возврат к нормальной работе схемы осуществляется по двум импульсам с генератора Vosstan. Первого импульса недостаточно для того, чтобы восстановить работу парафазного триггера ПТ2 (так как на его входах присутствует не парафазный сигнал, поступающий с выходов парафазного триггера ПТ1), но достаточно для формирования сигнала восстановления ПТ1. По второму импульсу с генератора низкой частоты восстанавливается нормальная работа всей схемы контроля.

Основу ФЭ составляют тестер 2/4 СПТ (рисунок 6) и парафазный триггер (рисунок 7).

СПТ представляют собой кодовые детекторы, задача которых состоит в том, чтобы отличить кодовые комбинации, принадлежащие рассматриваемому коду, от остальных возможных комбинаций. СПТ реализуются в виде устройства с n входами и двумя выходами z1 и z2. Правильным входным вектором для тестера 2/4-СПТ считается код, вес которого равен двум (две единицы в коде).

Парафазный триггер (ПТ) представляет собой устройство, имеющее два парафазных информационных входа T0 и T1 и два выхода Q1 и Q0.

  • Парафазный триггер обладает следующими свойствами:
    • если на вход парафазного триггера поступает парафазный сигнал и сама схема ПТ исправна, то на его выходе также присутствует парафазный сигнал;
    • если на вход ПТ в любом такте его работы поступают одинаковые сигналы, то схема ПТ блокируется в защитном состоянии, и в том же такте на выходе устанавливаются одинаковые сигналы (00 или 11), которые сохраняются во всех последующих тактах работы независимо от состояния входов;
    • при возникновении в схеме ПТ одиночных неисправностей схема также блокируется в защитном состоянии;
    • вывод схемы из защитного состояния возможен только по цепям установки и сброса (S или R).
    • Парафазный триггер состоит из четырех бистабильных ячеек памяти Y1, Y2, Y3 и Y4. При кратковременной подаче логического нуля на вход R и наличии сигналов T1T0=01 схема переходит в устойчивое состояние 0110 (состояние «0» триггера). При подаче логического нуля на вход S и наличии сигналов T1T0=01 схема переходит в устойчивое состояние 1001 (состояние «1» триггера). Полный цикл работы триггера происходит на входной последовательности сигналов T1T0 вида 01,10,01,10,01. При этом схема последовательно все свои состояния: 01101010100101010110.

Рисунок 7 - Модель парафазного триггера, созданная в ActiveHDL

В качестве ССВР используется стандартная схема УВИР на основе выпрямителя с умножением напряжения, которая приведена на рисунок 8.

Для обеспечения синфазности сигналов на информационных входах УВИР один из сигналов подается через инвертор.

Входные сигналы от контролируемого устройства в виде прямоугольных импульсов поступают на прямой и инверсный входы двухполюсного ключа (ДПК) на транзисторах VT1-VT3. При парафазности сигналов, поступающих от разных датчиков, на входе выпрямителя с умножителем напряжения (ВУН), собранного на элементах C1-C6, VD1-VD6, появляется переменное прямоугольное напряжение, амплитуду которого выбирают меньшей, чем напряжение отпускания исполнительного реле. ВУН выпрямляет и умножает исходное напряжение до уровня, необходимого для работы реле, при поступлении нескольких импульсов.

Рисунок 8 - УВИР на основе выпрямителя с умножением напряжения

Повреждение любого элемента ведёт к прекращению умножения напряжения либо снижению выходного напряжения ВУН и исключает возможность ложного притяжения или удержания якоря реле. В случае повреждения трёх и более элементов к реле может быть подключён один из источников ДПК, однако его напряжения недостаточно не только для притяжения, но и для удержания якоря реле во включённом состоянии. Временная диаграмма работы схемы изображена на рисунке 9.

На реле Р1, Р2, Р3 собрана схема дешифрации номера неисправного канала. Когда все каналы работают исправно, контакты Р1-Р3 разомкнуты, на линии Restart1-3 подается логическая `1', т.е. рестарта не происходит, поскольку бесконечный рестарт формируется по сигналу логического `0'. Вместе с этим на инверторы DD17.4-DD17.6 подается логический `0' и светодиоды, сигнализирующие о неисправности каналов, не горят.

Рисунок 9 - Временная диаграмма работы УВИР

Выход из строя канала 1-3 ведет к обесточиванию соответствующего реле (Р1-Р3).

При отказе, например, 1-го канала реле Р1 обесточится, контакт Р1 будет замкнут, на линии Restart1 появятся импульсы генератора, вызывая рестарт 1-го канала. Вместе с этим на выходе инвертора DD24.4 появятся импульсы от генератора, сдвинутые по фазе на 180o , что вызывает мигание светодиода VD52 с частотой 0.1Гц.

При восстановлении работы 1-го канала реле Р1 включится, контакт Р1 будет разомкнут, на линии Restart1 подается логическая `1', т.е. рестарта не произойдет, светодиод прекратит мигать.

Генератор импульсов состоит из трех инверторов, резистора и конденсатора. Используя формулу,

определим номиналы конденсатора и резистора. Пусть сброс неисправного канала происходит каждые 5 с, тогда выходная частота генератора f=1/10=0.1Гц, исходя из формулы, найдём номиналы резистора и конденсатора. Возьмём резистор номиналом 220 кОм и получим номинал конденсатора равным 15 мкФ.

В качестве реле К12, К23 и К13, Р1, Р2 и Р3 применены реле 1 класса надежности РЭЛ1-1600, сопротивление обмотки которых 800 Ом, напряжение отпускания 5В, напряжение срабатывания 16В.

Рассчитаем сопротивление резисторов R103, R104, R105:

,

где - напряжение и ток срабатывания реле.

,

тогда:

Ом.

Для надежного срабатывания реле выберем сопротивление резисторов чуть меньше требуемого, например. 390 Ом, тогда напряжение на реле при его срабатывании будет удерживаться немного большим 16В.

2.3 Разработка принципиальной электрической схемы устройств сопряжения с исполнительными объектами

Сигналы, управляющие работой реле К1 и К2, поступают с выходов каналов на входы УВИР, представленной на рисунке 10.

Рисунок 10 - Мажоритарное УВИР

При синхронном поступлении импульсных сигналов на входы 1, 2, 3 происходит заряд конденсаторов C1, C2, C3 в течение времени действия входных импульсов. Во время паузы они разряжаются на светодиоды оптопар VO1 и VO2 через резисторы R1, R2. При этом напряжение, воздействующее на них, равно сумме напряжений на конденсаторе и источнике питания. В результате этого фототранзисторы оптопар переключаются и формируют импульсы, поступающие на вход преобразователя полярности (элементы C4, C5, VD6, VD7). Поляризованное реле ИР притягивает якорь.

При отсутствии импульсов на двух входах из трех на светодиоды воздействует только напряжение заряда конденсаторов приблизительно в два раза меньшей величины, чем в случае синхронного поступления импульсных сигналов на все входы. В результате оптроны не переключаются, и ИР отпустит свой якорь. В данной схеме для обеспечения ее безопасного функционирования используются функции дифференцирования, удвоения напряжения и гальванической развязки. Временная диаграмма работы схемы при трёх активных входах изображена на рисунке 11, при двух -- на рисунке 12.

Рисунок 11 - Временная диаграмма работы УСО при трёх активных входах

Рисунок 12 - Временная диаграмма работы УСО при двух активных входах

В качестве реле К1 и К2 применены реле 1 класса надежности РЭЛ1-1600, сопротивление обмотки которых 800 Ом, напряжение отпускания 5В, напряжение срабатывания 16В.

В пакете OrCAD была собрана часть описанной схемы - УВИР с конденсаторной гальванической развязкой, которая приведена на рисунке 13, а временная диаграмма ее работы - на рисунке 14.

Рисунок 13 - Схема УВИР с конденсаторной гальванической развязкой, выполненная в пакете OrCAD

Рисунок 14 - Временная диаграмма работы УВИР

Как видно из временной диаграммы на пятом импульсе происходит включение реле при достижении напряжения порядка 16В. Напряжение 2В, отпирающее транзистор соответствует напряжению срабатывания оптронов VO1 и VO2 мажоритарного УВИР на рисунке 8.

2.4 Разработка принципиальной электрической схемы устройств безопасного ввода информации

Для обеспечения необходимой достоверности контрольной информации о состоянии исполнительных объектов в безопасных системах используются различные виды избыточного кодирования последовательного или параллельного вида. Устройства безопасного ввода информации изображено на рисунке 16.

На выходах устройства ввода информации T и не-T генерируются последовательности парафазных импульсов. Достоверность информации подтверждается парафазностью импульсных последовательностей, поступающих на входы А и В. Значение переменной X определяется следующим образом. Если на вход А приходит сигнал Т, а на вход В - сигнал не-Т, то контакт реле замкнут, в противоположном случае - контакт разомкнут.

Рисунок 16 - Устройства безопасного ввода информации

При неисправности нарушается парафазность или импульсный характер сигналов на входах А и В, что фиксируется с помощью программных или аппаратных средств контроля устройства ввода информации.

Для поступления парафазных импульсов Т и не-Т собран генератор на элементах DD1.1- DD1.4.

Генератор импульсов состоит из четырёх инверторов, резистора и конденсатора. Используя формулу,

определим номиналы конденсатора и резистора. Пусть опрос кнопки бдительности происходит каждые 5 мс, тогда выходная частота генератора f=1/0,01=100Гц, исходя из формулы, найдём номиналы резистора и конденсатора. Возьмём резистор номиналом 2,2 кОм и получим номинал конденсатора равным 1,5 мкФ.

Для контролирования цепи контроля торможения используется идентичная схема, в которой генератор собран на элементах DD1.5,DD1.6,DD2.1,DD2.2. Выходная частота генератора, номиналы резистор и конденсатора такие же. Опрос цепи каждые 5 мс достаточен для аварийного срабатывания системы.

2.5 Разработка принципиальной электрической схемы парафазного генератора

Для выбранной ПЛИС выберем генератор, который генерировал бы частоту 200МГц для тактирования схем системы. Для данных целей можно применить генератор и умножитель частоты в одном корпусе TL555. Схема генератора приведена на рисунке 17.

Рисунок 17 - Генератор импульсов

По данным указанным в Xilinx Application Note 078, примем C5=0.047F, R16=1M.

2.6 Разработка принципиальной электрической схемы согласования с линией

В разработанной МПС предусмотрена возможность передачи сигналов телесигнализации через линию связи внешней ЭВМ (например, на станции). Передача организована программно как отдельный процесс. Используемый интерфейс - RS-485. Приведение сигнала к уровню стандарта осуществляет чип MAX490. Он реализует связь в режиме полного дуплекса на расстояние до 1200 м. Назначение выводов приведено в таблице 1, схема подключения - на рисунке 18.

Таблица 1 - Назначение выводов МАХ490

Обозначение

Назначение

A

вход

B

выход

Vcc

питание +5В

RO

разрешение передачи

Z

вход

Y

выход

GND

земля

DI

разрешение приёма

Рисунок 18 - Схема сопряжения с линией

3. Разработка алгоритмов и программного обеспечения

3.1 Алгоритм работы подпрограммы считывания информации с реле

Алгоритм подпрограммы представлен на рисунке 19.

Рисунок 19 - Алгоритм работы подпрограммы считывания информации с реле

3.2 Алгоритм проверки и управления состоянием переезда

Алгоритм подпрограммы представлен на рисунке 20.

Рисунок 20 - Алгоритм проверки и управления состоянием переезда

3.3 Алгоритм передачи информации в линию

Алгоритм подпрограммы представлен на рисунке 21.

Рисунок 21 - Алгоритм передачи информации в линию

3.4 Алгоритм закрытия/открытия переезда

Алгоритм подпрограммы представлен на рисунке 22.

Рисунок 22 - Алгоритм закрытия/открытия переезда

3.5 Описание работы программы

Листинг программы ПЛИС приведен в приложении А. Далее в пункте изложены основные принципы организации вычислений и дано описание используемых портов, сигналов и процессов.

В начале программы объявлены все порты ввода и вывода информации:

· F1, F2 - входы, на которые подаётся напряжение +5В при наличии питания на фидерах и нулевое напряжение при его отсутствии.

· O1_T, O1_nT, O1_A, O1_B, O2_T, O2_nT, O2_A, O2_B, O3_T, O3_nT, O3_A, O3_B, O4_T, O4_nT, O4_A, O4_B - входы, на которые подаются импульсы от устройств безопасного ввода информации(c огневых реле ОР1 - ОР4).

· P1_T, P1_nT, P1_A, P1_B, P2_T, O2_nT, P2_A, P2_B, P3_T, P3_nT, P3_A, P3_B - входы, на которые подаются импульсы от устройств безопасного ввода информации(c путевых реле ПР1 - ПP3).

· K1, K2 - выходы управления переездными светофорами.

· SendInfo - вход, по которому осуществляется выдача информации о состоянии МПС АПС.

· Info - выход, по которому производится последовательная передача данных телесигнализации.

· Synchr - вход, сигнал синхронизации передачи.

· Zvuk - выход, по которому осуществляется звуковая сигнализация.

· Pereezd - выход, несущий информацию о состоянии переезда.

· FStatus - вектор, несущий информацию о состоянии фидеров питания.

Далее объявлены сигналы, используемые в программе:

· Close - сигнал, устанавливаемый при включении путевых реле, используемый далее в процессе включения переездной сигнализации и закрытии переезда.

· P1 - сигнал, устанавливаемый при включении путевого реле ПР1.

· P2 - сигнал, устанавливаемый при включении путевого реле ПР2.

· P3 - сигнал, устанавливаемый при включении путевого реле ПР3.

· O1 - сигнал, устанавливаемый при включении огневого реле O1.

· O2 - сигнал, устанавливаемый при включении путевого реле O1.

· O3 - сигнал, устанавливаемый при включении путевого реле O1.

· O4 - сигнал, устанавливаемый при включении путевого реле O1.

· CLK, ClkL, - внутренние тактирующие сигналы, используемые для реализации различного рода задержек. Назначение каждого из сигналов приведено в комментариях листинга.

При запуске программы все сигналы инициализируются в нуль.

Описание процессов.

· p1, p2, p3, o1, o2,o3,o4 - процессы, проверяющие состояние путевых и огневых реле.

Если приходит фронт сигнала Т производится четыре замера состояния на линиях Т, не-Т, А и В через 1.5, 3, 6.5 и 8 мс, т.е. по два в первый и второй полупериоды. Со следующим фронтом начинается новый цикл считывания. Состояние реле определяется следующим образом: если на вход А приходит сигнал Т, а на вход В - сигнал не-Т, то реле замкнуто, иначе - разомкнуто. При определении состояния реле устанавливается сигнал Blok=1. Если Blok=0, это говорит о нарушении парафазности или импульсного характера сигнала.

Рисунок 25 - Временная диаграмма работы процесса

· fiders. Процесс проверяет наличие напряжения на фидерах питания. Состояние о фидерах питания выдается по телесигнализации дежурному по переезду.

· ПР. Процесс, определяющий состояние переезда. При вступлении поезда на участок приближения выставляется сигнал на закрытие переезда. Далее вычисляется направление движения, и при выключении путевых реле разрешается открыть переезд.

· delayL. Процесс реализует изменение внутреннего тактирующего сигнала ClkL для мигания ламп переездных светофоров.

· closeP. Процесс реализует выполнение алгоритма закрытия переезда. Проверяет состояние сигналов Close и при наличии на нем выдаёт сигналы на включение ламп переездных светофоров и звуковой сигнализации в зависимости от состоянии сигнала ClkL.

· TS. Процесс выдачи в порт InfoOut информации телесигнализации. Выдаётся стартовый бит, четыре бита адреса для идентификации переезда, 6 бит данных телесигнализации, бит паритета и стоповый бит.

data (0) = O1;состояние огневого реле ОР1

data (1) = O2;состояние огневого реле ОР2

data (2) = O3;состояние огневого реле ОР3

data (3) = O4; состояние огневого реле ОР4

data (4) = Pereezd; состояние переезда

data(6 downto 5) := FStatus; состояние фидеров питания

При включении системы происходит инициализация внутренних сигналов, осуществляется считывание информации с входных портов и её обработка. Если какое-либо путевое реле включается, запускаются процессы, обеспечивающие алгоритмы закрытия переезда и включения переездной сигнализации. Также запускаются процессы, контролирующие включённое состояние огневых реле ламп переездных светофоров.

Каждый час дежурному по переезду выдается телесигнализация о состоянии системы.

4. Расчет показателей безотказности и безопасности системы

Основными показателями безотказности и безопасности системы являются:

-безотказность СЖАТ -- свойство системы непрерывно сохранять работоспособное состояние в течение некоторого времени или наработки. Показатели безотказности делятся на две группы: показатели невосстанавливаемых и восстанавливаемых изделий.

Невосстанавливаемые изделия -- изделия, поведение которых существенно лишь до первого отказа, -- характеризуются следующими количественными показателями надежности: интенсивностью отказов (t); вероятностью безотказной работы Р(t); вероятностью отказа Q(t); средней наработкой до отказа То.

Восстанавливаемые изделия -- изделия, эксплуатация которых допускает их многократный ремонт, -- характеризуется следующими количественными показателями надежности: параметрами потока отказов (t) и потока восстановлений (t); функцией готовности Кг(t); коэффициентом готовности Кг; средним временем работы между двумя отказами tср; средним временем восстановления tв.

Безопасность СЖАТ -- свойство системы непрерывно сохранять исправное, работоспособное или защитное состояние в течение некоторого времени или наработки. Показатели безопасности аналогичны показателям безотказности.

Для невосстанавливаемых систем рассчитывают следующие показатели: вероятность безопасной работы Рб(t); вероятность опасного отказа Qоп(t); интенсивность опасных отказов оп(t); среднюю наработку до опасного отказа Топ.

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

,

где P1, Pмэ - вероятности безотказной работы соответственно канала обработки информации и мажоритарного элемента МЭ;

n - число информационных выходов модуля.

Для разрабатываемой системы n=3.

Для вычислительного канала имеем:

Резисторы - 16 шт. = 1/ч

Конденсаторы - 13 шт. = 1/ч

Диоды - 5 шт. = 1/ч

Интегральные микросхемы - 6 = 1/ч

Для БМЭ:

Резисторы - 29 шт. = 1/ч

Конденсаторы - 20 шт. = 1/ч

Диоды - 21 шт. = 1/ч

Транзисторы - 9 шт. = 1/ч

Интегральные микросхемы - 3 = 1/ч

Реле - 6 шт. = 1/ч

Таким образом,

.

Вероятность безотказной работы за год составляет:

=2,56-1,679=0,881,

или 88,1%.

Вероятность появления опасного отказа в мажоритарном модуле определяется выражением:

, (2)

где Д - период диагностирования элементов модуля;

i - интенсивность отказов канала обработки информации.

Основной цикл программы и основные подпрограммы при размещении на кристалле занимают около 57000 системных вентилей ПЛИС. Учитывая, что значение средней задержки распространения сигнала равно 12нс, можно принять время максимального цикла примерно равное 57000*12нс.

Следовательно, для разработанной системы Д равняется примерно 684мкс или лет. i - есть суммарная интенсивность отказов, которая составляет:

i = 1/ч

или 0,049 1/лет

Таким образом вероятность опасного отказа за год составляет:

или %.

Полученная вероятность соответствует барьеру установленному стандартом. Это позволяет говорить о том, что систему можно считать безопасной.

вычислительный переезд программный безотказность

Заключение

В результате выполнения данного курсового проекта была разработана микропроцессорная система автоматической переездной сигнализации.

Разработаны принципиальные схемы вычислительных каналов, устройств сравнения и контроля, алгоритмы и программное обеспечение МИУС. Произведен необходимый расчет показателей безопасности и безотказности системы. Разработанная система полностью отвечает требованиям безопасности, предъявляемым к СЖАТ.

При проведении расчёта показателей безопасности и безотказности были получены следующие значения характеристик:

- вероятность безотказной работы Р=0.881;

- вероятность отказа системы (одновременное появление одинакового сбоя в двух вычислительных каналах) Q=1.110-14.

Достоинства данной структуры состоят в простоте реализации; высокой безопасности; высокой эксплуатационной готовности, т. к. при отказе одного из каналов система продолжает выполнять свои функции. Однако у данной системы имеются и свои недостатки: возможность накопления маскируемых отказов в вычислительных каналах; невозможность обнаружения ошибок в программном обеспечении, т. к. они одинаково проявляются во всех каналах.

Список литературы

Методы построения безопасных микроэлектронных систем железнодорожной автоматики / В.В. Сапожников, Вл. В. Сапожников, Х.А. Христов, Д.В. Гавзов; Под ред. Вл. В. Сапожникова. - М.: Транспорт, 1995. - 272 с.

РТМ 32 ЦШ 1115842.01-94. Безопасность железнодорожной автоматики и телемеханики. Методы и принципы обеспечения безопасности микроэлектронных СЖАТ. - СПб.: ПГУ ПС, 1994. - 120 с.

Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы. М.: Радио и связь, 1989.

XC2S100 Datasheet. Xilinx. 2001

Цифровые интегральные микросхемы. Справочник/ Богданович М.Н., Грель И.Н., Дубина С.А., Прохоренко В.А., Шалимо В.В. - Минск: Полымя, 1996. - 603 с.

Системы железнодорожной автоматики и телемеханики / Кравцов Ю.А., Нестеров В.Л. и др. - Учебник для ВУЗов. М.: Транспорт, 1996. 400 с.

вычислительный переезд программный безотказность

Приложение А

Листинг программы ПЛИС вычислительного канала

-- Title : mine

-- Design : work

-- Author : Alexey Kuprienko

-- Company : Home

--

-- File : mine.vhd

-- Generated : Sun Dec 4 17:21:15 2005

-- From : interface description file

-- By : Itf2Vhdl ver. 1.20

--

--------------------------------------------------------------------------------------------

-- Description : курсовой проект по МИУС Куприенко Алексея

--

--------------------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.all;

use IEEE.STD_LOGIC_ARITH.all;

use IEEE.STD_LOGIC_UNSIGNED.all;

entity mine is

Port

(

F1: in STD_LOGIC;-- контроль наличия напряжения на фидере 1

F2 : in STD_LOGIC;-- контроль наличия напряжения на фидере 2

CLK: in STD_LOGIC;

ClkL: in STD_LOGIC;

FStatus: out STD_LOGIC_VECTOR (1 downto 0);

SendInfo: in STD_LOGIC;

Pereezd: out STD_LOGIC;

P1_nT : in STD_LOGIC; -- P1 - Путевое реле 1

P1_A : in STD_LOGIC;

P1_B : in STD_LOGIC;

P1_T : in STD_LOGIC;

P2_nT : in STD_LOGIC; -- P2 - Путевое реле 2

P2_A : in STD_LOGIC;

P2_B : in STD_LOGIC;

P2_T : in STD_LOGIC;

P3_nT : in STD_LOGIC; -- P1 - Путевое реле 1

P3_A : in STD_LOGIC;

P3_B : in STD_LOGIC;

P3_T : in STD_LOGIC;

O1_nT : in STD_LOGIC; -- O1 - ОР1 переездного св.1

O1_A : in STD_LOGIC;

O1_B : in STD_LOGIC;

O1_T : in STD_LOGIC;

O2_nT : in STD_LOGIC; -- O2 - ОР2 переездного св.1

O2_A : in STD_LOGIC;

O2_B : in STD_LOGIC;

O2_T : in STD_LOGIC;

O3_nT : in STD_LOGIC; -- O3 - ОР1 переездного св.2

O3_A : in STD_LOGIC;

O3_B : in STD_LOGIC;

O3_T : in STD_LOGIC;

O4_nT : in STD_LOGIC; -- O4 - ОР2 переездного св.2

O4_A : in STD_LOGIC;

O4_B : in STD_LOGIC;

O4_T : in STD_LOGIC;

K1 : out STD_LOGIC;

K2 : out STD_LOGIC;

--K1,K2 -выходной вектор управления светофорами

Zvuk : out STD_LOGIC;

InfoOut : out STD_LOGIC;-- сигнал выдачи в линию информации о состоянии АПС

Synchr : in STD_LOGIC-- синхронизация передачи

);

end mine;

architecture mine of mine is

-- СПИСОК СИГНАЛОВ, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ

signal Close : STD_LOGIC :='0';-- закрыть переезд

signal P1 : STD_LOGIC :='0';-- ПР1 замкнуто

signal P2 : STD_LOGIC :='0';-- ПР2 замкнуто

signal P3 : STD_LOGIC :='0';-- ПР3 замкнуто

-- БЛОК СИГНАЛОВ, СООТВЕТСТВУЮЩИХ ПОРТАМ ПЛИС

signal O1: STD_LOGIC;

signal O2: STD_LOGIC;

signal O3: STD_LOGIC;

signal O4: STD_LOGIC;

begin

process

begin

CLK<=not CLK after 0.1 ms;

end process;

process

begin

Synchr<=not Synchr after 10 ns;

end process;

process

begin

SendInfo<=not SendInfo after 3600 s;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ПУТЕВОГО РЕЛЕ 1; ПРОИЗВОДИТСЯ ПОСТОЯННО

p1 : process

variable P1_T1,P1_T2,P1_T3,P1_T4 : STD_LOGIC;

variable P1_nT1,P1_nT2,P1_nT3,P1_nT4 : STD_LOGIC;

variable P1_A1,P1_A2,P1_A3,P1_A4 : STD_LOGIC;

variable P1_B1,P1_B2,P1_B3,P1_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P1_T'event and P1_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

P1_A1:=P1_A;

P1_B1:=P1_B;

P1_T1:=P1_T;

P1_nT1:=P1_nT;

wait for 1.5 ms;

P1_A2:=P1_A;

P1_B2:=P1_B;

P1_T2:=P1_T;

P1_nT2:=P1_nT;

wait for 3.5 ms;

P1_A3:=P1_A;

P1_B3:=P1_B;

P1_T3:=P1_T;

P1_nT3:=P1_nT;

wait for 1.5 ms;

P1_A4:=P1_A;

P1_B4:=P1_B;

P1_T4:=P1_T;

P1_nT4:=P1_nT;

if P1_A1=P1_T1 and P1_A2=P1_T2 and P1_T1=P1_T2 then

if P1_B1=P1_nT1 and P1_B2=P1_nT2 and P1_nT1=P1_nT2 then

if P1_A3=P1_T3 and P1_A4=P1_T4 and P1_T3=P1_T4 then

if P1_B3=P1_nT3 and P1_B4=P1_nT4 and P1_nT3=P1_nT4 then

if P1_A1/=P1_A3 and P1_A2/=P1_A4 then

Blok:='1';

P1<='1'; -- путевое реле 1 замкнуто

end if;

end if;

end if;

end if;

end if;

if P1_A1=P1_nT1 and P1_A2=P1_nT2 and P1_nT1=P1_nT2 then

if P1_B1=P1_T1 and P1_B2=P1_T2 and P1_T1=P1_T2 then

if P1_A3=P1_nT3 and P1_A4=P1_nT4 and P1_nT3=P1_nT4 then

if P1_B3=P1_T3 and P1_B4=P1_T4 and P1_T3=P1_T4 then

if P1_A1/=P1_A3 and P1_A2/=P1_A4 then

Blok:='1';

P1<='0'; -- путевое реле 1 разомкнуто

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0' then

P1<='0';

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ПУТЕВОГО РЕЛЕ 2; ПРОИЗВОДИТСЯ ПОСТОЯННО

p2 : process

variable P2_T1,P2_T2,P2_T3,P2_T4 : STD_LOGIC;

variable P2_nT1,P2_nT2,P2_nT3,P2_nT4 : STD_LOGIC;

variable P2_A1,P2_A2,P2_A3,P2_A4 : STD_LOGIC;

variable P2_B1,P2_B2,P2_B3,P2_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P2_T'event and P2_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

P2_A1:=P2_A;

P2_B1:=P2_B;

P2_T1:=P2_T;

P2_nT1:=P2_nT;

wait for 1.5 ms;

P2_A2:=P2_A;

P2_B2:=P2_B;

P2_T2:=P2_T;

P2_nT2:=P2_nT;

wait for 3.5 ms;

P2_A3:=P2_A;

P2_B3:=P2_B;

P2_T3:=P2_T;

P2_nT3:=P2_nT;

wait for 1.5 ms;

P2_A4:=P2_A;

P2_B4:=P2_B;

P2_T4:=P2_T;

P2_nT4:=P2_nT;

if P2_A1=P2_T1 and P2_A2=P2_T2 and P2_T1=P2_T2 then

if P2_B1=P2_nT1 and P2_B2=P2_nT2 and P2_nT1=P2_nT2 then

if P2_A3=P2_T3 and P2_A4=P2_T4 and P2_T3=P2_T4 then

if P2_B3=P2_nT3 and P2_B4=P2_nT4 and P2_nT3=P2_nT4 then

if P2_A1/=P2_A3 and P2_A2/=P2_A4 then

Blok:='1';

P2<='1'; -- путевое реле 2 замкнуто

end if;

end if;

end if;

end if;

end if;

if P2_A1=P2_nT1 and P2_A2=P2_nT2 and P2_nT1=P2_nT2 then

if P2_B1=P2_T1 and P2_B2=P2_T2 and P2_T1=P2_T2 then

if P2_A3=P2_nT3 and P2_A4=P2_nT4 and P2_nT3=P2_nT4 then

if P2_B3=P2_T3 and P2_B4=P2_T4 and P2_T3=P2_T4 then

if P2_A1/=P2_A3 and P2_A2/=P2_A4 then

Blok:='1';

P2<='0'; -- путевое реле 2 разомкнуто

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0' then

P2<='0';

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ПУТЕВОГО РЕЛЕ 3; ПРОИЗВОДИТСЯ ПОСТОЯННО

p3 : process

variable P3_T1,P3_T2,P3_T3,P3_T4 : STD_LOGIC;

variable P3_nT1,P3_nT2,P3_nT3,P3_nT4 : STD_LOGIC;

variable P3_A1,P3_A2,P3_A3,P3_A4 : STD_LOGIC;

variable P3_B1,P3_B2,P3_B3,P3_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P3_T'event and P3_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

P3_A1:=P3_A;

P3_B1:=P3_B;

P3_T1:=P3_T;

P3_nT1:=P3_nT;

wait for 1.5 ms;

P3_A2:=P3_A;

P3_B2:=P3_B;

P3_T2:=P3_T;

P3_nT2:=P3_nT;

wait for 3.5 ms;

P3_A3:=P3_A;

P3_B3:=P3_B;

P3_T3:=P3_T;

P3_nT3:=P3_nT;

wait for 1.5 ms;

P3_A4:=P3_A;

P3_B4:=P3_B;

P3_T4:=P3_T;

P3_nT4:=P3_nT;

if P3_A1=P3_T1 and P3_A2=P3_T2 and P3_T1=P3_T2 then

if P3_B1=P3_nT1 and P3_B2=P3_nT2 and P3_nT1=P3_nT2 then

if P3_A3=P3_T3 and P3_A4=P3_T4 and P3_T3=P3_T4 then

if P3_B3=P3_nT3 and P3_B4=P3_nT4 and P3_nT3=P3_nT4 then

if P3_A1/=P3_A3 and P3_A2/=P3_A4 then

Blok:='1';

P3<='1'; -- путевое реле 3 замкнуто

end if;

end if;

end if;

end if;

end if;

if P3_A1=P3_nT1 and P3_A2=P3_nT2 and P3_nT1=P3_nT2 then

if P3_B1=P3_T1 and P3_B2=P3_T2 and P3_T1=P3_T2 then

if P3_A3=P3_nT3 and P3_A4=P3_nT4 and P3_nT3=P3_nT4 then

if P3_B3=P3_T3 and P3_B4=P3_T4 and P3_T3=P3_T4 then

if P3_A1/=P3_A3 and P3_A2/=P3_A4 then

Blok:='1';

P3<='0'; -- путевое реле 3 разомкнуто

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0' then

P3<='0';

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ОГНЕВОГО РЕЛЕ 1 ПЕРЕЕЗДНОГО СВЕТОФОРА 1;

o1 : process

variable O1_T1,O1_T2,O1_T3,O1_T4 : STD_LOGIC;

variable O1_nT1,O1_nT2,O1_nT3,O1_nT4 : STD_LOGIC;

variable O1_A1,O1_A2,O1_A3,O1_A4 : STD_LOGIC;

variable O1_B1,O1_B2,O1_B3,O1_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P1='1' -- если переезд закрыт

then if ClkL='0'then

if O1_T'event and O1_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

O1_A1:=O1_A;

O1_B1:=O1_B;

O1_T1:=O1_T;

O1_nT1:=O1_nT;

wait for 1.5 ms;

O1_A2:=O1_A;

O1_B2:=O1_B;

O1_T2:=O1_T;

O1_nT2:=O1_nT;

wait for 3.5 ms;

O1_A3:=O1_A;

O1_B3:=O1_B;

O1_T3:=O1_T;

O1_nT3:=O1_nT;

wait for 1.5 ms;

O1_A4:=O1_A;

O1_B4:=O1_B;

O1_T4:=O1_T;

O1_nT4:=O1_nT;

if O1_A1=O1_T1 and O1_A2=O1_T2 and O1_T1=O1_T2 then

if O1_B1=O1_nT1 and O1_B2=O1_nT2 and O1_nT1=O1_nT2 then

if O1_A3=O1_T3 and O1_A4=O1_T4 and O1_T3=O1_T4 then

if O1_B3=O1_nT3 and O1_B4=O1_nT4 and O1_nT3=O1_nT4 then

if O1_A1/=O1_A3 and O1_A2/=O1_A4 then

--Close1<='1'; -- путевое реле 1 разомкнуто; закрыт переезд

Blok:='1';

O1<='1'; -- лампа ОР1ПС1 исправна

end if;

end if;

end if;

end if;

end if;

if O1_A1=O1_nT1 and O1_A2=O1_nT2 and O1_nT1=O1_nT2 then

if O1_B1=O1_T1 and O1_B2=O1_T2 and O1_T1=O1_T2 then

if O1_A3=O1_nT3 and O1_A4=O1_nT4 and O1_nT3=O1_nT4 then

if O1_B3=O1_T3 and O1_B4=O1_T4 and O1_T3=O1_T4 then

if O1_A1/=O1_A3 and O1_A2/=O1_A4 then

--Close1<='0'; -- путевое реле 1 разомукнуто; переезд открыт

Blok:='1';

O1<='0';-- лампа ОР1ПС1 неисправна

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0'

then O1<:=0; -- лампа ОР1ПС1 неисправна

end if;

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ОГНЕВОГО РЕЛЕ 2 ПЕРЕЕЗДНОГО СВЕТОФОРА 1;

o2 : process

variable O2_T1,O2_T2,O2_T3,O2_T4 : STD_LOGIC;

variable O2_nT1,O2_nT2,O2_nT3,O2_nT4 : STD_LOGIC;

variable O2_A1,O2_A2,O2_A3,O2_A4 : STD_LOGIC;

variable O2_B1,O2_B2,O2_B3,O2_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P1='1' -- если переезд закрыт

then if ClkL='1'then

if O2_T'event and O2_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

O2_A1:=O2_A;

O2_B1:=O2_B;

O2_T1:=O2_T;

O2_nT1:=O2_nT;

wait for 1.5 ms;

O2_A2:=O2_A;

O2_B2:=O2_B;

O2_T2:=O2_T;

O2_nT2:=O2_nT;

wait for 3.5 ms;

O2_A3:=O2_A;

O2_B3:=O2_B;

O2_T3:=O2_T;

O2_nT3:=O2_nT;

wait for 1.5 ms;

O2_A4:=O2_A;

O2_B4:=O2_B;

O2_T4:=O2_T;

O2_nT4:=O2_nT;

if O2_A1=O2_T1 and O2_A2=O2_T2 and O2_T1=O2_T2 then

if O2_B1=O2_nT1 and O2_B2=O2_nT2 and O2_nT1=O2_nT2 then

if O2_A3=O2_T3 and O2_A4=O2_T4 and O2_T3=O2_T4 then

if O2_B3=O2_nT3 and O2_B4=O2_nT4 and O2_nT3=O2_nT4 then

if O2_A1/=O2_A3 and O2_A2/=O2_A4 then

Blok:='1';

O2<='1'; -- лампа ОР1ПС2 исправна

end if;

end if;

end if;

end if;

end if;

if O2_A1=O2_nT1 and O2_A2=O2_nT2 and O2_nT1=O2_nT2 then

if O2_B1=O2_T1 and O2_B2=O2_T2 and O2_T1=O2_T2 then

if O2_A3=O2_nT3 and O2_A4=O2_nT4 and O2_nT3=O2_nT4 then

if O2_B3=O2_T3 and O2_B4=O2_T4 and O2_T3=O2_T4 then

if O2_A1/=O2_A3 and O2_A2/=O2_A4 then

Blok:='1';

O2<='0';-- лампа ОР1ПС2 неисправна

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0'

then O2<=0; -- лампа ОР1ПС2 неисправна

end if;

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ОГНЕВОГО РЕЛЕ 1 ПЕРЕЕЗДНОГО СВЕТОФОРА 2;

o3 : process

variable O3_T1,O3_T2,O3_T3,O3_T4 : STD_LOGIC;

variable O3_nT1,O3_nT2,O3_nT3,O3_nT4 : STD_LOGIC;

variable O3_A1,O3_A2,O3_A3,O3_A4 : STD_LOGIC;

variable O3_B1,O3_B2,O3_B3,O3_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P1='1' -- если переезд закрыт

then if ClkL='0'then

if O3_T'event and O3_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

O3_A1:=O3_A;

O3_B1:=O3_B;

O3_T1:=O3_T;

O3_nT1:=O3_nT;

wait for 1.5 ms;

O3_A2:=O3_A;

O3_B2:=O3_B;

O3_T2:=O3_T;

O3_nT2:=O3_nT;

wait for 3.5 ms;

O3_A3:=O3_A;

O3_B3:=O3_B;

O3_T3:=O3_T;

O3_nT3:=O3_nT;

wait for 1.5 ms;

O3_A4:=O3_A;

O3_B4:=O3_B;

O3_T4:=O3_T;

O3_nT4:=O3_nT;

if O3_A1=O3_T1 and O3_A2=O3_T2 and O3_T1=O3_T2 then

if O3_B1=O3_nT1 and O3_B2=O3_nT2 and O3_nT1=O3_nT2 then

if O3_A3=O3_T3 and O3_A4=O3_T4 and O3_T3=O3_T4 then

if O3_B3=O3_nT3 and O3_B4=O3_nT4 and O3_nT3=O3_nT4 then

if O3_A1/=O3_A3 and O3_A2/=O3_A4 then

Blok:='1';

O3<='1'; -- лампа ОР2ПС1 исправна

end if;

end if;

end if;

end if;

end if;

if O3_A1=O3_nT1 and O3_A2=O3_nT2 and O3_nT1=O3_nT2 then

if O3_B1=O3_T1 and O3_B2=O3_T2 and O3_T1=O3_T2 then

if O3_A3=O3_nT3 and O3_A4=O3_nT4 and O3_nT3=O3_nT4 then

if O3_B3=O3_T3 and O3_B4=O3_T4 and O3_T3=O3_T4 then

if O3_A1/=O3_A3 and O3_A2/=O3_A4 then

Blok:='1';

O3<='0';-- лампа ОР2ПС1 неисправна

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0'

then O3:=0; -- лампа ОР1ПС2 неисправна

end if;

end if;

end if;

end process;

-- СЪЁМ ИНФОРМАЦИИ С ОГНЕВОГО РЕЛЕ 2 ПЕРЕЕЗДНОГО СВЕТОФОРА 2;

o4 : process

variable O4_T1,O4_T2,O4_T3,O4_T4 : STD_LOGIC;

variable O4_nT1,O4_nT2,O4_nT3,O4_nT4 : STD_LOGIC;

variable O4_A1,O4_A2,O4_A3,O4_A4 : STD_LOGIC;

variable O4_B1,O4_B2,O4_B3,O4_B4 : STD_LOGIC;

variable Blok : STD_LOGIC :='0';

begin

-- __ __

-- длительность импульсов и провалов: 5 ms _| |__| |_

if P1='1' -- если переезд закрыт

then if ClkL='1'then

if O4_T'event and O4_T='1' -- если пришёл фронт сигнала Т

then

wait for 1.5 ms;

O4_A1:=O4_A;

O4_B1:=O4_B;

O4_T1:=O4_T;

O4_nT1:=O4_nT;

wait for 1.5 ms;

O4_A2:=O4_A;

O4_B2:=O4_B;

O4_T2:=O4_T;

O4_nT2:=O4_nT;

wait for 3.5 ms;

O4_A3:=O4_A;

O4_B3:=O4_B;

O4_T3:=O4_T;

O4_nT3:=O4_nT;

wait for 1.5 ms;

O4_A4:=O4_A;

O4_B4:=O4_B;

O4_T4:=O4_T;

O4_nT4:=O4_nT;

if O4_A1=O4_T1 and O4_A2=O4_T2 and O4_T1=O4_T2 then

if O4_B1=O4_nT1 and O4_B2=O4_nT2 and O4_nT1=O4_nT2 then

if O4_A3=O4_T3 and O4_A4=O4_T4 and O4_T3=O4_T4 then

if O4_B3=O4_nT3 and O4_B4=O4_nT4 and O4_nT3=O4_nT4 then

if O4_A1/=O4_A3 and O4_A2/=O4_A4 then

Blok:='1';

O4<='1'; -- лампа ОР2ПС2 исправна

end if;

end if;

end if;

end if;

end if;

if O4_A1=O4_nT1 and O4_A2=O4_nT2 and O4_nT1=O4_nT2 then

if O4_B1=O4_T1 and O4_B2=O4_T2 and O4_T1=O4_T2 then

if O4_A3=O4_nT3 and O4_A4=O4_nT4 and O4_nT3=O4_nT4 then

if O4_B3=O4_T3 and O4_B4=O4_T4 and O4_T3=O4_T4 then

if O4_A1/=O4_A3 and O4_A2/=O4_A4 then

Blok:='1';

O4<='0';-- лампа ОР2ПС2 неисправна

end if;

end if;

end if;

end if;

end if;

-- нарушение парафазности или импульсного сигнала на входах А и В

if Blok='0'

then O4<=0; -- лампа ОР2ПС2 неисправна

end if;

end if;

end if;

end process;

-- КОНТРОЛЬ ПИТАНИЯ ФИДЕРОВ

fiders : process (F1, F2)

begin

if F1='1' and F2='1'

then FStatus<="11";

end if;

if F1='0' and F2='1'

then FStatus<="01";

end if;

if F1='1' and F2='0'

then FStatus<="10";

end if;

if F1='0' and F2='0'

then FSatus<="00";

end if;

end process;

-- ОПРЕДЕЛЕНИЕ СОСТОЯНИЯ ПЕРЕЕЗДА

ПР : process (P1,P2,P3)

variable Var : integer range 0 to 3 := 0;

begin

if (var=0 and P1='1' and P2='0' and P3='0') or

(var=0 and Close1='0' and P2='0' and P3='1')

then Close<='1';

var:=1;

end if;

if (var=1 and P1='1' and P2='1' and P3='0')or

(var=1 and P1='0' and P2='1' and P3='1')

then var:=2;

end if;

if (var=2 and P2='0')

then var:=3;

end if;

if (var=3 and P1='0' and P2='0' and P3='0')

then var:=0; Close<='0';

end if;

end process;

-- МИГАНИЕ ЛАМП ПЕРЕЕЗДНЫХ СВЕТОФОРОВ

delayL : process (Close)

constant TIMER : TIME := 1000 ms;

begin

if Close='1'

then ClkL<= not ClkL after TIMER;

end if;

end process;

-- ЗАКРЫТИЕ ПЕРЕЕЗДА

closeP : process (Close)

begin

if Close='1'

then if CLKl='1'

then K1<=CLK; -- попеременное мигание

K2<=CLK -- ламп переездных

Zvuk<='1'; -- звуковая сигнализация

Pereezd<='1';

else if K1<='0';

K2<='0';

Zvuk<='1'

Pereezd<='1';

end if;

else if K1<='0';

K2<='0';

Zvuk<='0';

Pereezd<='0';

end if;

end process;

TS: process()

if

-- ПЕРЕДАЧА В ЛИНИЮ ИНФОРМАЦИИ О СОСТОЯНИИ АПС

send : process (SendInfo)

variable start_read : boolean := false;

variable last_bit : boolean := false;

variable num_bit : integer := 0;

variable adress: STD_LOGIC_VECTOR (0 to 4) := "0111";

variable data : STD_LOGIC_VECTOR (0 to 6);

begin

if SendInfo = '1' then

if falling_edge(Synchr) then

if SendInfo = '0' and num_bit = 0

then InfoOut <= '0';

end if;

if start_read = true then

if num_bit = 11

then InfoOut <= '1';

num_bit := 0;

last_bit := true;

end if;

if num_bit = 13

then

InfoOut <= (adress(3) xor adress(2) xor adress(1) xor adress(0)

xor data(0) xor data(1) xor data(2) xor data(3)xor data(4));

num_bit := 14;

end if;

if num_bit = 12

then InfoOut <= data(6);

num_bit := 13;

end if;

if num_bit =11

then InfoOut <= data(5);

num_bit := 12;

end if;

if num_bit = 10

then InfoOut <= data(4);

num_bit := 11;

end if;

if num_bit = 9

then InfoOut <= data(3);

num_bit := 10;

end if;

if num_bit = 8

then InfoOut <= data(2);

num_bit := 9;

end if;

if num_bit = 7

then InfoOut <= data(1);

num_bit := 8;

end if;

if num_bit = 6

then InfoOut <= data(0);

num_bit := 7;

end if;

if num_bit = 5

then InfoOut <= adress(0);

num_bit := 6;

end if;

if num_bit = 4

then InfoOut <= adress(1);

num_bit := 5;

end if;

if num_bit = 3

then InfoOut <= adress(2);

num_bit := 4;

end if;

if num_bit = 2

then InfoOut <= adress(3);

num_bit := 3;

end if;

if num_bit = 1

then InfoOut <= '1';

num_bit := 2;

end if;

end if;

if SendInfo = '1' and num_bit = 0

then if last_bit = true

then last_bit := false;

else

start_read := true;

num_bit := 1;

data(0) := O1;

data(1) := O2 ;

data(2) := O3;

data(3) := O4;

data(4) := Pereezd;

data(6 downto 5) := FStatus;

end if;

end if;

end if;

end if;

end process;

end mine;

Приложение Б

Листинг программы ПЛИС БМЭ

--

-- Title : mine

-- Design : work

-- Author : Alexey Kuprienko

-- Company : Home

-- File : ИЬУ.vhd

-- Generated : Sun Dec 4 17:21:15 2005

-- From : interface description file


Подобные документы

  • Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.

    курсовая работа [3,3 M], добавлен 26.06.2016

  • Виды и интерфейсы измерительных информационных систем. Принципы функционирования автоматической локомотивной сигнализации и системы "Контроль". Разработка программного обеспечения для обработки информации о работе устройств сигнализации и рельсовых цепей.

    дипломная работа [1011,1 K], добавлен 30.05.2013

  • Разработка микропроцессорной системы управления технологическим объектом. Выбор и расчет элементов системы, разработка ее программного обеспечения. Составление структурных, функциональных и принципиальных схем микроконтроллеров семейства MCS-51.

    курсовая работа [579,0 K], добавлен 20.09.2012

  • Проектирование двухниточного плана станции. План перегона, принципиальные схемы сигнальных точек, переезда, устройств заграждения переезда. Связь устройства автоматической блокировки со станционными сигнализирующими устройствами. Разработка УКСПС.

    курсовая работа [36,4 K], добавлен 11.01.2015

  • Разработка интерфейса и уточнённой структурной схемы, процессорного модуля, подсистем памяти и ввода/вывода, алгоритма программного обеспечения. Оценка памяти программ и данных. Структура адресного пространства. Организация клавиатуры и индикации.

    курсовая работа [2,4 M], добавлен 09.08.2015

  • Теоретические принципы разработки микропроцессорной системы охраны и сигнализации. Разработка графа и таблицы переходов состояний МПСО, его аппаратного и программного интерфейса, управляющих программ режимов и специального программного обеспечения.

    курсовая работа [37,0 K], добавлен 12.05.2012

  • Рассмотрение аппаратных принципов построения устройств микропроцессорной техники и их программного обеспечения. Структурная схема микропроцессора К1821ВМ85А. Карта распределения адресного пространства памяти. Расчет потребляемой устройством мощности.

    курсовая работа [2,4 M], добавлен 26.11.2012

  • Построение структурной схемы датчиков и разработка микроконтроллерной системы обеспечения безопасности. Описание интерфейса системы, считывание и обработка данных с помощью сканирования отпечатков пальцев. Использование клавиатуры для ввода пароля.

    дипломная работа [3,8 M], добавлен 04.02.2016

  • Выбор структурной и функциональной схемы системы охранно-пожарной сигнализации объекта. Разработка пожарного извещателя, моделирование его узлов в пакете Micro Cap. Системный анализ работоспособности и безопасности системы пожарной сигнализации.

    дипломная работа [2,9 M], добавлен 27.01.2016

  • Выбор программного обеспечения. Построение функциональной модели. Тестирование программного описания автомата. Проектирование общей схемы сборки проекта из отдельных фрагментов. Нормы затрат на проектирование и внедрение микропроцессорной системы.

    дипломная работа [348,1 K], добавлен 05.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.