【パルス入力とは?】
マイクロコンピュータでは色々なセンサを直接接続して処理する
場合が多いのですが、センサにはパルス出力をするものが結構
あり、これらのパルス信号入力の扱いには注意しなければならな
いことが幾つかあります。
このパルス信号の扱いのノウハウを説明します。
【パルス信号の種類】
普通パルス信号と呼ばれるものには結構多くの種類があります。
これらを単純に分類すると下表の様に分けることが出来ます。
No
分類区分
特 徴
時間
例
1 単発か連続か 事象が起きた時1回だけ発生するパルスは単発で、事象が続いている間は連続的に繰り返し発生するのが連続パルス 1μsec〜∞ 単発の例:通過検知
連続の例:モータ回転数、積算電力計、シリアル通信2 パルスの持続時間 非常に短時間のパルスから長いパルスまで種類が多い 0.1μsec〜数秒 瞬時パルスの例 :
モータ回転検知
長時間パルス例 : 通過検知停止時3 規則的かランダムか 一定の規則性を持ったパルスか全く不規則なパルスかということと、パルス幅についても同様の違いがあります 数μsec〜数分 一定の例 :シリアル通信信号
ランダム例:人検知、4 繰り返し時間間隔 非常に高速に繰り返されるものと、遅いものとがあります。 数μsec〜数分 高速例:高速通信
低速例:5 回数か、幅か パルスの入力回数をカウントすることに意味があるデータとなるのか、それともパルスの持続時間に意味があるのかという違いがあります。 数Hz〜数MHz 回数例:積算電力計、通過検知、モータ回転数
幅の例:位置情報、A/D変換
【どう入力するか】
多くの種類のパルスそれぞれをプログラムで入力する時の扱い方には
下記の様な注意が必要です。これがパルス入力の際のノウハウです。
1.パルス見逃しが無いようにする。
プログラムでパルスを入力する時には、パルスを一定の周期で
チェックするというサンプリング方式で検出するので、どうしても
下図のようにサンプリング周期より短いパルスは検出出来ない
時があります。従って、入力対象のパルス幅より十分短い時間
の周期でサンプリングする必要があります。
2.パルス幅計測の精度の問題
パルス見逃し問題と同じように、サンプリングでパルス幅を計測
する時には、下図のように、サンプリング周期以下の差は計測
できないので、計測精度はサンプリング周期で決定されてしまい
ます。そこで、高精度にしたい時には、やはりサンプリング周期
を十分早いものにすることが必要です。
ちなみに、PICでクロックが10MHzの時には1命令0.4μsecで、
サンプリングするプログラムは10ステップ程度になりますから、
サンプリング周期は約4μsecとなり、これ以下の周期には出来
ないということになります。
3.パルス検出を早くする。
単純にパルスが入力されたことを検出するだけの場合、割り込み
を使うと、パルスが入力された時点で即割り込むので、平均的に
見ると、サンプリング方式より早く検出することが出来ます。
(それでも割り込みをハードウェアが受け付けるまでの遅れは
あります。通常3〜4命令分遅れます)
また、割り込み方式を使うと、常時パルスが入ったかどうかは、
ハードウェアがやってくれるので、プログラムは気にしないで他の
ことを実行することが出来るというメリットもあります。