NFCとは何か、非接触通信モジュールと動作原理

著者: IT Sectr 公開日: 2026-03-23 読了時間: 8 分

NFC(Near Field Communication)は、最大10センチメートルの距離でデバイス間のデータ交換を可能にする近距離無線通信技術です。NFCは、モバイル電話での非接触決済、ファイル転送、タグの読み取りに使用されています。Grand View Research、2025年によると、世界中のスマートフォンと決済インフラへのNFCの大量導入により、NFCチップ市場は345億ドルに達しました。

重要なポイント

  • NFCは13.56MHzの無線通信規格で、最大10cmの範囲を持ちます。
  • NFCの3つのモード:読み取り/書き込み(R/W)、ピアツーピア(P2P)、カードエミュレーション。
  • NFCはBluetoothと異なり速度は低い(424 kbps)ですが、ペアリング不要で即座に動作します。
  • NFCアンテナはスマートフォンの背面カバーまたはバッテリーに内蔵され、Secure Elementを介してコントローラーに接続されます。
  • 非接触決済(Google Pay、Apple Pay)は、モバイルデバイスでのNFCの最も普及した用途です。

NFCとは?

NFC(Near Field Communication)は、13.56MHzで動作する近距離無線データ伝送規格です。この技術はRFID(無線周波数識別)に基づいており、ISO 14444 — 非接触スマートカードの規格 — と後方互換性があります。データ転送速度は、選択したモードに応じて106、212、または424 kbpsです。

Bluetoothとは異なり、NFCはペアリング手順を必要としません — デバイスを互いに近づけると即座にデータを交換します。最大通信距離は10cmで、傍受に対する自然な保護を提供します。NFC Forumによると、この技術は世界中で30億台以上のデバイスにサポートされており、この数は年間15–20%増加しています。

NFC規格は、Sony、Philips、Nokiaが2004年に設立したコンソーシアムであるNFC Forumによって開発されています。NFC搭載の最初の電話(Nokia 6131)は2006年に発売されましたが、大量普及は2011年のAndroid 4.0(Ice Cream Sandwich)のリリースと2014年のApple Payの開始後に始まりました。今日では、150ドル以上のほぼすべてのスマートフォンがNFCをサポートしています。

電話でのNFCの動作モード

スマートフォンのNFCコントローラーは3つの動作モードをサポートしており、それぞれが独自のタスククラス向けに設計されています。モードの切り替えは、相互作用するデバイスの種類に応じて自動的に行われます。

読み取り/書き込みモード(Reader/Writer)

このモードでは、電話がNFCタグのアクティブリーダーとして機能します。NFCタグ(ステッカー、ブレスレット、ポスター)に近づけると、電話はタグのメモリからデータを読み取ります。タグには48バイトから32KBのメモリが含まれており、URL、テキスト、またはコマンドを保存します。Android Beam(Nearby Shareに置き換えられました)は、リンクや連絡先を転送するためにこのモードを使用していました。

ピアツーピア(P2P)モード

2つのNFCデバイスが直接データを交換します。一方のデバイスがイニシエーターとして機能し、もう一方がターゲットとして機能します。LLCP(論理リンク制御プロトコル)規格が接続を管理し、SNEP(簡易NDEF交換プロトコル)がデータ形式を管理します。P2Pモードは、連絡先、リンクの迅速な転送、またはBluetoothペアリングの開始に使用されます。P2Pモードでの速度は424 kbpsに達します。

カードエミュレーションモード(Card Emulation)

電話が非接触スマートカード — 決済カード、交通パス、アクセスバッジ — をエミュレートします。外部NFCデバイス(POS端末、改札機)は、通常のプラスチックカードと同じように電話と相互作用します。このモードはApple Pay、Google Pay、Samsung Payで使用されています。決済のセキュリティは、Secure Element — 決済カードデータを保存する隔離されたチップ — によって確保されています。

モード使用例Secure Elementが必要
Reader/WriterURLを含むNFCタグの読み取りいいえ
Peer-to-Peer電話間での連絡先転送いいえ
Card EmulationGoogle Payによる決済はい

NFC対Bluetooth:技術比較

