Функціональна схема проектованого пристрою (див. додаток Б рис.Б.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") буди блимати, інакше повинен безперервно світити, якщо зона під охороною.