什么是做以太网应用的好微控制器?还是只需要一个良好的以太网库来连接以太网MAC / PHY?
什么是做以太网应用的好微控制器?还是只需要一个良好的以太网库来连接以太网MAC / PHY?
Answers:
Microchip内置以太网的PIC18芯片非常适合此操作,只需添加一个magjack(或其他具有内置磁性的连接器)并下载其TCP / IP堆栈。您将立即进行ping操作。更为急切的是,PIC24和PIC32还具有TCP / IP堆栈,旨在与它们提供的SPI以太网MAC / PHY之一(ENC624J600或ENC628J60)一起运行。
意法半导体最近还增强了其基于ARM Cortex的STM32产品线,使其包含片上以太网,但是您将需要外部PHY和磁性器件。如果您已经在使用PIC32,那么这是一个选择。
关于TCP / IP堆栈,您应该查看三个项目:
Contiki是一种开源,高度可移植的多任务操作系统,用于内存效率高的网络嵌入式系统和无线传感器网络。Contiki已被用于各种项目,例如公路隧道火灾监控,入侵检测,波罗的海和监控网络中的水监控。
Contiki专为具有少量内存的微控制器而设计。一个典型的Contiki配置是2 KB的RAM和40 KB的ROM。
开源uIP TCP / IP堆栈提供了与微型嵌入式8位微控制器的TCP / IP连接,并保持了互操作性和RFC标准合规性。
比uIP快得多,但上手起来却比较困难
通常,以太网不是内置在微控制器中的。首先,您需要一个可以将以太网信号转换为微控制器读取的信号的插孔(通常称为“磁性”)。然后,您需要一个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。
ARM是当今的微控制器,恩智浦提供了广泛的产品。截止到该日期(2011-07-13),该网页实际上列出了太多的以太网控制器,无法在此处全部提及:
17个ARM7设备
2个ARM9设备
16个Cortex-M3设备
编辑
我将ARM优势讨论移至此答案。
该XMOS XC-2包是做一个有趣的方式。除了PHY以外,其他所有操作均由软件完成。该软件应在7.50美元的XS1-L1芯片上运行。
许多TI Luminary微控制器(ARM Cortex-M3)都有板载以太网MAC。它需要一个外部晶体和以太网PHY(连接器+磁性器件)。
GCC和openOCD(JTAG闪烁/调试)很好地支持了它们,并且它们的数量相当便宜。
他们也有便宜的硬件开发套件...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus是一款适用于以太网应用的好60美元微控制器。如果需要,它也可以接受大多数Arduino屏蔽。
根据您生活的难易程度,我建议您使用MBED并购买一个magjack和以太网分线板(请参见sparkfun)来连接电缆并处理信号调理。支持的型号是mbed NXP LPC1768。
从站立开始约2个小时,我设法获得了mbed的数据发送到我的远程服务器(即通过Internet)。
这取决于您要如何处理。需要注意的主要事情是RAM的数量(可以限制单个消息的大小),如果您要提供网页,则可以使用的存储量。我使用Arduino Duemilanova http://www.arduino.cc/-ATMega328微型控制器,内存为2KB。如果需要大量存储空间,可以连接SD卡。以太网屏蔽将最多支持4个并发会话。不要指望能够提供复杂的页面,但是可以很好地上传到Pachube,twitter等。
有关更强大的解决方案,请查看Marvell Plug
结帐Tuxgraphics,这是一个不错的解决方案。
我已经使用picdem.net 2开发卡尝试过微芯片堆栈,但我一点都不满意,它没有经过优化,而且没有很好的文档记录。
我认为,目前市场上最好的解决方案是Wiznet,它具有首个基于以太网的TCP / IP硬件芯片,可节省大量时间并提高效率
该链接提供了所有可用的解决方案并进行比较:
我在这里参加聚会很晚,但我推荐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的早期生命周期终止/可用性问题/造成混乱,很多人不愿意使用它。
这个问题可能不是100%,但是对于生产量很小的项目,我开始看到人们嵌入了像树莓派这样的预制板。这有很多优点:
正如我说的那样,它并不适合所有人,但对于某些项目来说可能是一个很好的选择。
关于所使用的确切电路板,有一些选择:
几乎所有带有Wiznet W5500嵌入式MAC + PHY控制器的MCU 都可以使用,它由SPI驱动。优点是:它具有内置的网络堆栈,Tx / Rx缓冲区,需要最少的MCU引脚,简化了编程。
我刚刚找到了另一个有趣的选项-ASIX的AX88796C,它同时具有MAC + PHY,10 \ 100Mbps以太网和高达40MHz的SPI接口选项,因此看起来非常适合任何基于ARM的MCU。
更新: Netduino 3已经在使用该芯片,这里有一些有趣的细节:
为此,我喜欢(25欧元)Openpicus FlyportPro以太网模块。只需添加带有磁性的以太网插孔,然后使用其TCP / IP堆栈创建固件即可。它们也具有TLS实现:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
我使用“经典” Flyport以太网进行了一个项目,到目前为止,它一直是坚如磐石的。