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

観測データ回収のための無線通信

ドキュメント内 熊本大学大学院自然科学研究科 (ページ 57-64)

2. 無線ネットワークを利用した GPS テレメトリ観測システムの開発

2.8. ソフトウェア設計

2.8.7. 観測データ回収のための無線通信

本節では、まず消費電流量を減らすための固定局の座標を用いた通信開始判定につ いて説明する。続いて、無線通信の流れについて説明する。

2.8.7.1. 固定局との距離で通信開始を判断

無線による通信においても消費電流量の削減は重要である。例えば5分毎に通信を 行うものと決めることで固定局側の消費電流量を減らすことができる。これ以外にも、

追跡対象の動物の行動パターンが固定している場合、GPS の測位座標が固定局に近 いことを判断した上で通信を行うことで無線機の消費電力が無駄にならない。そこで、

この様な場合は固定局の位置座標を予めマイコン内の EEPROM(Electrically Erasable Programmable Read-Only Memory)7内に保存しておき、GPSの測位が 完了した段階で通信を行うか判定を行う。

無線通信には、アンテナ間の距離が十分に短い必要がある。そこで、移動局は通信 を開始する前に固定局との距離を計算する。図2-28へ計算の概要を示す。

距離の計算のために、固定局の座標が必要である。また、一般的に無線ネットワー クでは混信を避けるために個々のノードの送信電力が調整される。そのため、固定局

-移動局間の距離の計算においては閾値となる半径も設定する。

図2-28 移動局から固定局へ通信を開始する際に利用する座標計算

7 EEPROMは不揮発性のメモリだが、プログラムによる書き換えが可能である。

49

ATmega1284Pマイコンのバス幅は8 bitであり、浮動小数点演算回路も搭載して

いない。従ってGPSの測位座標を浮動小数点型で扱うと整数型で扱った場合に比べ て関連部分のROM使用量が1,000倍ほどになる。ここで、NMEA 0183フォーマッ トに含まれる位置座標は、一般的に小数点以下4桁までの固定少数点方式である。そ こで本研究では、測位座標が整数となるように1万倍した分の単位でマイコンに保持 させている。

図2-29 へ通信を開始するための流れを示す。固定局の座標も同じ単位で入力して おき、距離計算の際にはまず相対座標を計算する。次に、距離の計算時に桁溢れを防 止するために菱形圏内であることを判断する。なお、図2-28における64,600はその 2乗が32 bitのunsigned long int型の表現内に収まるように決定した。64,600は緯 度方向に約10 kmである。続いて、菱形圏内であることが分かれば、登録された円 の中であることを判定する。

円の中であることが判定できれば、次項に示す通信フローへ処理を移す。そうでな い場合は、マイコンは素早くスリープ状態へ遷移させる。

図2-29 通信開始を判断するために、通信圏を判断する流れ

なお、日本より高緯度では緯度方向と経度方向のひずみが大きいため、ひし形圏内 を判定する前に、経度方向の相対座標はcos(緯度)を掛けた方が良いと考えられる。

50

2.8.7.2. 観測データ回収の基本的流れ

移動局から固定局へ観測データを送るには、双方が通信に対しソフトウェア的にコ ネクションを取る必要がある。図2-30へ観測データ回収の流れを示す。この図は固 定局と移動局であるGPS首輪間の通信の流れを表している。下に行くほど時間が経 過していることを示す。

図2-30 測位情報回収のシーケンス

移動局と固定局には互いに複数の通信相手が存在するから、通信にはブロードキャ ストとユニキャストを織り交ぜて行う。具体的には、下記の流れとなる。ここで、

XBee DigiMeshは素早い送受信の切り替えが不得意であるから、一度に送信可能な

データは連続して送信させた。

(1) 固定局からブロードキャストで移動局に対して観測データの要求を送信

(ア) この時、多数の固定局が送信を同時に行うことによる通信の干渉を避けるた めに、ブロードキャスト半径は0とする。

(2) 移動局が最もRSSI(Received Signal Strength Indication)の大きかった固定局

