2014.5.11

前へ
次へ
ホームページトップへ戻る

CPLD+SIMMを使ってUSBプロトコルの解析を!
VHDLを速習! XC95144XL+16MB・SIMMを使ってUSBプロトコルアナライザを作ってしまいました!
主目的は差し迫った事情からUSBプロトコルの解析をすることだったのですが、その手段として選んだのがコレ!


[第49回]


●Enumeration はじめから終わりまでの記録(15)GET_DESCRIPTOR(STRING)(その5)

相変わらず隔々日ぐらいの更新になってしまい申し訳ありません。
説明のほうもなんだか間延びしてしまってどうにも気合が入りません。
一体ENUMERATIONって何者なのでしょう?
実に理解しがたい得体の知れない挙動が続きます。

今回も前回からの続きなのですが。
前々回と全く同じSTRING DESCRIPTOR(PRODUCT)のやり取りが行なわれたあと、今度はどういうわけかぴたりと動きが止まってしまいました。
下のリストのようにホストからはひたすら空のフレームだけが送出されています。
FNO(フレームナンバー)だけがカウントアップされていくだけですので、それをそのままここに記載しますといけどもいけどもフレームナンバーだけというとんでもないページになってしまいます。
ですのでところどころ数行ていど表示して、途中は省略しました(空白のところです)。

0026242 OUT ADRS=04 ENDP=00 
        DATA1  
        ACK 
0026275 SOF FNO=741
0026369 SOF FNO=6C2
0026369 PRE 
0026462 SOF FNO=743
0026556 SOF FNO=744
0026557 PRE 
0026650 SOF FNO=745
0026744 SOF FNO=746
0026838 SOF FNO=747
0026931 SOF FNO=748
0026932 PRE 


0043722 SOF FNO=7FB
0043816 SOF FNO=7FC
0043910 SOF FNO=7FD
0044004 SOF FNO=7FE
0044097 SOF FNO=7FF
0044191 SOF FNO=000
0044192 PRE 
0044285 SOF FNO=001
0044379 SOF FNO=002
0044379 PRE 
0044473 SOF FNO=003
0044566 SOF FNO=004
0044567 PRE 


0235831 SOF FNO=7FB
0235925 SOF FNO=7FC
0235925 PRE 
0236018 SOF FNO=7FD
0236112 SOF FNO=7FE
0236206 SOF FNO=7FF
0236300 SOF FNO=000
0236300 PRE 
0236394 SOF FNO=001
0236487 SOF FNO=002
0236488 PRE 
0236581 SOF FNO=003
0236675 SOF FNO=004
0236676 PRE 
 


前回は、ホストからDATA1が送出されたところで終わりました。
上のリストの最初の部分です。
そのあとFNO=741から順にフレームナンバー(とPREパケット)だけが続きます(途中ちょっとナンバーを読み間違えているところもありますが…)。
これ、どれくらいの間続いているかといいますと。

1フレームは1msです。
741〜7FFまでいってそこでまた000に戻って繰り返しになります。
741H〜000HまででC0Hですから192msです。
そのあと次の000まで完全に一巡してしまっています。
800H=2048msです。
なんとこの間2秒以上もだんまりの期間が続きます。
一体この間ホスト様は何をしていらっしゃるのでしょう?
全く理解できませぬ。

長い沈黙のあと、やっとホストからデータの送出が再び開始されるのでありますが。
なんと。


0252340 SOF FNO=0AB
0252434 SOF FNO=0AC
0252434 PRE 
0252528 SOF FNO=0AD
0252621 SOF FNO=0AE
0252683 SETUP ADRS=04 ENDP=00 
        DATA0  80 06 00 03 00 00 FF 00   GET_DESCRIPTOR 
        ACK 
0252685 IN ADRS=04 ENDP=00 
        NAK 
0252686 IN ADRS=04 ENDP=00 
        NAK 
0252687 IN ADRS=04 ENDP=00 
        NAK 
