Веб сервер на ARM микроконтроллере

Веб сервер на ARM микроконтроллереВеб сервер на ARM микроконтроллере довольно популярная тема в сети. Ведь в те давние времена, хотя это было еще не так давно, когда только разрабатывались первые интернет приложения, компьютеры были медленнее и имели меньший объем памяти чем современный ARM микроконтроллер.

И тем не менее на них удавалось сооружать сервера и сети. Поэтому соорудить сервер на современном ARM микроконтроллере задача вполне разрешимая. А если плата с микроконтроллером содержит еще и внешнюю динамическую память то задача становится еще проще.

Не будем вдаваться в подробости работы Ethenet на ARM микроконтроллере. Это большая и объемная тема. В этом посте представлена последовательность запуска веб сервера на готовой отладочной плате SK-MLPC2478 от Starterkit. Отладочная плата выполнена на высоком уровне и является большим подспорьем ей подобным, в первую очередь по оптимальности таких характеристик как цена, качество, функциональность. Поскольку к плате прилагается только принципиальная схема и демо приложения без всяких к ним пояснений, то у тех кто впервые столкнулся с ARM_ами вполне могут возникнуть вроде-бы банальные, но неразрешимые вопросы. В частности тем кто мало знаком с сетями не удастся с наскоку запустить веб сервер на SK-MLPC2478.

Давайте рассмотрим порядок запуска веб сервера на SK-MLPC2478 на базе прилагаемого к ней демо приложения EasyWEB+test+HDMI. Приложение компилируется и загружается в контроллер с помощью IDE Keil через любой ARM-JTAG отладчик. Keil для ARM можно найти на торренте поиском по одноименному ключевому слову.

Веб сервер на LPC-2478

Итак перво-наперво нужно соединить прямым сетевым кабелем DSL модем или роутер и плату. В нашем случае рассматривается модем типа D-Link с дополнительными Ethernert гнездами типа Lan2...Lan4. Использовать можно, например, гнездо Lan2. Что касается демо приложения то, для того, чтобы запустить веб сервер нужно произвести некорые изменения в файле tcpip.h. В частности необходимо настроить IP адреса применительно для вашей сети. Нужно прописать IP адрес шлюза - Default Gateway. Его можно узнать по статусу сетевого соединения, как показано на картинке ниже.

Статус сети

#define GWIP_1 192 // standard gateway (used if remote
#define GWIP_2 168 // IP is no part of our subnet)
#define GWIP_3 1
#define GWIP_4 1

Далее неоходимо присвоить плате IP адрес в соответствии с имеющимся шлюзом - MYIP_4 должно быть в пределах 3...255, поскольку 1 - присваивать нельзя, а 2 - присвоено компу. Например так:

#define MYIP_1 192 // our internet protocol (IP) address
#define MYIP_2 168
#define MYIP_3 1
#define MYIP_4 15

Веб страница от LPC2478

После изменений необходимо откомпилировать демку и зашить ею контроллер. Далее просто набираем в любом браузере 192.168.1.15 и видим интернет страничку показанную на картинке выше. Это и есть ответ сервера на LPC2478. Но это еще не все. В данном случае сервер будет работать только в пределах вашей внутренней сети. Из Мира, тоесть посредством интернет к нему еще не добраться. А жаль. Теряется весь смысл затеи. Но выход достаточно прост. Необходимо сделать перенаправление http запросов из Мира на IP адрес новоиспеченного сервера. Чаще всего это делается с помощью так называемого виртуального сервера, который имеется в интерфейсе управления роутера или DSL модема. Например в модеме D-Link перенаправление можно включить набрав в браузере IP адрес вашего шлюза 192.168.1.1 - откроется веб интерфейс модема. Обычно перед этим потребуется ввести логин и пароль. Если они ранее не устанавливались то по умолчанию Логин - admin (или login) Пароль - password (или pass).

Virtual Server

Далее нужно перейти по ссылке Advanced, а затем по ссылке NAT. На открывшейся странице появится ссылка Virtual Server переход по которой выведет на страницу включения перенаправления. Все устанавливается примерно так, как на картинке, с последующим нажатием на кнопку Save.

HTPP перенаправление

Далее можно закрывать веб интерфейс модема или роутера. Выключить и через 1...2 минуты включить питание. Теперь интернет запрос 192.168.1.15 можно делать из любой точки Мира. Ответом веб сервера на ARM будет все та же страница с заголовком Hello World. Ваш веб сервер заработал в полную силу. Далее все зависит от знания IDE Keil, языка С и фантазии. На базе такого сервера из интернета, а значит даже из мобильника, теперь можно управлять чем угодно - охранной системой, стиральной машиной, видеокамерой, пылесосом с вертикальным взлетом и т. п. Ваш дом теперь вполне может стать умным.

Top.Mail.Ru