SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
一人でも SNEP 開発




      一人でもシリーズ
SNEP って?
●   Simple NDEF Exchange Protocol
●   「簡単に NDEF を交換しよう」プロトコル
●   「交換」だけど、一方向
       –   片方が送信して、片方が受信する
       –   それを繰り返すと交換もできる
NDEF って?
●   NFC Data Exchange Format
●   データ交換するときのフォーマット
       –   NFC カードに NDEF 形式で書き込む
             ●   NFC R/W で読み込む
       –   SNEP で NDEF データを転送する
       –   SNEP で NDEF データを受信する
SNEP を使う利点は?
●   NFC 端末同士で NDEF データを交換できる
      –   NFC カードを必要としない
      –   容量制限がない
            ●   人間の忍耐が必要になるかもしれんが…
●   動的なデータ作成が可能
      –   状況に応じたデータを送信
            ●   Android Beam のような使い方
実際はどうやるの?
●   NFC 端末同士の通信
      –   NFC は数 cm の距離でしか通信しない
      –   つまり、端末を向かい合わせる必要がある
●   向かい合わせる方法
      –   2 台の端末を一人が持つ
            ●   確実だけど、相手に渡すのはイヤだ
      –   二人で向かい合わせる
            ●   安心だけど、長時間はきつい
自分から相手へ転送する
    ●   自分アプリが NDEF データを作る
    ●   自分アプリが、 SNEP PUT で転送
    ●   相手アプリが、受信
    ●   相手アプリが、 NDEF データ解析


                SNEP   SNEP

application                    application
相手にデータを要求する
    ●   自分アプリが、 SNEP GET で転送要求
    ●   相手アプリが、 NDEF 転送
    ●   自分アプリが受信して、 NDEF データ解析



                SNEP      SNEP

application                      application
これから、細かい話になります
SNEP の下
●   SNEP は「 NDEF 交換のためのプロトコル」
●   その下に、通信制御する「 LLCP 」がいる
●   NFC Forum で規定されている




      SNEP                       SNEP



             LLCP         LLCP
LLCP の下
●   LLCP は通信制御プロトコル
●   その下にデータ交換の「 NFC-DEP 」がいる
●   NFCIP-1 のデータ交換プロトコル




        LLCP              LLCP




                NFC-DEP
SNEP の実装をするとき
●   SNEP を作りたいと思ったら…
      –   LLCP の実装
      –   NFC-DEP の実装
●   下から順に作っていこう
      –   そして順番に動作確認していく
もう少し細かい話をします。
     RC-S956 に実装したときの話です。
RC-S620/S のコマンドリファレンスマニュアルを見て、
そこにないものは PN533 のマニュアルから情報を得ています。
よって「正しいのか?」といわれると、よくわからないです。
RC-S956 とは
●   PaSoRi RC-S370 や RC-S620/S に搭載され
    ている FeliCa チップ
      –   RC-S330 も、おそらくそう
      –   RC-S320 は、たぶん違う
●   NFC R/W 用チップ
      –   モバイル用のチップではない
NFC-DEP
●   NFCIP-1 でのデータ交換プロトコル
      –   「 NFC-DEP 」という名前は、 NFC Forum の名称
●   データ交換方法
      –   DEP_REQ と DEP_RES を使っている
●   データ交換の前に「接続」という作業がある
      –   ATR_REQ と ATR_RES で行う
●   接続の前に通信設定をしなくては
      –   Initiator か Target か
      –   Active か Passive か
      –   通信速度
NFC-DEP の実装
●   RC-S956 がけっこうやってくれる
●   Target になるとき
        –   TgInitTarget コマンドを使う
                 ●   通信設定は Initiator まかせ
        –   ATR_REQ や RLS_REQ は自分で処理する
        –   GeneralBytes は、自分でさばく
                 ●   データは LLCP によって決められている
●   Initiator になるとき
        –   InJumpForDEP コマンドを使うと楽
                 ●   通信パラメータは自分で考える
        –   ATR_RES は自分で処理する
        –   GeneralBytes は、自分でさばく
        –   データ転送は InDataExchange コマンドを使うと楽
LLCP
●   DEP に載せるデータなので、 DEP 方式には依存しないが、 NFC
    Forum が「 LLCP は NFC-DEP を使う」となっている。
