• 検索結果がありません。

RX64M グループ カメラ活用センサソリューション

N/A
N/A
Protected

Academic year: 2021

シェア "RX64M グループ カメラ活用センサソリューション"

Copied!
68
0
0

読み込み中.... (全文を見る)

全文

(1)

RX64M グループ

カメラ活用センサソリューション

RX Driver Package Application

要旨

本資料は、カメラ活用センサソリューションのアプリケーションノートです。人物検知、動体検知、歪み補 正を実現しています。 評価には、RX64M 搭載のGR-KAEDE (以下、GR-KAEDE)が必要です。 Webカメラシステムは、GR-KAEDE搭載のカメラモジュールから取り込んだデータをJPEGファイルにエン コードし、Webサーバシステムを使ってWebブラウザ上に表示します。

本アプリケーションノートでは、メインプログラムとWeb サーバを、RX64M グループ用 RX Driver Package に入っているTCP/IP プロトコルスタック(M3S-T4-Tiny)、Ethernet ドライバ等と組み合わせて評価するま での手順について説明します。

動作確認デバイス

RX64M グループ(GR-KAEDE) R01AN2462JJxxxx Rev.x.xx 2014.11.10

(2)

RX Driver Package Application

目次

1.

概要 ... 5

1.1 本アプリケーションノートについて... 5 1.2 動作環境 ... 5 1.3 モジュール構成 ... 6

2.

開発環境の入手 ... 9

2.1 e² studio を使用する場合 ... 9 2.1.1 e² studio の入手とインストール方法 ... 9 2.1.2 コンパイラパッケージの入手方法 ... 10 2.1.3 3.0.1.09 へのアップデート ... 10 2.2 CubeSuite+を使用する場合 ... 11 2.2.1 CubeSuite+の入手とインストール方法 ... 11

3.

評価環境にプロジェクトを読み込む ... 13

3.1 共通作業 ... 13 3.2 e² studio を使用する場合 ... 13 3.2.1 ワークスペースの作成 ... 13 3.2.2 プロジェクトのインポート ... 14 3.3 CubeSuite+を使用する場合 ... 17

4.

動作確認 ... 18

4.1 プロジェクトのビルド ... 18 4.1.1 e² studio を使用する場合 ... 18 4.1.2 CubeSuite+を使用する場合 ... 19 4.2 デバッグの準備 ... 19 4.2.1 機器の構成 ... 19 4.2.2 クライアント PC の設定 ... 21 4.3 プロジェクトのデバッグ ... 24 4.3.1 e2 studio を使用する場合 ... 24 4.3.2 CubeSuite+を使用する場合 ... 27 4.3.3 共通操作 ... 28

5.

LED 仕様 ... 34

6.

メインプログラム仕様 ... 35

6.1 ファイル一覧 ... 35 6.2 モジュール一覧 ... 36

(3)

RX Driver Package Application

7.6.1 R_httpd ... 41 7.6.2 R_httpd_pending_release_request ... 41 7.6.3 R_T4_HTTP_SERVER_GetVersion ... 41 7.7 ユーザ定義関数リファレンス (ファイル関連) ... 42 7.7.1 データ構造体 ... 42 7.7.2 change_dir ... 43 7.7.3 file_close ... 43 7.7.4 file_delete ... 44 7.7.5 file_open ... 44 7.7.6 file_read ... 45 7.7.7 file_rename ... 45 7.7.8 file_exist ... 46 7.7.9 file_write ... 46 7.7.10 get_file_info ... 47 7.7.11 get_file_list_info ... 47 7.7.12 get_file_size ... 48 7.7.13 make_dir ... 48 7.7.14 remove_dir ... 49 7.8 ユーザ定義関数リファレンス(システムタイマ関連)... 49 7.8.1 データ構造体 ... 49 7.8.2 get_sys_time ... 50 7.9 サンプル CGI 関数 ... 51 7.9.1 cgi_sample_function ... 51

8.

Web カメラ仕様 ... 52

8.1 性能概要 ... 52 8.2 動作概要 ... 52 8.3 コンフィグレーション ... 52 8.3.1 r_pdc_rx_config.h... 52 8.3.2 ov_image_sensor.h ... 53 8.3.3 r_jpeg_enc_apl.h... 53 8.3.4 r_pdc_apl.h ... 53 8.4 ファイル一覧 ... 53 8.5 API リファレンス ... 54 8.5.1 R_image_sensor_init ... 54 8.5.2 R_image_sensor_write ... 54 8.5.3 R_image_sensor_read ... 54 8.5.4 R_jpeg_compress_init ... 55 8.5.5 R_get_jpeg_output_adr ... 55 8.5.6 R_get_jpeg_output_area_num ... 55 8.5.7 R_pdc_init ... 55 8.5.8 R_pdc_create ... 56

(4)

RX Driver Package Application

9.3 コンフィグレーション ... 57 9.4 ファイル一覧 ... 58 9.5 API リファレンス ... 58 9.5.1 Mdl_IP_Init ... 58 9.5.2 Mdl_IP_PersonDetection ... 58 9.5.3 Mdl_IP_PersonDetection_ParamChg ... 59 9.5.4 Mdl_IP_MovingDetection ... 59 9.5.5 Mdl_IP_MovingDetection_ParamChg ... 60 9.5.6 Mdl_IP_ImgRevise ... 60 9.5.7 Mdl_IP_ImgRevise_ParamChg ... 61

10.

e

2

studio 使用時の注意点 ... 62

10.1 フォルダ名について ... 62 10.2 ソースコードのエディットについて... 62

11.

補足 ... 62

11.1 無償評価版の「RX ファミリ用 C/C++コンパイラパッケージ」を利用する場合の注意事項 .... 62 11.2 Web ブラウザ上でのキャプチャデータ更新遅延について ... 62

(5)

RX Driver Package Application

1. 概要

1.1

本アプリケーションノートについて

本資料は、カメラ活用ソリューションのアプリケーションノートです。 本アプリケーションノートは、GR-KAEDE 上で動作します。

1.2

動作環境

本アプリケーションノートの動作環境を以下に示します。 表 1.2.1 動作環境 対応MCU RX64Mグループ 評価ボード GR-KAEDE 統合開発環境 (IDE) e² studio V3.0.1.09以降 または、 CubeSuite+ V2.02.00以降 クロスツール RXファミリ用C/C++コンパイラパッケージV2.02.00以降 エミュレータ E1(別途購入必要) Webブラウザ Internet Explorer8

Internet Explorer11(互換表示設定で「192.168.0.3」を追加してください)

(6)

RX Driver Package Application

1.3

モジュール構成

本アプリケーションノートのモジュール構成とモジュール一覧を以下に示します。 図 1.3.1 モジュール構成 表1.3.1 モジュール一覧 種類 1.3.1上表記 モジュール名 FITモジュール名 バージョン Board Support Package BSP Modlue ボードサポートパッケージ(BSPモ ジュール) r_bsp 2.60

Device Driver CMT Driver コンペアマッチタイマ(CMT) r_cmt_rx 2.30

Device Driver Ethernet Driver イーサネットコントローラ(ETHERC) r_ether_rx 1.00

Device Driver DMACA Driver DMA コントローラ(DMAC) r_dmaca_rx 1.01

Device Driver SCI IIC Driver SCI 簡易 IIC ドライバ r_sci_iic_rx 1.30

Device Driver PDC Driver パラレルデータキャプチャ(PDC) r_pdc_rx 1.00

Middleware Ether Driver Interface M3S-T4-Tiny インタフェース変換モ

(7)

RX Driver Package Application

1.3.2 FIT 対象外モジュール一覧(renesas_sw_library フォルダ内) 種類 図1.3.1 上表記 モジュール名 フォルダ名 バージョン 備考 Middleware Image processer 人物検知などの画

