Ethernet uygulamaları için iyi bir mikrodenetleyici nedir?


47

Ethernet uygulamaları yapmak için iyi bir mikrodenetleyici nedir? Yoksa bir Ethernet MAC / PHY ile bağlantı kurmak için iyi bir Ethernet kütüphanesine mi ihtiyacım var?


Hangi çözümle gittiğinizi ve bu konudaki deneyiminizi bize söyleyebilir misiniz?
thom_nic

1
Şu anda PIC18F97J60 serisi ve PIC32'yi ENCxxx ile kullanıyorum. Tamam çalışıyor. En büyük sorun, Firefox ve Chrome'un düşürdüğü yalnızca SSLv3.0'a sahip olmasıdır. Mikroçip kullandığım diğer birçok protokolü destekliyor: FTP, TFTP, SNTP, SNMP.
Robert,

Duyması iyi - SSL sınırının da bilinmesi iyi, ancak "sağlam" TLS uygulamalarının tümü genel olarak ücretsiz değil gibi görünüyor. Paylaşım için teşekkürler!
thom_nic

Yanıtlar:


29

Microchip'in yerleşik ethernetli PIC18'leri bunun için mükemmel, sadece bir magjack (veya yerleşik magnetiğe sahip başka bir konektör) ekleyin ve TCP / IP yığınlarını indirin. En kısa zamanda bir şeylere ping atıyor olacaksınız. Dahası, PIC24 ve PIC32 ayrıca sundukları SPI Ethernet MAC / PHY parçalarından biriyle çalışacak şekilde tasarlanmış TCP / IP yığınlarına sahiptir (ENC624J600 veya ENC628J60).

ST aynı zamanda yakın zamanda ARM Cortex tabanlı STM32 serisini çip üzerinde ethernet içerecek şekilde geliştirdi, ancak harici bir PHY ve magnetiğe ihtiyacınız olacak. Zaten PIC32'ye bakıyorsanız bu bir seçenek.


16
Microchip ağ yığınıyla ilgili sorunlar yaşadım, bu yüzden kendi yazdım ve PIC Geliştirme Araçları sürümündeki embedinc.com/pic/dload.htm adresindeki kaynak koduyla ücretsiz olarak kullanabiliyorum . PIC geliştirme ortamımızın konseptini benimsemelisiniz (ayrıca ücretsiz), ama bu yine de iyi bir fikir. Yüklemeden sonra, SOURCE> PIC dizinindeki adlarında "net" olan dosyaları arayın.
Olin Lathrop

20

Bir TCP / IP yığınına sahip olmakla ilgili olarak, dikkat etmeniz gereken üç proje vardır:

Contiki, hafızada verimli ağa bağlı gömülü sistemler ve kablosuz sensör ağları için açık kaynaklı, çok taşınabilir, çok görevli bir işletim sistemidir. Contiki, karayolu tüneli yangın izlemesi, izinsiz giriş tespiti, Baltık Denizi'ndeki su izlemesi ve gözetim ağları gibi çeşitli projelerdir.

Contiki, az miktarda belleğe sahip mikrodenetleyiciler için tasarlanmıştır. Tipik bir Contiki yapılandırması 2 kilobayt RAM ve 40 kilobayt ROM'dur.

Açık kaynak kodlu uIP TCP / IP yığını, birlikte çalışabilirlik ve RFC standartlarına uygunluk ile küçük gömülü 8 bitlik mikro denetleyicilere TCP / IP bağlantısı sağlar.


17

