[[ANT]] * 1. ANTの概要 [#r8cc8756] ** 1.1 ANTとは? [#yd369eb9] ANTとは、カナダの[[Dynastream Innovations:http://www.dynastream.com/]]が開発した2.4GHz帯での超低消費電力型の近距離ネットワークのプロトコルです。通信距離は数メートルと短く、データの送信は最速で20Kbpsです。混線防止機能もANTで提供されていますので、複雑なネットワークの構築も容易にできます。~ ** 1.2 ANT+とは? [#wd512513] ANT+は、ANTの技術を基に機能ごとに特化したプロファイルを用意して、同機能のデバイス間での運用互換、ANT+対応機種間の相互通信を保証しています。主に心拍計、歩数計、自転車に装着するケイデンスセンサーなどのフィットネス機器、体重計などの健康管理機器など12種類のプロファイルを用意しています。12種類のプロファイルは以下の通りです。~ |CENTER:ANT+ Device Profiles|CENTER:ANT+ デバイスプロファイルの内容|h |CENTER:Audio Control|携帯型のオーディオ機器のコントローラー用のプロファイル| |CENTER:Bicycle Power|馬力やトルク、速度を計算、記録するための自転車のタイヤやクランクのセンサー用のプロファイル| |CENTER:Bicycle Speed and Cadence|ケイデンスやスピードの記録用に自転車のケイデンスセンサー向けのプロファイル| |CENTER:Blood Pressure|血圧計用のデバイスプロファイル| |CENTER:Fitness Equipment Device|ジムにあるフィットネス機器と通信する機器向けのデバイスプロファイル| |CENTER:Geoache|ジオキャッチングと呼ばれるGPSを使った宝探しゲームで使用する機器用プロファイル| |CENTER:Heart Rate|心拍計用のデバイスプロファイル| |CENTER:Light Electric Vehicle|電動自転車用のセンサー向けのデバイスプロファイル| |CENTER:Multi-sport Speed and Distance|一般スポーツ用の速度や距離を記録する機器やGPSレシーバー向けのプロファイル| |CENTER:Stride Based Speed & Distance|歩幅や歩数からスピードや距離を計測する歩数計用のデバイスプロファイル| |CENTER:Weight Scale|体重計向けのデバイスプロファイル| |CENTER:Environment|温度計などの環境関係のセンサー用のデバイスプロファイル| 表1-1 ANT+デバイスプロファイル一覧~ 各ANT+ デバイスプロファイルの詳細は、[[こちらのページ:http://www.thisisant.com/developer/ant-plus/device-profiles/]]で確認できます。PDFドキュメントは、ANT+ Adopterの登録をすれば、[[DEVELOPER:http://www.thisisant.com/developer/]]の[[DOWNLOADS: SIFTWARE & DOCUMENTSのセクション:http://www.thisisant.com/developer/resources/downloads/#documents_tab]]からダウンロードが可能です。ANT+ Adopterへの登録は無料です。~ * 2. ANTネットワーク構築の基礎 [#p4b10140] ** 2.1 ノードとチャンネルの概念 [#y6267071] ANTのネットワークや構築方法を説明する時に、概念的に「ノード」(Node)と「チャンネル」(Channel)を使います。ノードとは、ANTを実装したデバイス全般を指します。そして、2つのノードの接続(コネクション)をチャンネルと呼びます。チャンネルでは、一方のノードを「マスター」(Master)とし、他方を「スレーブ」(Slave)とします(図2-1を参照)。1つのノードが複数のチャンネルに属する場合は、ノードが1つのチャンネルでマスターであり、別のチャンネルでスレーブになることもあります。データを送信する場合、マスターのノードからスレーブノード方向を「フォワードディレクション」(Forward Direction)、スレーブからマスターの方向を「リバースディレクション」(Reverse Direction)と呼びます。~ ** 2.2 ネットワーク、チャンネル、マスターとスレーブの関係 [#s909c451] ANTは、チャンネルを組み合わせてネットワークを構築します。チャンネルの種類は、大きく分けて独立型と共有型の2種類があります。独立型は、基本的に1組のマスターとスレーブで1対1の通信をするチャンネルです。共有型は、単体のマスターが複数のスレーブと通信する(1対N)チャンネルです。~ 例えば、図2-1のように、複数のセンサーからデータ収集するような簡単なネットワークを構築する場合、独立型チャンネルでは、各ノードのパラメーターをチャンネルごとに設定します。データを受信するスレーブのノードAは、スレーブとして全てマスターのノードB、C、Dと3つ別々のチャンネル(B ⇒ A、C ⇒ A、D ⇒ A)を構築しますので、各チャンネルのマスターとペアになるように個別に設定する必要があります。~ #ref(fig1.jpg); 図2-1 ネットワーク例 (独立型のチャンネルを使った場合) ** 2.3 ネットワーク設定用のパラメーターの概要 [#c9d3b8dc] 下の表2-1は、ネットワーク構築に必要なパラメーターに関して簡単にまとめたものです。実際にネットワークを構築する場合、ネットワークでのマスターとスレーブのパラメーターが一致しなければならない項目と、マスターとスレーブで異なる項目があるので注意して下さい。~ 例えば、「チャンネルタイプ」(Channel Type)では、同じタイプのチャンネルでもマスターとスレーブでは設定する値が異なります。その他にマスターとスレーブで設定が異なる箇所は、ワイルドカードの使用可/不可な項目です。マスターは、「チャンネルID」(Channel ID)の3つの項目ではワイルドカード(具体的な数値の代わりに数値「0」を入力、設定すること)に設定することはできません。スレーブは、ワイルドカードに設定が可能です。~ |>|CENTER:パラメーター|CENTER:コメント|h |ネットワークナンバー&br;(Network Number) |パブリックネットワーク&br;(Public Network)|・オープンネットワークで同じ設定のANTノードと接続可能&br;・システムの初期設定は、Public Network| |~|マネッジドネットワーク&br;(Managed Network)|・ANT+用のネットワーク| |~|プライベートネットワーク&br;(Private Network)|・保護されたネットワーク&br;・接続するにはネットワークキーが必要不可欠| |>|RF 周波数&br;(RF Frequency)|・ANTが使える周波数を3から80で表したもの&br;・2466MHzの「66」が初期設定値| |チャンネル ID &br;(Channel ID)|デバイスナンバー&br;(Device Number)|・2byteの大きさのデバイス独特なナンバー、シリアルナンバーなど&br;・マスターノードは、ワイルドカードは不可| |~|トランスミッションタイプ&br;(Transmission Type)|・1byteでデバイスの通信特性を示している&br;・データのペイロードにデータ解釈の仕方のコードを含む&br;・マスターノードは、ワイルドカードは不可| |~|デバイスタイプ&br;(Device Type)|・1byteでネットワークのデバイスのタイプかクラスを表す&br;・受信したデータから送信先のデバイスを判別して、判別結果に合わせてデータをデコードする&br;・ANT+の場合は、プロファイルごとに予め決められている&br;・マスターノードは、ワイルドカードは不可| |チャンネルタイプ&br;(Channel Type)|バイディレクショナル スレーブ(受信)チャンネル&br;(Bidirectional Slave (Receive) Channel)|・マスターからデータを受信するのが主だが、マスターへリバース方向で返信も可能&br;・設定値は、「0x00」| |~|バイディレクショナル マスター(送信)チャンネル&br;(Bidirectional Master (Transmit) Channel)|・マスターからのスレーブへの送信が主だが、リバース方向からのスレーブの返信も受信可能&br;・設定値は、「0x10」| |~|共有バイディレクショナルチャンネル&br;(Shared Bidirectional Channel)|・共有双方向チャンネルでは、複数のノードから単体のノードが受け取る場合が多い&br;・設定値は、スレーブ(受信する)ノードが「0x20」&br;・マスター(送信する)ノードが「0x30」| |~|送信/受信専用チャンネル&br;(Transmit / Received Only Channel)|・送信/受信専用チャンネルでフォワード方向の送信・受信のみ可能&br;・受信専用の設定は、「0x40」&br;・送信専用はレガシーサポート専用の設定は「0x50」| |>|チャンネルピリオド&br;(Channel Period)|・チャンネル上でマスターとスレーブのノードが定期的にデータの交換する際の時間の間隔&br;・Channel Periodの値が大きい程、間隔が長い&br;・初期設定値は、4Hzで「8192」| |データタイプ&br;(Data Type)|ブロードキャストデータ&br;(Broadcast Data)|・ブロードキャストデータは、主にマスターからスレーブのノードにデータを送信する際に使う&br;・Data Typeの初期値は、「Broadcast Data」| |~|認証データ&br;(Acknowledged Data)|・認証データを送信した場合は、認証のメッセージを送り返す| |~|バーストデータ&br;(Burst Data)|・大量のデータを多くのデバイスに一度に送信する| 表2-1 ANTチャンネル構築に必要なパラメーター ** 2.4 ネットワーク設定用のパラメターの説明 [#y0d1958f] 表2-1のパラメーターの説明です。詳細は、[[ANT:http://www.thisisant.com]]のデベロッパー向けのページの「[[DEVELOPER:http://www.thisisant.com/developer/]]」の「[[DOWNLOADS: SOFTWARE & DOCUMENTS:http://www.thisisant.com/developer/resources/downloads/#documents_tab]]」セクションにあるPDFファイル「ANT Message Protocol and Usage」にあります。詳しい参照先は、[[このページの下:http://labs.beatcraft.com/ja/index.php?ANT%2FANT%A4%CE%B4%F0%C1%C3#l0b71e34]]のPDFファイル「ANT_Fundamentals」の最後に掲載してあります。 ***「ネットワーク ナンバー」(Network Number) [#q7e3e0a1] ネットワークナンバーは1byteのフィールドで、ANTノードで構築するネットワークの形態を設定します。「パブリックネットワーク」、「マネッジドネットワーク」、「プライベートネットワーク」の3つから1つ選んで下さい。システムの初期設定は、「Public Network」です。~ ・「パブリックネットワーク」(Public Network)~ 一般的なANTのネットワークです。特に接続に関する条件や制限はなく、チャンネル設定が同じならば、ANTノードと接続可能できます。~ ・「マネッジドネットワーク」(Managed Network)~ 基本的にANT+に対応するデバイスとデータの送受信するための設定です。ANT+のデバイスと通信する場合、ネットワークナンバー以外の項目も各ANT+のプロファイルに合わせて設定する必要があります。~ ・「プライベートネットワーク」(Private Network)~ SUUNTOのANTのようなANTの技術を使ったプライベートなネットワークに接続する設定で使います。プライベートなネットワークに接続する場合は、ネットワークの鍵の設定が必要です。~ ***「RF 周波数」(RF Frequency) [#n642d100] 周波数は、2403MHzから2480MHzまでで、3から80までの計78のRF周波数設定用の値から選んで下さい。(「ANT Message Protocol and Usage」のsection 5.2.2では、0から124まで、合計で125 のRF周波数設定用の値が用意されていると書いてありますが、Nordic Semiconductorのデータシート「nRF24AP2 Product Specification v1.2」の41ページでは78となっています。)RF周波数設定用の値は、ペアリングする前に各ノードで予め設定しておく必要があります。~ ***「チャンネル ID」(Channel ID) [#iecee0bc] チャンネルID には、「デバイス ナンバー」(Device Number)、「トランスミッション タイプ」(Transmission Type)、「デバイス タイプ」(Device Type)の3種類があります。これらは、ノードがペアリングを行う時に必ず必要となります。スレーブノードは、ワイルドカードの設定ができますが、マスターノードは、必ず各パラメータを具体的に設定して下さい。関係するペアリング、プロキシーサーチの詳細は、「thisisant.com」の「Developer Zone」のセクションの「ANT Application Note」に置いてあるアプリケーションノート「ANT AN02 Device Paring」をご覧下さい。~ ''◦「デバイス ナンバー」(Device Number)''~ チャンネルIDのデバイスナンバーは、各デバイス固有の2byteのフィールドで、デバイスをネットワーク上で識別するIDとして使います。設定する際には、デバイスのシリアルナンバーを使用したり、ランダムナンバーを生成して使います。マスターノードは、デバイスナンバーをワイルドカードに設定することはできません。~ ''◦「トランスミッション タイプ」(Transmission Type)'' ~ チャンネルIDのトランスミッションタイプ は、デバイスの通信特性を示した1byteのフィールドです。具体的には、データペイロードの先頭にある共有アドレスを示した共有フィールドの有無やサイズ、また、「Global Data Identification Byte」(例えばANT+のページナンバーなど)の有無などの情報を定義します。チャンネルタイプの設定で内容は大きく変わります。マスターノードは、ワイルドカードに設定することはできません。~ ''◦「デバイス タイプ」(Device Type)''~ チャンネルIDに属する1byteのフィールドで、デバイスのタイプを表記します。ノードが複数あった場合に識別するのに使用するだけでなく、受信したデータペイロードをデバイスタイプで指定したデバイスに合うようにデコードします。従って、デバイスタイプはペアリングで重要な役割を果たします。マスターノードは、ワイルドカードに設定することはできません。~ ***「チャンネル タイプ」(Channel Type) [#gb1fffa6] 以下の3つの項目(バイディレクショナル チャンネル、共有バイディレクショナル チャンネル、送信 / 受信専用チャンネル)より使用するチャンネルタイプを1つ選択して下さい。このチャンネルタイプの設定で、構築するチャンネルが独立型か共有型か決まります。パラメターの設定値は、同じチャンネルタイプでもマスターとスレーブで異なりますので注意して下さい。~ ・「バイディレクショナル チャンネル」(Bidirectional Channel)~ マスターとスレーブのノード間で双方向の通信が出来る独立したチャンネルに設定します。バイディレクショナル チャンネル を選択する場合、マスターは、「Bidirectional Transmit (Master) Channel」の「0x10」に設定します。一方の受信するスレーブは、「Bidirectional Receive (Slave) Channel」の「0x00」と設定します。設定する値が、マスターとスレーブノードで異なりますので注意して下さい。~ ・「共有バイディレクショナル チャンネル」(Shared Bidirectional Chanel)~ 単体のマスターノードが、複数のスレーブノードからデータを受信する場合に使用する設定です。複数のスレーブが1つの独立したチャンネルで1つのマスターを共有することになります。1つのチャンネルを使うので、各ノードに共有チャンネルアドレスが必要となります。従って、チャンネルIDのトランスミッションタイプの設定が、バイディレクショナル チャンネル の場合と異なります。共有バイディレクショナル チャンネルタイプの設定値は、スレーブ(受信側)が「0x20」で、マスター(送信側)が「0x30」です。設定値がマスターとスレーブの場合で違いますので注意して下さい。~ ・「送信 / 受信専用チャンネル」(Transmit / Receive Only Channel) ~ このチャンネルでは、フォワード方向のみの片方向に通信可能です。「Receive Only Channel」を選択すると、スレーブはリバース方向のデータを送信できず、マスターは受信できません。設定値は「0x40」です。また、「Transmit Only Channel」は、レガシーサポートのみに使われます。設定値は「0x50」になります。~ ***「チャンネル ピリオド」(Channel Period) [#kf86f42b] マスターノードから発信されるメッセージのデータパケットの送信間隔を表しています。チャンネルピリオドの値が小さい程、メッセージの間隔が短くなり、デバイスサーチのオペレーションも短くなります。しかし、消費電力が大きくなりますので注意して下さい。初期設定は4Hz、チャンネルピリオドの値は8192となります。チャンネルピリオドの値はHzから変換されたもので、ANTデバイスは、この値を読みます。設定する際に、Hzの値を入力する場合と、両方の値を入力場合がありますので注意して下さい。Hzからチャンネルピリオドの値に変換する計算式は以下の通りです。~ #ref(eq1.jpg); チャンネルピリオドの値に関する詳細は、「ANT Message Protocol and Usage」のと17、18、58ページをご覧下さい。~ ***「データ タイプ 」(Data Type) [#z625d04a] データタイプは、「Broadcast Data」「Acknowledged Data」「Burst Data」の3種類です。チャンネルタイプで 、送信 / 受信専用チャンネル を選択した場合は「Broadcast Data」しか選択できません。しかし、双方向の通信が可能なチャンネルタイプを選択した場合、3種類全てのデータタイプが選択可能で、フォワード方向やリバース方向の通信ができます。~ ・「ブロードキャストデータ」(Broadcast Data)~ このブロードキャストデータは、初期設定のデータタイプです。各チャンネルタイムスロットで、マスターからスレーブへ送信されます。スレーブのMCUからの指示が無い限り基本的にリバース方向の送信は行いません。新しい送信データがチャンネルスロットに用意されなければ、前回のデータタイプが何であれブロードキャストデータとして再送信されます。ブロードキャストデータでは受信の確認が取れませんが、消費電力が最も低いデータタイプです。データの送信の確認がとれないので、温度計など頻繁にデータの更新が必要無いデータの収集に向いています。~ ・「認証データ」(Acknowledged Data)~ 双方向の接続ができた時に、フォワード方向、リバース方向に認証データを送信できます。認証データを受信したノードは、認証メッセージを送信元のノードに返しますので、送信元のノードは送信結果が分かります。マスターは、認証データタイプでの送信のリクエストがあった場合だけ、次のタイムッスロットで認証データを送信します。また、次の次の回で認証データタイプの指定や、データが準備がない場合は、同じ内容のデータをブロードキャストデータとして再送信します。使用例としては、双方のノードが相手の状態を把握することができますので、コントロール制御などで使う通信に向いています。しかし、認証データは、パケットや電力を多く消費しますので注意して下さい。~ ・「バーストデータ」(Burst Data)~ 大量のデータを多くのデバイスに高速で送信します。送信速度は最高で20kbpsになります。データの再送信は5回まで行いますが、電力節約のため5回失敗した場合、送信をやめてMCUに失敗のメッセージを送ります。注意事項ですが、バーストの間は、パケットは非同期化のため、クロックエラーなどでチャンネルピリオドにずれが生じた場合は、チャンネルの同期が解消してしまう可能性があります。バーストが原因で同期が解消してしまった場合は、スレーブがサーチモードに入ります。~ * その他 [#l0b71e34] -下の添付は、このページのPDFバージョンです。PDFファイルには、パラメーターの説明の参照先などが掲載してあります。 -- 「ANTの基礎」のPDFバージョン&ref(ANT_Fundamentals.pdf); - ANTに関する詳しい情報は、「[[thisisant:http://www.thisisant.com]]」の「[[DEVELOPER:http://www.thisisant.com/developer/]]」の[[DOWNLOADS: SOFTWARE & DOCUMENTS:http://www.thisisant.com/developer/resources/downloads]]の各セクションにあるPDFファイルをご覧下さい。ANT+のデバイスプロファイルの資料をダウンロードするには、ANT+ Adopterの登録が必要です。 ANTのフロントページの右上の「''Register Now''」をクリックして、「''Basic User Account''」に登録して下さい。登録完了後、各自の「''My ANT+''」のページから「''ANT+ Adopter Account''」を付け足して下さい。~ - ANTのチップのデータシートは、Nordic Semiconductor の[[ANTのページ:http://www.nordicsemi.com/eng/Products/ANT/nRF24AP2-8CH]]にあります。 *更新履歴 [#pff865ae] 2012/08/10 初稿掲載~ 2012/11/22 リンク先を一部変更~ 2013/11/11 デバイスプロファイルの追加~