O que é um bom microcontrolador para aplicativos Ethernet?


47

O que é um bom microcontrolador para executar aplicações Ethernet? Ou preciso apenas de uma boa biblioteca Ethernet para conectar-se a um MAC / PHY Ethernet?


Você pode nos dizer qual a solução que você usou e sua experiência com ela?
Thom_nic 2/02

1
Atualmente, estou usando as séries PIC18F97J60 e PIC32 com uma ENCxxx. Isso funciona bem. O maior problema é que ele só tem SSLv3.0, que o Firefox e o Chrome acabaram de lançar. O microchip tem suporte para muitos outros protocolos que eu uso: FTP, TFTP, SNTP, SNMP.
Robert

É bom saber - também é bom saber a limitação do SSL, mas parece que todas as implementações TLS "robustas" não são livres em geral. Obrigado por compartilhar!
Thom_nic

Respostas:


29

Os PIC18s da Microchip com ethernet embutida são excelentes para isso, basta adicionar um magjack (ou outro conector com magnetismo embutido) e fazer o download da pilha TCP / IP. Você estará pingando as coisas rapidamente. Para mais problemas, o PIC24 e o PIC32 também possuem pilhas TCP / IP projetadas para serem executadas com uma das peças SPI Ethernet MAC / PHY que eles oferecem (ENC624J600 ou ENC628J60).

A ST também aprimorou recentemente sua linha STM32 baseada em ARM Cortex para incluir ethernet no chip, mas você precisará de um PHY e magnéticos externos. É uma opção se você já está vendo o PIC32.


16
Como tive problemas com a pilha de rede Microchip, escrevi a minha e disponibilizei-a gratuitamente com o código-fonte em embedinc.com/pic/dload.htm na versão PIC Development Tools. Você precisa adotar o conceito de nosso ambiente de desenvolvimento PIC (também gratuito), mas essa é uma boa ideia. Após a instalação, procure arquivos com "net" em seus nomes no diretório SOURCE> PIC.
Olin Lathrop

20

Em relação a ter uma pilha TCP / IP, há três projetos que você deve analisar:

O Contiki é um sistema operacional multitarefa de código aberto e altamente portátil para sistemas embarcados em rede com eficiência de memória e redes de sensores sem fio. O Contiki tem sido usado em vários projetos, como monitoramento de incêndio em túneis, detecção de intrusão, monitoramento de água no Mar Báltico e em redes de vigilância.

O Contiki foi projetado para microcontroladores com pequenas quantidades de memória. Uma configuração típica da Contiki é de 2 kilobytes de RAM e 40 kilobytes de ROM.

A pilha TCP / IP uIP de código-fonte aberto fornece conectividade TCP / IP a pequenos microcontroladores de 8 bits incorporados, com interoperabilidade mantida e conformidade com os padrões RFC.


17

Geralmente, a Ethernet não é incorporada aos microcontroladores. Primeiro, você precisa de um conector que possa converter sinais Ethernet em sinais lidos por um microcontrolador (isso geralmente é chamado de 'magnético'). Então você precisa de uma pilha TCP / IP e, além disso, precisa de DHCP, DNS e quaisquer outros protocolos que deseja usar. Portanto, o microcontrolador que você usa não importa muito. Se você obtiver algo muito poderoso como um ARM com Linux em execução, o desenvolvimento para ele seria muito simples, quase o mesmo que escrever um aplicativo de rede em um PC de mesa com Linux. Ou você pode optar por algo menos poderoso e mais barato, como um AVR ou PIC.

Ethernet e TCP / IP podem ser bastante complexos se você deseja implementar uma pilha TCP / IP inteira no software. Uma solução comum é usar algo como o chip W5100 da Wiznet, que lida com todo o material TCP / IP de baixo nível para você. Você pode comprá-lo em um módulo pré-fabricado que inclui o conector ethernet e tudo por um preço bastante acessível , cerca de US $ 20 para o módulo WIZ812MJ . Você pode se comunicar com ele usando apenas SPI, para que não ocorra muitos pinos de E / S no seu microcontrolador.