Genellikle Ethernet mikrodenetleyicilere yerleştirilmez. İlk önce Ethernet sinyallerini bir mikrodenetleyici tarafından okunan sinyale çevirebilen bir girişe ihtiyacınız var (buna genellikle 'manyetik' denir). Sonra bir TCP / IP yığınına ihtiyacınız var ve bunun üzerine DHCP, DNS ve kullanmak istediğiniz diğer protokollere ihtiyacınız var. Yani kullandığınız gerçek mikrodenetleyici çok fazla önemli değil. Linux üzerinde çalışan bir ARM gibi çok güçlü bir şey elde ederseniz, bunun için geliştirme yapmak oldukça basit olurdu, neredeyse Linux çalıştıran bir masaüstü bilgisayarda çalışan bir ağ uygulaması yazmakla aynı. Ya da bir AVR veya PIC gibi daha az güçlü ve daha ucuz bir şeyle gidebilirsiniz.

TCP / IP yığınının tamamını yazılımda uygulamak istiyorsanız, Ethernet ve TCP / IP oldukça karmaşık olabilir. Yaygın bir çözüm, Wiznet'in W5100 yongası gibi bir şey kullanmaktır; bu sizin için tüm düşük seviyeli TCP / IP işlemlerini gerçekleştirir. WET812MJ modülü için yaklaşık 20 $ 'lık ethernet konektörünü ve oldukça ucuz olan her şeyi içeren önceden yapılmış bir modülde satın alabilirsiniz . Yalnızca SPI kullanarak iletişim kurabilirsiniz, bu nedenle mikro denetleyicinizde çok fazla G / Ç iğnesi almaz.

Lantronix ayrıca kullanımı daha basit görünen daha güçlü modüller de sunmaktadır, ancak bunlar biraz daha pahalıdır (modele bağlı olarak 50 - 100 dolar). Örneğin kendi XPort'larına bakın .


1
Ben istiyorum seviyorum ben duymadım olarak, dönem "manyetizma" için saygın bir başvuru görmek için.
Andrew,

@Andrew Herhangi bir teknik sözlüğü bilmiyorum. Google, çeşitli referanslar bulacaktır. Bahsettiğim şey sadece bu. Temel olarak bunların amacı, devrenizi ethernet üzerinden kendisine bağlı diğer cihazlardan izole etmektir. MIDI'nin optik izolasyonu kullanmasına benzer.
davr

"Ethernet izolatörü" için "ethernet magnetiği" nden yarım milyon daha fazla sonuç alıyorum, ancak şu an ne demek istediğinizi anlıyorum.
Andrew

Kapasitif kuplajla ilgili bu Hack A Day post'undaki terimin kökenine ve kullanımına ilişkin bir tartışma var .
Andrew,

Sadece bir Ethernet alıcı-verici veri sayfasına bakıyordum (Microchip'ten LAN8720A) ve bu bölüme çeşitli olarak 'Mag' ve 'Transformer' deniyor.
Dan Ellis,

11

ARM'ler günün mikrodenetleyicileridir ve NXP'nin geniş bir teklifi vardır. Bu web sayfası kelimenin tam anlamıyla çok fazla Ethernet denetleyicisini listeliyor, burada belirtildiği gibi, bu tarihten itibaren (2011-07-13):

17 ARM7 aygıtları
2 ARM9 aygıtları
16 Cortex-M3 aygıtları

düzenleme
ARM avantajları tartışmasını bu cevaba taşıdım .


Kol hattının ne gibi avantajlar sağladığı. Daha fazla ayrıntıya ihtiyaç duyan birçok cevabı görüyorum, önemli olan kısım, satırın neden sadece kontrolörlerin hattına bağlanacağına bir neden vermenizdir. Size sadece bu geribildirimi veriyorum çünkü bir kullanıcının mümkün olan en iyi cevapları vermemesi için çok üretkensiniz!
Kortuk

6
@Kortuk - Oh, bu harika! Sadece birçok cevabı istememekle kalmaz, şimdi de en iyisi olmak zorundalar! ;-)
stevenvh

6

XMOS XC-2 kiti bunu yapmak için ilginç bir yoldur. Her şey PHY dışında yazılımda yapılır. Yazılım 7.50 $ XS1-L1 yongasında çalışmalıdır.


