
- •Розділ 1аналітичний розділ
- •1.1 Система контролю і управління доступом
- •1.2 Кодування даних транспондерів
- •1.3 Антиколізія
- •1.4 Приклад проектування базової групи платформи транспондерів
- •1.5 Результати проведення випробування транспондер на пар
- •1.6 Пристрої ідентифікації доступу
- •1.7Пристрої контролю й керування доступом
- •1.8 Мережеві системи
- •1.9 Автономні системи
- •Розділ 2 розробка апаратної підсистеми
- •2.1 Апаратна платформа Arduino
- •2.2 Arduino Uno
- •2.3 Огляд модуляFrid–rc522
- •2.3.1 Iso cтандарти
- •2.4 Spi — послідовний периферійний інтерфейс
- •2.5 Опис сервоприводаTowerPro sg90
- •Розділ 3 розробка програмної підсистеми
- •3.1 Середовище розробки Arduino
- •3.2 Створення найпростішого прикладу в середовищі Arduino
- •3.3 Автономні системи контролю і управління доступом
- •3.2 Мережеві системи контролю і управління доступом
- •3.3 Опис роботи програмного забезпечення
- •Розділ 4 економічна частина
- •4.1 Розрахунок витрат на розробку та впровадження проектного рішення
- •4.2 Розрахунок часу на створення
- •4.3 Розрахунок кошторису капітальних витрат на обладнання
- •4.4 Розрахунок виробничої площі робочих місць розробників та вартість основних фондів
- •4.6 Визначення розміру заробітної плати зайнятих у проекті
- •4.7 Розрахунок витрат на електроенергію
- •4.8 Визначення витрат на сировину і матеріали
- •4.9 Розрахунок собівартості розробки
- •4.10 Розрахунок ціни
- •4.11 Розрахунок техніко-економічних показників на розробку
- •Розділ 5 охорона праці та безпека в надзвичайних ситуаціях
- •5.1. Оцінка стану охорони праці на підприємстві
- •5.2 Аналіз стану пожежної безпеки
- •5.3 Виявлення небезпечних і шкідливих виробничих факторів
- •5.4 Безпека в надзвичайних ситуаціях
- •5.5 Заходи щодо поліпшення охорони праці та пожежної безпеки
- •Висновки
- •Перелік скорочень, символів та спеціальних термінів
- •Список використаних джерел
- •Додатки
2.4 Spi — послідовний периферійний інтерфейс
SPI (англ. Serial Peripheral Interface, SPI bus — послідовний периферійний інтерфейс, шина SPI) — фактичний послідовний синхронний повнодуплексний стандарт передачі даних, розроблений фірмою Motorola для забезпечення простого сполучення мікроконтролерів та периферії. SPI також називають чотирьох-провідним (англ. four-wire) інтерфейсом. На відміну від стандартного послідовного порту, SPI є синхронним інтерфейсом, в якому кожна передача синхронізована з тактовим сигналом, що генерується ведучим пристроєм (мікроконтролером). Периферійний пристрій синхронізує отримання бітової послідовності з тактовим сигналом. До одного послідовного периферійного інтерфейсу ведучого мікроконтролера можна під'єднати декілька мікросхем. Головний пристрій вибирає ведений пристрій активуючи сигнал «вибор кристалу» (англ. chip select) на потрібній мікросхемі. Інші пристрої, не вибрані ведучим не приймають участі в передачі по SPI.
Для передачі даних в інтерфейсі SPI використовуються чотири сигнали:
MOSI або SI — вихід ведучого, вхід веденого (англ. Master Out Slave In). Служить для передачі даних від ведучого пристрою до веденого.
MISO або SO — вхід ведучого, вихід веденого (англ. Master In Slave Out). Служить для передачі даних від веденого пристрою до ведучого.
SCLK або SCK — послідовний тактовий сигнал (англ. Serial Clock). Служить для передачі тактового сигналу для ведених пристроїв.
CS або SS — сигнал вибору мікросхеми (англ. Chip Select, Slave Select). Служить для вибору необхідного веденого пристрою.
Бібліотека SPI
Ця бібліотека використовує апаратні можливості AVR для роботи з SPI на Arduino, причому тільки в режимі ведучого (SPI master). Функцій у ній зовсім небагато:
begin() і end()
Ініціалізація і завершення роботи з SPI. При ініціалізації лінії SCLK (13), MOSI (11) і SS (10) налаштовуються на висновок, виставляючи на SCK і MOSI низький, а на SS - високий рівень. Виклик end() лінії не чіпає, залишаючи в тому ж стані, що й до виклику - просто вимикає блок SPI мікроконтролера.
setBitOrder(order)
Встановлює порядок посилки бітів даних (order):
MSBFIRST - першим йде старший біт посилки (за замовчуванням)
LSBFIRST - першим йде молодший біт
setClockDivider (divider)
Встановлює дільник тактів для SPI щодо основної частоти. Доступні подільники 2, 4, 8, 16, 32, 64 і 128. Відповідні константи мають імена виду SPI_CLOCK_DIVn, де n - дільник, наприклад, SPI_CLOCK_DIV32. За замовчуванням дільник дорівнює 4 - при звичайній тактовій частоті МК на Arduino в 16 МГц SPI буде працювати на частоті 4 МГц. На замітку: якщо пристрій підтримує частоту, скажімо, 1.25 МГц, то потрібно виставити дільник , відповідний цієї чи меншій частоті - 16, наприклад.
setDataMode (mode)
Задає режим роботи SPI, використовуючи константи SPI_MODE0 (за замовчуванням), SPI_MODE1, SPI_MODE2 і SPI_MODE3. Це ті самі режими c параметрами CPOL і CPHA.
transfer (value)
Здійснює двосторонню передачу: передає байт value і повертає байт, прийнята від веденого. Крім того, доступні функції shiftIn (miso_pin, sclk_pin, bit_order) і shiftOut (mosi_pin, sclk_pin, order, value), вони надають програмну напівдуплексний передачу даних по SPI - отакі половинки методу transfer( ): shiftIn( ) тільки приймає, а shiftOut( ) тільки передає дані. Як видно по їхніх аргументів, вони дозволяють використовувати будь-які цифрові Піни Arduino як ліній SPI, але ви самі повинні налаштувати їх як входи / виходи, функції shiftIn() і shiftOut() цього не роблять.
Рис. 2.4 – Конструктивне виконання корпусуMFRC522