8000 GitHub - watalabo/backscatter-tools
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

watalabo/backscatter-tools

Repository files navigation

Backscatter汎用ツール

1.LAUNCHXL-CC1352Pを用いたツール

Texas Instruments Inc.のLaunchPad™ 開発キットLAUNCHXL-CC1352P1及びLAUNCHXL-CC1352P-2で動作するソフトウエアです。

CC1352Pは2.4GHz帯、868/915MHz帯、433MHz帯で動作しBluetooth® Low Energy、Sub-1GHz、Thread、Zigbee®、IEEE802.15.4等の通信プロトコルを搭載可能なSystem On Chipです。

LAUNCHXL-CC1352P1及びLAUNCHXL-CC1352P-2はパソコンとUSBインターフェイスで接続して使用するデバッガ機能とCC1352Pを搭載したボードです。

LAUNCHXL-CC1352P1は868/915MHz帯で20dBm、2.4GHz帯で5dBm出力、

LAUNCHXL-CC1352P-2は868/915MHz帯で14dBm、2.4GHz帯で20dBm出力です。

{width="2.5853608923884512in" height="5.011418416447944in"}

RF信号はボードのパターン・アンテナに接続されています。SMAコネクタに接続する場合は、アンテナ側に接続しているチップ・コンデンサを半田づけでSMAコネクタ側に繋ぎ変えて下さい。

1.1 ソフトウエア開発環境

(1)CC1352Pファームウエア開発環境

 Texas Instruments Inc.の無償の開発環境であるCode Composer Studio(CCS) Version: 9.1.0.00010ソフトウェア開発キット(SDK) SIMPLELINK-CC13X2-26X2-SDK_3.20.00.68を用いて開発しています。この、CCSとSDKのバージョンを使用して下さい。(パソコンを新しくした時に、最新バージョンをインストールしましたがエラーだらけでした)

 完成したファームウエアは、CCSを用いてLAUNCHXL-CC1352Pに搭載されているCC1352Pのフラッシュメモリに書き込みます。

 ファームウエアはCCSのプロジェクトホルダーを公開しています。

CCSのHelp→Getting Started→ImportProjectでプロジェクトホルダーをインポートして下さい。

{width="5.731944444444444in" height="6.714583333333334in"}

(2)Windows用GUI開発環境

Embarcadero C++Bilder XE2を用いて開発しています。

Embarcadero C++Bilderの最新バージョンはアカデミックであれば、1年間無償で使用することが出来ます。これを用いて改造や機能追加をすることが出来ます。

1.2 簡易シグナルジェネレータ

 861~1054MHz及び2360~2500MHzの無変調の連続波又は変調の連続波を発生します。変調は861~1054MHzでは2FSK変調、2360~2500MHzではIEEE802.15.4のOQPSK変調です。

  1. CUI

パソコン上のハイパーターミナル・ソフト(TeraTerm)等で操作します。

   ポート:COMXX:XDS110 Class Aplication/User UART(COMXX)

スピード:115200、データ:8bit、パリティ:Non、ストップビット:1

 ファームウエアのプロジェクトホルダー:SignalGenerator      

(1)周波数設定(861~1054、2360~2500MHz、小数点以下5桁まで指定可能)

freq 2440.1234 ←入力コマンド

ACK_freq[2440.1234]      ←コマンドに対する応答

(2)出力電力設定(0~20dBm)

  pow 3

  ACK_pow[3]

(3)出力時間設定(0.01~600秒)

  tim 10.5

  ACK_tim[10.50]

(4)(1)~(3)の設定値をNVRAMに保存する。

sav

ACK_sav[freq=2440.123400 pow=3 time=10.500000]

(5)NVRAMから設定値を読み出す。

  rea

ACK_rea[freq=2440.123400 pow=3 time=10.500000]

(6)変調設定

  mod 1             ← 1:変調、0:無変調

ACK_mod[1]

(7)電波発射

sta

Output End Time[10501]ms

  1. GUI

プログラムのプロジェクトホルダー:CC1352P_SG_Win

実行ファイル:CC1352P_SG_Win.exe

{width="5.902777777777778in" height="1.3541666666666667in"}

(1) COMポートを選択

LAUNCHXL-CC1352Pの接続しているCOMポートを選択します。

(2) [PortSearch]ボタン

このプログラムの起動後LAUNCHXL-CC1352PをUSB接続した場合などに、このボタンをクリックしてパソコンに接続されているCOMポートの情報を読み込みます。

