RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)(ISO14443A)V1.02.doc_第1頁(yè)
RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)(ISO14443A)V1.02.doc_第2頁(yè)
RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)(ISO14443A)V1.02.doc_第3頁(yè)
RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)(ISO14443A)V1.02.doc_第4頁(yè)
RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)(ISO14443A)V1.02.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

RFID非接觸式IC卡讀寫(xiě)器用戶(hù)手冊(cè)V1.021、通信協(xié)議描述1.1 協(xié)議概述該協(xié)議是上位機(jī)與讀寫(xiě)器之間的通訊協(xié)議。通訊的格式是:1位起始位,1位長(zhǎng)度標(biāo)志位,若干數(shù)據(jù)位,1位異或校驗(yàn)位,1位結(jié)束位。通訊的最大長(zhǎng)度為64字節(jié)。1.2 字符定義字符數(shù)值定義STX0x02通訊開(kāi)始LEN-數(shù)據(jù)長(zhǎng)度DATA-數(shù)據(jù)BCC-異或校驗(yàn)ETX0x03通訊結(jié)束1.3 通訊過(guò)程示意圖1.4 數(shù)據(jù)格式Command(2 bytes)Data0Datam2、指令集2.1 指令一覽表指令碼功能0xC001尋卡(ISO/IEC15693)0xC005讀取某一塊的信息(ISO/IEC15693)0xC006將信息寫(xiě)入某一塊(ISO/IEC15693)0xC007將某一塊鎖定(ISO/IEC15693)0xC008寫(xiě)入AFI(ISO/IEC15693)0xC009鎖定AFI(ISO/IEC15693)0xC00A寫(xiě)入DSFID(ISO/IEC15693)0xC00B鎖定DSFID(ISO/IEC15693)0xC00C獲取系統(tǒng)信息(ISO/IEC15693)0x3224尋卡(ISO/IEC14443A存儲(chǔ)卡)0x3225休眠卡片(ISO/IEC14443A存儲(chǔ)卡)0x3241激活卡片(ISO/IEC14443A存儲(chǔ)卡)0x3243讀取某一塊的信息(ISO/IEC14443A存儲(chǔ)卡)0x3244將信息寫(xiě)入某一塊(ISO/IEC14443A存儲(chǔ)卡)0x3245讀余額(ISO/IEC14443A存儲(chǔ)卡)0x3246寫(xiě)入余額(ISO/IEC14443A存儲(chǔ)卡)0x3247余額加值(ISO/IEC14443A存儲(chǔ)卡)0x3248余額減值(ISO/IEC14443A存儲(chǔ)卡)0x324B卡片復(fù)位(ISO/IEC14443A智能卡)0x324C發(fā)送應(yīng)用命令(ISO/IEC14443A智能卡)2.2 狀態(tài)返回值返回值意義0x0000操作成功0xFFFF操作失敗3、二次開(kāi)發(fā)接口函數(shù)說(shuō)明3.1 適用于符合ISO/IEC14443A標(biāo)準(zhǔn)的存儲(chǔ)卡的接口函數(shù)3.1.1 Mifare S50/S70卡片特性 S50具有1K字節(jié)的EEPROM,S70具有4K字節(jié)的EEPROM S50分為16個(gè)扇區(qū),每個(gè)扇區(qū)包括4塊,每塊16個(gè)字節(jié),以塊為存取單位 S70分為40個(gè)扇區(qū),共256個(gè)塊,每塊16個(gè)字節(jié),以塊為存取單位 用戶(hù)可自定義每個(gè)存儲(chǔ)塊的訪(fǎng)問(wèn)條件 每張卡有唯一序列號(hào),為32位 具有防沖突機(jī)制,支持多卡操作 非接觸傳送數(shù)據(jù)和無(wú)源 至少10年數(shù)據(jù)保存期 至少10萬(wàn)次擦寫(xiě) 讀寫(xiě)距離在100mm內(nèi) 工作頻率為13.56MHz3.1.2 函數(shù)使用注意事項(xiàng)該二次開(kāi)發(fā)接口函數(shù)庫(kù)提供用于下發(fā)命令至讀寫(xiě)器的函數(shù),這些函數(shù)能夠控制讀寫(xiě)器對(duì)卡片進(jìn)行尋卡及讀寫(xiě)操作。在對(duì)卡片進(jìn)行操作前必須先尋卡,尋卡成功后才能對(duì)卡片進(jìn)行后續(xù)操作。卡片的讀寫(xiě)操作是以塊為單位,每塊為16個(gè)字節(jié)。不同扇區(qū)可以用不同的密鑰進(jìn)行認(rèn)證,每個(gè)扇區(qū)又可以使用A密鑰或B密鑰進(jìn)行認(rèn)證。3.1.3 函數(shù)說(shuō)明(1)尋卡int find_14443(BYTE* type, BYTE* card_uid );/功能: 尋卡/入口參數(shù): /出口參數(shù): type,指示尋卡成功的卡片為A類(lèi)卡或是B類(lèi)卡/ card_uid,指示用于存放UID的起始地址/返回值: 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: 獲取卡片UID/(2)HALT卡int set_halt();/功能: 使卡片休眠/入口參數(shù): /出口參數(shù): /返回值: 返回-2,尚未尋卡/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: 在HALT卡前必須已經(jīng)尋卡成功/(3)激活卡片int set_active();/功能: 激活卡片/入口參數(shù): /出口參數(shù): /返回值: 返回-2,尚未尋卡/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: 可以令處于休眠狀態(tài)的卡片處于激活狀態(tài)/(4)讀塊int read_block(int page,int block,unsigned char pswtype,unsigned char *psw,unsigned char *des_data,int* des_len);/功能: 讀取一個(gè)塊的值/入口參數(shù): page,指定要讀取的塊所在的扇區(qū)/ block,指定要讀取的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/出口參數(shù): des_data,指示用于存放讀取的數(shù)據(jù)的起始地址/ des_len,指示用于存放返回讀取數(shù)據(jù)長(zhǎng)度的起始地址/返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/(5)寫(xiě)塊int write_block(int block,int page,unsigned char pswtype,unsigned char *psw,unsigned char *src_data,int src_len)/功能: 往一個(gè)塊寫(xiě)入指定的值/入口參數(shù): page,指定要寫(xiě)入的塊所在的扇區(qū)/ block,指定要寫(xiě)入的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/ src_data,指示用于存放要寫(xiě)入的數(shù)據(jù)的起始地址/ src_len,指示用于存放返回寫(xiě)入數(shù)據(jù)的長(zhǎng)度/出口參數(shù): / /返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/(6)讀余額int read_account(int page,int block,unsigned char pswtype,unsigned char *psw,LONG* account)/功能: 從指定的塊里讀取錢(qián)包的余額(在調(diào)用該函數(shù)前必須確保錢(qián)包已初始化)/入口參數(shù): page,指定錢(qián)包所在的扇區(qū)/ block,指定錢(qián)包所在的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/出口參數(shù): account,指示用于存放要讀取的余額的起始地址/返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/ 讀余額前必須確保參數(shù)指定的扇區(qū)和塊已初始化為錢(qián)包,否則可以通過(guò)調(diào)/ 用write_account()函數(shù)來(lái)初始化為錢(qián)包/(7)寫(xiě)余額(初始化)int write_account(int page,int block,unsigned char pswtype,unsigned char *psw,LONG account)/功能: 往錢(qián)包寫(xiě)入指定的值/入口參數(shù): page,指定錢(qián)包所在的扇區(qū)/ block,指定錢(qián)包所在的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/ account,指示用于要寫(xiě)入的值/出口參數(shù): / /返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/(8)加余額int add_account(int page,int block,unsigned char pswtype,unsigned char *psw,long addAccount)/功能: 往錢(qián)包加上指定的值/入口參數(shù): page,指定錢(qián)包所在的扇區(qū)/ block,指定錢(qián)包所在的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/ addAccount,指示用于要往錢(qián)包加上的值/出口參數(shù): / /返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/(9)減余額int sub_account(int page,int block,unsigned char pswtype,unsigned char *psw,long subAccount)/功能: 往錢(qián)包減去指定的值/入口參數(shù): page,指定錢(qián)包所在的扇區(qū)/ block,指定錢(qián)包所在的塊的塊號(hào)/ pswtype,指定用于認(rèn)證的密鑰的類(lèi)型,其值可為0x0a或者0x0b/ psw,指示用于認(rèn)證的密鑰的值的起始地址/ subAccount,指示用于要減去的值/出口參數(shù): / /返回值: 返回-2,尚未尋卡/ 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,通信失敗/ 返回1,操作成功/ 返回0xff,操作失敗/說(shuō)明: pswtype用于指于認(rèn)證密鑰為A密鑰或?yàn)锽密鑰,對(duì)應(yīng)A密鑰pswtype必/ 須為0x0a,對(duì)應(yīng)B密鑰pswtype必須為0x0b。/3.2 適用于符合ISO/IEC14443A標(biāo)準(zhǔn)的CPU卡的接口函數(shù)3.2.1 CPU卡片特性 符合ISO/IEC14443A標(biāo)準(zhǔn) 工作頻率為13.56MHz 內(nèi)置MCU與COS(chip operating system) 支持DES/3DES算法,高安全性 存在文件系統(tǒng),支持多種格式的存儲(chǔ) 交易流程規(guī)范化3.2.2 函數(shù)使用注意事項(xiàng)該二次開(kāi)發(fā)接口提供函數(shù)的功能為:下發(fā)命令至讀寫(xiě)器,再由讀寫(xiě)器轉(zhuǎn)發(fā)相應(yīng)的命令至CPU卡,由CPU卡進(jìn)行相應(yīng)的處理,并將處理結(jié)果通過(guò)讀寫(xiě)器上傳至上位機(jī)程序。在卡片進(jìn)行操作之前,必須進(jìn)行復(fù)位,使卡片處于激活狀態(tài)。交易結(jié)束后,使用DESELECT命令使卡片處于HALT狀態(tài)。3.2.3 函數(shù)說(shuō)明(1)復(fù)位bool card_reset()/功能: 對(duì)CPU卡進(jìn)行復(fù)位,完成尋卡、防沖突和選卡功能,操作成功后卡片處于/ 激活狀態(tài)/入口參數(shù): /出口參數(shù): / /返回值: 返回-1,傳入?yún)?shù)錯(cuò)誤/ 返回0,操作或通信失敗/ 返回1,操作成功/ /說(shuō)明: 在對(duì)卡片發(fā)送應(yīng)用命令前,必須先進(jìn)行復(fù)位,復(fù)位成功后才能進(jìn)行后續(xù)操/ 作。復(fù)位操作的前提是卡片處于非激活狀態(tài)。/(2)發(fā)送應(yīng)用命令bool app_command(int comm_len, unsigned char *comm, int *resp_len, unsigned char *resp)/功能: 傳輸應(yīng)用命令至卡片,由卡片的COS處理后返回?cái)?shù)據(jù)/

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論