第3章 システム概要

ソフトウェアの開発を開始する前に、本章ではシステム概要について解説します。

これまで高速化の一途をたどってきた無線LANも、ここ数年、多様化されたセンサーや小型機器を接続するために、小型化や低消費電力化が進んでいます。さらに、いままでであれば無線LAN通信を行なうには非力と考えられていたマイコンのようなシステムでも、無線LANを使ってネットワークに接続したいというニーズが増えてきました。

これらのニーズに答えるために、AWL13は、いろいろな形態で販売されています。

AWL13は、ローム製無線 LAN モジュール「BP3591」を採用した IEEE802.11 b/g/n 規格対応の組み込み向け無線 LAN モジュールです。量産用途でも 1 台から購入可能で、多品種少量生産の産業用組み込み機器のワイヤレス化を可能にします。

マイコンとUART(シリアル)インターフェースで接続して安価な無線LAN システムを構築したり、Linux を搭載したシステムとUSB/SDIO インターフェースで接続して高速な無線LAN システムを構築するなど、用途に合わせてお使いいただけます。

3.1. 特徴

  • UART (シリアル)、SDIO、USBインターフェース対応

  • IEEE 802.11 b/g/n 対応 (最大通信速度72.2Mbps; 理論値)

  • インフラストラクチャモード(STA/AP)に対応

  • 動作温度範囲-40℃~+85℃

  • 小型サイズ24×33.1mm

  • チップアンテナ内蔵

  • 技術基準適合証明等取得済み

  • 「Armadillo-400」シリーズにそのまま搭載できるオプションをラインアップ

3.1.1. 1台から買える、産業機器向け無線LANモジュール

ローム製無線LANモジュール「BP3591」を採用した、IEEE802.11b/g/n対応(最大通信速度72.2Mbps/理論値)の組み込み向け無線LANモジュールです。量産用途でも1台から購入可能で、多品種少量生産の産業用組み込み機器のワイヤレス化におすすめです。

3.1.2. UART (シリアル) / SDIO / USB対応

ホストインターフェースとして、UART (シリアル)、SDIO、USB、の3つのモードに対応。各種インターフェースでの評価が手軽な専用拡張ボードを同梱した評価セットも提供。UARTモードでは、AWL13内蔵のTCP/IPプロトコルスタックを使う事ができ、ホスト側に搭載する必要がありません。このため、既存の産業機器やマイコンシステムを簡単に無線LAN化することが可能です。

3.1.3. インフラストラクチャモード(STA/AP)に対応

AWL13をステーションとしても、アクセスポイントとしても使用できます。

3.1.4. 小型サイズ・アンテナ内蔵・すぐに使える

33.1×24mmの小型モジュールでチップアンテナも内蔵しているので、省スペースな組み込み機器設計が可能です。また、国内電波法認証取得済みで、煩雑な登録手続きなしにすぐに生産に組み込んでお使いいただけます。

3.1.5. 省電力組み込み機器に最適

WPA2-PSKなどの無線LAN規格準拠のソフトウェア処理をすべてモジュールに組み込んだ、ホストに負担をかけないオールインワン仕様です。無線LAN規格準拠のソフトウェアスタックをホスト側に用意する一般的な無線LANモジュールに比べCPU負荷が軽減され、小規模・省電力の組み込み機器でも無線LAN環境が実現できます。

3.1.6. Armadillo-400シリーズとセットで「無線LAN対応組み込みプラットフォーム」

ARM9コア搭載Armadillo-400シリーズとの組み合わせで、「無線LAN対応組み込みプラットフォーム」として試作から量産までご利用いただけます。Armadillo-460/440/420本体にそのまま装着できる「WLANオプションモジュール」をArmadilloブランド専用オプション品としてラインアップ。また、Armadillo-400シリーズ向けのLinuxデバイスドライバーのソースコードをオープンソースとして公開しています。

3.2. 販売形態と部品構成

AWL13を評価するには、シリアルやUSBのポートで拡張できるArmadillo-WLAN評価ボードとAWL13がセットになった、AWL13評価セットが便利です。シリアルポートを持ったコンピュータ (PCやArmadillo、マイコンなど)であれば、すぐにシリアルクロスケーブルを使って無線通信を開始することができますし、PC Linux やArmadillo に USB で接続し評価することも可能です。

AWL13を Armadillo-400シリーズと一緒にご利用頂けるように、Armadillo-400インターフェースボードも予定しています。Armadillo-400の拡張コネクタ(CON9) から出ている SDIO 経由でAWL13と接続します。

評価がおわり、実際にAWL13をマイコンと接続する場合には、AWL13の単体販売がお勧めです。マイコンの専用ボードに AWL13の接続コネクタを実装して頂くことで、簡単に専用ボードに無線LAN機能を実装することができます。独自にAWL13用のボードを開発される方は、Armadillo-WLAN ハードウェアマニュアルをあわせてご確認ください。

