Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 02.02.2017, 05:34  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Знакомство с Microchip TCP/IP+pic18f67j60

Здравствуйте.
Думаю поделюсь небольшим опытом в работе с TCP/IP , так как для новичков это тяжело для изучения.Хотя волков боятся,то в лес не ходить.
С чего начать ? Думаю для чего это все(мое мнение,никому не навязываю):
1) Удобство работы через браузер,контроль и установка переменных.
2) RTOS примитивная сделана на стек
3) Научится работать с кучей модулей файлов
4) Опыт о работе сетевых технологий
5) В наличии 10 штук pic18f67j60 лежат с давних времен

Также хочу сказать что стек разработан уже давно,но разрастался с каждой версией и в какой то момент tcp/ip вобще вырезали из mla библиотек. Пользуюсь не самой новой,но понятной для меня.
Версия стека v5.20, компилятор mcc18 v3.47, MPLAB IDE v8.88
Я думал о переносе на xc8 и не стал заморачиваться.

Что такое стек? Это модель OSI,в которой пакет собирает в другой пакет и так до прикладного уровня программ или браузера.
Что такое протокол? Это общение двух устройств по определенному договору обмена информацией.

Скачать компилятор mcc18 v3.47 можно отсюда http://rutracker.org/forum/viewtopic.php?t=3900715
Microchip TCP/IP v5.2 отсюда можно слить http://www.microchip.com/mplab/micro...r-applications Хотя позже выложу свой проект.
Также у меня завалялась платка с тритона http://www.trt.ru/design/solutions/trt-ethernet.htm
Там и схему можно скачать принциапиальную.
По поводу MPLAB IDE v8.88 скачать можно отсюда http://www.microchip.com/development...nloads-archive
Также желательно установить Wireshark для просмотра пакетов и обмена данных по ethernet порт.
Также выкладываю архивом лабораторные работы по стеку на русском.

Есть и противники,что это старо и т.д. , у каждого свое личное мнение.
Выкладывать информацию не так быстро буду.
Пожалуйста негативные мнения и пообщаться в ветку Отвлекитесь, эмбеддеры! ,личное пишите мне в личный кабинет. По делу прошу спрашивать и поправлять.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-02_09-19-36.png
Просмотров: 0
Размер:	26.9 Кб
ID:	109730   Нажмите на изображение для увеличения
Название: 2017-02-02_09-19-04.png
Просмотров: 0
Размер:	226.5 Кб
ID:	109731   Нажмите на изображение для увеличения
Название: 2017-02-02_09-30-50.png
Просмотров: 0
Размер:	43.2 Кб
ID:	109732  

Вложения:
Тип файла: rar ETH_Labs.rar (637.3 Кб, 0 просмотров)
Реклама:
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 02.02.2017 в 06:37.
CERGEI1982 вне форума  
Эти 2 пользователя(ей) сказали Спасибо CERGEI1982 за это сообщение:
cxxz (19.02.2017), mike-y-k (02.02.2017)
Непрочитано 02.02.2017, 07:51  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

Вообще весь стек TCP/IP я в двух словах рассказать не смогу,но попытаюсь.
Сам читал много вникая и то забывается кое что.

Представьте стек это как конфета с несколькими обертками(слои мас-arp или ip) и на каждой обертке написано какому человеку передать по цепочке. То есть,чтоб создать такую конфету каждый человек оборачивает обертку на конфету сверху и получается несколько слоев оберток отправляют куда то в подарок и там где то каждый человек(слой программного обеспечения) забирает обертку одну и в конце остается конфета(информация). Обертки конфеты(информации) и нужны для отправки и доставки кому то определенному. Вот так образно.

Что такое MAC и IP- это адреса удаленного компьютера или устройства с которым мы желаем обмениваться информацией.

Что такое сокет: Это адресация уже в самом компьютере,к IP адресу добавляется порт на котором работает приложение ожидающее информацию с сети( например браузер начинает работать по 80 порту).Так как приложений может быть много на одном компьютере,так и портов много чтобы обратится к определенному приложению.

То есть чтоб адресовать информацию от одного устройства к другому нужно знать мас,IP,порт и все это запихивается в пакет для отправки,с информацией о удаленном хосте,так и свои мас,IP,порт.

