デジタルビデオカメラでタイマー録画(ハードウェア編)

はじめに

前回は構想編ということでデジタルビデオカメラコントロールアダプタのコンセプトと概略の構成について説明申し上げました。

今回はいよいよハードウェア編です。


まずは回路図

右が今回製作したアダプタの回路図っていうか配線図です。

一番上のLM1881という8本足のICとその周りの部分が「同期分離回路」です。入力されたビデオ信号から同期信号を抜き出す役割をします。

中央右側部分の74HC123という16本足のICは汎用ロジックICで「単安定マルチバイブレータ」です。入力信号の変化に応じて一定時間の長さのパルスを発生する働きをします。

左側部分の12C509Aという8本足のICはこうみえて実はマイクロコンピュータで、今回は「LANC信号発生回路」としてプログラムされています。入力信号の変化に応じてLANC端子に録画開始信号や停止信号を送出する働きをします。

一番下は6V程度のACアダプターからの電源を貰って各IC用の電源の5Vを供給する3端子レギュレータです。

以上、簡単にまとめますと、同期分離回路と単安定マルチバイブレータで、映像信号の入力に応じて出力信号のHigh/Lowのレベルが切り替わるような映像信号検出機能を行ない、そのHigh/Lowに応じてLANC信号発生回路がLANC端子に対して録画開始/停止コマンドを出力する、という構成になっています。

以下、それぞれの回路についてもう少し詳しい説明をしてみましょう。


同期分離回路について

Video In端子に繋いだビデオやチューナーの電源が入ってこの端子にきちんとした映像信号(アナログ)が入力されてきますと、LM1881の働きによってこのICの1番ピン(1番左上角が1番でそこから反時計回りで2、3、・・・8番ピンとなります)から1/0のデジタル信号であるパルス状の同期信号出力されます。

つまり、

  • Video In端子に映像信号が入力されている間は、LM1881の1番ピンから一定周期で繰り返すパルス信号が出力され、
  • Video In端子への映像信号が途絶えると、LM1881からのパルス信号も途絶える、

ということです。

NTSC方式のTV信号の場合は走査線の本数575本の画面が1秒間に30枚送られてきますので1秒当たりの走査線の本数は15,750本あることになります。したがって、ビデオ信号が入ってくると、LM1881からは1/15,750秒毎に1回の割合でパルス信号が出力されることになります。


単安定マルチバイブレータについて

この部分は、後述のLANC信号発生回路部分が映像信号の有無を検出しやすいように、上記の同期信号出力(周期的パルスの有無)をレベル信号のHigh/Lowに変換する役割をしています。今回の回路では、入力信号の立下りエッジを検出すると一定時間だけ出力にLowを出力するという構成になっています。

単安定マルチの中にも、パルス発生中は入力を受けつけないものと、パルス発生中でも入力を受けつけてその時点からさらに決められた時間幅だけのパルスを出力するもの(リトリガブルタイプ)の2種類がありますが、今回使用した74HC123は後者のタイプです。

つまり、出力のパルス幅を繰り返し入力信号の周期よりも充分大きくなるように設定することで、同期信号のような繰り返しパルスが入ってきている間はずっと、パルスが延長される=あたかもLowのレベル信号が出力されるような振る舞いをさせることができます。(下図参照)


LANC信号発生回路について

今回の工作の一番の難関だったのが、ここの部分でした。「工作」といっても半田付け作業自体は全く大したことはありません。大変だったのはどうやってLANC準拠の信号を発生するか、という制御のほうでした。詳しくは次回のソフトウェア編で述べるとして、今回は簡単な仕様について説明します。

ここの部分がやっていることといえば、上で説明した「映像信号検出部」が出力する検出信号が非アクティブからアクティブに変化した場合にLANC端子から録画開始コマンドを送信し、逆に検出信号がアクティブから非アクティブに変化した際にLANC端子から停止コマンドを送信する、という2つだけです。

