射頻識(shí)別技術(shù)漫談(6)——通訊協(xié)議概述
通訊協(xié)議是通訊的雙方或多方在交流時(shí)遵守的規(guī)矩,包括誰(shuí)先發(fā)起通訊,先交流什么,后交流什么,一方如何問(wèn),另一方如何答等。在這里通迅的雙方指的是讀寫(xiě)器和卡片。
首先是誰(shuí)先發(fā)起通訊,很顯然有兩種,讀寫(xiě)器先發(fā)言和卡片先發(fā)言。前一種叫ReaderTalk First,簡(jiǎn)稱為RTF;后一種叫Tag TalkFirst,簡(jiǎn)稱為T(mén)TF。
我們知道,卡片從讀寫(xiě)器產(chǎn)生的射頻場(chǎng)獲得工作時(shí)需要的能量,一般認(rèn)為應(yīng)該是讀寫(xiě)器主動(dòng),卡片被動(dòng)才對(duì),這也是人之常情。所以多數(shù)功能稍復(fù)雜的卡片都是采用RTF模式,即讀寫(xiě)器問(wèn),卡片回答。讀寫(xiě)器沒(méi)有命令,卡片是無(wú)論如何也不能主動(dòng)說(shuō)話的。但是有些卡片功能單一,每次與讀寫(xiě)器的交流中只會(huì)回答一個(gè)問(wèn)題,而且每次內(nèi)容都相同。對(duì)于這種卡片,似乎再讓讀寫(xiě)器每次先提問(wèn)已經(jīng)沒(méi)有什么意義了,還不如每次與讀寫(xiě)器交流直接讓卡片先說(shuō)它那永遠(yuǎn)不會(huì)變的一句話得了,于是就有了TTF模式。TTF模式的卡片一般都是我們常說(shuō)的ID卡,即識(shí)別卡,ID卡每次說(shuō)的相同的一句話都是一個(gè)識(shí)別號(hào),讀寫(xiě)器利用這個(gè)識(shí)別號(hào)確定持卡者的身份。
其次是交流的秩序。對(duì)TTF卡片當(dāng)然沒(méi)什么秩序可言了,一進(jìn)入射頻場(chǎng)卡片就自說(shuō)自話。但對(duì)RTF的卡片一般有嚴(yán)格的順序,如下圖所示:
第一步是讀寫(xiě)器呼叫卡,如果射頻場(chǎng)中有讀寫(xiě)器支持的卡片,卡片將回送一個(gè)應(yīng)答,告訴讀寫(xiě)器自己是什么類(lèi)型的卡片。
然后讀寫(xiě)發(fā)出命令選中卡片,如果射頻場(chǎng)中有多張卡片,通常還要進(jìn)行防沖突循環(huán)以便決出唯一張卡片進(jìn)行操作。
第三步是進(jìn)行認(rèn)證,一方面讀寫(xiě)器要認(rèn)證卡片是合法的,另一方卡片也要認(rèn)證讀寫(xiě)器是合法的。
如果認(rèn)證順利通過(guò),就可以進(jìn)行正常的讀寫(xiě)數(shù)據(jù)操作了。
這些步驟并不都是必須的,有些簡(jiǎn)單的卡片,要求操作前用戶把卡片放到讀寫(xiě)器上,讀寫(xiě)器直接對(duì)其進(jìn)行讀寫(xiě)操作,前面的3步都省了;有些卡片沒(méi)有密碼,當(dāng)然不需要相互認(rèn)證;有些卡片不支持防沖突,同時(shí)有多張卡片時(shí)將無(wú)法操作;還有些卡片將呼叫和防沖突用一個(gè)步驟代替。所以對(duì)于具體的卡片,要仔細(xì)閱讀其說(shuō)明書(shū),進(jìn)行具體的分析。
還有一類(lèi)卡片既可以工作在TTF模式,又可以工作在RTF模式。兩種模式之間的切換一般有兩種方式:一種是卡片剛進(jìn)入射頻場(chǎng)上電復(fù)位后會(huì)等待一個(gè)固定時(shí)間,在這段時(shí)間內(nèi)如果有讀寫(xiě)器的命令,則工作在RTF模式,如果沒(méi)有收到命令則進(jìn)入TTF模式。另一種是卡片上電后主動(dòng)在RTF與TTF之間不停的切換,在TTF模式下發(fā)送完一個(gè)識(shí)別號(hào)后,立即進(jìn)入RTF模式等待讀寫(xiě)器的命令,如果有命令則執(zhí)行命令,沒(méi)有命令則退出RTF模式返回TTF模式繼續(xù)發(fā)送識(shí)別號(hào),之后進(jìn)行下一次的切換。
最后還有一個(gè)全雙工(Full Duplex,F(xiàn)DX)和半雙工(Half Duplex,HDX)的概念。在有線通訊中,我們知道全雙工就是通訊雙方可以同時(shí)雙向通訊,半雙工就是雖能雙向通訊,但某一時(shí)刻只能有一個(gè)方向通訊。一般來(lái)說(shuō)當(dāng)然是全雙工好,如果技術(shù)上能實(shí)現(xiàn)全雙工,當(dāng)然最好不用半雙工;成本上全雙工貴,半雙工便宜。但在射頻識(shí)別技術(shù)中FDX和HDX并不是這個(gè)意思。在ISO11785中對(duì)FDX和HDX的定義如下:
FDX:標(biāo)簽和讀寫(xiě)器在讀寫(xiě)器產(chǎn)生的磁場(chǎng)沒(méi)有消失的情況下進(jìn)行通訊。
HDX:標(biāo)簽和讀寫(xiě)器在讀寫(xiě)器產(chǎn)生的磁場(chǎng)停止之后進(jìn)行通訊。
RFID技術(shù)中FDX的例子如Mifare系列卡片,HDX的例子如TI公司的134.2KHz標(biāo)簽,如RI-TRP-WR2B。目前的射頻卡FDX比較多,因?yàn)樯漕l卡無(wú)源,需要從讀寫(xiě)器的射頻場(chǎng)取電,射頻場(chǎng)不消失,卡片可以源源不斷的取電,對(duì)卡片內(nèi)部的儲(chǔ)能電路要求不高。缺點(diǎn)是卡片回送數(shù)據(jù)時(shí)因?yàn)樽约翰荒墚a(chǎn)生射頻場(chǎng),只能被動(dòng)發(fā)送,所以一般采取負(fù)載調(diào)制的方法回送數(shù)據(jù)。HDX在讀寫(xiě)器的射頻場(chǎng)停止后回送數(shù)據(jù),讀寫(xiě)器對(duì)卡片數(shù)據(jù)的識(shí)別解調(diào)容易。缺點(diǎn)是對(duì)卡片的儲(chǔ)能電路要求較高,而且回送數(shù)據(jù)量有限。成本上HDX也未必比FDX便宜。
射頻識(shí)別技術(shù)漫談(7)——ID卡
ID(Identification)是識(shí)別的意思,ID卡就是識(shí)別卡。ID卡包含范圍廣泛,只要具有識(shí)別功能的卡片都可以叫ID卡,例如條碼卡,磁卡都可以是ID卡,我們這兒說(shuō)的當(dāng)然是射頻識(shí)別卡。
射頻ID卡一般都工作在TTF模式,進(jìn)入射頻場(chǎng)得電后不停地發(fā)送自己的識(shí)別號(hào)。最初識(shí)別卡是用來(lái)識(shí)別人的,用5個(gè)字節(jié)40位二進(jìn)制數(shù)表示,可以識(shí)別大約一萬(wàn)億人,估計(jì)是因?yàn)榭紤]到一萬(wàn)億太多了,一般ID卡使用時(shí)只使用低位的4個(gè)字節(jié),而把最高位的一個(gè)字節(jié)作為廠家標(biāo)識(shí)或版本號(hào)使用。這樣4字節(jié)32位二進(jìn)制數(shù)可以識(shí)別43億人,在當(dāng)時(shí)全世界每人一個(gè)識(shí)別號(hào)也足夠了。當(dāng)然后來(lái)又發(fā)展到卡號(hào)可以隨便復(fù)制,這是后話。
為了檢查數(shù)據(jù)傳輸中是否發(fā)生了錯(cuò)誤,射頻識(shí)別卡對(duì)每個(gè)字節(jié)都增加了兩個(gè)校驗(yàn)位,其中高半字節(jié)一個(gè),低半字節(jié)一個(gè),這樣每個(gè)字節(jié)增加到10位二進(jìn)制數(shù),5個(gè)字節(jié)共有50位。為了校驗(yàn)數(shù)據(jù)的整體性錯(cuò)誤,射頻ID卡還增加了一個(gè)4位的縱向冗余檢驗(yàn),這樣整個(gè)ID卡數(shù)據(jù)增加到54位。當(dāng)進(jìn)入射頻場(chǎng)時(shí),如果卡片直接回送這5個(gè)字節(jié),那么讀寫(xiě)器很難確定起始位和結(jié)束位,所以射頻識(shí)別卡又增加了9個(gè)二進(jìn)制“1”在前面作起始位,增加了一個(gè)二進(jìn)制“0”在后面作結(jié)束位,這樣ID卡就有了64位數(shù)據(jù),正好8個(gè)字節(jié)。其排列如下圖所示:
例如卡號(hào)為2100A5EAD9的卡片,其編碼格式為
1 1 1 1 1 1 1 1 1 9個(gè)“1”的起始位,也叫頭部
0 0 1 0 1 “2”
0 0 0 1 1 “1”
0 0 0 0 0 “0”
0 0 0 0 0 “0”
1 0 1 0 0 “A”
0 1 0 1 0 “5”
1 1 1 0 1 “E”
1 0 1 0 0 “A”
1 1 0 1 1 “D”
1 0 0 1 0 “9”
1 1 0 0 0 列偶校驗(yàn)和結(jié)束位“0”
射頻ID卡的數(shù)據(jù)編碼一般使用曼側(cè)斯特碼或兩項(xiàng)碼,傳送數(shù)據(jù)的速率用傳送一位二進(jìn)制數(shù)據(jù)使用幾個(gè)單位載波表示。常用的有64載波,32載波,16載波,在125KHz的頻率下,一個(gè)載波的時(shí)間是8微秒,因此相應(yīng)的位寬為512微秒,256微秒,128微秒。對(duì)應(yīng)的數(shù)據(jù)傳輸速率為2K(1953)、4K(3906)、8K(7813)。我們平常使用的大多是2K曼側(cè)斯特編碼的ID卡。下圖是使用HTRC110芯片讀卡時(shí),卡號(hào)為2100A5EAD9的卡片從數(shù)據(jù)輸出腳DOUT輸出的實(shí)測(cè)波形。
軟件解碼時(shí)可以使用查詢或中斷檢測(cè)跳變,配合定時(shí)器確定脈寬,根據(jù)跳變沿的方向確定數(shù)據(jù)。
為了和128位的動(dòng)物識(shí)別標(biāo)簽相區(qū)別,業(yè)內(nèi)一般稱這種64位的ID卡格式為“ID64格式”。
射頻識(shí)別技術(shù)漫談(8)——?jiǎng)游飿?biāo)簽
動(dòng)物標(biāo)簽也是工作在TTF模式的ID(Identification)卡。之所以通常稱為動(dòng)物標(biāo)簽,估計(jì)是因?yàn)橐粊?lái)和識(shí)別人的ID卡相區(qū)分,二是因?yàn)閯?dòng)物不如人聽(tīng)話,人的ID卡可以做成卡片形狀拿在手上,而動(dòng)物不會(huì)用四肢持卡,要么做成小玻璃管狀用設(shè)備注射到皮下,例如小狗小貓等寵物,要么做成耳釘訂在耳朵上,例如豬耳標(biāo),要么做成環(huán)狀套在腿上,例如信鴿的腳環(huán)。
動(dòng)物識(shí)別標(biāo)簽的通訊方式分為全雙工(FDX)和半雙工(HDX),全雙工是標(biāo)簽回送數(shù)據(jù)時(shí)讀卡器產(chǎn)生的射頻場(chǎng)不消失,半雙工是標(biāo)簽回送數(shù)據(jù)時(shí)讀卡器產(chǎn)生的射頻場(chǎng)消失。目前市場(chǎng)上以全雙工模式居多,下面具體說(shuō)明全雙工模式。
盡管生物物種不停地滅絕,但國(guó)際標(biāo)準(zhǔn)的制定者們還是堅(jiān)定的認(rèn)為世界上的動(dòng)物比人多的多,所以全雙工模式的動(dòng)物標(biāo)簽足足有128位,是ID64識(shí)別卡的兩倍。按順序依次是11位的頭部,64位的識(shí)別碼,16位的CRC校驗(yàn),24位的尾部。另外還有13位的控制位。
11位的頭部是固定的“00000000001”,用來(lái)引導(dǎo)和同步。
64位的識(shí)別碼是標(biāo)簽的主體部分,包括1位動(dòng)物識(shí)別標(biāo)志,14位的保留位,1位附加數(shù)據(jù)標(biāo)志,10位國(guó)家碼和38位識(shí)別號(hào)。動(dòng)物識(shí)別標(biāo)志表示這個(gè)標(biāo)簽是不是動(dòng)物標(biāo)簽,為1表示是動(dòng)物標(biāo)簽,為0表示不是動(dòng)物標(biāo)簽。14位的保留位保留將來(lái)使用(RFU)。附加數(shù)據(jù)標(biāo)志位表示在64位的識(shí)別碼之后是否有另外的數(shù)據(jù)需要接收,1表示有,0表示沒(méi)有,一般情況此位為0。10位國(guó)家碼一共可以表示1024個(gè)國(guó)家,世界上本來(lái)就沒(méi)有這么多國(guó)家,于是規(guī)定其中的900-998用來(lái)表示獨(dú)立的標(biāo)簽制造商,999表示這個(gè)標(biāo)簽是一個(gè)測(cè)試用的標(biāo)簽,標(biāo)簽的序列號(hào)可能不是全國(guó)唯一的。38位的識(shí)別號(hào)表示在一個(gè)國(guó)家之內(nèi)的唯一序列號(hào),當(dāng)然是在國(guó)家碼不等于999的情況下。
16位的CRC校驗(yàn)用來(lái)對(duì)前面的64位識(shí)別碼進(jìn)行錯(cuò)誤檢查,看是否在傳輸?shù)倪^(guò)程中發(fā)生了錯(cuò)誤。
24位的尾碼沒(méi)有規(guī)定什么內(nèi)容,一般填0。
前面的64位的識(shí)別碼,16位的CRC校驗(yàn),24位的尾部共有104位13個(gè)字節(jié).為了有效區(qū)分和校驗(yàn)這13個(gè)字節(jié),規(guī)定在每個(gè)字節(jié)的后面增加一個(gè)固定的“1”,共增加了13位,這就是控制位。所以控制位并不是在識(shí)別號(hào)的最后面,而是在中間13個(gè)字節(jié)每個(gè)字節(jié)的后面都有一位控制位“1”。標(biāo)簽回送數(shù)據(jù)時(shí)先回送低位字節(jié),再回送高位字節(jié),每個(gè)字節(jié)先送最低有效位(LSB),后送最高有效位(MSB),如下圖所示:
例如,一個(gè)標(biāo)簽的保留位是8003(01 1111 0100 0011),國(guó)家編碼是156(00 10011100),國(guó)內(nèi)唯一序列號(hào)是9138702(00 0000 0000 0000 1000 10110111 0100 0000 1110),尾部全0(0000 0000 0000 0000 00000000),動(dòng)物標(biāo)志為1,有附加數(shù)據(jù)(1),標(biāo)簽的64位識(shí)別碼是10111110 10000111 00100111 0000000000000000 10001011 01110010 00001110,即十六進(jìn)制的0xBE872700008B720E。它的CRC16=0x2C72(00101100 01110010),動(dòng)物標(biāo)簽一般使用兩相(Biphase)碼,則其發(fā)送波形如下:
再比如,我手頭有一個(gè)注射式動(dòng)物標(biāo)簽如下圖:
打開(kāi)后的樣子:
放在讀寫(xiě)器上,從HTRC110的DOUT腳捕捉到波形如下:
則可以寫(xiě)出以下形式
1 0 0 0 0 0 0 0 0 0 0 11個(gè)頭部
1 1 1 0 0 0 1 0 1 序列號(hào)SN7-SN0: C5H
1 0 1 1 0 0 0 0 0 序列號(hào)SN15-SN8: 60H
1 0 1 0 0 0 1 1 0 序列號(hào)SN23-SN16:46H
1 1 1 0 1 0 1 0 0 序列號(hào)SN31-SN24:D4H
1 0 0 1 0 0 0 0 0 序列號(hào)SN37-SN32:20H;國(guó)家碼C1-C0:00H
1 0 1 1 0 0 0 1 0 國(guó)家碼C9-C2:62H
1 0 0 0 0 0 0 0 0 保留位留位R6-R0=0,沒(méi)有附加數(shù)據(jù)
1 1 0 0 0 0 0 0 0 動(dòng)物標(biāo)識(shí)=1,保留位R13-R7=0
1 0 1 0 1 0 1 0 1 CRC16校驗(yàn)低位字節(jié):55H
1 1 1 1 0 1 1 1 0 CRC16校驗(yàn)高位字節(jié):EEH
1 0 0 0 0 0 0 0 0 尾部TR7-TR06: 00H
1 0 0 0 0 0 0 0 0 尾部TR15-TR8: 00H
1 0 0 0 0 0 0 0 0 尾部TR23-TR16:00H
根據(jù)以上數(shù)據(jù)列表,可以知道,該標(biāo)簽的國(guó)家代碼是392(188H),國(guó)內(nèi)唯一序列號(hào)是141000335557(20D44660C5H)。你也看到了,包裝上寫(xiě)著呢。
射頻識(shí)別技術(shù)漫談(9)——?jiǎng)游飿?biāo)簽HDX
半雙工(HDX,HalfDuplex)技術(shù)是ISO11784/11785中規(guī)定的另一種標(biāo)簽與讀寫(xiě)器之間的通訊方式。讀寫(xiě)器先打開(kāi)射頻場(chǎng)對(duì)標(biāo)簽充電以激活標(biāo)簽,然后關(guān)閉磁場(chǎng),標(biāo)簽在讀寫(xiě)器磁場(chǎng)關(guān)閉的情況下向讀寫(xiě)器傳送數(shù)據(jù)。不過(guò)HDX雖然是在動(dòng)物標(biāo)簽標(biāo)準(zhǔn)中規(guī)定,但似乎更多的應(yīng)用于和動(dòng)物聯(lián)系不大的工業(yè)識(shí)別領(lǐng)域。這也沒(méi)什么大驚小怪的,標(biāo)準(zhǔn)是標(biāo)準(zhǔn),實(shí)際應(yīng)用中適合的才是最好的,就像信鴿雖然是動(dòng)物,但許多信鴿的腳環(huán)識(shí)別號(hào)其實(shí)是ID64格式。
與全雙工(FDX)相比,HDX 通常識(shí)別能力更強(qiáng),因?yàn)镠DX讀寫(xiě)器的射頻場(chǎng)在HDX標(biāo)簽響應(yīng)期間關(guān)閉,從而讀寫(xiě)器可以專注于接收來(lái)自標(biāo)簽的信號(hào),同時(shí)也消除了讀寫(xiě)器射頻場(chǎng)對(duì)標(biāo)簽信號(hào)的干擾。HDX采用移頻鍵控(FSK)技術(shù),發(fā)送數(shù)據(jù)“1”使用124.2KHz的頻率,發(fā)送數(shù)據(jù)“0”使用134.2KHz的頻率。數(shù)據(jù)的傳送速率大約8Kbps,基本上是FDX的兩倍。實(shí)際工作時(shí)讀寫(xiě)器持續(xù)打開(kāi)射頻場(chǎng)至少50毫秒,以激活標(biāo)簽,在讀寫(xiě)器關(guān)閉射頻場(chǎng)3毫秒的時(shí)間之內(nèi),標(biāo)簽開(kāi)始回送識(shí)別數(shù)據(jù),如下圖所示:
因?yàn)闃?biāo)簽回送數(shù)據(jù)時(shí)讀寫(xiě)器的射頻場(chǎng)已經(jīng)消失,回送數(shù)據(jù)完全使用標(biāo)簽自己之前儲(chǔ)存的能量,所以標(biāo)簽如何節(jié)能降耗非常重要。為此,一方面HDX傳送數(shù)據(jù)的速率比FDX快一倍,另一方面盡量減少不必要的數(shù)據(jù)傳輸,除了64位的識(shí)別數(shù)據(jù)必須完整回送外,其它部分只要不是非傳不可的數(shù)據(jù),標(biāo)簽是能省則省。頭部由FDX的11位減少為8位,同時(shí)省略了FDX的13位控制位,這樣一共比FDX少傳送16位,正好兩個(gè)字節(jié)。整個(gè)數(shù)據(jù)幀的位數(shù)也從128位減少到112位。同F(xiàn)DX一樣,數(shù)據(jù)發(fā)送時(shí)先送最低有效位(LSB)再送最高有效位(MSB),傳送的順序如下圖所示:
例如,一個(gè)標(biāo)簽的保留位是0,國(guó)家編碼是999(10進(jìn)制),國(guó)內(nèi)唯一序列號(hào)是1008(10進(jìn)制),尾部是123456(16進(jìn)制),動(dòng)物標(biāo)志為1,有附加數(shù)據(jù)(1),64位識(shí)別碼的16進(jìn)制數(shù)為0x8001F9C0000003F0,它的CRC16=0x5DD6,標(biāo)簽回送數(shù)據(jù)的順序如下:
MSB LSB
0 1 1 1 1 1 1 0 8位頭部
1 1 1 1 0 0 0 0 38位國(guó)內(nèi)唯一序列號(hào)
0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
1 1 1 1 1 0 0 1 10位國(guó)家代碼
0 0 0 0 0 0 0 1 1位附加數(shù)據(jù),14位保留數(shù)據(jù)
1 0 0 0 0 0 0 0 1位動(dòng)物標(biāo)識(shí)
1 1 0 1 0 1 1 0 16位CRC校驗(yàn)
0 1 0 1 1 1 0 1
0 1 0 1 0 1 1 0 24位尾部
0 0 1 1 0 1 0 0
0 0 0 1 0 0 1 0
波形使用最簡(jiǎn)單的非歸零碼,此處不再畫(huà)出。需要說(shuō)明的是,因?yàn)榉菤w零碼容易失步,所以一般讀卡芯片解調(diào)后輸出數(shù)據(jù)都使用兩條線,一條數(shù)據(jù)線和一條時(shí)鐘線。比如TI的芯片RI45538,它的第15腳是RXDT,用來(lái)輸出數(shù)據(jù),第16腳是RXCK,用來(lái)輸出時(shí)鐘。
射頻識(shí)別技術(shù)漫談(10)——識(shí)別號(hào)的格式變化
從事RDID行業(yè)的朋友經(jīng)常會(huì)遇到這樣的情況,同一張ID卡,在不同廠家生產(chǎn)的讀卡器上讀出的識(shí)別號(hào)完全不一樣,有時(shí)甚至差之千里。ID卡的識(shí)別號(hào)一般是在出廠時(shí)被固化在卡片的ROM里,本身是不會(huì)改變的,問(wèn)題出在讀卡器上,是讀卡器對(duì)卡片識(shí)別號(hào)采用了不同的輸出格式。下面以第7節(jié)中提到的ID卡(其卡號(hào)是16進(jìn)制的2100A5EAD9H)為例,說(shuō)明常見(jiàn)的識(shí)別號(hào)輸出格式。
1.ASCII碼與16進(jìn)制真值變換
在嵌入式系統(tǒng)里,數(shù)據(jù)的存儲(chǔ)一般以字節(jié)為單位,字節(jié)的表示范圍為16進(jìn)制的00-FFH,這就是16進(jìn)制的真值。而計(jì)算機(jī)顯示數(shù)據(jù)一般使用可見(jiàn)字符的ASCII碼,ASCII碼使用一個(gè)字節(jié)表示原來(lái)16進(jìn)制真值數(shù)據(jù)的半個(gè)字節(jié)。比如ASCII用30H-39H表示16進(jìn)制的0-9,用41-46H表示16進(jìn)制的A-F。對(duì)于上面的卡號(hào),在16進(jìn)制顯示模式下,如果使用16進(jìn)制真值,輸出結(jié)果為
21 00 A5 EA D9
如果使用ASCII碼輸出,則變成了
32 31 30 30 41 35 45 41 44 39
2.大小端模式變換
如果我們把識(shí)別號(hào)看成一個(gè)數(shù),按多數(shù)人的習(xí)慣,一般要先輸出數(shù)據(jù)的高位部分,再輸出數(shù)據(jù)的低位部分。對(duì)于卡號(hào)2100A5EAD9H到底是左邊的21是最高位,還是右邊的D9是最高位呢?這就是大小端模式的問(wèn)題。如果認(rèn)為左邊是高位,就是大端模式,如果認(rèn)為右邊是高位,就是小端模式。所以識(shí)別號(hào)2100A5EAD9H在大端模式下輸出就是.
21 00 A5 EA D9
在小段模式下輸出就是
D9 EA A5 00 21
3.識(shí)別號(hào)的整體與部分輸出
ID卡的識(shí)別號(hào)有5個(gè)字節(jié),通常情況下使用低位的4個(gè)字節(jié)。有的用戶需要ID號(hào)的全部信息,就會(huì)輸出全部5個(gè)字節(jié)。有時(shí)一個(gè)單位的人數(shù)較少,為方便記錄,只使用低位的2個(gè)或3個(gè)字節(jié)。使用的字節(jié)數(shù)越少,表示的數(shù)值范圍越小,越容易發(fā)生重號(hào)。僅使用兩個(gè)或3個(gè)字節(jié)的用戶,一般在購(gòu)卡時(shí)會(huì)購(gòu)買(mǎi)一個(gè)低位連續(xù)的號(hào)段,同時(shí)讓高位字節(jié)固定。比如如果想只使用低位的兩個(gè)字節(jié),則可以固定高位3個(gè)字節(jié)為2100A5H, 低位兩個(gè)字節(jié)從0000-1000H,也就是將2100A50000-2100A51000H范圍的識(shí)別卡買(mǎi)斷。這樣在單位內(nèi)部使用時(shí)就不會(huì)重號(hào)了。實(shí)際上只要高位的三個(gè)字節(jié)相同,根據(jù)卡號(hào)的唯一性,低位的兩個(gè)字節(jié)無(wú)論如何也不會(huì)相同的。如果卡號(hào)不唯一,情況將另當(dāng)別論,“關(guān)于ID卡的復(fù)制”后面還要述及。
2100A5EAD9H在大端模式下輸出5個(gè)字節(jié)
21 00 A5 EA D9
輸出4個(gè)字節(jié)
00 A5 EA D9
輸出3個(gè)字節(jié)
A5 EA D9
輸出2個(gè)字節(jié)
EA D9
4.16進(jìn)制與10進(jìn)制轉(zhuǎn)換
對(duì)于卡片的用戶來(lái)說(shuō),10進(jìn)制相對(duì)于16進(jìn)制更容易記憶和接受,所以許多讀卡器都把卡號(hào)轉(zhuǎn)換成10進(jìn)制輸出。多數(shù)情況下,是將低位的4個(gè)字節(jié)轉(zhuǎn)換為10位的10進(jìn)制數(shù),當(dāng)然也可以把5個(gè)字節(jié)轉(zhuǎn)換為13位的10進(jìn)制數(shù)、把3個(gè)字節(jié)轉(zhuǎn)換為8位的10進(jìn)制數(shù)、把2個(gè)字節(jié)轉(zhuǎn)換為5位的10進(jìn)制數(shù)輸出。
2100A5EAD9H整體5字節(jié)轉(zhuǎn)換為13位10進(jìn)制數(shù)結(jié)果為
141744794329
右邊4字節(jié)轉(zhuǎn)換為10進(jìn)制
0010873561
右邊3字節(jié)轉(zhuǎn)換為10進(jìn)制
10873561
右邊2字節(jié)轉(zhuǎn)換為10進(jìn)制
60121
5.數(shù)據(jù)的韋根格式
這里的韋根指的是韋根數(shù)據(jù)轉(zhuǎn)換格式,而不是韋根信號(hào)傳輸接口。韋根數(shù)據(jù)格式只使用識(shí)別號(hào)的低位三個(gè)字節(jié),這三個(gè)字節(jié)的第一個(gè)字節(jié)轉(zhuǎn)換成一個(gè)3位的10進(jìn)制數(shù),后兩個(gè)字節(jié)轉(zhuǎn)換成一個(gè)5位的10進(jìn)制數(shù),然后把兩部分組合成一個(gè)8位的10進(jìn)制數(shù)輸出。例如2100A5EAD9H,只使用A5EAD9H,把A5H化為10進(jìn)制的165,把 EAD9H化為10進(jìn)制的60121,最后輸出16560121。
6.數(shù)據(jù)的半字節(jié)旋轉(zhuǎn)
還有一些讀卡器廠家的排他性較強(qiáng),對(duì)ID號(hào)進(jìn)行了一些加密變換,比如所有卡號(hào)的識(shí)別字節(jié)都異或一個(gè)數(shù),或者按某種規(guī)則把識(shí)別號(hào)和一些數(shù)進(jìn)行運(yùn)算,然后將運(yùn)算結(jié)果輸出。這種情況下一般很難猜出其加密算法。半字節(jié)旋轉(zhuǎn)就是常見(jiàn)的一種加密方法。我們知道,16進(jìn)制數(shù)的數(shù)值范圍是0-15,用4位2進(jìn)制數(shù)表示。半字節(jié)旋轉(zhuǎn)法是將每一個(gè)0-15之間的4位2進(jìn)制數(shù)左邊的兩個(gè)bit和右邊的兩個(gè)bit對(duì)調(diào)。其對(duì)調(diào)的結(jié)果如下
原值16進(jìn)制 原值2進(jìn)制 對(duì)調(diào)后2進(jìn)制 對(duì)調(diào)后16進(jìn)制
0 0000 0000 0
1 0001 1000 8
2 0010 0100 4
3 0011 1100 C
4 0100 0010 2
5 0101 1010 A
6 0110 0110 6
7 0111 1110 E
8 1000 0001 1
9 1001 1001 9
A 1010 0101 5
B 1011 1101 D
C 1100 0011 3
D 1101 1011 B
E 1110 0111 7
F 1111 1111 F
例如2100A5EAD9H ,按上述規(guī)則變?yōu)?8005A75B9H
7.ID64格式輸出
前面說(shuō)過(guò),TTF的ID卡,只要一進(jìn)入讀卡器的射頻場(chǎng),就不停的發(fā)送64位的ID64格式的數(shù)據(jù),讀卡器從這64位數(shù)據(jù)中解碼提取5個(gè)字節(jié)的識(shí)別號(hào)。有些讀卡器直接將64數(shù)據(jù)不解碼輸出,這時(shí)正好是8個(gè)字節(jié)。例如2100A5EAD9H,對(duì)應(yīng)的ID64格式輸出為FF94600515DA6E58H(參見(jiàn)射頻識(shí)別技術(shù)漫談(7)——ID卡)。由于ID64格式的開(kāi)始是9個(gè)“1”,所以這種輸出的第一個(gè)字節(jié)必定是FFH。
8.數(shù)據(jù)的前綴與后綴
前面幾條主要說(shuō)的是卡號(hào)本身的變換。在ASCII碼輸出的情況下,為了區(qū)分每一條數(shù)據(jù),有時(shí)讀卡器在每一條識(shí)別號(hào)的后面增加一個(gè)回車(chē)換行(0D 0A);有時(shí)為了更清楚的表示每一條識(shí)別號(hào)的開(kāi)始和結(jié)束,在識(shí)別號(hào)的前面增加一個(gè)起始符,后面增加一個(gè)結(jié)束符,最常見(jiàn)的起始符是02,結(jié)束符是03。例如2100A5EAD9H,增加了前綴后綴和回車(chē)換行,并轉(zhuǎn)為ASCII輸出后的格式為
02 32 31 30 30 41 35 45 41 44 39 0D 0A 03
有些讀卡器還有校驗(yàn)字節(jié),射頻識(shí)別技術(shù)中常用的數(shù)據(jù)校驗(yàn)方法筆者將用專門(mén)一節(jié)介紹。
實(shí)際的讀卡器輸出格式往往是上述一種或幾種的組合,例如先半字節(jié)旋轉(zhuǎn),然后轉(zhuǎn)化為10進(jìn)制,最后用ASCII加前后綴輸出。對(duì)于其他可讀寫(xiě)的IC卡,比如常用的Mifare系列卡片,當(dāng)用作ID卡時(shí),其序列號(hào)的格式也有上述類(lèi)似的變換。
說(shuō)起RFID,很多人都搞不清楚這個(gè)到底是什么,專業(yè)的介紹是這樣的。RFID(射頻識(shí)別系統(tǒng))是一種非接觸式的自動(dòng)識(shí)別系統(tǒng),它通過(guò)射頻無(wú)線信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象,并獲取相關(guān)數(shù)據(jù),由電子標(biāo)簽、讀寫(xiě)器和計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)成。
關(guān)鍵字: RFID標(biāo)簽 射頻識(shí)別 自動(dòng)識(shí)別系統(tǒng)快餐行業(yè)中由于有大量的易腐庫(kù)存,餐館需要保持庫(kù)存的新鮮度以避免浪費(fèi)。但是,這些檢查通常是手動(dòng)完成的,這非常耗時(shí),并且可能會(huì)產(chǎn)生人為錯(cuò)誤。對(duì)于許多快餐店來(lái)說(shuō),目前最大的優(yōu)先事項(xiàng)之一是維護(hù)和保護(hù)供應(yīng)鏈進(jìn)入餐廳的運(yùn)營(yíng)流程,并提...
關(guān)鍵字: RFID技術(shù) 射頻識(shí)別 芯片長(zhǎng)期以來(lái),我國(guó)服裝企業(yè)的生產(chǎn)大多以量制勝,生產(chǎn)過(guò)剩的商品滿足了供應(yīng)鏈管理粗俗階段的要求。企業(yè)生產(chǎn)過(guò)多也會(huì)產(chǎn)生高庫(kù)存的困境,目前這種情況早已在中國(guó)許多服裝企業(yè)中脫穎而出。企業(yè)的高庫(kù)存狀況也意味著企業(yè)的許多資產(chǎn)被占有,不容樂(lè)...
關(guān)鍵字: RFID技術(shù) 射頻識(shí)別 監(jiān)測(cè)系統(tǒng)摘要:物聯(lián)網(wǎng)信息網(wǎng)絡(luò)技術(shù)發(fā)展非常迅速,他和SCADA系統(tǒng)應(yīng)用于眾多行業(yè)和領(lǐng)域。首先介紹了物聯(lián)網(wǎng)和SCADA系統(tǒng)的基本概念和特征,其次介紹它們的現(xiàn)狀和現(xiàn)行應(yīng)用中的問(wèn)題,然后歸納它們的共同點(diǎn),最后總結(jié)出它們的未來(lái)發(fā)展方向,以...
關(guān)鍵字: 物聯(lián)網(wǎng) 射頻識(shí)別 RTU SCADA系統(tǒng) 通訊網(wǎng)絡(luò)摘要:根據(jù)RFID數(shù)據(jù)采集的冗余性,提出了一個(gè)基于RFID的交通擁擠程度計(jì)算方法,它利用最近一段時(shí)間內(nèi)RFID讀取計(jì)數(shù)和車(chē)輛計(jì)數(shù)之間的關(guān)系,計(jì)算交通擁擠程度。與簡(jiǎn)單地丟棄冗余數(shù)據(jù)相比,本方法為充分利用RFID數(shù)據(jù)的價(jià)值,...
關(guān)鍵字: 交通擁擠 射頻識(shí)別 數(shù)據(jù)冗余率 智能交通