というわけで、NFCでなんか実装したときの動作確認は、ログ解析になる。
実装するときは、まずPC上でプロトコルの流れがちゃんとできているかどうかを確認し、最後に実機へ移植するような手順にしている。
いきなり実機で試すのは、準備運動無しで海に飛び込むようなものだ。
問題1:
次のログ解析をしなさい(RC-S620/S)。
[W]はRC-S620/Sが送信するログ、[R]は受信したログ。
また、受信ログはACKを省略し、実データのみを表示させている。
------------
[W]00
[W]00
[W]ff
[W]03
[W]fd
[W]d4
[W]18
[W]01
[W]13
[W]00
------------
------------
[R]d5
[R]19
------------
回答:
初級問題です。
送信データから解析してもいいですが、受信データを先に見た方が早いでしょう。
「d5 19」ということは、送信データは「d4 18」になります。
それをキーワードにして送信データを見ると、「d4 18」が出てくるのがわかります。
送信データサイズは、通常d4の2つ前に載っているので、ここでは3byte。
つまり「d4 18 01」を送信していることになります。
0x18はResetコマンド。0x01はよくわからんけど、コマンドリファレンスマニュアルで指定された値、ということがわかります。
問題2:
------------
[W]00
[W]00
[W]ff
[W]35
[W]cb
[W]d4
[W]8c
[W]02
[W]00
[W]04
[W]2d
[W]cf
[W]46
[W]40
[W]01
[W]fe
[W]29
[W]04
[W]b4
[W]78
[W]d8
[W]68
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]ff
[W]01
[W]fe
[W]29
[W]04
[W]b4
[W]78
[W]d8
[W]68
[W]00
[W]00
[W]46
[W]66
[W]6d
[W]01
[W]01
[W]10
[W]03
[W]02
[W]00
[W]11
[W]04
[W]01
[W]c8
[W]07
[W]01
[W]02
[W]da
[W]00
------------
------------
[R]d5
[R]8d
[R]21
[R]25
[R]d4
[R]00
[R]01
[R]fe
[R]33
[R]6a
[R]3e
[R]f0
[R]f5
[R]50
[R]ac
[R]10
[R]00
[R]00
[R]00
[R]32
[R]46
[R]66
[R]6d
[R]01
[R]01
[R]11
[R]02
[R]02
[R]03
[R]80
[R]03
[R]02
[R]00
[R]13
[R]04
[R]01
[R]64
[R]07
[R]01
[R]03
------------
回答:
長いですね。
長いのは、CommunicateThruEXか、TgInitTargetかのどっちかであることが多いです。
送信データの最初から「d4」を探していくと「d4 8c」が見つかります。
0x8Cといえば、TgInitTargetですね。
よく使うコマンドは、いちいち調べるのがめんどくさくなるので、覚えておくとよいでしょう(18, 32, 4a, 8c, a0くらい?)。
さて、これはLLCPの開始ログです。
ここにある受信データから読み取ることができるのは、こんな情報です。
- 424kbps Active communication mode
- LLCP VERSION : 1.1
- LLCP MIUX指定あり
- LLCP WKS : SNEPあり
- LLCP LTO : 1000msec
- LLCP OPT(LSC) : Class 3(Contactless / Connection-oriented)
また、NFC-DEPでもあるので、DigitalProtocolも読んだ方がいいでしょう。
おまけ:
SNEPでNDEFをPUTするのは、こんなデータ。
RTD-Textで「ueno」って送ってます。
------------
[W]00
[W]00
[W]ff
[W]16
[W]ea
[W]d4
[W]8e //TgSetDEPData
[W]13 //DSAP=4, SSAP=4, I
[W]04
[W]00 //N(S)=0, N(R)=0
[W]10 //SNEP 1.0
[W]02 //PUT
[W]00 //0x0000000b=11byte
[W]00
[W]00
[W]0b
[W]d1 //[0]MB=1, ME=1, SR=1, TNF=Well-Known
[W]01 //[1]
[W]04 //[2]len=4
[W]54 //[3]'T'
[W]02 //[4]UTF-8
[W]65 //[5]'en'
[W]6e //[6]
[W]75 //[7] u
[W]65 //[8] e
[W]6e //[9] n
[W]6f //[10] o
[W]b4
[W]00
------------
こういうのをやってるから、胃潰瘍の疑いをかけられて胃カメラを飲まされたのでは?という気がしてくるが、そういうのは忘れておこう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。