像処理ソフト

image_proc 1.00 ここはヘッダのみで す。

実体はモトローラファ イルで提供されます。 Middleware JPEG encoder JPEG エンコーダ ipeg_encoder_rx 1.00 Web ブラウザで表示す

る為に、画像データを JPEG へエンコードし ます。

Device Driver MMC driver MMC ドライバ mmc_driver --- 画像をGR-KAEDE 搭 載のmicroSD カードへ 書き込みます。「5.LED 仕様」参照。

※JEPG エンコーダ、MMC ドライバは、ルネサス HP より資料入手可能です。

※画像処理ソフトに関しては、別途提供モトローラファイル付属のドキュメントをご覧ください。 ※Web Camera System Main Program 部分は、「6. メインプログラム仕様」をご覧ください。

(8)

RX Driver Package Application

【補足】

FIT とは、Firmware Integration Technology の略でとは、各周辺機能モジュールドライバの組み込みの容易化、 及びRX マイコン間の移植性向上を重点とし、RX ファミリを使用したソフトウェア開発者のプログラム開発、 ソフトウェア資産管理の負担を軽減することを目的とした、まったく新しい概念です。 http://japan.renesas.com/products/mpumcu/rx/child/fit.jsp e2 studio には FIT モジュールのプラグイン機能があり、簡単にプロジェクトに反映できます。 例えば、コンペアタイマ機能を使いたい場合は、「r_cmt_rx」を e2 studio のプラグイン機能で読み込み、指 定のAPI を使って設定するだけで、コンペアタイマ機能が使用できます。 提供しているプロジェクトは、必要とするFIT モジュールを組み込んだ状態で提供しています。 新たにインポートする必要はありません。

(9)

RX Driver Package Application

2. 開発環境の入手

開発環境としては、e² studio と CubeSuite+に対応してあります。通常は、FIT モジュールのインポートのし やすさからe2 studio を推奨していますが、今回は、各 FIT モジュールを組み込んだ形でのプロジェクト一式 を提供していますので、お好きな方でお試しください。各章では、両評価環境での手順を載せています。

2.1

e² studio を使用する場合

2.1.1

e² studio の入手とインストール方法

e² studio は、ルネサスのホームページからダウンロードできます。

1. 以下の URL にアクセスし、e² studio のダウンロードページを表示します。

http://japan.renesas.com/e2studio_download

2. 表示された項目の中から、「統合開発環境 e² studio 3.0.0.22 インストーラ」をクリックします。(分割ダ ウンロード版と一括ダウンロード版がありますが、内容の違いはありません。)

その後表示されたページの指示に従い、e² studio のインストーラをダウンロードします。

3. ダウンロードした e² studio のインストーラを実行し、e² studio を PC にインストールします。

インストール方法は「e² studio 統合開発環境 ユーザーズマニュアル入門ガイド」を参照してください。 http://documentation.renesas.com/doc/products/tool/doc/r20ut2858jj0100_e2_start_s.pdf 4. 「e² studio 3.0.1.09 差分アップ―デート」をクリックします。(その時点で最新のを選択してください。) その後表示されたページの指示に従い、e² studio のインストーラをダウンロードします いずれかのリンクを クリックします

(10)

RX Driver Package Application

2.1.2

コンパイラパッケージの入手方法

本ファームウェアをビルドするには、RX ファミリ用 C/C++コンパイラパッケージ V2.02.00 以降が必要で す。持っていない場合は、無償評価版の「RX ファミリ用 C/C++コンパイラパッケージ(統合開発環境なし)」 をインストールします。

1. 以下の URL にアクセスし、e² studio のダウンロードページを表示します。

http://japan.renesas.com/e2studio_download 2. 示された項目の中から、「【無償評価版】RX ファミリ用 C/C++コンパイラパッケージ V2(統合開発環 境なし)V2.02.00」をクリックします。 その後表示されたページの指示に従い、コンパイラのインストーラをダウンロードします。 3. ダウンロードしたコンパイラのインストーラを実行し、コンパイラを PC にインストールします。

2.1.3

3.0.1.09 へのアップデート

PC にインストールした e² studio を、最新版(現時点では Ver.3.0.1.09)にアップデートします。

1. 以下のURL にアクセスし、e² studio のダウンロードページを表示します。

http://japan.renesas.com/e2studio_download

2. 表示されたページの右側にあるバージョン情報のリンクをクリックします。

(11)

RX Driver Package Application

3. 表示された項目の中から、「Eclipse ベース 統合開発環境 e2 studio V3.0.1.09 へのリビジョンアップのお知 らせ」をクリックします。 その後表示されたページの指示に従い、e² studio のアップデートを実施してください。 V.3.0.01.09 より最新版がリリースされていましたら、そちらをご使用ください。

2.2

CubeSuite+を使用する場合

2.2.1

CubeSuite+の入手とインストール方法

CubeSuite+は、ルネサスのホームページからダウンロードできます。 1. 以下の URL にアクセスし、CubeSuite+のダウンロードページを表示します。 http://japan.renesas.com/cubesuite+_download リンクをクリックします

(12)

RX Driver Package Application

2. 表示された項目の中から、「【無償評価版】統合開発環境 CubeSuite+ V2.02.00」をクリックします。 (分割ダウンロード版と一括ダウンロード版がありますが、内容の違いはありません。) その後表示されたページの指示に従い、CubeSuite+のインストーラをダウンロードします。 3. ダウンロードしたCubeSuite+のインストーラを実行し、CubeSuite+ を PC にインストールします。 インストール方法は「CubeSuite+ V2.02.00 統合開発環境 ユーザーズマニュアル 起動編」を参照してくだ さい。 http://documentation.renesas.com/doc/products/tool/doc/r20ut2865jj0100_qsst.pdf リンクをクリック します

(13)

RX Driver Package Application

3. 評価環境にプロジェクトを読み込む

3.1

共通作業

1. 提供したプロジェクト(rx64m_gr_kaede_Hi_Solution)を任意の場所に置きます。 2. 画像処理用ソフトを用意。 別途提供されるImgProcessingLib.mot を「rx64m_gr_kaede_Hi_Solution」フォルダ直下に置きます。

3.2

e² studio を使用する場合

3.2.1

ワークスペースの作成

1. e² studio を起動します。 2. 表示されたダイアログに、任意のワークスペースフォルダを入力し、「OK」をクリックします。 ワークスペースフォルダ を入力します 「OK」をクリックします

(14)

RX Driver Package Application

3. 以下の画面が表示されたら、「Workbench」をクリックします。

3.2.2

プロジェクトのインポート

rx64m_gr_kaede_Hi_Solution」プロジェクトを、作成したワークスペースにインポートします。 1. e² studio の「ファイル」メニューの「インポート」をクリックします。 「Workbench」を クリックします クリックします

(15)

RX Driver Package Application

2. 「一般」から「既存プロジェクトをワークスペースへ」を選択し、「次へ」をクリックします。 3. 「参照」をクリックします。 「既存プロジェクトを ワークスペースへ」を 選択して「次へ」をク リックします クリックします

(16)

RX Driver Package Application

4. 「rx64m_gr_kaede_Hi_Solution」を選択し、「OK」をクリックします。 5. 「プロジェクトをワークスペースにコピー」にチェックを入れ、「完了」をクリックします。 プロジェクトフォルダを選 択してクリックします チェックを入れ、 クリックします

(17)

RX Driver Package Application

3.3

CubeSuite+を使用する場合

1. 「rx64m_gr_kaede_Hi_Solution」フォルダ直下にある「rx64m_gr_kaede_Hi_Solution.mtpj」をダブルクリッ クして、CubeSuite+を起動します。 2. 「OK」をクリックします。 クリックします

(18)

RX Driver Package Application

