低消費電流リアルタイムクロックモジュール『RV-3028-C7』の CLKOUT端子出力を2番目の割り込み信号出力として設定することで2系統の割り込み信号出力が可能になり、WSNアプリケーションのマイコン及び通信モジュールをRTCモジュール1台で稼働時間を制御する事が出来るようになります。
このホワイトペーパーでは具体例に沿った形で、CLKOUT端子出力をタイマ割り込み信号として使用する際のレジスタの設定例を示しています。
<目次>
(1)イントロダクション
(2)複数の割り込み信号ラインを必要とするアプリケーション
2.1 ......使用例−ワイヤレスセンサーノード (WSN)
2.2 ...... キーとなるコンポーネント
2.3 ...... アプリケーションのタイミングの制約について
2.4 ...... CLKOUT出力を割込み信号として使う方法
2.4.1 ..... ★CLKOUT出力を割込み信号として使う使用例(回路接続)
2.4.2. ..... CLKOUT端子の機能
2.4.3. ..... ★CLKOUT端子を割込み信号に設定する手順(レジスタでの設定)
2.4.3.1 ..... EEPRM・CLKOPUT設定レジスタ
2.4.3.2 ..... Control2/制御レジスタ
2.4.3.3 ..... CLKOUT割り込み信号マスクレジスタ
2.4.3.4 ..... 分アラーム・レジスタ
2.5 ...... 割り込み信号 (INT端子)機能
2.5.1 ..... ★定期カウントダウンタイマ割り込み信号の設定
2.5.1.1 ..... Control1/制御レジスタ
2.5.1.2 ..... タイマ・カウントダウン値・設定レジスタ
2.5.1.3 ..... Control2/制御レジスタ
2.6 ...... マイコンからのフラグクリア動作
2.7 ...... 主なメリット
2.8 ...... アプリケーションの最適化
2.9 ...... バッテリー寿命の考察
(3)結論
(4)お問合せ・フィードバック
(5)関連資料
1. イントロダクション
バッテリー駆動のWSN (Wireless Sensor Node) の場合『バッテリーの寿命』を延ばすことは、頻繁なバッテリー交換を無くし手間のかからないユーザー使用環境を提供するための重要な要素です。低消費電力の MCUを選択することは重要ですが、それに加えて各コンポーネントの実際の駆動する動作時間との兼ね合いも含めてデバイスを選定する必要があります。
エンド デバイスとも呼ばれる多くのWSN では、常にMCU・センサー・RF 通信ペリフェラルを動作させる必要はなく、これらモジュールは多くの時間はスリープモードの状態で待機しています。 アプリケーションによって アイドル、スリープ、ディープスリープ、パワーダウン、ディープパワーダウンなど MCU の複数の省電力モードを利用してデバイスの電力使用を最適化することができます。
一般に「サブスリープ」モードと呼ばれるモードでは MCU の主要部分がオフになり (コア、ペリフェラル、メモリが停止)、タイマー、割り込み処理、およびリアルタイム クロック (RTC) 機能のみがアクティブになります。しかしその場合でも『MCU内蔵のRTC機能』が動作している場合のMCUの消費電力は通常は『外付けのRTC モジュール』と比較してはるかに高い値になります (>500 nA) 。
IoTベースの無線システムの急速な成長と大規模な展開により膨大な量のエネルギーが消費されます。そのため バッテリー駆動のデバイスのエネルギーを節約し動作寿命を延ばすための設計が重要になります。
『MCU内蔵のRTC機能』の代りに超低消費電力の『外付けのRTCモジュール』を使用することにより
@ 最小限の待機時電流での動作(RV-3028-C7 の場合、時刻保持モードで45〜50nA Typ.)
A 正確な時間管理
B 一定の時間間隔で MCU/無線モジュール をウェイクアップ
と言った動作が可能になります。
このアプリケーションノートでは『 RV-3028-C7 』 の独自の機能を利用して、バッテリ駆動の システムでバッテリ寿命を延ばすために使用できる機能のいくつかについて説明します。特にワイヤレス センサーノード (WSN) アプリケーションで消費電力を最小限に抑えるために必要な『複数割り込み信号ライン』について記述します。
なお実際にアプリケーションのf/w設計をされる際には、RTCモジュール のレジスタ設定について、十分に実機でも動作評価されることをお勧めします。
2. 複数の割り込み信号ラインを必要とするアプリケーション
2.1 使用例−ワイヤレスセンサーノード (WSN)
多くの低消費電力センサー アプリケーションでは、センサーの測定データを定期的またはオンデマンドで送信するためにワイヤレス通信を実行しています。RF通信機能のあるモバイルエンティティ (歩行者や車両など/下図1.の "Base Station”に相当) が 直接通信にて各センサーノードの取得データを収集できる場合、日和見的なセンサーデータ収集 (OSDC =Opportunistic Sensor Data Coollection) シナリオも可能です。
WSN (Wireless Sensor Node)ドメインでは、ほとんどの場合、バッテリの節約を優先させるため RFリンクをあまり使用しません。非常に低消費電力のアプリケーションでは無線トランシーバーはほとんどの時間をスリープ状態にする必要があります。 システムはまず設定されたシーケンスに従って基地局(Base Station) が通信を開始するのを待つ必要があります。
そのためセンサーノードの無線トランシーバーは一定間隔で通信を開始したい基地局をリッスンする必要があります。 このスニッフィング操作は、適切な起動待ち時間を提供するのに十分な頻度で実行する必要がありますが、継続的では無く断続的に行うため消費電流は非常に少なくなります。 そしてバッテリー寿命とセンサーノードのデータ収集頻度の間には大きなトレードオフがあります。 非常に頻繁に (1〜10 秒) データの収集と送信が必要な場合は、バッテリーの容量を大きくするか、または頻繁にバッテリーを交換または充電するか、または何らかの環境発電(ソーラーパワーなど)の電源に接続する必要があります。
2.2 WSN におけるキーとなるコンポーネント
真の超低消費電力デバイスを必要とするこのようなアプリケーションでは、最小限のエネルギー容量で主要な機能を実現できる主要コンポーネントを選択することが不可欠です。
(表1)ワイヤレスセンサーノードにおけるキーとなるコンポーネント | |
ホスト MCU |
センサー読み取り、データ処理、データ準備、および低電力 (スリープ モード) 対応の |
センサー |
必要な内容 (温度、圧力など) の物理的な定量値を提供します。 |
無線トランシーバー |
最小限の電力で無線データ伝送機能を確保し、応答性を維持しながらできるだけ多くの時間、 |
バッテリー |
通常、アプリケーションの制限要因 (頻繁な交換や再充電は不可能な場合が多い) として |
RTCモジュール |
時刻情報の保持、タイムスタンプ、タイマー、アラーム割り込み信号出力が可能。 |
2.3 アプリケーションのタイミングの制約
このようなWSN の定常時の動作では 下(図2)の様に別々の 2 つのタイミングを管理する必要があります。
1 つは RFスニッフィング (TSNIFF) 用で、もう 1 つはセンサー読み取り (TSENSE) 用です。
典型的な低消費電力アプリケーションの要求では、センサー測定は 1 分を超える周期 (TSENSE) で実行されると考えられます。または時間または日単位で定義することもできます。 対照的にスニッフィング周期 (TSNIFF) は、測定データを収集する基地局によって送信される通信要求を検出するために、数秒の範囲にあると予想されます。
今日の最先端のトランシーバーにはウェイクアップ レシーバーが組み込まれており、外部ストローブ信号で定期的に (通常は 1〜5 秒) スニッフィングしながら、超低消費電力で IC を動作させることができます。 スニッフィング中に特別にコード化されたウェイクアップメッセージが検出されると WSN が自律的にウェイクアップし、ホスト MCU を完全にウェイクアップして、アプリケーション関連のアクティビティ (データのダウンロード、アプリケーション パラ メータの再構成など) を含む通信セッションを開始します。
上述の通り、このようなアプリケーションには『2 つの独立した割り込み=2 つの異なる周期を持つ物理信号』が必要です。 1つの信号が RF トランシーバーを頻繁に起動してスニッフィングを実行し基地局との通信を可能にする必要があります。 もう 1 つの割り込みは、センサーの読み取りとエッジ コンピューティングに必要なデータ処理 (計算、フィルタリングなど) を実行し、データをメモリに保存するために MCU を ( 通常はスニッフィングよりも低い頻度で )ウェイクアップさせる必要があります。
通常は外付けのRTC モジュールは『繰返しカウントダウンタイマ』または『アラーム』にて MCU をウェイクアップする目的で単一の割り込みラインで設計されています。 RTCモジュールは超小型パッケージのため端子数が限られています。そこで通常の割り込み信号出力の『INT端子』の他に、『CLKOUT端子』を、2つめの割り込み信号出力端子として活用することで、この問題を解決します。
2.4 CLKOUT出力を割込み信号として使う方法
アプリケーションで複数の異なる周期の割り込み間隔が必要な場合、『1つの割り込みライン』のみではMCUとRF無線通信チップを個別にトリガーしてウェイクアップ/スニッフィング のための割り込みイベントを発生させて、かつ最高の電力効率を得るには十分ではありません。
この制約に対処するために、『RV-3028-C7』 RTC モジュールにて 『 CLKOUT出力端子』を2番目の物理割り込み出力ラインとして活用することで アプリケーションの要件を満たすことが出来ます。
この2番目の割り込みの役割は、RF スニッフィング (TSENSE >>TSNIFF) に使用される時間間隔よりもはるかに長い時間間隔で MCU をウェイクアップすることであるため (図2を参照)、実用的なアプローチは以下を使用することです。
● #2ピン (INT)からは RFスニッフィングの 定期的なカウントダウン タイマー割り込み信号を出力
( High → Lowのトリガ )
● #1ピン (CLKOUT) から "Low から High" の信号をトリガーする MCUウェイクアップの割り込みを出力。
→ MCU のウェイクアップした直後に、消費電流を抑えるためにMCUからRTCモジュールへ割り込み信号のフラグ
のクリアを行いCLKOUTの出力を停止させる通信が必要です。
センサーの読み取りとデータ分析の要件に従って、次のウェイクアップ (TSENSE) の時間間隔を調整できます。
2.4.1 CLKOUT出力を割込み信号として使う使用例
プルアップが必要なオープンドレイン の『INT出力』(図4のB)とは異なり、『CLKOUT』はプッシュプル出力であり MCUの GPIOに直接接続できます。CKLOUTのプッシュプル出力は常に駆動し (High または Low) 単出力方向です。 オープンドレイン出力の場合のようにバス構成で複数のデバイスを一緒に接続することはできません。
以下の回路図は デュアル ウェイクアップ機能を備えた典型的な WSN の回路接続の例を示しています。
(図4)WSNにおけるRV-3028-C7 を用いたデュアルウェイクアップの接続例 |
@ バックアップ スイッチオーバー機能は、デフォルトで無効になっています。 VBACKUP 電源ピンをフローティングのままにしないことをお勧めします(VBACKUP機能を使用しない場合は10 kΩ 抵抗を介して VSSに接続して下さい)。通常 バッテリ駆動の WSN には追加のバックアップバッテリはありません。 |
A Vdd-Gnd間のなるばく近いところに0.1μFのバイパスコンデンサを使用します。 |
BINT端子はオープンドレインのためプルアップ抵抗が必要です(電流制限のためなるべく大きい値を使用して下さい=通常は10kΩが使用されます)。 |
C I2C ライン ・SCL、SDA各端子もオープンドレインのためプルアップ抵抗が必要です。通信を確保しながら電流を制限するため、なるべく大きい値のプルアップ抵抗(通常は10kΩ)でかつなるべく速い通信速度(通常は400kbit/s)で通信時間を最小に抑えます。そのためセンサーの読み取りと新しいアラーム設定を実行するための通信シーケンスは、消費電力を制限するために最小限に抑える必要があります。 |
DCLKOUT出力はMCUのウェイクアップの用途に使用します。 |
E EVI 入力はタンパー検出信号の立ち上がりエッジまたはハイレベルを検出するように設定されています。 |
F INT端子からRF トランシーバーのウェイクアップの割り込み信号を出力します。 信号はアクティブ = Low です。 |
G RFトランシーバーが基地局の存在を検出すると、ウェイクアップ信号が生成されて MCU が起動し、WSN と基地局間の通信が開始されます。 |
この例では、RV-3028-C7 からの CLKOUT信号を ステータス遷移(MCUがスリープ→ウェイクアップ)のための標準のハードウェア割り込みラインとして使用することを前提としています。そのため、この場合の MCU の割り込みフラグマスクは、CLKOUT 割り込み信号 (信号が Low から High に移行する) に対して選択された『アクティブ=High』で設定する必要があります。
標準の INT端子からの割り込み信号の場合はその逆で、信号が High から Low に移行するため『アクティブ =Low』で設定します。
2.4.2 CLKPUT端子の機能
CLKOUT端子は、RTCモジュール内部の32.768 kHz 水晶発振器 をベースにして生成される信号です。 この信号の Duty は 50±10% で 分周機能によりさまざまな周波数の方形信号を生成するようにプログラム可能です。
<CLKOUT周波数の種類の例> |
32.768 kHz |
8192 Hz |
1024 Hz |
64 Hz |
32 Hz |
1 Hz |
『CLKOUT出力』の動作は、レジスタへの書込みで設定します。また割り込み機能にリンクすることができます。
これにより標準の INT端子に加えて2つ目の物理ハードウェア割り込みラインとして使用するオプションが提供されます。
以下(表3) に 『CLKOUT出力』をトリガーすることの出来る 4 つの割り込み機能を示します。
(表3)RV-3028-C7 にて CLKOUT 信号をトリガーすることの出来る 4 つの割り込み機能 | ||
1 | 繰り返しカウントダウンタイマ 割込み信号 | カウントダウンタイマのカウント値が0になると割り込み信号を出力します |
2 | 時刻更新 割込み信号 | 毎秒または毎分のどちらか設定した条件で割り込み信号を出力します |
3 | アラーム 割込み信号 | アラーム設定時刻に割り込み信号を出力します |
4 | 外部イベント入力 割込み信号 | EVI端子に外部イベント入力が検出されると割り込み信号を出力します |
この例では、上述の通りINT端子から出力されれる『繰返しカウントダウンタイマ割り込み信号』は『RFトランシーバーの自動アクティブ化のためのスニッフィング』に使用します。CLKOUT出力は『MCUのウェイクアップ』に使用するため別の割り込み機能を使用します。このホワイトペーパーの例では『アラーム機能』を使用します。『アラーム機能』を使用した場合は、設定した曜日または日/時間/分になると割り込み信号を出力します。
『毎月/毎週/毎日/毎時』までの設定が出来ます。もし『毎分』の必要がある場合は『時刻更新割込み』を使用する方法があります。
2.4.3 『CLKOUT端子』を割込み信号に設定する手順
・『CLKOUT端子』を『割込み信号』として設定するには以下の6ステップの操作で設定します。
ステップ | 内容・設定するレジスタ | 記号 |
1 |
*CLKOUT出力を『Lowレベル』に設定します。 |
|
2 |
*CLKOUT出力の周波数を設定します。 |
|
3 |
*CLKOUT出力を『アラーム』発生時に出力するように設定します。 |
|
4 |
*アラーム発生時に割り込み信号が出力されるように設定 |
|
5 |
*割込み信号のマスク設定でアラーム割り込み信号を有効にする |
|
6 |
*アラーム時刻の設定 |
|
※ |
*(クロック出力割り込み信号の出力後の処理)/ Status レジスタ (0Eh) |
|
(表4)CLKOUT端子からのアラーム割込み信号の出力設定手順 |
多くの関連レジスタはパスワード設定によって書き込み保護ができます。
パスワード設定については、アプリケーション マニュアルの 4.18.USER PROGRAMMABLE PASSWORDを参照してください。
2.4.3.1 EEPROM CLKOUT レジスタ (35h) の設定
<35hアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
EEPROM |
R/W | CLKOE | CLKSY | - | - | PORIE | FD | ||
この例で設定する値 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Bit | 記号 | 値 | 内容 |
7 | CLKOE | 0 | CLKOUTピンからの出力は Low になります(CLKFフラグが "0"の場合) |
1 | CLKOUT端子から設定した周波数のクロックが出力されます −初期値 | ||
6 | CLKSY | 0 | クロック同期がディセーブル |
1 | CLKOUT出力のクロック同期がイネーブル (CLKOEビットまたはCLKFフラグによる)−初期値 | ||
2:0 | FD | 000 to 111 | CLKOUT端子のクロック出力周波数の選択 |
(表5)Control 1 レジスタの設定 |
−CLKOUT 信号を設定するために使用されるレジスタです。
−パスワードによる書き込み保護が可能です。
・ この例では同期は必要ないため、EEPROM CLOCKレジスタ/Bit:6 (CLKSY) はオフとします。
・『CLKOEビット 』がオフになり、CLKOUTピンに割り込み信号クロック出力がない場合は Lowレベル状態のままになります。
<35hアドレス>(つづき)
ステップ1と同じ<35h>レジスタのEEPROM CLKOUT ビット 2:0 (FD) は CLKOUT 周波数を設定します。
この例では、FD ビットで『64Hz』を指定します。
FD の値 | CLKOUTの周波数 |
000 | 32.768kHz −出荷初期値 |
001 | 8192Hz |
010 | 1024Hz |
011 | 64Hz |
100 | 32Hz |
101 | 1Hz |
(表6)FDビットによるCLKOUT周波数の設定 |
MCU の GPIO 割り込み検出ピンがウェイクアップをトリガするには、Low → High での検出が必要です。タイミングの問題を回避するために、RV-3028-C7 の CLKOUT出力 を MCU の確実なウェイクアップを可能にする周波数に設定します。 15μs〜500ms の間で構成可能なステップ持続時間を選択できるため、レベル安定化に十分な長さを確保できるため一般的に使用される割り込みグリッチフィルターを正常に通過します。そのため MCU にはレベル変化を検出する十分な時間が与えられます。
この例での『64Hz』では、MCUのウェイクアップに許容される時間は 7.8125 ms です。 Low→High への最初の遷移は、64 Hzの半周期、つまり 7.8125 ms 後に発生します。
(図5) アラーム割り込み発生後のCLKOUT出力波形。
MCUのウェイクアップ後にフラグクリアによりCLKOUT出力は停止させます。
2.4.3.2 Control 2 レジスタ (10h) の設定
<10hアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Control 2 | R/W | TSE | CLKIE | UIE | TIE | AIE | EIE | 12_24 | RESET |
この例で設定する値 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Bit | 記号 | 値 | 内容 |
6 | CLKIE | 0 | CLKOUT端子からの割込み信号出力はディセーブル −初期値 |
1 |
"1" にするとCLKOUT端子からの割り込み信号出力がイネーブルになります。 |
||
3 | AIE | 0 | アラームイベントが発生した時に INT端子から割り込み信号を発出しない −初期値 |
1 |
アラームイベントが発生した時に INT端子から割り込み信号を発出します。 |
||
(表7)アラーム割り込み信号の Cotrol 2 レジスタの設定 |
−CLKOUT ピンのアラーム発生時の割り込み信号出力の有無を設定します。
−パスワードによる書き込み保護が可能です。
・Control 2レジスタ/Bit:3(AIEビット)を有効にして割り込み信号が出力される設定にします。
・Control 2レジスタ/Bit:6(CLKIEビット)を有効にしてCLKOUT端子からの割り込み信号を有効にします。
2.4.3.3 CLKOUT割り込み信号 マスクレジスタ (12h) の設定
<12hアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Clock Interrupt Mask | R/W | − | − | − | − | CEIE | CAIE | CTIE | CUIE |
この例で設定する値 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Bit | 記号 | 値 | 内容 |
2 | CAIE | 0 | アラーム発生時にクロック出力を出力しない −初期値 |
1 | アラーム発生時にクロック信号を出力する。 | ||
(表7)CLKOUT割り込み信号マスクレジスタ (12h)の設定 |
−CLKOUT ピンからアラーム発生時に割り込み信号が出力される設定にします。
−パスワードによる書き込み保護が可能です。
・CLKOUT割り込み信号マスクレジスタ(12h)/Bit:2(CAIEビット)を有効にして割り込み信号が出力される設定にします。
2.4.3.4 分アラームレジスタ (07h) の設定
<07hアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Minutes Alarm | R/W | AE_M | 40 | 20 | 10 | 8 | 4 | 2 | 1 |
この例で設定する値 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
Bit | 記号 | 値 | 内容 |
7 | AE_M | 0 | 分アラームは有効−初期値 |
1 | 分アラームは無効 | ||
6:0 | Minutes Alarm | 00 to 59 | 分アラームの値 (BDCフォーマット) |
(表7)分アラームレジスタ(07h)の設定 |
−分アラームを有効にし、かつ分アラームの設定を行います。
(この例では『45分』に設定しています)
−パスワードによる書き込み保護が可能です。
・分アラームレジスタ(07h)/Bit:6-0 にて BCDフォーマットに 00〜59 の任意の値を設定します。
・分アラームレジスタ(07h)/Bit:7 (AE_Mビット) にて 分アラームを有効にします。
2 進化 10 進数 (BCD) は、各桁が独自の 4 ビットのバイナリ シーケンスで表されるため10 進数値を表す簡単な方法です。 時間の表記の場合は00〜59 分をコーディングするには 7 ビットで十分です。
(『45分』のBCDフォーマットの例 ↓)
4 | 5 | ||||||
0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
(備考)
この例ではMCUをウェイクアップするためにCLKOUT端子からの割り込み信号は『毎時:45分』に設定されており、MCUのウェイクアップ後もそのままの設定が残ります。センサー読取の間隔を数時間、数日または数週間などに延長する場合は他のアラームレジスタ(時間アラーム、日・曜日アラーム)を設定して下さい。
RV-3028-C7 のアラームイベントの設定について以下(表10)を示します。
詳細はアプリケーションマニュアルの『3.5. ALARM REGISTERS』の項目も参照下さい。
アラーム・イネーブルビット | アラーム・イベント | ||
AE_WD | AE_H | AE_M | |
0 | 0 | 0 | 分、時間、曜日or日 が一致するとアラーム発生( 1週間または1ヶ月に1回 ) |
0 | 0 | 1 | 時間、曜日or日 が一致するとアラーム発生( 1週間または1ヶ月に1回 ) |
0 | 1 | 0 | 分、曜日or日 が一致するとアラーム発生( 1週間または1ヶ月の一日の中で最大24回 ) |
0 | 1 | 1 | 曜日or日 が一致するとアラーム発生( 1週間または1ヶ月に1回 ) |
1 | 0 | 0 | 分、時間 が一致するとアラーム発生( 1日に1回 ) |
1 | 0 | 1 | 時間 が一致するとアラーム発生( 1日に1回 ) |
1 | 1 | 0 | 時間 が一致するとアラーム発生( 1時間に1回 )−このアプリケーションノートでの例 |
1 | 1 | 1 | 全て無効 |
AE_x ビット ( x= WD, H, M ) |
|||
(表10)アラーム・イネーブルビットの設定と実際のアラーム・イベントの関係 |
2.5 割り込み信号 (INT端子)機能
RV-3028-C7 RTC モジュールでは、割り込み INT ピンは 6 種類の異なる割り込み機能を出力することができます。
No. | 割込み信号の種類 | 内容 |
1 | 繰返しカウントダウンタイマ割込み信号 | カウントダウンタイマのカウント値が0になると割り込み信号を出力します |
2 | 時刻更新割込み信号 | 毎秒または毎分のどちらか設定した条件で割り込み信号を出力します |
3 | アラーム割込み信号 | アラーム設定時刻に割り込み信号を出力します |
4 | 外部イベント入力割り込み信号 | EVI端子に外部イベント入力が検出されると割り込み信号を出力します |
5 | 自動バックアップ電源切替え割込み信号 | 電源がメイン電源からバックアップ電源に切り替わった時に割り込みし信号を出力します |
6 | パワーオンリセット割り込み信号 | 電源がVPOR(パワーオンリセット電圧閾値)を下回ると割り込み信号を出力します |
(表11)RV-3028-C7 の割り込み信号の種類 |
INT 端子は、これらの割り込み信号の OR演算結果を出力します。
頻繁なスニッフィング・ウェイクアップには『繰返しカウントダウンタイマ割込み信号』が最適です。
2.5.1 定期カウントダウンタイマ割り込み信号の設定
カウントダウンタイマ割り込みは、5つのステップで設定します。
ステップ | 内容・設定するレジスタ | 記号 |
1 |
*カウントダウンタイマを『有効』にします |
|
2 |
*カウントダウンタイマ を『繰り返し設定』にします。 |
|
3 |
*カウントダウンタイマ の『基準周波数』を設定します。 |
|
4 |
*カウントダウンタイマの『カウントダウン値』を設定します |
|
5 |
*カウントダウンタイマ の割り込み信号出力を『有効』にします。 |
|
(表12)INT端子からのカウントダウンタイマ割込み信号の出力設定手順 |
2.5.1.1 Control1/制御レジスタ
<0Fhアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Control 1 | R/W | TRPT | - | WADA | USEL | EERD | TE | TD | |
この例で設定する値 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
Bit | 記号 | 値 | 内容 |
7 | TRPT | 0 |
0に設定されている場合はタイマは繰返し動作しません。 |
1 |
1に設定されている場合はカウントダウンタイマは繰返し動作になります。 |
||
2 | BSIE | 0 | カウントダウンタイマは有効になっていません −初期値 |
1 | カウントダウンタイマが有効です。 | ||
1:0 | TD | 00 to 11 |
下表のカウントダウンタイマの基準周波数を選択します。 |
(表13)Control 1 レジスタの設定 |
−繰り返しカウントダウンタイマの有効化とタイマ基準周波数を設定します。
−パスワードによる書き込み保護が可能です。
・TRPTビット (Cotrol 1= 0Fh/Bit:7)にてカウントダウンタイマの『繰り返し設定』を行います。
・TEビット (Control 1 = 0Fh/Bit:2) にてカウントダウンタイマを『有効』にします。
・TDビット (Control 1 = 0Fh/Bit:1-0) にてタイマ基準周波数を設定します。
<タイマ基準周波数の選択>
アプリケーションで必要なスニッフィング期間 (TSNIFF) に応じて、4 つの周波数のいずれかを選択できます。
(この例では 『64Hz』を設定します )
TD 値 | タイマ基準周波数 | 1パルス当たりのタイマ時間 | 割込み信号発出時間 (tRTN1) |
00 | 4096Hz -初期値 | 244.14 μs | 122 μs |
01 | 64Hz | 15.625 ms | 7.813 ms |
10 | 1Hz | 1 s | 7.813 ms |
11 | 1/60Hz | 60 s | 7.813 ms |
(表14)タイマ基準周波数の選択 |
上記の例では タイマ基準周波数 は 『64Hz』 に設定されています。
『1パルス当たりのタイマ時間』は 15.625ms であり、
『割込み信号発出時間 (tRTN1)』 (INTピンがLowレベルの状態) は 7.813ms です。
2.5.1.2 Timer Value レジスタ
<0Ah, 0Bhアドレス>
アドレス | 機能 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
0Ah | Timer Value 0 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
この例で設定する値 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
0Bh | Timer Value 1 | 。 | 。 | 。 | 。 | 2048 | 1024 | 512 | 256 |
この例での設定する値 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
(表16)タイマ・カウントダウン値 の設定 (0Ah, 0Bh) |
− Timer Value レジスタ (0Ah, 0Bh) にて12ビットのタイマ・カウントダウン値を設定します。
( 0Ah=下位8ビット、0Bh = 上位4ビット )
・この例では 0Ah/Bit:6 の『64』を"1" とし、他のビットは "0"とします。
スリープ/スニッフィングの期間が長すぎると 応答性が低下する可能性があります。一方で RF トランシーバーを頻繁にトリガーすると 過度の電力消費につながります。従ってアプリケーションと電力消費のバランスに応じた適切なタイマ時間間隔の設定が重要です。タイマ時間間隔の設定値の典型的な例として『1 秒』の外部ストローブ期間が選択されます。
◎『タイマ基準周波数』『タイマ・カウントダウン値』と 『タイマ時間間隔』 は以下の関係です。
・『タイマ基準周波数』×『タイマカウントダウン値』 = 『タイマ時間間隔』
※ この例では 64Hz × 64 = 1s になります。
タイマ・カウントダウン値 |
タイマ時間間隔 | |||
TD=00 (4096Hz) | TD=01 (64Hz) | TD = 10 (1Hz) | TD = 11 (1/60Hz) | |
0 | − | − | − | − |
1 | 244.14 μs | 15.625 ms | 1 s | 1 min |
2 | 488.28 μs | 31.25 ms | 2 s | 2 min |
: | : | : | : | : |
41 | 10.010 ms | 640.63 ms | 41 s | 41 min |
64 | 15.625 ms | 1 s | 64 s | 64 min |
205 | 50.049 ms | 3.203 s | 205 s | 205 min |
410 | 100.10 ms | 6.406 s | 410 s | 410 min |
2048 | 500.00 ms | 32.000 s | 2048 s | 2048 min |
: | : | : | : | : |
4095 (FFFh) | 0.9998 s | 63.984 s | 4095 s | 4095 min |
(表15)タイマ・カウントダウン値、タイマ基準周波数 と タイマ時間間隔の関係 |
2.5.1.3 Control2/制御レジスタ
<10hアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Control 2 | R/W | TSE | CLKOE | UIE | TIE | AIE | EIE | 12_24 | RESET |
この例で設定する値 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
Bit | 記号 | 値 | 内容 |
4 | TIE | 0 |
繰り返しカウントダウンタイマのイベント発生時に INT端子から割り込み信号を発出しない |
1 |
繰り返しカウントダウンタイマのイベント発生時に INT端子から割り込み信号を発出する |
||
(表17)Control 2 レジスタの設定 |
−10h/Bit:4 にて繰り返しカウントダウンタイマのイベント発生時の割り込み信号出力を設定します。
・TIEビット (Cotrol 2= 10h/Bit:4)を "1" として割り込み信号出力を有効にします。
2.6 マイコン からのフラグクリア動作
<0Ehアドレス>
機能 | 属性 | Bit:7 | Bit:6 | Bit:5 | Bit:4 | Bit:3 | Bit:2 | Bit:1 | Bit:0 |
Status | R/W | EEbusy | CLKF | BSE | UF | TF | AF | EVF | PORF |
この例で設定する値 | 0 | 1 → 0 | 0 | 1 | 0 | 1 → 0 | 0 | 0 |
Bit | 記号 | 値 | 内容 |
6 | CLKF | (クロック出力割り込み信号フラグ) | |
0 | "1" → "0" にクリアされると クロック出力割り込み信号は停止します | ||
1 |
事前に "0"にセットされていた場合にはクロック出力割り込み信号のイベントが発生したことを示しています。 |
||
2 | AF | (アラームフラグ) | |
0 | "0" の場合はアラームイベントが発生していません。 | ||
1 |
事前に "0"にセットされていた場合にはアラームイベントが発生したことを示しています。 |
||
(表18)アラームフラグ・クリア時のStatus レジスタの動作 と CLKOUT出力の停止 |
−Statusレジスタ (0Eh) の CLKFビット(Bit:6) とAFフラグ(bIT:2)にて 割込み信号及びアラームのフラグをクリアします。
・MCUがスリープ時にRTCモジュールからの 『クロック出力割り込み信号』でウェイクアップを受けたら、最初にI2C経由でRTCモジュールに接続し 『クロック出力割り込み信号フラグ』をクリアします(消費電流を抑えるため)。同時に『アラームフラグ』もクリアします。
※このレジスタの<UFフラグ>は『時刻更新割込み信号フラグ』のため、クリアしても次の時刻更新時(1秒以内または1分以内)にフラグが立ちます。これは特にその都度クリアする必要はありません。
※<POPRFフラグ>はパワーオンリセット(POR)のフラグです。このフラグは必ず起動直後のシーケンスでクリアして下さい。
(図7)クロック出力・アラーム割り込み信号とクリア動作のタイミングチャート
・MCUが このウェイクアップ信号を受けた後は、次のアラーム発生時のための準備と消費電流を抑えるために、必ず直後にRTCモジュールのこの両方のフラグをクリアしてして下さい。
・アラーム割り込み信号で設定出来る時間間隔は最小で1時間に1回です。
(毎分の割り込み信号が必要な場合は 時刻更新割込み信号 を使用することが出来ます)
・クロック出力割り込み信号の出力の際に INT端子からのRFトランシーバーへのスニッフィング割り込み信号も出力されるため
若干消費電流が増加しますが、TSENSE の間隔はTSNIFF よりも長いため、増加分はごくわずかな値 (<1%) です。
・消費電流を抑えるため、スリーブ時のMCUのI2Cインターフェースはオフとすることを推奨します。
2.7 主なメリット
RTCモジュールでRFトランシーバーのスニッフィングと、MCUのウェイクアップのトリガを行う事の最大のメリットは MCUのスリープの状態を長くさせることが出来る点にあります。MCUの実際の稼働時間は下(図8)の様に最小限に抑えられます。
MCUは測定時(温度などの)とRFトランシーバーの送受信の間のみ定期的にアクティブになります。
過去の設計では、
−アイドルリスニング:送受信するデータが無い場合でも センサーノードが通信の監視を行います。ノードはデータ遅延を避けるためにに定期的にリッスンする必要があり、データ量が少ない場合でもその分の電力消費が発生します。
−オーバーヒアリング:ノードが近隣から意図しないパケットを受信したときに発生します。特にネットワーク密度が高く、データトラフィックが多い場合に電力消費につながります。
といった問題がありましたが、RTCモジュールにて無線トランシーバーのスニッフィングと MCUのウェイクアップを行うことにより、超低消費電流の効率的な構成となり、アイドルリスニング 及び オーバーヒアリング の問題を最小化することが出来ます。
2.8 アプリケーションの最適化
WSN における動作の最適化は、スリープ/スニッフィング/ウェイクアップ時間のスケジュールを修正することで可能です。
RTCモジュールの割り込み信号の設定は、MCUとのI2C通信にて行います。
詳しくは アプリケーションマニュアル もご参照下さい。
センサーノードの電力低下 や 計算処理負荷が高すぎる場合には、MCUからの設定で割り込み信号のタイミングを調整することで改善しバッテリーの寿命を延ばすことが出来ます。
MCUからの設定を流動的に運用することで、WSNは柔軟な設定変更を行うことが出来て運用を継続できます。
この場合の必要な負担は スリープ/アクティビティ時間とインターバルのパラメータ化された増減に合わせてマイコンのアプリケーションコードを作成する事のみです。
2.9 バッテリー寿命の考察
WSN のバッテリー寿命の見積りには多くの要因を考慮する必要があります。
−センサー測定の消費電流 及び 測定頻度
−MCUのアクティブ時の計算処理量
−送信データのサイズ 及び 送信頻度
さらに、
−伝送距離
−使用するMPUの処理能力と消費電流、動作クロック周波数
−ソフトウェアコード(不十分なコーディングは消費電流が増える場合があります)
−周辺デバイス、および応答時間
などの要素も含めて分析する必要があります。
各コンポーネントの オン/オフ状態での消費電流と、それぞれの持続時間を測定または計算することで必要なエネルギー量(バッテリ要領)を把握し、そこから製品寿命/コスト/サイズ/その他の要件とのトレードオフを管理することが可能になります。
またバッテリーの自己放電は、通常、電力消費の大きな原因であることが知られています (年間最大 10% の容量損失)。 アプリケーションに合わせてバッテリーの種類を慎重に選択し必要に応じて環境発電デバイス(ソーラー発電など)を追加することをお勧めします。
このアプリケーションノートで記述している WSN電力管理のアプローチは、MCUのスリープモードになる時間が動作時間の実に99%以上になる理想的に最適化されたユースケースです。
RV-3028-C7 RTCモジュール は、計時モードでわずか 50nA Typ. の消費電流で、一般的な高性能 RFトランシーバー及び MCUでは、ディープ スリープおよびスニッフィング モードでの平均消費電流が合計で 500nA程度です。そのため WSNの消費電流を 99%の時間で1μA以下に抑えることが出来ます。
(図9)WSNにおけるアクティブモードの時間割合
(外付けRTCモジュールを用いた場合)
3. まとめ
エネルギー効率の高い設計は、1 つまたは 2 つの要因だけに依存するわけではありません。 代わりに、要因の適切な組み合わせが必要です。 ノWSN内のコンポーネントの選択からルーティング アルゴリズムの選択まで、組み合わせは WSN ネットワークのエネルギー消費に大きな影響を与えます。
MicroCrystal の RTC で利用可能な機能は、MCUベースの WSNハードウェアだけでは対処できない消費電力に関する設計上の課題を解決します。最も消費電力の少ないコンポーネントの RTCモジュールは、他のコンポーネントのタスクがアクティブになっておらず、再起動時の MCU の完全な初期化に必要な時間がアプリケーションで問題にならない (MCU がディープ スリープ モードで待機しても良い) 場合に、常時オンのデバイスとして理想的な選択肢です。 あるいはRTCモジュールはバックアップ電池などでメイン電源から完全に切断されている場合もあります。
RV-3028-C7 の機能によりアプリケーションの設計をより低消費電流化させ、バッテリーの長寿命化につながります。またXTALベースのRTCモジュールの時刻精度も活用することが出来ます。
このアプリケーションノートでは、RV-3028-C7 の『INT端子』及び『CLKOUT端子』を使用して2つの独立したタイミングの割り込み信号ラインの使い方について、実際のレジスタ設定の例を挙げて記述しました。それにより無線トランスミッターのスニッフィングとMCUのウェイクアップのトリガーとなる割り込み信号をRTCモジュールから発出してシステムのスケジュール管理に用いることが出来ます。
RTCモジュールは従来は単なる時刻情報のためのコンポーネントとして重視されて来ませんでしたが、活用方法によりアプリケーションの大幅な低消費電流化、それに伴うバッテリの小型化や機器そのものの小型化など、製品の付加価値を高めるために有効な手段になります。
機器の新規設計の際には、ぜひご検討下さい。
4. お問合せ先
・(株)多摩デバイス お問合せ先(日本国内)
( mailto: microcrystal@tamadevice.co.jp)
または お問合せフォーム
・Microcrystal 問い合わせ窓口(スイス/グレンヘン)
( mailto: marketing@microcrystal.com )
( mailto: tech-support@microcrystal.com )
5. 関連資料
・RV-3028-C7 アプリケーション・マニュアル | Download |
・リアルタイムクロックモジュールのよくあるお問合せとガイダンス(ホワイトペーパー) | Download |
<関連情報>
・ RV-3028-C7 超低消費電流・電源切替機能付きリアルタイムクロックモジュール
・ホワイトペーパー一覧
・型番毎のテクニカルインフォメーション
・ RV3028-Raspi バックアップ電池付きの評価ボード