Beni XMOS ürünleriyle ilgileniyorsun. Bu geliştirme kitini almaya direnmek için gerçekten çok uğraşmam gerekecek. Bunun için uygun bir RTOS olup olmadığını biliyor musunuz?
Dave,

Donanım konuları nedeniyle gerçekten bir RTOS'a ihtiyaç duymuyor. Bununla birlikte, bir ya da iki kişi bir üstünde çalışıyor.
Leon Heller

XMOS ayrıca iki ethernet jakı ile bir sürüm hazırlar . Bit LED işaretleri için tasarlanmıştır, ancak neden başka şeyler yapamadığınızı anlamıyorum. Kendi Yönlendiricinizi Alın! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf

5

Mikroçip, dahili ethernet özelliklerine sahip bir dizi Pic mikrodenetleyiciye sahiptir, burada bir liste var . Ayrıca burada ethernet için tasarım çözümleri ve ürünleri ile ilgili bir dizi sayfa var ve bunlar da tam TCP / IP yığınının ayrıntılarını da içeriyor (MAC ve PHY ile).

Bu yardımcı olur umarım.



4

Netduino plus , ethernet uygulamaları için iyi bir 60 $ mikrodenetleyicidir. Gerekirse çoğu Arduino kalkanını da kabul edebilir.


4

Hayatınızı ne kadar kolaylaştıracağınıza bağlı olarak, bir MBED kullanmanızı ve kabloyu bağlamak ve sinyal koşullandırması için uğraşmak için bir magjack ve ethernet breakboard (satın aldığınız kıvılcım ürününe bakınız) satın almanızı tavsiye ederim . Destekleyici model mbed NXP LPC1768'dir.

Uzaktaki sunucuma (yani internet üzerinden) veri göndermeyi bir 2 saat içinde baştan sona erdirmeyi başardım.


4

Ne yapmak istediğine bağlı. Dikkat edilmesi gereken en önemli şey, RAM miktarıdır (bireysel mesaj boyutunu sınırlandırabilir) ve web sayfalarına hizmet vermek istiyorsanız, bunun için mevcut depolama miktarını belirtin. Arduino Duemilanova http://www.arduino.cc/ - ATMega328 mikro denetleyici, 2Kbayt RAM kullanıyorum. Önemli miktarda depolama istiyorsanız bir SD kart bağlayabilirsiniz. Ethernet kalkanı 4 eşzamanlı oturuma kadar destekleyecektir. Karmaşık sayfalar sunmayı beklemeyin, ancak Pachube, twitter vb.

Daha güçlü bir çözüm için Marvell Plug'a bakın


3

ENC28J60'ı pic 18 mikro kontrolörlerinden biriyle birlikte kullanmanızı öneririm, çünkü mikroçip bu kombinasyon için bir TCP / IP yığını sunuyor ve bunun uygulanması hakkında google üzerinden yeterli miktarda bilgi bulunması gerekiyor.


3

güzel bir çözüm için ödeme smokin .


4
Microchip MAC / PHY ile AVR mikro kullanmak? Sıradaki ne? Birlikte yaşayan kediler ve köpekler? :)
Robert

Bunlardan bir tane var - iyi çalışıyor. Önceden lehimlenmiş tüm yüzey montaj parçaları ile birlikte bir kit olarak gelir. uIP kaynakları ve ethernet sürücüsü de beraberinde geliyor.
Toby Jaffey

3

ENC28J60 ve ATMEL Cips'i kullanan birçok proje var. Bunların çoğu iyi belgelenmiştir ve C veya BASCOM kullanıyor. Başlamak için komple kitler de alabilirsiniz. Kendi başıma böyle bir kit benim ve forumlardan programlama hakkında çok şey öğrendim.


3

Nanode açık kaynak ve sevk sadece £ 22/40 $ olduğunu. Pachube ile ev enerji / çevre izlemesi için iki tane aldım.

