Apa itu mikrokontroler yang baik untuk aplikasi Ethernet?

47

Apa mikrokontroler yang baik untuk melakukan aplikasi Ethernet? Atau apakah saya hanya perlu pustaka Ethernet yang baik untuk terhubung dengan Ethernet MAC / PHY?

Robert
sumber
Bisakah Anda memberi tahu kami solusi apa yang Anda pakai dan pengalaman Anda dengannya?
thom_nic
1
Saat ini saya menggunakan seri PIC18F97J60 dan PIC32 dengan ENCxxx. Berhasil. Gotcha terbesar adalah hanya memiliki hingga SSLv3.0, yang baru saja dijatuhkan Firefox dan Chrome. Microchip memang memiliki dukungan untuk banyak protokol lain yang saya gunakan: FTP, TFTP, SNTP, SNMP.
Robert
Senang mendengar - juga batasan SSL baik untuk diketahui tetapi sepertinya semua implementasi TLS "kuat" tidak bebas secara umum. Terima kasih telah berbagi!
thom_nic

Jawaban:

29

PIC18s Microchip dengan ethernet bawaan sangat baik untuk ini, cukup tambahkan magjack (atau konektor lain dengan magnet bawaan) dan unduh tumpukan TCP / IP mereka. Anda akan melakukan ping dalam waktu singkat. Untuk lebih mendengus, PIC24 dan PIC32 juga memiliki tumpukan TCP / IP yang dirancang untuk berjalan dengan salah satu bagian SPI Ethernet MAC / PHY yang mereka tawarkan (ENC624J600 atau ENC628J60).

ST juga baru-baru ini meningkatkan lini STM32 berbasis ARM Cortex untuk menyertakan ethernet on-chip, tetapi Anda akan memerlukan PHY eksternal dan magnet. Ini merupakan opsi jika Anda sudah melihat PIC32.

jengkel
sumber
16
Saya mempunyai masalah dengan tumpukan jaringan Microchip, jadi saya menulis sendiri dan membuatnya tersedia secara gratis dengan kode sumber di embedinc.com/pic/dload.htm dalam rilis Alat Pengembangan PIC. Anda harus merangkul konsep lingkungan pengembangan PIC kami (juga gratis), tapi itu ide yang bagus. Setelah instalasi, cari file dengan "net" di namanya di direktori SOURCE> PIC.
Olin Lathrop
20

Mengenai memiliki tumpukan TCP / IP, ada tiga proyek yang harus Anda perhatikan:

Contiki adalah sistem operasi open source, sangat portabel, multi-tasking untuk sistem tertanam jaringan dan jaringan sensor nirkabel yang efisien memori. Contiki telah digunakan adalah berbagai proyek, seperti pemantauan kebakaran terowongan jalan, deteksi intrusi, pemantauan air di Laut Baltik, dan dalam jaringan pengawasan.

Contiki dirancang untuk mikrokontroler dengan sejumlah kecil memori. Konfigurasi Contiki yang khas adalah 2 kilobyte RAM dan 40 kilobyte ROM.

UIP TCP / IP stack open-source menyediakan konektivitas TCP / IP untuk mikrokontroler 8-bit tertanam yang kecil, dengan interoperabilitas yang terjaga dan kepatuhan standar RFC.

Clinton Blackmore
sumber
17

Umumnya Ethernet tidak dibangun dalam mikrokontroler. Pertama, Anda membutuhkan jack yang dapat mengubah sinyal Ethernet menjadi sinyal yang dibaca oleh mikrokontroler (ini umumnya disebut 'magnetics'). Maka Anda memerlukan tumpukan TCP / IP, dan di atas semua itu Anda memerlukan DHCP, DNS dan protokol apa pun yang ingin Anda gunakan. Jadi mikrokontroler yang sebenarnya Anda gunakan tidak terlalu penting. Jika Anda mendapatkan sesuatu yang sangat kuat seperti ARM dengan Linux berjalan di atasnya, maka mengembangkannya akan sangat sederhana, hampir sama dengan menulis aplikasi jaringan yang berjalan pada PC desktop yang menjalankan Linux. Atau Anda bisa menggunakan sesuatu yang kurang kuat & lebih murah seperti AVR atau PIC.

