Программа TCPIPConfig – простое конфигурирование Ethernet устройства.

Компания Microchip поддерживает свою бесплатную реализацию TCP/IP стека уже много лет. Стек оптимизирован для использования с микроконтроллерами семейств PIC18, PIC24, dsPIC и PIC32. Стек делится на несколько слоев, каждый из которых имеет доступ к соседнему через различные сервисы.

структура TCP/IP стека

Предлагаемый Microchip стек протоколов TCP/IP имеет следующие особенности:

  • Оптимизирован под все семейства микроконтроллеров PIC18, PIC24, dsPIC и PIC32.
  • Поддержка протоколов ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP
  • Поддержка сокетов TCP и UDP
  • Поддержка Secure Sockets Layer (SSL)
  • Поддержка сервиса NetBIOS Name
  • Поддержка Системы Доменных Имен – DNS – Domain Name System
  • Поддержка Ethernet Device Discovery
  • Поддержка компиляторов MPLAB C18, C30 и C32

Как быстро сконфигурировать и запустить свое Ethernet-устройство?

Необходимое Программное обеспечение:

Для начала, необходимо отметить, что библиотека хорошо структурирована и легко перенастраивается под использование тех или иных сервисов TCP/IP, любой тип контроллеров Microchip, внешнюю периферию.

За конфигурацию «железа» отвечает заголовочный файл HardwareProfile.h, за настройки стека – TCPIPConfig.h. Соответственно, если мы используем не готовую демонстрационную плату, а что-то свое, то в файле HardwareProfile.h нам необходимо «переподключить» используемые выводы микроконтроллера к индикатору, светодиодам, кнопкам, внешней памяти и пр.

Чтобы добавить или исключить те или иные сервисы стека TCP/IP – нужно править файл TCPIPConfig.h. Большинство настроек реализовано в виде define:

#define STACK_USE_UART					// Application demo using UART for IP address display and stack configuration
#define STACK_USE_UART2TCP_BRIDGE		// UART to TCP Bridge application example
//#define STACK_USE_IP_GLEANING
#define STACK_USE_ICMP_SERVER			// Ping query and response capability
#define STACK_USE_ICMP_CLIENT			// Ping transmission capability
//#define STACK_USE_HTTP_SERVER			// Old HTTP server
//#define STACK_USE_HTTP2_SERVER			// New HTTP server with POST, Cookies, Authentication, etc.
//#define STACK_USE_SSL_SERVER			// SSL server socket support (Requires SW300052)
//#define STACK_USE_SSL_CLIENT			// SSL client socket support (Requires SW300052) 
...

«Закоментаривая» или «раскоментаривая» те или иные строки мы подключаем к проекту те или иные сервисы, соответственно управляем функционалом устройства и размером получаемой прошивки.

Все просто? Да! Однако есть еще более простой способ конфигурации TCP/IP стека – утилита TCPIPConfig, входящей в состав библиотеки..

Рассмотрим работу с утилитой TCPIPConfig.

Запускаем TCPIPConfig.exe

Выбираем путь к конфигурируемому проекту, задаем нужно ли конфигурировать беспроводную сеть (Да, стек поддерживает и работу с Wi-Fi модулями ZG2100/ZG2101, MRF24WB0MA/ MRF24WB0MB и MRF24WG0MA/ MRF24WG0MB).

TCPIPConfig

Рис. 1.

Далее выбираем необходимые в проекте протоколы. Для начала создадим простой мост Ethernet-UART.

Рис.2.

Обратите внимание, если навести указатель мышки на тот или иной пункт, то увидите подсказку. Так мост RS232-Ethernet будет использовать порт 9761.

Рис.3.

Задаем доменное имя платы и MAC адрес.

Рис.4.

Готово!

Рис.5.

Открываем в среде разработки MPLAB IDE наш проект, компилируем и прошиваем контроллер.

Рис.6.

На индикаторе платы Explorer 16 видем IP адрес платы, теперь можно открыть соединения через Ethernet и COM-порт (RS-232) и проверяем связь.

Рис.7.

Рис.8.

Связь есть! Все работает.

Таким простым способом мы настроили TCP/IP стек и реализовали передачу данных с UART (RS-232) через Ethernet и можем удаленно через сеть передавать файлы, отлаживать или управлять приборами и т.п.

Немного усложним задачу – добавим в проект web-сервер. Снова запускаем TCPIPConfig.exe, только теперь еще помечаем что нам нужен web-сервер.

Рис.9.

Дополнительно указываем имя заглавной html странички, место где будут храниться файлы нашего сервера (файлы хранятся не в виде исходных файлов html, jpg и т.п., а их нужно будет преобразовать в внутреннюю файловую систему MPFS с помощью соответствующей утилиты).

Рис.10.

Рис.11.

Компилируем, прошиваем проект, в браузере открываем адрес нашего web-сервера. Так как сервер пока пуст, то со страницы /mpfsupload выбираем и заливаем на сервер образ нашего «минисайта».

Рис.12.

Теперь мы получили готовый web-сервер и мост RS-232-to-Ethernet.

Рис.13.

Данный пример web-сервера содержит демонстрацию возможностей стека TCP/IP – отсылку e-mail, загрузку файлов, аутентификацию, настройку сетевых параметров узла (которые защищены паролем).

Рис.14.

Рис.15.

Совместимость стека

Как отмечалось ранее, TCP/IP стек совместим с микроконтроллерами семейств PIC18, PIC24, dsPIC и PIC32.

В качестве Ethernet-контроллера могут применяться:

  • PIC18FxxJ60 (контроллеры со встроенным Ethernet MAC + PHY)
  • PIC32MX6xx, PIC32MX7xx (контроллеры со встроенным Ethernet MAC)
  • ENC28J60 (10Base-T, MAC+PHY, SPI-интерфейс для подключения к любому PIC-микроконтроллеру).
  • ENC424J600, ENC624J600 (10/100Base-T, MAC+PHY, SPI- и параллельный интерфейс для подключения к любому PIC-микроконтроллеру).

Для обеспечения беспроводной связи по Wi-Fi стек поддерживает:

  • ZG2100/ZG2101 и MRF24WB0MA/MRF24WB0MB Wi-Fi модули с SPI-интерфейсом и подключением к любому PIC-микроконтроллеру.

Дискуссия

Владимир, 05/08/2010.12:02

Уважаемый pickit2, не могли бы Вы в статье добавить ссылки на необходимые компиляторы. Заранее благодарен.

pickit2, 06/08/2010.18:15

ОК, см в начале статьи

Максим, 14/01/2011.00:23

Добрый День. Нужна консультация по запуску ZG2100/ZG2101 и MRF24WB0MA/MRF24WB0MB Wi-Fi модулей . Есть люди,которые в этом хорошо разбираются? спасибо

сергей, 19/07/2011.16:19

Очень уж кратко,вот бы рассказано было что от чего зависит и в ручную собрать проект под пинг…. Автоматом проект не очень хорош будет,пока не разберешься в внутри исходников.

Andrew, 29/02/2012.00:01

Уважаемые! Какие именно PIC можно использовать? Только не дорогие. Столкнулся сбольшими сложностями.

pickit2, 01/03/2012.17:50

PIC18F66J60, PIC18F67J60

all_articles/tcpipconfig.txt · Последние изменения: 19/07/2013.13:39 — pickit2
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0