FC2カウンター FPGAの部屋 CMOSカメラから画像を入力してディスプレイへ出力2
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

CMOSカメラから画像を入力してディスプレイへ出力2

まずは使用する基板、CMOSカメラの確認だが、基板は画像ベースボード(回路図の一部)とXC3S500E-VQ208(208 ピン)+ 2Mバイト高速SRAM 基板シキノハイテックのCMOSカメラKBCR-M03VG。このCMOSカメラはCMOSイメージセンサにOmniVision社のOV7640を使用している。
OV7640の使用するモードは、VGAモード(30フレーム/秒)、YUV422モード、YUVフォーマットはUYVYUYVYモードを使用する。YUVなどの画像データは8ビット幅で、Uが8ビット、Yが8ビット、Vが8ビット、Yが8ビットというように出力される。これはデフォルトの設定なので、I2Cでレジスタを設定する必要はとりあえずない。予定は白黒なので、YUVのうち輝度成分のYだけ取り出せばOKだ。
画像データはUYVYと41.6ns(24MHz)ごとに出力される。それが640ドット分続く。実際のタイミングチャートは下にデータシートから引用する。
Camera_Disp_1_090916.png

HERFのが1の間Y[7:0]にはUYVYの順に出力されるはず。全体のタイミングチャートもデータシートから引用させていただく。
Camera_Disp_2_090916.png

ここでRowが640tpclkと書いてあるが、UYかUYで1画素なので、CMOSカメラから出力されるPCLKを基準とすると640X2=1280PCLKで1つのRowとなる。(のだと思う。少なくともRGB出力した時はそうだった)これで30フレーム/秒という出力フレームの規格にも計算が合うことになる。

2Mバイト高速SRAMは、アクセスタイム10ns、16ビット幅のSRAM(IS61LV25616AL)を使用している。アクセスタイムは10nsだが、非同期動作なので、周期が10nsクロックで動作は出来ない。現実的にはSpartan3Eボードの48MHzクロックを1/2分周した24MHzで使用する。Write用のパルスはDDRレジスタで出力する。Yデータを格納する際には、SRAMのデータは16ビット幅なので、最初に上位8ビットにYデータを書き込む。次のYデータは下位8ビットに書き込む。つまり24MHzクロック2クロックに1回、8ビットずつ書き込みを行う。
下にSRAMをアクセスするタイミングチャートを示す。
Camera_Disp_3_090916.png

CMOSカメラに24MHzクロックを供給し、カメラから帰ってくるのがPCLKである。これも24MHzのクロックだ。
MDはメモリに読み書きするデータで、上の文字がDISPLAY_DATAの時が、表示用のデータをリードしているときだ。この時は8ビットのYデータ2つ分、2バイトを読み出してディスプレイに表示する。2クロックに1回の読み出しなので、2バイトのデータをもらう必要がある。VOIDは書き込みのタイミングだけど、書き込むデータがそろっていないので書き込めないことを示す。最初のYデータ (CAMERA Y0) が来たら上位8ビットに書き込む。(CAMERA Y0,XX) 次のCAMERA Y1は下位8ビットに書き込む (XX, CAMERA Y1)。これはSRAMのUB, LB信号を用いて上位8ビット、下位8ビットだけに書き込むことができる。
下のR/WはRead/Writeを表す。MADDRは、SRAMのアドレスを示す。なんでも良いときは3FFFFと書いた。
その下のCAMERA U0, CAMERA Y0...はCMOSカメラから出てくるYUV422のデータを示している。その下がHREFの信号となる。

大体このようなタイミングでやって行こうかと思っている。出力の時にIOBのFFを使うために、もう1クロック後ろずれする可能性はある。
ディスプレイに表示するために読み出すのは、1秒間に60フレーム必要だが、CMOSカメラからの書き込みは1秒間に30フレームなので、表示2フレームで正常な画像が出力できることになる。
  1. 2009年09月16日 06:03 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1232-6ab79f54
この記事にトラックバックする(FC2ブログユーザー)