Буду обозначать уровни стека снизу верх цифрами и описывая их:
------------------------------------------------------------------------------------
1) Физический- это провода,по простому где меняется сигнал по протоколу физического уровня,бывают разные в зависимости от скорости. У нас работает на скорости 10 Мбит/с,по протоколу 10-BaseT
------------------------------------------------------------------------------------
2) МАС уровень- уже работает с мас адресацией,каждый компьютер или устройство имея порт ethernet-имеет свой уникальный мас адрес. То есть чтоб послать пакет другому компьютеру надо знать как минимум мас адрес.
Физически этот уровень сделан в pic18f67j60, то есть не нужно писать отдельную программу обработки пакетов мас уровня,а просто ложим пакет в определенный регистр и отправляем определенным битом управления. Если по простому
-------------------------------------------------------------------------------------
3) ARP протокол уже упаковывается в пакеты мас уровня. Для чего нужен- чтоб узнать мас адрес удаленного компьютера или устройства для отправки сообщения,при этом зная тока его IP.
3) IP протокол- это протокол дейтаграмм,то есть адресованных определенному компьютеру или устройству пакетов в которых лежит пакет ICMP или TCP или UDP.
-------------------------------------------------------------------------------------
4) ICMP это пинг проще сказать,хотя по этому протоколу передается и служебная информация от роутеров или недоступности порта. Пакет ложиться в пакет IP-›MAC
4) UDP протокол- вот уже можно ложить в него нужную информации для отправки.Вот тут то и появляется еще и порт приложения.
4) TCP протокол- это гарантированная доставка информации,до этого все остальные протоколы не гарантировали доставку,даже если пакет потеряется в сети.
-------------------------------------------------------------------------------------
5) HTTP протокол уже для обмена информацией между сервером и вашим браузером.

Почему вы спросите в интернете не видите IP адресов,все просто есть протокол DNS который преобразует на удаленном сервере ваше название сайта в IP и по этому IP вы уже начинаете обмениваться информацией.

К тому же на рисунке стека ICMP неправильно нарисован. UDP и TCP пакет используют IP пакет для отправки своего сообщения(тела).
Написал много,надеюсь кратко будет понятно.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-02_11-08-50.png
Просмотров: 0
Размер:	7.1 Кб
ID:	109735   Нажмите на изображение для увеличения
Название: 2017-02-02_11-14-57.png
Просмотров: 0
Размер:	48.0 Кб
ID:	109736  
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 02.02.2017 в 07:55.
CERGEI1982 вне форума  
Непрочитано 11.02.2017, 05:58  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

Сам проект тестовый мой TCPIP Demo App-C18.mcp,как же без него будем.
По настройке находим и открываем файлик TCPIPConfig.h и начинаем настраивать нужные опции,для сервера http:
Код:
// ==================================================  =====================
//   Application Options
// ==================================================  =====================

/* Application Level Module Selection
 *   Uncomment or comment the following lines to enable or
 *   disabled the following high-level application modules.
 */
//#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)
//#define STACK_USE_AUTO_IP               // Dynamic link-layer IP address automatic configuration protocol
//#define STACK_USE_DHCP_CLIENT			// Dynamic Host Configuration Protocol client for obtaining IP address and other parameters
//#define STACK_USE_DHCP_SERVER			// Single host DHCP server
//#define STACK_USE_FTP_SERVER			// File Transfer Protocol (old)
//#define STACK_USE_SMTP_CLIENT			// Simple Mail Transfer Protocol for sending email
//#define STACK_USE_SNMP_SERVER			// Simple Network Management Protocol v2C Community Agent
//#define STACK_USE_TFTP_CLIENT			// Trivial File Transfer Protocol client
//#define STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE	// HTTP Client example in GenericTCPClient.c
//#define STACK_USE_GENERIC_TCP_SERVER_EXAMPLE	// ToUpper server example in GenericTCPServer.c
//#define STACK_USE_TELNET_SERVER			// Telnet server
//#define STACK_USE_ANNOUNCE				// Microchip Embedded Ethernet Device Discoverer server/client
//#define STACK_USE_DNS					// Domain Name Service Client for resolving hostname strings to IP addresses
//#define STACK_USE_NBNS					// NetBIOS Name Service Server for repsonding to NBNS hostname broadcast queries
//#define STACK_USE_REBOOT_SERVER			// Module for resetting this PIC remotely.  Primarily useful for a Bootloader.
//#define STACK_USE_SNTP_CLIENT			// Simple Network Time Protocol for obtaining current date/time from Internet
//#define STACK_USE_UDP_PERFORMANCE_TEST	// Module for testing UDP TX performance characteristics.  NOTE: Enabling this will cause a huge amount of UDP broadcast packets to flood your network on the discard port.  Use care when enabling this on production networks, especially with VPNs (could tunnel broadcast traffic across a limited bandwidth connection).
//#define STACK_USE_TCP_PERFORMANCE_TEST	// Module for testing TCP TX performance characteristics
//#define STACK_USE_DYNAMICDNS_CLIENT		// Dynamic DNS client updater module
//#define STACK_USE_BERKELEY_API			// Berekely Sockets APIs are available
Далее для заливки в память странички браузера раскомментируем только:
Код:
#define STACK_USE_MPFS2
Спускаемся ниже,тут настраиваем наш МАС адрес платы и IP,также маску сети,шлюз,днс сервер:
Код:
#define MY_DEFAULT_HOST_NAME			"MCHPBOARD"

