ブログ

どこでもでむ − 通信プロトコルの作り方(その2)

こんにちは、中の人CHOです。

その1で予備知識として、無線のめんどくささを説明してみました。

で、ようやく通信プロトコルの話になります。

色々な人が使う公共の場で、混信せず、しかも収容台数が多くなっても通用し、しっかりデータを届くようにするにはどうすればいいのでしょう?

携帯電話網のようなキャリアしか使わない専用帯域であればきっちりとしたプロトコルを作成し、効率のよいものが作れるでしょう。時分割方式にしても設計した通りに動くでしょう。

公共の場で、そんなのうまく動かないです。誰かが邪魔したら前提条件が全部崩れます。なので誰かが邪魔することを前提としてください。

最低限必要なのは、「自分のデータだとわかるようにする」または「自分のデータでないものを受け取っても誤動作しない」です。

極端なことを言うと、他にサーキットデザインの製品を使っている人が同じ通信設定で使っていると、自分のデータではないものが届く恐れがあるということです。公共の場なので、ありうります。他の人が他者のLoRa🄬通信機器を使っている場合(429MHzではまず無いですが)、通信の物理部分は同じなのでサーキットデザインのモデムにも届いてしまいます。しかし中のフォーマットが違うのでゴミとして排除するのでユーザー側は気が付きません。しかし通信ができなくなる現象になります。920MHzのLoRa🄬はこの現象は多いでしょう。

自分のデータかどうかを判別するには暗号化するのがいいのですが、それはこちらで説明します。

それ以外のコツとしては、

①送信データは、なるべく短くする。

通信中の不具合を少なくします。ノイズ等にぶつかる確率を下げられるからです。

②受信したらACKを返す。送信側はACKが来るまで回数を決めて再度送信する。

確実に届いたことがわかります。

③ ①②をおこなっても破綻しないような通信量、端末数に抑える

他人の通信があるかもしれません。また自分の端末が増えたせいで通信できなくなるかもしれません。なので通信間隔とリトライ間隔には余裕を持つこと。逆にいうと、ぎちぎちで通信しないと間に合わないような用途には使わないほうがよいと思います。

後は運用するチャネルを増やすことで収容台数を増やすこともできますが、アンテナと無線機はチャネル数分だけ必要となります。

かなり大雑把に説明してきましたが、うまくプロトコルを作成し、安定した通信ができることを願っております。