• 検索結果がありません。

PPM 変調のデコード

ドキュメント内 -家電組み込み用赤外線通信・ (ページ 33-36)

第 5 章 赤外線通信の実装方式の検討

6.2 CIR による赤外線通信の実装

6.2.5 PPM 変調のデコード

NECフォーマットのCIR通信は一つ要素がある、それは毎回の状態変換の時間である。

Leader code、Custom Code、Data Code、Stop Bit、さらに“1”と“0”の定義も時間の

長さがある。つまりON信号とOFF信号の時間を計って、受けた信号をデコードする。

タイマーで信号を計るために入力キャプチャを用いる(タイマーと入力キャプチャの概念 と使い方は文献[25] [26])。

NECフォーマットの場合具体的なデコード方法は以下の各Frameのデコードフローチャ ートを描いた(本システムのフローチャートの書き方は文献[27]を参照した)。

図 6-7 デコードフローチャート

タイマーで測った時間は毎回IC1(ICは入力キャプチャの意味、本段落の下に説明がある)

の入力値を変化した時から次の変化の前までの時間である。この時間と NEC フォーマット で定義した各状態の時間に比べて、現時点の通信状態と受けるデータ情報を確認できる。

または上図の方法で各Frame毎の32bitの情報を受信できる。

タイマー(TMR):タイマーとは、一定周期に一回増やすカウンタである。使いたいタイマ ーのレジスターbitに開始FLAGを設定すると、時間の計測が始まる。

大部分のPIC24Fは5つタイマーが持っている、TMR1~5である。この5つタイマーは3 種類で分ける、TypeA、TypeB、TypeC である。TypeA は普通な16bit のタイマーである。

1 つTypeBタイマー(16bit)と1つTypeCタイマー(16bit)を組み合わせると、1つ32bitの

タイマーになれる。(PIC24Fのタイマーの種類は文献[28]を参照した)

PIC24Fの5つタイマーの種類は以下である。

TMR1 ⇒ TypeA TMR2 ⇒ TypeB TMR3 ⇒ TypeC TMR4 ⇒ TypeB TMR5 ⇒ TypeC

TMR2とTMR3を組み合わせる、TMR4とTMR5を組み合わせる。

PIC24FのIrDA StackはTMR2を使っているので、TMR3は16bitタイマーとしてしか

使わない。(文献[18]を参照した)

PIC24F の頻度と TMR1~5 のカウント頻度も調べて赤外線受信処理用タイマーはTMR1

とTMR3のどちらでも使用できる。(TMR4とTMR5は32bitのタイマーになれるので、将 来他の機能は使用する可能性がある。)

PIC24FJXXGA002の頻度は最大8MHZを設定できるが、デフォルト値は4MHZである。

([23]を参照した)PIC24FJXXGA002の頻度はデフォルトの時にTMR1~5のカウント頻度は

4つ選択肢である。

1:256 ⇒ 1秒/(4 MHZ /256) = 1000000μs/(4000000/256) = 64μs 1:64 ⇒ 1秒/(4 MHZ /64) = 1000000μs/(4000000/64) = 16μs 1:8 ⇒ 1秒/(4 MHZ /8) = 1000000μs/(4000000/8) = 2μs 1:1 ⇒ 1秒/(4 MHZ /1) = 1000000μs/(4000000/1) = 0.25μs

NEC フォーマットの赤外線受信する時に計りたい時間の最大値は NEC フォーマットの

1Frameの最大時間108000μs([22]を参照した)である。頻度の4つ選択肢のどちらで9000μs

を計れることについて検討する。

108000μs/64μs = 1687.5 < 16bitの最大カウント数(65536回) 108000μs/16μs = 6750 < 16bitの最大カウント数(65536回) 108000μs/2μs = 54000 < 16bitの最大カウント数(65536回) 108000μs/0.25μs = 432000 > 16bitの最大カウント数(65536回)

これで、16bit カウントで108000μsを計れる3 つ選択肢の中に一番早いタイマーのカウ ント頻度の選択肢1:8を選んだ。

入力キャプチャ(Input Capture):入力キャプチャとは、フリーランでカウントするTMR の値をキャプチャ入力ピンの変化により自動的に読み取り、キャプチャレジスターに転記す る機能である。

最終的に使用するPIC24FJXXGA002では入力キャプチャはIC0、IC1、IC2の3チャン ネルが存在している。入力キャプチャと連携して使えるタイマーはTMR2とTMR3である。

TMR2はIrDA Stackが使うので、TMR3しか使えない。

ドキュメント内 -家電組み込み用赤外線通信・ (ページ 33-36)