#define MY_DEFAULT_MAC_BYTE1            (0x00)	// Use the default of
#define MY_DEFAULT_MAC_BYTE2            (0x04)	// 00-04-A3-00-00-00 if using
#define MY_DEFAULT_MAC_BYTE3            (0xA3)	// an ENCX24J600 or ZeroG ZG2100
#define MY_DEFAULT_MAC_BYTE4            (0x00)	// and wish to use the internal
#define MY_DEFAULT_MAC_BYTE5            (0x00)	// factory programmed MAC
#define MY_DEFAULT_MAC_BYTE6            (0x02)	// address instead.

#define MY_DEFAULT_IP_ADDR_BYTE1        (192ul)
#define MY_DEFAULT_IP_ADDR_BYTE2        (168ul)
#define MY_DEFAULT_IP_ADDR_BYTE3        (0ul)
#define MY_DEFAULT_IP_ADDR_BYTE4        (10ul)

#define MY_DEFAULT_MASK_BYTE1           (255ul)
#define MY_DEFAULT_MASK_BYTE2           (255ul)
#define MY_DEFAULT_MASK_BYTE3           (255ul)
#define MY_DEFAULT_MASK_BYTE4           (0ul)

#define MY_DEFAULT_GATE_BYTE1           (192ul)
#define MY_DEFAULT_GATE_BYTE2           (168ul)
#define MY_DEFAULT_GATE_BYTE3           (0ul)
#define MY_DEFAULT_GATE_BYTE4           (1ul)

#define MY_DEFAULT_PRIMARY_DNS_BYTE1	(192ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE2	(168ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE3	(0ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE4	(1ul)

#define MY_DEFAULT_SECONDARY_DNS_BYTE1	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE2	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE3	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE4	(0ul)
Ниже идут настройки сколько можно портов открывать на нужный сокет по протоколу и размеры выделяемой памяти под определенный протокол,оставил по умолчанию.

Как создать веб страничку?
Нужно написать в любом блокноте страничку на html,потом открываем утилиту MPFS2.exe, выбираем где лежит сайт,также выбираем в каком виде наш образ сайта будет(нам во внутреннюю память контроллера C18/C32 Image). Ну и сам где проект лежит,где будет образ лежать.
Будет регенерирован файл MPFSImg2.с и нужно обязательно пересобрать проект и залить его в микроконтроллер.
Да и сразу дам уточнение,после написания странички сайта сделайте файл index.htm, в настройках TCPIPConfig.h указан какой файл странички веб сервера подгружать. Ошибетесь то не увидите страничку вообще...

Простите я так кратко описываю,но думаю у кого будут вопросы спросят. Пытался задавать вопросы на microchip.su , но местные гуру там не очень то хотят общаться по этим вопросам.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-11_09-28-05.png
Просмотров: 0
Размер:	229.0 Кб
ID:	110061   Нажмите на изображение для увеличения
Название: 2017-02-11_09-26-46.png
Просмотров: 0
Размер:	108.2 Кб
ID:	110062   Нажмите на изображение для увеличения
Название: 2017-02-11_09-26-12.png
Просмотров: 0
Размер:	88.6 Кб
ID:	110063  