(3)[Start]ボタン

  電波を発射します。

(4)[Load]ボタン

  NVRAMに保存した設定値を読み込みます。

(5)[Save]ボタン

  現在の設定値をNVRAMに保存します。

(6)CC1352P1/CC1352P-2選択

  LAUNCHXL-CC1352P1又はLAUNCHXL-CC1352P-2を選択します。

(7)[2.4G/900M]ラジオボタン

  どちらの周波数帯域で使用するか選択します。

(8)周波数設定

  周波数を選択又は入力します。入力する場合、小数点以下5桁まで指定可能です。

(9)出力電力設定

  出力電力を選択又は入力します。

(10)出力時間設定

  0.01~600秒の出力時間を選択又は入力します。

(11)[Modulate]チェックボックス

  変調波を発生する場合はチェックします。無変調波の場合はチェックを外します。

1.3 簡易スペクトラムアナライザー

 CC1352Pの受信機能を用いた簡易スペクトラムアナライザーです。861~1054MHz又は2360~2500MHzの間の周波数を順次変化させながらRSSIを測定することで実現しています。

1.3.1ファームウエア

 ファームウエアのプロジェクトホルダー:SpectrumAnalyzer

1.3.2 GUI

プログラムのプロジェクトホルダー:CC1352P_SA_Win

実行ファイル:CC1352P_SA_Win.exe

{width="5.902777777777778in" height="2.861111111111111in"}

(1)COMポートを選択

LAUNCHXL-CC1352Pの接続しているCOMポートを選択します。

(2)[PortSearch]ボタン

このプログラムの起動後LAUNCHXL-CC1352PをUSB接続した場合などに、このボタンをクリックしてパソコンに接続されているCOMポートの情報を読み込みます。

(3)[Start]ボタン

  スペクトラムアナライザー機能を起動します。

  起動中は、[Stop]ボタン以外は操作できません。

(4)[Stop]ボタン

  スペクトラムアナライザー機能を停止します。

(5)[2.4G/900M]選択ラジオボタン

  2.4GHz帯又は900MHz帯を選択します。

(6)[CenterFrequency(MHz)]選択/入力

(7)[Span(MHz)] 選択/入力

(8)[ZeroSpan(TimeDomain)]ボタン

  Spanを0にします。

  この設定で[Start]すると横軸が時間(縦軸はRSSI)に代わりタイムドメインで動作しま

す。

{width="5.895833333333333in" height="2.8541666666666665in"}

100mS毎に発生するIEEE802.15.4パケットを捉えた例

(9)[Bandwidth(kHz)_ID]選択

  CC1352PのReceiver bandwidthを設定しています。

  IDはCC1352Pの内部設定値です。

(10)[RSSI_Avaraging]選択

  指定回数RSSIを測定して平均値を表示します。

  回数に比例して測定時間が増加しますので、[ZeroSpan(TimeDomain)]の時の時間調整

に活用できます。

1.4 IEEE802.15.4パケット送信

 IEEE802.15.4形式のパケットを送信します。

1.4.1 CUI

 パソコン上のハイパーターミナル・ソフト(TeraTerm)等で操作します。

   ポート:COMXX:XDS110 Class Aplication/User UART(COMXX)

スピード:9600、データ:8bit、パリティ:Non、ストップビット:1

 ファームウエアのプロジェクトホルダー:CC1352P_15_4_Tx

(1) ヘルプ画面

'H'、'h'又は'?'に続き[enter]を入力するとヘルプ画面を表示します。

------------------------------------------------------------

fre RF_Frequency(MHz) float

pow RF_Power(dBm) int

dstp Destnation PAN Addr HEX(16bit)

dstm Destnation MAC Addr HEX(16bit)

srcp Source PAN Addr HEX(16bit)

srcm Source MAC Addr HEX(16bit)

pay Payload Chractor char[100]

num Send Number of Packet int

del Delay between Packets int(mS)

csm CSMA(1:ON 0:OFF)

sta Start Send Packet(Press Any Key to Stop)

cw CW Generate 30__600Sec

sav Parameters Save (Load when power is on)

------------------------------------------------------------

------------------------------------------------------------

freq[2440.0000]MHz Power[0]dBm

DstPAN[FFFF] DstMAC[FFFF] SrcPAN[BA01] SrcMAC[BB01]

Payload[0123]

Number of Packet[1000] Delay[10]mS CSMA[1]

------------------------------------------------------------

  上段がコマンドレファレンス、下段が現在の設定値です。

(2) 周波数設定

