对于以太网应用,什么是好的微控制器?


47

什么是做以太网应用的好微控制器?还是只需要一个良好的以太网库来连接以太网MAC / PHY?


您能告诉我们您选择了什么解决方案以及您的经验吗?
thom_nic 2015年

1
我目前正在使用带有ENCxxx的PIC18F97J60系列和PIC32。可以。最大的陷阱是它最多只能支持SSLv3.0,而Firefox和Chrome刚刚将其删除。Microchip确实支持我使用的许多其他协议:FTP,TFTP,SNTP,SNMP。
罗伯特

很好听-SSL限制也很容易理解,但是似乎所有“健壮”的TLS实现通常都是非免费的。感谢分享!
thom_nic 2015年

Answers:


29

Microchip内置以太网的PIC18芯片非常适合此操作,只需添加一个magjack(或其他具有内置磁性的连接器)并下载其TCP / IP堆栈。您将立即进行ping操作。更为急切的是,PIC24和PIC32还具有TCP / IP堆栈,旨在与它们提供的SPI以太网MAC / PHY之一(ENC624J600或ENC628J60)一起运行。

意法半导体最近还增强了其基于ARM Cortex的STM32产品线,使其包含片上以太网,但是您将需要外部PHY和磁性器件。如果您已经在使用PIC32,那么这是一个选择。


16
我在Microchip网络堆栈中遇到了问题,因此我编写了自己的堆栈,并使用PIC开发工具版本的embedinc.com/pic/dload.htm中的源代码免费提供了它。您确实必须接受我们的PIC开发环境的概念(也是免费的),但这还是一个好主意。安装后,在SOURCE> PIC目录中查找名称中带有“ net”的文件。
奥林·拉斯洛普

20

关于TCP / IP堆栈,您应该查看三个项目:

Contiki是一种开源,高度可移植的多任务操作系统,用于内存效率高的网络嵌入式系统和无线传感器网络。Contiki已被用于各种项目,例如公路隧道火灾监控,入侵检测,波罗的海和监控网络中的水监控。

Contiki专为具有少量内存的微控制器而设计。一个典型的Contiki配置是2 KB的RAM和40 KB的ROM。

开源uIP TCP / IP堆栈提供了与微型嵌入式8位微控制器的TCP / IP连接,并保持了互操作性和RFC标准合规性。


17

通常,以太网不是内置在微控制器中的。首先,您需要一个可以将以太网信号转换为微控制器读取的信号的插孔(通常称为“磁性”)。然后,您需要一个TCP / IP堆栈,此外,您还需要DHCP,DNS和要使用的其他协议。因此,您使用的实际微控制器并不重要。如果您获得了功能强大的功能(例如运行Linux的ARM),那么为其开发将非常简单,几乎与编写在运行Linux的台式PC上运行的网络应用程序一样。或者,您可以选择功能更强大,价格更便宜的产品,例如AVR或PIC。

如果要在软件中实现整个TCP / IP堆栈,则以太网和TCP / IP可能会非常复杂。一种常见的解决方案是使用Wiznet的W5100芯片之类的东西,该芯片可以为您处理所有底层TCP / IP内容。您可以在预制模块中购买它,该模块包括以太网连接器和相当便宜的所有产品,WIZ812MJ模块约为20美元。您只能使用SPI与之通信,因此在您的微控制器上不需要很多I / O引脚。

Lantronix还提供了一些功能更强大的模块,这些模块看起来更易于使用,但它们的价格更高(根据型号的不同,价格为50至100美元)。例如,请参见他们的XPort


1
我很乐意看到“磁性”一词的著名参考,因为我从未听说过。
安德鲁(Andrew)2010年

@Andrew我不知道有它的任何技术词典。谷歌搜索它会找到各种参考。这就是我所看到的。基本上,它们的目的是将您的电路与通过以太网连接的其他设备隔离。类似于MIDI使用光学隔离的方式。
davr 2010年

与“以太网磁学”相比,“以太网隔离器”的结果多出约一百万,但我现在明白您的意思了。
安德鲁(Andrew)2010年

在“ Hack A Day”上有关电容耦合的文章中,对该术语的起源和使用进行了讨论。
安德鲁

我只是在看以太网收发器数据表(Microchip的LAN8720A),该部分的不同名称为“ Mag”和“ Transformer”。
丹·埃利斯

11