NFCとBluetooth LE(低エネルギー)は、よく比較される2つの近距離通信技術です。NFCは接続確立速度(0.1秒)で優れており、ペアリング不要ですが、データ転送速度と範囲で劣ります。Bluetooth LEはペアリングが必要(2–5秒)ですが、最大2 Mbpsの速度と最大100メートルの範囲を提供します。

実際には、NFCとBluetoothは競合するのではなく、互いに補完し合います。NFCは接続開始(ハンドオーバー)に使用されます:NFCがBluetooth接続パラメータ(NFC Bluetooth Handover)を送信するために、デバイスに電話を近づけるだけです。その後、デバイスは高速ファイルまたはオーディオストリーミング転送のためにBluetoothに切り替えます。

スマートフォンにおけるNFCハードウェアアーキテクチャ

スマートフォンのNFCモジュールは、NFCコントローラー、NFCアンテナ、Secure Element(安全な操作のため)の3つのコンポーネントで構成されています。NFCコントローラーは、個別のチップまたは複合通信モジュール(NFC + Bluetooth + Wi-Fi、例:QualcommのWCN3990)の一部です。無線インターフェースと交換プロトコルを管理します。

NFCアンテナは、フレキシブル基板(FPC)またはバッテリーケース上に印刷されたコイルです。アンテナサイズは20×30mm、巻き数は3–5です。アンテナは、13.56 MHzに調整された整合回路を介してコントローラーに接続されます。NXP Semiconductorsによると、効率的なアンテナ動作にはインダクタンスと品質係数の正確な計算が必要です。

Secure Element(eSE)は、個別の暗号化チップ(NXP P71、Samsung S3K)またはSoC内の隔離された領域(iSE — 統合Secure Element)です。決済カードデータを保存し、HCE(ホストカードエミュレーション)のための暗号化操作を実行します。Secure ElementはAndroid/iOSから隔離されています:SWP(シングルワイヤプロトコル)バスを介したAPDUコマンドによってのみ、NFCコントローラーがアクセスできます。

cpp
// Secure Elementと対話するためのAPDUコマンドの例
const uint8_t SELECT_APDU[] = {
    0x00, 0xA4, 0x04, 0x00,            // CLA, INS, P1, P2
    0x07,                               // データ長(7バイト)
    0xA0, 0x00, 0x00, 0x00,             // RID — 登録済み
    0x03, 0x10, 0x10,                   // PIX — アプリケーション識別子
    0x00                                // Le — 期待される応答長
};

// NFCコントローラーを介してSecure Elementにコマンドを送信
NfcStatus nfcStatus = sendApdu(SELECT_APDU, sizeof(SELECT_APDU));

モバイルデバイスでのNFCの応用

電話でのNFCは、非接触決済、交通、オブジェクトへのアクセス、タスク自動化の4つの主要シナリオで使用されています。最も普及している用途は決済システムです:Apple Pay、Google Pay、Samsung Pay。これらは、HCE(ホストカードエミュレーション)またはSecure Elementを使用したカードエミュレーションモードで銀行カードをエミュレートします。

世界中の交通システム(モスクワメトロ、London Tube、New York MTA)は、モバイルウォレットを通じてNFC決済を受け付けています。日本では、NFCベースのFeliCa技術(Sony)が2004年から交通、買い物、オフィスアクセスに使用されています。FeliCaチップを搭載したスマートフォン(日本の市場向けiPhoneなど)は、SuicaやPASMOをサポートしています。

NFCタグを使用すると、“スマートホーム”シナリオを自動化できます:ベッドのそばのタグに電話をかざすと、アラームがオンになり通知がオフになります。AndroidではAndroid Beam / NFC Toolsを介して、iOSではShortcutsとNFCトリガーを介して実装されます。一部のスマートフォンは急速充電にもNFCを使用しています — Qi規格は充電器識別にNFCを使用します。

コード例:AndroidでのNFCタグの読み取り

Androidは、Intent Systemを通じてNFCタグを処理するためのAPIを提供しています。タグが電話に近づけられると、システムはタグを含むインテントを作成し、アプリケーションはNDEF(NFCデータ交換フォーマット)形式でデータを受信します。以下は、NFCタグからURLまたはテキストを読み取るActivityの例です。

