「論理回路設計技術者」として「今」出来る事はほとんど無いが…「未来は俺達が創る!」

震災後色々考えたんだが…正直言って旅先で金を使う事くらいしか短期的には出来る事が無い。

ただその代わり、0から育てようとするとやたらと時間のかかる「ソフト」「ハード」「OS」の各分野を縦断するような人材育成プロセスには参画出来そうだ。「俺は全部知っている!」という殿様な野郎ではなく、「俺はこれだけしか知らない…」と悩むような…酒飲みなエンジニアを育てたいもんだ。 

今回の震災で無力感を感じている同業者は多いと思う。とは言え、我々「論理回路設計技術者」が設計&製造した製品が世の中で担っている役割は想像以上に大きいのも確か。

そうそう、今週末は秋葉原で開催される「エレキジャック」に参加の為、更新止まります。

ギリギリセーフだ…エレキジャック・フォーラム 2011 基調講演等々申し込み完了

昨日の夜遅くに鹿児島から帰ってきて、自分のパソコンをピコピコいじりながら何かを忘れているような気がして色々思い巡らしていると…

あ゛~っ!「エレキジャック・フォーラム2011」の申し込み受付はどうなってるんだ~っ!

急いでエレキジャック・フォーラム 2011のページを開いて見てみると…出張前には始まっていなかった講演講演の事前登録が始まってしまっているではないか。それに案の定「客寄せパンダ」な川口教授の「はやぶさ」の講演は残席少々とな。

ま、俺もモロに「寄せられている」訳だが…(爆)

そんな訳で日付変わって急いで申し込み完了したのはこの4つ。

■ 時間:2011年4月16日(土) 9:40 -10:25
[K-1] 『はやぶさ』が挑んだ人類初の往復の宇宙飛行,その7年間の歩み

これはまぁ説明の必要は無いと思うが、一般的な講演とは違って「電子工作ヲタク」が集結する講演会で一体どんな話が飛び出すのか非常に楽しみ。

(注)立ち見でよければ入場券だけでもOKとの事なので、諦められない「ヲタク」なあなたも是非!

■ 時間:2011年4月16日(土) 12:40-13:25
[A-3] 古いを新しく! ニキシー管時計の作り方

こちらは昨秋の「Make: Tokyo Meeting」でレトロな美しさに興味が湧いたニキシー管工作のトークショー。

■ 時間:2011年4月16日(土) 13:40-14:25
[A-4] フリーの回路&基板設計ツールを使ってここまでできる!

一応この方面のプロなはずなのに、この手の話に惹かれるのは…研究開発費に関する大人の事情による…(涙)

■ 時間:2011年4月16日(土) 15:40-16:25
[B-13] 『FPGA-CAFE』のチャレンジ,オープン・ソース・ハードウェアのためのコミュニティ作り

こちらは「つくばのFPGA-CAFE」と言うことで話を聞いてみようかなと。こういう分野でそろそろ何かを提供する側になれたらいいなぁと思ったりはしてますが…何はともあれ、まずは一回行ってみろってな感じだな(汗)←この人まだ行ってない

そんなこんなで4月16日(土)は秋葉原へGo!決定なんですが…こういう日に限って出張が重なったら泣くなぁ…

LAP-C(16064)のプロトコル解析(USB)がいい感じに使えそう

正月に買ったLAP-C(16064)なんだが、仕事が暇…ではなくて、技術的好奇心が高ぶったのでちと真面目にいじってみた。いつまでなのかは分からないが、今、秋月やストロベリー・リナックスで買うと追加プロトコル20個が無料という大盤振る舞い状態なんで気になっている方も多いんではないかなぁ…と思います。

実は当初、追加プロトコル20個の申請をしたもののうまく解除キーが発行されないというトラブルに見舞われまして…何度も秋月のサポートの方に色々お世話になるという、あまり巷で聞いたことのない経験をしたりしましたが(笑)サポートの方のご尽力により最終的に解除キーを無事Getしました。秋月のサポートの方、その節はどうもありがとうございました。

でまぁ普通のロジアナとして使えるのは勿論なんですが、一番期待していた「USBのプロトコルアナライザ」として軽く使ってみました。

(注)USB1.1のHUBをまだ手に入れていないため、確実にUSB1.1で動いているであろうLow-speedの「マウス」ではありますが。