ARM是当今的微控制器,恩智浦提供了广泛的产品。截止到该日期(2011-07-13),该网页实际上列出了太多的以太网控制器,无法在此处全部提及:

17个ARM7设备
2个ARM9设备
16个Cortex-M3设备

编辑
我将ARM优势讨论移至此答案


手臂线有什么好处。我看到许多其他答案需要更详细的说明,重要的是,您要给出一个理由,说明为什么该行比起控制器行更重要。我仅向您提供此反馈,因为您对用户的了解过于丰富,无法给出最佳答案!
2011年

6
@Kortuk-哦,太好了!不仅要他们有很多答案,现在他们也必须是最好的!;-)
stevenvh 2011年

6

XMOS XC-2包是做一个有趣的方式。除了PHY以外,其他所有操作均由软件完成。该软件应在7.50美元的XS1-L1芯片上运行。


老兄,您让我对XMOS产品感兴趣。我将不得不非常努力地抵抗拿起该开发套件。您知道是否有可用的RTOS吗?
戴夫

由于硬件线程的缘故,它实际上并不需要RTOS。也就是说,一两个人正在做一个。
莱昂·海勒

XMOS还制作了带有两个以太网插孔的版本。它用于位LED指示牌,但我不明白为什么您不能做其他事情。推出自己的路由器!xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf

5

Microchip有许多具有内置以太网功能的Pic微控制器,此处有列表。他们还在此处有一系列有关以太网及其产品的设计解决方案的页面,其中还包括其完整TCP / IP堆栈(带有集成的MAC和PHY)的详细信息。

希望这可以帮助。




4

根据您生活的难易程度,我建议您使用MBED并购买一个magjack和以太网分线板(请参见sparkfun)来连接电缆并处理信号调理。支持的型号是mbed NXP LPC1768。

从站立开始约2个小时,我设法获得了mbed的数据发送到我的远程服务器(即通过Internet)。


4

这取决于您要如何处理。需要注意的主要事情是RAM的数量(可以限制单个消息的大小),如果您要提供网页,则可以使用的存储量。我使用Arduino Duemilanova http://www.arduino.cc/-ATMega328微型控制器,内存为2KB。如果需要大量存储空间,可以连接SD卡。以太网屏蔽将最多支持4个并发会话。不要指望能够提供复杂的页面,但是可以很好地上传到Pachube,twitter等。

有关更强大的解决方案,请查看Marvell Plug


3

我建议将ENC28J60与pic 18微控制器之一一起使用,因为微芯片为此组合提供了TCP / IP堆栈,并且在实现此功能方面应该有大量的信息可通过Google获得。


3

结帐Tuxgraphics,这是一个不错的解决方案。


4
将AVR micro与Microchip MAC / PHY一起使用?下一步是什么?猫和狗在一起生活?:)
罗伯特

我有其中之一-效果很好。作为一个套件提供,所有表面贴装零件均已预先焊接。uIP源和以太网驱动程序随附在其中。
Toby

3

有许多项目使用ENC28J60和ATMEL Cips。其中大多数文件都有很好的记录,并使用C或BASCOM。您也可以购买完整的套件。我自己拥有这样一个工具包,并且从论坛上学到了很多有关编程的知识。


3

nanode是开源的,只运22£/ $ 40 我刚刚通过pachube购买了两个用于家庭能源/环境监测的产品。

距现场30秒的距离:

Nanode是具有内置Web连接的开源Arduino样板。它连接到各种无线,有线和以太网接口。它允许您开发基于Web的传感器和控制系统-使您可以通过Web访问6条模拟传感器线和6条数字I / O线。这是一个易于构建的工具包。Nanode在设计时就考虑了Hacking。


3

我已经使用picdem.net 2开发卡尝试过微芯片堆栈,但我一点都不满意,它没有经过优化,而且没有很好的文档记录。

我认为,目前市场上最好的解决方案是Wiznet,它具有首个基于以太网的TCP / IP硬件芯片,可节省大量时间并提高效率

该链接提供了所有可用的解决方案并进行比较:

http://retired.beyondlogic.org/etherip/ip.htm


多么棒的概述。
Amos

1
我对Microchip网络堆栈也有不好的经验,所以我写了自己的。它包含在PIC开发工具版本中的[url] embedinc.com/pic/dload.htm[/url]上。它运行在PIC 18上,可以驱动外部ENC28J60或内部MAC / PHY,具有很高的评价,易于配置并且设计用于低占用空间。
奥林·拉斯洛普

