3

STM32 マイクロコントローラ プラットフォーム上にセンサー ネットワーク用のカスタム プロトコルを実装しましたが、そのプロトコル スタックを Linux カーネルに移植するのがよい時期になりました。

状況は次のとおりです。機能がほとんど組み込まれていないカスタム無線送信機 (NRF24L01+) があります。しかし同時に、帯域幅と消費電力に対する高い要件があるため、単純な NRF24L01+ 機能の上にタイム シェアリング アルゴリズム (DTDMA) を設計して実装しました。また、接続の信頼性のために、再送信を処理するトランスポート層プロトコルを実装しました (少し変更されたスライディング ウィンドウ プロトコルを使用)。私たちのネットワークはスター トポロジーを持っているので、ルーティングはここでは必要なく、今後も変わらないようです。

また、相手側のリソースが少なすぎて、完全な TCP/IP プロトコル スタックを実装できないことにも注意してください。したがって、カスタム軽量プロトコルは必須です:(。

したがって、本質的には 3 つのレイヤーがあります。

  • ハードウェアドライバー (NRF24L01+)
  • 時分割アルゴリズム
  • パケット制御アルゴリズム

問題は、(アーキテクチャ的に) タイム シェアリング アルゴリズムをどこに置くべきかということです。

私が理解しているように、NRF ドライバーを実装する最良の方法はlinux/netdevice.hインターフェイスを使用することであり、パケット制御 (スライディング ウィンドウ) にはlinux/net.hインターフェイス ( struct proto_opsを使用) を使用することです。しかし、時分割がどのように、どこに収まるかわかりません。

どんな助けでも大歓迎です。前もって感謝します :)。

4

0 に答える 0