AWL13

図3.1 AWL13


3.2.1. 製品名と略称

Armadillo-WLANは、多くの部品で構成されているために、正しい名称を使わないと混乱することがあります。しかしマニュアル内で正確な長い名称を使うと読み辛くなってしまいます。そのため、ここで正確な名称と略称を定義し、本書内では以降略称を使うことにします。

AWL13

Armadillo-WLANモジュール本体をさします。

AWL13評価ボード

Armadillo-WLAN評価ボードをさします。文脈によって、AWL13が接続されている場合と接続されていない場合があります。

レベル変換ボード

RS232Cレベル変換ボードをさします。Armadillo-WLAN評価ボードのCON3に接続し、AWL13から出ているTTLレベルのUART信号をRS232Cレベルに変換する子基板です。

AWL13評価セット

Armadillo-WLAN評価セット(AWL13対応)をさします。AWL13、AWL13評価ボード、ACアダプタ、USBケーブルなど、AWL13を評価するために必要な一式が入ったパッケージの製品名です。

3.2.2. Armadillo-WLANモジュール(AWL13)

AWL13と評価ボード、RS232Cレベル変換ボード

図3.2 AWL13と評価ボード、RS232Cレベル変換ボード


AWL13は、3.3V 単一電源で動作可能な製品です。AWL13 のUART(シリアル)インターフェースも3.3V レベルとなるため、ホストシステムとRS232C で接続したい場合、RS232C レベル変換ICを介して接続する必要があります。AWL13評価ボードには、RS232Cレベル変換ボードを接続することができます。

AWL13 の無線LAN 機能を使用するには、起動後にファームウェアをロードする必要があります。ファームウェアは、AWL13 に接続したフラッシュメモリから起動時に自動でロードするか、ホストシステムから転送します。どちらの方法でファームウェアをロードするかは、起動モードで決まります。起動モードについては、後述します。

AWL13 はEEPROM を内蔵しており、ホストシステムとの通信設定や無線LAN 設定などを保持することができます。

AWL13 はチップアンテナを内蔵しているため、AWL13 単体でも無線LAN 通信が可能です。チップアンテナでは感度が不足する場合、外付けアンテナを接続することもできます。

[注記]

外付けアンテナも利用可能です。ただし外付けアンテナ使用時には、チップアンテナは無効になります。

3.2.3. Armadillo-WLAN評価ボード

Armadillo-WLAN評価ボードは、AWL13を簡単に評価して頂くために作られた AWL13専用拡張ボードです。AWL13の機能をすべて使えるように、UART接続はもちろん、USB、SDIOにも対応しています。各接続方法を選択するための DIPスイッチやジャンパー、タクトスイッチ、拡張ボードとして接続しやすいピンヘッダが実装されています。評価ボードからはAWL13のUARTの信号がそのまま3.3Vレベルで出ていますが、RS232Cレベル変換ボードを接続することでRS232Cレベルに変換することができます。

3.3. 対応機器とOS

AWL13が対応しているホストシステムは、接続方法によって異なります。

UART(シリアル)接続の場合は、シリアル通信ができるホストシステムであれば、マイコン、PC、その他の機器にも対応しています。またOSもWindows、Linux、組み込みLinux、リアルタイムOSなど制約はありません。

USBおよびSDIO 接続の場合、AWL13 はLinuxが動作しているホストシステムに対応しています。USBやSDIOで接続する場合は、LinuxにAWL13用のデバイスドライバーを組み込みます。

AWL13用デバイスドライバーは、Linuxホスト上で動作する、AWL13を制御するためのソフトウェアです。デバイスドライバーが対応している Linux バージョンは、表3.1「対応するカーネルバージョン」を確認してください。このデバイスドライバーは、Linux に組み込むことで、AWL13を認識し、Linux の一般的なネットワークドライバとして動作するように設計されています。そのため、既存のLinux 用アプリケーションや Linux が提供している APIを、そのまま使うことが可能です。無線LANは、Ethernet 以上に設定が必要になるため、iwconfig や iwpriv 、WPA Supplicantなど、無線LAN専用のツールを使う必要があります。これらのツールも、他の Linux と同様に、そのまま使うことができるようになっています。

AWL13用デバイスドライバーのソースコードは、すべてオープンソースライセンスで公開しています。もし、AWL13を他のプラットフォームで使用する場合は、適宜ソースコードを修正するか、既存のデバイスドライバーを参考に必要な部分を作成してください。

