CPLD+SIMMを使ってUSBプロトコルの解析を!
VHDLを速習! XC95144XL+16MB・SIMMを使ってUSBプロトコルアナライザを作ってしまいました!
主目的は差し迫った事情からUSBプロトコルの解析をすることだったのですが、その手段として選んだのがコレ!
[第2回]
●Xilinx社 XC95144XL
まずはお話の順序としまして、なぜCPLDなのか、というあたりから始めたいと思います。
前回もちょっと書きましたように、USBのプロトコルの解析には以前にHCロジック回路+PIC18F4550という組み合わせを使ったことがあります。
当時はこういう手段しか思いつかなくてそうしたのですが、これはかなり苦しい回路でした。
なにしろPIC内蔵のたかだか数キロバイトのメモリをロガーとして利用しただけですから本当にわずかなデータしか記録できません。
そこでディップスイッチによって、USBの接続開始からの経過時間を設定して、そのわずかな時間ごとに記録するという苦し紛れのテクニックを使ったものでした。
今回はPICなどではなくて正攻法で大容量のRAMを使うことに決めました。
しかしRAMを外付けするということになりますと40PINのPICを使っても端子が不足してしまいます。
かといって全てをHCロジックでというのもしんどい話です。
もちろん、しんどくてもやる気になればHCロジックで全てを組んでしまうこともできるでありましょう。
しかし、果たしてそれが賢い方法か、ということになりますと、話はちょいと変わってきてしまいます。
ええ。
MYCPU80などとは目的が違うのです。
MYCPU80はHCロジックで作ることにこそその目的がありました。
今回は趣味なんかじゃありません。
USBプロトコルの解析が目的で、そのために作る回路は手段にすぎません。
ざっと頭の中で考えただけで、相当の回路になってしまうことが予想できました。
それともうひとつ気になっていたのは動作クロックの問題です。
USB信号は12MHzです。
1ビットのデータは約83nsで、これをシフトレジスタでパラレルに変換しなければなりません。
以前の回路では32ビットのシフトレジスタを組んだのですが(そうしなければPICでは間に合わなかったので)、今から考えてみると、ちょっとトータルでのアクセスタイムに無理があるのでは、と思います。
その点CPLDならば確か100MHz程度のクロックでも動くはず。
そういうあれこれを考えてみますと、ここはHCロジックなどにこだわらず、CPLDに行ってしまったほうが得策ということになりそうです。
実は。
これも以前にご紹介しましたカメレオンUSB+ロジアナ(TTLでCPUをつくろう[第374回]参照)のことが頭に浮かんだのです。
カメレオンUSB+ロジアナの実体はCPLD+RAMで、しかもそのCPLD基板はUSB経由でプログラムを書き換えることで自分用の回路に組み替えることができる機能をもっていました。
それがカメレオンUSBという名前の由来なのだそうです。
CPLDにせよVDSLにせよ、データを書き込むツールは必須です。
そのツールが最初から備わっているというのですから、これはなかなかに有難いボードです。
いつかこのボードを自分用の回路として使ってみたいと思っていました。
おお、そういうことになりますと、ここはもうCPLDを使ってみるという選択肢しかないではありませんか。
で。
その気になって確認してみました。
カメレオンUSBに搭載しているのはXilinx社のXC95144XLという144pinのCPLDで、Xolinx社のデータシートによりますと、最高動作クロックはなんと178MHz!
これなら速度は問題なしでありましょう。
I/Oについてはよくわかりませんけれど100pin以上は使えるようなので、これもまあ十分でありましょう。
肝心の内部回路はということについては、むむ、よくわかりません。
ま、やってみれば、そのあたりも見えてくるでありましょう。
[出典]Xilinx社 XC95144XL Datasheet
後になってからだんだんわかってきたことですが、XC95144XLはちょいと昔のCPLDでいまどきの最新型に比べるといろいろ機能的に劣っているところもあるようです。
しかし、書き込みツール付きのカメレオンUSBに搭載しているのがXC95144XLなのですから、目下のところほかに選択の余地はありません。
ところがところが、これも後になってわかったことなのですが、肝心のXC95144XLを搭載したカメレオンUSBそのものが販売終了なのだそうでありまして…。
なんでもUSBインターフェイス部分に使っているICが製造中止だとかでドライバのダウンロードもできないとのこと。
なんだかダウンロードできるサイトもあるとのことらしいのですが、私が試した限りではWindows98SEでもWindows7でもうまくいきませんでした。
現在はカメレオンUSB単体での販売は終了して、ロジアナとのセットのみ最終ロットを販売しているようです。
でも、ねえ。
ドライバのダウンロードができないのでは、ねえ。
あ。
私は幸い以前に購入したセットを使っておりまして、そのときにドライバをダウンロードしたWindows98SE1台のみでは使うことができております。
むむ。
なんだかいかにも心細い幕開けで、波乱の展開を予感せずにはおられません(その通りでありました)。
CPLD+SIMMを使ってUSBプロトコルの解析を![第2回]
2014.1.18upload
前へ
次へ
ホームページトップへ戻る