NFC (Near Field Communication) — технология за безжична комуникация с малък обхват, която позволява обмен на данни между устройства на разстояние до 10 сантиметра. NFC се използва в мобилни телефони за безконтактно плащане, прехвърляне на файлове и четене на етикети. Според данни на Grand View Research, 2025, пазарът на NFC чипове достигна 34,5 милиарда долара благодарение на масовото внедряване на NFC в смартфоните и платежната инфраструктура по целия свят.
Основни точки
NFC (Near Field Communication) е стандарт за безжично предаване на данни на къси разстояния, който работи на честота 13,56 MHz. Технологията се основава на RFID (Radio Frequency Identification) и е обратно съвместима с ISO 14443 — стандарта за безконтактни интелигентни карти. Скоростта на предаване на данни е 106, 212 или 424 kb/s в зависимост от избрания режим.
За разлика от Bluetooth, NFC не изисква процедура по сдвояване — устройствата обменят данни моментално при доближаване. Максималното разстояние за комуникация е 10 cm, което осигурява естествена защита срещу прихващане. Според 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 г. Днес NFC се поддържа от почти всички смартфони с цена над 150 долара.
NFC контролерът в смартфона поддържа три режима на работа, всеки от които е предназначен за своя клас задачи. Превключването между режимите става автоматично в зависимост от типа на взаимодействащото устройство.
В този режим телефонът действа като активен четец на NFC етикети. При доближаване до NFC етикет — стикер, гривна или плакат — телефонът чете данни от паметта на етикета. Етикетите съдържат от 48 байта до 32 KB памет и съхраняват URL, текст или команди. Android Beam (заменен от Nearby Share) използваше този режим за прехвърляне на връзки и контакти.
Две NFC устройства обменят данни директно. Едното устройство действа като инициатор, другото като цел. Стандартът LLCP (Logical Link Control Protocol) управлява връзката, а SNEP (Simple NDEF Exchange Protocol) — формата на данните. P2P режимът се използва за бързо прехвърляне на контакти, връзки или иницииране на Bluetooth сдвояване. Скоростта в P2P режим достига 424 kb/s.
Телефонът емулира безконтактна интелигентна карта — платежна карта, транспортен билет или пропуск. Външно 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 s) и не изисква сдвояване, но губи в скоростта на предаване на данни и обхват. Bluetooth LE изисква сдвояване (2–5 секунди), но предлага скорост до 2 Mb/s и обхват до 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 mm, броят на навивките е 3–5. Антената се свързва с контролера чрез съгласуваща верига, настроена на честота 13,56 MHz. Според NXP Semiconductors, ефективната работа на антената изисква прецизно изчисляване на индуктивността и качествения фактор.
Secure Element (eSE) — отделен криптографски чип (NXP P71, Samsung S3K) или изолирана област в SoC (iSE — integrated Secure Element). Той съхранява данни на платежни карти и изпълнява криптографски операции за HCE (Host Card Emulation). Secure Element е изолиран от Android/iOS: достъп до него има само NFC контролерът чрез APDU команди по SWP (Single Wire Protocol) шина.
// Пример за 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 предоставя API за обработка на NFC етикети чрез Intent System. При доближаване на етикета до телефона системата създава 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 трябва да се декларира разрешение 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 cm от четеца. По-малкият обхват прави NFC по-сигурен от Bluetooth — нападателят не може да чете данни от разстояние.
Теоретично NFC етикетът може да съдържа връзка към злонамерен сайт, но това изисква действие от потребителя — кликване върху връзката. Автоматично заразяване чрез NFC е невъзможно, тъй като технологията не поддържа стартиране на код или инсталиране на файлове без потвърждение. Операционните системи Android и iOS блокират потенциално опасни NFC действия.
На Android: отворете Настройки → Връзки → NFC (или потърсете „NFC“ в настройките). На iPhone: всички модели от iPhone 6 нагоре поддържат NFC. Някои производители маркират корпуса или кутията със символ NFC. Можете също да използвате приложението NFC Check от Play Market за диагностика.
NFC консумира енергия само в активен режим — при предаване на данни. В режим на готовност NFC контролерът практически не консумира енергия (0,01 mA). Включеният NFC не влияе на времето за работа на телефона с батерия. Това го отличава от Bluetooth, който консумира енергия дори в режим на готовност.
Обобщение
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също