3

我在这里参加聚会很晚,但我推荐TI Stellaris EK-LM3S6965。它是带有嵌入式以太网控制器(包括PHY)的ARM Cortex M3部件。对于原型,我使用了他们的评估套件,该套件具有一个以太网插孔,小型OLED显示屏(非常适合调试和准系统UI),SD卡插槽,扬声器,按钮,LED以及用于连接至Micro外围设备的插座。您没有描述您的应用程序(即,希望产生数以万计的东西或一个一次性的业余项目),但是价格合理(开发板约70美元,小批量仅12-15美元)。 ,如果您想自己做固件或可以运行FreeRTOS(由于我的电路板修订版和FreeRTOS发行版中的内容之间的硬件修订不多,则需要一点点移植),它们带有一套不错的开发库。您可以将uIP或lwIP用于TCP / IP。

与流行的业余爱好者产品(例如AVR / Arduino和PIC)相比,Cortex M3是32位部件,以50MHz运行,6965具有很多I / O功能,从价格上来说,IMO令人惊讶的是它具有多少计算能力以及如何许多功能都可以让您受益匪浅,而且价格便宜。但是,它在开发方面还很原始,您必须了解C(好吧,除非您运行eLua)。我是一家行业的软件开发人员,并且在Mac上进行ARM开发,所以我不害怕可怕/不便的工具链设置,并使用Make + arm-eabi-gcc + OpenOCD进行调试,但是如果您是Windows专家,也许Code Composer Studio捆绑包是一个不错的选择。我将TI的Code Composer IDE用于一个有趣的MSP430实验项目,它对我来说很好,并且比我的OSX / ARM设置更轻松。

全披露,我实际上并未围绕使用以太网控制器的该芯片设计PCB,但我设计了一块不使用以太网的板,并且具有良好的使用经验,并且我已经建立了使用以太网的项目评估板。

在此处查看评估板/工具包

2013年9月更新

这些零件似乎不再建议用于新设计。似乎没有任何明显的替代品。

2013年11月更新

现在有一个TM4C129XNCZAD名义上可以替代上述部件-它具有板载MAC + PHY,尽管不兼容引脚-但是,由于LM3S的早期生命周期终止/可用性问题/造成混乱,很多人不愿意使用它


2

这个问题可能不是100%,但是对于生产量很小的项目,我开始看到人们嵌入了像树莓派这样的预制板。这有很多优点:

  1. 价格仅比带有以太网的高端CPU之一高(至少对于小批量而言),而您跳过了整个设计/测试/调试问题。
  2. 覆盆子PI已通过CE / EMC测试,因此消除了不确定性的全部负担(否则,以太网和快速时钟会引发许多EMC问题)。您仍然必须测试最终产品,但至少在整个区域中确实不应引起失败。
  3. 如果您使用linux等,则将获得更多响亮的声音和适当的服务器级TCP / IP堆栈-这些“仅允许一个活动连接”类型都不行!

正如我说的那样,它并不适合所有人,但对于某些项目来说可能是一个很好的选择。

关于所使用的确切电路板,有一些选择:

  1. 树莓派
  2. Beaglebone黑色 -内置闪光灯
  3. 带有扩展板的STM32F4DISCOVERY

2

几乎所有带有Wiznet W5500嵌入式MAC + PHY控制器的MCU 都可以使用,它由SPI驱动。优点是:它具有内置的网络堆栈,Tx / Rx缓冲区,需要最少的MCU引脚,简化了编程。

我刚刚找到了另一个有趣的选项-ASIX的AX88796C,它同时具有MAC + PHY,10 \ 100Mbps以太网和高达40MHz的SPI接口选项,因此看起来非常适合任何基于ARM的MCU。

更新: Netduino 3已经在使用该芯片,这里有一些有趣的细节:

http://forums.netduino.com/index.php?/topic/12117-deep-dive-on-asix-ax88796c-netduino-3-ethernets-fancy-new-networking-chip/


1

如果您有固件方面的经验,我建议您搭配STM32F4DIS-EXT板使用STM32F4Discovery板。我最近用它来为我的设备创建一个配置网页,这非常容易。网上有一个lwIP示例项目,如果您搜索“ makefsdata”,则会发现很多有关如何为自己的HTML文件生成必要文件的信息。给我发消息,如果您需要更多信息。


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.