歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機(jī)第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

關(guān)于非接觸式IC智能(射頻)卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng)用開發(fā)(連載6)

文章出處:http://m.overnightmodel.com 作者:張敏   人氣: 發(fā)表時(shí)間:2011年11月01日

[文章內(nèi)容簡介]:關(guān)于非接觸式IC智能(射頻)卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng)用開發(fā)(連載6)

(二) RF模塊接口電路
  MCM與RF模塊的接口一般有如下幾個引腳來實(shí)現(xiàn):
  通過KOMP0與NPAUSE0可與RF0模塊相連接;
  通過KOMP1與NPAUSE1可與RF1模塊相連接;(僅有MCM500有RF1)
  通過RXKOMP與TXNPAUSE可與其他的級聯(lián)MCM模塊相連接;

(三) 與天線射頻接口電路
  有二個引腳ANT和GND接口可直接與正極性天線相聯(lián)接。其間用同軸電纜。阻抗歐娒。連接長度一般應(yīng)小于50CM。
  MCM的外部金屬屏蔽盒(僅MCM500有)必須連接到同軸電纜的外屏蔽包裹線,以使信號不能擴(kuò)散,且免受外界電磁輻射信號等的影響。
如果天線工作不正常,可用“天線調(diào)諧器”來調(diào)諧,使之能將Mifare 1卡片的有效操作距離保持在10CM/2 .5CM以上。

(四) 與電源接口電路
  與電源的接口包括這樣幾組信號:
  DVDD—數(shù)字電路正電源端(+5V);
  DGND--數(shù)字電路接地端(0V);
  BP ---WOM緩沖器供電(通電工作時(shí)為+5V;不通電工作時(shí)為+3V );
  RFVDD—RF電路正電源端(MCM500:+12V/MCM200: +5V);
  RFGND-- RF電路接地端(0V);
  注意,RFGND和DGND有條件的話應(yīng)該分開接地,否則應(yīng)接到系統(tǒng)的接地端,并且連接線應(yīng)該具有高導(dǎo)電特性,且應(yīng)愈短愈粗愈好?!?BR>  MCM供電電源端與GND端必須跨接100NF的電容,這些電容應(yīng)盡可能靠近MCM,以免引起接地環(huán)路。
  整個系統(tǒng)應(yīng)有單一電源供電,且應(yīng)穩(wěn)壓,紋波電壓小于50mv。

第三章  MCM 軟件編程指令

(一)指令集

  MCM能執(zhí)行有限的一些指令,并將這些指令傳輸?shù)組IFARE 1卡片上。
  每一個指令包含7個獨(dú)立的步驟,程序員在編程執(zhí)行這些指令時(shí)必須小心每一個正確的(步驟)時(shí)序,這些步驟在不同的MCM指令執(zhí)行中而不一樣。以下是MCM通信基本指令集。

          指令代碼表

  在與MIFARE卡片進(jìn)行任何通信之前,程序員必須按照下述方法預(yù)先設(shè)置MODE寄存器:
MODE =  “ 1  1  0  0  0  1  1 0 ”bin  =  C6 hex

  注意,使用CM200(Philiphs產(chǎn)品)時(shí), MODE 寄存器的設(shè)置值應(yīng)為: “1100 0110b”,即C6H,但在使用SB201(UniVision Engineering Limited聯(lián)視工程有限公司的產(chǎn)品)時(shí), MODE 寄存器的設(shè)置值應(yīng)為: “1101 0110b”,即D6H。
出錯處理:
  DV標(biāo)志指明了MCM與MIFARE卡片之間的傳輸已經(jīng)完成,并且主處理機(jī)可能已經(jīng)從MCM中收到數(shù)據(jù)。DV標(biāo)志保持“1”的持續(xù)時(shí)間,出錯標(biāo)志亦將保持有效。
  在有效的數(shù)據(jù)被存儲進(jìn)FIFO寄存器時(shí),DV標(biāo)志將持續(xù)保持。在向MCM寫數(shù)據(jù)時(shí)的寫指令周期內(nèi),DV標(biāo)志將被清除。DV標(biāo)志也可能會被軟復(fù)位(soft-reset)清除。
