【Felicaを使う】Felica Plug データ転送シーケンス確認
奉天の総領事だった当事の吉田茂は、来客があると、わすらわしいのを嫌い逃げ出していた。
しかし、その日は来客と玄関で鉢合わせしてしまった。
客「総領事はいるかね?」
吉田茂「今外出中です」
客は吉田茂の身なりの立派なのに気がつき、問い質す。
客「ひょっとして貴殿が総領事ではないのか?」
吉田茂「本人がいないと言っているんだ。これ以上確かなことがありますか」
唖然とする客を尻目に吉田茂はそのまま立ち去った。
今回は実際のコマンド送受信時の信号波形を紹介し、仕様通りの波形が見られるかを調べます。
データ転送シーケンスはFelica Plugユーザーズマニュアルの2.3を参照しました。
Felica PlugからRL78に送信される信号は磁気検出時のRFDET立下りとコマンド受信時のIRQ立ち上がりです。
この2つを外部割込み信号として扱い、変化を検知して、RFDET立下りに対しては初期化コマンド送信を行い、IRQ立ち上がり対してはコマンドの受信とレスポンス送信を行わないといけません。
①磁気検出時のRFDET立下り
RFDET立下りに対して、初期化コマンドは19.5msec以内に送信完了させる必要があります。
SEL信号がLOWの期間が送信です。送信完了時にSEL信号をHighにしています。
以下の波形では8msecで初期化コマンドの送信を終えています。
データ送信完了後に、RX62Nの受信データバッファを確認すると、以下のようなデータが見られます。
idmの値の意味は以下の通りです。
03 FE : ソニーが規定するFeliCa Plugの番号
00 1C :データフォーマットコード(スイッチサイエンス製品の場合)
12 34 56 78 : ユーザー設定パラメータ
②コマンド受信時のIRQ立ち上がり
Felica plugがFelica Reader/WriterからWrite Without EncryptionコマンドもしくはRead Without Encryptionコマンドを受信するとIRQがHighにアサートします。
IRQがHighに立ち上がった後、最初のSPICLKの立ち上がりでIRQはLowに戻ります。
IRQ立ち上がりからSPICLKを動かして、データを受信します。以下の図におけるSEL信号がHighの期間が受信です。
受信が完了後は、SEL信号をLOWにしてデータを送信し、送信完了時にSEL信号をHighに戻します。
データ送信完了後に、RX62Nの受信データバッファを確認すると、以下のようなデータが見られます。