使ってみて感じたのは、さすがにCATCとかの本物のアナライザには勿論及ばないものの趣味ベースであれば結構使えそうって事かな。セットアップトランザクションの種別までは表示されないので、USBの仕様書片手にアナライズ結果を人力デコードする必要はありますが、NRZI符号のデコードを自力でやることを考えたらお気楽極楽の世界でしょう(笑)

個人的な話になるが、かつてUSBが1.1どころか机上の規格の1.0だった頃…設計していたUSBのFunction側のASICのシミュレーションにてNRZI符号化されたUSBの波形を自力でデコード&説明しなければならない局面に陥ったことがある。今よりもLSIのシミュレーション環境は相当に貧弱だったとはいえ、さすがにVerilogのシミュレーターにNRZI符号のリファレンスモデルくらいは連携させてあった訳だが…ツール自体に疑いが掛かったりすると最低一度はモデル自体が正しいことを証明しなければならなくなる訳だ。

でも…何で俺がその証明作業をやる羽目になったのかは未だに疑問ではある…(爆)

アマチュアとしてUSBのやり取りを可視化できると嬉しい事としては、デバイスを接続した時の既存ドライバのやり取りが分かる&自作機器で使えるようになるあたりだと思います。真面目に追っかけた訳ではありませんが、この安価なロジアナで出来る事の一端が御紹介できればなぁ…と言うことで、画面のキャプチャと簡単な説明などを。 まぁ縮小してしまうと良く分からないかもしれませんが。

 

「Packet 1~15」

[bRequest = 06] [wValue = 0100]なので[GET_DESCRIPTOR ‘INTERFACE’]

USBのセットアップトークンに関してのやり取りは、トランザクションと言うくくりでデータのやり取りが完結するのが約束事。何だか良く分からないかもしれないがそんなに難しい話ではなくて、トランザクションの最後では「今までとは反対方向」の「データ長が0のデータ」を受け取ったり送ったりして終わるという事です。

「GET_xxxxx」というセットアップトランザクションに対しては、最後に「OUT→データ長が0のデータ→ACK」
「SET_xxxxx」というセットアップトランザクションに対しては、最後に「IN→データ長が0のデータ→ACK」

この場合は「GET_DESCRIPTOR INTERFACE」なので全18Byteのデータをホスト側が受け取った後、「OUT→データ長が0のデータ→ACK」で終わってます。

それから今回はマウス(Low-Speedデバイス)なので最大でも1回あたり8Byteの転送しか発生しませんが、Full-Speedデバイスでは64Byteの転送まで可能です。アイソクロナス転送に関してだけは…最大で1023Byteだったっけかな?

「Packet 16~21」

[bRequest = 05] [wValue = 0001]なので[SET_ADDRESS ‘1’]

一番最初はデフォルトアドレスのADDRESS ‘0’で通信が始まりますが、すぐにホスト側から一意のアドレスが振られます。SET_ADDRESSは、セットアップトークン自体にデータが埋め込まれているopコードみたいなコマンドなので、すぐに「IN→データ長が0のデータ→ACK」で終わってます。

「Packet 235~」

しばらくの間、マウスの構成情報等をホストが吸い上げる通信が続きまして…Packet 235から、ついにマウスからの実データを受信します。
今まではEndpoint0(コントロール転送専用Endpoint)での通信でしたが、ここからはデータ出力専用のEndpoint1(あくまでもこのデバイスの場合)にホストが「INトークン」を発行すると、マウス側からデータが出力されます。4Byte単位で2回出力されるみたいですね。1回目がマウスの移動情報で、2回目がスイッチの状態とかなのかな?

特に操作をしていないからか、最初だけデータが出力されて、それ以降はNAK(データ無し)が返ってます。

一般的なマウスであればHIDクラスで定義された値を送信しているので、ロジアナのデータと仕様書を見比べてみれば内容が判ると思います。
http://www.usb.org/developers/devclass_docs/HID1_11.pdf

まぁPCがちゃんと認識するデバイスであれば、PC上で動くフリーソフトのSnoopyProとかでも大まかには分かるけど…確かNAKとかは表示されなかったような気がするな。

そう言えば昔、SnoopyProの使い方をまともに調べずに適当にいじくり回していたら、PS/2ポートの無いPCのUSBホストのドライバを飛ばしてしまってキーボードが使えなくなって泣きそうになった事があったなぁ…(爆)結局あの時は、セーフモードにして何とか復旧したんだっけかな?

まぁそれにしてもこのロジアナ、趣味レベルなら十二分に使えますね。何と言っても格安だし(喜)持ってて損はない一品だと思います。