0252689 IN ADRS=04 ENDP=00 
        DATA1  04 03 09 04 09 78 3B A0   
0252690 OUT ADRS=04 ENDP=00 
        DATA1  
        ACK 
0252706 SETUP ADRS=04 ENDP=00 
        DATA0  80 06 02 03 09 04 FF 00   GET_DESCRIPTOR 
        ACK 
0252708 IN ADRS=04 ENDP=00 
        NAK 
0252709 IN ADRS=04 ENDP=00 
        NAK 
0252715 SOF FNO=0AF
0252717 IN ADRS=04 ENDP=00 
        DATA1  48 03 50 00 49 00 43 00   
        ACK 
0252718 IN ADRS=04 ENDP=00 
        NAK 
0252719 IN ADRS=04 ENDP=00 
        NAK 
0252720 IN ADRS=04 ENDP=00 
        NAK 
0252722 IN ADRS=04 ENDP=00 
        DATA0  6B 00 69 00 74 00 20 00   
        ACK 
0252723 IN ADRS=04 ENDP=00 
        NAK 
0252724 IN ADRS=04 ENDP=00 
        NAK 
0252725 IN ADRS=04 ENDP=00 
        NAK 
0252727 IN ADRS=04 ENDP=00 
        DATA1  32 00 20 00 4D 00 69 00   
        ACK 
0252728 IN ADRS=04 ENDP=00 
        NAK 
0252730 IN ADRS=04 ENDP=00 
        NAK 
0252731 IN ADRS=04 ENDP=00 
        DATA0  63 00 72 00 6F 00 63 00   
        ACK 
0252733 IN ADRS=04 ENDP=00 
        NAK 
0252734 IN ADRS=04 ENDP=00 
        NAK 
0252735 IN ADRS=04 ENDP=00 
        NAK 
0252737 IN ADRS=04 ENDP=00 
        DATA1  6F 00 6E 00 74 00 72 00   
        ACK 
0252738 IN ADRS=04 ENDP=00 
        NAK 
0252739 IN ADRS=04 ENDP=00 
        NAK 
0252740 IN ADRS=04 ENDP=00 
        NAK 
0252742 IN ADRS=04 ENDP=00 
        DATA0  6F 00 6C 00 6C 00 65 00   
        ACK 
0252743 IN ADRS=04 ENDP=00 
        NAK 
0252744 IN ADRS=04 ENDP=00 
        NAK 
0252745 IN ADRS=04 ENDP=00 
        NAK 
0252747 ? [10011110]
        SOF FNO=00F
        ? [00000000]
        ? [01000000]
        ? [00111000]
        SOF FNO=5E4
0252748 IN ADRS=04 ENDP=00 
        NAK 
0252750 IN ADRS=04 ENDP=00 
        NAK 
0252751 IN ADRS=04 ENDP=00 
        NAK 
0252753 IN ADRS=04 ENDP=00 
        DATA0  6F 00 67 00 72 00 61 00   
        ACK 
0252754 IN ADRS=04 ENDP=00 
        NAK 
0252755 IN ADRS=04 ENDP=00 
        ? [01111010]
0252757 IN ADRS=04 ENDP=00 
        NAK 
0252758 IN ADRS=04 ENDP=00 
        DATA1  6D 00 6D 00 65 00 72 00   
0252760 IN ADRS=04 ENDP=00 
        NAK 
0252761 IN ADRS=04 ENDP=00 
0252761 ACK 
0252763 OUT ADRS=04 ENDP=00 
        DATA1   

またまた前々回、前回と全く同じことが要求されます。
もうつきあってられないという感じです。
これで3回目ですから、この内容についての説明はいたしません。
途中ちょっと解読に失敗しているところもありますが、あらためて補正するまでのこともないでしょう。

むむむむむ。
やっぱりSTRING DESCRIPTORなんてものは省略してしまったほうがよいようですねえ。

CPLD+SIMMを使ってUSBプロトコルの解析を![第49回]
2014.5.11upload

前へ
次へ
ホームページトップへ戻る