本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 無線 LAN モジュール連携による WLAN ソリューション デモ操作マニュアル 32-BIT MICROCONTROLLER FM4 Family APPLICATION NOTE Publication Number MB9B560R_AN709-00004 CONFIDENTIAL Revision 1.0 Issue Date June 27, 2014 A P P L I C A T I O N N O T E 対象製品 本アプリケーションノートに記載されている内容の対象製品は、下記のとおりです。 2 CONFIDENTIAL シリーズ名 MB9B160R 品種型格 MB9BF168M/N/R MB9B360R MB9B460R MB9BF368M/N/R MB9BF468M/N/R MB9B560R MB9BF568M/N/R AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E Table of Contents 1. 2. 3. 4. 5. 6. はじめに ......................................................................................................................................... 6 無線 LAN デモシステム .................................................................................................................. 7 2.1 システム構成 ....................................................................................................................... 7 2.2 無線 LAN とは?.................................................................................................................. 8 2.2.1 接続方式 ............................................................................................................. 9 2.2.2 暗号方式 ........................................................................................................... 10 2.2.3 認証方式 ........................................................................................................... 10 2.3 デモシステム概要.............................................................................................................. 12 2.3.1 デモの事前設定 ................................................................................................ 14 2.3.2 デモの起動方法 ................................................................................................ 15 2.3.3 デモの動作紹介 ................................................................................................ 16 ハードウェア概要 ......................................................................................................................... 20 3.1 ハードウェア構成.............................................................................................................. 20 3.2 詳細仕様 ......................................................................................................................... 22 ソフトウェア概要 ......................................................................................................................... 25 4.1 ソフトウェア構成.............................................................................................................. 25 4.1.1 OS リソースについて....................................................................................... 26 4.1.2 ファイル構成 .................................................................................................... 27 4.2 詳細仕様 ......................................................................................................................... 29 4.2.1 SDIO カード対応 SD ドライバ ......................................................................... 30 4.2.2 無線 LAN ドライバ ........................................................................................... 36 4.3 デモソフトウェア.............................................................................................................. 44 4.3.1 コンフィグレーション設定について ................................................................ 44 4.3.2 Web サーバについて ........................................................................................ 46 その他 ........................................................................................................................................... 48 主な変更内容 ................................................................................................................................ 49 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 3 A P P L I C A T I O N N O T E Figure Figure 2-1 Figure 2-2 Figure 2-3 Figure 2-4 Figure 2-5 Figure 2-6 Figure 2-7 Figure 2-8 Figure 2-9 Figure 2-10 Figure 2-11 Figure 2-12 Figure 2-13 Figure 2-14 Figure 2-15 Figure 2-16 Figure 2-17 Figure 3-1 Figure 3-2 Figure 3-3 Figure 3-4 Figure 3-5 Figure 3-6 Figure 3-7 Figure 3-8 Figure 3-9 Figure 3-10 Figure 4-1 Figure 4-2 Figure 4-3 Figure 4-4 4 CONFIDENTIAL 無線 LAN デモシステム構成 ................................................................................................... 7 IEEE 802.11 規格の変遷 ......................................................................................................... 8 インフラストラクチャーモード ............................................................................................. 9 アドホックモード ................................................................................................................... 9 Micro AP モード ..................................................................................................................... 9 Open 認証(認証なし) ....................................................................................................... 10 WPA-PSK .............................................................................................................................. 11 WPA2-PSK ............................................................................................................................ 11 デモシステムの構成 ............................................................................................................. 12 メイン画面 ......................................................................................................................... 16 LED 操作画面 ..................................................................................................................... 16 FM4 評価ボードのスイッチによる操作 .............................................................................. 17 LED 操作ページによる操作 ................................................................................................ 17 Green を ON にした場合の画面例...................................................................................... 18 画像拡大/縮小の操作 .......................................................................................................... 18 画像拡大/縮小の画面遷移 ................................................................................................... 18 PDF ファイルのダウンロード ............................................................................................ 19 FM4 評価ボードと無線 LAN モジュールの接続 ................................................................... 20 FM4 評価ボード ................................................................................................................... 20 無線 LAN モジュール............................................................................................................ 20 開発時のハードウェア全体構成 ........................................................................................... 21 ハードウェアブロック図 ...................................................................................................... 21 電源インタフェース図.......................................................................................................... 23 専用電源ケーブル図 ............................................................................................................. 23 SD カードインタフェース .................................................................................................... 24 JTAG インタフェース........................................................................................................... 24 ADC/SW インタフェース ................................................................................................... 24 ソフトウェア・モジュール構成 ........................................................................................... 25 スタートアップとタスクの構成 ........................................................................................... 26 ソフトウェア概略フロー ...................................................................................................... 29 コンテンツファイル(fsdata.c)作成動作 ................................................................................ 46 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E Tables Table 2-1 Table 2-2 Table 2-3 Table 2-4 Table 2-5 Table 3-1 Table 4-1 Table 4-2 Table 4-3 Table 4-4 Table 4-5 デモシステム機材一覧 ........................................................................................................... 12 URL 一覧 ................................................................................................................................ 13 無線設定................................................................................................................................. 14 DHCP 機能の設定 .................................................................................................................. 14 IP アドレスの設定.................................................................................................................. 14 使用機材一覧 ......................................................................................................................... 22 タスクについて ...................................................................................................................... 26 タスク以外の OS 資源について ............................................................................................. 26 lwIP のコンフィグレーション ................................................................................................ 44 μT-REALOS のコンフィグレーション ................................................................................... 44 無線 LAN ドライバのコンフィグレーション ......................................................................... 45 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 5 A P P L I C A T I O N N O T E 1. はじめに 本デモ操作マニュアルでは、FM4 ファミリの高速処理と SD カードインタフェース機能を活用して、無線 LAN モジュールを制御し、PC やスマートフォン・タブレット等との無線 LAN 接続を行うデモの操作について説 明します。 FM4 の高速処理により、FM4 と無線 LAN モジュールのみのシンプルな構成で、TCP/IP プロトコルスタック処 理と Web サーバ機能を無線 LAN 接続環境で実現できます。 ネットワーク接続されていない民生機器や、有線 LAN にてネットワーク化していた産業機器を無線 LAN 化す る場合に、低コストで実現するネットワーク環境整備が課題となっています。 その課題を解決するために、ネットワーク環境整備に伴う施設コストや部材コストをできる限り抑えた状態 にし、アプリケーションに最適なシステム性能・機能を検討する必要があります。 本ソリューションが、この課題解決のアイデアとしてご検討いただければ幸いです。 本デモ操作マニュアルで説明する内容は、FM4 を搭載したボード(SK-FM4-U120-9B560)に、太陽誘電株式会 社(以降、太陽誘電) 製無線 LAN モジュール評価ボード(WBSAAVDX7)*を SD カードスロットに装着してネット ワーク通信を行うソリューションです。 SK-FM4-U120-9B560 に搭載されている FM4 の型格は下記のとおりです。 ・型格:MB9BF568R * 本書で使用している太陽誘電製無線 LAN モジュールの写真は、実際のものと異なります。 無線 LAN モジュールの詳細については、個別に太陽誘電株式会社にご相談ください。 本書に記載されている URL は記載時点のものです。URL は予告なく変更されることがあります。 6 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 2. 無線 LAN デモシステム 2.1 システム構成 無線 LAN デモシステムのシステム構成を以下に示します。 概要 下図のように、FM4 評価ボード+無線 LAN モジュールと無線 LAN 機能を備えた端末(下例:FM4MCU Evaluation Board)が、 アクセスポイントを介して無線 LAN で接続します。 この FM4 評価ボード+無線 LAN モジュール上で動作する Web サーバに、Web ブラウザが動作する端末(下例:PC, Smartphone)からネット ワーク接続を行います。これにより、このデモシステムでは、コンテンツの表示、ファイルのダウンロー ド、FM4 評価ボードの制御を行えます。 Figure 2-1 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 無線 LAN デモシステム構成 7 A P P L I C A T I O N 2.2 N O T E 無線 LAN とは? 無線 LAN について説明します。 無線 LAN は、データの送受信を無線通信で行う LAN(Local Area Network)の名称です。 現在では、無線 LAN と言えば IEEE 802.11 関連規格と読み替えても過言ではないほど IEEE 802.11 関連規格 の製品が普及しています。 無線 LAN の伝送速度は、技術進歩により飛躍的に向上しています。 Figure 2-2 IEEE 802.11 規格の変遷 160 IEEE 802.11n 40MHz/ch (*1) 140 Mbps 120 100 80 IEEE 802.11g 60 IEEE 802.11n 20MHz/ch (*1) (*2) (*3) IEEE 802.11n 20MHz/ch (*1) (*2) 40 20 IEEE 802.11 IEEE 802.11b 0 1997 1999 2003 2009 [Year] *1: IEEE 802.11n は、MIMO(アンテナ)数により伝送速度が増加します。 *2: IEEE 802.11n 20MHz 時は GI (ガードインターバル) の値によって転送速度が異なります。 *3: 本無線 LAN デモシステムでは、20MHz/ch GI=400ns の設定としております。 本無線 LAN デモシステムで対応している無線 LAN の伝送規格は以下です。 − IEEE 802.11b − IEEE 802.11g − IEEE 802.11n 本無線 LAN デモシステムで対応している無線 LAN のセキュリティの規格は以下です。 − IEEE 802.11 (WEP) − IEEE 802.11i draft (WPA-PSK) − IEEE 802.11i (WPA2-PSK) 無線 LAN は、2.4GHz 帯を利用しますが、各国によって利用可能なチャンネル数が異なります。 本無線 LAN デモシステムでは、米国等での利用を考えて、11ch を利用するように制御しています。 8 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N 2.2.1 N O T E 接続方式 無線 LAN の接続方式として、本デモシステムで使用可能なモードを説明します。 [ インフラストラクチャーモード ] アクセスポイントと呼ばれる中継機器を経由して無線 LAN 端末機器の間のデータ通信を行う方式です。 つまり、本方式では、無線 LAN 端末機器はデータ通信を行う相手の存在に関わらず、最初、アクセスポ イントと接続し、無線の伝送路を確立します。 Figure 2-3 インフラストラクチャーモード [ アドホックモード ] 無線 LAN 端末の機器同士で直接データ通信を行う方式です。 つまり、本方式では、アクセスポイントの設置は不要になります。 このモードは、11b までの規格です。11g および 11n の規格では規定が無く、ベンダ依存の機能として利 用となります。 Figure 2-4 アドホックモード [ Micro AP モード ] 無線 LAN 端末機器がアクセスポイントの機能を持ち、P2P で接続して直接データ通信を行う方式です。 このモードの名称は、各社さまざまですが本書内では Micro AP モードとします。 本方式では、アクセスポイントの設置は不要になります。 Figure 2-5 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL Micro AP モード 9 A P P L I C A T I O N 2.2.2 N O T E 暗号方式 無線 LAN のセキュリティにおける暗号方式として、本デモシステムで使用可能なモードを説明します。 [WEP] WEP は、暗号アルゴリズムとして RC4 をベースとした暗号方式です。現在では WEP に深刻な脆弱性が発 見されているため、使用するべきではありません。 WEP には 40bit モードと 104bit モードがあり、鍵長はそれぞれ固定となります。 (それぞれ 5 文字、13 文字) [TKIP] TKIP は、暗号アルゴリズムとして RC4 をベースとした暗号方式です。WEP の脆弱性を修正していますが、 暗号アルゴリズムとしては WEP と同等です。利用可能な場合は、次の項目に挙げた AES-CCMP を使用す べきです。 ユーザが指定した任意の長さのパスフレーズ(本無線 LAN デモシステムでは最大 32byte)から PMK(256bit) を生成し、鍵の素材として使用します。 [AES-CCMP] AES-CCMP は、暗号化アルゴリズムとして AES をベースとした暗号方式です。AES は、米国の標準暗号ア ルゴリズムとして規定されている方式です。 無線 LAN 機器の設定画面では、”CCMP”、”AES-CCM”、または単に ”AES” と表記されることも多くあり ます。 AES-CCMP でも、パスフレーズ・PMK の生成方法は TKIP と同じです。 2.2.3 認証方式 無線 LAN のセキュリティにおける認証方式として、本デモシステムで使用可能なモードを説明します。 [ Open 認証(認証なし)] Figure 2-6 Open 認証(認証なし) 本方式は、Open System 認証とも呼ばれます。無線 LAN 機器の認証要求に対して、かならず認証成功を返 却します。つまり、実質は認証なしとなります。 なお、暗号方式に WEP を使用する場合は、Open 認証となります。古くは WEP 向けの認証方式として Shared-key 認証が規定されていましたが、本方式に中間者攻撃の脆弱性が見つかり、かえってセキュリ ティが低下するため、現在では認証なしが推奨されています。 (ただし、WEP を使用すること自体が推奨さ れていません) このため、本無線 LAN デモシステムでは、Shared-key 認証には対応していません。 10 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E [ WPA-PSK ] Figure 2-7 WPA-PSK WPA-PSK は、IEEE 802.11i draft で公開された認証方式です。WPA2 が規定されるまでの暫定措置として定 められた方式です。 暗号方式は TKIP / AES-CCMP から選択可能です。WPA-PSK では TKIP のサポートは必須となっています。 一方、AES-CCMP のサポートは必須ではありません。 [ WPA2-PSK ] Figure 2-8 WPA2-PSK WPA2-PSK は、IEEE 802.11i で策定された認証方式です。暫定措置であった WPA-PSK を正式に規定しても ので基本的には WPA-PSK と変わりませんが、定義値が変わっているため互換性はありません。 また、WPA2-PSK では AES-CCMP のサポートが必須となっており、逆に TKIP のサポートは必須ではなく なりました。 とくに対向機器の制約がなければ、WPA2-PSK + AES-CCMP の利用を推奨します。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 11 A P P L I C A T I O N 2.3 N O T E デモシステム概要 デモシステムの概要として、デモシステムの構成、設定手順、動作紹介について示します。 本章では、FM4 評価ボードにデモプログラムが書き込まれている前提で説明します。 デモシステムの構成 Figure 2-9 デモシステムの構成 機材一覧 Table 2-1 デモシステム機材一覧 名称 No. 1 2 FM4 評価ボード 無線 LAN モジュール評価 ボード メーカ 数量 SPANSION 1 太陽誘電 1 BUFFALO 1 4 バッテリ ELECOM 1 5 USB ケーブル - 1 6 専用電源ケーブル - 1 7 USB ハブ - 1 - 1 - 1 9 (Android タブレット) Web ブラウザ端末 (スマートフォン) す。(SK-FM4-U120-9B560) す。 (WBSAAVDX7) アクセスポイント Web ブラウザ端末 FM4 MCU と SD カードスロットが搭載された FM4 評価ボードで SDIO インタフェースを備えた無線 LAN モジュール評価ボードで 3 8 内容 DHCP サーバ機能を持つ無線 LAN アクセスポイントです。 (WMR-300) FM4 評価ボード、無線 LAN モジュールおよび、アクセスポイン ト用のバッテリです。(DE-M01L-3530BK) FM4 評価ボードへの 5V 給電用の[USB Type A オス]-[USB Mini- B オス]仕様 USB ケーブルです。 無線 LAN モジュールへの 5V 給電用の専用電源ケーブルです。 FM4 評価ボード、無線 LAN モジュールへの 5V 給電用の USB ハ ブです。 デモ用コンテンツ表示用です。 デモ用コンテンツ表示用です。 注意事項: No.3~No.9 の機材は、特にメーカなどは問われません。 12 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E Web コンテンツ FM4 評価ボードに設定されている Web コンテンツの URL 一覧です。 Table 2-2 URL 一覧 ページ概要 メイン http://192.168.1.100/index.html LED 操作 http://192.168.1.100/ledctrl.cgi PDF http://192.168.1.100/SIL.pdf June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL URL 13 A P P L I C A T I O N 2.3.1 N O T E デモの事前設定 デモシステムを動作させるために、デモプログラムで既定されている無線設定と IP アドレス設定をアクセ スポイントに事前に設定してください。 以下にアクセスポイントの設定と Web ブラウザ端末の設定について説明します。 <アクセスポイントの設定> 【無線設定】 デモプログラムの無線設定を以下に示します。 Table 2-3 無線設定 項目 内容 チャンネル 自動 SSID FM4-WLAN_demo 認証 なし 暗号化 なし この設定に合わせて、アクセスポイントの設定画面より、設定してください。 注意事項:この設定は、暗号化設定されていませんので、SSID を選択するだけで接続可能です。 【DHCP 機能設定】 Web ブラウザ端末への IP アドレスを付与するために、DHCP 機能を有効にしてください。 設定内容を以下に示します。 Table 2-4 開始 IP 192.168.1.101(※) DHCP 機能の設定 台数 リース期間 64 台 1 時間 ※: 192.168.1.100 は FM4 評価ボードで使用しているため、除外されるように設定してください。 【IP アドレス設定】 デモプログラムでは、FM4 評価ボードの IP アドレスを 192.168.1.100 と固定しています。 そのため、アクセスポイントは FM4 評価ボードの IP アドレスに合わせたネットワークグループの IP アド レスを設定する必要があります。 各機材の IP アドレスは以下を想定しています。 Table 2-5 IP アドレスの設定 機材名 IP アドレス アクセスポイント 192.168.1.1 FM4 評価ボード 192.168.1.100 Web ブラウザ端末 DHCP により取得 <Web ブラウザ端末の設定> DHCP 機能を有効にしてください。 14 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E デモの起動方法 2.3.2 デモの起動手順を以下に示します。 <注意事項> 必ず以下の手順で電源を投入してください。 手順を実施する前では、バッテリにはアクセスポイントと USB ハブは未接続状態にしてください。 合わせて USB ハブには USB ケーブルと専用電源ケーブルは未接続状態にしてください。 1. アクセスポイントの電源投入 − バッテリを Power ON して、アクセスポイントをバッテリに接続することで電源を入れてください。 − Web ブラウザ端末から、アクセスポイントに事前設定した SSID を検出してください。 − Web ブラウザ端末を上記の SSID のアクセスポイントに接続してください。 2. 無線 LAN モジュールの電源投入 − FM4 評価ボードの SD カードスロットに無線 LAN モジュールを接続してください。 − USB ハブに専用電源ケーブルを接続してください。 − バッテリに USB ハブを接続し無線 LAN モジュールの電源を入れてください。 3. FM4 評価ボードへの電源投入 − USB ハブに USB ケーブルを接続した後、FM4 評価ボードの電源を入れてください。 − 初期化中は評価ボードの LED が赤色で点灯状態になります。 注意事項:LED が赤色で点滅している場合は、初期化が完了し、アクセスポイントを探している状 態です。この状態が長く続く場合は、アクセスポイントの設定を見直してください。 − Web サーバが起動し、Web ブラウザ端末からアクセス可能な状態になると、FM4 評価ボードの LED が緑色で点灯⇒消灯を 5 回繰り返して、消灯状態になります。 4. Web ブラウザ端末からのアクセス − FM4 評価ボードがアクセス可能な状態になったことを確認してから Web ブラウザ端末よりアクセス してください。 − アクセス可能な URL については、「Table 2-2 URL 一覧」を参照してください。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 15 A P P L I C A T I O N 2.3.3 N O T E デモの動作紹介 デモには以下の3つのデモがあります。 Demo 1 : LED ステータス変更 Demo 2 : 画像拡大/縮小 Demo 3 : PDF ダウンロード 各デモについて示します。 【デモ画面構成】 Figure 2-10 メイン画面 Figure 2-11 16 LED 操作画面 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 【Demo 1 : LED ステータス変更】 Demo 1 は、LED の点灯ステータスを WEB ブラウザ上に反映します。 LED を点灯/消灯させるには2つの方法で実行可能です。 1. FM4 評価ボードのスイッチによる操作 − FM4 評価ボード上のスイッチ「SW2」(3つ並んでいるスイッチの中央)を押すたびに、以下の パターンで点灯/消灯を繰り返します。 Figure 2-12 FM4 評価ボードのスイッチによる操作 注意事項:SW2 の横にある SW1 は”Reset”です。 誤って SW1 を操作してしまった場合は、起動手順に従って再度起動してください。 2. LED 操作ページによる操作 − URL 一覧の「LED 操作」ページからボードの LED を操作できます。 Figure 2-13 LED 操作ページによる操作 − 各色の ON のボタンをクリックすると、対応する色の LED が点灯します。(組合せは自由です。) − 一度 ON にすると、ON のボタンは操作できなくなり、代わりに OFF のボタンが操作できるようにな ります。 − LED を消灯する場合は、OFF のボタンをクリックしてください。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 17 A P P L I C A T I O N N O T E 操作による WEB ブラウザ画面例を示します。 Figure 2-14 Green を ON にした場合の画面例 【Demo 2 : 画像拡大/縮小】 Demo 2 は、デモ用パンフレットの表示をボード上のアナログ入力から画像の拡大/縮小を行います。 画像の拡大/縮小は、評価ボード上の”青色のダイヤル”を操作することで、アナログ入力値の状態に合わせ てブラウザ上の画像が拡大/縮小されます。 Figure 2-15 画像拡大/縮小の操作 Figure 2-16 画像拡大/縮小の画面遷移 18 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 【Demo 3 : PDF ダウンロード】 Demo 3 は、Demo 2 で表示されている画像の PDF ファイルをダウンロードできます。 ダウンロードした PDF ファイルを閲覧するために、Web ブラウザ端末には PDF ファイルを閲覧するソフト が必要です。 Web ブラウザ端末の無線 LAN 設定については、 「Table 2-3 無線設定」を参照してください。 ダウンロードには2つの方法があります。 1. Web ブラウザでの URL を直接入力 URL 一覧の PDF ページの URL を、Web ブラウザのアドレス入力フィールドに直接入力してください。 2. デモのメイン画面からリンクをクリック Figure 2-17 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL PDF ファイルのダウンロード 19 A P P L I C A T I O N N O T E 3. ハードウェア概要 3.1 ハードウェア構成 ハードウェア構成を以下に示します。 FM4 評価ボードと無線 LAN モジュールの構成 [FM4 評価ボードと無線 LAN モジュールの接続] Figure 3-1 FM4 評価ボードと無線 LAN モジュールの接続 FM4(MB9B560) SDIO Interface Wireless LAN Module [FM4 評価ボード] Figure 3-2 FM4 評価ボード [無線 LAN モジュール] Figure 3-3 20 無線 LAN モジュール AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 開発時のハードウェア全体構成 Figure 3-4 開発時のハードウェア全体構成 ハードウェアブロック図 FM4 と無線 LAN モジュールを連携して動作させるハードウェアについて説明します。 − WLAN module FM4 と無線 LAN モジュールは SDIO インタフェースで通信します。FM4 は SD カードインタ フェースの SD Host 機能を使用して SDIO 仕様で動作します。 − IAR J-Link ICE FM4 評価ボードと IAR 製 J-Link ICE は 20pin の JTAG インタフェースで接続し、PC と IAR 製 J-Link ICE は USB で接続します。 FM4 の内蔵 Flash への書き込みと、プログラムのデバッグに使用します。 使用に際しては、IAR Embedded Workbench が必要です。 − Regulated DC Power Supply 5V の直流電源を出力できるものを接続してください。 Figure 3-5 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL ハードウェアブロック図 21 A P P L I C A T I O N 3.2 N O T E 詳細仕様 ハードウェアの詳細仕様について示します。 開発時に用意する機材一覧 Table 3-1 使用機材一覧 名称 No. 1 FM4 評価ボード メーカ SPANSION 型格 SK-FM4-U120-9B560 内容 FM4 評価ボード本体です。 無線 LAN モジュール評価ボードです。 2 無線 LAN モジュール評 価ボード <注意事項> 太陽誘電 WBSAAVDX7 このモジュールを購入すると赤と青の電源 ケーブルが付属されています。 無線 LAN モジュール評価ボードへの電源を供 給します。5V の直流電源を出力できるものを 使用してください。 3 安定化電源 - - <注意事項> 安定化電源の代替として、専用電源ケーブルに より 5V の電源供給を行うことも可能です。 プログラムの書き込みやデバッグに使用しま 4 IAR J-Link ICE IAR J-Link-ARM す。 IAR Embedded Workbench が動作する PC を使用 してください。 USB ポートは、最大で 3 つ使用します。 5 PC - - 1 つ目:FM4 評価ボードの電源供給。 2 つ目:J-Link との接続。 3 つ目:無線 LAN モジュールの電源供給。 [USB Type A オス]-[USB Mini- B オス]のケーブ 6 22 USB ケーブル - - ルを使用してください。 FM4 評価ボードの電源供給用です。 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 搭載部品 搭載部品について示します。 [FM4 評価ボード] 以下の Web サイトを参照してください。 http://www.spansion.com/Support/microcontrollers/developmentenvironment/Pages/board-SK-FM4-U120-9B560.a spx [無線 LAN モジュール] 以下の Web サイトを参照してください。 https://www.yuden.co.jp 購入した際に、同梱されていますドキュメントを参照してください。 使用するインタフェースについて 各ボードで使用しているインタフェースについて示します。 [ 電源 ] Figure 3-6 Figure 3-7 電源インタフェース図 専用電源ケーブル図 本ハードウェアでは、FM4 評価ボードと無線 LAN モジュール評価ボードに、それぞれ 5V の電源を供給 する必要があります。 FM4 評価ボードへの電源供給は、PC と USB ケーブルを接続することで供給します。 無線 LAN モジュール評価ボードへの電源供給は、安定化電源と接続することで供給します。 電源は 5V ですので、専用電源ケーブルを作成することでも供給可能です。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 23 A P P L I C A T I O N N O T E [ SD カードインタフェース ] Figure 3-8 SD カードインタフェース SD カードスロットは、プッシュオン・プッシュオフ機構のため、挿入時または抜去時に一度奥まで押し 込んでください。 [ JTAG インタフェース ] Figure 3-9 JTAG インタフェース IAR 製 J-Link ICE と接続する 20pin の JTAG です。 [ ADC/SW インタフェース ] Figure 3-10 ADC/SW インタフェース ADC は、デモの伸縮表示で使用し、ダイヤル式です。 SW は、デモの LED 表示変更で使用し、プッシュ式です。 24 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 4. ソフトウェア概要 4.1 ソフトウェア構成 ソフトウェア構成を以下に示します。 概要 本デモシステムのソフトウェアは、Real Time OS(RTOS)上で動作し、TCP/IP プロトコルスタック, 無線 LAN ドライバ,FM4 ファミリ用ペリフェラルドライバをプラットフォームとして、デモアプリ ケーションを動作させます。 ブロック図 各種ソフトウェアの部品を階層イメージで示します。 Figure 4-1 ソフトウェア・モジュール構成 [Application] Web サーバー機能として、lwIP-contrib 1.4.1 を使用します。 [TCP/IP] TCP/IP プロトコルスタックとして、lwIP STABLE-1.4.1 を使用します。 [RTOS] Real Time OS として、μT-REALOS/M4F for EWARM を使用します。 [PDL および SDIO Driver In PDL] FM4 のペリフェラルデバイスドライバとして、PDL Project for FM4 Family ver1.0 と本デモシステム用 に拡張した SDIO Driver を使用します。 [WLAN Driver] 無線 LAN モジュールと SDIO インタフェースを介して通信を行い、無線 LAN モジュールを制御しま す。 契約によりソースコードの開示ができないため、ライブラリ形式で提供します。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 25 A P P L I C A T I O N N O T E OS リソースについて 4.1.1 Figure 4-2 スタートアップとタスクの構成 Table 4-1 タスクについて 優先度 10 タスク名 Wireless LANDriver 4096(*) 処理内容 無線 LAN ドライバのメインタスクです。 無線 LAN モジュールに対して送受信の制御を行います。 Task 20 TCP/IP Stack Task 29 TCP/IP Event Task 30 スタック サイズ(Byte) Application Task 40 Idle Task 98 Initial Task 4096(*) TCP/IP スタックのメインタスクです。 TCP/IP のプロトコル処理を行います。 4096(*) TCP/IP スタックを起動した後、無線 LAN ドライバからのイベント通 知を待ち受け、対応する TCP/IP スタックの処理を起動します。 4096(*) ユーザのメインタスクです。 各種初期化処理を呼び出します。 RTOS のアイドル処理のためのタスクで、基本的に無処理となります。 256(*) 削除しないでください。 1024(*) RTOS の初期起動タスクです。 *: 各タスクのスタックサイズについては、最適化を実施していません。 Table 4-2 タスク以外の OS 資源について タスク名 Wireless LAN Driver Task 利用資源 イベントフラグ x 1、メールボックス x 1 ミューテックス(*) TCP/IP Stack Task セマフォ(*) メッセージバッファ(*) TCP/IP Event Task イベントフラグ x 1 Application Task 利用資源はありません。 Idle Task 利用資源はありません。 Initial Task 利用資源はありません。 *: TCP/IP スタックタスクの利用資源は lwIP から動的に呼び出されます。そのため、動作する機能 によって使用する資源数は増減します。本無線 LAN デモシステムでは、コンフィグレー ションで設定している最大数で十分ですが、機能を拡張する場合は、コンフィグレーションの 最大数を調整してください。 26 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N 4.1.2 N O T E ファイル構成 本アプリケーションのファイル構成は下記のとおりです。 なお、一部変更していないファイルや変更ファイルが無いディレクトリについては省略しています。 :ユーザ追加実装ディレクトリ +---app +---pdl_user.h :FM4 PDL 設定ヘッダファイル +---user_main.c :ユーザメインソースファイル +---user_main.h :ユーザメインヘッダファイル :FM4-PDL ディレクトリ +---fm4 :FM4-PDL の共通部ディレクトリ +---common +---base_types.h :基本型共通ヘッダファイル +---mb9abxxx.h :ペリフェラル定義ヘッダファイル +---mcu.h :MCU 共通ヘッダファイル +---system_mb9abxxx.c :システム設定ソースファイル +---system_mb9abxxx.h :システム設定定義ヘッダファイル :PDL ライブラリディレクトリ +---library :PDL コアドライバディレクトリ +---driver :PDL 割込みハンドラソースファイル +---interrupts.c +---sd :SD カードインタフェースドライバディレクトリ +---sd.c :SD カードインタフェースドライバソースファイル +---sd.h :SD カードインタフェースドライバヘッダファイル +---sd_cfg.h :SD カードインタフェースドライバ構成ヘッダファイル :PDL 上位ドライバディレクトリ +---highlevel +---sd :SD 上位ドライバディレクトリ +---sdcard.c :SD メモリカード処理ソースファイル +---sdcard.h :SD メモリカード処理ヘッダファイル +---sdcmd.c :SD コマンド共通処理ソースファイル +---sdcmd.h :SD コマンド共通処理ヘッダファイル +---sdiocard.c :SDIO カード処理ソースファイル +---sdiocard.h :SDIO カード処理ヘッダファイル +---lwip :lwIP ソフトウェアのコア部ディレクトリ +---lwip_contrib :lwIP ソフトウェアの周辺部ディレクトリ +---apps :lwIP ソフトウェアのアプリケーションプロトコル部ディレクトリ +---httpserver_raw :lwIP HTTP server ディレクトリ +---fsdata.c :コンテンツ C 言語ソースファイル +---httpd_structs.h :HTTP ヘッダ用文字列定義ヘッダファイル +---sample_demo_contetns :コンテンツ C 言語ソース生成ディレクトリ +---fs +---lwip_usr +---ports +---fm4 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL :デモコンテンツ格納ディレクトリ :lwIP ソフトウェアのユーザ実装ディレクトリ :ユーザ実装ディレクトリ :FM4 実装ディレクトリ 27 A P P L I C A T I O N +---ajax.c :lwIP の HTTP server AJAX 処理ソースファイル +---app_lwip.c :lwIP のアプリケーション実装部 +---ethif.c :lwIP の入出力関連の低レベル実装部 +---sys_arch.c :lwIP のアーキテクチャ依存の低レベル実装部 +---include :lwIP のインクルードディレクトリ +---app :lwIP のアプリ実装関連のインクルードディレクトリ +---ajax.h :lwIP の HTTP server AJAX 処理ヘッダファイル +---app_lwip.h :lwIP のアプリケーション実装部 ヘッダファイル +---ethif.h :lwIP の入出力関連の低レベル実装部 ヘッダファイル +---arch :lwIP のアーキ実装関連のインクルードディレクトリ +---cc.h :lwIP のアーキテクチャ環境定義ファイル +---lwipopts.h :lwIP のオプション定義ファイル +---perf.h :lwIP の perf 関連ヘッダファイル +---sys_arch.h :lwIP のアーキテクチャ依存の低レベル実装部 ヘッダファイル :開発環境プロジェクトディレクトリ +---proj +---IAR +---config +---mb9bf568.icf :IAR 用(JTAG)プロジェクトディレクトリ :コンフィグレーションファイルディレクトリ :リンカ設定ファイル +---reset.mac :起動マクロファイル +---flashloader :フラッシュローダーディレクトリ +---FlashLoader.board :フラッシュローダー設定ファイル指定ファイル +---FlashMB9B560.flash :フラッシュローダー設定ファイル +---FlashMB9B560.flash :フラッシュローダー起動マクロファイル +---FlashMB9B560.out :フラッシュローダー本体 +---wlan_release.ewd :プロジェクト設定ファイル +---wlan_release.ewp :プロジェクトファイル +---wlan_release.eww :ワークスペースファイル +---utrealos :μT-REALOS ディレクトリ +---utrealos_usr :μT-REALOS のユーザ実装ディレクトリ +---icrt0.asm :スタートアップファイル +---os.c :μT-REALOS の低レベル実装ソースファイル +---os.h :μT-REALOS の低レベル実装ヘッダファイル +---startup_mb9xfxxx.s :割り込みベクタ定義ファイル +---cfg :μT-REALOS のコンフィグレーションディレクトリ +---config.a :μT-REALOS のコンフィグレーションファイル +---wlancfg.tcf :μT-REALOS のコンフィグレーション定義ファイル +---wlanlib 28 N O T E :無線 LAN ドライバライブラリディレクトリ +---wlan.h :無線 LAN ドライバライブラリヘッダファイル +---wlan_conf.c :無線 LAN ドライバコンフィグレーションソースファイル +---wlanlib.a :無線 LAN ドライバライブラリファイル AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N 4.2 N O T E 詳細仕様 詳細仕様を以下に示します。 動作および概略フロー Figure 4-3 ソフトウェア概略フロー API 仕様 < μT-REALOS > μT-REALOS のドキュメントを参照してください。 < lwip Protocol Stack > lwIP の公式プロジェクトが発行している IwIP に関するドキュメントを参照してください。 lwIP の公式プロジェクトの URL を以下に示します。 http:://savannah.nonqnu.org/projects/lwip/ lwIP は2つのパッケージで構成されています。”lwip”は公式プロジェクトで開発された TCP/IP スタック を含み、”contib”には追加コードが含まれています。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 29 A P P L I C A T I O N N O T E < PDL > PDL のドキュメントを参照してください。 PDL のドキュメントは、以下の URL から Peripheral Driver Library をダウンロードした圧縮ファイル内に あります。 http://www.spansion.com/Support/microcontrollers/sampleprogram/Pages/fm4.aspx SDIO カード対応のため、SD ドライバを拡張しています。 拡張した SD ドライバの API については「4.2.1 SDIO カード対応 SD ドライバ」で説明します。 < 無線 LAN ドライバ > 無線 LAN ドライバの API については「4.2.2 無線 LAN ドライバ」で説明します。 4.2.1 SDIO カード対応 SD ドライバ 構造体定義 項目 概要 書式 30 説明 コールバック設定情報 typedef struct stc_sd_config_cb { func_ptr_sd_arg32_t pfnTxCallback; func_ptr_sd_arg32_t pfnRxCallback; func_ptr_sd_arg32_t pfnWakeupCallback; func_ptr_sd_arg32_t pfnErrorCallback; func_ptr_sd_arg32_t pfnCardIntCallback; func_ptr_sd_arg32_t pfnErrorResponseCallback; } stc_sd_config_cb_t; 説明 pfnTxCallback : Tx 発生時の Callback 関数(未使用) pfnRxCallback : Rx 発生時の Callback 関数(未使用) pfnWakeupCallback : Wakeup 発生時の Callback 関数(未使用) pfnErrorCallback : Error 発生時の Callback 関数(未使用) pfnCardIntCallback : Card Interrupt 発生時の Callback 関数 pfnErrorResponseCallback : コマンドレスポンスのエラー発生時の Callback 関数 備考 pfnCardIntCallback, pfnErrorResponseCallback 以外への設定は無効です AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 項目 概要 書式 説明 説明 SDIO カード情報 typedef struct stc_sdiocard_info { en_sdio_init_type_t init_type; en_sdio_init_io_t io_init; en_sdio_init_mem_t mem_init; uint8_t flg; uint32_t OCR; uint16_t RCA; en_sdio_card_type_t card_type; } stc_sdiocard_info_t; init_type : Sdio Initialize Type PowerOn Power On ReInitMemory Re-Init Memory ReInitIO Re-Init IO io_init : Sdio IO Initialize Select NotUseIO Not Use IO(IO Initialize Disable) UseIO Use IO(IO Initialize Enable) mem_init : Sdio Memory Initialize Select NotUseMem Not Use Memory(Memory Initialize Disable) UseMem Use Memory(Memory Initialize Enable) flg : Initalize Status Flag OCR : Operation Condition Register RCA : Relative Card Address card_type : Sdio Card Type SDSC_MemOnly SDHCXC_MemOnly SD_IOOnly SDSC_Combo SDHCXC_Combo SDSC Memory Only Card SDHC or SDXC Memory Only Card SD IO Only Card SDSC Combo Card SDHC or SDXC Combo Card 備考 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 31 A P P L I C A T I O N 項目 N O T E 説明 概要 書式 DMA 転送情報 typedef struct stc_sdh_dma_info { en_sd_card_type_t sdc_type; en_sdh_dma_type_t dma_type; uint32_t data_addr; uint32_t data_addr_h; en_sd_boundary_t sdma_bound; } stc_sdh_dma_info_t; 説明 sdc_type : SD Card Type SDH_SD_CARD SD Memory Card SDH_SDIO_CARD SDIO Card dma_type : SD Host DMA Type SDH_SDMA SDMA SDH_ADMA ADMA2 data_addr : DMA データアドレス SDMA の場合:Buffer Address ADMA2 の場合:ディスクリプタの下位 32bit アドレス data_addr_h : DMA データアドレス(64bit システムのための領域) SDMA の場合:不要 ADMA2 の場合:ディスクリプタの上位 32bit アドレス sdma_bound : SDMA のためのバウンダリ指定 BOUND_4K BOUND_8K BOUND_16K BOUND_32K BOUND_64K BOUND_128K BOUND_256K BOUND_512K 備考 32 ADMA2 のディスクリプタについて ・一つのディスクリプタ領域は、以下の構成です。 属性情報領域(attr)[16bit]+データ長領域(len)[16bit]+データ格納アドレス(addr)[32bit] ・attr はドライバ内で自動的に設定しますので、呼び出し元では 0 に設定してください。 ・ディスクリプタ領域は、link 属性でない限り連続した領域にしてください。 ・link 属性のディスクリプタを設定する場合は、len を 0 に設定してください。 このとき、addr で示される領域はディスクリプタ領域となります。 ・ディスクリプタには、必ず終端判別用ディスクリプタを付加してください。 終端判別用ディスクリプタは、len を 0、addr を 0(NULL)に設定してください。 ディスクリプタ例) AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E API 一覧 [SD カードインタフェースドライバ API] API 仕様 概要 書式 入力 返却値 備考 説明 SD スピードモードの High-Speed への切替 void Sd_HighspeedChange(void) なし なし 初期化完了後に、カード側が High-Speed をサポートしている場合に、本 API を呼び出して ください。 API 仕様 説明 概要 書式 割込みコールバック関数の設定 en_result_t Sd_SetIntCallback(stc_sd_config_cb_t* pstcSdCbCfg) 入力 pstcSdCbCfg : コールバック設定情報のポインタ (コールバック設定情報の詳細は、構造体の説明を参照してください) エラーコード Ok 正常終了 (本 API では常に Ok が返却されます) 返却値 備考 Sd_HostInit()を呼び出し後に、 割込みコールバックの設定が必要な場合に、本 API を呼び出してください。 pfnCardIntCallback, pfnErrorResponseCallback 以外への設定は無効です。 API 仕様 説明 概要 書式 CardInterrupt の有効化 en_result_t Sd_EnableCardInt(volatile stc_sd_t *pstcSd) 入力 pstcSd 返却値 エラーコード Ok 正常終了 (本 API では常に Ok が返却されます) 備考 Sd_HostInit()を呼び出し後に、CardInterrupt を有効化する場合に、本 API を呼び出してくだ さい。 Sd_SetIntCallback で pfnCardIntCallback を設定している場合には、割込み処理終了後、 本 API で有効化することで、次の CardInterrupt を受けることが可能になります。 : SD カードインタフェース レジスタ情報のポインタ API 仕様 説明 概要 書式 CardInterrupt の無効化 en_result_t Sd_DisableCardInt(volatile stc_sd_t *pstcSd) 入力 pstcSd 返却値 エラーコード Ok 正常終了 (本 API では常に Ok が返却されます) 備考 Sd_HostInit()を呼び出し後に、CardInterrupt を無効化する場合に、本 API を呼び出してくだ さい。 : SD カードインタフェース レジスタ情報のポインタ June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 33 A P P L I C A T I O N N O T E [SDIO 上位レベルドライバ API] API 仕様 概要 書式 入力 返却値 備考 API 仕様 概要 書式 入力 返却値 備考 API 仕様 概要 書式 入力 返却値 備考 34 説明 SDIO カードの挿抜状態取得 boolean_t Sdiocard_Detect(void) なし 挿抜状態 TRUE 挿入状態 FALSE 抜去状態 Sd_HostInit()を呼び出し後に、本 API を呼び出してください。 説明 SDIO の初期化 int32_t Sdiocard_Init(stc_sdiocard_info_t *pstcSdiocardInfo) pstcSdiocardInfo : SDIO カード情報へのポインタ (SDIO カード情報の詳細は、構造体の説明を参照してください) エラーコード E_SDIO_OK 正常終了 E_SDIO_NO_CARD エラー終了(SDIO カードが挿さっていません) E_SDIO_INIT エラー終了(SDIO カードの初期化に失敗しました) Sd_HostInit()を呼び出し後に、本 API を呼び出してください。 説明 CMD52 の送受信 int32_t Sdiocard_Cmd52(stc_sdiocard_info_t *pstcSdiocardInfo, const uint32_t* pu32arg, uint32_t* pu32res) pstcSdiocardInfo : SDIO カード情報へのポインタ (SDIO カード情報の詳細は、構造体の説明を参照してください) pu32arg : SDIO CMD52 argument へのポインタ pu32res : SDIO CMD52 response 格納領域へのポインタ エラーコード E_SDIO_OK 正常終了 E_SDIO_NO_CARD エラー終了(SDIO カードが挿さっていません) E_SDIO_PARAMETER エラー終了(パラメータが不正です) E_SDIO_WRITE エラー終了(ライト動作に失敗しました) E_SDIO_READ エラー終了(リード動作に失敗しました) Sdiocard_Init ()を呼び出し後に、本 API を呼び出してください。 本 API は、SD コマンド共通処理関数の Sdcmd_SendCmd を使用して CMD52 の送受信処理 を行います。 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N API 仕様 概要 書式 N O T E 説明 CMD53 の送受信(PIO 転送) int32_t Sdiocard_Cmd52(stc_sdiocard_info_t *pstcSdiocardInfo, const uint32_t* pu32arg, uint32_t* pu32res, uint8_t* pu8buf) 入力 pstcSdiocardInfo : SDIO カード情報へのポインタ (SDIO カード情報の詳細は、構造体の説明を参照してください) pu32arg : SDIO CMD52 argument へのポインタ pu32res : SDIO CMD52 response 格納領域へのポインタ pu8buf : 送信データへのポイント、または受信データ格納領域へのポインタ 返却値 エラーコード E_SDIO_OK 正常終了 E_SDIO_NO_CARD エラー終了(SDIO カードが挿さっていません) E_SDIO_PARAMETER エラー終了(パラメータが不正です) E_SDIO_WRITE エラー終了(ライト動作に失敗しました) E_SDIO_READ エラー終了(リード動作に失敗しました) Sdiocard_Init ()を呼び出し後に、本 API を呼び出してください。 本 API は、SD コマンド共通処理関数の Sdcmd_SendCmd/Sdcmd_TxData/Sdcmd_RxData を使 用して CMD53 の PIO 転送による送受信を行います。 備考 API 仕様 概要 書式 入力 返却値 備考 説明 CMD53 の送受信(DMA 転送) int32_t Sdiocard_Cmd53_dma(stc_sdiocard_info_t *pstcSdiocardInfo, const uint32_t* pu32arg, uint32_t* pu32res, stc_sdh_dma_info_t *pstcDmaInf) pstcSdiocardInfo : SDIO カード情報へのポインタ (SDIO カード情報の詳細は、構造体の説明を参照してください) pu32arg : SDIO CMD52 argument へのポインタ pu32res : SDIO CMD52 response 格納領域へのポインタ pstcDmaInf : DMA 転送情報へのポインタ (DMA 転送情報の詳細は、構造体の説明を参照してください) エラーコード E_SDIO_OK 正常終了 E_SDIO_NO_CARD エラー終了(SDIO カードが挿さっていません) E_SDIO_PARAMETER エラー終了(パラメータが不正です) E_SDIO_WRITE エラー終了(ライト動作に失敗しました) E_SDIO_READ エラー終了(リード動作に失敗しました) Sdiocard_Init ()を呼び出し後に、本 API を呼び出してください。 本 API は、SD コマンド共通処理関数の Sdcmd_SendCmd_dma を使用して CMD53 の DMA 転送による送受信を行います。 本 API を使用して、ADMA2 による DMA 転送を行う場合、DMA 転送情報領域および DMA データ領域に加えて、呼び出し元でディスクリプタ領域を確保する必要があります。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 35 A P P L I C A T I O N 4.2.2 N O T E 無線 LAN ドライバ 構造体定義 項目 説明 概要 書式 OS リソース情報 typedef struct wlan_os_resource { PRI itskpri; void* stk; int32_t stksz; } WLAN_OS_RESOURCE; 説明 itskpri : 無線 LAN ドライバタスクの優先度 stk : 無線 LAN ドライバタスクのスタックアドレス stksz : 無線 LAN ドライバタスクのスタックサイズ 備考 コンフィグレーションファイル wlan_conf.c において、 変数 wlan_os_resource_init として定義してください。 項目 概要 説明 scatter/gather 型 typedef struct wlan_sg { uint16_t __reserved_1; uint16_t len; void* addr; } WLAN_SG; 書式 説明 len : 長さ addr : アドレス 送信 API で使用します。 備考 項目 説明 概要 書式 コールバック定義 typedef struct wlan_callback { void (*Recv)(uint32_t epbuf_len); void (*Event)(uint32_t event, void* data); } WLAN_CALLBACK; 説明 Recv : 受信コールバック関数 Event : イベントコールバック関数 備考 36 コンフィグレーションファイル wlan_conf.c において、 変数 wlan_callbackfunc として定義してください。 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 項目 概要 書式 説明 備考 説明 接続コンフィグレーション #define WLAN_SSID_LEN_MAX 32 #define WLAN_KEYLEN_MAX 32 typedef struct wlan_config { uint8_t ssid[WLAN_SSID_LEN_MAX]; uint32_t ssid_len; int comm_mode; int auth_mode; uint8_t key[WLAN_KEYLEN_MAX]; uint32_t key_len; int channel; int uap_wpa_cipher; } WLAN_CONFIG; ssid : SSID ssid_len : SSID の長さ(0 指定で自動判定) comm_mode : 接続方式 WLAN_MODE_ADHOC アドホックモード WLAN_MODE_INFRASTRUCTURE インフラストラクチャーモード WLAN_MODE_UAP Micro AP モード auth_mode : 認証モード WLAN_AUTH_MODE_OPEN 認証なし WLAN_AUTH_MODE_WEP WEP (40bit / 104bit) WLAN_AUTH_MODE_WPA_PSK WPA/WPA2-PSK key : 鍵 key_len : 鍵の長さ(0 指定で自動判定) WEP の場合 5 文字(40bit) 、または 13 文字(104bit)の鍵を指定 WPA の場合 任意の長さ(最大 32 文字)のパスフレーズを指定 channel : チャンネル(0 指定で自動検出) 個別指定の場合は、1 - 11ch の範囲の値を設定してください。 uap_wpa_cipher (Micro AP モードのみ。Micro AP モード以外では無視されます) : WPA 暗号方式 WLAN_CIPHER_MIXED AES-CCMP/TKIP mixed モード WLAN_CIPHER_AES_CCMP AES-CCMP コンフィグレーションファイル wlan_conf.c において、変数 wlan_conf として定義してくだ さい。 設定内容は、接続先の相手または接続元の情報を設定します。 ■uap_wpa_cipher の AES-CCMP/TKIP mixed モードについて 本モードでは、Group Cipher として TKIP が使われます。つまり、AES-CCMP で接続する 場合でも、TKIP のサポートが必須となります。 対向機器にあわせて、以下のように設定してください。 ・TKIP のみサポートしている機器 → WLAN_CIPHER_MIXED ・AES-CCMP のみサポートしている機器 → WLAN_CIPHER_AES_CCMP なお、Micro AP モード以外では、WPA 暗号方式は自動的に判別できます。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 37 A P P L I C A T I O N 項目 概要 書式 N O T E 説明 スキャン情報 #define WLAN_SSID_LEN_MAX 32 #define WLAN_BSSID_LEN 6 typedef struct wlan_scan { uint8_t ssid[WLAN_SSID_LEN_MAX]; uint32_t ssid_len; uint8_t bssid[WLAN_BSSID_LEN]; int comm_mode; int auth_mode; int channel; uint8_t rssi; } WLAN_SCAN; #define WLAN_SCANRESULT_MAX 16 typedef struct wlan_scanresult { int bss_num; WLAN_SCAN bss_info[WLAN_SCANRESULT_MAX]; } WLAN_SCANRESULT; 説明 ssid : SSID ssid_len : SSID の長さ bssid : BSSID comm_mode : 接続方式 WLAN_MODE_ADHOC アドホックモード WLAN_MODE_INFRASTRUCTURE インフラストラクチャーモード WLAN_MODE_UNKNOWN 不明 auth_mode : 認証モード WLAN_AUTH_MODE_OPEN 認証なし WLAN_AUTH_MODE_WEP WEP (40bit / 104bit) WLAN_AUTH_MODE_WPA_PSK WPA/WPA2-PSK channel : チャンネル rssi : RSSI bss_num : 検索結果の数 検索結果の最大数は 16 個となります。それ以上の結果は打ち切られます。 bss_info : 検索結果の配列 備考 38 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E API 一覧 API 仕様 概要 書式 入力 返却値 備考 説明 無線 LAN ドライバの初期化 int wlan_start(void) なし エラーコード DRIVER_OK 正常終了 DRIVER_ERR エラー終了 無線 LAN ドライバの API を利用する前に、かならず最初に呼び出してください。 コンフィグレーションファイル wlan_conf.c の変数 wlan_os_resource_init の情報を利用して、 OS 資源の生成を行います。 API 仕様 概要 書式 入力 返却値 備考 説明 無線 LAN の接続開始 int wlan_connect(void) なし エラーコード DRIVER_OK DRIVER_ERR 正常終了 エラー終了 コンフィグレーションファイル wlan_conf.c の変数 wlan_conf の情報を利用して接続処理を 行います。 接続処理が完了する前に API から復帰します。 実際に接続が確立したら、Event コールバック(WLAN_EVENT_CONNECT)により通知さ れます。 なお、接続が確立する前に対向から切断された場合など、WLAN_EVENT_CONNECT が通 知されずに、WLAN_EVENT_DISCONNECT が通知されることがあります。 API 仕様 概要 書式 入力 返却値 備考 説明 無線 LAN の切断処理 int wlan_disconnect (void) なし エラーコード DRIVER_OK DRIVER_ERR 実際に切断されたら、Event コールバック(WLAN_EVENT_DISCONNECT)により通知さ れます。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 正常終了 エラー終了 39 A P P L I C A T I O N API 仕様 説明 概要 書式 アクセスポイント/アドホックネットワークの検索 int wlan_scan(WLAN_SCANRESULT* result) 入力 result 返却値 備考 N O T E : 検索結果の格納先ポインタ エラーコード DRIVER_OK 正常終了 DRIVER_ERR エラー終了 情報を取得したい場合に呼び出してください。 現在立ち上げられている接続先の相手を検索します。検索には時間(1.5 秒程度)を要します。 なお、16 台を超えた機器の情報は破棄されます。 本 API は Active scan を行います。scan するチャンネルの範囲は 1 - 11ch となります。 API 仕様 説明 概要 書式 通信品質の取得 int wlan_get_comm_quality (int16_t* rssi, int16_t* noise_floor) 入力 rssi : RSSI の格納先ポインタ noise_floor 返却値 備考 : Noise Floor の格納先ポインタ エラーコード DRIVER_OK 正常終了 DRIVER_ERR エラー終了 情報を取得したい場合に呼び出してください。 本 API の情報は接続時のみ有効です。接続していない場合、取得値は不定値となります。 API 仕様 概要 書式 入力 返却値 備考 40 説明 MAC アドレスの取得 int wlan_get_macaddr (uint8_t* macaddr) macaddr : MAC アドレスの格納先ポインタ 格納先には 6 byte の領域を確保してください。 エラーコード DRIVER_OK DRIVER_ERR 正常終了 エラー終了 TCP/IP スタックの低レベル実装から呼び出されます。 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N API 仕様 N O T E 説明 概要 書式 マルチキャストアドレスフィルタの設定 int wlan_set_multicastaddr (uint8_t* maclist, uint32_t maclist_num) 入力 maclist : MAC アドレスの配列へのポインタ 格納先には(6 byte * maclist_num) の領域を確保してください。 maclist_num : maclist に含まれる MAC アドレスの数 最大数は 32 個となります。 返却値 備考 エラーコード DRIVER_OK DRIVER_ERR 正常終了 エラー終了 TCP/IP スタックの低レベル実装から呼び出されます。 登録されている MAC アドレスについては、上位で管理してください。 本 API が呼び出されると、すでに設定されている MAC アドレスの設定は全て破棄されま す(上書きされます) 。 なお、すべての MAC アドレスを削除したい場合は、maclist_num に 0 を指定してください。 API 仕様 説明 概要 書式 送信関数 int wlan_send_pkt (WLAN_SG* sg_buf, uint32_t total_len) 入力 sg_buf : 送信データ(scatter/gather 構造) sg_buf[0] 無線 LAN ドライバで予約 sg_buf[1] 1 つ目のデータ(物理アドレス/長さ) sg_buf[2] 2 つ目のデータ(物理アドレス/長さ) ・・・ sg_buf[N] 終端 (0 クリア必須) total_len : sg_buf に含まれるデータの合計長(byte) 返却値 備考 エラーコード DRIVER_OK DRIVER_ERR TCP/IP スタックの低レベル実装から呼び出されます。 無線 LAN モジュールにデータを送信した時点で、API から復帰します。 無線 LAN モジュールにデータを送信できない場合は、データを送信できるまで API はブ ロッキングします。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 正常終了 エラー終了 41 A P P L I C A T I O N API 仕様 説明 概要 書式 受信関数 int wlan_recv_pkt (void* epbuf, uint32_t* start_ptr_offset, uint32_t* pktlen) 入力 epbuf 返却値 備考 42 N O T E : 受信データの格納先 start_ptr_offset : ep_buf の先頭から MAC フレームまでのオフセット(byte)を格納する領域 pktlen : ep_buf に格納された MAC フレームの長さ(start_ptr_offset は含まない)を 格納する領域 エラーコード DRIVER_OK 正常終了 DRIVER_ERR エラー終了 無線 LAN ドライバの受信コールバック内の専用関数です。それ以外の場所からは呼び出さ ないでください。 引数 epbuf には、受信コールバック関数の引数 epbuf_len で指定された長さの領域を TCP/IP スタックで確保して渡してください。 ep_buf の先頭から start_prt_offset までの領域には、無線 LAN ヘッダが格納されています。 適宜、TCP/IP スタックで削除してください。 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E コールバック関数一覧 API 仕様 概要 説明 書式 入力 受信コールバック関数 void (*Recv)(uint32_t epbuf_len) epbuf_len : 必要な受信バッファの長さ(byte) 返却値 なし 備考 コンフィグレーションファイル wlan_conf.c の変数 wlan_callbackfunc の情報を利用して、 コールバック通知を行います。 本コールバック関数内では、wlan_recv_pkt() を除き、無線 LAN ドライバの API の呼び出し はできません。 本コールバック関数は無線 LAN ドライバのタスク上から呼ばれます。ユーザタスクへの通 知を行った後はできるだけ速やかに復帰してください。 コールバック関数内で wlan_recv_pkt() を呼び出さなかった場合、本コールバック関数で通 知した受信データは破棄されます。 API 仕様 説明 概要 書式 イベントコールバック関数 void (*Event) (uint32_t event, void* data) 入力 event : イベントコード WLAN_EVENT_CONNECT WLAN_EVENT_DISCONNECT WLAN_EVENT_MIC_ERROR 接続通知 切断通知 MIC Failure を検出 data : イベントの補足情報(現在は未使用) 返却値 なし 備考 コンフィグレーションファイル wlan_conf.c の変数 wlan_callbackfunc の情報を利用して、 コールバック通知を行います。 本コールバック関数内では、無線 LAN ドライバの API の呼び出しはできません。 本コールバック関数は無線 LAN ドライバのタスク上から呼ばれます。ユーザタスクへの通 知を行った後はできるだけ速やかに復帰してください。 WLAN_EVENT_CONNECT と WLAN_EVENT_DISCONNECT の通知順序は、一対一に対応 するとは限りません。接続が確立する前に対向から切断された場合など、 WLAN_EVENT_CONNECT が通知されずに WLAN_EVENT_DISCONNECT が通知されるこ とがあります。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 43 A P P L I C A T I O N N O T E デモソフトウェア 4.3 デモソフトウェアについて、以下に説明します。 4.3.1 コンフィグレーション設定について 本デモソフトウェアに関連して、修正したコンフィグレーションの項目を、以下に示します。 Table 4-3 lwIP のコンフィグレーション コンフィグ名 No. 設定値(*1) 備考 1 MEM_SIZE 16000 lwIP のヒープサイズ 2 MEMP_NUM_TCP_PCB 10 TCP 接続の最大数(確立したもの) 3 MEMP_NUM_TCP_PCB_LISTEN 5 TCP 接続の同時に Listen できる最大数 4 MEMP_NUM_TCP_SEG 20 TCP セグメントの同時キューイング数 5 MEMP_NUM_IGMP_GROUP 32 IGMP マルチキャストグループの最大数 6 MEMP_NUM_TCPIP_MSG_INPKT 16 TCP/IP 受信メッセージの最大数 7 MEMP_NUM_ARP_QUEUE 5 ARP request の応答待ちキューイング数 8 PBUF_POOL_SIZE 24 固定長メモリプールの最大数 9 LWIP_MULTICAST_PING 1 マルチキャスト PING に応答する 10 LWIP_IGMP 1 IGMP モジュールの有効化 11 TCP_WND 12 TCP 受信ウィンドウバッファサイズ 12 TCP_SND_BUF 13 PBUF_POOL_BUFSIZE 14 TCPIP_THREAD_STACKSIZE (*2) TCP/IP タスクのスタックサイズ 15 TCPIP_THREAD_PRIO (*2) TCP/IP タスクの優先度 16 TCPIP_MBOX_SIZE 32 TCP/IP タスクのメッセージバッファ段数 (MSS) 10 TCP 送信バッファサイズ (MSS) 1514 + 128 固定長メモリプールのブロックサイズ (無線 LAN 処理用のヘッダサイズも含む) *1: 各設定値については最適化を実施していません。 *2: 「Table 4-1 タスクについて」を参照してください。 Table 4-4 No. μT-REALOS のコンフィグレーション コンフィグ名 設定値(*1) 備考 タスクの最大数 1 _KERNEL_MAX_TSK 10 2 _KERNEL_MAX_TSKPRI 100 タスク優先度の最大値 3 _KERNEL_MAX_SEM 10 セマフォの最大数 4 _KERNEL_MAX_FLG 10 イベントフラグの最大数 5 _KERNEL_MAX_MBX 10 メールボックスの最大数 6 _KERNEL_MAX_MTX 10 ミューテックスの最大数 7 _KERNEL_MAX_MBF 10 メッセージバッファの最大数 8 _KERNEL_INIT_TSKPRI 98 初期タスクの優先度 9 _KERNEL_INIT_TSKSTKSZ 0x400 初期タスクのスタックサイズ 10 _KERNEL_SYS_STKSIZE 0x400 システムスタックサイズ 11 _KERNEL_USE_IMALLOC 1 ヒープ領域の使用(メッセージバッファで必要) 12 _KERNEL_REALMEMSZ 0x1000 ヒープ領域のサイズ *1: 各設定値については最適化を実施していません。 44 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E Table 4-5 無線 LAN ドライバのコンフィグレーション 変数名 No. コンフィグ名 1 ssid 2 ssid_len 設定値 備考 “FM4-WLAN_demo” SSID 0 SSID の長さ (0 の設定は、NULL 終端により自動 で計算します) 3 comm_mode WLAN_MODE_INFRASTRUCTURE 接続方式 4 auth_mode WLAN_AUTH_MODE_OPEN 認証モード key "password12345" 鍵 0 鍵長 5 wlan_conf 6 (0 の設定は、NULL 終端により自動 key_len で計算します) 0 チャンネル (0 の設定は、接続先の利用チャンネ 7 channel 8 uap_wpa_cipher WLAN_CIPHER_MIXED Micro AP モード時の暗号方式 9 itskpri (*1) 無線 LAN ドライバタスクの優先度 stk_wlan_tsk 無線 LAN ドライバタスクのスタッ ルに合わせて自動で識別します) 10 wlan_os_resource_init stk クアドレス (*1) 無線 LAN ドライバタスクのスタッ 11 stksz 12 Recv callback_Recv 受信コールバック関数 Event callback_Event イベントコールバック関数 wlan_callback 13 クサイズ *1: 「Table 4-1 タスクについて」を参照してください。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 45 A P P L I C A T I O N 4.3.2 N O T E Web サーバについて Web サーバの概要と構造 本デモソフトウェアの Web サーバは、lwip の Web サーバを使用しています。 Web サーバの詳細については、lwip のドキュメントを参照してください。 コンテンツの変更方法について lwip の Web サーバが利用するコンテンツは、lwip より提供されるツール(makefsdata.exe)を使用すること で作成できます。 makefsdata.exe が格納された同一ディレクトリに fs ディレクトリを作成、その fs ディレクトリの下に HTML ファイルなどのコンテンツを格納して、makefsdata.exe を実行します。 実行が完了すると、fsdata.c が作成されますので、そのファイルをデモソフトウェアのビルド時に、 一緒にビルドすることで、コンテンツをデモソフトウェアに取り込めます。 Figure 4-4 46 コンテンツファイル(fsdata.c)作成動作 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E CGI について cgi 処理は ajax.c 内で C 言語の関数として実装します。 cgi 処理を行う関数は以下の手順で登録してください。 <CGI 処理を行うファイル、関数の設定> 1. CGI ファイル名、関数の設定 ajax.c で定義されている変数 CGIHandlers に CGI ファイル名と対応する処理関数のポインタを設 定してください。 2. Web サーバへの登録 Ajax_Init()関数内で 1. で設定したファイル名と対応関数が登録されます。 複数の CGI ファイルを登録する場合は、http_set_sgi_handlers() に与える引数を登録する CGI ファイル数に合わせて変更してください。 <CGI 処理を行う関数の実装> 設定した CGI ファイルへのアクセス時に、設定した関数が呼び出されます。 引数には与えられたパラメータが引き渡されるので、必要な処理を実装してください。 関数の戻り値には、CGI 処理後に表示するコンテンツ(HTML ファイル)のファイル名を返しますので、 事前に必要なコンテンツを用意してください。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 47 A P P L I C A T I O N N O T E 5. その他 注意事項 ボードは各部品が露出した状態です。金属などの電気を通す物が触れると、ショートする恐れがあ るため注意してください。 手などを接近させる際にボードに触れると感電する恐れがあるため注意してください。 人体や物体が静電気を帯びた状態でボードに接近した場合、ボードへ放電される可能性があります。 ボード上に搭載されている各部品は、静電気に弱い部品も含まれているため注意してください。 無線 LAN デモシステムで利用する ROM/RAM サイズ ROM サイズ 772 Kbyte(*) RAM サイズ 103 Kbyte(*) 備考 ROM サイズの内訳 CODE : 517 Kbyte DATA : 255 Kbyte *: 参考値です。 転送レート 以下に無線 LAN デモシステムで測定した転送レートを示します。 受信 19.3 Mbps (*) 送信 18.8 Mbps (*) 備考 測定条件 FM4 の型格 : MB9BF568R (core clock : 160 MHz) プロトコル : TCP 転送サイズ : 7.3 MB 認証モード : WPA2-PSK (AES-CCMP) 接続方式 : インフラストラクチャーモード 試験ボードとアクセスポイントの間は無 線接続 (IEEE 802.11n) アクセスポイントと PC の間は有線接続 *: 参考値です。電波状況等の環境によって変化します。 48 AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 6. 主な変更内容 ページ 場所 変更箇所 Revision 1.0 - June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL - Initial release 49 A P P L I C A T I O N N O T E AN709-00004-1v0-J Spansion Application Note FM4 ファミリ 32 ビット マイクロコントローラ 無線 LAN モジュール連携による WLAN ソリューション デモ操作マニュアル 2014 年 6 月 Rev. 1.0 発行: 編集: 50 Spansion Inc. Marketing Communications Dept. AN709-00004-1v0-J, June 27, 2014 A P P L I C A T I O N N O T E 免責事項 本資料に記載された製品は、通常の産業用, 一般事務用, パーソナル用, 家庭用などの一般的用途 (ただし、用途の限定はあ りません) に使用されることを意図して設計・製造されています。(1) 極めて高度な安全性が要求され、仮に当該安全性が 確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 (原子力施設における 核反応制御, 航空機自動飛行制御, 航空交通管制, 大量輸送システムにおける運行制御, 生命維持のための医療機器, 兵器 システムにおけるミサイル発射制御等をいう) 、ならびに(2) 極めて高い信頼性が要求される用途 (海底中継器, 宇宙衛星等 をいう) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいかなる請求ま たは損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。半導体デバ イスはある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故, 火災事故, 社会的な損害を生 じさせないよう、お客様において、装置の冗長設計, 延焼対策設計, 過電流防止対策設計, 誤動作防止設計などの安全設計 をお願いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基づき規制さ れている製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。 商標および注記 このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報 が記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したり する権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性, 完 全性, 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、 また、明示, 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれ る情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。 Copyright © 2014 Spansion. All rights reserved. ® ® ® TM TM 商標:Spansion , Spansion ロゴ (図形マーク), MirrorBit , MirrorBit Eclipse , ORNAND 及びこれらの組合せは、米国・ 日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として表記 したものであり、各権利者の商標もしくは登録商標となっている場合があります。 June 27, 2014, AN709-00004-1v0-J CONFIDENTIAL 51