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?
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?
Yanıtlar:
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.
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.
Uip'ten çok daha hızlı ancak başlaması daha zor
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 .
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 .
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.
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.
TI Armatür mikrokontrolörlerinin birçoğunda (ARM Cortex-M3) yerleşik bir ethernet MAC vardır. Harici bir kristal ve ethernet PHY'ye (konektör + manyetik) ihtiyaç duyar.
GCC ve openOCD (JTAG yanıp sönen / hata ayıklama) onları iyi destekliyor ve miktar olarak oldukça ucuzlar.
Onlar da ucuz donanım donanımları var ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus , ethernet uygulamaları için iyi bir 60 $ mikrodenetleyicidir. Gerekirse çoğu Arduino kalkanını da kabul edebilir.
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.
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
güzel bir çözüm için ödeme smokin .
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.
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:
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 .
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:
Dediğim gibi, herkes için değil, bazı projeler için uygun olabilir.
Etrafta kullanılan panoya göre birkaç seçenek var:
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:
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.
Bu amaçla (25 EUR) Openpicus FlyportPro ethernet modülünü seviyorum. Sadece magnetiğe sahip bir ethernet jakı ekleyin ve TCP / IP yığınını kullanarak üretici yazılımınızı oluşturun. Ayrıca bir TLS uygulaması var:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
'Klasik' Flyport ethernet'i kullanarak bir proje yaptım ve şimdiye kadar çok sağlamdı.