ไมโครคอนโทรลเลอร์ที่ดีสำหรับการทำแอพพลิเคชั่นอีเธอร์เน็ตคืออะไร? หรือฉันจะต้องมีห้องสมุด Ethernet ที่ดีเพื่อเชื่อมต่อกับ Ethernet MAC / PHY?
ไมโครคอนโทรลเลอร์ที่ดีสำหรับการทำแอพพลิเคชั่นอีเธอร์เน็ตคืออะไร? หรือฉันจะต้องมีห้องสมุด Ethernet ที่ดีเพื่อเชื่อมต่อกับ Ethernet MAC / PHY?
คำตอบ:
PIC18s ของ Microchip ที่มีอีเธอร์เน็ตในตัวนั้นยอดเยี่ยมเพียงแค่เพิ่ม magjack (หรือตัวเชื่อมต่ออื่น ๆ ที่มีแม่เหล็กในตัว) แล้วดาวน์โหลด TCP / IP stack คุณจะกระตุกสิ่งต่าง ๆ ในเวลาไม่นาน สำหรับความน่ากลัวที่มากขึ้น PIC24 และ PIC32 ยังมีสแต็ก TCP / IP ที่ออกแบบมาเพื่อทำงานกับหนึ่งในส่วน SPI Ethernet MAC / PHY ที่พวกเขาเสนอ (ENC624J600 หรือ ENC628J60)
เมื่อเร็ว ๆ นี้ ST ก็ปรับปรุงสาย STM32 ARM Cortex ที่ใช้ของพวกเขาเพื่อรวมอีเธอร์เน็ตบนชิป แต่คุณจะต้อง PHY และแม่เหล็กภายนอก เป็นตัวเลือกหากคุณดู PIC32 อยู่แล้ว
เกี่ยวกับการมีสแต็ก TCP / IP มีสามโครงการที่คุณควรดู:
Contiki เป็นระบบปฏิบัติการโอเพ่นซอร์สที่พกพาได้หลายระบบสำหรับระบบฝังตัวที่มีหน่วยความจำและเครือข่ายเซ็นเซอร์ไร้สาย Contiki ถูกนำมาใช้เป็นหลายโครงการเช่นการตรวจสอบไฟไหม้อุโมงค์ถนนการตรวจจับการบุกรุกการตรวจสอบน้ำในทะเลบอลติกและในเครือข่ายเฝ้าระวัง
Contiki ถูกออกแบบมาสำหรับไมโครคอนโทรลเลอร์ที่มีหน่วยความจำน้อย การกำหนดค่า Contiki โดยทั่วไปคือ RAM 2 กิโลไบต์และ ROM 40 กิโลไบต์
สแต็กโอเพนซอร์ส uIP TCP / IP ให้การเชื่อมต่อ TCP / IP กับไมโครคอนโทรลเลอร์ขนาดเล็ก 8 บิตแบบฝังตัวพร้อมการทำงานร่วมกันที่คงไว้และการปฏิบัติตามมาตรฐาน RFC
เร็วกว่า uIP มาก แต่เริ่มต้นได้ยากขึ้น
โดยทั่วไปแล้วอีเธอร์เน็ตไม่ได้ถูกสร้างขึ้นในไมโครคอนโทรลเลอร์ ก่อนอื่นคุณต้องใช้แจ็คที่สามารถแปลงสัญญาณอีเธอร์เน็ตให้เป็นสัญญาณที่ไมโครคอนโทรลเลอร์อ่านได้ (โดยทั่วไปเรียกว่า 'แม่เหล็ก') จากนั้นคุณต้องใช้สแต็ก TCP / IP จากนั้นคุณต้องใช้ DHCP, DNS และโปรโตคอลอื่น ๆ ที่คุณต้องการใช้ ดังนั้นไมโครคอนโทรลเลอร์ที่แท้จริงที่คุณใช้ไม่สำคัญมากนัก หากคุณได้รับสิ่งที่ทรงพลังอย่าง ARM กับ Linux ที่ทำงานอยู่การพัฒนามันจะง่ายมากเหมือนกับการเขียนแอปพลิเคชันเครือข่ายที่ทำงานบนเดสก์ท็อปพีซีที่ใช้ Linux หรือคุณสามารถไปกับสิ่งที่มีประสิทธิภาพน้อยกว่าและราคาถูกกว่าเช่น AVR หรือ PIC
อีเทอร์เน็ตและ TCP / IP นั้นค่อนข้างซับซ้อนหากคุณต้องการติดตั้งสแต็ก TCP / IP ทั้งหมดในซอฟต์แวร์ ทางออกหนึ่งที่พบบ่อยคือการใช้ชิพ W5100 ของ Wiznet ซึ่งจัดการ TCP / IP ระดับต่ำสำหรับคุณ คุณสามารถซื้อได้ในโมดูลที่ทำไว้ล่วงหน้าที่มีการเชื่อมต่ออีเธอร์เน็ตและทุกอย่างสวยราคาถูกประมาณ$ 20 สำหรับโมดูล คุณสามารถสื่อสารกับมันโดยใช้ SPI เท่านั้นดังนั้นจะไม่ใช้พิน I / O จำนวนมากบนไมโครคอนโทรลเลอร์ของคุณ
Lantronix ยังมีโมดูลที่ทรงพลังกว่าซึ่งดูง่ายต่อการใช้งาน แต่มีราคาแพงกว่าเล็กน้อย ($ 50 - $ 100 ขึ้นอยู่กับรุ่น) ดูXPortของพวกเขาเช่น
ARM เป็นไมโครคอนโทรลเลอร์ในแต่ละวันและ NXP มีข้อเสนอมากมาย หน้าเว็บนี้แสดงรายการคอนโทรลเลอร์อีเทอร์เน็ตจำนวนมากเกินไปที่จะกล่าวถึงทั้งหมด ณ วันนี้ (2011-07-13):
17 อุปกรณ์ ARM7 อุปกรณ์
2 ARM9 อุปกรณ์
Cortex-M3 16 เครื่อง
แก้ไข
ฉันย้ายการสนทนาข้อดีของ ARM ไปที่คำตอบนี้
ชุดXMOS XC-2เป็นวิธีที่น่าสนใจ ทุกอย่างทำในซอฟต์แวร์นอกเหนือจาก PHY ซอฟต์แวร์ควรรันบนชิป $ XS1-L1 $ 7.50
Microchip มีจำนวนของไมโครคอนโทรลเลอร์ Pic ที่มีความสามารถ inbuilt อีเธอร์เน็ตมีรายการที่นี่ พวกเขายังมีชุดของหน้าเกี่ยวกับโซลูชันการออกแบบสำหรับอีเธอร์เน็ตและผลิตภัณฑ์ของพวกเขาที่นี่ซึ่งรวมถึงรายละเอียดของสแต็ค TCP / IP เต็มของพวกเขา (รวมกับ MAC และ PHY)
หวังว่านี่จะช่วยได้
คอนโทรลเลอร์ไมโครคอนโทรลเลอร์ TI Luminary (ARM Cortex-M3) มีอีเทอร์เน็ตออนบอร์ด MAC มันต้องการคริสตัลภายนอกและอีเธอร์เน็ต PHY (ขั้วต่อ + แม่เหล็ก)
GCC และ openOCD (การกะพริบ / การดีบัก JTAG) สนับสนุนพวกเขาได้ดีและพวกเขาก็ค่อนข้างถูกในปริมาณ
พวกเขามีฮาร์ดแวร์ราคาถูก devkits ด้วย ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plusเป็นคอนโทรลเลอร์ไมโครคอนโทรลเลอร์ที่ดีสำหรับการใช้งานอีเธอร์เน็ต นอกจากนี้ยังสามารถยอมรับโล่ Arduino ส่วนใหญ่หากจำเป็น
ขึ้นอยู่กับว่าคุณต้องการทำให้ชีวิตของคุณง่ายแค่ไหนฉันขอแนะนำให้ใช้MBEDและซื้อแผ่นวงจรเบรกและแผงวงจรอีเธอร์เน็ต (ดู sparkfun) เพื่อเชื่อมต่อสายเคเบิลและจัดการกับการปรับสภาพสัญญาณ รูปแบบที่รองรับคือ mbed NXP LPC1768
ฉันจัดการเพื่อรับ mbed ส่งข้อมูลไปยังเซิร์ฟเวอร์ระยะไกลของฉัน (เช่นผ่านทางอินเทอร์เน็ต) ในเวลาประมาณ 2 ชั่วโมงจากจุดเริ่มต้น
มันขึ้นอยู่กับสิ่งที่คุณต้องการจะทำกับมัน สิ่งสำคัญที่ต้องระวังคือปริมาณของ RAM (สามารถ จำกัด ขนาดของข้อความแต่ละรายการ) และถ้าคุณต้องการให้บริการหน้าเว็บแล้วจำนวนของพื้นที่เก็บข้อมูลที่มีอยู่สำหรับสิ่งนั้น ฉันใช้ Arduino Duemilanova http://www.arduino.cc/ - คอนโทรลเลอร์ไมโคร ATMega328, RAM 2Kbytes คุณสามารถเชื่อมต่อการ์ด SD ได้หากคุณต้องการที่เก็บข้อมูลจำนวนมาก อีเธอร์เน็ตชิลด์จะรองรับเซสชันได้พร้อมกันสูงสุด 4 เซสชัน อย่าคาดหวังว่าจะสามารถแสดงหน้าเว็บที่ซับซ้อนได้ แต่ใช้งานได้ดีกับการอัปโหลดไปยัง Pachube, twitter และอื่น ๆ
เพื่อการแก้ปัญหาที่มีประสิทธิภาพยิ่งขึ้นดูที่Marvell Plug
ฉันขอแนะนำให้ใช้ ENC28J60 ร่วมกับหนึ่งใน pic-micro-controllers ตัวหนึ่งเนื่องจาก microchip เสนอ TCP / IP สแต็กสำหรับชุดนี้และควรมีข้อมูลมากมายผ่าน google ในการใช้งานนี้
tuxgraphicsชำระเงินสำหรับทางออกที่ดี
มีหลายโครงการที่ใช้ ENC28J60 และ ATMEL Cips ส่วนใหญ่มีเอกสารที่ดีและใช้ C หรือ BASCOM นอกจากนี้คุณยังสามารถซื้อชุดสมบูรณ์เพื่อเริ่มต้นด้วย ฉันเองเป็นเจ้าของชุดดังกล่าวและเรียนรู้มากเกี่ยวกับการเขียนโปรแกรมจากฟอรั่ม
nanodeเปิดแหล่งที่มาและเพียง£ 22 / $ 40 จัดส่ง ฉันเพิ่งซื้อสองชิ้นสำหรับใช้ในบ้าน / ตรวจสอบด้านพลังงานผ่าน pachube
ระยะห่างจากไซต์ 30 วินาที:
Nanode เป็นบอร์ดโอเพนซอร์ซโอเพนซอร์สที่มีการเชื่อมต่อเว็บในตัว มันเชื่อมต่อกับช่วงของการเชื่อมต่อไร้สายแบบมีสายและอีเธอร์เน็ต ช่วยให้คุณพัฒนาระบบเซ็นเซอร์และระบบควบคุมบนเว็บ - ให้คุณเข้าถึงเว็บเซ็นเซอร์แบบอะนาล็อกหกเส้นและดิจิตอล I / O หกสาย มันเป็นชุดที่สร้างได้ง่ายด้วยตัวคุณเอง Nanode ได้รับการออกแบบโดยคำนึงถึงการแฮ็ก
ฉันได้ลองใช้ microchip stack โดยใช้ picdem.net 2 develpment card แล้วและฉันก็ไม่พอใจเลยมันไม่ได้รับการปรับปรุงและไม่ได้รับการบันทึกไว้อย่างดี
ฉันคิดว่าทางออกที่ดีที่สุดในตลาดขณะนี้คือ Wiznet ที่มีชิปฮาร์ดแวร์ TCP / IP บนอีเทอร์เน็ตตัวแรกที่ประหยัดเวลาได้มากและให้ประสิทธิภาพที่ดีขึ้น
ลิงก์นี้ให้โซลูชันทั้งหมดที่มีและเปรียบเทียบกับ:
ฉันไปงานปาร์ตี้ที่นี่ช้า แต่ฉันขอแนะนำTI Stellaris EK-LM3S6965. เป็นส่วนหนึ่งของ ARM Cortex M3 พร้อมคอนโทรลเลอร์อีเธอร์เน็ตในตัวรวมถึง PHY สำหรับการสร้างต้นแบบฉันใช้ชุดการประเมินผลของพวกเขาซึ่งมีแจ็คอีเธอร์เน็ต, จอแสดงผล OLED ขนาดเล็ก (เหมาะสำหรับการแก้ไขข้อบกพร่องและ UI แบบไร้รอยต่อ), ช่องเสียบการ์ด SD, ลำโพง, ปุ่ม, ไฟ LED และฝ่าวงล้อม คุณไม่ได้อธิบายแอปพลิเคชันของคุณ (เช่นกำลังมองหาการผลิตหลายหมื่นหลายพันรายการหรือเป็นงานอดิเรกแบบครั้งเดียว) แต่การกำหนดราคามีความสมเหตุสมผล (~ $ 70 สำหรับบอร์ด dev, $ 12-15 ในปริมาณเล็กน้อยสำหรับชิปเท่านั้น) พวกเขามาพร้อมกับชุดพัฒนาไลบรารีที่ตกลงถ้าคุณต้องการทำเฟิร์มแวร์ของคุณเองหรือสามารถเรียกใช้ FreeRTOS (จำเป็นต้องมีการย้ายพอร์ตเล็กน้อยเนื่องจากฮาร์ดแวร์รุ่นเล็กระหว่างการแก้ไขบอร์ดของฉันกับสิ่งของใน FreeRTOS distro) และ eLua คุณสามารถใช้ uIP หรือ lwIP สำหรับ TCP / IP
เมื่อเทียบกับงานอดิเรกยอดนิยมเช่น AVR / Arduino และ PIC Cortex M3 เป็นส่วน 32 บิตทำงานที่ 50MHz, 6965 มีคุณสมบัติ I / O จำนวนมาก IMO สำหรับเงินมันน่าอัศจรรย์เพียงคำนวณพลังและวิธีการ คุณสมบัติมากมายที่คุณจะได้จากสิ่งเล็ก ๆ และราคาถูก อย่างไรก็ตามมันค่อนข้างดิบในด้านการพัฒนาและคุณต้องรู้จัก C (ดีเว้นแต่คุณจะเรียกใช้ eLua) ฉันเป็นนักพัฒนาซอฟต์แวร์โดยแลกเปลี่ยนและพัฒนา ARM ของฉันบน Mac ดังนั้นฉันจึงไม่กลัวการติดตั้ง Toolchain ที่น่ากลัว / ไม่สะดวกและใช้ Make + arm-eabi-gcc + OpenOCD สำหรับการดีบัก แต่ถ้าคุณเป็นผู้ชาย Windows บางทีการรวมกลุ่มของ Code Composer Studio อาจเป็นทางออกที่ดี ฉันใช้ Code Composer IDE ของ TI สำหรับโครงการทดลอง MSP430 ที่สนุกและมันก็ดีสำหรับฉันและมีขั้นตอนการทำงานที่ง่ายกว่าการตั้งค่า OSX / ARM ของฉัน
การเปิดเผยแบบเต็มฉันไม่ได้ออกแบบ PCB รอบ ๆ ชิปนี้ที่ใช้ตัวควบคุมอีเทอร์เน็ต แต่ฉันทำบอร์ดที่ไม่ได้ใช้อีเทอร์เน็ตและมีประสบการณ์ที่ดีกับมันและฉันได้สร้างโครงการที่ใช้อีเทอร์เน็ตโดยใช้ คณะกรรมการประเมินผล
ตรวจสอบชุดเครื่องมือ / ชุดเครื่องมือประเมินที่นี่
อัพเดทกันยายน 2013
ดูเหมือนว่าชิ้นส่วนเหล่านี้จะไม่แนะนำสำหรับการออกแบบใหม่อีกต่อไป ดูเหมือนจะไม่มีอะไรมาแทนที่อย่างชัดเจน
อัพเดทพฤศจิกายน 2013
ขณะนี้มีTM4C129XNCZADซึ่งเป็นนามแทนส่วนเหนือ - มันมีออนบอร์ด MAC + PHY, แม้จะไม่ได้ขาเข้ากันได้ - แต่คนจำนวนมากจะลังเลที่จะใช้งานได้หลังจากปัญหา / ความสับสนมากกว่า LM3S ชีวิตในวัยเด็กหยุด / ห้องว่าง
อาจไม่ใช่สิ่งที่คำถามนี้ถาม 100% แต่สำหรับโครงการที่ดำเนินการผลิตค่อนข้างเล็กฉันเริ่มเห็นผู้คนฝังบอร์ดที่สร้างไว้ล่วงหน้าเช่นราสเบอร์รี่ปี่ สิ่งนี้มีข้อดีมากมาย:
อย่างที่ฉันพูดไปมันไม่ได้มีไว้สำหรับทุกคน แต่สำหรับบางโครงการมันอาจเป็นแบบที่ดี
มีตัวเลือกไม่กี่ตัวเลือกในแง่ของบอร์ดที่แน่นอนใช้:
คุณสามารถใช้MCU ได้เกือบทุกตัวด้วยตัวควบคุมMAC + PHY Wiznet W5500ซึ่งถูกขับเคลื่อนโดย SPI ข้อดีคือมันมีเครือข่ายสแต็คในตัวบัฟเฟอร์ Tx / Rx ต้องการพิน MCU ขั้นต่ำการเขียนโปรแกรมแบบง่าย
ฉันเพิ่งพบอีกตัวเลือกที่น่าสนใจ - AX88796Cจาก ASIX ก็ยังมีทั้งMAC + PHY 10 \ 100Mbps Ethernet และขึ้นอยู่กับตัวเลือกที่อินเตอร์เฟซ SPI 40MHz เพื่อให้มีลักษณะแบบที่ดีสำหรับการใด ๆ ARM ตาม MCU
ปรับปรุง: Netduino 3 ใช้ชิปนี้อยู่แล้วรายละเอียดที่น่าสนใจมีดังนี้:
หากคุณมีประสบการณ์เกี่ยวกับเฟิร์มแวร์ฉันจะแนะนำบอร์ด STM32F4Discovery พร้อมกับบอร์ด STM32F4DIS-EXT ฉันเพิ่งใช้สิ่งนี้เพื่อสร้างเว็บเพจการกำหนดค่าสำหรับอุปกรณ์ของฉันและมันค่อนข้างง่าย มีตัวอย่างโครงการ lwIP พร้อมใช้งานออนไลน์และหากคุณ google "makefsdata" คุณจะพบข้อมูลมากมายเกี่ยวกับวิธีสร้างไฟล์ที่จำเป็นสำหรับไฟล์ HTML ของคุณเอง ส่งข้อความถึงฉันหากคุณต้องการข้อมูลเพิ่มเติม
ฉันชอบโมดูลอีเธอร์เน็ต Openpicus FlyportPro (25 EUR) เพื่อจุดประสงค์นั้น เพียงเพิ่มแจ็คอีเธอร์เน็ตด้วยแม่เหล็กและสร้างเฟิร์มแวร์ของคุณโดยใช้สแต็ก TCP / IP พวกเขามีการนำ TLS ไปใช้เช่นกัน:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
ฉันทำโครงการโดยใช้อีเธอร์เน็ต 'คลาสสิค' Flyport และมันก็เป็นไปอย่างมั่นคง