MWSDK(TWELITE SDK)
MONO WIRELESS INC.
MWSDK
MWSDK
  • TWELITE SDK (MWSDK) マニュアル
  • はじめに
    • TWELITE SDK 利用規定
    • サポート、対応
    • モノワイヤレスソフトウェア使用許諾書
    • TWELITE SDKの構成
  • 最新版の取得
    • TWELITE SDK 改版履歴
  • TWELITE SDKの使用法
    • TWELITE SDKのインストール
    • VSCode での利用
    • フォルダ構成
    • コマンドラインでのビルド方法
    • ビルド定義について
      • Makefile について
      • Version.mk について
      • binファイル命名則
    • ファームウェア書換
      • ファームウェア書換用配線
      • tweterm.py
  • TWELIET NET API 解説
    • 用語
    • TWELITE NET ライブラリ構造
    • TWENET 動作フロー
      • 始動フロー
      • メインループフロー
      • 無線関連フロー
      • ハードウェアフロー
      • ユーザ定義イベント処理関数フロー
    • ソースコードの構造
    • モジュール
    • 無線パケット
      • パケットの最大長
      • アドレスの指定
      • アプリケーションID
    • ネットワークについて
      • 単純ネット
        • 送信
        • 受信
      • 中継ネット
        • 親機の実装
        • 中継器の実装
        • 子機の実装 (MININODES)
        • NBビーコン方式の接続
        • 中継ネットのアドレス
        • 上位アドレスを固定した静的中継
  • TWELITE NET API リファレンス
    • コールバック関数
      • cbAppColdStart()
      • cbAppWarmStart()
      • cbToCoNet_vMain()
      • cbToCoNet_vRxEvent()
      • cbToCoNet_vTxEvent()
      • cbToCoNet_vNwkEvent()
      • cbToCoNet_vHwEvent()
      • cbToCoNet_u8HwInt()
    • TWELITE NET関数
      • ToCoNet_vMacStart()
      • ToCoNet_bMacTxReq()
      • ToCoNet_u32GetSerial()
      • ToCoNet_u32GetRand()
      • ToCoNet_vSleep()
      • ToCoNet_vDebugInit()
      • ToCoNet_vDebugLevel()
      • ToCoNet_u32GetVersion()
      • ToCoNet_bRegisterAesKey()
      • ToCoNet_vRfConfig()
      • ToCoNet_vChConfig()
      • ToCoNet_Tx_vProcessEventQueue()
      • ToCoNet_u16RcCalib()
    • 中継ネット API
      • functions
        • ToCoNet_Nwk_bInit()
        • ToCoNet_Nwk_bStart()
        • ToCoNet_Nwk_bPause()
        • ToCoNet_Nwk_bResume()
        • ToCoNet_Nwk_bTx()
      • Structure
        • tsTxDataApp (中継ネット)
        • tsRxDataApp (中継ネット)
        • tsToCoNet_Nwk_Context
      • LayerTree ネット
        • ToCoNet_NwkLyTr_psConfig()
        • ToCoNet_NwkLyTr_psConfig_MiniNodes()
        • tsToCoNet_NwkLyTr_Context
    • 型 typedef, よく使うマクロ
    • 構造体
      • sToCoNet_AppContext
      • tsRxDataApp
      • tsTxDataApp
    • TWELITE NET マクロ
      • ToCoNet_REG_MOD_ALL()
      • utils.h
    • ユーザ定義イベント処理関数
      • ステート(状態)
      • イベント
      • ToCoNet_Event API
        • ToCoNet_Event_Register_State_Machine()
        • ToCoNet_Event_Process()
        • ToCoNet_Event_SetState()
        • ToCoNet_Event_vKeepStateOnRamHoldSleep()
        • ToCoNet_Event_u32TickFrNewState()
    • モジュール ライブラリ
      • ENERGY SCAN
      • NB SCAN
    • PRSEV ライブラリ
    • グローバル変数
      • uint32 u32TickCount_ms
      • sToCoNet_AppContext (静的変数)
    • PANIC
  • HW API リファレンス
    • ペリフェラル
      • ADC
        • adc.c
      • DIO
      • TickTimer
      • UART
        • SERIAL ライブラリ
          • SERIAL_vInit()
          • SERIAL_vInitEx()
          • SERIAL_bRxQueueEmpty()
          • SERIAL_i16RxChar()
          • SERIAL_vFlush()
          • tsSerialPortSetup
          • tsUartOpt
        • fprintf ライブラリ
          • vfPrintf()
          • vPutChar()
          • tsFILE
      • Timer
        • Timerライブラリ
          • vTimerConfig()
          • vTimerStart()
          • vTimerStop()
          • vTimerDisable()
          • tsTimerContext
      • WakeTimer
      • I2C
      • SPI
    • Flash, EEPROM
      • EEPROM
      • Flash
  • Utils リファレンス、他
    • ByteQueue
    • u8CCITT8()
    • SPRINTFライブラリ
    • BTMライブラリ(連照式 DIO 入力 )