コンパイル済のAWL13用デバイスドライバーは、x86(i386) と x86-64(amd64) 用にコンパイルされたものが用意されています。Linuxカーネルのバージョンは 2.6.32 です。それ以外の環境でAWL13を評価する場合は、デバイスドライバーをコンパイルしてください。ドライバーのビルド方法は、付録A Linux デバイスドライバーのビルドを参照してください。表3.1「対応するカーネルバージョン」に記載されていない Linux カーネルのバージョンでは、SDホストコントローラやUSBホストコントローラのドライバー実装の違いが原因で、正常に動作しない恐れがあります。

その他のOSでのご利用を検討されている場合は、アットマークテクノWebサイト[4]でご確認下さい。

表3.1 対応するカーネルバージョン

OSCPUアーキテクチャLinuxバージョン提供形態
Debian GNU/Linux 6.0x86 (i386)v2.6.32コンパイル済バイナリとソースコード提供
v2.6.26ソースコード提供
x86-64 (amd64)v2.6.32コンパイル済バイナリとソースコード提供
v2.6.26ソースコード提供

3.4. 接続方法と使用するインターフェース

それぞれのインターフェースの接続

図3.3 それぞれのインターフェースの接続


AWL13は、3種類の繋ぎかたと2つの異なるソフトウェアインターフェースを提供します。用途によって上手く使いわけてください。

表3.2 AWL13の接続とインターフェース別、メリットとデメリット

接続方法/モードメリットデメリット
USB通信速度が速いUSBホストインターフェースが必要
SDIO通信速度が速いSDIOホストインターフェースが必要
UART/コミュニケーションモードターミナルモードと比較して、細やかな制御が可能専用プログラムを作成する必要がある
UART/ターミナルモードUART(シリアル)通信と同じ感覚で、無線LAN通信が可能細やかな制御が不可能

3.5. 3つの接続方法

AWL13は、用途によっていろいろな繋ぎ方が可能です。対応している接続方法は、以下の3つです。

  • USB

  • SDIO

  • UART(シリアル)

それぞれのインターフェースの接続

図3.4 それぞれのインターフェースの接続


一番応用範囲が広い接続方法は、UART(シリアル)で接続する方法です。PC や Armadillo に限らず、マイコンのような非力なコンピューターも、AWL13 を使ってネットワークに接続できるようになります。

もう少し多機能なホストシステムであれば、AWL13を USB や、SDIO で接続することも可能です。Linux と AWL13 を使うための、デバイスドライバーが用意されていますので、USB や SDIO で簡単に接続できます。

3.6. 2つのソフトウェアインターフェース

AWL13 は、上記で説明したように、3つの接続方法に対応しています。UART(シリアル)接続は、専用のデバイスドライバーは必要なく、いろいろなホストシステムから使うことが可能です。USBと SDIO用のLinux デバイスドライバーは、物理的な繋ぎ方の差異を吸収し、標準的なネットワークインターフェースをアプリケーション側に提供します。そのため実際に使うときには、USBと SDIOの違いを意識する必要はありません。

Armadillo WLAN アーキテクチャ

図3.5 Armadillo WLAN アーキテクチャ


図は、OSI参照モデルのように上がアプリケーションに近い側で、下に行けばハードウェアに近くなる図です。左側が Linux を表し、右側が AWL13 です。

青がアプリケーション、茶がLinuxデバイスドライバー、黒がハードウェア、緑が AWL13の中で動くソフトウェア(ファームウェア)を表わします。また色が塗られている部分は標準的に提供されている機能で、白く抜けている部分は、準備段階で用意が必要です。

USB接続の場合、Linux側では USBデバイスドライバーと協調して動くAWL13用 USB デバイスドライバーが必要です。また、AWL13側では、USBで動作できるファームウェアが必要です。SDIO接続の場合、Linux側では SDIO デバイスドライバーと協調して動く AWL13用SDIO デバイスドライバーが、AWL13側では、SDIO通信が可能なファームウェアが必要になります。

3.6.1. UART(シリアル)インターフェース

UART(シリアル)通信の場合、ホストシステムとAWL13とのやりとりは、いわゆる UART の通信プロトコルに則ったものであれば良く、デバイスドライバーのように複雑なソフトウェアは必要ありません。UART(シリアル)インターフェースを使う場合、2つのモードから用途にあった方法を選択することができます。ターミナルモードとコミュニケーションモードです。

ターミナルモードは、対向機器とホストシステムとを直接シリアルケーブルで接続したかのように、データを透過的に送受信するモードです。ホストシステムからAWL13に送られたデータは、そのまま対向機器に転送されます。また、対向機器が送信したデータは、AWL13のシリアルインターフェースから、そのままの形で読み出すことができます。そのため、ホストシステムのUART(シリアル)ポートに対応したアプリケーションをそのまま使うことができます。