●   IEEE 802.2 と近いものがあるようだ
●   NFC-DEP は Initiator→Target へ送信し、 Target が Initiator に
    返信するという NRM 通信 (Normal Response Mode) だが、 LLCP
    は双方で交換する ABM(Asynchronous Balanced Mode) 通信を
    行う。
        –   転送するデータがないときには相手に送信権を渡す
               ●「転送するものがないよ」を転送する
        –   つまり、ずっと何かを転送し続けることになる
●   データは PDU というタイプとペイロードがセットになったものを転送
        –   NDEF ではない
LLCP の実装
●   NFC-DEP の API を、 Initiator/Target 関係なく使えるようにしておい
    た方がいい
        –   私はそうしてないので、 LLCP が Initiator と Target で別実装に
             なってしまった
●   「サービス」と「サービス検索」がまだわかってない
        –   nfcpy という実装を相手に通信したのだが、サービス検索を使わな
              いと SNEP が始められなかった
        –   実装的な方言なのか、何か別のルールがあるのか…
●   ドキュメントが、なんかわかりにくい
        –   シーケンスが載っていないので、何が正しいかよくわからない
SNEP
●   LLCP までは、データ形式はなんでもよい
●   NFC Forum 標準のデータ形式である NDEF を交換するするために
    は、 LLCP の上にプロトコルを用意する必要があった。
       –   Android NDEF Push Protocol というものも LLCP を使っ
             ているが、 SNEP 発表前なので Android 独自プロトコルに
             なってしまった。
●   非常にシンプル
       –   主に、 PUT と GET をするだけ。
       –   LLCP は 1 PDU で転送できるデータサイズが小さいので、 SNEP 層
             がデータを細切れにしたりつなぎ合わせたりすることになるだろ
             う。
SNEP の実装
●   LLCP の API を Initiator/Target 関係なく使えるようにしておかない
    と、ここもそれぞれの実装にわけないといけなくなってしまう
●   めんどうだったら、 NDEF サイズを 128byte 以内に限定しておくと、
    データの分割と結合をやらなくてよくなる
        –   128byte は、 LLCP での最小単位
●   NFC-DEP の最高速度が 424kbps なので、けっこう時間がかかる
        –   接続までの通信は、ほぼ固定時間になるだろう
        –   ABM 通信なので、相手から「次のデータ送って」という通信が分割
              した回数だけ発生する
        –   無線の部分が 424kbps というだけなので、 R/W との通信速度も
             ボトルネックになる
                ●   RC-S956 はデフォルトだと 115kbps なので、こっちの影
                     響の方が大きい
やってみた感想
●   LLCP がよくわからなくて大変だった。
      –  未だによくわからん…
●   R/W 間の距離が近すぎるとうまくいかなかった。
      –   1cm くらいのプラスチックを挟んだ
●   Passive 通信だと、 R/W の位置関係が微妙にずれた
    だけでうまくいかないことがあった。
                               ちかすぎ
最後に
●   SNEP 対応している端末がないと、おもしろくない
●   電話じゃない SNEP 対応端末が出てくれないだろうか
      –   LLCP 端末でもいいや
      –   電話は嫌い

Contenu connexe

Tendances

月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号Hirokuma Ueno
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発Hirokuma Ueno
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)Hirokuma Ueno
 
月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)Hirokuma Ueno
 
避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -Tomoki YAMASHITA
 
About FeliCa Lite(日本語)
About FeliCa Lite(日本語)About FeliCa Lite(日本語)
About FeliCa Lite(日本語)Hirokuma Ueno
 
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LTTatsuya Ueda
 
メタデータを用いたEnOceanプロトコルの汎用変換
メタデータを用いたEnOceanプロトコルの汎用変換メタデータを用いたEnOceanプロトコルの汎用変換
メタデータを用いたEnOceanプロトコルの汎用変換Hiroyuki Maeomichi
 
避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-Tomoki YAMASHITA
 
NFC TagInfoでタグを読む
NFC TagInfoでタグを読むNFC TagInfoでタグを読む
NFC TagInfoでタグを読むtreby
 

Tendances (11)

月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
 
月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)
 