4. 動作確認

4.1

プロジェクトのビルド

4.1.1

e² studio を使用する場合

以下の手順に従い、プロジェクトをビルドしてロードモジュールを生成します。 1. 「プロジェクト・エクスプローラ」からビルドするプロジェクトをクリックします。 2. 「プロジェクト」メニューの「すべてをビルド」をクリックします。 3. 「コンソールパネル」に「'Build complete.'」と表示されたらビルド完了です。 クリックします クリックします

(19)

RX Driver Package Application

4.1.2

CubeSuite+を使用する場合

1. 「ビルド」メニューの「ビルド・プロジェクト」をクリックします。

4.2

デバッグの準備

ここでは、用意が必要な機器、PC 側のネットワーク設定について説明します。

4.2.1

機器の構成

デバッグを開始する前に、評価ボードを準備します。 必要な機器の一覧と構成を以下に示します。 表5.2.1.1 機器構成 No. 機器 補足 1 開発 PC 開発を行う PC です。 2 GR-KAEDE 3 クライアント PC(Web ブラウザ) 開発 PC で代用可能です。 4 クライアント PC と GR-KAEDE(Web サーバ)を 接続するためのネットワーク環境として以下のいず れか 1. スイッチング・ハブを使用する場合 a. スイッチング・ハブ b. LAN ケーブル(ストレート) 2 本 2. クロスケーブルを使用する場合 a. LAN ケーブル(クロス) 1 本

(20)

RX Driver Package Application

スイッチング・ハブ構成

(21)

RX Driver Package Application

4.2.2

クライアント PC の設定

クライアントPC のネットワークを設定します。 1.クライアント PC の「コントロールパネル」を開き、「ネットワークとインターネット」をクリックしま す。 2.「ネットワークと共有センター」をクリックします。 クリックします クリックします

(22)

RX Driver Package Application

3. 「アダプターの設定の変更」をクリックします。

4. 「ローカル エリア接続」を右クリックして、プロパティをクリックします。

クリックします

(23)

RX Driver Package Application

5. 「インターネットプロトコルバージョン 4 (TCP/IPv4)」を選択して「プロパティ」をクリックします。

6. IP アドレス等の設定情報が表示されます。以下のように設定し「OK」をクリックします。

クリックします

(24)

RX Driver Package Application

4.3

プロジェクトのデバッグ

以下の手順に従い、プロジェクトのデバッグを開始します。

4.3.1

e2 studio を使用する場合

1. 開発 PC と E1 エミュレータを USB ケーブルで接続します。 2. GR-KAEDE にアダプタを接続し、電源を入れます。 3. e² studio の「実行」メニューの「デバッグ構成」をクリックします。 クリックします

(25)

RX Driver Package Application

4. 「Renesas GDB Hardware Debugging」の「rx64m_gr_kaede HardwareDebug」をクリックし、「デバッグ」 をクリックします。

以下のメッセージが表示されたら、「はい」をクリックします。

クリックします

(26)

RX Driver Package Application

ロードモジュールのダウンロードが完了すると、「デバッグ」パースペクティブが開きます。

5. ツールバーの「再開」をクリックします。プログラムが実行され、main 関数の先頭でブレークします。

main 関数の先頭でブレークした後に、もう一度ツールバーの「再開」をクリックします。

Main 関数先頭でのブレークは、e2 studio のデバック構成で解除可能です。

続けて、「4.3.3 共通操作」に進んでください。

(27)

RX Driver Package Application

4.3.2

CubeSuite+を使用する場合

1. 開発 PC と E1 エミュレータを USB ケーブルで接続します。 2. GR-KAEDE にアダプタを接続し、電源を入れます。 3. CubeSuite+の「デバッグ」メニューの「デバッグ・ツールへダウンロード」をクリックします。 ロードモジュールのダウンロードが完了すると、main 関数の先頭でブレークします。 クリックします

(28)

RX Driver Package Application

ツールバーの「実行」をクリックします。 続けて、「4.3.3 共通操作」に進んでください。

4.3.3

共通操作

1. クライアント PC で Web ブラウザを起動し、以下のアドレスを入力します。 Web サーバアドレス:http://192.168.0.3 【注】Web サーバアドレスは、コンフィギュレーションで変更可能です。 ( rx64m_gr_kaede _Hi_Solution/r_t4_rx/src/config_tcpudp.c ) 2. Web ブラウザ上に、ファイルの一覧が表示されます。 クリックします

(29)

RX Driver Package Application

3-1. 2.の画面で「demo_top.htm」をクリックすると以下のような画面が表示されます。 [デモトップ画面:画像更新はしない] 上記各番号の上に置かれたビットマップをクリックすると 下記動作をします。 1. 当画面をリロード。 2. キャプチャ画面(ノーマル)へ遷移。 3. キャプチャ画面(人物検知)へ遷移。 4. キャプチャ画面(動体検知)へ遷移。 5. キャプチャ画面(歪み補正調整画面)へ遷移。 6. 当画面へ遷移(リロード相当)。

(30)

RX Driver Package Application

3-2. 2.の画面で「demo_ru1.htm」をクリックすると以下のような画面が表示されます。 [キャプチャ画面(ノーマル):一定周期でキャプチャデータを更新します] 上記各番号の上に置かれたビットマップをクリックすると 下記動作をします。 1. デモトップ画面へ遷移。 2. 当画面をリロード。 3. キャプチャ画面(人物検知)へ遷移。 4. キャプチャ画面(動体検知)へ遷移。 5. キャプチャ画面(歪み補正調整画面)へ遷移。 6. ノーマルモードを維持したままキャプチャ更新停止。 この画面では2 つ機能のパラメータ変更が可能です。 上段は、現在値(設定後の結果)を表します。

JPEG QUALITY : JPEG エンコード時の品質 1(最低画質)〜

128(最高画質)

・IMAG SENSOR Read DT: カメラモジュール内のイメージセ

ンサのレジスタ値を表示します。下段で書き込んだレジス タに対するリード結果を表示します。(一部 Write only のレ ジスタもあります) 下段では、各パラメータを更新できます。 空白欄に値を記載後、”SET”ボタンをクリックしてください。 (一旦ページが切り替わるのは、HTTP サーバ FIT モジュール の仕様です。) IMAGE SENSOR のレジスタ情報については、本アプリケー ションノートでは公開していません。使用される場合は、使 用者の責任でご使用ください。

(31)

RX Driver Package Application

3-3. 2.の画面で「demo_ru2.htm」をクリックすると以下のような画面が表示されます。 [キャプチャ画面(人物検知):検出部分が赤枠で表示されます] 上記各番号の上に置かれたビットマップをクリックすると 下記動作をします。 1. デモトップ画面へ遷移。 2. キャプチャ画面(ノーマル)へ遷移。 3. 当画面をリロード。 4. キャプチャ画面(動体検知)へ遷移。 5. キャプチャ画面(歪み補正調整画面)へ遷移。 6. 人物検知モードを維持したままキャプチャ更新停止。 この画面では、動体検知結果の表示と 2 つ機能のパラメータ変 更が可能です。 上段は、検知結果とパラメータの現在値(設定後の結果)を表し ます。 ・Moving result : 動体検知結果です。1 画面を 9 エリアに 分割し、各エリアでの検出結果を表示します。エリアをまた ぐ場合はいずれか 1 エリアのみにカウントされます。 キャプチャデータに対する各エリアの割り当ては WEB ブラ ウザ右上部”division area name”の通りです。 ・THRESHOLD :動体を検出する際の判別しきい値です。 ・sensitivity :動体を検出する際、画像差分(1 枚目と 2 枚 目、2 枚目と 3 枚目)で明るさの変化があったかを判別する しきい値です。 下段では、THRESHOLD と SENSITIVITY 設定値を変更できます。 空白欄に値を記載後、”SET”ボタンをクリックしてください。 (一旦ページが切り替わるのは、HTTP サーバ FIT モジュールの 仕様です。) ・THRESHOLD :動体の検出が行われにくい場合は設定 値を小さくし、過検出する場合は設定値を大きくしてくだ さい。 ・sensitivity :し明るさの変化が小さい箇所を検出したい場 合は設定値を小さくし、検出しなくする場合は設定値を大き くてください。

