Содержание
Программа TCPIPConfig – простое конфигурирование Ethernet устройства.
Компания Microchip поддерживает свою бесплатную реализацию TCP/IP стека уже много лет. Стек оптимизирован для использования с микроконтроллерами семейств PIC18, PIC24, dsPIC и PIC32. Стек делится на несколько слоев, каждый из которых имеет доступ к соседнему через различные сервисы.
Предлагаемый 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-устройство?
Необходимое Программное обеспечение:
- MPLAB IDE (MPLAB X) www.microchip.com/MPLAB
- Cи компилятор MPLAB С18, MPLAB С30 или MPLAB C32 (в зависимости от используемого микроконтроллера) или MPLAB XC
- MPLAB C18 www.microchip.com/C18
- MPLAB C30 www.microchip.com/C30
- MPLAB C32 www.microchip.com/C32
- MPLAB XC www.microchip.com/xc
- Библиотека Microchip Application Library www.microchip.com/MAL
Для начала, необходимо отметить, что библиотека хорошо структурирована и легко перенастраивается под использование тех или иных сервисов 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).
Рис. 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-микроконтроллеру.
















Обсуждение
Error: Call to undefined method helper_plugin_avatar::getXHTML()
An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the discussion plugin.
More info has been written to the DokuWiki error log.