- Простой 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 сети. В следующей части рассмотрено управление четырьмя удаленными устройствами.