Жизнь современного человека невозможно представить без всевозможных гаджетов, электронных приборов, вычислительной или бытовой техники. В основе большинства из вышеперечисленных устройств лежат микроконтроллеры. Микроконтроллер - это микросхема, содержащая в себе микропроцессор, прилегающую к нему периферию, ОЗУ и ПЗУ. Микроконтроллеры используются в вычислительной, бытовой технике, в промышленности, причём они могут управлять, как и всем устройством в целом, так и конкретной его частью. При разработке микропроцессорных систем, в состав которых может входить множество микроконтроллеров (системы управления умными домами) перед разработчиками встаёт задача, заключающаяся в объединении всех микроконтроллеров входящих в систему, в единую сеть. То есть заставить микроконтроллеры общаться, изменять ход выполнения программы на основе данных, полученных от других микроконтроллеров, синхронизировать устройства им подконтрольные и работающие в паре (приводы). В качестве связующих элементов выступают интерфейсы передачи данных. На данный момент их существует огромное множество. Их различают:
По сферам применения (промышленность, домашняя сфера)
По сложности реализации (количество информационных линий, программная реализация)
Также присутствует задача объединения микроконтроллера с сетью интернет. Такой тандем позволит управлять работой контроллера удалённо или также удаленно получать от него информацию. Для достижения этой цели изучались интерфейсы передачи данных SPI, протокол передачи данных Ethernet, а также архитектура Ethernet-модуля на базе микросхемы ENC28J60.
SPI интерфейс (англ. Serial Peripheral Interface - последовательный периферийный интерфейс). Данный интерфейс применяется в случаях, когда нужно наладить связь между несколькими микроконтроллерами, находящимися в непосредственной близости без использования большого количества информационных линий.
Рисунок 1. Реализация SPI интерфейса с несколькими ведомыми устройствами.
Протокол передачи данных SPI.
SPI интерфейс служит для приёма и передачи данных в режиме полного дуплекса (режим передачи данных, при котором данные передают ведущее и ведомое устройство одновременно), который предназначен для организации простого и высокоскоростного сопряжения микроконтроллера и периферии. Принципиальная схема реализации этого интерфейса включает в себя одно ведущее устройство (англ. Master) и от одного до нескольких ведомых устройств (англ. Slave). В рамках этой работы рассмотрим схему с одним и двумя ведомыми устройствами.
Для организации приёма и передачи данных необходимо всего четыре цифровых сигнала. Схематично информационные линии представлены на рисунке 1. Рассмотрим их поподробнее.
MOSI (англ. Master Out, Slave In) - Служит для передачи данных от ведущего устройства к ведомому.
MISO (англ. Master In, Slave Out) - Служит для передачи данных от ведомого устройства к ведущему.
SCLK или SCK (англ. Serial Clock) - Служит для передачи тактового сигнала для ведомого устройства.
CS (англ. Chip Select) или SS (англ. Slave Select) - Служит для выбора ведомого устройства.
Названия этих сигналов могут различаться в зависимости от производителя.
Была изучена работа SPI интерфейса и написана программа, организующая передачу данных через SPI интерфейс. Изучена работа микросхемы ENC28J60 и написана программа инициализации микросхемы и последующей передачи данных. Изучены основы передачи данных в сети, и работа протоколов канального (Ethernet) и сетевого (IP, ARP, ICMP) уровня.