lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

凄いカメラボード改めYABUSAME'S ROD

ボードの再設計

前に↓設計していたカメラボードの外形をまた直しています。
特徴量検出と姿勢制御用のデバイスの設計(その2) - Lynx-EyEDの電音鍵盤 新館

価格と、ハードマクロの豊富さが決定打となりCPLDはMachXO2-2000を採用しました。
和製FPGAボードはDQNネームなのが流行ってますので「凄いカメラボード」改めYABUSAME'S RODと言う名前で。
f:id:Lynx-EyED:20120817000340p:plain
裏側
f:id:Lynx-EyED:20120817000357p:plain
LPC4330-XplorerやLPCXpressoにスタックする形で使うため、この形(rod)にしました。もちろん単独でも動作可能です。

主なデバイスと機能として

  • MachXO2-2000HC: カメラからのストリームデータのビット幅変換、圧縮
  • LTC4160: Li-POの充電管理、USBパワーマネージメント
  • MR25H40: MRAM。ノーウェイト不揮発性データ書き込み
  • TCM8240MD: 特徴量抽出用。2つ使用しステレオカメラとして運用
  • BD7003NUX: 外付け部品が少なくてすむ2ch LDO

これから追加する部品として

  • XBee Wi-Fi: rev.E以降のハード
  • MPU-6000: 3軸ジャイロ・加速度センサ

があります。XBee Wi-Fiを載せるのでボードはもう少し、縦長のボードになると思います

LPC4330 DSCとMachXO2は役割分担があります。
FPGAで複数の(しかも非同期)回路を並列に動かそうとすると、内部配線が膨大になりロジックが十分余っているにもかかわらず実装できなくなる場合があります。例えできたとしても、期待される応答時間を越えることが往々にしてあります。そうなるとソフトCPUでどうにか…できる範囲ではございません。

非同期で並列化するのではなくブロックベースで階層化し、同期回路ベースで設計し良いタイミングクロージャを得ることに注力します。

具体的な役割分担はこのようにしました。

  • MachXO2
    • カメラからのストリームをトリガとして高速アダマール変換、DCTを行う。圧縮し、MRAMに保存
    • LPC4330からの指令に応じて、MRAMデータを渡す。
  • LPC4330
    • MachXO2のマスタ。
    • ラプラシアンフィルタによる画像先鋭化、Prewittマスクによる輪郭抽出(8近傍高域強調タイプ)
    • Haar scaling functionにより二値化、特徴量抽出。
    • カメラの光量を監視しスペクトラム分布を計算。心理的物理量との比較(オプション)。