周波数範囲:2360~2500MHz

分解能  :0.001MHz

例    :fre 2440.001

(3) 送信電力設定

設定範囲 :0~20dBm

例    :pow 10

(4)送信先PAN_ID設定

16進4桁のPAN_IDを設定します。

例    :dstp FFFF

(5)送信先MACアドレス設定

16進4桁のMACアドレスを設定します。

例    :dstm FFFF

(6)送信元PAN_ID設定

16進4桁のPAN_IDを設定します。

例    :stcp BA01

(7)送信元MACアドレス設定

16進4桁のMACアドレスを設定します。

例    :srcm FFFF

(8)ペイロードの設定

  英数字記号を100文字まで設定できます。

(10)送信パケット数の設定

  1~32ビット整数の最大値まで設定可能です。

例    :num 100

(11)パケット送信間隔(mS)

  0~32ビット整数の最大値まで設定可能です。

  例    :del 10

(12)CSMAオン/オフ

  パケット送信に先立ってCSMAを行う、行わないを設定します。

  例    :csm 1

(13)送信スタート

  各設定内容に従ってパケットを発生します。

  例    :sta

(14)無変調連続波(CW)発射

  周波数偏差や送信電力の測定のために無変調連続波を発射します。

  例    :cw 60     ← 60秒間

(15)設定値保存

  現在の設定値をNVRAMに保存します。電源ON時、読みだして設定します。

  例    :sav

1.5 IEEE802.15.4パケット受信

 IEEE802.15.4形式のパケットを受信し、受信したパケットの内容を表示します。

1.5.1 CUI

 パソコン上のハイパーターミナル・ソフト(TeraTerm)等で操作します。

   ポート:COMXX:XDS110 Class Aplication/User UART(COMXX)

スピード:9600、データ:8bit、パリティ:Non、ストップビット:1

 ファームウエアのプロジェクトホルダー:CC1352P_15_4_Rx

(1)ヘルプ画面

'H'、'h'又は'?'に続き[enter]を入力するとヘルプ画面を表示します。

------------------------------------------------------------

fre RF_Frequency(MHz) float

dstm Destnation MAC Addr HEX(16bit)

srcm Source MAC Addr HEX(16bit)

sta Start Receive

sto Stop Receive(Display Statistics)

cw CW Generate 30__600Sec

sp UART speed l:9600 h:230400 BPS

mo Receive Packet Dump Mode

g (G:Good/E:Error)

o (Dump Packet Overview)

d (Dump Packet Details)

sav Parameters Save (Load when power is on)

------------------------------------------------------------

------------------------------------------------------------

freq[2440.0000]MHz

DstMAC[0000] SrcMAC[0000]

UART speed[9600]BPS Receive Packet Dump Mode[g]

------------------------------------------------------------

  上段がコマンドレファレンス、下段が現在の設定値です。

(2)周波数設定

周波数範囲:2360~2500MHz

分解能  :0.001MHz

例    :fre 2440.001

(4) 送信先MACアドレス・フィルター

16進4桁の送信先MACアドレスを設定すると、送信先MACアドレスが一致する

パケットのみ受信します。設定値が"0000"の場合はフィルター・オフです。

例    :dstm 0000

(5)送信元MACアドレス・フィルター

  16進4桁の送信元MACアドレスを設定すると、送信先MACアドレスが一致する

パケットのみ受信します。設定値が"0000"の場合はフィルター・オフです。

例    :srcm BB01

(5) 受信スタート

受信を開始し、受信したパケットの内容を表示します。

Receive Packet Dump Modeが'g'の場合は、1パケット受信毎に、フレームチェック結果がGoodの場合は'G'、Errorの場合は'E'を表示します。

例    :sta

Receive Start

GGGEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

Receive Packet Dump Modeが'o'の場合は、1パケット受信毎に、パケットの概要を表示します。

例    :sta

Receive Start

<GO>RSSI[-18]dBm Seq[5B] SrcPAN[BA01] SrcMAC[BB01] Payload[4]byte

<GO>RSSI[-18]dBm Seq[61] SrcPAN[BA01] SrcMAC[BB01] Payload[4]byte

<NG>RSSI[-96]dBm Seq[68] SrcPAN[3A96] SrcMAC[9575] Payload[33]byte

<GO>はフレームチェックGood、<GO>はErrorです。

Receive Packet Dump Modeが'd'の場合は、1パケット受信毎に、パケットの詳細を表示します。

例    :sta

Receive Start