一方、コミュニケーションモードは、ホストシステムとAWL13との間のデータ転送方法がAWL13専用のものになっているため、既存のアプリケーションをそのまま使うことはできません。AWL13専用のアプリケーションを作成する必要があります。そのため、図3.5「Armadillo WLAN アーキテクチャ」 では、アプリケーション部分が白抜きになっています。

3.6.2. Linux Wireless インターフェース

図から分かるように、USBとSDIOのデバイスドライバーは、アプリケーション側に Linux の標準的なネットワークインターフェースを提供します。そのため、既存のアプリケーションをそのまま使うことが可能です。またネットワークプログラムミング API として一般的な BSDソケットAPIも同じように使うことができます。

無線LANでは、Ethernetでは必要のないSSIDの設定などを行う必要があります。Linuxでは、これらのインターフェースをWireless extension というAPIでアプリケーションに公開します。[5] AWL13用のデバイスドライバーは、Wireless extension API も提供していますので、無線LAN専用のツールも、他のLinux と同じものを使用することが可能です。

Wireless Tools

Wireless Toolsには、無線LANの設定に使用する、iwconfigやiwlistなどのコマンドが含まれています。使用方法についての詳細は、「Wireless Tools」をご参照ください。

net-tools

net-toolsには、ネットワークインターフェースの設定に使用する、ifconfig、routeなどのコマンドが含まれています。Wireless Tools で無線LAN固有の設定をした後、これらのコマンドを使って、Ethernet の設定と同じようにネットワークの設定を行なうことができます。

3.7. ファームウェア

AWL13上で動作するソフトウェアをファームウェアと呼びます。AWL13が提供するほとんどの機能は、すべてこのファームウェアに入っています。このファームウェアは、バイナリーファイルとして提供されています。

起動直後のAWL13 は、ファームウェアを受け取るだけの機能しか持っていません。これは、接続方法によってAWL13が必要とする機能が異なったり、ユーザーが求める機能が異なるためです。AWL13の特徴である、UART(シリアル)やUSB、SDIOによるホストシステムとの通信、モジュール内暗号化処理、低消費電力のコントロールもファームウェアが処理しています。AWL13をUART(シリアル)で接続した場合、AWL13がTCP/IPなどのネットワーク処理を行う必要があります。このネットワーク部分の処理もファームウェアが行なっています。また、UART(シリアル)接続の場合に利用できる、Webインターフェースもファームウェアで実装されています。

AWL13の無線LAN機能を動作させるには、AWL13の起動後にファームウェアを転送し、AWL13上で実行する必要があります。ホストシステムから転送することを「ファームウェアをロードする」と表現します。UART(シリアル)接続時のUART起動モード、USB接続時のUART起動モード、SDIO接続時のSDIO起動モードでは、ホストシステムからファームウェアを転送します。

AWL13は、UART(シリアル)接続のフラッシュ起動モードの場合のみ、接続されたフラッシュメモリから自動的にファームウェアをロードすることができます。フラッシュ起動モードを使う場合、事前にAWL13に接続されたフラッシュメモリに、ファームウェアを書き込んでおく必要があります。

ファームウェアの種類を表3.3「AWL13ファームウェアの種類」に示します。使用する起動モードに対応するファームウェアをご使用ください。ステーションとして使用する場合、またはアドホックモードで使用する場合は、(STA)と表記したファームウェアをご利用ください。アクセスポイントとして使用する場合は、(AP)と表記したファームウェアをご利用ください。

表3.3 AWL13ファームウェアの種類

起動モード

ファイル名

UART起動モード(STA) (日本語版 Web インターフェース)

fwimage[version]_STA_UART_TCPjp.bin

UART起動モード(STA) (英語版 Web インターフェース)

fwimage[version]_STA_UART_TCPen.bin

フラッシュ起動モード(STA) (日本語版 Web インターフェース)

fwimage[version]_STA_UART_TCPjp.fbin

フラッシュ起動モード(STA) (英語版 Web インターフェース)

fwimage[version]_STA_UART_TCPen.fbin

USB起動モード(STA)

fwimage[version]_STA_USB.bin

SDIO起動モード(STA)

fwimage[version]_STA_SDIO.bin

USB起動モード(AP)

fwimage[version]_AP_USB.bin

SDIO起動モード(AP)

fwimage[version]_AP_SDIO.bin

フラッシュ書き込み用 (領域1[a])

BU1805_FLASH_WRITER_[version]_AREA_1[a].bin

フラッシュ書き込み用 (領域2[a])

BU1805_FLASH_WRITER_[version]_AREA_2[a].bin

[a] [version]が132以前の場合は領域1,2ではなく、領域0,1という表記になります。ファイル名の...AREA_に続く番号も同様に0と1になります。




[4] 最新の対応情報とお問い合わせ窓口などが記載されています。

[5] 新しいカーネルでは、cfg80211 とnl80211 というインターフェースを提供していますが、AWL13 では未対応です。