panda's tech note

Advent Calendar 2020: ソフトウェア無線

注意LimeSDR などのソフトウェア無線は技術基準適合証明(通称,技適)を受けていないため,これらの機器を日本国内で無線機として利用することは電波法により禁じられています。無線機として使用するためには,実験試験局免許を取得するか電波暗室・シールドボックスなどの設備を使用する必要があります。または,アンテナの代わりにケーブルとアッテネータを用い有線接続をし電波を発しないようにすることで,無線通信ではなく有線通信とはなりますが実験することができます(この場合も電波が漏れないように注意してください)。このページを参照される方は,実験される国や地域の法令などを遵守するようにご注意ください。また,実験等はご自身の責任でお願いします。

Day 10: プロトコル設計(物理層)

今日は,IEEE 802.11 の PLCP に相当する物理層のプロトコル設計を行います。変調方式としては,4日目から7日目までに取り扱った BPSK をベースにします。QPSK や QAM にも対応しようと思いますが,PLCP にあたる部分は BPSK を採用します。

まず,物理層のプロトコル設計ですが,電波環境に合わせて多様な変調方式や符号レート(ビットエラーの訂正のためにデータを冗長に送る冗長化レート)を使用できるようにするために,その変調方式や符号レートをヘッダで指定します。このヘッダは,信号を受信したすべての端末がデコードできるように最も低いエラー率・高い符号レートで送信することが一般的です。今回は基本的な変調方式および符号レートとして,BPSK で誤り訂正符号はなしとします。BPSKで誤り訂正符号がなしなので,シンボルレートとビットレートは一致します。

+------------+------------+-------------+------------+------------+-----------+
| Preamble   | Preamble   | Modulation/ | Reserved   | Length     | CRC16     |
| (SYNC)     | (SFD)      | Code rate   |            |            |           |
+------------+------------+-------------+------------+------------+-----------+
 128 symbols  16 symbols   8 bits        8 bits       16 bits      16 bits

Preamble (SYNC) は 10101010 ... 1010101010 が交互に現れるビット列が128ビット(128シンボル)分続きます。その後に Start Frame Delimiter (SFD) として 00101011 11010100(ユニークワードと同じ)が16ビット(16シンボル)が続きます。SFDの後ろには物理層のヘッダ部として,変調方式・コードレート8ビットと予約領域8ビット,パケット長16ビットおよびCRC16 (CRC-16-CCITT: ( x^{16} + x^{12} + x^5 + x^1 )) によるチェックサム16ビットが入ります。データリンク層にもフレームのチェックサムがありますが,このヘッダで指定する変調方式によりデータリンク層のフレームを復調するため,ヘッダでもエラー検出するようにします。なお,CRCは,Modulation/Code rate以降,Lengthまでの32ビットに対し計算します。また,パケット長は CRC16 チェックサムの後ろのデータリンク層のフレームの長さをシンボル数単位で表します。

Modulation/Code rateについて,このヘッダの変調方式・誤り訂正符号と同じBPSK変調,誤り訂正符号なしを 0x01 とします。また,シンボルレートはここまで実装してきたものに倣って,1シンボルあたり10 us(100K symbols per second)とします。

今日のまとめと明日の予定

基本的にはBPSKの送受信で扱ったことの復習になりますが,今日は物理層のプロトコル設計を行いました。明日はこのプロトコルを実装します。