O Lantronix também fornece alguns módulos mais poderosos que parecem ainda mais simples de usar, mas são um pouco mais caros (US $ 50 a US $ 100, dependendo do modelo). Veja o XPort deles, por exemplo.


1
Eu amo ver uma referência de boa reputação para o termo "magnetismo", como eu nunca ouvi falar dele.
Andrew

@ Andrew Eu não sei nenhum dicionário técnico que o tenha. No Google, ele encontrará várias referências. Isso é exatamente o que eu já vi. Basicamente, o objetivo deles é isolar seu circuito dos outros dispositivos conectados a ele via Ethernet. Semelhante à maneira como o MIDI usa o isolamento óptico.
Dav

Recebo cerca de meio milhão de resultados a mais com "isolador Ethernet" do que com "magnética Ethernet", mas entendo o que você quer dizer agora.
Andrew

Há uma discussão sobre a origem e o uso do termo neste post do Hack A Day sobre acoplamento capacitivo .
Andrew

Eu estava apenas olhando uma folha de dados do transceptor Ethernet (LAN8720A da Microchip), e essa seção é chamada de 'Mag' e 'Transformer'.
Dan Ellis

11

Os ARMs são os microcontroladores do dia e o NXP possui uma ampla oferta deles. Esta página da web lista literalmente muitos controladores Ethernet para mencionar tudo aqui, a partir desta data (13/07/2011):

17 dispositivos ARM7
2 dispositivos ARM9
16 dispositivos Cortex-M3

edit
Movi a discussão sobre vantagens do ARM para esta resposta .


Que vantagens a linha do braço oferece? Vejo muitas outras respostas que precisam de mais detalhes, a parte importante é que você dê uma razão para a linha mais do que apenas um link para a linha de controladores. Só dou esse feedback porque você é muito prolífico para não dar as melhores respostas possíveis!
21411 Kortuk

6
@ Kortuk - Oh, isso é ótimo! Não só querem muitas respostas, agora também precisam ser as melhores! ;-)
stevenvh

6

O kit XMOS XC-2 é uma maneira interessante de fazer isso. Tudo é feito em software, além do PHY. O software deve ser executado no chip XS1-L1 de US $ 7,50.


cara, você está me interessando produtos XMOS. Vou ter que me esforçar muito para resistir a pegar esse kit de desenvolvimento. Você sabe se existe um RTOS disponível para ele?
Dave

Realmente não precisa de um RTOS, por causa dos threads de hardware. Dito isto, uma ou duas pessoas estão trabalhando em uma.
Leon Heller

O XMOS também faz uma versão com dois conectores Ethernet. Destina-se a sinais LED de bit, mas não vejo por que você não pôde fazer outras coisas. Role seu próprio roteador! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf

5

Os microchips possuem vários microcontroladores Pic com recursos de Ethernet embutidos, há uma lista aqui . Eles também têm uma série de páginas relativas a soluções de design para ethernet e seus produtos aqui , que também inclui detalhes de sua pilha completa TCP / IP (com MAC integrada e PHY).

Espero que isto ajude.



4

O Netduino plus é um bom microcontrolador de 60 $ para aplicações Ethernet. Ele também pode aceitar a maioria dos escudos do Arduino, se necessário.


4

Dependendo da facilidade com que você deseja melhorar sua vida, eu recomendaria o uso de um MBED e a compra de uma placa magjack e ethernet (consulte sparkfun) para conectar o cabo e lidar com o condicionamento de sinais. O modelo de suporte é o NXP LPC1768 mbed.

Consegui obter um mbed enviando dados para o meu servidor remoto (ou seja, pela Internet) em cerca de 2 horas desde o início.


4

