目次

カメラインタフェース改造

 これまで、カメラの画像データ出力フォーマットを
 RGBにしていました。

 RGBから輝度信号へと変換する処理をデジタル回路で
 実現するのは簡単ですが、利用カメラに与える設定値
 でYUVにできるので、それを利用することに。

 ARMから出力するパラメータは、FPGAのバッファを介して
 SCCBで、カメラに設定します。



 カメラのフレームレートはデフォルトで30ですが
 半分の15に落として使います。マシン移動に使え
 ればよいので、フレームレートが15であれば60ms
 になります。
 フレームレートを半分にするには、ダミーラインを
 入れればよいので、510ラインを入れます。

 510 = 256 + 254 = 0x100 + 0xFE
 から、次の設定を加えます。
    /* DM_LNL */ 
    send_cam(0x92,0xFE);
    /* DM_LNH */ 
    send_cam(0x93,0x01);

 フレームレートを半分にしたので、ピクセルクロックも
 24MHzの1/16にします。
    /* CLKRC
         divide /16 
    */ 
    send_cam(0x11,0x8F);

 YUV形式で画像データを出力するため、レジスタ
 TSLB、COM7の設定値を変更します。
    /* COM1 */ 
    send_cam(0x3b,0x0a); /* disable night mode */
    /* TSLB
         3 bit => select YUV format 
    */ 
    send_cam(0x3a,0x05);
    /* COM7
         2 bit , 0 bit  => select YUV format
    */ 
    send_cam(0x12,0x00);

 YUV形式では、1ピクセルにY(輝度)信号は
 必ず出力されるので、偶数ピクセルだけを取得
 して処理します。



 VSが垂直同期信号で、この後にHREF、PCLKに
 同期した画像データが出てきます。PCLKはVGA
 であれば、1ラインは640x2回PCLKが出力され
 ます。

 MCR_VCマシンを制御するには、1ライン=640ピクセル
 とする必要がないので、QQVGA(160x120)とします。

 QQVGAは、1ライン=160ピクセルとなるので、PCLKは
 320回出力になります。QQVGAの画像全部を利用する
 必要はないので、上から60ラインを使います。

 利用するFPGAは、DualPortMemoryが内蔵されているので
 DualPortMemoryは1ブロックあたり、2048バイトの容量
 を持ちます。1ライン=160ピクセルとすると、5ライン
 では、全体で800バイトです。従って、DualPortMemoryを
 1ブロック利用すると、制御に必要な画像データを保存
 できます。

 VSを利用し、HREFとPCLKのANDをトリガーとして、メモリ
 に画像データを保存するシーケンサでインタフェースを
 実現します。




目次

inserted by FC2 system