kotlin
class NfcReaderActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_nfc)
        handleNfcIntent(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleNfcIntent(intent)
    }

    private fun handleNfcIntent(intent: Intent) {
        if (intent.action == NfcAdapter.ACTION_NDEF_DISCOVERED) {
            val rawMessages = intent
                .getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
            rawMessages?.forEach { rawMsg ->
                val msg = rawMsg as NdefMessage
                msg.records.forEach { record ->
                    val payload = String(record.payload)
                    println("NFC data: $payload")
                }
            }
        }
    }
}

NFCで動作するには、マニフェストでandroid.permission.NFC権限を宣言し、ACTION_NDEF_DISCOVERED、ACTION_TECH_DISCOVERED、またはACTION_TAG_DISCOVEREDのインテントフィルターを構成する必要があります。AndroidはNDEFレコードタイプに従ってNFCタグを自動的にフィルタリングします — これにより、アプリケーションは特定のMIMEタイプまたはURLプレフィックスを持つタグにのみ応答できます。NFCアンテナは通常、電話の背面パネルの上部にあります — タグを読み取るには、電話の上部をタグに近づけてください。

よくある質問

Google Payで支払うにはNFCをオンにする必要がありますか?

はい、非接触決済のためには電話の設定でNFCがオンになっている必要があります。Google Payは、端末に近づくと自動的にNFCを有効にします(画面がオフの状態でも、Android 10+とGoogle Walletがインストールされたデバイスでは)。Apple Payの場合、NFCは自動的にオンになり、手動での有効化は不要です。

NFCの範囲はどのくらいですか?

標準のNFC範囲は最大10センチメートルです。実際には、信頼性の高い接続のために、電話をリーダーから2–4 cmの距離に近づけることをお勧めします。範囲が短いため、NFCはBluetoothよりも安全です — 攻撃者は遠隔からデータを読み取ることができません。

NFCを介してウイルスに感染することはありますか?

理論的には、NFCタグに悪意のあるサイトへのリンクが含まれている可能性がありますが、これにはユーザーの操作 — リンクをクリックすること — が必要です。自動感染は、この技術が確認なしでのコード実行やファイルインストールをサポートしていないため、NFCを介しては不可能です。AndroidおよびiOSのオペレーティングシステムは、潜在的に危険なNFCアクションをブロックします。

電話にNFCがあるかどうかを確認するには?

Androidの場合:設定 → 接続 → NFCを開きます(または設定で“NFC”を検索します)。iPhoneの場合:iPhone 6以降のすべてのモデルがNFCをサポートしています。一部のメーカーはケースや箱にNFC記号を表示しています。Play MarketのNFC Checkアプリを診断に使用することもできます。

NFCは電話のバッテリーを消耗しますか?

NFCはアクティブモード — データ送信中 — にのみ電力を消費します。スタンバイモードでは、NFCコントローラーは実質的に電力を消費しません(0.01 mA)。NFCをオンにしても電話のバッテリー駆動時間には影響しません。これは、スタンバイモードでも電力を消費するBluetoothとは異なります。

まとめ

  • NFCは13.56MHzの無線通信規格で、最大10cmの範囲と最大424 kbpsの速度を持ちます。
  • NFCの3つのモード:Reader/Writer(タグ読み取り)、Peer-to-Peer(データ交換)、Card Emulation(決済用カードエミュレーション)。
  • 非接触決済は、Google Pay、Apple Pay、Samsung Payを介したスマートフォンでのNFCの主要な用途です。
  • NFCはペアリング不要 — 接続は0.1秒で確立され、Bluetoothより高速です。
  • ハードウェアアーキテクチャには、安全な取引のためのNFCコントローラー、FPCアンテナ、Secure Elementが含まれます。
  • NFCタグはシナリオの自動化に使用されます:電話の消音、アプリの起動、スマートホーム制御。
  • Android NFC APIは、データタイプによるフィルタリングを備えたIntent Systemを介してNDEFタグの読み取りを可能にします。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください