Apa mikrokontroler yang baik untuk melakukan aplikasi Ethernet? Atau apakah saya hanya perlu pustaka Ethernet yang baik untuk terhubung dengan Ethernet MAC / PHY?
Apa mikrokontroler yang baik untuk melakukan aplikasi Ethernet? Atau apakah saya hanya perlu pustaka Ethernet yang baik untuk terhubung dengan Ethernet MAC / PHY?
Jawaban:
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.
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.
Jauh lebih cepat daripada uIP tetapi lebih sulit untuk memulai
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.
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 .
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.
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.
Banyak mikrokontroler TI Luminary (ARM Cortex-M3) memiliki MAC ethernet onboard. Perlu kristal eksternal dan PHY ethernet (konektor + magnet).
GCC dan openOCD (JTAG flashing / debugging) mendukung mereka dengan baik dan jumlahnya cukup murah.
Mereka memiliki perangkat keras yang murah juga ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus adalah mikrokontroler $ 60 yang bagus untuk aplikasi ethernet. Itu juga dapat menerima sebagian besar perisai Arduino jika diperlukan.
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.
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
checkout tuxgraphics untuk solusi yang bagus.
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.
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.
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:
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 .
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:
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:
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:
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.
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.