DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

РОЗРОБКА СХЕМИ ПРИЛАДНОГО ІНТЕРФЕЙСУ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ІВТ

Інформація про роботу

Рік:
2013
Тип роботи:
Курсовий проект
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ІВТ Курсовий проект курсу «Основи термометрії» на тему: «РОЗРОБКА СХЕМИ ПРИЛАДНОГО ІНТЕРФЕЙСУ» Львів, 2011 Завдання 1: Розробити електричну принципову схему мікропроцесорного вимірювального приладу, пристосованого для роботи з GPIB, з послідовним введенням/виведенням інформації. Записати формат приладного інтерфейсного повідомлення (формат команди керування для цифрово-аналогових перетворювачів). Написати програму ініціалізації інтерфейсної частини приладу. Описати і пояснити послідовність роботи мікропроцесора у вимірювальному приладі при виконанні завдання, у межах заданого варіанту. Дано: Кількість приладів 5 Спосіб адресації 2 Тип мережі переривання Спосіб під’єднання паралельне опитування Скид Ініціалізація годинника Функція: Запит на обслуговування Робота Прийом В ІВК використовується операційна система призначена для керування роботою комплексу і для взаємодії користувача з апаратною частиною і прикладними програмами. Розподілені вимірювальні системи- це системи розміщені на відстані більш, ніж 1000м. Рис.1 мікропроцесорно керований пристрій обробки інформації  Для з’єднання мікропроцесорних вимірювальних приладів з GPIB доцільно використовувати мікропроцесорний керований пристрій КР580ВК91А. Сама мікросхема має вигляд, поданий нижче.  Рис.2 МІКРОСХЕМА КР580ВК91А Ця мікросхема здійснює зв’язок між GPIB (general purpose interface bus) і пристроями керування мікропроцесором. До її функцій входить передавання даних, виконання протоколу синхронізації обміну даних, процедури адресування приймачів або передавачів, початкове встановлення та запуск пристроїв, запуск обслуговування, послідовне та паралельне опитування, а також всі решта інтерфейсних функцій, за винятком функції контролера. У інформаційно-вимірювальному комплексі дана мікросхема (КР580ВК91А) вважається мікропроцесорним управляючим пристроєм, призначеним з’єднувати мікропроцесор на однокристальній мікро ЕОМ через лінію колективного використання з вимірювальними приладами Мікросхема виконує зв’язок між вимірювальною системою і приладами, що під’єднані до мікропроцесора. В її функції входить передача даних, протокол синхронізації обміну, процедури адресації приймача/передавача, очищення і запуск приладів, запуск обслуговування, послідовні і паралельні опитування, а також всі решта функції інтерфейсу, за винятком функції контролера. КР580ВК91А складається із буферної схеми шини даних мікропроцесора; логічної схеми читання/запису, переривання, вісім регістрів запису; вісім регістрів читання; схеми формування затримок; дешифратор повідомлень; логічні схеми, що реалізують інтерфейсні функції; буферні схеми шини даних; внутрішня шина даних. Табл. 1Призначення виводів Вивід Позначення Тип виводу Функціональне призначення виводів  12-19 D0-D7 Входи/виходи Шина даних мікропроцесора  21-23 RS0-RS2 Входи Адреса регістра  8 CS Вхід Вибір мікросхеми  9 RD Вхід Читання  10 WR Вхід Запис  11 INT Вихід Запит переривання  6 DREQ Вихід Запит ПІП  7 DACK Вхід Підтвердження ПІП  5 TRIG Вихід Запуск  3 CLOCK Вхід Синхросигнал  4 RESET Вхід Скид  28-35 DIO1-DIO8 Виходи/входи Шина даних  39 EOI Вхід/вихід Кінець передачі/ідентифікація  36 DAV Вхід/вихід Супроводження даних  37 NRFD Вхід/вихід Не готовий для прийому даних  38 NDAC Вхід/вихід Дані не прийняті  26 ATN Вхід Керування  24 IFC Вхід Очищення інтерфейсу  27 SRQ   Запит на обслуговування  25 REN Вхід Дозвіл дистанційного управління  1, 2 T/R1, T/R2 Виходи Керування прийомо-збуджувальною схемою  40 Ucc - Напруга живлення +5В  20 GND - Спільний   Мультиплексор К155КП7 Ця мікросхема являє собою мультиплексор USB 2.0 - мікросхему, що забезпечує простий і дуже гнучкий спосіб підключення портативних пристроїв з інтерфейсом USB і без нього. Вона має велику гнучкість має здатність перемикатися між джерелами даних, що мають різні швидкості передачі і рівні сигналів, і виводити їх на загальний роз'єм, має вхід дозволу роботи ,та комплементарні виходи. Струм споживання К155КП7 не перевищує 48мА. Дозволяє комутувати сигнали до 8-и входів.  Рис.3 мультиплексор К155КП7 Таблиця істинності мультиплексора: A2 A1 A0 E Y  X X X 0 -  0 0 0 1 S0  0 0 1 1 S1  0 1 0 1 S2  0 1 1 1 S3  1 0 0 1 S4  1 0 1 1 S5  1 1 0 1 S6  1 1 1 1 S7   Intel 8255A Програмований контролер паралельного введення/виведення інформації Intel 8255 (або i8255) - мікросхема контролера програмованого паралельного інтерфейсу. Спочатку розроблена для мікропроцесора Intel 8085. Використовувалася в різних моделях комп'ютерів, спільно з Intel 8086, Z-80 і іншими процесорами. Має три 8-розрядних канали введення-виведення, 8-розрядний канал для підключення до шини даних, два адресні входи. Третій канал введення-виведення може бути розділений на два по 4 біти. Випускалася в корпусах DIP 40 і PLCC 44. Вітчизняний аналог - КР580ВВ55. Адреси приладів: 1 – 0001; 2 – 0010; 3 – 0011; 4 – 0100; 5 – 0101 Прилад 1 регістр зчитування    регістр записування  Вхідні дані(0R) RS2 RS1 RS0 Вихідні дані(0W)  D17 D16 D15 D14 D13 D12 D11 D10 0 0 0 D17 D16 D15 D14 D13 D12 D11 D10  0 0 0 0 1 0 1 0    0 0 0 0 1 0 1 0  Стан переривання(1R) RS2 RS1 RS0 Дозвіл переривання(1W)  CPT APT GET END DEC ERR B0 B1 0 0 1 CPT APT GET END DEC ERR B0 B1  1 1 0 1 1 0 1 1    1 1 0 1 1 0 1 1  Стан переривання(2R) RS2 RS1 RS0 Дозвіл переривання(2W)  INT SPAS DMA0 DMA1 SPC LLOC REMC ADSC 0 1 0 0 0 DMA0 DMA1 SPC LLOC REMC ADSC  1 1 1 1 1 0 0 0    0 0 1 1 1 0 0 0  Статус послідовного опитування(3R) RS2 RS1 RS0 Статус послідовного опитування(3W)  S8 SRQS S6 S5 S4 S3 S2 S1 0 1 1 S8 rsv S6 S5 S4 S3 S2 S1  0 1 0 0 0 0 0 0    0 0 0 0 0 0 0 0  Стан адресування(4R) RS2 RS1 RS0 Спосіб адресування(4W)  ton lon EOI LPAS TPAS LA TA MJMN 1 0 0 T0 L0 0 0 0 0 ADM1 ADM0  0 1 0 0 0 0 0 0    1 1 0 0 0 0 1 1  Адреса0(6R) RS2 RS1 RS0 Адреса0/1(6W)  INT DT0 DL0 AD5 AD4 AD3 AD2 AD1 1 1 0 ARS DT DL AD5 AD4 AD3 AD2 AD1  1 1 0 0 0 0 0 1    0 1 0 0 0 0 0 1  Адреса1(7R) RS2 RS1 RS0 EOS(7W)  X DT1 DL1 AD5 AD4 AD3 AD2 AD1 1 1 1 EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0  0 1 1 0 0 0 0 0    0 0 0 0 1 0 1 0   Прилад 2 регістр зчитування    регістр записування  Вхідні дані(0R) RS2 RS1 RS0 Вихідні дані(0W)  D17 D16 D15 D14 D13 D12 D11 D10 0 0 0 D17 D16 D15 D14 D13 D12 D11 D10  0 0 0 0 1 0 1 0    0 0 0 0 1 0 1 0  Стан переривання(1R) RS2 RS1 RS0 Дозвіл переривання(1W)  CPT APT GET END DEC ERR B0 B1 0 0 1 CPT APT GET END DEC ERR B0 B1  1 1 0 1 1 0 1 1    1 1 0 1 1 0 1 1  Стан переривання(2R) RS2 RS1 RS0 Дозвіл переривання(2W)  INT SPAS DMA0 DMA1 SPC LLOC REMC ADSC 0 1 0 0 0 DMA0 DMA1 SPC LLOC REMC ADSC  1 1 1 1 1 0 0 0    0 0 1 1 1 0 0 0  Статус послідовного опитування(3R) RS2 RS1 RS0 Статус послідовного опитування(3W)  S8 SRQS S6 S5 S4 S3 S2 S1 0 1 1 S8 rsv S6 S5 S4 S3 S2 S1  0 1 0 0 0 0 0 0    0 0 0 0 0 0 0 0  Стан адресування(4R) RS2 RS1 RS0 Спосіб адресування(4W)  ton lon EOI LPAS TPAS LA TA MJMN 1 0 0 T0 L0 0 0 0 0 ADM1 ADM0  0 1 0 0 0 0 0 0    1 1 0 0 0 0 1 1  Адреса0(6R) RS2 RS1 RS0 Адреса0/1(6W)  INT DT0 DL0 AD5 AD4 AD3 AD2 AD1 1 1 0 ARS DT DL AD5 AD4 AD3 AD2 AD1  1 1 0 0 0 0 0 1    0 1 0 0 0 0 0 1  Адреса1(7R) RS2 RS1 RS0 EOS(7W)  X DT1 DL1 AD5 AD4 AD3 AD2 AD1 1 1 1 EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0  0 1 1 0 0 0 0 0    0 0 0 0 1 0 1 0   Прилад 3 регістр зчитування    регістр записування  Вхідні дані(0R) RS2 RS1 RS0 Вихідні дані(0W)  D17 D16 D15 D14 D13 D12 D11 D10 0 0 0 D17 D16 D15 D14 D13 D12 D11 D10  0 0 0 0 1 0 1 0    0 0 0 0 1 0 1 0  Стан переривання(1R) RS2 RS1 RS0 Дозвіл переривання(1W)  CPT APT GET END DEC ERR B0 B1 0 0 1 CPT APT GET END DEC ERR B0 B1  1 1 0 1 1 0 1 1    1 1 0 1 1 0 1 1  Стан переривання(2R) RS2 RS1 RS0 Дозвіл переривання(2W)  INT SPAS DMA0 DMA1 SPC LLOC REMC ADSC 0 1 0 0 0 DMA0 DMA1 SPC LLOC REMC ADSC  1 1 1 1 1 0 0 0    0 0 1 1 1 0 0 0  Статус послідовного опитування(3R) RS2 RS1 RS0 Статус послідовного опитування(3W)  S8 SRQS S6 S5 S4 S3 S2 S1 0 1 1 S8 rsv S6 S5 S4 S3 S2 S1  0 1 0 0 0 0 0 0    0 0 0 0 0 0 0 0  Стан адресування(4R) RS2 RS1 RS0 Спосіб адресування(4W)  ton lon EOI LPAS TPAS LA TA MJMN 1 0 0 T0 L0 0 0 0 0 ADM1 ADM0  0 1 0 0 0 0 0 0    1 1 0 0 0 0 1 1  Адреса0(6R) RS2 RS1 RS0 Адреса0/1(6W)  INT DT0 DL0 AD5 AD4 AD3 AD2 AD1 1 1 0 ARS DT DL AD5 AD4 AD3 AD2 AD1  1 1 0 0 0 0 0 1    0 1 0 0 0 0 0 1  Адреса1(7R) RS2 RS1 RS0 EOS(7W)  X DT1 DL1 AD5 AD4 AD3 AD2 AD1 1 1 1 EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0  0 1 1 0 0 0 0 0    0 0 0 0 1 0 1 0  Прилад 4 регістр зчитування    регістр записування  Вхідні дані(0R) RS2 RS1 RS0 Вихідні дані(0W)  D17 D16 D15 D14 D13 D12 D11 D10 0 0 0 D17 D16 D15 D14 D13 D12 D11 D10  0 0 0 0 1 0 1 0    0 0 0 0 1 0 1 0  Стан переривання(1R) RS2 RS1 RS0 Дозвіл переривання(1W)  CPT APT GET END DEC ERR B0 B1 0 0 1 CPT APT GET END DEC ERR B0 B1  1 1 0 1 1 0 1 1    1 1 0 1 1 0 1 1  Стан переривання(2R) RS2 RS1 RS0 Дозвіл переривання(2W)  INT SPAS DMA0 DMA1 SPC LLOC REMC ADSC 0 1 0 0 0 DMA0 DMA1 SPC LLOC REMC ADSC  1 1 1 1 1 0 0 0    0 0 1 1 1 0 0 0  Статус послідовного опитування(3R) RS2 RS1 RS0 Статус послідовного опитування(3W)  S8 SRQS S6 S5 S4 S3 S2 S1 0 1 1 S8 rsv S6 S5 S4 S3 S2 S1  0 1 0 0 0 0 0 0    0 0 0 0 0 0 0 0  Стан адресування(4R) RS2 RS1 RS0 Спосіб адресування(4W)  ton lon EOI LPAS TPAS LA TA MJMN 1 0 0 T0 L0 0 0 0 0 ADM1 ADM0  0 1 0 0 0 0 0 0    1 1 0 0 0 0 1 1  Адреса0(6R) RS2 RS1 RS0 Адреса0/1(6W)  INT DT0 DL0 AD5 AD4 AD3 AD2 AD1 1 1 0 ARS DT DL AD5 AD4 AD3 AD2 AD1  1 1 0 0 0 0 0 1    0 1 0 0 0 0 0 1  Адреса1(7R) RS2 RS1 RS0 EOS(7W)  X DT1 DL1 AD5 AD4 AD3 AD2 AD1 1 1 1 EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0  0 1 1 0 0 0 0 0    0 0 0 0 1 0 1 0   Прилад 5 регістр зчитування    регістр записування  Вхідні дані(0R) RS2 RS1 RS0 Вихідні дані(0W)  D17 D16 D15 D14 D13 D12 D11 D10 0 0 0 D17 D16 D15 D14 D13 D12 D11 D10  0 0 0 0 1 0 1 0    0 0 0 0 1 0 1 0  Стан переривання(1R) RS2 RS1 RS0 Дозвіл переривання(1W)  CPT APT GET END DEC ERR B0 B1 0 0 1 CPT APT GET END DEC ERR B0 B1  1 1 0 1 1 0 1 1    1 1 0 1 1 0 1 1  Стан переривання(2R) RS2 RS1 RS0 Дозвіл переривання(2W)  INT SPAS DMA0 DMA1 SPC LLOC REMC ADSC 0 1 0 0 0 DMA0 DMA1 SPC LLOC REMC ADSC  1 1 1 1 1 0 0 0    0 0 1 1 1 0 0 0  Статус послідовного опитування(3R) RS2 RS1 RS0 Статус послідовного опитування(3W)  S8 SRQS S6 S5 S4 S3 S2 S1 0 1 1 S8 rsv S6 S5 S4 S3 S2 S1  0 1 0 0 0 0 0 0    0 0 0 0 0 0 0 0  Стан адресування(4R) RS2 RS1 RS0 Спосіб адресування(4W)  ton lon EOI LPAS TPAS LA TA MJMN 1 0 0 T0 L0 0 0 0 0 ADM1 ADM0  0 1 0 0 0 0 0 0    1 1 0 0 0 0 1 1  Адреса0(6R) RS2 RS1 RS0 Адреса0/1(6W)  INT DT0 DL0 AD5 AD4 AD3 AD2 AD1 1 1 0 ARS DT DL AD5 AD4 AD3 AD2 AD1  1 1 0 0 0 0 0 1    0 1 0 0 0 0 0 1  Адреса1(7R) RS2 RS1 RS0 EOS(7W)  X DT1 DL1 AD5 AD4 AD3 AD2 AD1 1 1 1 EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0  0 1 1 0 0 0 0 0    0 0 0 0 1 0 1 0  Ініціалізація годинника: регістр зчитування RS2 RS1 RS0 Регістр записування  Додатковий режим (5R)    Додатковий режим (5W)  CNT2 CNT1 CNT0 СOM4 COM3 COM2 COM1 COM0 1 0 1 CNT2 CNT1 CNT0 COM4 COM3 COM2 COM1 COM0  0 0 1 0 0 1 1 1     1 0 0 0 0 1 0 0   Ініціалізація допоміжного регістра А:                                     Додатковий режим (5R)    Додатковий режим (5W)  CNT2 CNT1 CNT0 СOM4 COM3 COM2 COM1 COM0 1 0 1 CNT2 CNT1 CNT0 COM4 COM3 COM2 COM1 COM0  1 0 0 0 1 1 0 0    1 0 0 0 1 1 0 0  Ініціалізація допоміжного регістра B:                1 0 1 0 1 1 1 1                Додатковий режим (5R)    Додатковий режим (5W)  CNT2 CNT1 CNT0 СOM4 COM3 COM2 COM1 COM0 1 0 1 CNT2 CNT1 CNT0 COM4 COM3 COM2 COM1 COM0  1 0 1 0 1 1 1 1    1 0 1 0 1 1 1 1  Негайне виконання pon:                                       Додатковий режим (5R)    Додатковий режим (5W)  CNT2 CNT1 CNT0 СOM4 COM3 COM2 COM1 COM0 1 0 1 CNT2 CNT1 CNT0 COM4 COM3 COM2 COM1 COM0  0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0   5.Список використаної літератури Поліщук Є.С., Дорожовець М.М., Яцук В.О. та ін. Метрологія та вимірювальна техніка: Підручник. / За ред. Є.С.Поліщука. Львів.: Видавництво “Бескид Біт”, 2003. – 544с. М.Дорожовець, В.Мотало, Б.Стадник та ін. Основи метрології та вимірювальної техніки: Підручник у 2-х т. Т.1. Основи метрології. Львів : Видавництво НУ “Львівська політехніка”, 2005. – 532 с. М.Дорожовець, В.Мотало, Б.Стадник та ін. Основи метрології та вимірювальної техніки: Підручник у 2-х т. Т.2. Вимірювальна техніка. Львів : Видавництво НУ “Львівська політехніка”, 2005. – 632 с. Поліщук Є.С., Дорожовець М.М., Стадник Б.І. та ін. Засоби та методи вимірювань неелектричних величин: Підручник. /За ред. Є.С.Поліщука. Львів.: Видавництво “Бескид Біт”, 2008. –618 с. Мейзда Ф. Электронные измерительные приборы и методы измерений / Пер. с англ. – Москва : Мир, 1990. – 535 с. Атамалян Э.Г. Приборы и методы измерения электрических величин.- Москва : Высшая школа, 1989. Інформація з Веб-сайту фірми «Інтел» щодо будови та основних технічних характеристик мікропроцесорів серії 8000 (прикладається). Коршунов А.М. Микропроцессорные системы ЭФУ. Иллюстрации к курсу лекций. Москва : МИФИ. – 2008. – 39 с. (прикладається). Мультиплексор USB 2.0 уменьшает количество разъемов Драйвер до USB мультиплексора #pragma language=extended #include <io8515.h> #include <ina90.h> #include <def9602.h> #include <defusb.h> #include <dsc_cd.h> #define SETBIT(ADDR,BIT) (ADDR |=(1<<BIT)) #define CLRBIT(ADDR,BIT) (ADDR &=~(1<<BIT)) #define SetBitR(Byte,Bit) (Byte |=(Bit)) #define ClrBitR(Byte,Bit) (Byte &=~(Bit)) #define ChkBitR(Byte,Bit) (Byte & (Bit)) unsigned char usb_buf[8]; /*Буфер Endpoint 0*/ unsigned char usb_cfg=0; /*Номер используемой CONFIGURATION*/ unsigned char address=0; /*Адрес назначеный ХОСТом*/ unsigned char Prt_Typ=0; unsigned char Rpt_ID=0; unsigned char Rpt_typ=0; unsigned char Rpt_Cnt=0; unsigned char DataPID=0; /*Массив DATA PIDs для IN Endpoints, '1'-Data1PID, '0'-Data0PID */ #define TGL0PID 1 #define TGL1PID 2 #define TGL2PID 4 #define TGL3PID 8 unsigned char status=0; /*Байт состояния, если в соответствующем бите '1'- состояние установлено, '0' - сброшено*/ #define GETDESC 1 /*Находимся в режиме выдачи дескриптора */ #define MULTIPAK 2 /*Находимся в состоянии выдачи Multipacket-a */ #define OutPack 16 unsigned char stalld=0; /*Байт указывающий находится ли Endpoint в состоянии HALT(выдачи STALL) '1'- STALL, '0' - Normal Operation*/ #define BIT0 1 /*Endpoint 0*/ #define BIT1 2 /*Endpoint 1*/ #define BIT2 4 /*Endpoint 2*/ #define BIT3 8 /*Endpoint 3*/ #define BIT4 16 /*Endpoint 4*/ #define BIT5 32 /*Endpoint 5*/ #define BIT6 64 /*Endpoint 6*/ unsigned char des_sze; /*Размер дескриптора в байтах*/ unsigned char des_idx; /*Индекс в таблице дескриптора*/ unsigned char des_typ; /*Тип выдаваемого дескриптора*/ unsigned char usb_idl; unsigned char rptCD[2]; /*Буфер используемый для выдачи REPORT по клавишам */ flash char RX0[]="RO"; flash char NAK0[]="NO"; flash char TX0[]="TO"; flash char NAK3[]="N3"; flash char ALTI[]="AL"; flash char TX3[]="T3"; flash char KS[]="KS Labs HID"; flash char EV[]="-=GamePad=-"; flash char Key[]="Keys:"; flash char Ev[]="Event:"; #define ALE 4 #define RD 5 #define WR 6 #define CS 7 /*Процедура записи байта в USBN9604. Адрес регистра в который записывается*/ /*байт находится в U_ADDR. Cам записываемый байт находится в U_DATA. */ void USB_WR(char U_ADDR,char U_DATA) { DDRA=0xFF; /*Настраиваем PORTA на выход для выдачи адреса*/ SETBIT(PORTC,ALE); /*Устанавливаем ALE в 1 */ CLRBIT(PORTC,CS); /*Устанавливаем CS в 1 Выбираем USBN9604*/ PORTA=U_ADDR; /*Выдаем адрес регистра*/ CLRBIT(PORTC,ALE); /*Сбрасываем ALE в '0', защелкивая адрес*/ CLRBIT(PORTC,WR); /*Сбрасываем WR в '0', инициируя запись*/ PORTA=U_DATA; /*Выставляем на шину данные*/ SETBIT(PORTC,WR); /* Защелкиваем данные '1' на WR*/ SETBIT(PORTC,CS); /* Устанавливаем CS в '1' - отключаем микросхему*/ } /*Процедура чтения байта из USBN9604. Адрес регистра в который записывается*/ /*байт находится в U_ADDR. Cам считанный байт находится в U_DATA*/ unsigned char USB_RD(char U_ADDR) { char U_
Антиботан аватар за замовчуванням

12.04.2013 09:44

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!