<GO> RSSI[-18] FCF[8841] Seq[61] Dst[FFFF][FFFF] Src[BA01][BB01]

payload[30 31 32 33 ]

(6) 受信ストップ

受信ストップすると、受信スタートがら受信したパケット数、その中のフレームチェック結果Goodパケット数、Errorパケット数を表示します。

例    :sto

Receive[31] Good[26] Error[5]

(7) 無変調連続波(CW)発射

  周波数偏差の測定のために無変調連続波を発射します。

  例    :cw 60     ← 60秒間

cw[60]Sec END

(8)COMポート(UART)スピード

受信するパケットのレートが高いと、9600BPSでは受信したパケットの内容の表示中に次のパケットが現れて、パケットの取りこぼしをを起こします。スピードを230400BPSにして取りこぼしを少なくします。

例    :sp h

この後、ハイパーターミナル(Teratermなど)のスピードを230400BPSにして下さい。

(9)表示モード切替

パケット内容の表示モードを変更します。

例    :sp g ← g/o/h

(受信スタート中でも変更でします。)

(10) 設定値保存

  現在の設定値をNVRAMに保存します。電源ON時、読みだして設定します。

  例    :sav

1.6 Backscatter TAG用 IEEE802.15.4 8769 ケット受信

 Backscatter TAGのデモシステム用のIEEE802.15.4パケット受信ファームウエアです。Backscatter TAGデモシステム用プログラムと組み合わせて使用します。

1.6.1 CUI

 パソコン上のハイパーターミナル・ソフト(TeraTerm)等で操作します。

   ポート:COMXX:XDS110 Class Aplication/User UART(COMXX)

スピード:230400、データ:8bit、パリティ:Non、ストップビット:1

 ファームウエアのプロジェクトホルダー:BackscatterTAG_15_4_Rx

(1)ヘルプ画面

'H'、'h'又は'?'に続き[enter]を入力するとヘルプ画面を表示します。

------------------------------------------------------------

fre RF_Frequency(MHz) float

sta Start Receive

sto Stop Receive(Display Statistics)

cw CW Generate 30__600Sec

------------------------------------------------------------

------------------------------------------------------------

freq[2440.0000]MHz

------------------------------------------------------------

(2)周波数設定

周波数範囲:2360~2500MHz

分解能  :0.0001MHz

例    :fre 2440.0001

(3) 受信スタート

例    :sta

ACK_sta

  パケットを受信するとパケットのHEXダンプを表示します。

  [パケットレングス(10進)|HEXダンプ]

例) [17|418800FFFFFFFF01BA01BB30313233C037]

(4) 受信ストップ

例    :sta

ACK_sto

(5) 無変調連続波(CW)発射

  周波数偏差の測定のために無変調連続波を発射します。

  例    :cw 60     ← 60秒間

cw[60]Sec END

1.7 Backscatter TAG用 簡易シグナルジェネレータ

 簡易シグナルジェネレータの通信スピードを230400BPSに変更したものです。

 ファームウエアのプロジェクトホルダー:BackscatterTAG_CW_Tx

1.8 Backscatter TAG用 IEEE802.15.4パケット送信

 IEEE802.15.4パケット送信の通信スピードを230400BPSに変更して、コマンドを追加したものです。

ファームウエアのプロジェクトホルダー:BackscatterTAG_Cont_Tx

 Backscatter TAGデモシステム用プログラムと組み合わせて使用します。

1.8.1 CUI

 パソコン上のハイパーターミナル・ソフト(TeraTerm)等で操作します。

   ポート:COMXX:XDS110 Class Aplication/User UART(COMXX)

スピード:230400、データ:8bit、パリティ:Non、ストップビット:1

 ファームウエアのプロジェクトホルダー:BackscatterTAG_15_4_Rx

(1)ヘルプ画面

'H'、'h'又は'?'に続き[enter]を入力すると以下のヘルプ画面を表示します。

------------------------------------------------------------

fre RF_Frequency(MHz) float

pow RF_Power(dBm) int

dstp Destnation PAN Addr HEX(16bit)

dstm Destnation MAC Addr HEX(16bit)

srcp Source PAN Addr HEX(16bit)

srcm Source MAC Addr HEX(16bit)

pay Payload Chractor char[100]

num Send Number of Packet int

del Delay between Packets int(mS)

csm CSMA(1:ON 0:OFF)

sta Start Send Packet(Press Any Key to Stop)

cw CW Generate 30__600Sec

sav Parameters Save (Load when power is on)