(32)

RX Driver Package Application

3-4. 2.の画面で「demo_ru3.htm」をクリックすると以下のような画面が表示されます。 [キャプチャ画面(動体検知):変化を検知した部分が赤く表示されます。] 上記各番号の上に置かれたビットマップをクリックすると 下記動作をします。 1. デモトップ画面へ遷移。 2. キャプチャ画面(ノーマル)へ遷移。 3. キャプチャ画面(人物検知)へ遷移。 4. 当画面をリロード。 5. キャプチャ画面(歪み補正調整画面)へ遷移。 6. 動体検知モードを維持したままキャプチャ更新停止。 この画面では、動体検知結果の表示と 2 つ機能のパラメータ変更が可 能です。 上段は、検知結果とパラメータの現在値(設定後の結果)を表します。 ・Moving result : 動体検知結果です。1 画面を 9 エリアに分割し、 各エリアでの検出結果を表示します。エリアをまたぐ場合はいずれ か 1 エリアのみにカウントされます。 キャプチャデータに対する各エリアの割り当ては WEB ブラウザ右上 部”division area name”の通りです。

・THRESHOLD :動体を検出する際の判別しきい値です。 ・sensitivity :動体を検出する際、画像差分(1枚目と2枚目、2枚 目と3枚目)で明るさの変化があったかを判別するしきい値です。 下段では、THRESHOLD と SENSITIVITY 設定値を変更できます。空白欄 に値を記載後、”SET”ボタンをクリックしてください。(一旦ページ が切り替わるのは、HTTP サーバ FIT モジュールの仕様です。) ・THRESHOLD :動体の検出が行われにくい場合は設定 値を小さくし、過検出する場合は設定値を大きくしてください。 ・sensitivity :し明るさの変化が小さい箇所を検出したい場合 は設定値を小さくし、検出しなくする場合は設定値を大きくてくだ さい。

(33)

RX Driver Package Application

3-5. 2.の画面で「demo_ru4.htm」をクリックすると以下のような画面が表示されます。 [キャプチャ画面(歪み補正調整画面):歪み補正の設定を変更できます。] 上記各番号の上に置かれたビットマップをクリックすると 下記動作をします。 1. デモトップ画面へ遷移。 2. キャプチャ画面(ノーマル)へ遷移。 3. キャプチャ画面(人物検知)へ遷移。 4. キャプチャ画面(動体検知)へ遷移。 5. 当画面をリロード。 6. 歪み補正調整モードを維持したままキャプチャ更新停止。 この画面では、動体検知結果の表示と 2 つ機能のパラメータ 変更が可能です。 上段は、検知結果とパラメータの現在値(設定後の結果)を表 します。 ・function : 歪み補正機能状態を表示します。 ・H-correction :歪み補正を行う際の基準点X座標を画像中 心位置からのオフセットで設定します。(水平方向への補 正) ・V-correction :歪み補正を行う際の基準点Y座標を画像中 心位置からのオフセットで設定します。(垂直方向への補 正) 下段では、設定値を変更できます。空白欄に値を記載後、” SET”ボタンをクリックしてください。(一旦ページが切り替 わるのは、HTTP サーバ FIT モジュールの仕様です。) ・function : 歪み補正を有効にする場合は、1 を設定してく ださい。 ・H-correction : 画像中心からのオフセット値を設定しま す。左方向は負値、右方向は正値 ・V-correction : 画像中心からのオフセット値を設定しま す。上方向は負値、下方向は正値

(34)

RX Driver Package Application

5. LED 仕様

GR-KAEDE ボードには、4 個のチップ LED が搭載さ れています。 ※画像は、メインボードのみの状態です。実使用時 は、上部にカメラモジュールとメインボード接続用 の変換ボードが付きますので、点灯確認は側面から のご確認ください。 LED1 : 各初期設定終了後に点灯 LED2 : キャプタデータの microSD 保存モード時に 点灯します。(※1) LED3 : microSD カード挿入確定時に点灯 (メインボードの裏面に挿入口があり ます。) LED4 : 未使用。 ※1 本ソフトでは、画像処理、JPEG エンコードなど 複数処理段階があります。どの段階のデータを保存 するかはコンパイルオプションで切り替えられま す。 デフォルトは、JPEG エンコード後のデータ(WEB ブ ラウザに表示されるデータと同等)になります。 上部画像の○枠が”USER” Switch です。 ここを 3 秒押下することで、キャプチャデータの microSD 保存モードに入ります。 モードを抜ける場合もボタン押下になります。 【補足】キャプタデータのmicroSD(2G 以下)保存モード 各 LED の番号割り当ては上記の通りです。

(35)

RX Driver Package Application

6. メインプログラム仕様

6.1

ファイル一覧

メインプログラムのファイル一覧を以下に示します。 表9.1.1 メインプログラムファイル一覧 フォ ルダ 名 ファイル名 内容 src main.c メインソースファイル img_proc.c 画像処理ライブラリコントロール用ソースファイル このファイル内のAPIを通して、画像処理ソフトの初期設定や、人物検知 用APIなどを呼び出します。 img_proc.h 画像処理ライブラリコントロール用ヘッダファイル led.c LED初期化処理ソースファイル (未使用) led.h LED初期化処理ヘッダファイル ov_image_sensor.h 「8.4 ファイル一覧」参照 ov7740.c 「8.4 ファイル一覧」参照 このファイル内のAPIを通して、カメラモジュールの制御(IICバス経由) を行います。 ov7740config.h 「8.4 ファイル一覧」参照 r_dmac_apl.c DMAドライバコントロール用ソースファイル このファイル内のAPIを通して、FITモジュール「r_dmaca_rx」内のAPI を呼び出します。また、DMA転送終了割り込み時のコールバックAPIも 入っています。 r_dmac_apl.h DMAドライバコントロール用ヘッダファイル r_file_driver.c Webサーバ用ファイルシステムインタエースソースファイル このファイルを通して、Webブラウザで表示されるグラフィックデータ などを呼び出します。 r_file_driver.h Webサーバ用ファイルシステムインタエースヘッダファイル r_func_option.h 機能選択コンパイルオプション用ヘッダファイル (評価用) r_http_server_cgi_sample.c CGIサンプルソースファイル このファイル内のAPIは、WEBブラウザ上でパラメータ設定変更を行っ たときに呼ばれます。 r_jpeg_enc_apl.c 「8.4 ファイル一覧」参照 このファイル内のAPIを通して、JPEGエンコーダ「ipeg_encoder_rx」内の APIを呼び出します。 また、エンコード終了をしらせるコールバックAPI も本ファイル内にあります。 r_jpeg_enc_apl.h 「8.4 ファイル一覧」参照 r_mmc_apl.c MMCドライバコントロール用ソースファイル

(36)

RX Driver Package Application

このファイル内のAPIを通して、FITモジュール「r_pdc_rx」内のAPIを呼 び出します。カメラモジュールから画像取り込む為の設定や1フレーム取 り込み完了割り込み発生時のコールバックAPIも入っています。 r_pdc_apl.h 「8.4 ファイル一覧」参照 r_sci_iic_apl.c 簡易IICドライバコントロール用ソースファイル このファイル内のAPIを通して、FITモジュール「r_sci_iic_rx」内のAPI を呼び出します。 r_sci_iic_apl.h 簡易IICドライバコントロール用ヘッダファイル r_sys_time.c Webサーバ用システムタイマソースファイル (未使用) r_sys_time.h Webサーバ用システムタイマヘッダファイル r_tfat_drv_if.c 「表10.1 ユーザ定義関数一覧」参照 M3S_TFAT_TinyとMMC driverの間に入るインタフェースAPI群です。 sdram.c 外付けSDRAM用設定ソースファイル sdram.h 外付けSDRAM用設定ヘッダファイル

