孫成丹 彭木根
近場通信技術(shù)近年來逐漸受到人們的關(guān)注,相關(guān)的技術(shù)標準和協(xié)議規(guī)范也日臻完善。講座將分3期對該技術(shù)進行介紹:第1期講述近場通信的背景及概況,概述性介紹近場通信技術(shù)的技術(shù)架構(gòu);第2期對近場通信的具體技術(shù)規(guī)范做詳細介紹,包括數(shù)字協(xié)議規(guī)范、相關(guān)動作規(guī)范、邏輯鏈路控制協(xié)議、標簽類型及數(shù)據(jù)交換格式;第3期介紹近場通信的安全技術(shù)、設(shè)備的連接切換規(guī)范和業(yè)務(wù)應(yīng)用。
近場通信技術(shù)的技術(shù)架構(gòu)包含多方面的協(xié)議規(guī)范,完整掌握其技術(shù)架構(gòu)對于全面認識NFC技術(shù)至關(guān)重要。本期將依照其技術(shù)架構(gòu)介紹近場通信技術(shù)的各協(xié)議規(guī)范內(nèi)容,包括數(shù)字協(xié)議規(guī)范、相關(guān)動作規(guī)范、鏈路控制協(xié)議、近場通信的標簽和數(shù)據(jù)交換格式。上一期介紹了近場通信的概況,描述了NFC的整體技術(shù)架構(gòu);下一期將介紹近場通信的安全技術(shù)、設(shè)備連接切換規(guī)范,和NFC的業(yè)務(wù)與應(yīng)用情況。
3 近場通信技術(shù)規(guī)范解析
3.1 數(shù)字協(xié)議規(guī)范
數(shù)字協(xié)議規(guī)范主要定義了用于完成通信的構(gòu)件,是實現(xiàn)ISO/IEC 18092和ISO/IEC 14443標準中數(shù)字技術(shù)的規(guī)范。主要包括調(diào)制機制、比特級編碼、比特速率、幀格式、相關(guān)協(xié)議和命令集。在該規(guī)范中也定義了一些可選項,實現(xiàn)時可自主選擇,如果選擇實現(xiàn)這些可選項則必須符合規(guī)范中指定的需求[3]。
數(shù)字信號的比特周期為1 bd = 128/(D×fe )。fe 為載波頻率13.56 MHz,D依賴于所選擇的比特速率,取值范圍為1/2/4/8/16/32/64。
在規(guī)范中定義了專有名詞——技術(shù),分為NFC-A技術(shù)、NFC-B技術(shù)和NFC-F技術(shù)。
NFC-A技術(shù)下的序列格式要求為:輪詢模式向監(jiān)聽模式傳輸?shù)哪M信號需要對改進的密勒碼進行100%幅移鍵控(ASK)調(diào)制,改進的密勒碼定義了3個特定的圖案X/Y/Z,這3種圖案按照需求編碼為邏輯0和邏輯1;監(jiān)聽模式向輪詢模式傳輸?shù)哪M信號需要對曼徹斯特碼進行二進制啟閉鍵控(OOK)子載波調(diào)制,密勒碼也定義了3種特定圖案D/E/F,圖案D和E按照需求編碼為邏輯0和邏輯1;NFC-A技術(shù)不需要信號同步,因此沒有開始符(SoS)標識,并由終止符(EoS)標識指示序列結(jié)束[4-5]。
在NFC設(shè)備間傳輸?shù)臄?shù)據(jù)被劃分為幀。每種技術(shù)對應(yīng)的幀格式各不相同。NFC-A技術(shù)通過在數(shù)據(jù)比特前后加上開始幀(SoF)和結(jié)束幀(EoF)來形成幀,同時每隔8 bit末尾加一位奇偶校驗位P。NFC-A技術(shù)使用3種幀結(jié)構(gòu):短幀、標準幀和比特導(dǎo)向的信號設(shè)備識別(SDD)幀。短幀用于初始化通信,作用于喚醒階段;標準幀用于數(shù)據(jù)交換;比特導(dǎo)向SDD幀用于沖突解決。
NFC設(shè)備間交換的凈負荷由命令及相應(yīng)的響應(yīng)組成。采用NFC-A技術(shù)的設(shè)備常用的命令及含義包括:ALL_REQ用于喚醒全部請求,SENS_REQ用于檢測請求,SDD_REQ用于單設(shè)備檢測請求,SEL_REQ用于選擇請求,SLP_REQ用于睡眠請求。
NFC-B技術(shù)下的序列格式要求為:輪詢模式向監(jiān)聽模式傳輸?shù)哪M信號需要對非歸零電平編碼(NRZ-L)進行10%ASK調(diào)制;監(jiān)聽模式向輪詢模式傳輸?shù)哪M信號需要對NRZ-L碼進行二相相移鍵控(BPSK)調(diào)制;NFC-B技術(shù)支持信號同步,因此信號以SoS標識開始,由EoS標識指示序列結(jié)束。
采用NFC-B技術(shù)的設(shè)備用于傳輸數(shù)據(jù)的幀由字符構(gòu)成。一個字符由邏輯0開始,邏輯1作為結(jié)束,中間包含8位數(shù)據(jù)比特。
NFC-B設(shè)備間交換的凈負荷由命令及相應(yīng)的響應(yīng)組成。采用NFC-B技術(shù)的設(shè)備常用的命令及其含義為:ALLB_REQ和SENSB_REQ用于輪詢模式下的設(shè)備偵測操作域,SLOT_MARKER用于輪訓(xùn)模式下的設(shè)備在沖突解決期間定義響應(yīng)時隙的開始,SLPB_REQ用于睡眠請求。
NFC-F技術(shù)下的序列格式要求為:在兩個傳輸方向上傳輸?shù)哪M信號均采用對曼徹斯特碼進行ASK調(diào)制的方式傳輸。NFC-F技術(shù)的幀的字符有8位數(shù)據(jù)bit組成,不包含起始位、結(jié)束位和奇偶校驗位。字符之間沒有分隔符,被當做連續(xù)的字符串來傳輸。
采用NFC-F技術(shù)的設(shè)備使用SENSF_REQ命令探測操作域。SENSF_RES為相應(yīng)的響應(yīng)。
3.2 相關(guān)動作規(guī)范
本節(jié)描述了NFC設(shè)備如何利用數(shù)字協(xié)議規(guī)范與其他設(shè)備建立通信,介紹了這個過程中的一系列動作。我們分監(jiān)聽模式和輪訓(xùn)模式兩種情況進行介紹。
在監(jiān)聽模式下,運行監(jiān)聽模式狀態(tài)機之前需要設(shè)置相應(yīng)的配置參數(shù)。我們將給出一些常用的相關(guān)參數(shù)信息。
·CON_LISTEN_DEP_A參數(shù),大小為1 bit二進制位,用于控制是否監(jiān)聽支持NFC的數(shù)據(jù)交換協(xié)議(NFC-DEP)的NFC-A技術(shù),1表示監(jiān)聽相應(yīng)的NFC-A技術(shù),0表示不監(jiān)聽相應(yīng)技術(shù)。
·CON_LISTEN_DEP_F參數(shù),大小為1 bit二進制位,用于控制是否監(jiān)聽支持NFC-DEP的NFC-F技術(shù),1表示監(jiān)聽相應(yīng)的NFC-F技術(shù),0表示不監(jiān)聽相應(yīng)技術(shù)。
·CON_LISTEN_T3TP參數(shù),大小為1 bit二進制位,用于控制是否監(jiān)聽支持第三類標簽平臺的NFC-F技術(shù),1表示使能監(jiān)聽,0表示禁止監(jiān)聽。
·CON_LISTEN_T4ATP參數(shù),大小為1 bit二進制位,該位為1表示監(jiān)聽支持第四類標簽平臺的NFC-A技術(shù),該位為0表示禁止相應(yīng)功能。
其他常見的參數(shù)還包括CON_LISTEN_T4BTP 、CON_BITR_F、CON_ADV_FEAT、CON_SYS_CODE、CON_SENSF_RES、CON_ATR_RES、CON_SENSB_RES、CON_ATTRIB_RES和CON_ATS,除CON_BITR_F之外的參數(shù)均為字節(jié)矩陣變量,CON_BITR_F為以字節(jié)的整型參數(shù),當設(shè)備選擇212 kbit/s速率時,該字節(jié)的第2位必須設(shè)置為1,當設(shè)備選擇424 kbit/s速率時,字節(jié)的第3位必須設(shè)置為1。需要說明的是,在NFC-B和NFC-F技術(shù)下,當需要發(fā)送多個響應(yīng)時,處于監(jiān)聽模式的NFC設(shè)備在單個時隙中應(yīng)該只發(fā)送一個響應(yīng),通過多個時隙來完成多響應(yīng)的發(fā)送工作。如果處于監(jiān)聽模式下的NFC設(shè)備對單個輪詢命令做出多個響應(yīng),那么該設(shè)備必須為每個響應(yīng)預(yù)知配置參數(shù),或者當所有響應(yīng)均不能發(fā)送時,設(shè)備需要預(yù)知對應(yīng)的標準以決定發(fā)送哪個響應(yīng)子集。在監(jiān)聽模式下,NFC設(shè)備支持CON_LISTEN_DEP_F和CON_LISTEN_T3TP參數(shù),則依據(jù)需求該設(shè)備實現(xiàn)兩個獨立的狀態(tài)機[6]。
在輪詢模式下,設(shè)備必須進行射頻域沖突規(guī)避功能。首先,設(shè)備需要在TID + n ×T RFW時間內(nèi)感知是否存在遠場磁場。如果在上述時間內(nèi)未檢測到遠場磁場,則設(shè)備進入下一步,若檢測到磁場則NFC設(shè)備判定射頻域沖突,需要進行沖突規(guī)避。其中,TID必須大于4 096/fc,T RFW等于512/f c,整數(shù)n在0~3間隨機產(chǎn)生。沖突規(guī)避流程如圖5 所示。
常用的動作包括:技術(shù)偵測、沖突辨析、設(shè)備激活、數(shù)據(jù)交換和設(shè)備去激活。技術(shù)偵測用于當前設(shè)備偵測其范圍內(nèi)的設(shè)備及所采用的技術(shù)。在偵測設(shè)備所使用的技術(shù)時,固定按照NFC-A、NFC-B、NFC-F的順序輪詢。沖突辨析動作用于設(shè)備識別當前范圍內(nèi)與其支持相同技術(shù)(及NFC-A/NFC-B/NFC-F)的設(shè)備。設(shè)備激活用于從技術(shù)偵測階段和沖突辨析階段識別的設(shè)備集中激活某個設(shè)備。這個過程也與設(shè)備所使用的具體技術(shù)相關(guān)。數(shù)據(jù)交換動作,使得當前設(shè)備基于NFC協(xié)議規(guī)范可以與范圍內(nèi)的設(shè)備進行數(shù)據(jù)交換并完成通信。這個過程需要考慮到設(shè)備所采用的標簽類型平臺。設(shè)備去激活的作用是:通過基于NFC規(guī)范的通信過程,對當前設(shè)備范圍內(nèi)的某個NFC設(shè)備進行去激活操作。
3.3 邏輯鏈路控制協(xié)議
這一章中我們將介紹NFC協(xié)議中邏輯鏈路控制層(LLC)的部分功能、特征及相關(guān)協(xié)議。LLC層構(gòu)成了開放式系統(tǒng)互聯(lián)(OSI)模型中數(shù)據(jù)鏈路層的上半層,下半層由媒體介入控制層(MAC)構(gòu)成。MAC層和LLC層通過一系列映射實現(xiàn)兩者之間協(xié)議的綁定。
邏輯鏈路控制協(xié)議的主要特點包括以下幾點:
·鏈路激活、管理與去激活。邏輯鏈路控制協(xié)議(LLCP)說明了處于通信范圍內(nèi)的兩個NFC設(shè)備如何識別協(xié)議的兼容性,如何建立LLCP鏈路,協(xié)議也包括如何管理與遠端對等設(shè)備的連接,在需要的情況下可以對鏈路實行去激活操作。
·異步均衡通信。傳統(tǒng)上,在MAC層只有發(fā)起者能開始發(fā)送數(shù)據(jù)和請求數(shù)據(jù),而LLCP協(xié)議通過使用對稱機制可以實現(xiàn)對等設(shè)備間的異步平衡模式(ABM)。通過ABM,服務(wù)端點可以在認識時刻進行初始化、管理、回復(fù)、發(fā)送信息等操作。
·協(xié)議復(fù)用。LLCP可以同時容納多個高層協(xié)議。
·無連接傳輸。該模式允許用戶進行無連接的數(shù)據(jù)傳輸服務(wù)。當上層協(xié)議使用自身的流控制協(xié)議而不需要依靠鏈路的流控制機制時可以使用這種傳輸模式。
·面向連接傳輸。這種模式可以使得用戶間進行可靠的數(shù)據(jù)傳輸。業(yè)務(wù)流量通過滑窗協(xié)議的編號機制得以控制。面向連接的傳輸模式需要在進行數(shù)據(jù)傳輸前先行建立鏈路連接并且在連接持續(xù)期間始終保持資源分配。
邏輯鏈路控制協(xié)議可以劃分為以下幾個邏輯組件:
·MAC層映射。該層映射將現(xiàn)有的射頻(RF)協(xié)議集成到LLCP架構(gòu)中。
·鏈路管理組件。該組件負責所有面向連接和無連接的邏輯鏈路協(xié)議數(shù)據(jù)單元(PDU)交換的有序進行,以及完成小PDU的聚合與解聚操作。該組件也確保異步平衡模式通信的完成,并且可以實現(xiàn)對鏈路狀態(tài)的監(jiān)測。
·面向連接傳輸組件。該組件完成面向連接的數(shù)據(jù)交換,也包括連接的建立和結(jié)束。
·無連接傳輸組件。該組件完成無連接的數(shù)據(jù)交換。
各組件的結(jié)構(gòu)如圖6所示。
根據(jù)LLC層的數(shù)據(jù)傳輸形式,NFC設(shè)備可以分為3類:僅提供無連接傳輸服務(wù)的設(shè)備為第1類鏈路服務(wù);僅提供面向連接傳輸服務(wù)的設(shè)備為第2類鏈路服務(wù);同時提供無連接和面向連接傳輸服務(wù)的設(shè)備為第3類鏈路服務(wù)。
邏輯鏈路控制層的PDU格式中包括目的地址域、PDU類別域、源地址域、序號域和信息域5部分。
地址域(目的地址和源地址)長度為6 bit位,用于表征數(shù)據(jù)傳輸?shù)慕K點和起點。其中,0號地址用于指定LLC鏈路管理組件,不應(yīng)用于指定任何特定的服務(wù)接入點;1號地址用于為服務(wù)發(fā)現(xiàn)協(xié)議(SDP)指定知名的服務(wù)接入點;2—15號地址為NFC論壇號碼分配寄存器中指定的知名服務(wù)接入點留用;16—31號地址由局部LLC分配給在局部服務(wù)環(huán)境下注冊的服務(wù);32—63號地址由本地LLC按照上層服務(wù)請求進行分配,不應(yīng)用于SDP協(xié)議的發(fā)現(xiàn)功能。
PDU類別域長度為4 bit位,用于為PDU其他域指明語法和語義,每一個值對應(yīng)一種PDU類別。其中值1111b預(yù)留用于未來LLCP頭格式的擴展。
序號域在包含序號的PDU中長8 bit位,不包含序號的PDU中沒有該域。該8 bit經(jīng)常分為兩個4 bit子域,分別指明發(fā)送序列號和接受序列號。
信息域大小為M × 8 bit,M變化范圍為0至最大信息單元(MIU)。信息域可以為空,即不傳輸任何有用的信息。
LLC層過程主要包括鏈路激活過程、常規(guī)操作過程、鏈路去激活過程、無連接傳輸過程、面向連接傳輸過程、聚合過程、對稱過程和服務(wù)發(fā)現(xiàn)過程[7]。
3.4 標簽類型
近場通信技術(shù)的關(guān)鍵要素之一,在于NFC裝置與無源NFC標簽溝通的能力。NFC技術(shù)的這一特征,是未來許多應(yīng)用得以實現(xiàn)的關(guān)鍵。NFC標簽正在被大量生產(chǎn)并應(yīng)用在全球若干個領(lǐng)域。為了支持未來標簽的大規(guī)模應(yīng)用,標簽的定義必須清晰,以確保不同制造商的標簽與設(shè)備達到兼容。
NFC標簽是無源裝置,可以實現(xiàn)與有源NFC設(shè)備(有源NFC讀寫器)通信,NFC標簽可以在以下領(lǐng)域中獲得應(yīng)用,如智能海報以及其他儲存小量數(shù)據(jù)并傳輸?shù)街鲃邮絅FC裝置的場合。在智能海報應(yīng)用中,起作用的部分可用來作為與主動設(shè)備的接觸點。NFC標簽所儲存的數(shù)據(jù)可以是任何形式的數(shù)據(jù),但通常情況下是用來貯存網(wǎng)址(URL)以供NFC裝置找到進一步的信息。因為所需存儲交換的數(shù)據(jù)量很少,故可使用NFC標簽來實現(xiàn)。
為了規(guī)范化有源NFC讀寫器與無源標簽之間的通信,NFC論壇在2006年6月推出了其第一個標準技術(shù)架構(gòu)和NFC設(shè)備需滿足的技術(shù)標準,包括:NFC數(shù)據(jù)交換格式(NDEF)、3種記錄類型定義(RTD)。這些技術(shù)可以用于智能海報、文本、互聯(lián)網(wǎng)資源讀取應(yīng)用。
NFC論壇定義了4種基本的標簽類型,用1—4來標識,每種標簽類型對應(yīng)不同的格式和容量。這些標簽類型格式的基礎(chǔ)是:ISO 14443的A類型與B類型、Sony FeliCa,前者是非接觸式智能卡的國際標準,而后者符合ISO 18092無源通信模式標準。
在標簽類型的設(shè)計中需要最大限度保持NFC標簽簡單性,其優(yōu)勢在于:這些標簽在很多應(yīng)用中僅作一次性使用,通常嵌入在海報中,而這些海報的生存周期及其所包含的信息的有效性很短。
各種類型的標簽的定義如下。
(1) 第1類標簽:此類標簽基于ISO14443A標準。此類標簽具有可讀功能和重新寫入功能,用戶也可根據(jù)需要將其配置為只讀模式。該類標簽存儲能力為96字節(jié),足以用來存網(wǎng)址URL或其他少量數(shù)據(jù)。然而,如果用戶需要,內(nèi)存大小也可被擴充到2 k字節(jié)。此類NFC標簽的通信速度為106 kbit/s。因為此類標簽的簡潔性,故其成本低廉,適用于許多NFC應(yīng)用場合。
(2) 第2類標簽:除基本內(nèi)存大小改為48字節(jié),與第1類標簽無異。
(3) 第3類標簽:NFC第3類標簽基于Sony FeliCa體系。目前另3類標簽具有2 k字節(jié)的內(nèi)存容量,數(shù)據(jù)通信速度為212 kbit/s。盡管標簽成本較高,但是此類標簽更適合較復(fù)雜的應(yīng)用場景。
(4) 第4類標簽:依據(jù)定義,此類標簽與ISO14443A、B標準兼容。在生產(chǎn)過程中此類標簽已經(jīng)被預(yù)配置為可讀/可重寫模式或者只讀模式。該標簽的內(nèi)存容量可以達到32 k字節(jié),并且其通信速度介于106 kbit/s和424 kbit/s之間。
從上述不同標簽類型的定義可以看出,標簽類型1和2與標簽類型3和4在內(nèi)存容量、構(gòu)成方面大不相同。因此它們的應(yīng)用場合不大可能有很多重疊。此外,第1與第2類標簽是雙態(tài)的,可根據(jù)需要配置為讀/寫模式或者只讀模式。而第3與第4類僅具有只讀功能,數(shù)據(jù)在生產(chǎn)時已經(jīng)寫入或者可通過特殊的標簽寫入器來寫入。
NFC標簽是無源裝置,不需要獨立供電。標簽從讀寫器獲得很小的電源即可驅(qū)動標簽的電路,通過負載調(diào)制等技術(shù)將少量的信息傳輸?shù)阶x寫器,完成交互。這些數(shù)據(jù)可能是少量的文本或其他數(shù)據(jù),雖然數(shù)據(jù)量很小,卻可能通過僅有的數(shù)據(jù)把設(shè)備導(dǎo)向到某個URL以獲得更多的信息。
NFC標簽設(shè)計與制造需要考慮很多方面。需要在保持性能的前提下,實現(xiàn)低成本大規(guī)模的批量制造。因此在設(shè)計標簽時,需要考慮下面幾個關(guān)鍵的性能參數(shù)與要素。
(1)讀取速度:因為需要在兩個NFC裝置接近時傳輸標簽所含的所有數(shù)據(jù),故速度因素很重要。如果標簽傳輸速度較慢,數(shù)據(jù)就不能及時傳輸,導(dǎo)致可靠性降低。第一類NFC標簽允許將所有數(shù)據(jù)整塊傳輸,這大大保持了標簽的讀取性能。
(2)芯片尺寸:在NFC標簽的設(shè)計中芯片尺寸非常重要。尺寸較小,則成本較低、標簽也不會顯得很突兀(這對標簽在智能海報中的應(yīng)用尤為重要)。很明顯,較小的內(nèi)存自然會降低晶片尺寸。
(3)單位價格:鑒于NFC標簽的目標應(yīng)用是成本低廉的場景(例如用于智能海報),單位價格是標簽設(shè)計極其重要的一個因素。標簽成本受一系列因素影響,諸如內(nèi)存大小和因包含附加特征帶來的集成電路的復(fù)雜性。把內(nèi)存和包含的特征盡可能簡化,就可以有效降低成本。
3.5 數(shù)據(jù)交換格式
NFC數(shù)據(jù)交換格式(NDEF)定義了NFC設(shè)備之間以及設(shè)備與標簽之間傳輸數(shù)據(jù)的一種消息封裝格式。NDEF是輕量級的緊湊的二進制格式,其協(xié)議規(guī)范認為設(shè)備之間傳輸?shù)男畔⒖梢苑庋b成一個NDEF消息,而一個消息可以由多個NDEF記錄構(gòu)成,每條記錄包含一個有效載荷,記錄中通過3個參數(shù)來描述該負荷,分別是類別標識、長度標識、其他可選標識構(gòu)成。類別標識可以是通用資源標識符(URI)、多用途互聯(lián)網(wǎng)郵件擴展(MIME)媒質(zhì)或者NFC自定義的數(shù)據(jù)類型。使用NFC定義的數(shù)據(jù)類型,載荷內(nèi)容必須被定義在一個NFC記錄類型定義(RTD)文檔中。負荷長度是一個八進制整數(shù)用來表征負荷中八位字節(jié)的數(shù)量,且對非常小的有效負荷需要采用緊湊的短型布局。而可選標識可以實現(xiàn)凈負荷間的復(fù)用和交叉引用。
NDEF消息由一個或多個NDEF記錄構(gòu)成。消息中的第一個記錄由開始信息(MB)標記表示,最后一個記錄由結(jié)束信息(ME)標記表示。最小的消息只包含一個記錄,此時MB標記和ME標記被設(shè)置為相同的值。如果對凈負荷進行分塊操作,則為了對凈負荷塊進行編碼,至少需要兩個記錄塊。需要說明的是,規(guī)范對于NDEF消息中支持的最大NDEF記錄數(shù)未作規(guī)定。多個NDEF消息間不能重疊,即MB標記和ME標記不能用于對NDEF消息嵌套,MB標記放置在第一個記錄中,ME標記放置在最后一個記錄中。實際中,NDEF記錄中并不包含序號,響應(yīng)的順序是由記錄的序列化順序隱性表示。
一個記錄塊承載一塊凈負荷,通常需要對凈負荷分塊,這樣可以將動態(tài)生成的內(nèi)容或者非常大的實體分割成同一NDEF消息中序列化表示的多個記錄塊。分塊并不是將復(fù)用機制和數(shù)據(jù)流機制引入到NDEF中,它是一種減少數(shù)據(jù)生成端帶外緩沖需求的機制。一個NDEF消息包含0個或多個分塊的凈負荷,每一個分塊后的凈負荷按順序編碼成初始記錄塊、中間記錄塊和截止記錄塊。并且,分塊后的凈負荷一定要封裝在同一個NDEF消息中,即一個凈負荷不能同時存在于多個NDEF消息中。
NDEF記錄的傳輸次序由8位字節(jié)的位置決定。如果將一組8位字節(jié)放在網(wǎng)格中,則這些8位字節(jié)的傳輸順序為:首先自左向右,隨后自頂端至底端。如果一個8位字節(jié)表示一個數(shù)字量,則該字節(jié)最左端的bit位作為最高有效位(MSB),如果用多個8位字節(jié)組成的域來表示數(shù)字量,則該域的最左端bit為最高有效位。NFC規(guī)范中規(guī)定使用大端法傳輸這些數(shù)字量,先傳送最高有效位。
NDEF記錄長度可變,且每個記錄包含多個頭部域和有效負荷,圖7展示了NDEF記錄布局。各頭部域標記的功能如下。
·MB:長度為1 bit位,置為1表示NDEF消息開始。
·ME:長度為1 bit位,置為1表示NDEF消息結(jié)束。如果對凈負荷分塊,則僅在該凈負荷的最后一個記錄中將ME置為1。在中間記錄位置上的MB和ME均為0。
·下一數(shù)據(jù)塊標識(CF):長度為1 bit位,置為1則表示存在著下一個記錄。
·短記錄(SR):長度為1 bit位,置為1表示有效荷載長度域只有一個8位字節(jié)。該標記用于少量凈負荷情況下的緊湊封裝。
·身份識別長度(IL):長度為1 bit位,置為1表示頭部身份識別長度(ID_LENGTH)有效且為1個字節(jié)長,置為0表示記錄的頭部中不包含ID_LENGTH域和ID域。
·類型名稱格式(TNF):長度為3 bit位,表示8種類型格式。0x00表示記錄中ID和負載域為空;0x01表示NFC論壇已定義的記錄類型;0x02表示RFC2046中定義的媒體類型;0x03表示RFC3986中定義的URI類型;0x04表示NFC論壇外部類型;0x05表示未知類型;0x06為不可隨意改變的類型;0x07作為保留值,有待研究。
·TYPE_LENGTH:長度為8 bit位的無符號整數(shù),以字節(jié)為單位指定TYPE域的長度。對于TNF域中的值,TYPE_LENGTH總是置為0。
·ID_LENGTH:長度為8 bit位的無符號整數(shù),以字節(jié)為單位ID域的長度。只有記錄頭部中的IL標記為1時該域才有效。允許ID_LENGTH為0,此時表示NDEF記錄中不包含ID域。
·PAYLOAD_LENGTH:使用無符號整數(shù)表示PAYLOAD域字節(jié)長度。該域大小由SR標記決定。SR = 1,PAYLOAD_LENGTH是一個單個字節(jié),表示無符號8位整數(shù);SR = 0,該域大小為4字節(jié),表示一個32位無符號整數(shù)。
·TYPE:該域的值用來指示凈負荷的類型。其值要遵循TNF域所指定的結(jié)構(gòu)、編碼方式和格式。
·PAYLOAD:該域承載NDEF用戶應(yīng)用的數(shù)據(jù),其外部結(jié)構(gòu)對于NDEF是非透明的。
最后,需要強調(diào)的是,在NDEF標識符的設(shè)計中需要考慮國際慣例,以增加標準的實用性和統(tǒng)一性。比如,在URI與MIME媒體類型標識符的實現(xiàn)中,就需要參考RFC2718、RFC2046/RFC2047都能夠標準。 (待續(xù))
參考文獻
[3] NFC Forum. Connection handover technical specification 1.2[S]. 2010.
[4] NFC Forum. NFC activity specification technical specification 1.0[S]. 2010.
[5] NFC Forum. Logical link control protocol technical specification 1.1[S]. 2011.
[6] NFC Forum. Type 1 tag operation specification technical specification 1.1[S].2011.
[7] NFC Forum. Type 2 tag operation specification technical specification 1.1[S]. 2011.