51 に対してユニキャストでデータの受信を要求

(ア) 同時に、送信データ量を通知する。

(3) 固定局が最もRSSI の大きかった移動局に対してユニキャストで要求許可を伝え ると共に、周囲の移動局に対して次の通信開始までの時間をブロードキャスト,

半径0で送信

(4) この時点でソフトウェア間のコネクションが取れているため、移動局は固定局に 対し観測データのユニキャストによる送信を開始

(ア) ソフトウェア間の接続が取れると、無関係なノードからの無線通信を抑止す るために固定局と移動局は双方ともに互いのアドレス以外の受信パケット を破棄する。なお、この処理はマイコンの機能によって実現する。

(5) 欠損データが存在した場合、再送処理を実施

(ア) 次の通信開始時刻を予想するために、再送処理は1回に限る。

ここで、ブロードキャスト送信とは、送信ノードの通信可能範囲に存在する全てのノ ードに対して行われる通信である。メッセージを初めて受信したノードは、メッセー ジをリレーした数が0になるまで同じメッセージをこだまの様に発信する。このリレ ー数をブロードキャスト半径という。

なお、観測データ要求とデータ受信要求時は、複数のノードとの通信を想定してい るため一定の時間、他のノードからの受信をポーリングしている。このポーリングに 掛ける時間は7秒程度である。もしポーリング時間が長いようであれば、RSSIを用 いて確実に通信できそうな最初の局に対して通信の開始を要求することで 3 秒以下 に抑えることが可能である。

52

2.8.7.3. 観測データ送信時の動作

移動局が観測データを送信する際の流れを図2-31に示す。

移動局はSDカードより1ページ分のデータを読み出し、これをパケットに加工し ながら複数回に分けて送信する。SD カードの 1 ページは最小 512 Byte である。1 パケットを送信した後は、適当な時間ポーリングするか又は無線モジュールが通知す るACKを解析する。

固定局側へパケットが到達したことは無線モジュールが出力するACKを解析する ことで認識可能である。ACK の確認を行えば、確実に通信状況を把握しつつ観測デ ータを通知できるから、これに続く再送処理が不要となる。ただし、ACK の確認の ために若干ながら通信時間が増大する。

一方で、固定局は受信パケットを解析し、1ページ分のデータを受信し終えた段階 でSDカードへ保存する。なお、プログラムの簡素性の面から、もしSRAM容量に 十分な余裕があれば、全受信データをバッファリングした後にSDカードへ保存した 方が良い。

図2-31 観測データの受信と保存の流れ

53

2.8.7.4. 再送処理

図2-32 へ再送処理時の固定局の動作を示す。基本的には、欠損データの検出を行 い、再送を要するデータを通知し、再送信されてきたデータをSDカード内のデータ とマージしつつ保存するという動作になる。

なお、SRAM 容量に余裕があれば、マージ後に受信データを SD カードへ保存し た方がプログラム構造は簡素である。

図2-32 固定局における再送処理の流れ

54

2.8.7.5. 観測データのパケット加工

図 2-33 へ観測データをパケットへ加工する流れを示す。SD カードから読み出し た観測データは64 Byte毎に分割し、パケットへ加工する。このデータサイズはXBee

DigiMeshのAPIパケットのペイロードサイズ72 Byteに拘束されている。

パケットはペイロードとなる情報の他に、通信の種類,パケットの番号,総パケッ ト数,データサイズ,パリティを付加する。さらに、XBee DigiMesh用のAPIパケ ットへ加工され、UARTシリアル通信にてマイコンより出力される8

図2-33 観測データのパケット加工の流れ

8 XBee pro S1はデータの転送要求を処理しきれなくなるとCTS(Clear To Send)

ポートを駆動させる。マイコンがCTS信号を無視して送信データの書き込みを続け

るとXBee pro S1はフリーズしてしまうため、マイコンはCTSポートを必ず監視す

る必要がある。

55

ドキュメント内 熊本大学大学院自然科学研究科 (ページ 57-64)