移植/熟悉过microchip TCP/IP的大虾进来帮我看看呀,求助中...

2020-02-06 10:27发布

客户端使用嵌入式开发的设备(PIC18F66J60),想移植microchip TCP/IP的协议。

客户端很简单,就是向服务器IP地址为目的IP打包数据发送和接收服务器往本IP地址的数据,一切以IP地址为唯一沟通身份,不使用DHCP。
如果想达到这样的目的,需要加载哪些TCPIP的协议呀?
Announce.c
ARP.c
DHCP.c
DNS.c
Helpers.c
ICMP.c
IP.c
MPFS.c
SPIRAM.c
StackTsk.c
TCP.c
Tick.c
UDP.c
SSL.c
FTP.c
HTTP2
NBNS.c
……
对TCPIP不了解呀,大侠指点一二吧。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
kevin_me
1楼-- · 2020-02-06 11:02
你读一下每个文件的说明,在最前面都有讲到,要实现什么功能才需要将相应的头文件include进去。
按照你的要求,TCP、IP、ARP是跑不了的
Announce.c是声明,必须。然后StackTsk.c是最主要的程序调度,必须有。

最后楼主你想使用什么协议(应用层的)需要自行编写或者使用标准的协议,常见的有HTTP,邮件、ftp等,我用过MODBUS TCP。
如果要加入ping支持,还需要把ICMP.C添加进去。
然后建议你看看官方文档AN833.
worksnfkpynn99
2楼-- · 2020-02-06 14:34
kevin_me 发表于 2012-10-24 15:37
你读一下每个文件的说明,在最前面都有讲到,要实现什么功能才需要将相应的头文件include进去。
按照你的要 ...

嗯嗯,说得很好,基本上现在都是这么样做。AN833文档已经看过了,里面详细描述了各协议之间的关系与功能,但我本身对TCP/IP网络没什么概念,比如我知道传输层有三种方式:TCP,UDP,ICMP,我会选择用TCP方式来传输,为什么,不知道。

你说的Announce.c我有点疑问:
这个是原协议栈里面的注释,看红 {MOD}标识行。
=================================================================
* FileName:        Announce.c
* Dependencies:    UDP
* Processor:       PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F, PIC32
* Compiler:        Microchip C32 v1.05 or higher
*                                        Microchip C30 v3.12 or higher
*                                        Microchip C18 v3.30 or higher
*                                        HI-TECH PICC-18 PRO 9.63PL2 or higher
* Company:         Microchip Technology, Inc.
*
* Software License Agreement
==================================================================
// Microchip Embedded Ethernet Device Discoverer server/client

如果我不使用UDP作为传输方式的话,是不是就不需要加入这个协议了呢?
worksnfkpynn99
3楼-- · 2020-02-06 15:46
本帖最后由 worksnfkpynn99 于 2012-10-24 16:05 编辑
kevin_me 发表于 2012-10-24 15:37

QQ五笔截图未命名.jpg (84.69 KB, 下载次数: 0)

下载附件

2012-10-24 16:03 上传

worksnfkpynn99
4楼-- · 2020-02-06 20:09
好像挺少人讨论这个问题的。。。。
kevin_me
5楼-- · 2020-02-07 01:02
 精彩回答 2  元偷偷看……
kevin_me
6楼-- · 2020-02-07 04:59
你可以从上图看出来,很多头文件都是不必要的,官方的工程做的大而全。我的工程对于TCP/IP这块非常简单,就是TCP、ARP、ICMP、和MODBUS TCP的应用层,而且只做服务器端。

如果你想做客户端,则需要做更多额外的工作,比如主动发送ARP、创建MAC地址池等;如果你的客户端与服务器不在一个网段,需用通过路由来转发,则要注意整个通信链路对你控制器端口的影响,做好过滤无效包、广播包什么的。

老兄你用的是ENC28J60这个片子还是ENC424 or624? 28j60这片子有bug,编程阶段你要读一读勘误表,有bug修复的指导。

一周热门 更多>