目次

シーケンサ実現

 シーケンサは、ステートマシンとも呼ばれる
 決められた動作を実行する他に、条件判断で
 動作を変更したり、反復するデジタルの回路
 です。

 マイクロコンピュータの構造化プログラムを
 デジタル回路で実現するのが、シーケンサと
 考えればよいでしょう。

 最も簡単なシーケンサのもとになる回路は、以下。



 この出力にRSラッチをつけると、点滅回路になります。



 RSラッチで実現しているLEDの状態は、次のように
 点灯と消灯を行ったり来たり。




 カウンタIC4024の出力は、デコーダICに0から15を与え
 0と5のときに、正のパルスを出力します。

 カウンタの値(ステート)で実行している内容は、以下。

 RSラッチに与えられる制御信号をタイミングチャートで
 見ると、次のようになります。




 シーケンサでは、ステートごとに実行する処理を決める
 ことがシステム設計の一部になります。
 シーケンサに使うカウンタを何にするのかも、同じ程度
 に重要項目と言えます。

 ステートが4状態以内では、2ビットジョンソンカウンタ
 を使うのが定石です。
 2ビットジョンソンカウンタは、シフトレジスタを利用。



 出力は、Qa、Qbなので、状態値は次の繰返しです。

 クロックを1Hzにすると、QaかQbにLEDを
 接続すると点滅できます。




 マイコンのファームウエアを作成するとき、構造化された
 プログラムを書くと、見通しがよくなりますがシーケンサ
 を使うと、構造化されたプログラムと等価な処理を、実現
 できます。

 構造化されたプログラムは、「proper program」と呼び
 次の3種の構造だけで記述されます。

 この3種の構造を実現する回路とフローチャートの
 対応を見てみます。

 連接



 選択



 反復




 シーケンサで動かす回路は、トリガーを貰って与えられた
 仕事をする方式にしておきます。

 ソフトウエア工学の心得があれば、イベントドリブン
 タイプの処理に適用できると言い換えるとわかるかも
 知れません。

 条件待ちをして、条件が合致したら複数の処理を連続
 実行する場合は、シフトレジスタを2つ組み合わせて
 条件判定とトリガー出力、連続実行で2シーケンサを
 用意。

 回路は簡単で、以下となります。



 信号SSが0→1と変化すると、左のシフトレジスタで
 その変化を1クロック分だけ、右のシフトレジスタに
 伝達します。

 左のシフトレジスタは、条件判定回路になります。
 右のシフトレジスタは、3回路に順番にトリガーを
 与えて、終了。

 状態遷移図では、次のシーケンスを実行しているのと等価。




 シーケンサは、与えるクロックで100MHz程度でも充分
 実用になります。マイコンが100MHzで動作させても
 命令を解釈しながら実行するために、システム動作が
 50MHzにもならないのとは、大違い。

 トリガーで一気呵成に3回路を動かしますが、各回路の
 動作終了を待ってはいません。待ちを、実現するには
 右のシフトレジスタをJKタイプのフリップフロップに
 交換して対応します。

 CMOSの4000シリーズ、4500シリーズには、使いやすい
 JKタイプのフリップフロップはないので、74LSの
 シリーズを利用します。

 74LSシリーズを使うと、電源が5Vに限定される
 ので、DタイプのフリップフロップをJKタイプへと
 変換して使います。



 1シーケンサで複数の回路を動かす場合、SRラッチを
 使った回路を考えればよいでしょう。




 上の回路の場合、SRラッチのS、Rの組を8パターン使う
 ことが可能です。8回路を並列に動かすことができると
 言ってもよいでしょう。


目次

inserted by FC2 system