2012/02/08

[rcs620s]RFConfiguration

いきなり方向転換して、RC-S620/Sで使えるコマンドの詳細説明をしていこう。

といっても、ドキュメントに書いてある以上のことは特にない。
ないのだが・・・私のネタもないのだ。

資料は、SONYさんの技術情報にある「RC-S620/Sコマンドリファレンスマニュアル<簡易版>」だ。

http://www.sony.co.jp/Products/felica/business/tech-support/index.html?j-short=tech-support#Port02

このドキュメントには4つのコマンドが説明してある。

  1. RFConfiguration
  2. Reset
  3. InListPassiveTarget
  4. CommunicateThruEX

初回は、RFConfigurationコマンドだ。

RFというのは、Radio Frequency、日本語だと「高周波」と書くことが多いが、まあだいたい無線のことを指している。
Configurationは設定だから、無線の設定コマンド、かな。

 

コマンドコードは0xD4、サブコマンドコードが0x32。
レスポンスコードは、0xD5、サブレスポンスコードが0x33。

これを見てわかるように、レスポンスコードはコマンドコードに1を足したもの、サブレスポンスコードはサブコマンドコードに1を足したものになっている。

「そもそも、コマンドコードとかサブコマンドコードってのは何だ?」と問われると、私もうまく答えられない。
コマンドコードは、ドキュメントに書いてある範囲では0xD4で、コマンドの違いはサブコマンドコードに現れている。


RFConfigurationコマンドは、パラメータCfgItemでさらに機能が分かれていて、それによってデータConfigurationDataも変わってくる。

たとえば、CfgItem=0x05ならば、ConfigurationData=3byteである。
以下は、ConfigurationDataが3つとも0x00のときの例である。

00 00 ff 06 fa d4 32 05 00 00 00 f5 00

そうすると、こういうレスポンスが返ってくる。

00 00 ff 02 fe d5 33 f8 00

 


RFConfigurationはR/Wに向けて行うコマンドだ。
使うときは、私は2つあると思っている。

  • RC-S620/S起動直後
  • 無線出力を止めたい場合

起動時に、CfgItem=0x05と0x81を設定。
無線を止めたいとき(強制的に終わらせるときなど)は、CfgItem=0x01。
無線を出すときに、わざわざ使ってはいないな。

 

困ったことに、「こういう値にしたらいいよ」という指標がわからない。
FeliCa OSの起動時間なんてどっから仕入れればいいんだ。
うーむ。

私は、FeliCa Deveopers' BlogのArduinoサンプルを元にした。
元にしたと言うよりも、当時はこれしか情報がなく、RFConfigurationというコマンド名も知らずにまねをしたというところだ。

ここに書きたいものだが、書いていいのかどうかがよくわからん。
よいなら、追記するかもしれんが、Arduinoのソースを見た方がよいだろう。
私はその値で困っていない(と思う)。


最後に「モード遷移」というのがある。

R/Wは「モード」というものを持っている。
まあ、状態遷移と思っておくれ。

電源ON直後は、モード0。
InListPassiveTargetすると、モード6。
Resetすると、モード0に戻る。
DEPとかFALPとかでモードは変わるんだけど、このドキュメントには書かれていないので割愛。


実装するときは、RC-S620/Sとの通信路が確保できたら(UART接続か)、まず接続確認も兼ねてこのコマンドを実行することになる。

そうして次の、InListPassiveTargetコマンドを実行するのだろう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。