有時(shí),為了確認(rèn)有些操作的成功完成,必須使用定時(shí)溢出(TE)標(biāo)志。

1 . “Answer to Request” (“Request”應(yīng)答)指令

  Request 指令將通知MCM在天線有效的工作范圍(距離)內(nèi)尋找MIFARE 1卡片。如果有MIFARE 1卡片存在,這一指令將分別與MIFARE 1進(jìn)行通信,讀取MIFARE 1卡片上的卡片類型號TAGTYPE(2個字節(jié)),由MCM傳遞給MCU,進(jìn)行識別處理。
  程序員可以根據(jù)TAGTYPE來區(qū)別卡片的不同類型。
  對于MIFARE 1卡片來說,返回卡片的TAGTYPE(2個字節(jié))可能為0004h。
  從一個指定的卡片開始,后續(xù)的卡片可以根據(jù)TAGTYPE而被選擇。當(dāng)使用 “Request std“指令來尋卡時(shí),只有那些卡片上沒有被設(shè)置成“HALT_MODE ”(停機(jī)模式)的卡片將響應(yīng)這一指令。
  Request all指令的使用是很重要的,它可以防止MCM選擇同一卡片好幾次。當(dāng)某一張卡片在MCM之天線的有效的工作范圍(距離)內(nèi),Request all指令在成功地讀取這一張卡片之后,將一直等待卡片的使用者拿走這一張卡片,直到有新一張的卡片進(jìn)入MCM之天線的有效的工作范圍(距離)內(nèi)。當(dāng)然,這里的“新一張的卡片”亦可以是剛剛拿開的那張卡片。
  Request all指令是非連續(xù)性的讀卡指令。只讀一次。但有個例外,當(dāng)某一次Request all指令讀卡片失敗時(shí),例如,卡片沒能通過密碼認(rèn)證或其他原因而出錯時(shí),Request all指令將連續(xù)地讀卡,直到讀卡成功才進(jìn)入非連續(xù)性的讀卡模式。
  Request all指令適用于那些需要有人工干預(yù)的場合。
  Request std指令的使用和Request all指令剛巧相反,Request std指令是連續(xù)性的讀卡指令。當(dāng)某一張卡片在MCM之天線的有效的工作范圍(距離)內(nèi),Request std指令在成功地讀取這一張卡片之后,進(jìn)入MCM對卡片的其他操作。如果其他操作完成之后,程序員又將MCM進(jìn)入Request std指令操作,則Request std指令將連續(xù)性地再次進(jìn)行讀卡操作,而不管這張卡片是否被拿走。只要有一張卡片進(jìn)入MCM之天線的有效的工作范圍(距離)內(nèi),Request std指令將始終連續(xù)性地再次進(jìn)行讀卡操作。
  Request std指令是連續(xù)性的讀卡指令。
  Request std指令適用于那些不需要有人工干預(yù)的場合,即全自動的場合。例如,賓館,酒店,高級寫字樓等場所的門禁控制系統(tǒng)(Door Access Control),高速公路,停車場等的不停車收費(fèi)系統(tǒng)(Non-Stop Road Tolling),等等。

