- Простой web - сервер на STM32F4Discovery и STM32F4DIS-BB

Web – сервер на платах STM32F4Discovery и STM32F4DIS-BB для отображения простых статических страниц

Практика для студентов. Мясищев А.А.

Для создания web – сервера, который отображает статические web - странички и управляет удаленными объектами по TCP/IP сети необходимо:

1. Установить в ОС Windows 7(XP) пакет программ IAR Embedded Workbench for ARM, причем с лицензией, которая ограничена сроком действия 30 дней, но полностью функциональная (см. 1-ю статью на этом, же сайте).

2. Скопировать с сайта http://www.element14.com/community/docs/DOC-51670/l/stm32f4dis-bb-discover-more-software-examples пример для платы расширения STM32F4DIS-BB (файл STM32F4DIS-BB Software Examples 20130307.zip)

3. Скопировать с сайта http://www.st.com/web/en/catalog/tools/PF258168 и установить утилиту STM32 ST-LINK Utility. Она необходима для программирования микроконтроллера на плате STM32F4Discovery. Если .hex файл имеет большой размер, то программирование с пакета IAR Embedded Workbench for ARMневозможно.

4. Если понадобится, можно скопировать с сайта http://www.st.com/web/en/catalog/tools/PF258167 драйвер ST-LINK/V2 USB driver for Windows.

5. Установить плату STM32F4Discovery на STM32F4DIS-BB по контактным разъёмам и подключить плату STM32F4Discovery кабелем miniUSB к компьютеру, а плату STM32F4DIS-BB кабелем «витая пара» через разъём RJ-45 к порту коммутатора или роутера:

На компьютере клиента установить:

IP – адрес 192.168.1.4;

Маску подсети – 255.255.255.0;

Основной шлюз – 192.168.1.1.

Разархивируем файл STM32F4DIS-BB Software Examples 20130307.zip и зайдем в каталогD:\STM32F4DIS-BB Discover More Software Examples\STM32F4DIS-BB Discover More Software Examples\STM32F4xx_Ethernet_Example\Project\Standalone\httpserver. Здесь расположены подкаталоги:

1. EWARM – здесь находится файл проекта Project.eww web – сервера для пакетаIAR Embedded Workbench for ARM;

2. fs – здесь расположены html файлы, рисунки необходимые для формирования страниц в браузере клиента при подключении к этому серверу;

3. inc – директория подключаемых файлов

4. MDK-ARM – каталог, где находится файл проекта Project.uvproj web – сервера для среды разработки Keil ARM Microcontroller Development Kit. Этот пакет здесь не используется, т.к. размер программы сервера превышает допустимые для свободной лицензии;

5. src – здесь расположены файлы программ на си для демонстрационного сервера в частности:

- fsdata.c - сформированные с помощью утилиты makefsdata.exe html страницы, находящиеся в каталогеfs, которые после компиляции будут размещены в ROM памяти микроконтроллера;

- httpd.c – основной исходный код web – сервера;

- httpd_cgi_ssi.c – исходный файл web – сервера, реализующий SSI и CGI обработчики.

Конфигурирование web – сервера. Построение простой web – странички.

1. В каталоге EWARM запускаем файл Project.eww.

Должна открыться среда разработки IAR Embedded Workbench for ARM. Заходим последовательно в каталог USER, mail.c и высвечиваем текст mail.h:

Устанавливаем в месте подсветки текста нужные mac – адрес, ip – адрес, шлюз, маску сети.

Аналогично заходим в файл http.c и устанавливаем номер порта, на котором работает сервер. В исходной программе он имеет значение 80. Здесь – 8080:

Рассмотрим создание простейшей web – странички с одним рисунком. Для этого заходим в редактор «блокнот» и создаем html документ:

В рабочем каталоге создаем подкаталог fs и записываем его туда под именем index.html. В этот же каталог копируем рисунок foto_stm32.jpg. В рабочем каталоге должна находиться утилита makefsdata.exe. Ее можно взять здесь. Запускаем эту утилиту:

В рабочем каталоге появится файл fsdata.c, который необходимо скопировать в каталог

D:\STM32F4DIS-BB Discover More Software Examples\STM32F4DIS-BB Discover More Software Examples\STM32F4xx_Ethernet_Example\Project\Standalone\httpserver\src. После этого выполняем компиляцию программы:

и передачу кода в микроконтроллер, переходя по вкладкам Project -> Download -> Download active application.

После подключения к серверу в браузере клиента должно появиться следующее изображение:

Недостатком этого сервера является отсутствие возможности с помощью него удаленного управления по TCP/IP сети. В следующей части рассмотрено управление четырьмя удаленными устройствами.