Ethernet dan TCP / IP bisa sangat kompleks jika Anda ingin mengimplementasikan seluruh tumpukan TCP / IP dalam perangkat lunak. Salah satu solusi umum adalah dengan menggunakan sesuatu seperti chip Wiznet W5100, yang menangani semua hal TCP / IP tingkat rendah untuk Anda. Anda dapat membelinya di modul pra-dibuat yang mencakup konektor ethernet dan semuanya dengan harga yang cukup murah, sekitar $ 20 untuk modul WIZ812MJ . Anda dapat berkomunikasi dengannya hanya menggunakan SPI, sehingga tidak akan membutuhkan banyak pin I / O pada mikrokontroler Anda.

Lantronix juga menyediakan beberapa modul yang lebih kuat yang terlihat lebih sederhana untuk digunakan, tetapi mereka sedikit lebih mahal ($ 50- $ 100 tergantung pada model). Lihat XPort mereka misalnya.

davr
sumber
1
Saya ingin sekali melihat referensi yang memiliki reputasi baik untuk istilah "magnet", karena saya belum pernah mendengarnya.
Andrew
@Andrew Saya tidak tahu kamus teknis apa pun yang memilikinya. Googling itu akan menemukan berbagai referensi. Itulah yang saya lihat. Pada dasarnya intinya adalah untuk mengisolasi sirkuit Anda dari perangkat lain yang terhubung melalui ethernet. Mirip dengan bagaimana MIDI menggunakan isolasi optik.
davr
Saya mendapatkan sekitar setengah juta hasil lebih banyak untuk "isolator ethernet" daripada "ethernet magnetics", tetapi saya mengerti apa yang Anda maksud sekarang.
Andrew
Ada diskusi tentang asal-usul dan penggunaan istilah pada pos Hack A Day ini pada kopling kapasitif .
Andrew
Saya baru saja melihat lembar data transceiver Ethernet (LAN8720A dari Microchip), dan bagian itu disebut sebagai 'Mag' dan 'Transformer'.
Dan Ellis
11

ARM adalah mikrokontroler saat ini, dan NXP memiliki penawaran yang luas. Halaman web ini mencantumkan terlalu banyak pengontrol Ethernet untuk disebutkan di sini, pada tanggal ini (2011-07-13):

17 perangkat ARM7
2 perangkat ARM9
16 perangkat Cortex-M3

sunting
Saya memindahkan pembahasan keunggulan ARM ke jawaban ini .

stevenvh
sumber
apa keuntungan yang diberikan garis lengan. Saya melihat banyak jawaban lain yang perlu lebih detail, yang terpenting adalah Anda memberikan alasan mengapa garis lebih dari sekadar tautan ke garis pengendali. Saya hanya memberi Anda umpan balik ini karena Anda terlalu banyak pengguna untuk tidak memberikan jawaban terbaik!
Kortuk
6
@Kortuk - Oh, bagus sekali! Tidak hanya ingin mereka mendapatkan banyak jawaban, sekarang mereka harus menjadi yang terbaik juga! ;-)
stevenvh
6

The XMOS XC-2 kit adalah cara yang menarik untuk melakukannya. Semuanya dilakukan dalam perangkat lunak, terlepas dari PHY. Perangkat lunak harus dijalankan pada chip $ 7,50 XS1-L1.