2.“AntiCollision” 防重疊


  如果有多于一張的Mifare 1卡片在MCM之天線的有效的工作范圍(距離)內(nèi) ,必須使用AntiCollision指令,使MCM能夠在這一疊 Mifare 1卡片中選擇個別的一張卡片。
  AntiCollision指令開始于一個“AntiCollision loop”(防重疊循環(huán))。結(jié)束時(shí),AntiCollision指令將提供給用戶在這些卡片疊中選擇的那張個別的卡片的一個有效的40 bit長的序列號SN(serial number)。
  一般地,AntiCollision指令將有序地讀所有的處在MCM之天線的有效的工作范圍(距離)內(nèi)的Mifare 1卡片。讀完第Xi張卡片后,MCM 及MCU對這Xi張卡片進(jìn)行處理,完畢之后,讀 第Xi+1張卡片,然后MCM 及MCU對這Xi+1張卡片進(jìn)行處理。循序漸進(jìn),直至所有的卡片。
  AntiCollision指令的啟動必須是在程序員完成了對STACON寄存器中的AC位的成功的設(shè)置之后。
  注意:AntiCollision指令事實(shí)上并不實(shí)際地選擇一張個別卡片,而僅僅是讀取Mifare1卡片上的序列號SN。MCM與卡片的真正聯(lián)絡(luò),選擇某一張卡片,是由程序員向MCM發(fā)送“SELECT”命令來完成的。
  AntiCollision指令讀取的Mifare 1卡片上的一個有效的40 bit長的序列號SN(serial number)被存儲在Mifare 1卡片上的第00H扇區(qū)中的第00h 塊(Block)中。共5個字節(jié)。
  事實(shí)上,對于程序員來說,實(shí)際有意義的SN只有前4個字節(jié),最后一個字節(jié)只是一個SN的校驗(yàn)碼。
  程序員在控制MCM及MCU,發(fā)送AntiCollision指令,而獲得SN之后,一般地應(yīng)在程序中對所接收到的SN進(jìn)行校驗(yàn),以確保數(shù)據(jù)的正確性。具體的方法是對所接收到的SN的bit位進(jìn)行異或校驗(yàn),這在后面的具體程序編制中將會闡述。
  對于MIFARE 1卡片來說,返回某一張卡片的有效序列號SN(4個字節(jié))可能為:007e0a42h。

3.“Select Tag” 選擇卡片操作


  在一個成功的AntiCollision指令之后,或在任何時(shí)候當(dāng)程序員想實(shí)際地與已知序列號的卡片進(jìn)行通信時(shí),必須使用Select指令,以建立與所選卡的通信。
  為了允許在Select指令以后對卡片能進(jìn)行Read/Write等指令的操作,Select指令是很重要的,必須首先被使用。被選擇的卡片將給出其自己的存儲器容量---已編碼的一個BYTE(字節(jié))。
  Select指令成功地完成后,MCU將得到MCM之DATA寄存器傳送來的一個字節(jié)長的卡片容量信息---SIZE字節(jié)。
  SIZE字節(jié)被存儲在Mifare 1卡片上的第00H扇區(qū)中的第00h 塊(Block)中。共1個字節(jié)(8bits)。
  對于MIFARE 1卡片來說,返回卡片的SIZE(個字節(jié))可能為88h。

4.Authentication” 認(rèn)證操作


  在MCU將運(yùn)算獲得的數(shù)據(jù),準(zhǔn)備存儲到卡片上的存儲器之前,或MCU希望能讀取Mifare 1卡片上的數(shù)據(jù)之前,程序員必須證明他的讀/寫請求操作是被允許的。
  這可以通過選擇秘密地存儲在MCM之RAM中的密碼集(KEYSET)中的一組密碼來進(jìn)行認(rèn)證而實(shí)現(xiàn)。如果這一組密碼匹配與Mifare 1卡片上的密碼,這一次的操作被允許進(jìn)行。
  卡片上的存儲器的每一個block(塊)(128 bits ) 都分別地指定了該BlOCK(塊)的存取條件。這些存取條件是根據(jù)密碼A或B(它們對整個sectors (扇區(qū))始終有效)而定。這樣一來,不同的操作可能會被允許對一個sector中的4個不同blocks的每一個block進(jìn)行操作。
  MCM能夠存儲3個密碼集KEYSET0,KEYSET1,KEYSET2。每一個KEYSET又包含了KEY A 及 KEYB 等,以存取最高達(dá)32Kbit內(nèi)存容量的MIFARE卡片。
  用戶必須在KEYSTACON(0B H地址)寄存器中指定一套密碼,即設(shè)置KS0, KS1。


  KEYADDR寄存器(0C H地址)中的AB位用于選擇KEYA(當(dāng)AB=“1”時(shí))和KEYB(當(dāng)AB=“0”時(shí))。


  KEYADDR寄存器(地址0C H) 中的“AB”設(shè)置必須匹配”Authentication”命令(指令代碼60和 61 hex),這是很重要的。否則,”Authentication”命令將失敗。
  即,在”Authentication”命令中,60h代碼用于認(rèn)證KEYA;61h代碼用于認(rèn)證KEYB。
  當(dāng)用60h代碼時(shí),在KEYADDR寄存器中只能設(shè)置AB=“1”,用于選擇KEYA;
  當(dāng)用61h代碼時(shí),在KEYADDR寄存器中只能設(shè)置AB=“0”,用于選擇KEYB;
  當(dāng)用60h代碼時(shí),在KEYADDR寄存器中不能設(shè)置AB=“0”,否則認(rèn)證命令將出錯;
  當(dāng)用61h代碼時(shí),在KEYADDR寄存器中不能設(shè)置AB=“1”,否則認(rèn)證命令將出錯;
  KS1和KS0的設(shè)置選擇與上述的認(rèn)證命令的指令代碼60和 61 hex的選擇無關(guān);
  KS1和KS0的設(shè)置選擇與上述的KEYADDR寄存器中AB的設(shè)置無關(guān)。

  在MCM中,KEY-RAM(密碼存儲器)的實(shí)際存儲器范圍是:


  MCM中另外還包含了KEY-ROM (密碼只讀存儲器),用以存儲一套傳輸密碼(one set of transport keys) 和一個維護(hù)密碼(one service KEY)。 傳輸密碼對于用戶想在KEY-RAM(密碼存儲器)中自己定義密碼而編程序時(shí),很有用。