6.2

モジュール一覧

メインプログラムのモジュール一覧を以下に示します。 表9.2.1 メインプログラムモジュール一覧 ファイル名 モジュー ル名 内容 main.c main メインプログラムのメイン処理。 各FITモジュールの初期化処理を呼び出し、WebサーバとEthernetドラ イバのメイン処理を駆動する(無限ループによる周期起動)。 r_file_driver.c - 7.7ユーザ定義関数リファレンス(ファイル関連)」参照 クライアントPCからの要求を受けて呼ばれます。 r_http_server_cgi_sample.c - 「7.9サンプルCGI関数」参照 クライアントPCからの要求を受けて呼ばれます。 r_sys_time.c - 7.8ユーザ定義関数リファレンス(システムタイマ関連)」参照 (未使用) ※ 上記の他、主な割り込みとしては、 ・カメラモジュールからの1 フレーム取り込み完了割り込み(コールバック r_pdc_apl.c/pdc_frame_end( ) )

(37)

RX Driver Package Application

6.3

処理フロー

メインプログラムの各モジュールの処理フローを以下に示します。 1. main() ボードサポートパッケージ(BSP モジュール)のスタートアップルーチンから最初に呼ばれるメイン関数 です。

(38)

RX Driver Package Application

7. Web サーバ仕様

7.1

性能概要

本Web サーバは、簡易的な Web サーバを HTTP/1.0 の仕様に基づき実現しています。本 Web サーバは、ユー ザが組み込み製品向けに独自のWeb サーバプログラムを M3S-T4-Tiny (以下 T4 と称す)上で開発する際のベー スとなることを目的としています。本Web サーバは、SYN-FLOOD 攻撃等のアタックに対する対策等が盛り 込まれておらず、またセキュリティ機能を搭載していないため、インターネットに接続してwww ポート(80)を待ち受けてサーバ動作させるような用途には適しません。サンプルプログラムは事務所/工場内ネット ワーク等の悪意のあるアタッカーが存在しないローカルのネットワークにおいて限定して使用することを想 定しています。また扱えるファイル名はショートファイル名に限られます。 また、本Web サーバは、ファイル I/O を除くと特別なメモリを必要とせずマイコン内蔵メモリのみで動作 します。処理性能はRAM 容量に左右されますが、これを柔軟に設定出来るようにプログラム上で定義して います。本Web サーバでは、RX64M の ROM/RAM 容量に合わせ適切なメモリ設定を行っています。 Web サーバの性能は以下の通りです。 6.1.1 Web サーバ性能 項目 性能

ROM size 約6.6 Kbyte

RAM size 約36 Kbyte (約 5 Kbyte × 同時接続クライアント数+ α) 同時接続数 5 クライアント (設定可能)

CGI 機能 Web ブラウザからマイコンをリモートコントロール出来る機能。

7.2

動作概要

Web サーバは、インターネットで広く使われている一般的な Web サーバ(Apache 等)と比べ、実装機能を 最小限にとどめています。また組み込み用途で使いやすいようにノンブロッキングコールを用いて実装され ており、アプリケーション側は定期的にR_httpd() 関数を呼び出すのみで Web サーバの処理が可能です。 R_httpd() 関数では通信に使用する全通信端点(一般的にはソケットと呼ばれます)を監視し、切断状態になっ ていたら接続待ちに遷移させます。通信処理はT4 の API、_process_tcpip()で実行されていて、本 Web サーバ ではこのAPI をタイマ割り込みと Ethernet 割り込みの中で呼び出しています。_process_tcpip()は処理完了通知 のためコールバック関数を呼び出します。HTTP のデータ解析処理、データ生成処理はこのコールバックルー チンの中にあります。_process_tcpip()の起動を含むこれらの割り込み処理は送受信ドライバの性能やコール バックルーチンの実装次第で処理時間が大幅に変動するため、必要に応じてこれら割り込み処理の優先度を 下げたり、割り込み禁止にしたりしてアプリケーションの動作を優先させても構いません。 また、コンフィグファイル(r_t4_http_server_rx_config.h)のマクロ定義を変更することで Web サーバの挙動 をカスタマイズすることができます。

(39)

RX Driver Package Application

7.4

コンフィグレーション

コンフィグファイル(r_t4_http_server_rx_config.h)のマクロ定義を変更することで Web サーバの挙動をカス タマイズすることができます。

Server ヘッダフィールド:HTTPD_VERSION_CODE

Web ブラウザとの通信時に、Web ブラウザに送信する Server ヘッダフィールドに格納するデータを指定 することが出来ます。

ルートディレクトリ:ROOT_DIR

外部メモリ上のどのディレクトリをルートディレクトリにするかを指定することが出来ます。 例: #define ROOT_DIR “”

#define ROOT_DIR “user”

#define ROOT_DIR “user/root_dir”

インデックスページの表示/非表示:INDEXES Web ブラウザからディレクトリ指定された場合の挙動を指定することが出来ます。 1 を指定した場合、ディレクトリの内容をレスポンスします。 0 を指定した場合、DEFAULT_FILE_NAME で指定されているファイルをレスポンスします。 • インデックスページ非表示の場合にレスポンスするファイル:DEFAULT_FILE_NAME INDEXES に 0 を指定した場合にレスポンスするファイルです。 このファイルが見つからない場合は404 Not Found レスポンスを返します。 対応する Content-Type の数:MAX_EXTENSION 外部メモリに格納するファイルの拡張子リストの定義数です。 • 対応する Content-Type:EXTENSION_TYPE_TABLE_LIST 外部メモリに格納するファイルの拡張子リストです。 ここに定義していない拡張子のファイルを転送する場合、リストの先頭に定義されている拡張子の設 定でファイルをレスポンスします。 • 登録された CGI ファイルの個数:MAX_CGI_FILE CGI ファイル名と対応する内部関数のテーブル:CGI_FILE_NAME_TABLE_LIST インデックスページの生成に用いられる改行コード:LF_CODE

(40)

RX Driver Package Application

インデックスページに表示可能な最大ファイル数:MAX_FILE_LIST BODY_BUF_SIZE を超えないように設定してください。 • 受信バッファサイズ:RCV_BUF_SIZE ヘッダフィールド用の送信バッファサイズ:HDR_BUF_SIZE • ボディフィールド用の送信バッファサイズ:BODY_BUF_SIZE

7.5

ファイル一覧

Web サーバのファイル一覧を以下に示します。 表6.5.1 Web サーバファイル一覧 フォルダ名 ファイル名 内容

r_t4_http_server_rx/src r_http_server.c Web サーバソースファイル r_http_server_config.c Web サーバコンフィギュレーションソー

スファイル

r_http_server_config.h Web サーバコンフィギュレーションヘッ ダファイル

(41)

RX Driver Package Application

7.6

API リファレンス

7.6.1

R_httpd

Description アプリケーションは本関数を定期的に呼び出します。R_httpd()は、HTTPの通信に必要な通信端点を 管理します。本関数は通信端点の管理のみを行い、通信自体はT4が割り込み駆動により自動的に行 います。 Usage #include “r_t4_http_server_rx_if.h” void R_httpd (void); Parameters 無し Return Value 無し Remark 無し

7.6.2

R_httpd_pending_release_request

