国外论坛帖子:什么样的单片机能很好地应用于以太网应用程序呢?

Home / 博客 / 国外论坛帖子:什么样的单片机能很好地应用于以太网应用程序呢?

国外电子工程论坛“Electrical Engineering”上出现了一个关于“什么样的单片机能很好地应用于以太网应用程序呢?或者说我只是需要一个好的以太网软件库(将单片机)连接以太网MAC/PHY就可以?”的帖子(http://electronics.stackexchange.com/questions/297/what-is-a-good-microcontroller-for-ethernet-applications),国外的电子爱好者对此展开了积极的讨论,想必这也是大伙儿比较感兴趣的一个话题,我也将部分内容小小整理一下后分享给大家。

以下是楼主的提问:

图1

“什么样的单片机能很好地应用于以太网应用程序呢?或者说我只是需要一个好的以太网软件库(将单片机)连接以太网MAC/PHY就可以?”

这是楼主的提问,传统的以太网解决方案是将TCP/IP软件协议栈烧入单片机中,这也是大多数开发者比较习惯和容易理解的做法。我们也能在原网页中看到有些回帖者也正是这样的做法。然而,它就是最好的解决方案吗?让我们看看一些网友提供的不同的解决方案。

————————————————————————————————-

     图2

让我们看看其中一位朋友的回答(如图2所示):“一般来说,以太网功能不是取决于单片机,首先你需要通过Jack模块将能用于以太网的信号转变为能被单片机处理的信号…另外你需要一个TCP/IP软件协议栈,工作在上层,就像是一些像DHCP、DNS等等所有你期望使用的协议”,“如果你的拥有能运行Linux系统这样强大的ARM处理器,那么一切都不会是问题,这就像在装有Linux系统的PC机上开发网络应用程序一样简单”但实际情况中,低位的低端单片机依然占据着很大的市场,这些单片机如果嵌入软件TCP/IP协议栈,将会负载累累,正如这位朋友所说的“如果你将整个TCP/IP协议栈用软件的方式实现,那么情况会比较比较复杂。

说了软件TCP/IP协议栈的局限性后,这位用户也提到了WIZnet的以太网解决方案。

“…一个常见的解决方案是使用WIZnet W5100这样的芯片,它能帮你处理底层的TCP/IP协议它也集成有以太网控制器,并且整体价格也比较低廉…它通过SPI接口进行连接通信,不会占用单片机太多的I/O引脚。”这位用户很好地解释了全硬件TCP/IP协议栈的优点:它能卸载主处理器对软件协议栈的处理负担,并且WIZnet的以太网芯片使用“全硬件TCP/IP协议栈+MAC+PHY”的一条龙服务形式,让主控芯片直接通过以太网芯片直接连接到以太网接口,为用户的使用提供了极大的便利性。

——————————————————————————————-

 图3

另一位回帖者(如图3)回答道:“这取决对它的用途主要问题是你的RAM资源是否能满足你的用途…我用Arduino的以太网扩展板,它能同时开4个socket口,虽然应用在复杂的网页上或许有点压力,但访问Pachube(物联网创业公司)、twitter这样的网站是不成问题的!”

这个回帖中提到的Arduino的以太网扩展板正是基于WIZnet公司的全硬件TCP/IP协议栈的以太网芯片!的确,WIZnet作为Arduino的官方合作伙伴,为其提供以太网扩展的解决方案,明显地提升了整个开发板系统接入网络的性能,具体信息您可以查考我们的官方博客或官方网站的开源硬件板块。

———————————————————————————————

 

另外还有一位回帖者的回答着实让我兴奋不已。

图4

如图4所示,这位用户尝试过Microchip提供的软件协议栈,“但是一点也不满意”。“我认为现在市场上最好的解决方案是WIZnet率先研发的基于全硬件TCP/IP协议栈的以太网控制芯片,它能为你节约很多的时间,让你的开发更有效率!

这位开发者同时有着Microchip软件协议栈和WIZnet以太网解决方案的使用经验,而他认为使用WIZnet以太网解决方案更有优势。事实上,WIZnet也是Mircochip的合作伙伴,也为其某款产品提供过以太网接入解决方案,WIZnet专注于全硬件TCP/IP协议栈,它的以太网解决方案也受到许多产业巨头的认可。(详见我们的官方博客或网站:首页

 

对于国内的广大开发者来说,WIZnet的以太网解决方案可能比较陌生,传统的软件协议栈的实现方式或许更容易被理解和接受,但是WIZnet的相关芯片产品已经在海外市场受到了广泛的肯定,随着WIZnet在国内市场的深入,我相信这种以太网解决方案也会逐渐被大家认可。既然有用户“信誓旦旦”地说“它是目前市面上最好的解决方案”,或许应该有他的道理吧,Why not have a try? ^_^