GitBook提供
このページ内
  • 単純ネット
  • 中継ネット
  1. TWELIET NET API 解説

ネットワークについて

前へアプリケーションID次へ単純ネット

最終更新 3 年前

TWELITE NETでは無線パケットの配送について、2つの方式を用意しています。

単純ネット

単純ネットでは、アプリケーションIDとアドレスのみでの通信を行います。電波範囲内の通信は自由です。親機と子機という概念も存在せず、アプリケーションが役割を決定します。

例えば、ショートアドレスを 0 を親局とし、子局は1〜100の最大101台のネットワークです。子局は常にアドレス 0 に送信すれば親局への通信となります。

単純ネットでは以下の通信を行います。

  • ショートアドレスを指定した通信

  • ロングアドレスを指定した通信

  • 電波到達範囲全てに行う同報通信

また、通信の成功を知る方法も用意されています。

  • 送信先から確認パケットを受け取る MAC ACK 通信

MAC ACK は、相手先への到着確認が出来る(例外的に正しく確認ができない場合があります。)という点で便利ですが、相手先のアドレスが事前にわかっていなければなりません。

MAC ACK を使用する場合は、一定回数の再送が自動的に行われますが、電波状況が良い場合は再送がありませんが、悪い場合は最大回数再送を行う振る舞いをします。対して使用しない場合は、常に2回または3回同じパケットを送信します。どちらが良いかはケースバイケースです。

MAC ACK を使用する場合の難点の一つが、中継を行う場合です。子局が親局へ中継機を通じて通信したい場合、子局は送信前に親局へ直接送信するか、中継機に送信するかを決めなければ MAC ACK は利用できません。事前に設置時に送り先が決まっていれば問題ありませんが、多くのアプリケーションでは動的に近い局に送信するような設置をする要求がありますが、最も近在にあり通信可能性が高い局を決定するには、少なくとも1往復の通信が必要になります。この通信は失敗する場合もありますし不確実な中継先を選ぶ可能性もあります。また電池消耗の原因にもなります。安定した通信が見込める中継機が確定し、その状態が維持される限り効率的な通信が可能ですがそうでない場合は、通信途絶など不安定なネットワークになります。

など、単純ネットを用いるアプリケーションでは、MAC ACK を敢えて使用せず、同報通信により中継を行っています。パケットが一定回数中継したらそれ以上中継しない、同じパケットは再度中継しないという2つの単純なルールにより中継を行います。中継段数が多くない場合はそれほど効率は悪化しませんし、なによりも、子局がパケットを送りさえすれば、周りに中継機が居る限り常に親局へ届く可能性が高いという点で安定的です。

中継ネット

中継ネットは、ネットワークの構成などに一定の条件を定め、その範囲で中継ネットワークの構築と配送を自動化します。

App_Twelite