Description アプリケーションはCGI応答保留を解除する時に本関数を呼び出します。 使用方法は、6.9.1cgi_sample_functionを参照してください。 Usage #include “r_t4_http_server_rx_if.h”

void R_httpd_pending_release_request(ID cepid);

Parameters cepid 入力 通信端点ID Return Value 無し Remark 無し

7.6.3

R_T4_HTTP_SERVER_GetVersion

Description 本関数は、現在インストールされているモジュールのバージョンを返します。バージョン番号はコー ド化されています。最初の2 バイトがメジャーバージョン番号で、後の2 バイトがマイナーバージョ ン番号です。例えば、バージョンが4.25 の場合、戻り値は‘0x00040019’ となります。 Usage #include “r_t4_http_server_rx_if.h” uint32_t R_T4_HTTP_SERVER_GetVersion(void); Parameters 無し Return Value Webサーバのバージョン Remark

(42)

RX Driver Package Application

7.7

ユーザ定義関数リファレンス

(ファイル関連)

Web サーバは本関数群を呼び出します。ユーザはファイルシステムに応じて適切に本関数の処理内容を 定義します。また、Web サーバは本データ構造体を使用し、外部メモリの情報を取得することが出来ます。Web サーバでは TFAT を用いた例を定義しています。 6.7.1 ファイル関連ユーザ定義関数一覧 関数名 機能概要 関数名 機能概要 change_dir() 作業ディレクトリの変更 file_write() ファイルの書き込み file_close() ファイルのクローズ get_file_info() ファイル情報の取得 file_delete() ファイルの削除 get_file_list_info() ファイルリストの取得 file_open() ファイルのオープン get_file_size() ファイルサイズの取得 file_read() ファイルの読み込み make_dir() ディレクトリの作成 file_rename() ファイル名の変更 remove_dir() ディレクトリの削除 file_exist() ファイルの有無を確認 【注】上記関数群のうち本Web サーバで使用しない関数はグレーアウト表記にしています。

7.7.1

データ構造体

