Сьогодні ми спробуємо підключити наш контролер до локальної мережі за допомогою модуля на мікросхемі ENC28J60.
Даний модуль виглядає ось так
Внутрішня структура мікросхеми є такий вигляд (натисніть на картинку для збільшення зображення)
Ми бачимо тут, що у нас існують керуючі регістри, в які ми будемо відправляти певні команди для управління тими чи іншими діями і настройками, Також ми бачимо буфер розміром 8 кілобайт для отримання і відправки даних по мережі.
Поставляється мікросхема в різних корпусах. На нашому модулі вона в корпусі, призначеному для поверхневого монтажу.
В якості контролера, який ми будемо приєднувати до даної мікросхемі, ми візьмемо МК Atmega328P, який знаходиться на готової отладочной платі, яку ми з вами вже використовуємо активно останнім часом.
Для підключення модуля є наступний роз'єм
Всі позначення контактів ми бачимо праворуч.
До отладочной платі ми підключимо модуль наступним чином
ENC28J60 - ATMEGA328
VCC - VCC
GND - GND
CS - 10
RESET - VCC
SI - 11
SCK - 13
SO - 12
Крім усього іншого ми до плати підключимо перехідник USART таким же чином як і на попередньому занятті.
Регістри в мікросхемі організовані таким чином
Основне призначення регістрів можна дізнатися по їх початковими літерами в абревіатурі
E - Ethernet,
Саме з деякими регістрами ми будемо знайомитися вже при написанні вихідного коду, так як його буде дуже багато і до того моменту, коли нам буде потрібно той чи інший регістр, ми вже забудемо його призначення.
Взагалі мережева модель ділиться на кілька рівнів. Основні з них такі:
1. Прикладний рівень
2. Рівень представлення
3. Сеансовий рівень
4. Транспортний рівень
5. Мережевий рівень
6. Канальний рівень
7. Фізичний рівень
Вообщем коротко якось ось так. Поконкретней з протоколами будемо знайомитися в міру їх використання.
Ну давайте, щоб від цієї всієї теорії трохи відволіктися, створимо наш проект, назвемо його по імені нашої використовуваної мікросхеми невигадливо - ENC28J60.
І проекту попереднього заняття візьмемо свою бібліотеку для USART і підключимо, щоб не складати її заново, а також можна взяти і підключити звідти файл main.h.
Також створимо ще чотири файли: net.c, net.h, enc28j60.c і enc28j60.h.
Після всіх первинних налаштувань файлів вони у нас будуть такого змісту.
USART_Init (16); // Задамо швидкість роботи USART 115200