--------------------------------------------

rfo RF_open                 ← 追加したコマンド

rfc RF_Close                ← 追加したコマンド

one DstMAC Paylod (Send One Packet)     ← 追加したコマンド

------------------------------------------------------------

------------------------------------------------------------

freq[2440.0000]MHz Power[0]dBm

DstPAN[FFFF] DstMAC[FFFF] SrcPAN[BA01] SrcMAC[BB01]

Payload[0123]

Number of Packet[100] Delay[10]mS CSMA[1]

------------------------------------------------------------

以降、追加したコマンドについて説明します。

(2)RF_open

  ソフトウエア的にRFハンドラをオープンします。

例    :rfo

ACK_rfo

(4) RF_Close

ソフトウエア的にRFハンドラをクローズします。

例    :rfc

ACK_rfc

(5) 1パケット送信

オープンしたRFハンドラを用いて、

指定したMACアドレスに向けて、指定したPayloadのパケットを送信します。

例    :one BA01 ABCDEFG

ACK_one

2.NUCLEO-F446REを用いたツール

STMicroelectronics社製NUCLEO-F446REは、ARMベースの32bitマイクロコンピュータSTM32F446REが内蔵されています。STM32F446REは、浮動小数点演算プロセッサ、128kbyteのRAM、ADC/DACや種々のI/F、180MHzのクロックなどなかなかパワフルです。

ファームウエアの開発には無償のクラウド型開発環境であるmbedを使用しています。

 mbedにログインし、プラットホーム:NUCLEO-F446RE、テンプレート:ADC Internal Temperature Sensor reading example、プログラム名:任意の名称で新しいプログラムの作成を行っで出来た新しいワークスペース上のmain.cppの内容を書き換えると、これから紹介するファームウエアを利用できます。

{width="5.898611111111111in" height="3.928472222222222in"}

2.1 簡易ファンクションジェネレータ

 内蔵のDACを用いて1Hz~50kHzのSine波、方形波、ノコギリ波を発生するファンクションジェネレータ。さらにADCを用いて実効値(rms)を測定するレベルメータを実装しています。

 ファンクションジェネレータの出力信号は「CN7」の「PA4」ピンに出力され、1.65Vを中心に±1.6Vの振幅で出力されます。AC結合で使用する場合はコンデンサで直流成分をカットして下さい。

 レベルメータの入力信号は「CN7」の「PA0」ピンに入力され、1.65Vを中心に±1.65Vの振幅で入力されます。AC結合で使用する場合は電源(3.3V)に1KΩ位の抵抗でプルアップさらにGNDに1KΩ位の抵抗でプルダウンして、コンデンサで直流成分をカットして接続して下さい。

指定されたサンプルレートでAD変換(12bit)して32768サンプル分のFIFOに入力します。レベル測定を指示するとFIFOの先頭から末尾までのデータを用いて実効値(rms)を計算するとともに、12bit AD変換値の平均値を求めます。

ファームウエアのソースコードファイル:SRM32F446RE_FG.cpp

2.1 CUI

(1)ヘルプ画面

'H'、'h'又は'?'に続き[enter]を入力すると以下のヘルプ画面を表示します。

---------------------------------------------------------

PA0:Level Input PA4:Function Generator Output

NNNN Frequency(Hz)

si Sine Wave

sq Square Wave

sa Sawtooth Wave

tr Triangle Wave

hs [500k]SPS ADC( 2uS * 32768Sample = 65.536mS)

ms [100k]SPS ADC( 10uS * 32768Sample = 327.680mS)

ls [10k]SPS ADC(100uS * 32768Sample = 3276.800mS)

lv Level Measure (rms)

---------------------------------------------------------

Sine Wave ls[ 10k]SPS Freq[1000]Hz

---------------------------------------------------------

(2)「1~50000」数値入力

 周波数を指定された値に設定します。

(3) Sine波

 例) si

Sine Wave

(4) 方形波

 例) sq

Square Wave

(5) ノコギリ波

 例) sa

Sawtooth Wave

(6) ハイ・サンプルレート

[500k]SPSに設定します。

 例) hs

hs [500k]SPS [1000]Hz

(7) ミドル・サンプルレート

[100k]SPSに設定します。

 例) ms

ms [100k]SPS [1000]Hz

(8) ロー・サンプルレート

[10k]SPSに設定します。

 例) ls

ls [10k]SPS [1000]Hz

(9) レベル測定

例) lv

Level[0.679]Vrms Avg[2038]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0