自分のバスを設計する


8

この質問は、前の質問、「EMIのためにSPIに代わるもの」の補足です。私は自分の通信バスをデザインするというアイデアを楽しんでいます。誰かが私の予備設計に目を向けて、私がどこに夢中なのか教えてくれれば幸いです...

私は現在、別々のPCB上の7つのADC(共有CSですが、各ADCには独自のMISOラインがあります。ビットバンギングされています)に10cmを超える長さのワイヤーで運ばれる2MHz SPIを使用していますが、EMIを削減するために何か別のものに置き換えたいと考えています。問題は、差動バスを備えたADCが多くないため、独自のバスを設計できるかどうかです。少なくとも物理層、そしておそらくプロトコルも。

新しいバスの設計目標:

  • 物理的に小さなコンポーネントを使用する
  • 低EMI
  • 4本以下のデータワイヤ(2ペア)
  • 各ADCから300kbpsを超える帯域幅。(合計2.1mbps以上)

これについて考えることに頭がおかしくなる前に、PSoC 5で行うのはそれほど難しいことではないことを考慮してください。そのチップでは、Verilogで独自のプロトコルを設計し、ハードウェアに実装することができます。そして、ある程度、物理層コンポーネントも含めることができるかもしれません。さらに、これらすべてを同時にマスターで並列に実行できるため、全体で良好な帯域幅を確保できるように、スレーブごとに1つずつ、これらの7つを同時に実行できる場合があります。

そしてここに私の予備的な考えがあります:

ここに画像の説明を入力してください

I2Cに基づいており、物理層コンポーネントに接続できるように少し変更されています。SDAラインとSCLラインが差動ペアになりました。SDAペアにはOR-ingプロパティがあります。これは、ハイにしか駆動できないピンとローにしか駆動できないピンを使用して実現されます。SCLペアは、マスターによって排他的に駆動されます。データレートは少なくとも1 mbpsになります。

マスターは、7つのマスターモジュールを備えたPSoC5です。スレーブも1つのスレーブモジュールを備えたPSoC5であり、内蔵ADCを使用します。

考え:

  • プルアップ抵抗とスルーレート制限コンポーネントを実装するための最良の方法が何かわからない。
  • 解約は必要ないと思います。スルーレートを約80nsに制限すると、長さ10cmのケーブルに適しています。
  • それは明らかに適切な差動トランシーバーではありません。ゲートから1つを作成しようとして時間を無駄にしていますか?
  • これらのNotゲートは、スキューを引き起こします。これは問題になりそうですか?

差動信号が必要な場合、LVDSは一見の価値がありますか?
Saad

個別のSDA入力と出力を備えたI2Cスタイルのスレーブデバイスを見たことがないと思います。また、マイクロプロセッサベースのI2Cスレーブを使用している場合は、マスターがそれを見ることができるようにスレーブがSCKをLowに保持できるようにする必要があります(マスターは、スレーブまで次のビットの送信を保留しますSCKを解放します)。そうしないと、マスターがスレーブの準備が整うのを待たずにデータを送信した場合、事態はひどく失敗します。または、SPIを使用して、データの送信に特定のバイト値のみを使用することもできます(したがって、「実際の」データのすべてのバイトが2バイトとして送信されます)。あなたがそれをするなら...
スーパーキャット

...ほとんどのSPI実装では、データのオーバーラン/アンダーランが発生した場合、バイト全体の倍数がドロップされるため、スレーブがそれらを確認できるまで、スレーブが個々のバイトに追いつくことができず再送信できなかったときに、マスターに検出させることができます。
スーパーキャット

回答:


4

さて、あなたがPSoC 5をすべて使用するつもりなら、私は最近IEEE 1355について読んでいました。DS-SE-02シグナルリンクバリアントは、希望どおりの動作をする場合があります。それは4つの信号線を必要とします:各方向のデータ線とストロボ線。1355の実装を見つけることができる唯一の専用ハードウェアは、rad強化されたSpacewireギアですが、このIEEEプレゼンテーションでは、UARTのゲートの1/3を備え、UARTの100倍の速度で動作するFPGAに実装できると主張しています。

完全な標準の公開コピーはCERNの好意により利用できます。私は十分に物事に座る機会がなかったので、そのEMI性能について話すことはできません。DS-SEセクションを見ると、伝送ラインのインピーダンスを制御し、受信側で終端する必要があるようです。


このアイデアをありがとう。それは面白そう。Spacewireと呼ばれるものは何でも問題ありません。今から見てみましょう...
Rocketmagnet

4

RS485の使用を検討しましたか?

RS485バスで動作するように設計されたコンポーネントはすでに多数あります。


はい私はそれについて考えました。それは確かにオプションです。私はそれらがOR-ingをしているとは思いませんが、マスターが一方のペアで非同期に送信し、スレーブがもう一方のペアで順番に送信することができます。唯一の問題は、本当に小さいトランシーバーが見つからないことでした。私は必死に宇宙に窮していると述べましたか。
Rocketmagnet

2
SOIC 8は要件に対して大きすぎますか?最近、プロジェクトの1つでIntersil ISL83485IBZまたはTexas Instruments SN65HVD11Dトランシーバーの使用を検討していました。どちらにもSOIC 8パッケージがあります。
ブルーノフェレイラ

@Bruno-SOIC-8、冗談ですか?:-) PCBは11 mm x 13 mmです。
stevenvh

@stevenvh他の質問の大きさに気づきませんでした。MSOPパッケージはあなたの問題を解決しないと思います。もしそうなら、多分あなたはADM1485を
ブルーノフェレイラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.