Depende do que você quer fazer com isso. O principal aspecto a ser observado é a quantidade de RAM (pode limitar o tamanho da mensagem individual) e, se você deseja exibir páginas da Web, a quantidade de armazenamento disponível para isso. Eu uso um microcontrolador Arduino Duemilanova http://www.arduino.cc/ - ATMega328, 2Kbytes de RAM. Você pode conectar um cartão SD se desejar um armazenamento significativo. O escudo ethernet suporta até 4 sessões simultâneas. Não espere ser capaz de exibir páginas complexas, mas funciona bem para o Pachube, twitter etc.

Para uma solução mais poderosa, veja Marvell Plug


3

Eu sugeriria o uso da ENC28J60 junto com um dos microcontroladores da foto 18, porque o microchip oferece uma pilha TCP / IP para essa combinação e deve haver muitas informações disponíveis no google para implementar isso.


3

checkout tuxgraphics para uma boa solução.


4
Usando um micro AVR com um Microchip MAC / PHY? Qual é o próximo? Gatos e cachorros morando juntos? :)
Robert

Eu tenho um desses - funciona bem. Vem como um kit com todas as peças de montagem em superfície pré-soldadas. As fontes uIP e o driver Ethernet vêm com ele.
Toby Jaffey

3

Existem muitos projetos usando as ENC28J60 e ATMEL Cips. A maioria deles está bem documentada e usando C ou BASCOM. Você também pode comprar kits completos para começar. Eu próprio possuo esse kit e aprendi muito sobre a programação nos fóruns.


3

O nanode é de código aberto e apenas £ 22 / $ 40 são enviados. Acabei de comprar dois para monitoramento doméstico de energia / meio ambiente via pachube.

30 segundo passo do site:

O Nanode é uma placa de código aberto semelhante ao Arduino que possui conectividade da Web incorporada. Ele se conecta a uma variedade de interfaces sem fio, com fio e ethernet. Ele permite que você desenvolva sistemas de sensor e controle baseados na Web - oferecendo acesso à Web a seis linhas de sensores analógicos e seis linhas de E / S digitais. É um kit fácil de montar você mesmo. Nanode foi projetado com o Hacking em mente.


3

Eu tentei a pilha de microchips usando o cartão de desenvolvimento picdem.net 2 e não fiquei satisfeito, não está otimizado e não está bem documentado.

Eu acho que a melhor solução do mercado agora é o Wiznet que possui o primeiro chip de hardware TCP / IP baseado em Ethernet que economiza muito tempo e oferece mais eficiência

Este link fornece todas as soluções disponíveis e as compara:

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


Que excelente visão geral.
Amos

1
Eu também tive experiências ruins com a pilha de rede Microchip, então escrevi as minhas. Está incluído na versão das Ferramentas de desenvolvimento do PIC em [url] embedinc.com/pic/dload.htm[/url] . É executado em um PIC 18, pode acionar a ENC28J60 externa ou o MAC / PHY interno, é bem comentado, facilmente configurável e foi projetado para ocupar pouco espaço.
Olin Lathrop

3

Estou atrasado para a festa aqui, mas recomendo a TI Stellaris EK-LM3S6965. É uma peça ARM Cortex M3 com controlador Ethernet integrado, incluindo PHY. Para a prototipagem, usei o kit de avaliação, que possui uma tomada Ethernet, um pequeno display OLED (ótimo para depuração e interface de usuário de barebones), slot para cartão SD, alto-falante, botões, LEDs e interruptores para conectar os periféricos do micro. Você não descreveu seu aplicativo (ou seja, procura produzir dezenas de milhares de algo ou um projeto único de hobby), mas o preço é razoável (~ US $ 70 para o quadro de desenvolvimento, US $ 12-15 em pequenas quantidades apenas para os chips) , eles vêm com um bom conjunto de bibliotecas de desenvolvimento, se você deseja criar seu próprio firmware ou ele pode executar o FreeRTOS (necessário um pouco de portabilidade devido a pequenas rotações de hardware entre a revisão da minha placa e o material da distribuição do FreeRTOS) e o eLua. Você pode usar uIP ou lwIP para TCP / IP.