Нажмите на изображение для увеличения
Название: 2017-02-11_09-42-58.png
Просмотров: 0
Размер:	96.1 Кб
ID:	110064   Нажмите на изображение для увеличения
Название: 2017-02-11_09-49-15.png
Просмотров: 0
Размер:	17.9 Кб
ID:	110065   Нажмите на изображение для увеличения
Название: 2017-02-11_09-57-47.png
Просмотров: 0
Размер:	206.7 Кб
ID:	110066  

Нажмите на изображение для увеличения
Название: 2017-02-11_10-02-02.png
Просмотров: 0
Размер:	64.3 Кб
ID:	110067  
Вложения:
Тип файла: rar tcp_ip_microchip.rar (3.96 Мб, 0 просмотров)
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 11.02.2017 в 06:02.
CERGEI1982 вне форума  
Непрочитано 11.02.2017, 16:42  
ampy
Гражданин KAZUS.RU
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

CERGEI1982, а сколько флеши из 128к остается от этой библиотеки для юзера, то бишь для бизнес-логики?
ampy вне форума  
Непрочитано 12.02.2017, 15:26  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

Сообщение от CERGEI1982 Посмотреть сообщение
Буду обозначать уровни стека снизу верх цифрами и описывая их
здесь стоит упомянуть "краеугольный камень" - OSI и вики
кроме того, есть немало книг по освоению сетевых протоколов, TCP/UDP в частности
jump вне форума  
Непрочитано 13.02.2017, 02:39  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

Сообщение от ampy Посмотреть сообщение
CERGEI1982, а сколько флеши из 128к остается от этой библиотеки для юзера, то бишь для бизнес-логики?
Хорошый вопрос.
Да в pic18f67j60 128k флеша,посмотрел сколько применяется в мплабе: почему то он показывает мне общая память 65532,использовано 20418. Посмотрел готовый hex файл,весит 113 кб. Сам в этом еще не понял почему так.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-13_06-36-22.png
Просмотров: 0
Размер:	7.1 Кб
ID:	110193   Нажмите на изображение для увеличения
Название: 2017-02-13_06-33-16.png
Просмотров: 0
Размер:	42.0 Кб
ID:	110194  
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Сказали "Спасибо" CERGEI1982
ampy (13.02.2017)
Непрочитано 13.02.2017, 02:42  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

Сообщение от jump Посмотреть сообщение
здесь стоит упомянуть "краеугольный камень" - OSI и вики
кроме того, есть немало книг по освоению сетевых протоколов, TCP/UDP в частности
Понять OSI не так и легко с первого раза.Что такое OSI: Несколько кубиков один на другом ? Абстракция уровней,легче объяснить для чего это все делается и как передается и принимается информация.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 13.02.2017, 02:57  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

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

Куда будет стучаться браузер, если написать https вместо http в строке адреса?

Лучше писать таки правильный текст, а не с точностью до и с оговорками.
У кого-то может возникнуть ложное понимание/уверенность и потом будут проблемы в процессе.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 06.06.2017, 22:59  
AlexNik
Прохожий
 
Регистрация: 06.06.2017
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlexNik на пути к лучшему
По умолчанию Re: Знакомство с Microchip TCP/IP+pic18f67j60

CERGEI1982,

Добрый день. Заинтересовала ваша тема на форуме. Год назад писал для тритоновской платы небольшой TCP/IP стек с нуля. Получилось сделать PING, UDP, ARP, TCP. За основу взял цикл статей: http://we.easyelectronics.ru/electro...lnoy-seti.html

Но потом всё-таки решил освоить микрочиповский стек - довольно сложно писать с нуля HTTP-странички. К PIC18 подключил ENC424j600. Пинги идут, но HTTP страничка не загружается - страница не найдена. 12 пакетов по TCP проходят, но вместо страницы - страница не найдена. Причём при компиляции во Flash МК страница заливается - в чём может быть проблема?
AlexNik вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модем Q2501 без TCP/IP стека. Как скинуть данные на сервер Mike121234 Автоматика и аппаратура связи 3 28.02.2016 16:51
pic18f67j60 tcp/ip dsfj Микроконтроллеры, АЦП, память и т.д 4 02.11.2009 12:15


Часовой пояс GMT +4, время: 17:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot