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ホストのドライバを飛ばしてしまってキーボードが使えなくなって泣きそうになった事があったなぁ…(爆)結局あの時は、セーフモードにして何とか復旧したんだっけかな?

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

【土浦市】 らーめん 大葉 「大葉らーめん薬味増し」

20:00丁度に土浦駅へ到着。土浦で一杯頂いて、20:58の電車に乗りたい…というか乗らないと水戸で長~い電車待ちをする羽目になるんで、今回も小櫻はお預けだな。茨城の代表的な有名店なのにまだ行った事ないんだよなぁ(汗)

そんな訳で駅の近くという条件付きで検索してHitしたのがこちら「大葉」。どうやら千葉のご当地ラーメン竹岡式のラーメンを出しているとの事で、かつて頂いた「梅乃家」のような強烈な一杯が出てくるのかどうか楽しみですな。駅から歩いて5分位の場所に無事お店を発見。L字型のカウンター席に座りまして、「大葉らーめん(竹岡式ラーメン)」と「薬味増し(タマネギみじん切り)」を注文です。

しばらく待つと注文の一杯が到着です。竹岡式ラーメンを頭に思い浮かべて待ちかまえていた事もあり、スープの黒さは想定内です(笑)それではスープから頂きま~す!

おっ…確かにこれは竹岡式。だけど梅乃家のジャンキーさがこのスープには無いですな。何というか…上品さを感じる位で素直に旨いです。ただ、薬味のタマネギと一緒にスープを飲むと、普通のラーメンでは味わう機会のあまりない苦みを感じるあたりの味的なインパクトはこの一杯にもありますね。麺は細麺ストレートで、スープと一緒に食べ進めるのがいい感じですな。具は薬味の刻みタマネギにメンマ、炙りチャーシューに味玉半分にノリ。この一杯のスープのベースになっている炙りチャーシューもいいんですが、やっぱり薬味(刻みタマネギ)の存在が大きいです。タマネギ嫌いな方にはさすがに勧められませんが、薬味は入れた方が竹岡式っぽい気がしますな。そんなこんなでもちろん完食で~す!

千葉の人気店「梅乃家」もこれくらい平和な味だと観光客のみんなも幸せなのかもしれないが、さすがにそれは本末転倒かな(汗)

竹岡式に興味があって、まだ食べた事が無い方はこちらで一度食べてみるってのは十分有りですね。梅乃家との比較という意味では「味&雰囲気的なジャンキーさ」と「おばちゃんパワー」に関しては、竹岡でないとさすがに味わえませんが(爆)

土浦駅から程良く近く、つけ麺もやっているとの事なのでまた伺うかと思います。ご馳走様でしたっ!

【筑西市】 らーめん たじま屋 「チャーシューめん醤油(手もみ麺)」

水戸の美術館を堪能した後は、電車での移動を堪能する為に水戸→下館→取手→土浦→大甕の茨城県南部をぐるっと回ってきた。

途中「下館駅」では、昔から気になっていた「たじま屋」へ。ちょっと分かりにくい道を歩く事になりますが、駅から歩いて15分ってな感じですかね。住宅街の中に無事お店を発見しまして入店です。ここのお店はチャーシューが有名と本で読んだ事があるのでチャーシューメンを頼みますと「醤油・塩・味噌」が選べるとの事なので醤油を選択。おまけに麺も「細めん・手もみ麺」のどちらかを選べると言う事なので「手もみ麺」を選択です。お客さんがまだ来ていない早めの時間帯だったので、あんまり待つことなく注文の一杯が到着です。ん?何やら表面に粉みたいな物がかかってますな。それではいつものようにスープから頂きま~す!

おっ!これは予想外のカツオ節系っ!

ただ、魚介系と言う程グイグイ魚を感じる訳ではなくて、表面の魚粉?カツオ粉?の香りが漂うだけで、スープ自体は結構あっさりとしたいわゆる中華そば系スープです。これは好みのタイプの醤油ですな。中細の手もみ麺は当然の事ながら縮れてまして、細麺はこれよりも細いんだと思うんで個人的な好みとしては手もみ麺を選択して正解っぽいです。滑らかな麺とスープのマッチングが素晴らしいです。具はチャーシューが6枚にメンマにワカメに刻みネギ。お店自慢のチャーシューはホロホロな仕上がりです。ただ味的にはスープに埋もれてしまうという意外なまでの薄味だったのがちと残念ではありました。これはまぁたまたまそういう部位だったのかもしれませんが。

でもこのチャーシューの多さでこってりしてると重くなっちゃうから、これ位でいいのかもしれないなぁ。

…言ってる事がころころ変わってスミマセン(汗)

そんなこんなでもちろん美味しく完食です。そうだなぁ…これなら塩も旨そうですね。下館にはまたぶらりとやってくると思うので…次回はチャーシューめんの塩を頂きに来たいと思います。ご馳走様でしたっ!