Siteden 30 saniye aralık:

Nanode, dahili web bağlantısına sahip, açık kaynak Arduino benzeri bir karttır. Bir dizi kablosuz, kablolu ve ethernet arayüzüne bağlanır. Web tabanlı sensör ve kontrol sistemleri geliştirmenize olanak tanır - altı analog sensör hattına ve altı dijital I / O hattına web erişimi sağlar. Kendin yap kiti kolay bir yapıdır. Nanode akılda Hacking ile dizayn edilmiştir.


3

Picdem.net 2 geliştirme kartını kullanarak mikroçip yığınını denedim ve hiç memnun kalmadım, optimize edilmedi ve iyi belgelenmedi.

Piyasadaki en iyi çözümün, zamandan tasarruf sağlayan ve size daha fazla verimlilik sağlayan ilk Ethernet tabanlı TCP / IP donanım yongasına sahip olan Wiznet olduğunu düşünüyorum.

Bu link mevcut tüm çözümleri sunar ve karşılaştırır:

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


Ne mükemmel bir genel bakış.
Amos

1
Ayrıca Microchip ağ yığınıyla ilgili kötü deneyimlerim oldu, bu yüzden kendim yazdım. PIC Geliştirme Araçları sürümüne [url] embedinc.com/pic/dload.htmГ/url] adresinden dahil edilmiştir . Bir PIC 18 ile çalışır, harici ENC28J60 veya dahili MAC / PHY'yi sürebilir, iyi yorumlanır, kolayca yapılandırılabilir ve az yer kaplayacak şekilde tasarlanmıştır.
Olin Lathrop

3

Partiye geç kaldım ama TI Stellaris EK-LM3S6965'i tavsiye ediyorum. PHY de dahil olmak üzere yerleşik Ethernet denetleyicili bir ARM Cortex M3 parçasıdır. Prototipleme için, bir Ethernet jakı, küçük OLED ekran (hata ayıklama ve barebonlar UI için harika), SD kart yuvası, hoparlör, düğmeler, LED'ler ve mikro çevre birimlerine kadar kablolama işleri için ara parçalar içeren değerlendirme kitlerini kullandım. Başvurunuzu tanımlamamışsınız (yani, onbinlerce şeyden birini veya bir kerelik hobi projesi üretmeyi düşünmektesiniz), ancak fiyatlandırma makul (dev kurulu için ~ 70 $, sadece cipsler için küçük miktarlarda 12-15 $) , eğer kendi firmware'inizi yapmak istiyorsanız, ya da FreeRTOS (tahtadaki revizyonum ve FreeRTOS dağıtımındaki şeyler arasındaki ufak donanım devirleri nedeniyle küçük bir miktar bağlantı gerektiriyorsa) ve eLua'yı çalıştırabiliyorsanız, bir dizi geliştirme kütüphanesiyle gelirler. TCP / IP için uIP veya lwIP kullanabilirsiniz.