Leon Heller
sumber
pria Anda membuat saya tertarik pada produk XMOS. Saya harus berusaha sangat keras untuk menolak mengambil kit pengembangan itu. Apakah Anda tahu jika ada RTOS yang tersedia untuknya?
Dave
Itu tidak benar-benar membutuhkan RTOS, karena utas perangkat keras. Konon, satu atau dua orang sedang mengerjakan satu.
Leon Heller
XMOS juga membuat versi dengan dua jack ethernet. Ini dimaksudkan untuk tanda-tanda sedikit LED, tapi saya tidak melihat mengapa Anda tidak bisa melakukan hal-hal lain. Gulung Router Anda sendiri! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf
5

Microchip memiliki sejumlah mikrokontroler Pic dengan kemampuan ethernet bawaan, ada daftar di sini . Mereka juga memiliki serangkaian halaman mengenai solusi desain untuk ethernet dan produk mereka di sini , yang juga mencakup rincian tumpukan TCP / IP lengkap mereka (dengan MAC dan PHY terintegrasi).

Semoga ini membantu.

Amos
sumber
4

Netduino plus adalah mikrokontroler $ 60 yang bagus untuk aplikasi ethernet. Itu juga dapat menerima sebagian besar perisai Arduino jika diperlukan.

avra
sumber
4

Bergantung pada seberapa mudah Anda ingin membuat hidup Anda, saya akan merekomendasikan menggunakan MBED dan membeli magjack dan papan ethernet breakout (lihat sparkfun) untuk menghubungkan kabel dan berurusan dengan pengkondisian sinyal. Model pendukungnya adalah NXP LPC1768.

Saya berhasil mendapatkan mbed mengirim data ke server jarak jauh saya (mis. Melalui internet) dalam waktu sekitar 2 jam dari awal berdiri.

SimonBarker
sumber
4

Itu tergantung apa yang ingin Anda lakukan dengannya. Hal utama yang harus diperhatikan adalah jumlah RAM (dapat membatasi ukuran pesan individu) dan jika Anda ingin melayani halaman web maka jumlah penyimpanan yang tersedia untuk itu. Saya menggunakan Arduino Duemilanova http://www.arduino.cc/ - pengontrol mikro ATMega328, RAM 2Kbytes. Anda dapat menghubungkan kartu SD jika Anda ingin penyimpanan yang signifikan. Perisai ethernet akan mendukung hingga 4 sesi bersamaan. Jangan berharap dapat menampilkan halaman yang rumit tetapi mengunggah dengan baik ke Pachube, twitter dll.

Untuk solusi yang lebih kuat, lihat Marvell Plug

JohnC
sumber
3

Saya akan menyarankan menggunakan ENC28J60 bersama-sama dengan salah satu dari pic 18 micro-controllers karena microchip menawarkan TCP / IP stack untuk kombinasi ini dan harus ada banyak informasi yang tersedia melalui google tentang penerapan ini.

Erik
sumber
3

checkout tuxgraphics untuk solusi yang bagus.

CH2048
sumber
4
Menggunakan AVR mikro dengan Microchip MAC / PHY? Apa berikutnya? Kucing dan anjing hidup bersama? :)
Robert
Saya punya salah satunya - ini bekerja dengan baik. Hadir sebagai kit dengan semua bagian dudukan permukaan yang disolder sebelumnya. Sumber uIP dan driver ethernet ikut serta.
Toby Jaffey
3

Ada banyak proyek menggunakan ENC28J60 dan ATMEL Cips. Kebanyakan dari mereka didokumentasikan dengan baik dan menggunakan C atau BASCOM. Anda juga bisa membeli perlengkapan lengkap untuk memulai. Saya sendiri memiliki kit semacam itu dan belajar banyak tentang pemrograman dari forum.

Achim
sumber
3

The nanode adalah open source dan hanya £ 22 / $ 40 dikirimkan. Saya baru saja membeli dua untuk pemantauan energi / lingkungan rumah melalui pachube.

30 pitch kedua dari situs:

Nanode adalah open source seperti papan Arduino yang memiliki konektivitas web built-in. Ini terhubung ke berbagai antarmuka nirkabel, kabel dan ethernet. Ini memungkinkan Anda untuk mengembangkan sensor berbasis web dan sistem kontrol - memberi Anda akses web ke enam jalur sensor analog dan enam jalur I / O digital. Ini adalah kit yang mudah dibuat sendiri. Nanode dirancang dengan mengingat Hacking.

