丸文株式会社 株式会社ケィティーエルは、
2018年10月1日に丸文株式会社に統合されました。

フリーソフトでUSBプロトコルを確認してみました

技術コラム

2018年 8月23日

マイコンコラム

フリーソフトでUSBプロトコルの簡易確認方法

フリーソフトのWiresharkとUSBPcapを使って、MSP-EXP432P401R (以下LaunchPad)上のXDS110-ETオンボード・デバッグプローブ(以下XDS110)のUSBパケットキャプチャをした事例をご紹介します。
MSP-EXP432P401Rについては以下をご参照ください。
MSP-EXP432R401R LaunchPad

また、WiresharkとUSBPcapの入手・インストール・使用方法については、検索するといくつか情報がヒットしますのでそちらをご参照ください。
以下はWiresharkのサンプルキャプチャの一つで、Skypeのネットワーク通信の様子です。

なお、本LuachPad上のマイコンMSP432P401Rは、USBペリフェラルを持っていません。今回ご紹介するのは、XDS110のUSBのお話です。XDS110はPCからはUSB複合デバイスとして見え、JTAG通信とバックチャネルUARTと呼ばれUSB上にUARTデータを流します。

本コラムの背景ですが、お客様よりXDS110からPCに送られてくるデータ受信が遅いとのお問い合わせがあり、ちょうど手元にUSBプロトコルアナライザがなかったので、冒頭のツールを使い調査して解決に導いた、というサポート履歴からです。PCアプリで時間測定をすると、UARTボーレート115kbpsは問題ないが、それよりも速い230kbps、460kbpsにすると、PCでのデータ受信に時間がかかるという現象でした。

MSP432のソフトウェアは、SimpleLink SDKのUARTのPCエコーのサンプルソフトを改良して使っているとのことでした。
このサンプルソフトは、ターミナルソフトのキー入力データを、PC→XDS110→MSP432→XDS110→PCのパスでループバックさせ、ターミナルソフト上にそのデータを表示させるものです。

SimpleLink MSP432開発キット(SDK)

同じサンプルソフトをMSP432にダウンロードして試してみました。Tera Term上でキーを押したままにすると、115kbpsでは文字列が滑らかに表示されますが、230kbpsと460kbpsでは文字がカタカタ表示されるような違和感があります。お客様と同様の現象が起こっていそうです。




LauchPadのJP101のジャンパを切り替え、XDS110のUARTのTXD-RXDをショートさせます。これで、MSP432とXDS110のUARTが切り離され、Tera Termからのキー入力がXDS110でループバックされて戻ってきます。これでも同様の現象が見られました。


XDS110ファームウェアを、当時の最新バージョンのv2.3.0.11に書き換えましたが、変化なしです。
XDS110_Firmware
いよいよWiresharkとUSBPcapの出番です。Tera Termにて1秒間隔でキーボードを押下した時の、Wiresharkのキャプチャ画面を比較します。フリーソフトだけにBulk-In→NAKのやり取りが表示されません。
しかし、Bulk-Inの発行時間から、Bulk-Outの発行時間を引き算すれば、Bulk-In→ACKの応答時間が求まります。
以下、115kbpsの時です。


以下、460kbpsの時です。


115kbps時は、Bulk-Out後にBulk-Inで1ms以内に応答がありますが、460kbps時はバラツキがあり数十ms~数百msの応答時間を要していることが確認できます。XDS110のファームウェアの問題が考えられ、下記のTI E2E サポート・コミュニティにポストしました。
TI E2E エンジニアリング・サポート・コミュニティ
ほどなくしてメーカーエンジニアから応答があり、XDS110ファームウェアは、UARTボーレートの違いでデータのハンドリング方法を変えており、230kbspおよび460kbspではDMAを使っている。そして、DMA起動のタイミングを改善したファームウェアを、予定しているエミュレーション・ソフトウェア・パッケージのリリースに盛り込むとのことでした。
そして、エミュレーション・ソフトウェア・パッケージがアップデートされました。
http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package

このEmuPack v7.0.188.0に含まれるXDS110ファームウェアv2.3.0.12にアップデートしたところ、460kbspでの応答時間は12msに短縮されバラツキもなく、ファームウェアが改善されたことが確認できました。
今回、お客様のサポートを通じてWiresharkとUSBPcapを試しましたが、このようにUSBプロトコルの簡易的なデバッグには使えると思います。USBプロトコルアナライザをお持ちでない方は、是非一度トライしてみてください。

以上です


一覧に戻る

ページトップへ