この作業を実行するためにPIC12C509Aの6つある入出力ポートのうちのGP0、GP1、GP2の3つ(それぞれ7、6、5番ピン)を利用しています。それぞれの役割は、GP0はLANC信号の入力。ひとつ飛んでGP2はLANCの出力。GP1は映像信号検出信号の入力にわりあてています。ちなみに、GP3端子(4番ピン)はリセット入力に設定し、GP4,5(3、2番ピン)はチップに内蔵の4MHzの発振機を利用するので未使用としています。

詳しくはこの後で述べますが、LANCは一本の信号線を2つの機器間で共有して双方向通信を行う関係で、機器同士では信号線をWired Orする形になっています。(2つの機器のうちどちらか一方が信号レベルをLowにすれば、他方がHighを出していても共有信号線はLowレベルになる。)

ところが、PICのGP2の端子はオープンコレクタ(ドレイン)ではなく通常のトーテムポール出力になっていますので、GP2がHighを出力しているときにLANCの信号が他方の機器によりLowにされると信号の衝突が起こります。下手をするとGP2のポートが破壊されてしまいますので、保護の為にダイオードがGP0からGP2に向かう方向で取り付けられています。


LANCの信号フォーマット

LANCは基本的には通信速度9,600bpsのシリアルインターフェースで、一組の信号/グランドの導線を通じてデジタルデータを送受信するものです。ただし、一般的なシリアルインターフェースと異なる部分は次の点です。

  • ひとつの信号線を共有した双方向通信である点
  • 一方がマスター、他方がスレーブと予め役割が定められている点
  • 8byteで1セットの形のコマンド/データである点
  • スタートビットは必ずスレーブ側が出力する点

8byteのデータの内訳は、前半4byteがマスターからスレーブに対して送られるコマンドとそのパラメータ、後半4byteがスレーブからマスターに返信するステータスデータになっています。

各byteのスタートビット間の間隔は1,200マイクロsecから1,400マイクロsec程度(機器によってばらつく)で、8byteひとかたまりのパケット(?)同士の間隔というか周期は約16.7msecになっています。

この辺の詳しい話は、ドイツのサイトですがこちらのページに説明されていますので興味のある方はご覧になってみてください。(ドイツと言っても判りやすい英語で説明されていますので大丈夫だと思います。)

ちなみに、今回利用するのは「録画開始」と「停止」の2種類のコマンドとステータスだけで、それぞれ下記のようなコードが割り当てられています。

コマンド

ステータス

録画

18 3A 00 00

04 ** ** **

停止

18 30 00 00

02 ** ** **


余談

右は、出来あがった基板の様子です。

LM1881と74HC123については、今回はたまたまフラットパッケージの部品が手に入ったのでごらんの様に変換基板を使っていますが、もちろん通常のピンタイプのパッケージもありますのでご心配なく。

右側のソケットにささった黒い部品がPICマイコンです。

実は、今回の企画はとてもではありませんが私一人が自力でできるものではありませんでした。ひとえに、(作者の方のお名前も判らないのですが、)あるWebページで紹介されていた電子工作記事の内容のお陰なのです。

そこに説明されていた回路やPICのプログラムのソースなどを流用/改造させていただくことで、自分の目的を達成することが可能になりました。

本来なら、そのページのURLをここに紹介し、作者の方に感謝の言葉を贈りたいところなのですが、残念ながら、今年:2003年に入ってしばらくしてから、「お気に入り」に登録してあったそのページがリンク切れしてしまい、消息が知れなくなってしまったのです。

でもまぁ、類は友を呼ぶとか申しますので、ひょっとするとご本人が検索エンジンなどでここのページを見つけてご覧になることだってあるかもしれません。心当たりのあるかた、ぜひJunZまでコンタクトしてくださいね。

では、今回はこれくらいで終了します。次回ソフトウェア編までしばらくお待ち下さい。

趣味の工作の部屋 に戻る