Sixer Berat
sumber
3

Saya sudah mencoba tumpukan microchip menggunakan kartu develpment picdem.net 2 dan saya tidak puas sama sekali, itu tidak dioptimalkan dan tidak didokumentasikan dengan baik.

Saya berpikir bahwa solusi terbaik di pasar saat ini adalah Wiznet yang memiliki chip perangkat keras TCP / IP berbasis Ethernet pertama yang menghemat banyak waktu dan memberi Anda lebih banyak efisiensi

Tautan ini memberikan semua solusi yang tersedia dan membandingkannya:

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

mba7
sumber
Gambaran yang luar biasa.
Amos
1
Saya juga punya pengalaman buruk dengan tumpukan jaringan Microchip, jadi saya menulis sendiri. Ini termasuk dalam rilis Alat Pengembangan PIC di [url] embedinc.com/pic/dload.htm[/url] . Ini berjalan pada PIC 18, dapat menggerakkan ENC28J60 eksternal atau internal MAC / PHY, berkomentar dengan baik, mudah dikonfigurasi, dan dirancang untuk tapak rendah.
Olin Lathrop
3

Saya terlambat ke pesta di sini tapi saya merekomendasikan TI Stellaris EK-LM3S6965. Ini adalah bagian ARM Cortex M3 dengan pengontrol Ethernet bawaan termasuk PHY. Untuk prototyping saya menggunakan kit evaluasi mereka, yang memiliki jack Ethernet, layar OLED kecil (bagus untuk debugging dan UI barebones), slot kartu SD, speaker, tombol, LED dan berjerawat untuk kabel barang hingga periferal mikro. Anda tidak mendeskripsikan aplikasi Anda (yaitu, mencari untuk menghasilkan puluhan ribu sesuatu atau proyek hobi satu kali), tetapi penetapan harganya masuk akal (~ $ 70 untuk papan dev, $ 12-15 dalam jumlah kecil hanya untuk chip) , mereka datang dengan satu set pustaka pengembangan OK jika Anda ingin melakukan firmware Anda sendiri atau dapat menjalankan FreeRTOS (diperlukan sedikit porting karena revs perangkat keras kecil antara revisi papan saya dan barang-barang di distro FreeRTOS) dan eLua. Anda dapat menggunakan uIP atau lwIP untuk TCP / IP.

Dibandingkan dengan penawaran hobi populer seperti AVR / Arduino dan PIC, Cortex M3 adalah bagian 32-bit, berjalan pada 50MHz, 6965 memiliki banyak fitur I / O, IMO untuk uang, sungguh menakjubkan betapa banyak daya komputasi dan seberapa banyak fitur yang bisa Anda dapatkan dari sesuatu yang begitu kecil dan murah. Ini cukup mentah di sisi pengembangan, dan Anda harus tahu C (well, kecuali Anda menjalankan eLua). Saya seorang pengembang perangkat lunak berdagang dan melakukan pengembangan ARM pada Mac, jadi saya tidak takut dengan pengaturan toolchain yang menakutkan / tidak nyaman dan menggunakan Make + arm-eabi-gcc + OpenOCD untuk debugging, tetapi jika Anda seorang Windows guy mungkin bundel Code Composer Studio akan menjadi taruhan yang bagus. Saya menggunakan IDE Komposer Kode TI untuk proyek eksperimental MSP430 yang menyenangkan dan saya baik-baik saja dan memiliki alur kerja yang lebih mudah daripada pengaturan OSX / ARM saya.

Pengungkapan penuh, saya belum benar-benar merancang PCB di sekitar chip ini yang menggunakan pengontrol Ethernet, tapi saya melakukan papan yang tidak menggunakan Ethernet dan memiliki pengalaman yang baik dengan itu, dan saya telah membangun proyek yang mendukung Ethernet menggunakan papan evaluasi.

