加えて、マウスというシステム自体の特性は、センサよりはMCUに依るところが大きいのです。
そんなわけで、最近コソコソと光学ナビゲーションシステム用リバースエンジニアリングツールを作ろうと画策しているのです。
Q. どんなツール?
マウスの基板上のSPIバスにコイツをぶら下げることでMCUとセンサの全通信を記録するツールです。
Q. どうやって?
センサから物理的に配線を引き出します。引き出すのはMISO、MOSI、NCS、SCLK。
MISOとMOSIをPSoC内の仮想ORゲートでOR演算して、SPI Slave ComponentのMOSIに突っ込みます。NCSとSCLKはそのままSPI Slave Componentに接続。
UART通信で通信内容をPCへ送信。
完成したら意味もなくプロジェクトファイルを上げて誰得感を楽しみたいのですが、非常に忙しいのでリリース時期は不明。
本題 :
なんとなんと面白いデータが出てきました。(データ内のCommentは後付です。)あまりに面白いので思わずブログを更新するほどに。
・試験環境
環境 : PSoC Creator 3.0 SP7
検体 : Anker Laser Precision Gaming Mouse
MCU : PSoC 4 Pioneer Kit
データ内のCommentは後付です。
----------------------------------------------
3a 5a //RESET
24 00 //ゴミデータ?
24 3f //ゴミデータ?
7f 20 //ゴミデータ? FF 20かも。
03 00 //ここからはデータシート通りのスタートアップシーケンス
04 00
05 00
06 00
39 02 //SROMは3Kモードですね
13 1d //SROMのアップロードシーケンス
13 18 //同上
//これ以降の2900バイトは読みだして捨てている(SROMなので)。
//2900バイト捨てたあと↓
86 10 ab c3 75 e9 1f 86 53 4b
8a 1f 01 f6 f0 3c 7a a8 cd 12 98 c5 9a 1c a8
68 4e 11 b0 08 12 6a 2d df 37 ff 52 b7 d2 e1
7a c5 00 fd 42 b4 30 e7 92 38 f8 e5 3e ff b6
5a 6f 33 7a 7a 0e 74 75 36 ef 82 9e 35 53 5e
2c f1 f6 54 35 e2 d6 c1 07 c2 f0 e0 99 b5 1b
fd a1 2f 43 5d b9 03 db 25 e2 c0 d8 b2 98 e7
91 4f 82 58 35 92 e1 55 86 8e 01 8d 10 29 dd
34 62 4e 16 22 4a 9a be f7 e1 c9 1c 32 6a db
3f f5 e1 4c 92 ae d7 a0 cf 90 ae d7 a1 48 1d
b5 60 cb 99 38 7a 7e 76 e3 4c 15 a4 c7 81 0b
9c b7 60 cb 1c 31 ed d1 2f d5 27 c7 63 60 83
2a a0 20 01 ff ff ff 33 ff ff ff ff ff ff ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 40 61 ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 3c 5b ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 38 96 ae
40 50 20 7f 00 00 00 00 00 df 7f 7f 31 bd ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 2e a2 ae
36 50 20 7f 00 00 00 00 00 df 7f 7f 28 fd ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 26 6e ae
2e 50 20 7f 00 00 00 00 00 df 7f 7f 24 08 ae
2c 50 20 7f 00 00 00 00 00 df 7f 7f 1f ac ae
27 50 20 7f 00 00 00 00 00 df 7f 7f 1d b2 ae
25 50 20 7f 00 00 00 00 00 df 7f 7f 1a 1a ae
22 50 20 7f 00 00 00 00 00 df 7f 7f 18 79 ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 16 f2 ae
1e 50 20 7f 00 00 00 00 00 df 7f 7f 14 2b ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 12 e9 ff
ff ff 20 7f 00 00 00 00 00 df 7f 7f 10 a0 ae
18 50 20 7f 00 00 00 00 00 df 7f 7f 0e 9d ff
.......... //以下ずっと同じようなデータ
----------------------------------------------
MotionBurstを使っているとは・・・意外性を出していきますね・・・
確かにそっちのほうが速いかもしれないが・・・?
しかし、MCUからセンサに何か言うことは無いんですかね。
それと、レジスタアクセスが意味不明過ぎます。というかデータの精度がかなり悪い。ちゃんとSROMアップロード出来てるのかすら分かりません。
マウスの問題なのか、こっちの問題なのか判断するのにオシロスコープが必要ですね。
細かい解析はいずれ。他のメーカのマウスを試そうにも検体と時間がありません。
おまけ
もう一度取ったデータをば。----------------------------------------------
3a 5a
24 00
24 3f
7f 20
03 00
04 00
05 00
06 00
39 02
13 1d
13 18
6a c3 8c 14 3e b9 7c 30 85 5e
1b af 48 fc 32 9a 5c 50 f8 0f b7 81 e3 d5 46
68 94 c6 2c d0 e5 43 42 70 8d 80 40 93 51 6e
f9 bf fa 95 be 97 0b d6 28 07 ea 15 a1 87 3c
91 c7 c7 29 f7 fd b2 d3 79 9b d3 d0 73 a3 a9
b7 7c 14 f1 aa 9a f1 67 8f b2 a1 af 16 b6 08
3e 17 87 04 cd a8 df ed 09 7a 1a ed c8 1e d9
2f 16 06 c5 94 c7 3c 8a 7c 12 c1 ac 97 0a ac
34 70 0c 68 81 4e e9 a3 12 70 b1 12 54 d5 f7
bf 0e 48 e1 93 56 d9 ff af 0a 64 95 76 bd 06
7c 85 76 bd 0a 40 ed ab 06 5c c9 c3 d3 f3 b7
1a 60 ad 26 3c 08 5c e5 bb 06 58 e1 8f 6e 89
7e a9 3e 3b 1b 04 19 2a a0 20 01 ff ff ff 33
ff ff ff ff 67 ff ff ff ff 20 7f 00 00 00 00
05 db 7f 00 44 ab ff ff ff 20 7f 00 00 00 00
00 df 7f 7f 3c 5b ff ff ff 20 7f 00 00 00 00
----------------------------------------------
0 件のコメント:
コメントを投稿