AVR / Arduino ve PIC gibi popüler hobi teklifleri ile karşılaştırıldığında, Cortex M3 32-bit'lik bir parçadır, 50MHz'de çalışır, 6965'in birçok I / O özelliği vardır, para için IMO, ne kadar bilgi işlem gücü ve nasıl çok küçük ve ucuz bir şeyden elde edebileceğiniz birçok özellik. Bununla birlikte, geliştirme tarafında oldukça ham ve C'yi bilmelisin (eLua'yı çalıştırmazsan). Ben bir yazılım geliştiricisiyim ve Mac’te ARM geliştirmemi yapıyorum, bu yüzden korkutucu / uygun olmayan alet zinciri kurulumlarından korkmuyorum ve Make + arm-eabi-gcc + OpenOCD’i hata ayıklamak için kullandım, ancak Windows’u kullanıyorsanız belki Kod Besteci Studio paketi iyi bir bahis olabilir. Eğlenceli bir MSP430 deneysel projesi için TI's Code Composer IDE'yi kullandım ve benim için iyiydi ve OSX / ARM kurulumumdan daha kolay bir iş akışı vardı.

Tam açıklama, aslında Ethernet denetleyicisini kullanan bu çipin etrafında bir PCB tasarlamamıştım, ancak Ethernet'i kullanmayan ve bu konuda iyi bir deneyime sahip olan bir tahta yaptım ve kullanarak Ethernet kullanan projeler yaptım değerlendirme kurulu.

Değerlendirme kuruluna / araç paketlerine buradan göz atın

GÜNCELLEME Eylül 2013

Bu parçalar artık yeni tasarımlar için önerilmemektedir. Herhangi bir bariz değişiklik olması mümkün görünmüyor.

GÜNCELLEME Kasım 2013

Şu anda nominal olarak yukarıdaki parçanın yerine geçecek olan bir TM4C129XNCZAD var - pin uyumlu olmasa da MAC + PHY'de yerleşiktir - ancak LM3S'in erken yaşamdaki durması / mevcudiyeti konusundaki sorunların / kargaşanın ardından kullanmakta isteksizdir .


2

Bu sorunun ne sorduğu% 100 olmayabilir, ancak üretimin oldukça küçük olduğu projeler için ahududu pi gibi önceden oluşturulmuş panoları yerleştiren insanları görmeye başladım. Bunun bir çok avantajı var:

  1. Fiyat, ethernetli (en azından düşük hacimler için) yüksek uç CPU'lardan birinden daha fazla değildir ve tüm tasarım / test / getirme sayılarını atlarsınız.
  2. Ahududu PI zaten CE / EMC testine tabi tutulmuştur, bu yüzden bütün bir belirsizlik yükünü ortadan kaldırır (aksi halde ethernet ve hızlı saatler bir sürü EMC sorunu çıkarabilir). Nihai ürününüzü test etmek zorundasınız ama en azından bir hataya neden olmaması gereken bütün bir alan var.
  3. Eğer Linux kullanıyorsanız çok daha grunt ve uygun bir sunucu sınıfı TCP / IP yığını olsun - bunların hiçbiri "sadece bir aktif bağlantı izin verilir" yazın!

Dediğim gibi, herkes için değil, bazı projeler için uygun olabilir.

Etrafta kullanılan panoya göre birkaç seçenek var:

  1. Ahududu PI
  2. Beaglebone siyah - dahili flaş
  3. STM32F4DISCOVERY genleşme panoları ile

2

Wiznet W5500 yerleşik MAC + PHY denetleyicisi ile hemen hemen her MCU'yu kullanabilirsiniz , SPI tarafından çalıştırılmaktadır. Avantajları: yerleşik ağ yığınına sahiptir, Tx / Rx tamponları, minimum MCU pinleri, basitleştirilmiş programlama gerektirir.

Ben sadece başka ilginç seçenek bulundu - AX88796C Asix dan, o da hem sahip MAC + PHY , 10 \ 100Mbps Ethernet ve 40MHz SPI arayüz seçeneği kadar, yani güzel uyum arar herhangi MCU tabanlı ARM.

GÜNCELLEME: Netduino 3 zaten bu çipi kullanıyor, işte ilginç detaylar:

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


1

Firmware ile ilgili herhangi bir tecrübeniz varsa, STM32F4Discovery kurulu ile STM32F4DIS-EXT kartını tavsiye ederim. Geçenlerde bunu cihazım için bir yapılandırma web sayfası oluşturmak için kullandım ve oldukça kolaydı. Çevrimiçi olarak kullanılabilen bir lwIP örneği projesi var ve "makefsdata" ya google yaparsanız, kendi HTML dosyalarınız için gerekli dosyaların nasıl oluşturulacağı hakkında birçok bilgi bulacaksınız. Daha fazla bilgiye ihtiyacınız olursa bana mesaj atın.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.