-1

これについて私にアドバイスをください:

モートから信号が送信された時刻を取得したい (SFD ピンが 1 から 0 になったときに割り込みを生成することを考えていた) そのための解決策は見つかりませんでしたが、このコンポーネントを見つけました: コンポーネント: tos.chips.cc2420_tkn154.CC2420TransmitP

これはcc2420Txを提供し、必要な時間を与えてくれるようです. しかし、デフォルトではcc2420_tkn154フォルダーのコンポーネントではなく、cc2420フォルダーのコンポーネントを使用するため、どうにか使用できません。

主なアイデアは、信号を送信してから ack を受信するまでの時間を測定したいということです。マイクロ秒の精度が必要です。これらはすべて、2 つのモート間の距離を取得するのに役立ちます。

どんなアイデアも役に立ちます。フォーラム、tinyos のドキュメント、例など、あらゆる場所を検索しました。

ありがとうございました :)

4

1 に答える 1

0

どのくらい低レベルを取得したいのかわかりませんが、タイマーがある場合、nesC ではタイマーが起動するたびにローカル時間を取得できます。

uint32_t timestamp;

event void myTimer.fired() {

    timestamp = call myTimer.getNow();
    printf("Timestamp: %ld \n", timestamp);
}

タイマーがない場合は、コンポーネント LocalTimeMilliC を使用できます。これを構成ファイルに追加します。

components LocalTimeMilliC;
TestC.LocalTime -> LocalTimeMilliC;

...そして、実装のモジュール セクションで:

uses interface LocalTime<TMilli>;

...そしてコード内:

timestamp = call LocalTime.get();

ただし、モートをリセットすると、各モートの現地時間は再び開始されます。異なる時間を同期する必要があります。モート間の距離を計算する場合、これは最善の方法ではない可能性があります。この論文の要約から引用するには:

展開されたセンサー ノードの位置は、TOA、TDOA、または受信信号強度 (RSS) 測定のいずれかによって見つけることができます。

RSSIの場合、フォルダーtinyos-2.1.1/apps/tutorialsにデモがあります。

于 2013-09-03T10:23:01.857 に答える