NFC (Near Field Communication) — فناوری ارتباط بیسیم با برد کوتاه که امکان تبادل دادهها را بین دستگاهها در فاصله تا 10 سانتیمتر فراهم میکند. NFC در تلفنهای موبایل برای پرداخت بدون تماس، انتقال فایل و خواندن برچسبها استفاده میشود. به گزارش Grand View Research, 2025، بازار تراشههای NFC به 34/5 میلیارد دولار رسیده است که نشاندهنده پذیرش انبوه NFC در گوشیهای هوشمند و زیرساخت پرداخت در سراسر جهان است.
نکات کلیدی
NFC (Near Field Communication) یک استاندارد انتقال بیسیم دادهها در فاصلههای کوتاه است که در بسامد 13/56 مگاهرتز کار میکند. این فناوری بر پایه RFID (Radio Frequency Identification) استوار است و با ISO 14443 — استاندارد کارتهای هوشمند بدون تماس — سازگار است. سرعت انتقال دادهها 106، 212 یا 424 کیلوبیت در ثانیه است که به حالت انتخابی بستگی دارد.
بر خلاف Bluetooth، NFC نیازی به روند جفتسازی ندارد — دستگاهها به محض نزدیک شدن به یکدیگر، دادهها را فوراً مبادله میکنند. حداکثر فاصله ارتباط 10 سانتیمتر است که حفاظت طبیعی در برابر ردگیری را فراهم میکند. به گزارش NFC Forum، این فناوری توسط بیش از 3 میلیارد دستگاه در سراسر جهان پشتیبانی میشود و این تعداد سالانه 15–20% افزایش مییابد.
استاندارد NFC توسط NFC Forum — کنسرسیومی که توسط Sony، Philips و Nokia در سال 2004 تأسیس شد، توسعه مییابد. اولین تلفن با NFC (Nokia 6131) در سال 2006 منتشر شد، اما پذیرش انبوه پس از انتشار Android 4.0 (Ice Cream Sandwich) در سال 2011 و راهاندازی Apple Pay در سال 2014 آغاز شد. امروزه تقریباً همه گوشیهای هوشمند با قیمت بالای 150 دولار از NFC پشتیبانی میکنند.
کنترلر NFC در گوشی هوشمند از سه حالت کار پشتیبانی میکند، که هر کدام برای طبقهای از وظایف طراحی شده است. تغییر حالت بین حالتها بسته به نوع دستگاه متعامل به صورت خودکار انجام میشود.
در این حالت، تلفن به عنوان یک خواننده فعال برچسبهای NFC (teگها) عمل میکند. با نزدیک کردن به برچسب NFC — برچسب، دستبند یا پلاکات — تلفن دادهها را از حافظه تگ خوانده میکند. برچسبها حاوی 48 بایت تا 32 کیلوبایت حافظه هستند و URL، متن یا دستورات را ذخیره میکنند. Android Beam (با Nearby Share جایگزین شد) از این حالت برای انتقال لینکها و مخاطبان استفاده میکرد.
دو دستگاه NFC به صورت مستقیم داده مبادله میکنند. یک دستگاه به عنوان آغازگر و دیگری به عنوان هدف عمل میکند. استاندارد LLCP (Logical Link Control Protocol) اتصال را مدیریت میکند و SNEP (Simple NDEF Exchange Protocol) فرمت دادهها را تعیین میکند. حالت P2P برای انتقال سریع مخاطبان، لینکها یا آغاز جفتسازی Bluetooth استفاده میشود. سرعت در حالت P2P به 424 کیلوبیت در ثانیه میرسد.
تلفن یک کارت هوشمند بدون تماس را شبیهسازی میکند — کارت پرداخت، بلیط حمل و نقل یا کارت ورود. یک دستگاه NFC خارجی (ترمینال POS، گاردرو) با تلفن همانطور که با یک کارت پلاستیکی عادی ارتباط برقرار میکند، ارتباط برقرار میکند. این حالت در Apple Pay، Google Pay و Samsung Pay استفاده میشود. امنیت پرداختها توسط Secure Element — یک تراشه جداگانه که دادههای کارتهای پرداخت را ذخیره میکند تأمین میشود.
| حالت | نمونه کاربرد | نیاز به Secure Element |
|---|---|---|
| Reader/Writer | خواندن برچسب NFC با URL | خیر |
| Peer-to-Peer | انتقال مخاطب بین تلفنها | خیر |
| Card Emulation | پرداخت از طریق Google Pay | بله |
NFC و Bluetooth LE (Low Energy) دو فناوری ارتباط نزدیک هستند که اغلب مقایسه میشوند. NFC در سرعت برقراری اتصال (0/1 ثانیه) برتر است و نیازی به جفتسازی ندارد، اما از لحاظ سرعت انتقال داده و برد عملکرد ناچیزتری دارد. Bluetooth LE نیاز به جفتسازی دارد (2–5 ثانیه)، اما سرعت تا 2 مگابیت در ثانیه و برد تا 100 متر را فراهم میکند.
در عمل، NFC و Bluetooth با یکدیگر رقابت نمیکنند، بلکه یکدیگر را تکمیل میکنند. NFC برای آغاز اتصال (handover) استفاده میشود: کافی است تلفن را به دستگاه نزدیک کنید تا NFC پارامترهای اتصال Bluetooth را انتقال دهد (NFC Bluetooth Handover). پس از آن، دستگاهها برای انتقال سریع فایل یا جریان صوتی به Bluetooth تغییر حالت میدهند.
ماژول NFC گوشی هوشمند از سه جزء تشکیل شده است: کنترلر NFC (NFC Controller)، آنتن NFC و Secure Element (برای عملیات امن). کنترلر NFC یک تراشه جداگانه یا بخشی از ماژول ارتباطی ترکیبی (NFC + Bluetooth + Wi-Fi، مثل WCN3990 از Qualcomm) است. آن رادیو اینترفیس و پروتکلهای تبادل را مدیریت میکند.
آنتن NFC یک سیمپیچ چاپی بر روی زیرلایه انعطافپذیر (FPC) یا روی بدنه باتری است. اندازه آنتن 20×30 میلیمتر، تعداد پیچها 3–5 است. آنتن از طریق یک مدار تطبیق که به بسامد 13/56 مگاهرتز تنظیم شده، به کنترلر متصل میشود. به گزارش NXP Semiconductors، کارایی آنتن نیاز به محاسبه دقیق اندوکتانس و ضریب کیفیت دارد.
Secure Element (eSE) — یک تراشه رمزنگار جداگانه (NXP P71، Samsung S3K) یا یک ناحیه جداگانه در SoC (iSE — integrated Secure Element). آن دادههای کارتهای پرداخت را ذخیره میکند و عملیات رمزنگاری را برای HCE (Host Card Emulation) انجام میدهد. Secure Element از Android/iOS جدا است: تنها کنترلر NFC از طریق بس شینه SWP (Single Wire Protocol) با دستورات APDU به آن دسترسی دارد.
// نمونه دستور APDU برای تعامل با Secure Element
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 در تلفن در چهار سناریو اصلی استفاده میشود: پرداخت بدون تماس، حمل و نقل، دسترسی به اشیا و اتوماسیون وظایف. عمومیترین کاربرد سیستمهای پرداختی است: Apple Pay، Google Pay و Samsung Pay. آنها از حالت Card Emulation با HCE (Host Card Emulation) یا Secure Element برای شبیهسازی کارت بانکی استفاده میکنند.
سیستمهای حمل و نقل در سراسر جهان (متروی مسکو، London Tube، New York MTA) پرداختهای NFC را از طریق کیف پولهای موبایل میپذیرند. در ژاپن، فناوری FeliCa (Sony) بر پایه NFC از سال 2004 برای سفر، خرید و دسترسی به دفاتر استفاده میشود. گوشیهای هوشمند با تراشه FeliCa، مانند iPhone برای بازار ژاپن، از Suica و PASMO پشتیبانی میکنند.
برچسبهای NFC (NFC Tags) اتوماسیون سناریوهای «خانه هوشمند» را فراهم میکنند: تلفن را به برچسب کنار تخت نزدیک کنید — زنگه صبح روشن میشود و اعلانها خاموش میشوند. در Android این از طریق Android Beam / NFC Tools، و در iOS از طریق Shortcuts و تحریککنندههای NFC انجام میشود. برخی گوشیهای هوشمند هم از NFC برای شارژ سریع استفاده میکنند — استاندارد Qi از NFC برای شناسایی شارژر استفاده میکند.
Android از طریق Intent System برای پردازش برچسبهای NFC API فراهم میکند. با نزدیک کردن برچسب به تلفن، سیستم یک intent با برچسب ایجاد میکند و برنامه دادهها را در قالب NDEF (NFC Data Exchange Format) دریافت میکند. در زیر یک نمونه Activity آورده شده است که URL یا متن را از برچسب NFC میخواند.
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: $payload")
}
}
}
}
}
برای کار NFC باید در manifest اجازه android.permission.NFC را اعلام کرده و intent-filter برای ACTION_NDEF_DISCOVERED، ACTION_TECH_DISCOVERED یا ACTION_TAG_DISCOVERED تنظیم کنید. Android برچسبهای NFC را بر اساس نوع رکورد NDEF به صورت خودکار فیلتر میکند — این به برنامه امکان میدهد تنها به برچسبهایی با نوع MIME یا پیشوند URL مشخص واکنش نشان دهد. توجه کنید که آنتن NFC معمولاً در بالای پنل پشتی تلفن قرار دارد — برای خواندن برچسب، باید بالای تلفن را به برچسب نزدیک کنید.
سوالات متداول
بله، برای پرداخت بدون تماس، NFC باید در تنظیمات تلفن فعال باشد. Google Pay به طور خودکار NFC را در حین نزدیک شدن به ترمینال فعال میکند، حتی اگر صفحه نمایش خاموش باشد (در دستگاههایی با Android 10+ و Google Wallet نصب شده). برای Apple Pay، NFC به طور خودکار فعال میشود و نیازی به فعالسازی دستی ندارد.
برد استاندارد NFC تا 10 سانتیمتر است. در عمل، برای اتصال پایدار، توصیه میشود تلفن را در فاصله 2–4 سانتیمتر از خواننده نگه دارید. برد کوتاهتر NFC را از Bluetooth ایمنتر میکند — متخلف نمیتواند دادهها را از راه دور خوانده کند.
از نظر نظری، برچسب NFC میتواند حاوی لینکی به سایت بدافزار باشد، اما این نیاز به عکسالعمل کاربر دارد — کلیک روی لینک. التقاط خودکار از طریق NFC ممکن نیست، زیرا فناوری از اجرای کد یا نصب فایل بدون تأیید پشتیبانی نمیکند. سیستمهای عامل Android و iOS اقدامات پتانسیل NFC را بلوک میکنند.
در Android: تنظیمات → اتصالات → NFC (یا به دنبال الفاظ «NFC» در تنظیمات بگردید). در iPhone: تمامی مدلهای iPhone 6 و بیشتر از NFC پشتیبانی میکنند. برخی تولیدکنندگان بدنه یا جعبه را با نشان NFC علامتگذاری میکنند. همچنین میتوانید از برنامه NFC Check از Play Market برای تشخیص استفاده کنید.
NFC تنها در حالت فعال — هنگام انتقال دادهها — مصرف انرژی دارد. در حالت انتظار، کنترلر NFC تقریباً هیچ انرژی مصرف نمیکند (0/01 میلیآمپر). NFC روشن بر عمر باتری تلفن تأثیری ندارد. این آن را از Bluetooth متمایز میکند که حتی در حالت انتظار نیز انرژی مصرف میکند.
نتیجه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید