ься з опкода і аргументу. При читанні або запису регістра, аргумент містить адреса регістра. Основні команди представлені в таблиці 1.
Таблиця 1 - SPI команди для ENC28J60 (команди управління від AVR)
КомандаОпкодАргументДанние7654321076543210Чтеніе регістра000ааааа -------- Читання буфера00111010 -------- Запис регістра010аааааddddddddЗапісь в буфер01111010ddddddddСброс11111111 --------
Для читання регістра контролер відправляє ENC28J60 команду читання регістра і забирає значення. При читанні регістрів MAC або MII, контролер повинен пропустити 1 «помилковий» байт, потім прочитати значення.
Перед тим, як здійснювати доступ до певного регістру, потрібно вибрати банк. Щоб не відправляти команду перемикання банку при кожній операції з регістром, можна закешовану поточний банк і перемикати банк тільки при необхідності.
Обмін даними з AVR ENC28J60 реалізує пакетами. Відправляються і прийняті пакети знаходяться в кільцевому буфері. Буфер і структура пакетів представлена ??в таблиці 2
Таблиця 2 - Структура і опис пакетів для обміну даними
НазваніеСтруктураОпісаніеБуферERXST, ERXND - адреса початку і кінця кільцевого буфера для прийнятих пакетів.
ERXRDPT, ERXWRPT - покажчики кільцевого буфера. Дійшовши до кінця буфера (ERXND), покажчик ERXRDPT переміщається на його початок (ERXST).
ERXRDPT - вказує на те місце, звідки мікроконтролер буде забирати прийняті пакети.
ERXWRPT - вказує на місце, куди приймач покладе наступний прийнятий пакет.
ETXST і ETXND - початок і кінець відправляється пакета. Наприклад, якщо ми хочемо отруїти пакет розміром 256 байт, що лежить в буфері за адресою 0x1800, встановлюємо ETXST в 0x1800 і ETXND в 0x18ff.ОтправкаУправляющій байт - дозволяє перевизначити деякі налаштування MAC для відправки цього пакета.
Дані пакета - 1 або більше байт (до 1400) переданих данних.Пріем ENC28J60 записує пакети в кільцевий буфер у вигляді пов'язаного списку.
Адреса першого непрочитаного пакету зберігатися в регістрах ERXRDPT. Забравши пакет, мікроконтролер записує в ERXRDPT адреса наступного пакета. Після цього місце, яке займав пакет вважається вільним і ENC28J60 може використовувати його для прийому нових пакетів.
Статус прийому - довжина пакета (2 байти) і прапори (теж 2 байти).
Всі прийняті пакети ENC28J60 записує в буфер з вирівнюванням на 2 байта. Таким чином, адреса пакета завжди парний. Для того, щоб забрати прийнятий пакет, мікроконтролер робить наступне:
1) Дивиться скільки прийнято пакетів (в регістрі EPKTCNT). 2) Читає пакет з буфера (за адресою ERXRDPT). 3) Записує в ERXRDPT адреса наступного пакета. 4) Зменшує значення лічильника пакетів
Структурна схема пристрою сполучення мікроконтролера Atmega328 з мережею Ethernet представлена ??на малюнку 10:
Рисунок 10 - Структурна схема пристрою сполучення мікроконтролера Atmega328 з мережею Ethernet
Принципова схема пристрою сполучення мікроконтролера Atmega328 з мережею Ethernet представлена ??на малюнку 11.
Малюнок 11 - Принципова схема поєднання Atmega328 з мережею Ethernet
Взаємодія мікроконтролера Atmega328 з чіпом ENC28J60 реалізується через SPI інтерфейс. SPI - це послідовний синхронний стандарт передачі даних в режимі повного дуплексу lt; # justify gt; · MOSI (SI) - вихід ведучого, вхід веденого. Служить для передачі даних від ведучого пристрою веденого.
· MISO (SO) - вхід ведучого, вихід веденого. Служить для передачі сигналів від веденого пристрою ведучому.
· SCLK (SCK) - послідовний тактовий сигнал. Служить для передачі тактового сигналу для ведених пристроїв.
· CS (SS) - вибір мікросхеми, вибір веденого.
Зв'язок веденого і ведучого пристрою представлена ??на малюнку 12:
а) б)
Рисунок 12 - Сполучення ведучого і ведених пристроїв по шині SPI (а) - ведені пристрої об'єднані, б) ведені пристрої незалежні)
. 2.3 Обгрунтування вибору Wi-Fi модуля
Wi-Fi чіп повинен відповідати таким вимогам:
1) Підтримувати взаємодію з мікроконтролером Atmega328 по інтерфейсу SPI, що є найкращим при програмуванні.
2) Працювати за стандартом бездротових мереж IEEE 802.11. Це дає можливість взаємодіяти з системою з звичайного ноутбука або wi-fi роутера без додаткового трансивера.
) Підтримувати передачу даних зі швидкостями бла-бла
) Енергоспоживання в межах бла бла для забезпечення працездатності системи ...