月刊NDEF 5月号
月刊NDEF 5月号月刊NDEF 5月号
月刊NDEF 5月号
 
避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -
 
About FeliCa Lite(日本語)
About FeliCa Lite(日本語)About FeliCa Lite(日本語)
About FeliCa Lite(日本語)
 
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
2011/08/27 第3回 静岡 IT Pro勉強会 インフラ部 LT
 
メタデータを用いたEnOceanプロトコルの汎用変換
メタデータを用いたEnOceanプロトコルの汎用変換メタデータを用いたEnOceanプロトコルの汎用変換
メタデータを用いたEnOceanプロトコルの汎用変換
 
避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-
 
NFC TagInfoでタグを読む
NFC TagInfoでタグを読むNFC TagInfoでタグを読む
NFC TagInfoでタグを読む
 

Similaire à 一人でもSNEP開発

RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続Michiya Tominaga
 
Android NFCアプリハンズオン
Android NFCアプリハンズオンAndroid NFCアプリハンズオン
Android NFCアプリハンズオンTomoki YAMASHITA
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419エイシュン コンドウ
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)Ryuichi Yasunaga
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVRToru Makabe
 
Maglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load BalancerMaglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load Balancerkuro kuro
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-mainShotaro Uchida
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばYoshihiro Nakajima
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~モノビット エンジン
 
『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』Juniper Networks (日本)
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Tomoya Hibi
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!シスコシステムズ合同会社
 
13apr2013 kernelvm8-main
13apr2013 kernelvm8-main13apr2013 kernelvm8-main
13apr2013 kernelvm8-mainShotaro Uchida
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 

Similaire à 一人でもSNEP開発 (20)

RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続RasPiからSEILにL2TP/IPSec接続
RasPiからSEILにL2TP/IPSec接続
 
NFC切手
NFC切手NFC切手
NFC切手
 
Android NFCアプリハンズオン
Android NFCアプリハンズオンAndroid NFCアプリハンズオン
Android NFCアプリハンズオン
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
UnicastWS vol.1
UnicastWS vol.1UnicastWS vol.1
UnicastWS vol.1
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
 
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)
3GPP 5G NSA Detailed explanation 5(EN-DC Handover Call Flow)
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 
Maglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load BalancerMaglev: A Fast and Reliable Software Network Load Balancer
Maglev: A Fast and Reliable Software Network Load Balancer
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 
『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』『WAN SDN Controller NorthStarご紹介 & デモ』
『WAN SDN Controller NorthStarご紹介 & デモ』
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
【Interop tokyo 2014】 ネットワークの高度な可視化〜企業向けSDNポリシー制御まで!
 
13apr2013 kernelvm8-main
13apr2013 kernelvm8-main13apr2013 kernelvm8-main
13apr2013 kernelvm8-main
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 

Plus de Hirokuma Ueno

nRF51のGPIOTEについて
nRF51のGPIOTEについてnRF51のGPIOTEについて
nRF51のGPIOTEについてHirokuma Ueno
 
Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Hirokuma Ueno
 
Nordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみましたNordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみましたHirokuma Ueno
 
月刊NDEF 2013年12月号
月刊NDEF 2013年12月号月刊NDEF 2013年12月号
月刊NDEF 2013年12月号Hirokuma Ueno
 
旅行カバンとNFC
旅行カバンとNFC旅行カバンとNFC
旅行カバンとNFCHirokuma Ueno
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiHirokuma Ueno
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみようHirokuma Ueno
 
MIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsMIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsHirokuma Ueno
 
FeliCa Liteの片側認証
FeliCa Liteの片側認証FeliCa Liteの片側認証
FeliCa Liteの片側認証Hirokuma Ueno
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるHirokuma Ueno
 
財布を忘れると困る
財布を忘れると困る財布を忘れると困る
財布を忘れると困るHirokuma Ueno
 
発券機のNFC対応
発券機のNFC対応発券機のNFC対応
発券機のNFC対応Hirokuma Ueno
 
ものに愛着を持たせる
ものに愛着を持たせるものに愛着を持たせる
ものに愛着を持たせるHirokuma Ueno
 

Plus de Hirokuma Ueno (17)

nRF51のGPIOTEについて
nRF51のGPIOTEについてnRF51のGPIOTEについて
nRF51のGPIOTEについて
 
Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2
 
Nordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみましたNordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみました
 
About FeliCa Lite-S
About FeliCa Lite-SAbout FeliCa Lite-S
About FeliCa Lite-S
 
月刊NDEF 2013年12月号
月刊NDEF 2013年12月号月刊NDEF 2013年12月号
月刊NDEF 2013年12月号
 
旅行カバンとNFC
旅行カバンとNFC旅行カバンとNFC
旅行カバンとNFC
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRi
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみよう
 
MIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess ConditionsMIFARE ClassicのAccess Conditions
MIFARE ClassicのAccess Conditions
 
FeliCa Liteの片側認証
FeliCa Liteの片側認証FeliCa Liteの片側認証
FeliCa Liteの片側認証
 
らくがき
らくがきらくがき
らくがき
 
NFCテルミン
NFCテルミンNFCテルミン
NFCテルミン
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
 
財布を忘れると困る
財布を忘れると困る財布を忘れると困る
財布を忘れると困る
 
はじめてのNFC
はじめてのNFCはじめてのNFC
はじめてのNFC
 
発券機のNFC対応
発券機のNFC対応発券機のNFC対応
発券機のNFC対応
 
ものに愛着を持たせる
ものに愛着を持たせるものに愛着を持たせる
ものに愛着を持たせる
 

Dernier

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Dernier (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

一人でもSNEP開発

  • 1. 一人でも SNEP 開発 一人でもシリーズ
  • 2. SNEP って? ● Simple NDEF Exchange Protocol ● 「簡単に NDEF を交換しよう」プロトコル ● 「交換」だけど、一方向 – 片方が送信して、片方が受信する – それを繰り返すと交換もできる
  • 3. NDEF って? ● NFC Data Exchange Format ● データ交換するときのフォーマット – NFC カードに NDEF 形式で書き込む ● NFC R/W で読み込む – SNEP で NDEF データを転送する – SNEP で NDEF データを受信する
  • 4. SNEP を使う利点は? ● NFC 端末同士で NDEF データを交換できる – NFC カードを必要としない – 容量制限がない ● 人間の忍耐が必要になるかもしれんが… ● 動的なデータ作成が可能 – 状況に応じたデータを送信 ● Android Beam のような使い方
  • 5. 実際はどうやるの? ● NFC 端末同士の通信 – NFC は数 cm の距離でしか通信しない – つまり、端末を向かい合わせる必要がある ● 向かい合わせる方法 – 2 台の端末を一人が持つ ● 確実だけど、相手に渡すのはイヤだ – 二人で向かい合わせる ● 安心だけど、長時間はきつい
  • 6. 自分から相手へ転送する ● 自分アプリが NDEF データを作る ● 自分アプリが、 SNEP PUT で転送 ● 相手アプリが、受信 ● 相手アプリが、 NDEF データ解析 SNEP SNEP application application
  • 7. 相手にデータを要求する ● 自分アプリが、 SNEP GET で転送要求 ● 相手アプリが、 NDEF 転送 ● 自分アプリが受信して、 NDEF データ解析 SNEP SNEP application application
  • 9. SNEP の下 ● SNEP は「 NDEF 交換のためのプロトコル」 ● その下に、通信制御する「 LLCP 」がいる ● NFC Forum で規定されている SNEP SNEP LLCP LLCP
  • 10. LLCP の下 ● LLCP は通信制御プロトコル ● その下にデータ交換の「 NFC-DEP 」がいる ● NFCIP-1 のデータ交換プロトコル LLCP LLCP NFC-DEP
  • 11. SNEP の実装をするとき ● SNEP を作りたいと思ったら… – LLCP の実装 – NFC-DEP の実装 ● 下から順に作っていこう – そして順番に動作確認していく
  • 12. もう少し細かい話をします。 RC-S956 に実装したときの話です。 RC-S620/S のコマンドリファレンスマニュアルを見て、 そこにないものは PN533 のマニュアルから情報を得ています。 よって「正しいのか?」といわれると、よくわからないです。
  • 13. RC-S956 とは ● PaSoRi RC-S370 や RC-S620/S に搭載され ている FeliCa チップ – RC-S330 も、おそらくそう – RC-S320 は、たぶん違う ● NFC R/W 用チップ – モバイル用のチップではない
  • 14. NFC-DEP ● NFCIP-1 でのデータ交換プロトコル – 「 NFC-DEP 」という名前は、 NFC Forum の名称 ● データ交換方法 – DEP_REQ と DEP_RES を使っている ● データ交換の前に「接続」という作業がある – ATR_REQ と ATR_RES で行う ● 接続の前に通信設定をしなくては – Initiator か Target か – Active か Passive か – 通信速度
  • 15. NFC-DEP の実装 ● RC-S956 がけっこうやってくれる ● Target になるとき – TgInitTarget コマンドを使う ● 通信設定は Initiator まかせ – ATR_REQ や RLS_REQ は自分で処理する – GeneralBytes は、自分でさばく ● データは LLCP によって決められている ● Initiator になるとき – InJumpForDEP コマンドを使うと楽 ● 通信パラメータは自分で考える – ATR_RES は自分で処理する – GeneralBytes は、自分でさばく – データ転送は InDataExchange コマンドを使うと楽
  • 16. LLCP ● DEP に載せるデータなので、 DEP 方式には依存しないが、 NFC Forum が「 LLCP は NFC-DEP を使う」となっている。 ● IEEE 802.2 と近いものがあるようだ ● NFC-DEP は Initiator→Target へ送信し、 Target が Initiator に 返信するという NRM 通信 (Normal Response Mode) だが、 LLCP は双方で交換する ABM(Asynchronous Balanced Mode) 通信を 行う。 – 転送するデータがないときには相手に送信権を渡す ●「転送するものがないよ」を転送する – つまり、ずっと何かを転送し続けることになる ● データは PDU というタイプとペイロードがセットになったものを転送 – NDEF ではない
  • 17. LLCP の実装 ● NFC-DEP の API を、 Initiator/Target 関係なく使えるようにしておい た方がいい – 私はそうしてないので、 LLCP が Initiator と Target で別実装に なってしまった ● 「サービス」と「サービス検索」がまだわかってない – nfcpy という実装を相手に通信したのだが、サービス検索を使わな いと SNEP が始められなかった – 実装的な方言なのか、何か別のルールがあるのか… ● ドキュメントが、なんかわかりにくい – シーケンスが載っていないので、何が正しいかよくわからない
  • 18. SNEP ● LLCP までは、データ形式はなんでもよい ● NFC Forum 標準のデータ形式である NDEF を交換するするために は、 LLCP の上にプロトコルを用意する必要があった。 – Android NDEF Push Protocol というものも LLCP を使っ ているが、 SNEP 発表前なので Android 独自プロトコルに なってしまった。 ● 非常にシンプル – 主に、 PUT と GET をするだけ。 – LLCP は 1 PDU で転送できるデータサイズが小さいので、 SNEP 層 がデータを細切れにしたりつなぎ合わせたりすることになるだろ う。
  • 19. SNEP の実装 ● LLCP の API を Initiator/Target 関係なく使えるようにしておかない と、ここもそれぞれの実装にわけないといけなくなってしまう ● めんどうだったら、 NDEF サイズを 128byte 以内に限定しておくと、 データの分割と結合をやらなくてよくなる – 128byte は、 LLCP での最小単位 ● NFC-DEP の最高速度が 424kbps なので、けっこう時間がかかる – 接続までの通信は、ほぼ固定時間になるだろう – ABM 通信なので、相手から「次のデータ送って」という通信が分割 した回数だけ発生する – 無線の部分が 424kbps というだけなので、 R/W との通信速度も ボトルネックになる ● RC-S956 はデフォルトだと 115kbps なので、こっちの影 響の方が大きい
  • 20. やってみた感想 ● LLCP がよくわからなくて大変だった。 – 未だによくわからん… ● R/W 間の距離が近すぎるとうまくいかなかった。 – 1cm くらいのプラスチックを挟んだ ● Passive 通信だと、 R/W の位置関係が微妙にずれた だけでうまくいかないことがあった。 ちかすぎ
  • 21. 最後に ● SNEP 対応している端末がないと、おもしろくない ● 電話じゃない SNEP 対応端末が出てくれないだろうか – LLCP 端末でもいいや – 電話は嫌い