Comparado a ofertas populares de hobby, como AVR / Arduino e PIC, o Cortex M3 é uma parte de 32 bits, funciona a 50MHz, o 6965 possui muitos recursos de E / S, IMO pelo dinheiro, é incrível o quanto de poder de computação e como muitos recursos que você pode obter de algo tão pequeno e barato. No entanto, é bastante cru do lado do desenvolvimento, e você deve conhecer C (bem, a menos que execute o eLua). Sou desenvolvedor de software por profissão e faço meu desenvolvimento de ARM em um Mac, por isso não tenho medo de configurações assustadoras / inconvenientes de cadeias de ferramentas e usei o Make + arm-eabi-gcc + OpenOCD para depuração, mas se você é do Windows talvez o pacote do Code Composer Studio seja uma boa aposta. Usei o Code Composer IDE da TI para um projeto experimental divertido do MSP430, e foi ótimo para mim e tinha um fluxo de trabalho mais fácil do que minha configuração OSX / ARM.

Divulgação completa, na verdade, eu não projetei uma placa de circuito impresso em torno desse chip que usava o controlador Ethernet, mas fiz uma placa que não usava a Ethernet e tinha uma boa experiência com isso, e criei projetos habilitados para Ethernet usando o conselho de avaliação.

Confira o pacote de ferramentas / quadro de avaliação aqui

ATUALIZAÇÃO Sep 2013

Essas peças parecem não ser mais recomendadas para novos designs. Não parece haver substituições óbvias.

ATUALIZAÇÃO novembro de 2013

Agora existe um TM4C129XNCZAD que é nominalmente um substituto para a parte acima - ele possui MAC + PHY, embora não seja compatível com pinos - no entanto, muitas pessoas relutam em usá-lo após os problemas / confusão sobre a descontinuação / disponibilidade no início da vida do LM3S .


2

Pode não ser 100% o que essa pergunta está perguntando, mas para projetos em que a produção é relativamente pequena, comecei a ver pessoas incorporando placas pré-construídas como o raspberry pi. Isso tem muitas vantagens:

  1. O preço não é muito mais do que um dos processadores de última geração com Ethernet (pelo menos para volumes baixos), e você pula toda uma carga de problemas de design / teste / abertura.
  2. O PI de framboesa já foi testado pela CE / EMC, de modo que elimina uma grande quantidade de incertezas (caso contrário, os relógios ethernet e rápidos podem gerar vários problemas da EMC). Você ainda precisa testar seu produto final, mas pelo menos há uma área inteira que realmente não deve causar uma falha.
  3. Você obtém muito mais grunhido e uma pilha TCP / IP adequada, de nível de servidor, se você usa linux etc. - nenhum desses "apenas uma conexão ativa permitida" digita coisas!

Como já disse, não é para todos, mas para alguns projetos pode ser uma boa opção.

Existem algumas opções em termos do quadro exato usado:

  1. Raspberry Pi
  2. Beaglebone black - possui flash integrado
  3. STM32F4DISCOVERY com placas de expansão

2

Você pode usar quase qualquer MCU com Wiznet W5500 incorporado MAC + PHY controlador, que é impulsionado pela SPI. As vantagens são: possui pilha de rede integrada, buffers Tx / Rx, requer pinos mínimos da MCU, programação simplificada.

Acabei de encontrar outra opção interessante - o AX88796C da ASIX, que também possui a opção MAC + PHY , Ethernet de 10 \ 100Mbps e interface de até 40MHz SPI, por isso parece ser adequado para qualquer MCU baseado em ARM.

ATUALIZAÇÃO: O Netduino 3 já está usando este chip, eis detalhes interessantes:

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


1

Se você tiver alguma experiência com firmware, recomendo a placa STM32F4Discovery com a placa STM32F4DIS-EXT. Recentemente, usei isso para criar uma página da Web de configuração para o meu dispositivo e foi bastante fácil. Há um projeto de exemplo lwIP disponível on-line e, se você pesquisar no "makefsdata", encontrará muitas informações sobre como gerar os arquivos necessários para seus próprios arquivos HTML. Envie-me uma mensagem se precisar de mais informações.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.