読者です 読者をやめる 読者になる 読者になる

ブログ

クソブログ

TIの新版Sensor Tagが技術基準適合証明を取得

技適取得機器の調べ方

www.tele.soumu.go.jp

上記ページで調べたいモノの情報の一部を入力すれば検索可能です。「氏名または名称」フォームに「テキサス」と入力して、下の方の送信ボタンを押すと以下のように新版のセンサタグ(CC2650STK)が登録されていることを確認できます。

f:id:XX-Prime:20150801155258p:plain

今年の4月16日にすでに取得されていたようですが、この検索ページに出てきたのは最近だと思います。

これで新版センサタグを日本国内で使用しても暗殺される危険性がなくなりました。

空中線電力の規定

新版センサタグはBLEとZigbeeの両方の通信方式に対応しています。それに応じて、空中線電力の規定も2つあって、

  • F1D 2402~2480MHz(2MHz間隔40波) 0.0012W
  • G1D 2405~2480MHz(5MHz間隔16波) 0.0007W/MHz

となっています。上がBLE、下がZigbee用の規定です。

新版センサタグは、Devpackという安価で小さな基板を使って簡単に自作プログラムをアップロードできますが、出力電波強度を変更する際に上の規定を守るにはどの定数を選べばよいか調べてみます。

出力電波強度の設定

センサタグはファームウェアソースコードIDE(クラウドコンパイラもある)が手に入るのでサルでも簡単に開発ができます。センサタグアプリのApplicationディレクトリにあるSensortag.cで出力電波強度の設定ができます。デフォルトでは以下のようにGAP_ADTYPE_POWER_LEVELで0dBmが指定されています。

// GAP - SCAN RSP data (max size = 31 bytes)
static uint8_t scanRspData[] =
{
// complete name
0x11, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
'C', 'C', '2', '6', '5', '0', ' ', 'S', 'e', 'n', 's', 'o', 'r', 'T', 'a', 'g',

// connection interval range
0x05, // length of this data
GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),
HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),
LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),
HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),

// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
0 // 0dBm
};

実はこれは実際の強度設定ではなく、BLEスキャンコマンドへの応答データの文字列を設定しているだけです。 

実際の強度設定は、

HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_MINUS_21_DBM);

というように強度設定関数をSensortag.cのSensorTag_init(void)の中で書けばOKです。

参考:

c - How to modify the TI SensorTag Firmware to advertise indefinitely? - Stack Overflow

上のリンクの情報は旧版センサタグのもので、設定可能な値が異なりますが問題なく機能します。

新版で指定可能な値は、Includeディレクトリにあるhci.hで確認できます。

#if defined( CC26XX ) || defined( CC13XX )
#define HCI_EXT_TX_POWER_MINUS_21_DBM LL_EXT_TX_POWER_MINUS_21_DBM
#define HCI_EXT_TX_POWER_MINUS_18_DBM LL_EXT_TX_POWER_MINUS_18_DBM
#define HCI_EXT_TX_POWER_MINUS_15_DBM LL_EXT_TX_POWER_MINUS_15_DBM
#define HCI_EXT_TX_POWER_MINUS_12_DBM LL_EXT_TX_POWER_MINUS_12_DBM
#define HCI_EXT_TX_POWER_MINUS_9_DBM LL_EXT_TX_POWER_MINUS_9_DBM
#define HCI_EXT_TX_POWER_MINUS_6_DBM LL_EXT_TX_POWER_MINUS_6_DBM
#define HCI_EXT_TX_POWER_MINUS_3_DBM LL_EXT_TX_POWER_MINUS_3_DBM
#define HCI_EXT_TX_POWER_0_DBM LL_EXT_TX_POWER_0_DBM
#define HCI_EXT_TX_POWER_1_DBM LL_EXT_TX_POWER_1_DBM
#define HCI_EXT_TX_POWER_2_DBM LL_EXT_TX_POWER_2_DBM
#define HCI_EXT_TX_POWER_3_DBM LL_EXT_TX_POWER_3_DBM
#define HCI_EXT_TX_POWER_4_DBM LL_EXT_TX_POWER_4_DBM
#define HCI_EXT_TX_POWER_5_DBM LL_EXT_TX_POWER_5_DBM
#else // CC254x
#define HCI_EXT_TX_POWER_MINUS_23_DBM LL_EXT_TX_POWER_MINUS_23_DBM
#define HCI_EXT_TX_POWER_MINUS_6_DBM LL_EXT_TX_POWER_MINUS_6_DBM
#define HCI_EXT_TX_POWER_0_DBM LL_EXT_TX_POWER_0_DBM
#define HCI_EXT_TX_POWER_4_DBM LL_EXT_TX_POWER_4_DBM
#endif // CC26XX/CC13XX

新版では最強の+5dBmから最弱の-21dBmまで設定可能なようです。

上で見たとおり、TIが取得した技適では0.0012Wが上限なので、0.8dBmが上限ということになります。よって、日本国内で問題なく設定可能なのはHCI_EXT_TX_POWER_0_DBMが上限です。それより大きい値を設定すると逮捕・監禁・打首・獄門の憂き目にあうので注意しましょう。

まとめ

技適取得から検索ページに出てくるまでのタイムラグ(約3ヶ月?)をなんとかしてほしい。