Проектування функціональної схеми пристрою

Функціональна схема проектованого пристрою (див. додаток Б рис.Б.1) включає в себе наступні вузли:

• C-FLASH керуючий пристрій, який забезпечує взаємодію пристрою з Flash пам'яттю;

• C_ADC - керуючий пристрій, який керує роботою АЦП;

• CONTROL керуючий пристрій, який визначає роботу пристрою в цілому;

• I2C_MASTER_TOP -- вузол забезпечує взаємодію пристрою з контролером клавіатури через інтерфейс І2С;

• COMPARATOR - вузол порівняння;

Крім вищеописаних вузлів до складу охоронного пристрою входять регістри, інформація про які знаходиться в таблиці А1 додатку А. Всі функціональні схема вузлів згенеровані програмою Synplify Pro 7.0. VHDL


Синтез керуючого пристрою (C_Flash)

Даний вузол забезпечує взаємодію спроектованого пристрою з Flash пам'яттю. Робота пристрою визначається графом зображеному на рис. 3.2.1.1 - 3.2.1.4. Нижче наведено його VHDL код. В додатку А, таблиці А.2 і А.З наведено адреси регістрів констант і коди команд Flash



Синтез вузла C_ADC

Даний вузол призначений для управління зовнішнім АЦП, робота якого ініціюється сигналом adc_st. Після завершення роботи генерується сигнал adc_ok, який означає що дані записані з внутрішньої пам'яті АЦП

Синтез вузла COMPARATOR

Даний вузол використано для опрацювання даних отриманих від АЦП. На його вхід подаються дані з регістрів RG_ADC0 RG_ADC7, у відповідності до конфігурації системи. Тобто якщо зона 0 не охороняється, то нема сенсу аналізувати дані з цієї зони отримані від АЦП. Функціональна схема вузла наведена на рис. 3.1.5.1. VHDL код вузла:

Library IEEE;

use IEEE.STD_LOGIC_1164.all;

use IEEE.STD_LOGIC_ARITH.all;

entity COMPARE is

port (AeqB_in: in STD_LOGIC;

AgB_in: in STD_LOGIC;

AlB_in: in STD_LOGIC;

AeqB: out STD_LOGIC;

AgB: out STD_LOGIC;

A1B: out STD_LOGIC;

А, В: in STD_LOGIC_VECTOR (7 downto 0));


end entity;

architecture COMPARE_ARCH of COMPARE is

begin

AeqB <= '1' when ((UNSIGNED(A) = UNSIGNED(B)) and (AeqB_in = ‘1”))else'0';

AgB <= ' 1' when ((UNSIGNED(A) > UNSIGNED(B))

or ((UNSIGNED(A) = UNSIGNED(B)) and (AgB_in = '!'))) else '0';

A1B <= '1' when ((UNSIGNED(A) < UNSIGNED(B))

or ((UNSIGNED(A) = UNSIGNED(B)) and (AlB_in = '!'))) else '0';

end architecture COMPARE_ARCH;

 

Алгоритм роботи

В графічній частині, яка додається до пояснювальної записки, зображена блок схема роботи проектованого пристрою. Після включення живлення


пристрій готовий до роботи, про що свідчить світіння світлодіода "1" (див. таблицю А.4), і очікує введення кода доступу (8-ми значне, мінімум 4-ох значне число) з наступним його підтвердженням клавішею "#". При троьохкратному неправильному введені пристрій переходить в режим ТРИВОГА (періодичне миготіння світлодіода "ТРИВОГА"), і відбувається подія передбачена в настройках системи (таблиця А.1). Для виходу з режиму ТРИВОГА необхідно ввести правильний код. Якщо код введено вірно, про що свідчить світіння світлодіода "2", очікується введення номера сервісної функції, з підтвердженням клавішею "#":

0 - додати користувача;

1 - зняти з охорони;

2 - поставити на охорону;

3 - змінити настройки;

4 - переглянути історію;

5 - знищити користувача;

6 - знищити історію;

Якщо введено правильний номер функції, то комбінація світлодіодів "ТРИВОГА", "ОХОРОНА" і "АВАРІЯ" буде індикувати в двійковій формі номер активної функції:


Кожен користувач має певний рівень доступу (0-ий рівень адміністратор, 1-ий рівень - користувач), який задається під час виконання функції 0. Відмінність полягає в тому, що адміністратор має всі і роздає їх користувачам. Тільки адміністратор має право на програмування пристрою і додавання користувачів в систему. Передбачено, що адміністраторів може бути декілька.

Отже, якщо пристрій в режимі ОХОРОНА (горить світлодіод "ОХОРОНА" і світлодіоди зон, які є під охороною) то для виконання будь-яких функцій необхідно вийти з даного режиму, тобто ввести номер функції 1, після чого відбудеться перехід в режим готовності до роботи - світіння світлодіода "1". Якщо користувач не має права знімати з охорони, то це можна взнати по коду на світодіодах "1","2","4","8".

При додаванні нового користувача потрібно виконати наступні кроки:

1. вибрати функцію №0

2. ввести код користувача

3. ввести рівень доступу

4. ввести права

Для знищення користувача:

1. вибрати функцію №5

2, ввести код користувача

При зміні настройок:

1. вибрати функцію №3

2. ввести номер під функції:

• 0 - програмування системи в цілому

• 1 - програмування зон

3. якщо номер підфункції 0:

• ввести час на вхід

• ввести час на вихід

• які реле спрацюють при неправильному трьохкратному введені кода доступу


4. якщо номер підфункції 1:

• ввести номер зони

• ввести її тип (0 - звичайна, 1- 24-ох годинна)

• ввести номера які реле спрацюють при порушені зони

• зона під охороною, чи ні (ввести 0, чи 1)

Для перегляду настройок:

1. вибрати функцію №4

2. прочитати історію по світло діодах "ТРИВОГА", "ОХОРОНА", "АВАРІЯ" а по "1", "2", "4", "8"- номер користувача (клавіша "#"-наступний запис)

Для знищення всіх записів історії:

3. вибрати функцію №6

Клавіша "*" означає відміну введеного з клавіатури. Наприклад, якщо користувач почав вводити код доступу і зрозумів, що помилився в якійсь цифрі. Якщо пристрій в режимі ОХОРОНА і відбулось порушення якоїсь зони, то відповідний світлодіод ("ЗОНА 0",.......,"ЗОНА 7") буди блимати, інакше повинен безперервно світити, якщо зона під охороною.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: