概要
LoRa(Long Range)は、Semtech社が開発・特許を持つ無線変調方式です。LPWAカテゴリの物理層技術として、数km〜数十kmの長距離伝送を低消費電力で実現します。「LoRa」は変調方式そのものを指し、ネットワーク規格は別途LoRaWANとして定義されています。
LoRaの核心は**チャープスペクトラム拡散(CSS: Chirp Spread Spectrum)**という独自の変調技術です。周波数を連続的に変化させる「チャープ」信号を使うことで、ノイズや干渉に対して極めて高い耐性を発揮し、微弱な電波でも数km先のゲートウェイが受信できます。この特性により、山間部・地下・建物内など電波の届きにくい場所でも安定した通信が可能です。
歴史・背景
LoRaの技術的ルーツは、フランスのスタートアップCycleo社が開発したCSSベースの変調方式にあります。Semtech社は2012年にCycleo社を買収し、その技術をもとにLoRa変調ICを開発・商品化しました。
2013年にSemtech社がLoRa対応トランシーバーIC「SX1272」を発売し、開発者コミュニティの注目を集めました。2015年にはLoRa Allianceが設立され、LoRaを物理層として使うネットワーク規格「LoRaWAN」が策定されたことで、エコシステムが急速に拡大しました。
現在はSX1276・SX1261・SX1262などの後継ICが広く使われており、多数のモジュールベンダーがLoRaモジュールを提供しています。また2020年以降はSemtech自身が「LR-FHSS(Long Range Frequency Hopping Spread Spectrum)」という補完技術も追加し、大量デバイス収容能力を強化しています。
技術仕様
チャープスペクトラム拡散(CSS)の原理
LoRaはCSSという変調方式を採用しています。チャープ(chirp)とは、時間とともに周波数が連続的に変化する信号です:
上りチャープ: 周波数が低→高へ線形に変化
下りチャープ: 周波数が高→低へ線形に変化
LoRaでは上りチャープをシンボルの基本単位とし、
位相のスタート位置でデータをエンコードします。
CSSの特性として:
- 周波数オフセット(ドップラーシフト)に強い
- マルチパスフェージングへの耐性が高い
- 同一の拡散係数(SF)を使う信号は直交性を持つ
スプレッディングファクタ(SF)
LoRaの重要パラメータがSF(Spreading Factor)です。SF7〜SF12の6段階があり、数値が大きいほど遠距離・低速・高消費電力になります:
| SF | シンボルレート | ビットレート(BW=125kHz, CR=4/5) | 到達距離(目安) | 送信時間(10byte) |
|---|---|---|---|---|
| SF7 | 976 sym/s | 5.5kbps | 2〜3km | 56.6ms |
| SF8 | 488 sym/s | 3.1kbps | 4〜5km | 102.9ms |
| SF9 | 244 sym/s | 1.8kbps | 6〜7km | 185.3ms |
| SF10 | 122 sym/s | 0.98kbps | 8〜10km | 370.7ms |
| SF11 | 61 sym/s | 0.54kbps | 10〜13km | 741.4ms |
| SF12 | 30.5 sym/s | 0.29kbps | 13〜15km | 1482.8ms |
帯域幅(BW)
帯域幅の選択肢:
- BW=125kHz: 最も一般的。日本の920MHz帯で使用可能
- BW=250kHz: データレートが2倍。欧州等で使用
- BW=500kHz: データレートが4倍。主に下り通信に使用
コーディングレート(CR)
前方誤り訂正(FEC)の割合:
- CR=4/5: オーバーヘッド25%。通常環境
- CR=4/6: オーバーヘッド50%。やや干渉が多い環境
- CR=4/7: オーバーヘッド75%
- CR=4/8: オーバーヘッド100%。非常に干渉が多い環境
受信感度
LoRaの最大の特徴は優れた受信感度です:
| SF | 受信感度(BW=125kHz) |
|---|---|
| SF7 | -123 dBm |
| SF8 | -126 dBm |
| SF9 | -129 dBm |
| SF10 | -132 dBm |
| SF11 | -134.5 dBm |
| SF12 | -137 dBm |
一般的なZigBeeやBluetoothの受信感度は-90〜-100dBm程度であるため、LoRaはそれより30〜40dB(電力で1000〜10000倍)感度が高いことになります。
送信出力
日本の電波法に基づく920MHz帯の規定:
- 最大送信電力: 250mW(24dBm)
- ただし通常は20dBm(100mW)以下を使用するケースが多い
動作原理
SX1262を使った送受信の流れ
LoRaトランシーバーIC(SX1262等)はSPIインターフェースで制御します:
// SX1262 LoRa送信の例(SPI経由)
void lora_send_packet(uint8_t *data, uint8_t len) {
// 1. スタンバイモードへ移行
sx1262_set_standby(STDBY_RC);
// 2. パケットタイプをLoRaに設定
sx1262_set_packet_type(PACKET_TYPE_LORA);
// 3. 周波数設定(920.8MHz)
sx1262_set_rf_frequency(920800000UL);
// 4. 送信電力設定(+14dBm, PA設定)
sx1262_set_tx_params(14, RADIO_RAMP_200_US);
// 5. LoRAパラメータ設定(SF=7, BW=125kHz, CR=4/5)
sx1262_set_modulation_params(LORA_SF7, LORA_BW_125, LORA_CR_4_5, 0);
// 6. パケット設定(プリアンブル8、明示ヘッダ、CRC有効)
sx1262_set_packet_params(8, LORA_PACKET_VARIABLE_LENGTH, len, 1, 0);
// 7. TXバッファに書き込み
sx1262_write_buffer(0x00, data, len);
// 8. 送信開始(タイムアウト=0: 送信完了まで待機)
sx1262_set_tx(0);
// 9. TX完了割り込みを待つ
while (!sx1262_get_irq_status() & IRQ_TX_DONE);
sx1262_clear_irq_status(IRQ_TX_DONE);
}
アダプティブデータレート(ADR)
LoRaWANネットワークサーバーはADR(Adaptive Data Rate)機能により、デバイスのSFを自動調整します。電波状況が良い場所ではSFを下げて速度と容量を改善し、遠距離・悪環境ではSFを上げて到達性を確保します。
用途・ユースケース
農業IoT
田畑の広大な面積をカバーするため、LoRaの長距離通信は農業センサーネットワークに最適です。1台のゲートウェイで半径数km内の数百台のセンサーをカバーできます。
スマートメーター・インフラ監視
電柱や屋外設備への設置が多いインフラ機器は、電池駆動が求められます。LoRaの低消費電力特性により、5〜10年の電池寿命を実現できます。
屋内資産追跡
工場・倉庫内での機材・パレット追跡。屋内でも建物の壁を貫通するLoRaの強力な透過性を活かせます。
プライベートLoRaネットワーク
企業・自治体が独自のLoRaWANゲートウェイを設置して、プライベートIoTネットワークを構築するケースも増えています。
実装・開発のポイント
主要IC・モジュール
| 製品 | メーカー | 特徴 |
|---|---|---|
| SX1261/62 | Semtech | 最新世代。低消費、Sub-GHz |
| SX1276/77/78/79 | Semtech | 旧世代だが普及率高い |
| LLCC68 | Semtech | SX1262の低コスト版 |
| RFM95W | HopeRF | SX1276ベースの低コストモジュール |
| E22シリーズ | EBYTE | SX1262ベース、通信距離が長い |
Arduinoでの実装例
#include <SPI.h>
#include <LoRa.h> // Sandeep Mistry's LoRa library
#define SS_PIN 10
#define RST_PIN 9
#define DIO0_PIN 2
void setup() {
Serial.begin(9600);
LoRa.setPins(SS_PIN, RST_PIN, DIO0_PIN);
if (!LoRa.begin(920800000)) { // 920.8MHz (日本)
Serial.println("LoRa初期化失敗");
while (1);
}
// パラメータ設定
LoRa.setSpreadingFactor(7); // SF7
LoRa.setSignalBandwidth(125000); // 125kHz
LoRa.setCodingRate4(5); // CR=4/5
LoRa.setTxPower(14); // 14dBm
LoRa.enableCrc(); // CRC有効
Serial.println("LoRa初期化完了");
}
void loop() {
// パケット送信
LoRa.beginPacket();
LoRa.print("Hello LoRa!");
LoRa.endPacket();
Serial.println("送信完了");
delay(10000); // 10秒待機
}
アンテナ設計の重要性
LoRaの通信性能はアンテナに大きく依存します。920MHz帯の1/4波長は約8.1cmです。適切なアンテナを使用しないと、理論性能の半分以下しか発揮できないことがあります:
- ホイップアンテナ: 最も一般的。指向性なし、コンパクト
- ダイポールアンテナ: 利得2dBi程度。屋外設置に適切
- 八木アンテナ: 指向性あり、長距離ポイント間通信に有効
- チップアンテナ: 基板実装可能。性能は劣る
他技術との比較
LoRa vs Sigfox
SigfoxはLoRaと同様のLPWA技術ですが、通信事業者が運営するネットワークのみ使用可能(プライベートネットワーク構築不可)という大きな違いがあります。LoRaはSemtech社のICを購入すれば独自ネットワークを構築できます。
| 比較項目 | LoRa | Sigfox |
|---|---|---|
| 変調方式 | CSS | UNB(超狭帯域) |
| プライベートNW | 可 | 不可 |
| 上りデータレート | 0.3〜50kbps | 最大100bps |
| 下りデータ | 通常対応 | 1日8回まで |
| 1日の送信回数制限 | デューティサイクル次第 | 140回/日 |
LoRa vs Wi-Fi HaLow(802.11ah)
Wi-Fi HaLowも920MHz帯を使うLPWA的な技術ですが、最大347MbpsとLoRAより数千倍高速である一方、消費電力も大幅に大きく、電池寿命の点でLoRaに劣ります。大量データを転送するカメラ等のIoTにはWi-Fi HaLow、センサー等少量データにはLoRaという使い分けになります。