Wiznet W5100与Microchip ENCx24J600


8

使用Wiznet W5100或Microchip EncX24J600的利弊是什么?

解释起来有点复杂。

我的问题是关于芯片上的Microchip TCP堆栈与Wiznet TCP / IP内核的性能。还涉及费用($$)。

例如:使用Wiznet,微控制器将减少处理,从而使微控制器可以执行其他任务。但是我认为这取决于您正在工作的哪一层。

使用Microchip TCP堆栈,也许我可以控制的外围设备受到限制。也许我将不得不使用第二个微控制器。

因此,我希望我已经为您提供更好的解释,以帮助您做出最佳选择。


我已经准备好研究解决方案以执行类似的操作。谢谢你的慰问。
Kortuk

1
ENCX24J600是否有特殊原因?ENC28J60更受欢迎。
Kevin Vermeer

1
@reemrevnivek我需要以100 Mbps的速度进行通信。
丹尼尔·格里洛

1
W5100通过效率非常低的协议与单向速度链接链接(它会向每个数据字节iirc发送一个16位地址)。因此,您获得了(SPI链接)/ 3作为有效的半双工最大速度。另请参阅以下我的完整答案
Marco van de Voort,2017年

Answers:


3

W5100在芯片上具有TCP / IP内核。使用Microchip ENC器件,用户必须自己在与其相连的MCU上实现TCP / IP堆栈。使用合适的PIC,这非常容易,因为Microchip提供了免费的TCP / IP堆栈。

W5100的优点是几乎可以与任何MCU一起使用,但是如果使用ENC芯片,则需要功能相当强大的设备来运行TCP / IP堆栈。

当然,另一种选择是使用带有内置MAC和PHY的MCU。Microchip做出了一些不错的选择,并且它们也带有ARM变体。


这就是我所了解的范围。
Kortuk

2

我工作的公司使用PIC18F97J60。这是一个具有内置MAC和PHY的8位微处理器,与ENC24J60非常相似。如果您打算使用PIC微处理器,则可以使用Microchip TCP / IP堆栈。该堆栈提供了直到应用程序层的所有内容。如果您使用的是非微芯片处理器,我认为您只能使用ENC24J60驱动程序。也就是说,Wiznet似乎将传输层集成到了硬件中,而不仅仅是MAC和PHY。但是,他们将其留给开发人员来实现Telnet,FTP和HTTP等应用程序层。


需要注意的一点是,PIC18F97J60似乎只能保证100个闪存写周期,因此可能是一个开发上的问题。ww1.microchip.com/downloads/zh-CN/DeviceDoc/39762e.pdf(第429页)
Toby Jaffey 2010年

最小写周期为100。典型值为1k。我从来没有问题。
mjh2007

该数字可能会超出整个温度范围,因此正常温度下的耐力不太可能成为问题。
mikeselectricstuff 2010年


1

我知道它已经很旧了,但是去年我恰好用dspice完成了此操作,因此我将总结一下,以使他人受益。

首先,我不会使用W5100,但是它的兄弟W5500基本上是一个修订版,并且可以更好地利用SPI。我还将考虑切换到具有DMA的部件,特别是如果您只想使其成为UDP。

在这两种情况下,您可能都将使用Microchip MLA TCP / IP堆栈,Wiznet为此提供了补丁。

不幸的是,所有Microchip TCP / IP堆栈变体似乎都阻止了通过SPI的通信(没有DMA,没有增强的缓冲模式)。我试图将其缩减为仅UDP,并剪切了整个微芯片部分(直接使用wiznet底层驱动程序并在此过程中对其进行重写)。

我也同意MJH的观点,使能DMA的PIC18F97J60比具有ENC的便宜PIC是一个更好的选择(除非您的数字很高),但我对TCP / IP并没有真正利用J60的好处感到失望。到最小公分母

使用IP部件而不是以太网部件的优势在于,您可以将套接字限制在某个端口上,而不必通过SPI链路传输任何无关的流量。W5500每个插槽有4KB,我使用一个单独的插槽进行接收和发送,以最大程度地利用缓冲区。

我当前的UDP堆栈仅对wiznet中断做出反应,并且不会下载不需要的有效负载数据。我使用UDP,尽管它是基于数据包的(没有流),并且在端口上使用广播进行发送(以避免为ARP目的而缓存MAC数据,但回想起来,这可能不是最佳的优化方法)。

在60MIPS dspice上,往返(接收一个小数据包,用一个小数据包应答)大约需要100-120us,其中大约10-12us是三个不同块(接收前(3-5us),接收后和发送前的CPU时间) (取决于我们5-7)并发送后发送(2us)每隔2kb,我必须进行一些维护,即大约40us的挂墙时间和5us的CPU时间。

短命令使用增强型缓冲区来完成。使用DMA的时间更长(在dspice上,DMA在字节之间需要2位时间(或在16位模式下为字),而增强缓冲区则不需要。

该套件尚未打开,但如果某人需要指针,请在评论中回复。我计划在明年将堆栈移植到pic32(mk)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.