イーサネットアプリケーションを行うための優れたマイクロコントローラーとは何ですか?または、イーサネットMAC / PHYに接続するために適切なイーサネットライブラリのみが必要ですか?
イーサネットアプリケーションを行うための優れたマイクロコントローラーとは何ですか?または、イーサネットMAC / PHYに接続するために適切なイーサネットライブラリのみが必要ですか?
回答:
イーサネットを内蔵したMicrochipのPIC18はこれに優れており、マグジャック(または磁気を内蔵した他のコネクタ)を追加してTCP / IPスタックをダウンロードするだけです。あなたはすぐに物事をpingするでしょう。さらに、PIC24とPIC32には、提供するSPIイーサネットMAC / PHYパーツ(ENC624J600またはENC628J60)のいずれかで動作するように設計されたTCP / IPスタックもあります。
STは最近、ARM CortexベースのSTM32ラインを強化してオンチップイーサネットを追加しましたが、外部PHYとマグネティックスが必要になります。既にPIC32を見ている場合、これはオプションです。
TCP / IPスタックについては、次の3つのプロジェクトを確認する必要があります。
Contikiは、メモリ効率の高いネットワーク化された組み込みシステムおよびワイヤレスセンサーネットワーク向けの、オープンソースで移植性の高いマルチタスクオペレーティングシステムです。Contikiは、道路トンネルの火災監視、侵入検知、バルト海の水監視、監視ネットワークなど、さまざまなプロジェクトで使用されています。
Contikiは、少量のメモリを備えたマイクロコントローラ用に設計されています。典型的なContiki構成は、2キロバイトのRAMと40キロバイトのROMです。
オープンソースのuIP TCP / IPスタックは、相互運用性とRFC標準への準拠を維持しながら、小型の組み込み8ビットマイクロコントローラへのTCP / IP接続を提供します。
uIPよりはるかに高速ですが、使い始めるのが難しい
通常、イーサネットはマイクロコントローラーに組み込まれていません。最初に、イーサネット信号をマイクロコントローラーで読み取られる信号に変換できるジャックが必要です(これは一般に「マグネティックス」と呼ばれます)。次に、TCP / IPスタックが必要になり、その上にDHCP、DNS、および使用する他のプロトコルが必要になります。したがって、実際に使用するマイクロコントローラーはそれほど重要ではありません。Linuxを実行しているARMのような非常に強力なものを取得する場合、そのための開発は非常に簡単で、Linuxを実行しているデスクトップPCで実行するネットワークアプリケーションを作成するのとほとんど同じです。または、AVRやPICのように強力で安価なものを使用することもできます。
ソフトウェアでTCP / IPスタック全体を実装する場合、イーサネットとTCP / IPは非常に複雑になる可能性があります。一般的な解決策の1つは、WiznetのW5100チップのようなものを使用することです。これは、低レベルのTCP / IPをすべて処理します。イーサネットコネクタと、WIZ812MJモジュールが20ドル前後の非常に安価なものをすべて含む既製のモジュールで購入できます。SPIのみを使用して通信できるため、マイクロコントローラーのI / Oピンをあまり必要としません。
Lantronixは、さらに使いやすいように見えるいくつかのより強力なモジュールも提供しますが、それらはもう少し高価です(モデルによって50〜100ドル)。たとえば、XPortを参照してください。
ARMは当時のマイクロコントローラーであり、NXPはそれらを幅広く提供しています。このWebページには、この日付(2011-07-13)でここにすべてを記載するには文字通り多すぎるイーサネットコントローラーがリストされています。
17 ARM7デバイス
2 ARM9デバイス
16 Cortex-M3デバイス
編集
私はARMの利点の議論をこの答えに移しました。
XMOS XC-2キットには、それを行うための興味深い方法です。PHY以外のすべてはソフトウェアで行われます。ソフトウェアは、7.50ドルのXS1-L1チップで実行する必要があります。
多くのTI Luminaryマイクロコントローラー(ARM Cortex-M3)には、イーサネットMACが搭載されています。外部のクリスタルとイーサネットPHY(コネクタ+磁気)が必要です。
GCCおよびopenOCD(JTAGフラッシュ/デバッグ)はそれらを十分にサポートしており、数量的にもかなり安価です。
安価なハードウェア開発キットもあります...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plusは、イーサネットアプリケーションに適した60ドルのマイクロコントローラーです。また、必要に応じてほとんどのArduinoシールドを受け入れることができます。
それはあなたがそれで何をしたいかに依存します。注目すべき主なことは、RAMの量(個々のメッセージサイズを制限できる)と、Webページを提供する場合に使用可能なストレージの量です。Arduino Duemilanova http://www.arduino.cc/を使用します -ATMega328マイクロコントローラー、2KバイトRAM。大容量のストレージが必要な場合は、SDカードを接続できます。イーサネットシールドは、最大4つの同時セッションをサポートします。複雑なページを提供できるとは思わないが、パチュベ、ツイッターなどにうまくアップロードできる
より強力なソリューションについては、Marvell Plugをご覧ください
picdem.net 2開発カードを使用してマイクロチップスタックを試しましたが、まったく満足していませんでした。最適化も文書化もされていません。
現在、市場で最も優れたソリューションは、多くの時間を節約し、より効率的なイーサネットベースのTCP / IPハードウェアチップを搭載したWiznetです。
このリンクは利用可能なすべてのソリューションを提供し、それらを比較します:
私はここでパーティーに遅れましたが、TI Stellaris EK-LM3S6965をお勧めします。これは、PHYを含むイーサネットコントローラーが組み込まれたARM Cortex M3パーツです。プロトタイプの作成には、イーサネットジャック、小型OLEDディスプレイ(デバッグおよびベアボーンUIに最適)、SDカードスロット、スピーカー、ボタン、LED、マイクロの周辺機器に配線するためのブレークアウトを備えた評価キットを使用しました。アプリケーションについて説明していませんでした(つまり、何万もの何かや1回限りの趣味のプロジェクトを作成しようとしています)が、価格は妥当です(開発ボードで70ドル、チップだけで少量で12-15ドル)独自のファームウェアを実行する場合、またはFreeRTOSを実行できる場合は、開発ライブラリのOKセットが付属します(FreeRTOS(ボードリビジョンとFreeRTOSディストリビューションのものとの間にマイナーなハードウェアリビジョンが必要なため、移植が少し必要です)およびeLua)。TCP / IPにはuIPまたはlwIPを使用できます。
AVR / ArduinoやPICなどの人気のホビーリスト製品と比較して、Cortex M3は32ビットパーツであり、50MHzで動作します。6965は多くのI / O機能を備えています。非常に小さくて安価なものから抜け出すことができる多くの機能。ただし、開発側ではかなり生であり、Cを知っている必要があります(eLuaを実行しない限り)。私は貿易でソフトウェア開発者であり、MacでARM開発を行っているので、怖い/不便なツールチェーンのセットアップを恐れず、デバッグにMake + arm-eabi-gcc + OpenOCDを使用しましたが、Windowsの場合はおそらくCode Composer Studioバンドルがいいでしょう。TIのCode Composer IDEを楽しいMSP430実験プロジェクトに使用しましたが、OSX / ARMセットアップよりも簡単で、ワークフローも簡単でした。
完全な開示、私は実際にイーサネットコントローラーを使用するこのチップの周りにPCBを設計していませんが、イーサネットを使用せず、それで良い経験をしたボードを作成し、使用してイーサネット対応プロジェクトを構築しました評価ボード。
2013年9月更新
これらの部品は、新しい設計には推奨されないようです。明らかな代替品はないようです。
2013年11月更新
現在、TM4C129XNCZADがあります。これは、上記のパーツの名目上の代替品です。ピンとの互換性はありませんが、オンボードのMAC + PHYを備えています。
この質問が100%ではないかもしれませんが、プロダクションの実行がかなり小さいプロジェクトでは、ラズベリーパイのような事前に構築されたボードを埋め込む人がいます。これには多くの利点があります。
私が言うように、それはすべての人のためではありませんが、いくつかのプロジェクトにとってはぴったりです。
使用される正確なボードに関して、いくつかのオプションがあります。
Wiznet W5500組み込みMAC + PHYコントローラを備えたほぼすべての MCUを使用できます。これはSPIによって駆動されます。利点は、ネットワークスタック、Tx / Rxバッファが組み込まれていること、MCUピンが最小限で済み、プログラミングが簡素化されていることです。
私はちょうど別の興味深いオプションを発見した- AX88796Cを ASIXから、それはまた、両方持っているMAC + PHY、10 \ 100Mbpsイーサネットは、および40MHzのSPIインタフェースオプションまで、そのための素敵なフィット感になります任意の MCUベースのARMを。
更新: Netduino 3はすでにこのチップを使用しています。興味深い詳細を次に示します。
その目的のために、(25 EUR)Openpicus FlyportProイーサネットモジュールが好きです。磁気を備えたイーサネットジャックを追加し、TCP / IPスタックを使用してファームウェアを作成するだけです。TLS実装もあります:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
「クラシックな」Flyportイーサネットを使用してプロジェクトを行いましたが、これまでのところ非常に安定しています。