Lihatlah bundel papan / alat evaluasi di sini

UPDATE Sep 2013

Bagian-bagian ini tampaknya tidak lagi direkomendasikan untuk desain baru. Tampaknya tidak ada penggantian yang jelas.

PEMBARUAN Nov 2013

Sekarang ada TM4C129XNCZAD yang secara nominal merupakan pengganti untuk bagian di atas - ia memiliki onboard MAC + PHY, meskipun tidak kompatibel dengan pin - namun banyak orang enggan menggunakannya setelah masalah / kebingungan atas penghentian / ketersediaan kehidupan awal LM3S .

Suboptimus
sumber
2

Mungkin bukan 100% pertanyaan yang diajukan, tetapi untuk proyek-proyek di mana produksi berjalan cukup kecil, saya mulai melihat orang-orang menyematkan papan pra-bangun seperti pi raspberry. Ini memiliki banyak keuntungan:

  1. Harganya tidak terlalu banyak dibandingkan dengan salah satu CPU kelas atas dengan ethernet (setidaknya untuk volume rendah), dan Anda melewatkan seluruh beban masalah desain / pengujian / masalah.
  2. PI raspberry sudah diuji CE / EMC, sehingga memotong seluruh beban ketidakpastian (jika tidak ethernet & jam cepat dapat memunculkan banyak masalah EMC). Anda masih harus menguji produk akhir Anda, tetapi setidaknya ada seluruh area yang benar-benar tidak boleh menyebabkan kegagalan.
  3. Anda mendapatkan lebih banyak gerutuan dan tumpukan TCP / IP tingkat server yang tepat jika Anda menggunakan linux dll - tidak ada satupun dari ini "hanya satu koneksi aktif yang diizinkan" ketik hal-hal!

Seperti yang saya katakan, ini bukan untuk semua orang, tetapi untuk beberapa proyek itu bisa cocok.

Ada beberapa opsi dalam hal papan tepat yang digunakan:

  1. Raspberry PI
  2. Beaglebone black - memiliki flash onboard
  3. STM32F4DISCOVERY dengan papan ekspansi
JosephH
sumber
2

Anda dapat menggunakan hampir semua MCU dengan Wiznet W5500 tertanam MAC + PHY controller, itu didorong oleh SPI. Keuntungannya adalah: ia memiliki built-in network stack, buffer Tx / Rx, membutuhkan pin MCU minimum, pemrograman yang disederhanakan.

Saya baru saja menemukan opsi lain yang menarik - AX88796C dari ASIX, juga memiliki MAC + PHY , 10 \ 100Mbps Ethernet dan opsi antarmuka hingga 40MHz SPI, sehingga terlihat cocok untuk setiap MCU berbasis ARM.

UPDATE: Netduino 3 sudah menggunakan chip ini, berikut detail menarik:

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

Flanker
sumber
1

Jika Anda memiliki pengalaman dengan firmware, saya akan merekomendasikan board STM32F4Discovery dengan board STM32F4DIS-EXT. Baru-baru ini saya menggunakan ini untuk membuat halaman web konfigurasi untuk perangkat saya dan itu cukup mudah. Ada proyek contoh lwIP yang tersedia online dan jika Anda google "makefsdata" Anda akan menemukan banyak informasi tentang cara membuat file yang diperlukan untuk file HTML Anda sendiri. Pesan saya jika Anda membutuhkan info lebih lanjut.

PacEE
sumber
1

Saya suka modul ethernet Openpicus FlyportPro (25 EUR) untuk tujuan itu. Tambahkan saja ethernet jack dengan magnetics dan buat firmware Anda menggunakan tumpukan TCP / IP mereka. Mereka juga memiliki implementasi TLS:

http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html

Saya melakukan proyek menggunakan ethernet Flyport 'klasik' dan sejauh ini sudah solid.

Xen
sumber