KEY-ROM (密碼只讀存儲器)的存儲器容量為:

5.“Load KEY” 存取密碼


  在MCM中,每一個認(rèn)證扇區(qū)(Authentication sector)中包含了一套傳輸密碼Tkey(one transport KEY)。這些密碼在制造產(chǎn)品時(shí),可以編程。它們可以被傳輸?shù)较到y(tǒng)的集合器(例如,用戶開發(fā)的硬件系統(tǒng))中,集合器負(fù)責(zé)存取新的用戶定義的密碼到MCM-WOM(密碼只讀存儲器)中。此時(shí),可以通過“Load KEY”指令來完成任務(wù)。
  對于一個單獨(dú)扇區(qū)(sector)中的密碼提取,則相應(yīng)的傳輸密碼必須被預(yù)先指定。
  在用“Load KEY”指令來完成存取密碼過程中,KEYSTCON寄存器和KEYADDR寄存器的設(shè)置與“Authentication”的操作相似。但也有些區(qū)別。這將在后面的編程中具體介紹。

6.“Read” 讀指令操作


  Read (讀)指令允許MCU通過MCM來讀取MIFARE 1卡片上完整的16 個Bytes的數(shù)據(jù)塊(Data blocks)。
  只有在預(yù)先“Authentication” 認(rèn)證指令完成后,才允許進(jìn)行對Mifare 1卡片上的某一數(shù)據(jù)扇區(qū)進(jìn)行Read (讀)指令操作。
  Read (讀)指令操作只能一個塊(Block)一個塊地讀,即只能16個字節(jié)一次性地讀取。如果只要求某Block中的幾個字節(jié)的數(shù)據(jù),也只能一個整塊16個字節(jié)一起讀取,由程序員選取指定的字節(jié)。
  從卡片上讀到的數(shù)據(jù)必須由MCU進(jìn)行校驗(yàn),以確保數(shù)據(jù)的有效性。
  密碼數(shù)據(jù)不能被讀取。(待續(xù))

本文關(guān)鍵詞:關(guān)于非接觸式IC智能射頻卡及其讀寫設(shè)備內(nèi),于非接觸式IC智能射頻卡及其讀寫設(shè)備內(nèi)核,非接觸式IC智能射頻卡及其讀寫設(shè)備內(nèi)核技,接觸式IC智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù),觸式IC智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的,式IC智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研,IC智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究,C智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與,智能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng),能射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng)用,射頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng)用開,頻卡及其讀寫設(shè)備內(nèi)核技術(shù)的研究與應(yīng)用開發(fā),卡
回到頂部