【日付情報構造体】 typedef struct date_info_ {

uint16_t year; // 2011, 2012, … uint8_t month[4]; // Jan, Feb, Mar, … uint8_t day; // 1-31

uint8_t day_of_the_week[4]; // Sun, Mon, Tus, … uint16_t hour; // 0-23

uint16_t min; // 0-59 uint16_t sec; // 0-59 }DATE_INFO;

【ファイルリスト構造体】 typedef struct file_list_ {

uint8_t file_name[13]; uint32_t file_size;

(43)

RX Driver Package Application

【マクロ定義】

#define FILE_WRITE (0x10) #define FILE_READ (0x01)

#define FILE_ATTR_RDO 0x01 /* Read only */ #define FILE_ATTR_HID 0x02 /* Hidden */ #define FILE_ATTR_SYS 0x04 /* System */ #define FILE_ATTR_VOL 0x08 /* Volume label */ #define FILE_ATTR_DIR 0x10 /* Directory */ #define FILE_ATTR_ARC 0x20 /* Archive */

7.7.2

change_dir

Description 本関数は引数で指定されたディレクトリパスを作業ディレクトリに設定します。ディレクトリパスは フルパスで指定します。作業ディレクトリの情報は、通信端点毎に管理されます。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t change_dir(uint8_t *dir_path);

Parameters dir_path 入力 指定されたディレクトリパスの格納先 Return Value -1 ディレクトリが存在しない 0 ディレクトリが存在する Remark dir_path の終端には’/’が付く場合と付かない場合があります。使用するファイルシステムにあわせて’/’ の有無を調整してください。

7.7.3

file_close

Description 本関数は引数で指定されたID 値に対応するファイルをクローズし、管理情報を破棄します。 Usage #include <stdint.h> #include “r_file_driver.h” int32_t file_close(int32_t file_id);

Parameters

file_id 入力 クローズするファイルの ID 値

Return Value

-1 エラー 0 正常終了

(44)

RX Driver Package Application

7.7.4

file_delete

Description 本関数は引数で指定されたファイルを削除します。ファイルの指定はルートディレクトリからのフル パスで指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_delete(uint8_t *file_path);

Parameters file_path 入力 ファイルのフルパスの格納先 Return Value -1 エラー 0 正常終了 Remark 無し

7.7.5

file_open

Description 本関数は第1 引数で指定されたファイルを第 2 引数で指定されたモードでオープンし、管理情報を 独自で保存します。また、保存した管理情報をWeb サーバが ID 参照できるように、戻り値として 管理情報のID 値を指定します。保存した管理情報はファイルのクローズ関数で ID 値が指定される まで保持しなければなりません。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_open(uint8_t *file_path, uint8_t mode_flag);

Parameters

file_path 入力 ファイルのフルパスの格納先

mode_flag 入力 ファイルオープンのモード(FILE_WRITE または FILE_READ)

Return Value -1 エラー 0 以上 オープンしたファイルの ID 値 Remark ファイルオープンの状態はファイルのクローズ関数で対応するID 値が指定されるまで保持しなけ ればなりません。

(45)

RX Driver Package Application

7.7.6

file_read

Description 本関数は第1 引数で指定された ID 値に対応するファイルデータを、第 2 引数が示すアドレスに、最 大第3 引数の値で示すサイズ分読み込まれます。第1引数の ID 値に対応する管理情報内のファイル ポインタは読み込んだ分だけ更新され、ファイルのクローズ関数が呼び出されるまで保持します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_read(int32_t file_id, uint8_t *buf, int32_t read_size);

Parameters file_id 入力 読み込むファイルの ID 値 buf 出力 読み込んだファイルデータの格納先 read_size 入力 読み込むファイルサイズ Return Value -1 エラー 0 以上 読み込んだデータサイズ Remark 無し

7.7.7

file_rename

Description 本関数は第1 引数で指定されたファイルまたはディレクトリを第 2 引数で指定された名前に変更しま す。第1 引数、第 2 引数ともにルートディレクトリからのフルパスで指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_rename(uint8_t *old_name, uint8_t *new_name);

Parameters old_name 入力 変更対象のファイルまたはディレクトリ new_name 入力 変更後の名前 Return Value -1 エラー 0 正常終了 Remark 無し

(46)

RX Driver Package Application

7.7.8

file_exist

Description 本関数は引数で指定されたファイルまたはディレクトリの有無を確認します。引数はルートディレク トリからのフルパスで指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_exist(uint8_t *file_path);

Parameters file_path 入力 有無を確認するファイルまたはディレクトリ Return Value -1 存在しない 0 存在する Remark 無し

7.7.9

file_write

Description 本関数は第1 引数で指定された ID 値に対応するファイルに対し、第 2 引数で指定されたアドレスか ら第3 引数で指定されたサイズ分のデータを書き込みます。第 1 引数の ID 値に対応する管理情報内 のファイルポインタは書き込んだ分だけ更新され、ファイルのクローズ関数が呼び出されるまで保持 します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t file_write(int32_t file_id, uint8_t *buf, int32_t write_size);

Parameters file_id 入力 書き込むファイルの ID 値 buf 入力 書き込むデータの先頭アドレス write_size 入力 書き込むサイズ Return Value -1 エラー 0 正常終了 Remark 無し

(47)

RX Driver Package Application

7.7.10

get_file_info

Description 本関数は第1 引数で指定された ID 値に対応するファイルの管理情報を読み込み、ファイルの日付情 報を第2 引数で示す日付情報構造体に書き出します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t get_file_info(int32_t file_id, DATE_INFO *date_info);

Parameters file_id 入力 読み込むファイルの ID 値 date_info 出力 日付情報の格納先 Return Value -1 エラー 0 正常終了 Remark 無し

7.7.11

get_file_list_info

Description 本関数は第1 引数で指定されたディレクトリパスに格納されているファイルまたはディレクトリの 情報を第2 引数で指定されたファイルリスト構造体に書き出します。一度に書き出す最大情報個数は3 引数で指定し、第 4 引数でファイルリストの読み出し開始位置を指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t get_file_list_info(uint8_t *dir_path, FILE_LIST *file_list, uint32_t num_file_list, int32_t read_index);

Parameters dir_path 入力 読み出すディレクトリパスの格納先 file_list 出力 読み出したファイルリストの格納先 リストの最後にはファイル名格納領域の先頭に’¥0’を格納します。 num_file_list 入力 一度に読み出すファイルリスト情報の最大個数 read_index 入力 ファイルリストの読み出し開始位置 Return Value -1 エラー 0 以上 読み出したファイルの個数 Remark 戻り値がnum_file_list より小さい値を返した場合は、ファイルリスト情報の読み出しが終了したこと を示し、num_file_list と同じ値を返した場合はファイルリスト情報に続きがあることを示します。本 関数はファイルリストの続きを読み出す際に、read_index にファイルリストの読み出し開始位置を指 定して呼び出します。 dir_path の終端には’/’が付く場合と付かない場合があります。使用するファイルシステムにあわせて’/’ の有無を調整してください。

(48)

RX Driver Package Application

7.7.12

get_file_size

Description 本関数は引数で指定されたID 値に対応するファイルの管理情報を読み込み、ファイルサイズを返し ます。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t get_file_size(int32_t file_id);

Parameters file_id 入力 読み込むファイルの ID 値 Return Value -1 エラー 0 以上 ファイルサイズ Remark 無し

7.7.13

make_dir

Description 本関数は引数で指定されたディレクトリを作成します。ディレクトリパスはフルパスで指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t make_dir(uint8_t *dir_path);

Parameters dir_path 入力 作成するディレクトリ名 Return Value -1 エラー 0 正常終了 Remark dir_path の終端には’/’が付く場合と付かない場合があります。使用するファイルシステムにあわせて’/’ の有無を調整してください。

(49)

RX Driver Package Application

7.7.14

remove_dir

Description 本関数は引数で指定されたディレクトリを削除します。ディレクトリパスはフルパスで指定します。 Usage #include <stdint.h> #include “r_file_driver.h”

int32_t remove_dir(uint8_t *dir_path);

Parameters dir_path 入力 削除するディレクトリ名 Return Value -1 エラー 0 正常終了 Remark dir_path の終端には’/’が付く場合と付かない場合があります。使用するファイルシステムにあわせて’/’ の有無を調整してください。

7.8

ユーザ定義関数リファレンス(システムタイマ関連)

Web サーバは本関数群を呼び出します。ユーザはシステムタイマを定義します。 表6.8.1 システムタイマ関連ユーザ定義関数一覧 関数名 機能概要 get_sys_time() システムタイマの先頭アドレス取得

7.8.1

データ構造体

【システムタイマ構造体】 typedef struct sys_time_ { uint32_t sec; uint32_t min; uint32_t hour; uint32_t day; uint32_t month; uint32_t year; }SYS_TIME;

(50)

RX Driver Package Application

7.8.2

get_sys_time

Description 本関数はシステムタイマの先頭アドレスを取得します。 Usage #include <stdint.h> #include “r_t4_http_server_rx_config.h” SYS_TIME *get_sys_time( void );

Parameters 無し Return Value システムタイマの先頭アドレス Remark システムタイマを管理する変数はユーザが定義してください。

(51)

RX Driver Package Application

7.9

サンプル CGI 関数

7.9.1

cgi_sample_function

Description

本関数は、”R_t4_http_server_config.h”の CGI_FILE_NAME_TABLE_LIST マクロで定義されている CGI 関数です。CGI_FILE_NAME_TABLE_LIST の第 2 要素(CGI 関数ポインタ) は、Web サーバで定義しcgi ファイルの URL を要求したときに呼び出されます。次に、HTTPd が CGI 関数を呼び出します。

HTTPd の動作は、戻り値によって変わります。 ケース:正常終了

CGI 処理が本関数で正常終了 ケース:内部エラー

CGI 処理エラーが本関数で発生 CGI process errors occur in this function. ケース: CGI 応答保留

CGI 処理が本関数で終了しない(応答保留)、CGI_FILE_NAME_TABLE_LIST の第 3 要素(CGI 関数ポインタ)は、CGI 処理終了するとき、ユーザが R_httpd_pending_release_request()を呼び出し たとき、呼び出されます。 Usage #include "r_t4_itcpip.h" #include "r_http_server_config.h" #include "r_t4_http_server_rx_if.h"

ER cgi_sample_function(ID cepid, void *res_info);

Parameters cepid 入力 CGI 関数実行の要求が有った通信端点 ID res_info 入力 (HTTPD_RESOURCE_INFO*)res_info->param Web ブラウザから要求のあった URL に付属するパラメータ 出力 (HTTPD_RESOURCE_INFO*)res_info->res.body 応答として返すHTML 文字列 出力 (HTTPD_RESOURCE_INFO*)res_info->res.body_size 応答として返すHTML 文字列の長さ Return Value -1 内部エラー -2 CGI 応答保留 0 正常終了 Remark なし

(52)

RX Driver Package Application

8. Web カメラ仕様

8.1

性能概要

GR-KAEDE 搭載のカメラモジュールから取り込んだ画像を「6. Web サーバ仕様」に沿って Web ブラウザ 上で表示させます。 表6.1.1 Web カメラ性能 項目 性能 ROM サイズ 1. カメラモジュール制御 2. 画像取り込み 3. JPEG エンコード 計:約15.1kbyte 約0.7kbyte 約3.0kbyte 11.4kbyte RAM サイズ 1. カメラモジュール制御 2. 画像取り込み 3. JPEG エンコード 4. JPEG ファイル格納領域 計:約257kbyte(stack 除く) 約5byte 50byte 1.7kbyte 200kbyte 画像サイズ(最終) QVGA(320x240)YCbCr4:2:2 取り込み周期 (画像処理機能オフ時) 120-130msec 取り込み周期 (画像処理機能オン時) T.B.D

8.2

動作概要

RX64M 内蔵のパラレルデータキャプチャユニット(以後、PDC)を使って、カメラモジュールから画像デー タを取得します。ピクセルクロックは約15MHz です。動作モードにより 320x240 YCbCr4:2:2:か、640x480 YCbCr4:2:2 のデータを取得します。取得タイミングは、フレーム間隔でなく、その後行われる画像処理、JPEG エンコード時間に依存します。Web ブラウザ上での更新周期も画像処理モードなどに応じて変更しています。

8.3

コンフィグレーション

8.3.1

r_pdc_rx_config.h

コンフィグファイル(r_pdc_rx_config.h)のマクロ定義を変更することでカメラモジュールからの画像データ 取り込み速度を変更することができます。

(53)

RX Driver Package Application

8.3.2

ov_image_sensor.h

カメラモジュールからの出力解像度を調整することができます。  水平解像度 :IMG_SENSOR_OUTPUT_WIDTH  垂直解像度:IMG_SENSOR_OUTPUT_HEIGHT

8.3.3

r_jpeg_enc_apl.h

JPEG エンコードの品質設定や JPEG エンコード後の格納バッファサイズ等の変更ができます。  品質設定[1-128] : JPEG_QUALITY 高いほど高品質な画像になります。(ファイルサイズも大きくなります)  カラーフォーマット:JPEG_OUTPUT_FMT JPEG ファイルにエンコード時のカラーフォーマットを定義しています。  JPEG ファイル展開用バッファ:JPEG_OUTPUT_AREA_SIZE JPEG ファイルを展開する領域のサイズを定義しています。

8.3.4

r_pdc_apl.h

 取り込み領域ブロック数 :D_PDC_MAX_PICTURE_BLOCK 本アプリケーションノートでは、3 ブロック(=3 フレーム)分確保しています。

8.4

ファイル一覧

フォルダ名 ファイル名 内容 src ov7740.c カメラモジュール制御用ソース ファイル ov_image_sensor.h カメラモジュール制御用ヘッダ ファイル ov7740config.h カメラモジュールレジスタ初期値 テーブル r_jpeg_enc_apl.c JPEG エンコード機能コントロー ル用ソースファイル r_jpeg_enc_apl.h JPEG エンコード機能コントロー ル用ヘッダファイル r_pdc_apl.c パラレルデータキャプチャ機能コ ントロール用ソースファイル r_pdc_apl.h パラレルデータキャプチャ機能コ ントロール用ヘッダファイル

(54)

RX Driver Package Application

8.5

API リファレンス

8.5.1

R_image_sensor_init

Description カメラモジュール内のイメージセンサの初期設定を行います。 Usage #include “ov_image_sensor.h” uint8_t R_image_sensor_init( void )

Parameters 無し Return Value 無し Remark 制御対象デバイスのスレーブアドレスは、ov_image_sensor.h の「IMG_SENSOR_SLV_ADDRESS」で 定義されています。初期設定値は、ov7740config.h に格納されています。

8.5.2

R_image_sensor_write

Description カメラモジュール内のイメージセンサに対してレジスタライトを行います。 Usage #include “ov_image_sensor.h”

uint8_t R_image_sensor_write( uint8_t reg_adr, uint8_t reg_data, uint32_t size )

Parameters reg_adr 入力 レジスタアドレス reg_data 入力 ライトデータ size 入力 ライトデータサイズ(1 固定) Return Value 1 固定 Remark 制御対象デバイスのスレーブアドレスは、ov_image_sensor.h の「IMG_SENSOR_SLV_ADDRESS」で 定義されています。本API は CGI 機能を使って Web ブラウザから制御させるデモ用として用意して います。イメージセンサへの通常制御は、「7.5.1 R_image_sensor_init」で完結します。

8.5.3

R_image_sensor_read

Description カメラモジュール内のイメージセンサに対してレジスタリードを行います。 Usage #include “ov_image_sensor.h”

uint8_t R_image_sensor_read( uint8_t reg_adr, uint8_t *reg_data, uint32_t size )

Parameters reg_adr 入力 レジスタアドレス reg_data 出力 リードデータ size 入力 リードデータサイズ Return Value 1 固定

(55)

RX Driver Package Application

8.5.4

R_jpeg_compress_init

Description JPEG エンコードライブラリに対して初期設定を行います。 Usage #include “r_jpeg_enc_apl.h” void R_jpeg_compress_init( void )

Parameters 無し Return Value 無し Remark 無し

8.5.5

R_get_jpeg_output_adr

Description JPEG エンコード後の格納エリアを複数持つ場合に、指定エリアの先頭アドレスを返します。 Usage #include “r_jpeg_enc_apl.h”

uint8_t *R_get_jpeg_output_adr( uint8_t area_num )

Parameters area_num 入力 JPEG ファイルの格納エリア番号 Return Value 指定エリアの先頭アドレス Remark 本アプリケーションノートでは、格納エリアを2 面持たせています。JPEG エンコードタイミングと WEB カメラの更新タイミングとで同期をとっていない為、エンコード処理中のエリアをアクセスさ せない目的です。

8.5.6

R_get_jpeg_output_area_num

Description JPEG エンコードライブラリで使用中の格納エリア番号を返します。 Usage #include “r_jpeg_enc_apl.h”

uint8_t R_get_jpeg_output_area_num( void )

Parameters 無し Return Value 格納エリア番号 Remark 本アプリケーションノートでは、格納エリアを2 面持たせています。JPEG エンコードタイミングと WEB カメラの更新タイミングとで同期をとっていない為、エンコード処理中のエリアをアクセスさ せない目的です。

8.5.7

R_pdc_init

Description PDC ユニットに対して初期設定を行います。 Usage #include “r_pdc_apl.h” void R_pdc_init( void )

(56)

RX Driver Package Application

8.5.8

R_pdc_create

Description PDC ユニットに対して初期設定を行います。 Usage #include “r_pdc_apl.h” void R_pdc_create ( void )

Parameters 無し Return Value 無し Remark 7.5.7 R_pdc_init」とセットで使用してください。本 API を後で呼んでください。 API 使用時は、GR-KAEDE にカメラモジュールが接続されていることを確認してから使用してくだ さい。未接続の場合は、本API から戻ってきません。

8.5.9

R_pdc_receive_again

Description パラレルデータ(画像データ)の取り込みを開始します。 Usage #include “r_pdc_apl.h”

void R_pdc_receive_again( uint8_t continue_flag );

Parameters Continue_flag 入力 (1 固定) Return Value 無し Remark 正常ケースでは、データの取り込みは1 フレームごとの単発で行われます。本 API を呼ぶことで取 り込みが再スタートとなります。実際の取り込み開始タイミングはV-SYNC と同期します。

(57)

RX Driver Package Application

9. 画像処理仕様

9.1

性能概要

本アプリケーションノートで実現できるカメラ活用ソリューションでは、人物検知機能、動体検知機能、 歪み補正機能が対応されています。Web サーバシステム、Web カメラシステムを使って、検知結果を Web ブラウザ上に表示します。本ソリューションでは、特定用途向けではなく性能などを確認してもらう為のデ モンストレーションとの位置付けとなり、対応画素数なども固定になります。 また、本処理を動作させるには、内蔵RAM の特定領域と外部メモリが必要となります。本ソリューション では、外部メモリとして外付けSDRAM を使用しています。 表8.1.1 スペック 項目 性能

ROM size 65Kbyte

RAM size 内蔵 :135Kbyte(stack 除く)

(特定領域:アドレス 0x00004100 ~ 0x00025ed7 含む) 外付け :3.5Mbyte

9.2

動作概要

8.2.1 機能一覧 No 機能 機能名称 概要 1 人物検知機能 人物切出し機能 画像の中から立っている人、及び座ってい る人が居る位置を切出す。 2 人数計測機能 画像を9エリアに分割し、各エリアに存在 する人数を計測する。 3 動体検知機能 画像比較機能 連続して取り込んだ3枚の画像をそれぞ れ比較し、変化があった箇所を抽出する。 4 歪み補正機能 画像補正機能 使用するカメラとレンズの組合せで求め た歪み特性データを用いて、画像の座標変 換を行う。

9.3

コンフィグレーション

無し

図 1.2.1 動作環境の例
表 1.3.2 FIT 対象外モジュール一覧 (renesas_sw_library フォルダ内 )

参照

関連したドキュメント

(5) 帳簿の記載と保存 (法第 12 条の 2 第 14 項、法第 7 条第 15 項、同第 16

(1) 令第 7 条第 1 項に規定する書面は、「製造用原料品・輸出貨物製造用原 料品減免税明細書」

事象発生から 7 時間後の崩壊熱,ポロシティ及び格納容器圧力への依存性を考慮し た上面熱流束を用いた評価を行う。上面熱流束は,図 4-4 の

事象発生から 7 時間後の崩壊熱,ポロシティ及び格納容器圧力への依存性を考慮し た上面熱流束を用いた評価を行う。上面熱流束は,図 4-4 の

本格納容器破損モードに至るまでの事象進展への対応,本格納容器破損モ

事象発生から 7 時間後の崩壊熱,ポロシティ及び格納容器圧力への依存性を考慮し た上面熱流束を用いた評価を行う。上面熱流束は,図 4-4 の

日本における社会的インパクト投資市場規模は、約718億円と推計された。2016年度の337億円か

原子炉格納容器圧力が限界圧力に達する前、又は、原子炉