通用無驅(qū)系列中文使用手冊(cè)_第1頁(yè)
通用無驅(qū)系列中文使用手冊(cè)_第2頁(yè)
通用無驅(qū)系列中文使用手冊(cè)_第3頁(yè)
通用無驅(qū)系列中文使用手冊(cè)_第4頁(yè)
通用無驅(qū)系列中文使用手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

簡(jiǎn) 本手冊(cè)使用范 術(shù)語(yǔ)表和縮略 簡(jiǎn) 本手冊(cè)使用范 術(shù)語(yǔ)表和縮略 概 讀寫器概 設(shè)備接 讀寫器裝箱清 程序安 軟 技術(shù)指 API函數(shù)指 軟件開發(fā)包安裝程序安裝后主要目錄和文 函數(shù)使用說 庫(kù)函數(shù)簡(jiǎn) 1234通用函數(shù)簡(jiǎn) 設(shè)備操作函 復(fù)位RF(射頻)模 卡片操 .9.通用函 設(shè)備操作函 MIFARE標(biāo)準(zhǔn)非接觸卡操作函 1234MIFARE標(biāo)準(zhǔn)非接觸卡操作流程 認(rèn)證方式比 MIFARESTANDARD1K卡 MIFARE .——————————————————————————————————————————————Page2of 5 5 .復(fù)旦籌碼卡操作函 1復(fù)旦非接觸 .華虹SHC1102卡操作函 狀態(tài) SHC1102操作流 函數(shù)說 SAM/CPU卡操作函 SAM SAM指令傳 CPU CPU指令傳 11MIFAREPRO卡操作函 附卡片操作流 MIFAREPRO操作函 非接觸卡片的特 復(fù)旦 華虹 ——————————————————————————————————————————————Page3of1簡(jiǎn)本手冊(cè)使用范本手冊(cè)描述了非接觸式IC1簡(jiǎn)本手冊(cè)使用范本手冊(cè)描述了非接觸式IC卡讀寫器的使用及應(yīng)用程序接口函數(shù)(API,所有API函術(shù)語(yǔ)表和縮略近距離集成電路唯一識(shí)別DSFID: 保概設(shè)備操作函MifareStandard1K卡片操作函數(shù)MifareStandard1K卡片操作函數(shù)MifareUltraLight卡片操作函數(shù)MifareStandard4K卡片操作函數(shù)復(fù)旦FM11RF005卡片操作函數(shù)華虹SHC1102卡片操作函數(shù)SAM/CPU卡片操作函數(shù)MifarePro/Prox卡片操作函數(shù)附錄(非接觸卡特性——————————————————————————————————————————————Page4of2讀寫器概HRF-35LT是明華設(shè)備公司推出的又一款射頻讀寫器。它采用了USB接口2讀寫器概HRF-35LT是明華設(shè)備公司推出的又一款射頻讀寫器。它采用了USB接口通訊和取電,支ISO14443-3TypeA協(xié)議的卡片,例MifareOne、UltraLight、Mifare4K、MifarePro等。隨機(jī)提供的接口函數(shù)庫(kù)可滿足用戶二次開發(fā)的需要;其完善、可靠的接口函數(shù),支持訪問射頻卡的功能設(shè)備接USB接口用于與上位PC聯(lián)機(jī)讀寫器裝箱清包裝盒內(nèi)配有:讀寫器,驅(qū)程序安HRF_35LT.exe按步驟安裝我們的HRF-35LT軟件開發(fā)包,安裝結(jié)束后,在c:下創(chuàng)建一MWHRF- 的子目錄,所有軟件均在此目錄下注:安裝結(jié)束后,在c:下創(chuàng)建一個(gè)MWHRF-35LT的子目錄,所有軟件均在此目錄下軟通用無驅(qū)系列讀寫器軟件包括:演示程序、函數(shù)庫(kù)和應(yīng)用范演示程提供Windows版演示程序:DemoHRF1.0.exe函數(shù)WINDOWS32位動(dòng)態(tài)應(yīng)用范MWHRF- 目錄下提供各種開發(fā)平臺(tái)的應(yīng)用范例,包括VB、DELPHI、等——————————————————————————————————————————————Page5of卡HRF-內(nèi)置天技術(shù)指技術(shù)指操作距離:HRF-35LT為 標(biāo)準(zhǔn)卡讀寫距離(()工作電源:USB取電%200——————————————————————————————————————————————Page6of3API函數(shù)指軟件開發(fā)包安裝程序安裝后主要目錄和3API函數(shù)指軟件開發(fā)包安裝程序安裝后主要目錄和文軟件開發(fā)包安裝程序安裝mwhrf-下的目錄和文Mwhrf-35lt\hrf- WINDOWS下演示軟\mwrf32.dllMwhrf-35lt\hrf-WINDOWS32動(dòng)態(tài)VC,VB,DELPHI等各種平臺(tái) 函數(shù)使用說函數(shù)調(diào)用應(yīng)遵循如下規(guī)則程序開始,首先要調(diào)用rf_init( rf_load_key()將卡中某一扇區(qū)密碼輸入到讀寫器中。如果使用直接密碼認(rèn)證,這步可以省調(diào)用rf_card()函數(shù)或者連續(xù)調(diào)用rf_request()anticoll()select()三個(gè)函數(shù),成返回卡的序列號(hào),并且卡片進(jìn)入激活狀態(tài)可(4)如果使用裝載密碼認(rèn)證并且已裝載密碼,對(duì)于需要密碼驗(yàn)證的卡片調(diào)函數(shù)驗(yàn)證卡片的密碼,一次只能驗(yàn)證一個(gè)扇區(qū)如果使用直接密碼認(rèn)證rf_authentication_key()函數(shù)驗(yàn)證卡片的密碼,用于驗(yàn)證的密)由于高級(jí)函數(shù)集成了若干低級(jí)函數(shù),所以調(diào)用前可不必運(yùn)行(3(4)過程(7)對(duì)某張卡操作完成后,應(yīng)rf_halt()函數(shù)結(jié)束對(duì)該卡的操作程序正常退出或因錯(cuò)誤退出之前,要用rf_exit()函數(shù)關(guān)閉讀寫器,斷開讀寫器與PC之間的有關(guān)調(diào)用各種函數(shù)庫(kù)的具體方法,請(qǐng)參 mwhrf-35lt\hrf-35lt\Examples\目錄下的使用范例——————————————————————————————————————————————Page7of 庫(kù)函數(shù)簡(jiǎn)本手冊(cè)主要描述了35TI系列讀寫器操 庫(kù)函數(shù)簡(jiǎn)本手冊(cè)主要描述了35TI系列讀寫器操 通用函數(shù)簡(jiǎn)通用函數(shù)用來實(shí)現(xiàn)打開/關(guān)閉串口、加密/解密以及16進(jìn)制字ASCII字符串間的相互轉(zhuǎn) rf_init(int16port,longrf_exit(HANDLErf_decrypt(char*key,unsignedchar*ptrSource,unsignedintmsglen,char*ptrDest);rf_encrypt(char*key,unsignedchar*ptrSource,unsignedintmsgLen,unsignedcharhex_a(unsignedchar*hex,char*a,unsignedcharlength);a_hex(char*a,unsignedchar*hex,unsignedcharlen);設(shè)備操作函設(shè)備操作函數(shù)可以復(fù)位讀寫器、控制蜂鳴器、 存儲(chǔ)器、獲取軟件版本號(hào)、獲硬件版本號(hào)及產(chǎn)品系列號(hào)等復(fù)位RF(射頻)模塊 rf_reset(HANDLEicdev,unsignedint16——————————————————————————————————————————————Page8of關(guān)閉通訊操作卡操作設(shè)初始化通訊上電,復(fù)控制蜂鳴器 獲取硬件版本號(hào) 控制蜂鳴器 獲取硬件版本號(hào) 獲取產(chǎn)品系列號(hào) rf_srd_snr(HANDLEicdev,int16lenth,unsignedchar獲取軟件版本號(hào) lib_ver(unsignedchar 復(fù)位RF(射頻)模 rf_reset(HANDLEicdev,unsignedint16功能參數(shù)icdev:rf_init()返回的設(shè)備描述符_Msec:0~返回成出例 卡片操卡片的應(yīng)用程序接口(API)函數(shù)是根據(jù)卡片的標(biāo)準(zhǔn)來4.4.1Mifare標(biāo)準(zhǔn)非接觸卡操作函裝載密碼 rf_load_key(inticdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedchar rf_load_key_hex(inticdev,unsignedchar_Mode,unsignedchar_SecNr,chariae。這樣用戶使用起來會(huì)更方便。但是,如果對(duì)卡片進(jìn)行多扇區(qū)或多塊操作,速度將會(huì)變慢,因?yàn)樵诘图?jí)函數(shù)rf_request(HANDLEicdev,unsignedchar_Mode,unsigned rf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlong*_Snr);rf_select(HANDLEicdev,unsignedlong_Snr,unsignedchar*_Size);rf_authentication_2(HANDLEicdev,unsignedchar——————————————————————————————————————————————Page9ofrf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsignedchar_BlockNr,unsignedchar*_Key);rf_read(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_read_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_write(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_write_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_increment(HANDLEicdev,unsignedchar_Adr,unsignedlong_Value);rf_restore(HANDLEicdev,unsignedchar_Adr);rf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsignedchar_BlockNr,unsignedchar*_Key);rf_read(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_read_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_write(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_write_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_increment(HANDLEicdev,unsignedchar_Adr,unsignedlong_Value);rf_restore(HANDLEicdev,unsignedchar_Adr);rf_transfer(HANDLEicdev,unsignedchar_Adr);rf_readval(HANDLEicdev,unsignedchar_Adr,unsignedlong*_Value);高級(jí)函數(shù)rf_changeb3(HANDLEicdev,unsignedchar_SecNr,unsignedchar*_KeyA,unsignedchar_B1,unsignedchar_B2,unsignedchar_B3,unsigned_Bk,unsignedcharrf_check_write(HANDLEicdev,unsignedlongSnr,unsignedcharauthmode,unsignedcharAdr,unsignedchar*_data);rf_check_writehex(HANDLEicdev,unsignedlongSnr,unsignedcharauthmode,unsignedcharAdr,char*_data);rf_HL_authentication(HANDLEicdev,unsignedcharreqmode,unsignedlongcharauthmode,unsignedcharintrf_HL_decrement(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedintrf_HL_increment(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedrf_HL_write(HANDLEicdev,unsignedchar_Mode,unsignedcharrf_HL_writehex(HANDLEicdev,unsignedchar_Mode,unsignedchar*_Snr,charrf_HL_read(HANDLEicdev,unsignedchar_Mode,unsignedcharintrf_HL_readhex(HANDLEicdev,unsignedchar_Mode,unsignedchar_Adr,unsignedlong_Snr,char*_Data,unsignedlong*_NSnr);intrf_HL_initval(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedMifareUltraLight專用函數(shù) rf_get_snr(HANDLEicdev,unsignedchar——————————————————————————————————————————————Page10of4.4.2FM11RF005非接觸射頻卡操作函裝載密碼函數(shù) rf_load_key(inticdev,unsigned4.4.2FM11RF005非接觸射頻卡操作函裝載密碼函數(shù) rf_load_key(inticdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedchar*_NKey); rf_load_key_hex(inticdev,unsignedchar_Mode,unsignedchar_SecNr,char*_NKey);低級(jí)函數(shù)rf_request(HANDLEicdev,unsignedchar_Mode,unsigned int16*TagType);rf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlong*_Snr);rf_select(HANDLEicdev,unsignedlong_Snr,unsignedchar*_Size);rf_authentication(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr);rf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsignedcharunsignedchar*_Key);rf_read(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_read_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_write_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);高級(jí)函數(shù) 華虹SHC1102卡片操作函裝載密碼函數(shù) rf_load_key(inticdev,unsignedchar_Mode,unsignedchar_SecNr,unsignedchar*_NKey); rf_load_key_hex(inticdev,unsignedchar_Mode,unsignedchar_SecNr,char*_NKey);低級(jí)函數(shù)rf_request(HANDLEicdev,unsignedchar_Mode,unsigned int16*TagType);rf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlong*_Snr);rf_select(HANDLEicdev,unsignedlong_Snr,unsignedchar*_Size);rf_authentication(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr);rf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsignedchar_BlockNr,unsignedchar*_Key);rf_read(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data);rf_read_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);rf_write_hex(HANDLEicdev,unsignedchar_Adr,char*_Data);高級(jí)函數(shù) ——————————————————————————————————————————————Page11of4.4.4SAM/CPU卡操作函intrf_sam_rst(HANDLEicdev,unsignedcharbaud,unsignedchar*samack);intrf_sam_trn(HANDLEicdev,unsignedchar*samblock,unsignedchar*recv);intrf_cpu_rst(HANDLEicdev,unsignedcharbaud,unsignedchar*cpuack);4.4.5MIFAREPRO4.4.4SAM/CPU卡操作函intrf_sam_rst(HANDLEicdev,unsignedcharbaud,unsignedchar*samack);intrf_sam_trn(HANDLEicdev,unsignedchar*samblock,unsignedchar*recv);intrf_cpu_rst(HANDLEicdev,unsignedcharbaud,unsignedchar*cpuack);4.4.5MIFAREPRO卡操作函intrf_request(HANDLEicdev,unsignedchar_Mode,unsigned intrf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlong*_Snr);intrf_select(HANDLEicdev,unsignedlong_Snr,unsignedchar*_Size);intrf_pro_rst(HANDLEicdev,unsignedchar*_Data);5通用函下面將詳細(xì)描述通用函數(shù)功HANDLErf_init(int16port,long能該函數(shù)用于建立讀寫器PC機(jī)之間的連接,首先搜索無驅(qū)接口讀寫器,如果找到設(shè)備,則建立連接并返回。如果沒有發(fā)現(xiàn)無驅(qū)接口讀寫器,則PC機(jī)通的設(shè)備描述符供以后使用參數(shù)通訊口號(hào),對(duì)于無驅(qū)設(shè)備該baudrate通訊波特率(9600~115200),對(duì)于無驅(qū)設(shè)備該參數(shù)無效失返回例int波特率:115200,端口 能數(shù)斷開機(jī)與讀寫器之間的連接,并釋放相關(guān)設(shè)備描述符icdev:rf_init()= 成<>0:intst;返回例——————————————————————————————————————————————Page12of能DES算法加密。功參8密返回 = 能DES算法加密。功參8密返回 = 成 失//用“12345678”加密“abcdefghabcdefgh”例rf_decrypt(char*key,unsignedchar能DES功參回 成失返例//用“12345678”來解密“abcdefghabcdefgh” hex_a(unsignedchar*hex,char*a,unsignedchar能16ASCII字符。 16輸出ASCII字返回 成失 a_hex(char*a,unsignedchar*hex,unsignedchar能ASCII16進(jìn)制數(shù)。a:回:16進(jìn)制數(shù)失返——————————————————————————————————————————————Page13of6設(shè)備操作函 rf_reset(HANDLEicdev,unsignedint16能:射頻頭復(fù)位(射頻頭掉電幾毫秒)。 rf_init()返回的設(shè)備描述_Msec:復(fù)位時(shí)間,0~6設(shè)備操作函 rf_reset(HANDLEicdev,unsignedint16能:射頻頭復(fù)位(射頻頭掉電幾毫秒)。 rf_init()返回的設(shè)備描述_Msec:復(fù)位時(shí)間,0~500回 返成失例 能數(shù)蜂鳴幾毫秒 rf_init()返回的設(shè)備描述_Msec:返回=成失例st=rf_beep(icdev,10);//鳴叫10毫能數(shù)rf_get_status(HANDLEicdev,unsignedchar獲取讀寫器的版本號(hào) rf_init()返回的設(shè)備描述返回讀寫器版本信息,長(zhǎng)度為18字返回 成 失intunsignedcharstatus[19];例能數(shù)rf_srdsnr(HANDLEicdev,int16lenth,unsignedchar*rec獲取讀寫器的產(chǎn)品序列號(hào)icdev:rf_init()返回的設(shè)備描述符length:產(chǎn)品序列號(hào)的長(zhǎng)度為16字節(jié)receive_buffer:返回成失unsignedchar例 lib_ver(unsignedchar——————————————————————————————————————————————Page14of功參能:APIAPI函數(shù)庫(kù)版本號(hào),長(zhǎng)度為18個(gè)字節(jié)失返unsignedchar例能功參能:APIAPI函數(shù)庫(kù)版本號(hào),長(zhǎng)度為18個(gè)字節(jié)失返unsignedchar例能數(shù)讀取讀寫器的日期、星期和時(shí)間rf_init()返回的設(shè)備描述接收數(shù)據(jù),長(zhǎng)度大于7失秒intst;返回例char//datetime//1999,Thursday,May20,數(shù)rf_init()返回的設(shè)備描述日期、星期和秒返回例//17/06/99,時(shí)間為:12:34:56,unsignedchar——————————————————————————————————————————————Page15of能數(shù)rf_gettimehex(HANDLEicdev,char讀取讀寫器時(shí)鐘的日期、星期和時(shí) (16進(jìn)制數(shù))icdev:rf_init()返回的設(shè)備描述符receive_data:返回的數(shù)據(jù),長(zhǎng)度大于14個(gè)字節(jié) 成 失chardata[15];能數(shù)rf_gettimehex(HANDLEicdev,char讀取讀寫器時(shí)鐘的日期、星期和時(shí) (16進(jìn)制數(shù))icdev:rf_init()返回的設(shè)備描述符receive_data:返回的數(shù)據(jù),長(zhǎng)度大于14個(gè)字節(jié) 成 失chardata[15];返回例rf_settimehex(HANDLEicdev,char能:以16進(jìn)制數(shù)設(shè)置讀寫器時(shí)鐘的日期、星期和時(shí)間數(shù)成失返回例//設(shè)置日期:17/06/99,時(shí)間:12:34:56,charrf_srdeeprom(HANDLEicdev,int16offset,length,能數(shù)eeprom功參位移地址(0-249)數(shù)據(jù)長(zhǎng)度(1- 接收數(shù)據(jù)的緩沖返回=成失例unsignedcharrf_swreeprom(HANDLEicdev,int16offset,int16能eeprom中寫入數(shù)據(jù)。icdev:rf_init()返回的設(shè)備描述符offset:位移地址(0-249)length:數(shù)據(jù)長(zhǎng)度(1- 將寫eeprom中的數(shù)功參——————————————————————————————————————————————Page16of=成失例unsignedchar7標(biāo)準(zhǔn)=成失例unsignedchar7標(biāo)準(zhǔn)非接觸卡操作流程改變操作地——————————————————————————————————————————————Page17of中(完成所有操作減值操增值操作,選沖IDLE/ALL模式尋復(fù)上電復(fù) 認(rèn)證方式比 認(rèn)證方式比安全性裝載密碼認(rèn)證是指將密碼下載到讀寫器存儲(chǔ)單元,C機(jī)發(fā)送卡片認(rèn)證指令后讀寫器從存儲(chǔ)單元取出相應(yīng)的密碼進(jìn)行卡片認(rèn)證。由于密碼下載到讀寫器存儲(chǔ)單元后是不可讀的,并且下載到讀寫器的密碼在讀寫器斷電后不會(huì)丟失,所以可以在安全的地方將密碼下載到讀寫器密碼存儲(chǔ)單元有使用壽命,一般為十萬次,如果裝載過于頻繁超過使用壽命,將會(huì)壞掉不能再裝載密碼b)直接密碼認(rèn)證的優(yōu)點(diǎn)和缺點(diǎn)PC缺點(diǎn):安全性不己保證,通過其他方式來保證密碼的安全性——————————————————————————————————————————————Page18of MifareStandard1K卡這里詳細(xì)介紹了MifareStandard1K MifareStandard1K卡這里詳細(xì)介紹了MifareStandard1K卡片的操作函數(shù),有關(guān)卡片的資料詳見Standard1K”部分MifareStandard卡片狀態(tài)POWERPowerOnIDLERequestREADYACTIVERequestHALT——————————————————————————————————————————————Page19ofMifareStandard1K卡API函數(shù)流程IDLE多卡操驗(yàn)證該扇區(qū)的密。rf_authenticat數(shù)據(jù)值操M(fèi)ifareStandard1K卡API函數(shù)流程IDLE多卡操驗(yàn)證該扇區(qū)的密。rf_authenticat數(shù)據(jù)值操NY張卡片嗎N調(diào)用std1K卡片API——————————————————————————————————————————————Page20of退出Y用IDLE模式或ALL模式尋選用IDLE上電7.3.3操作函數(shù)說iae。這樣用戶使用起來會(huì)更方便。但是,如果對(duì)卡片進(jìn)行多扇區(qū)或多塊操作,速度將會(huì)變慢,因?yàn)樵?rf_load_key(HANDLEicdev,unsigned7.3.3操作函數(shù)說iae。這樣用戶使用起來會(huì)更方便。但是,如果對(duì)卡片進(jìn)行多扇區(qū)或多塊操作,速度將會(huì)變慢,因?yàn)樵?rf_load_key(HANDLEicdev,unsignedchar_Mode,unsigned功向讀寫器裝載指定扇區(qū)的新密碼(不與卡片進(jìn)行通訊),讀寫器中有16個(gè)扇區(qū)(0~15參 rf_init()返回的設(shè)備描述_Mode:0—KEY4—KEY=失返裝載扇區(qū)1的0keyrf_load_key_hex(HANDLEicdev,unsignedchar_Mode,unsignedchar:rf_load_key函數(shù)相似。參數(shù): rf_init()返回的設(shè)備描述_Mode:0—KEY4—KEY返回 失例charkey[]=“a0a1a2a3a4a5”;——————————————————————————————————————————————Page21of(1)rf_request(HANDLEicdev,unsignedchar_Mode,unsigned:該函數(shù)向卡片發(fā)出尋卡命令,開始選擇一張新卡片時(shí)需要執(zhí)行該函數(shù)。參數(shù): rf_init()返回的設(shè)備描述尋卡模式(1)rf_request(HANDLEicdev,unsignedchar_Mode,unsigned:該函數(shù)向卡片發(fā)出尋卡命令,開始選擇一張新卡片時(shí)需要執(zhí)行該函數(shù)。參數(shù): rf_init()返回的設(shè)備描述尋卡模式0IDLEmode,IDLE狀態(tài)的卡片才響應(yīng)讀寫器ALLmode,IDLEHALT響應(yīng)讀寫器的命令1(Mifarestd.1k0x0004,UltraLight0x0044,FM005:0x0005Mifarestd.4k:0x0002,SHC1122:成失例unsignedinttagtype;(2)MIFARE卡片在感應(yīng)區(qū)內(nèi),將會(huì)選擇一張卡片,并返回卡片的序列號(hào)供將來調(diào)用rf_select函數(shù)時(shí)=intrf_init()返回的設(shè)備描述,失例unsignedlong(3)用指定的序列號(hào)選擇卡片,將卡片的容量返回給PC機(jī)icdev:rf_init()返回的設(shè)備描_Snr:卡片容量的地址指針,目前該值——————————————————————————————————————————————Page22of=int成失例unsignedlongunsignedcharsize;(4)rf_authentication(HANDLE=int成失例unsignedlongunsignedcharsize;(4)rf_authentication(HANDLEicdev,unsignedchar_Mode,unsigned功能: 0—KEYA4—KEYB失=例 int//authenticationthe5thsectorwhitthe0thkeyA(5)int rf_authentication_2(HANDLEicdev,unsignedchar_Mode,unsignedcharKeyNr,unsignedcharAdr);功能: rf_init()返回的設(shè)備描述_Mode:0—KEYA4—KEYBKeyNr:讀寫器中該扇區(qū)(0~15)=失例 用讀寫器中0扇區(qū)的KEYA驗(yàn)證塊2int(6)intrf_authentication_key(HANDLEicdev,unsignedchar_Mode,char_BlockNr,unsignedchar功能利用函數(shù)參數(shù)中提供的密碼對(duì)卡片指定數(shù)據(jù)塊進(jìn)行認(rèn)證。如果參數(shù)中提供——————————————————————————————————————————————Page23of密碼與卡片的密碼匹配,則認(rèn)證成功,反之則認(rèn)證失敗參數(shù)icdev:rf_init()_Mode:密碼與卡片的密碼匹配,則認(rèn)證成功,反之則認(rèn)證失敗參數(shù)icdev:rf_init()_Mode:0—KEYA4—KEYBBlockNr:卡片數(shù)據(jù)塊地址=錯(cuò)返回unsignedcharkey[]={0xff,0xff,0xff,0xff,0xff,st=rf_authentication_key(icdev,0,0,例(7)從一張選定并通過密碼驗(yàn)證的卡片讀取一塊共16個(gè)字節(jié)的數(shù)據(jù)icdev:rf_init()返回的設(shè)備描 讀取數(shù)據(jù)的塊號(hào)_Data:讀取的數(shù)據(jù),PC機(jī)上RAM的地址空間由調(diào)用該函數(shù)來分配 成 失int例(8)讀取16進(jìn)制數(shù)的16int塊地址,0~63失返回例unsignedchar//readdatafromblock1(9)將一塊共16字節(jié)寫入選定并驗(yàn)證通過的卡片中icdev:rf_init()返回的設(shè)備描_Adr:_Data:寫入數(shù)據(jù),長(zhǎng)度為16——————————————————————————————————————————————Page24ofint成失例st=rf_write(icdev,1,data);寫入塊(10)rf_write_hex(HANDLEicdev,unsignedchar_Adr,charint成失例st=rf_write(icdev,1,data);寫入塊(10)rf_write_hex(HANDLEicdev,unsignedchar_Adr,char以十六進(jìn)制寫數(shù)據(jù),icdev:rf_init()返回的設(shè)備描_Adr:_Data:寫入數(shù)據(jù),長(zhǎng)度為32 成 失intst=rf_write_hex(icdev,1,data);//writeblock1例初始化某一塊的值icdev:rf_init()返回的設(shè)備描_Adr:_Value: 成 失intunsignedlongvalue=1000;例注:對(duì)某一塊進(jìn)行值操作時(shí)使用的是特殊的數(shù)據(jù)結(jié)構(gòu),所以需要進(jìn)行初始化,后才可以進(jìn)行其它的增值和減值操作(12)rf_increment(HANDLEicdev,unsignedchar_Adr,unsigned對(duì)值操作的塊進(jìn)行增值操作icdev:rf_init()返回的設(shè)備描_Adr:_Value:返回=int失例unsignedlong——————————————————————————————————————————————Page25of:對(duì)值操作的塊進(jìn)行減值操作。參數(shù): rf_init()返回的設(shè)備描述 值:對(duì)值操作的塊進(jìn)行減值操作。參數(shù): rf_init()返回的設(shè)備描述 值操作的塊地int失例unsignedlong(14) 讀出指定值操作塊的當(dāng)前值 rf_init()返回的設(shè)備描述 值操作的塊地:返回=int成失例unsignedlong//readthecontentandputinvalue(15)將某塊的數(shù)據(jù)傳入卡的內(nèi)部寄存器中int失例注:用此函數(shù)將某一塊內(nèi)的數(shù)值傳入卡的內(nèi)部寄存器,然后rf_transfer()數(shù)將寄存器的數(shù)據(jù)再傳送到另一塊中去,即實(shí)現(xiàn)了塊與塊之間的數(shù)值傳送(16)rf_transfer(HANDLEicdev,unsignedchar:increment,decrement或restore操作后可直接調(diào)用?!狿age26of=0intrf_init()返回的設(shè)備描失例(17)=0intrf_init()返回的設(shè)備描失例(17)unsignedlong_Value);通過傳送來減少塊的值能功 rf_init()返回的設(shè)備描述 塊地_Value:回int成失例unsignedlong(18)rf_halt(HANDLE功能:將一張選中的卡片設(shè)為“Halt”模式,只有當(dāng)該卡再次復(fù)位或用調(diào)用request函數(shù)時(shí),讀寫器才能夠再次操作它。ALL失例 注:使rf_card()函數(shù)時(shí),如果模式選擇為0則在對(duì)卡進(jìn)行讀寫操作完畢后,必須執(zhí)rf_halt(),且只能當(dāng)該卡離開并再次進(jìn)入操作區(qū)域時(shí),讀寫器才能夠再次操作它 高級(jí)函(19) 功能 rf_select的功能icdev:rf_init()返回的設(shè)備描_Mode:0:IDLE1:ALL返回卡片的系列——————————————————————————————————————————————Page27of=0 成<>0int失例unsignedcharMode=0;//IDLE=0 成<>0int失例unsignedcharMode=0;//IDLEmodeunsignedlongsnr;)和注意IDLE模式尋卡時(shí),完成對(duì)卡片的操作后rf_halt函數(shù)來停止操作,選用ALL模式尋卡時(shí),完成對(duì)卡片的操作后調(diào)用rf_halt函數(shù)來停止此后讀寫器仍能找到該卡片,無須離開操作區(qū)域并再次重新進(jìn)入(20)int rf_changeb3(HANDLEicdev,unsignedchar_SecNr,unsignedchar*_KeyA,unsignedchar_B0,unsignedchar_B1,unsignedchar_B2,unsignedchar_B3,unsignedchar_Bk,unsignedchar*_KeyB);功能 修改KeyA,訪問條件和0塊的控制位,低三位(D2D1D0)對(duì)應(yīng)為1塊的控制位,(D2D1D0)對(duì)應(yīng)為2塊的(D2D1D0)對(duì)應(yīng)3塊的(D2D1D0)對(duì)應(yīng)為保留參數(shù),設(shè)為 key 成 失intunsignedcharkeya[6]={0xa0,0xa1,0xa2,0xa3,0xa4,0xa5};例(21)int charauthmode,unsignedcharAdr,unsignedchar*_data);:rf_write()函數(shù)后調(diào)用該函數(shù)。參數(shù): Authmode:01塊地——————————————————————————————————————————————Page28of失unsignedchardatabuff[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,unsignedcharst=rf_write(icdev,4,databuff)寫入第4例st=rf_check_write(icdev,authmode,4,databuff);失unsignedchardatabuff[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,unsignedcharst=rf_write(icdev,4,databuff)寫入第4例st=rf_check_write(icdev,authmode,4,databuff);檢查第4塊的內(nèi)容正確與(22)int charauthmode,unsignedcharAdr,char*_data);:rf_check_write()函數(shù)類似,但使用的是16進(jìn)制數(shù)。參數(shù): Authmode:返回 =塊地失 unsignedcharauthmode=0;(23)rf_HL_initval(HANDLEicdev,unsignedchar:高級(jí)初始化值(只用于扇區(qū)不用于塊0——IDLE1——ALL,初始化的卡片系列號(hào)(只在模式2,選擇模式中使用返回 =成失函數(shù)操作流程:request(ALL(DATA)——————————————————————————————————————————————Page29ofread(DATA)read(BACKUP)unsignedlongsnr;例(24)rf_HL_decrement(HANDLEicdev,unsignedchar_Mode,unsignedread(DATA)read(BACKUP)unsignedlongsnr;例(24)rf_HL_decrement(HANDLEicdev,unsignedchar_Mode,unsigned:高級(jí)減值操作(用于扇區(qū))參數(shù):icdev:rf_init()返回的設(shè)備描_NValue:將要減去的rf_hl_initval函數(shù) 成 失函數(shù)操作流程:request(ALLauthenticationread(DATA)例unsignedlong(25)rf_HL_increment(HANDLEicdev,unsignedchar_SecNr,unsignedlong_Value,unsignedlong:高級(jí)增值操作(用于扇區(qū))參數(shù):_Nvalue:rf_init()返回的設(shè)備描述rf_hl_initval()函數(shù)成失函數(shù)操作流程:request(ALL——————————————————————————————————————————————Page30of(DATA)(DATA)unsignedchar例(26)intrf_HL_write(HANDLEicdev,unsignedchar:高級(jí)寫函數(shù),向選定的并通過密碼驗(yàn)證的卡片寫入1塊16個(gè)字節(jié)。參數(shù):rf_init()返回的設(shè)備描rf_HL_initval函數(shù)相似卡片系列號(hào)(僅用于模式(長(zhǎng)度為16字節(jié))失函數(shù)操作流程:request(ALL例unsignedlong(27)rf_HL_writehex(HANDLEicdev,unsigned16=成失unsignedlongSnr;例 :高級(jí)讀函數(shù),從選定的并通過密碼驗(yàn)證的卡片讀出1塊16——————————————————————————————————————————————Page31of=rf_init()返回的設(shè)備描卡片系列號(hào)(僅用=rf_init()返回的設(shè)備描卡片系列號(hào)(僅用于模式(長(zhǎng)度為失字節(jié)函數(shù)操作流程:request(ALLIDLE)(_Adr)read例unsignedchardata[16];(29) rf_HL_readhex(HANDLEicdev,unsignedchar高級(jí)16=成失例unsignedchardata[32];(30)rf_HL_authentication(HANDLEicdev,unsignedcharunsignedlongsnr,unsignedcharauthmode,unsignedchar:高級(jí)驗(yàn)證函數(shù)(rf_card()rf_authentication()函數(shù)rf_init()返回的設(shè)備描述密碼驗(yàn)證模0A成失unsignedlongsnr;——————————————————————————————————————————————例Page32of Mifare這里只說明了操作流程Selectcard Mifare這里只說明了操作流程SelectcardwithSN:serial——————————————————————————————————————————————Page33of(GetserialRequestRequestPowerOnMifareUltraLight狀態(tài)ofCascadelevelMifareUltraLight狀態(tài)ofCascadelevelfromaddressofCascadelevelof4of16Note:Notshowninthisdiagram:IneachstatethecommandinterpreterreturnstotheIdlestateifanunexpectedcommandisreceived.IftheIChasalreadybeenintheHaltstateveforeitreturnstotheHaltstateinsuchacase.——————————————————————————————————————————————Page34of函數(shù)說IDLE單張卡片嗎N調(diào)用MifareUltraLight卡片API函數(shù)流程——————————————————————————————————————————————函數(shù)說IDLE單張卡片嗎N調(diào)用MifareUltraLight卡片API函數(shù)流程——————————————————————————————————————————————Page35of退出程選用IDLE卡操L模 選用IDLE模式尋卡Y上電復(fù) rf_request(HANDLEicdev,unsignedcharMode,unsignedint16能:尋卡請(qǐng)數(shù):icdev:rf_init()返回的設(shè)備描 rf_request(HANDLEicdev,unsignedcharMode,unsignedint16能:尋卡請(qǐng)數(shù):icdev:rf_init()返回的設(shè)備描述_Mode:U尋卡模01IDLEmode,IDLEALLmode,IDLEHALTTagtype(Mifarestd.1k:0x0004,UltraLight:0x0044,FM005:0x0005,Mifarestd.4k:0x0002,SHC1122:0x3300)返回值:=成失例intst;unsignedint功 rf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlongMIFARE卡片在感應(yīng)區(qū)內(nèi),將會(huì)選擇一張卡片,并返回卡片的序列號(hào)供將來調(diào)用rf_select函數(shù)時(shí)使用。數(shù):icdev:rf_init()返回的設(shè)備描述回:成功則返回0參返例intunsignedlongsnr;注:request指令之后應(yīng)立即調(diào)用anticoll,除非卡的序列號(hào)已知 _Snr:卡序列回:成功則返回返例intunsignedlongsnr=239474;unsignedcharsize; 參數(shù):icdev:rf_init()返回的設(shè)備描述符 卡片序列號(hào)0字——————————————————————————————————————————————Page36of..失..返回值 intunsignedcharst=rf_get_snr(icdev,例..失..返回值 intunsignedcharst=rf_get_snr(icdev,例 能:讀取卡中數(shù)據(jù),icdev:rf_init()返回的設(shè)備描=int成失返回值例rf_read()相同,讀出的數(shù)據(jù)以十六進(jìn)制形式表icdev:rf_init()返回的設(shè)備描 頁(yè)地址_Data:返回值int成失例unsignedchar功能:向卡中寫入一個(gè)長(zhǎng)度為16字節(jié)的數(shù)據(jù),但是只有低4位的字節(jié)寫入到指定的地icdev:rf_init()返回的設(shè)備描_Adr參返回值int成失例——————————————————————————————————————————————Page37ofmemet(data,0,17);memcpy(data,//寫第二 rf_write_hex(HANDLEmemet(data,0,17);memcpy(data,//寫第二 rf_write_hex(HANDLEicdev,unsignedchar_Adr,char能用十六進(jìn)制的形式寫icdev:rf_init()返回的設(shè)備描_Adr_Data:寫入的數(shù)據(jù),32字節(jié).24返回值int成失例unsignedchardata[33];memset(data,0,33);功 rf_halt(HANDLE能:中止對(duì)該卡操作,執(zhí)行這個(gè)指令后,在重新復(fù)位之前,不能再對(duì)卡進(jìn)行通訊icdev:rf_init()返回的設(shè)備描參返回值 成 失例——————————————————————————————————————————————Page38of MifareStandard這里只說明了MifareStandard4K卡的操作函 MifareStandard這里只說明了MifareStandard4K卡的操作函數(shù),有MifareStandard卡的資料請(qǐng)參狀態(tài)圖和指令流POWERPowerOnIDLERequestREADYACTIVERequestHALT——————————————————————————————————————————————Page39of操作流程PowerOnIs FlowDiagramofCardHalt——————————————————————————————————————————————Page40of操作流程PowerOnIs FlowDiagramofCardHalt——————————————————————————————————————————————Page40of函數(shù)說明IDLE數(shù)據(jù)操值操N YNYN調(diào)用std4K卡片API——————————————————————————————————————————————函數(shù)說明IDLE數(shù)據(jù)操值操N YNYN調(diào)用std4K卡片API——————————————————————————————————————————————Page41of選用IDLE用IDLE扇區(qū)號(hào)<=15:>15:r次裝載16個(gè)密碼。在mifare系列卡的操作函數(shù)中,針對(duì)同一個(gè)操作有高級(jí)函數(shù)和低級(jí)函數(shù)之分 低級(jí)函 rf_request(HANDLEicdev,unsignedcharMode,unsignedint16在mifare系列卡的操作函數(shù)中,針對(duì)同一個(gè)操作有高級(jí)函數(shù)和低級(jí)函數(shù)之分 低級(jí)函 rf_request(HANDLEicdev,unsignedcharMode,unsignedint16參數(shù):icdev:rf_init()返回的設(shè)備描述_Mode:U尋卡模01IDLEmode,IDLEALLmode,IDLEHALTTagtype:卡類型值,(Mifarestd.1k:0x0004,UltraLight:0x0044,FM005:5,Mifarestd.4k:0x0002,SHC1122:返回值=成失例 #defineIDLEintunsignedint*tagtype;卡如果選擇ALL模式尋卡對(duì)卡進(jìn)行操作,執(zhí)行Urf_halt()U命令中止卡操作后,卡可以不離開操作區(qū).讀寫器下次也能尋到那張相同的卡功 rf_anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlongMIFARE卡片在感應(yīng)區(qū)內(nèi),將會(huì)選擇一張卡片,并返回卡片的序列號(hào)供將來調(diào)用rf_select函數(shù)時(shí)使用。數(shù)icdev:rf_init()返回的設(shè)備描回:成功則返回0參返例intunsignedlongsnr;注:request指令之后應(yīng)立即調(diào)用anticoll,除非卡的序列號(hào)已知 icdev:rf_init()返回的設(shè)備描——————————————————————————————————————————————Page42of_Snr:卡序列返回:成功則返回0例intunsignedlongsnr=239474;unsignedcharsize; 能:驗(yàn)證某_Snr:卡序列返回:成功則返回0例intunsignedlongsnr=239474;unsignedcharsize; 能:驗(yàn)證某一數(shù):icdev:rf_init()返回的設(shè)備描述0A4B_例SecNr:要驗(yàn)證密碼的扇區(qū)號(hào)intst=rf_authentication(icdev,0,5);//認(rèn)證第5扇區(qū)HRF-35LT系列的讀寫器只能裝載16個(gè)扇區(qū)的密碼。16-39扇區(qū)必須調(diào)用rf_authentication_2() rf_authentication_2(HANDLEicdev,unsignedchar_Mode,unsignedKeyNr,unsignedchar能:0—15功icdev:rf_init()返回的設(shè)備描_Mode:rf_authenticationKeyNr:返回值=成<>0:例 intst;//用第0單元的密碼認(rèn)證第0扇區(qū)的密碼intrf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsigned參數(shù)icdev:rf_init()返回的設(shè)備描_Mode:0KEYA4KEYBBlockNr:卡片數(shù)據(jù)塊地址用于卡片認(rèn)證的密——————————————————————————————————————————————Page43of返回 正錯(cuò)例unsignedcharkey[]={0xff,0xff,0xff,0xff,0xff,返回 正錯(cuò)例unsignedcharkey[]={0xff,0xff,0xff,0xff,0xff, icdev:rf_init()返回的設(shè)備描_Adr:塊地址(0~255;回:成功則返回0返例intunsignedchardata[17]; :以十六進(jìn)制形式讀取數(shù)據(jù);參數(shù):icdev:rf_init()返回的設(shè)備描_Adr(0~255;_Data:讀出返回值成失例 intunsignedchardata[33]; rf_write(HANDLEicdev,unsignedcharAdr,unsignedcharicdev:rf_init()返回的設(shè)備描_Adr:M1卡——塊地址(1~255;_Data:要寫入的數(shù)據(jù),長(zhǎng)16字返回值 成失例 intunsignedchar//10) rf_write_hex(HANDLEicdev,unsignedchar_Adr,char:用十六形式進(jìn)寫參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:塊地址——————————————————————————————————————————————Page44of_Data:,返回值 成int失例unsignedchar//11)_Data:,返回值 成int失例unsignedchar//11)參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:塊地返回:成功則返回0例intunsignedlongvalue=1000;注:在進(jìn)行值操作時(shí),必須先執(zhí)行初始化值函數(shù),然后才可以讀、減、加的操作12)intrf_increment(HANDLEicdev,unsignedchar_Adr,unsignedlong功參能:塊加數(shù):icdev:rf_init()返回的設(shè)備描述_Adr:塊地回:成功則返回0;返例intunsignedlongst=rf_increment(icdev,1,13)intrf_decrement(HANDLEicdev,unsignedchar_Adr,unsignedlongicdev:rf_init()返回的設(shè)備描_Adr:塊地回:成功則返回0返例intunsignedlongvalue=10;14) 參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:塊地——————————————————————————————————————————————Page45of返回:成功則返回0例intunsignedlongvalue;/*讀出1的值,放入15)返回:成功則返回0例intunsignedlongvalue;/*讀出1的值,放入15) icdev:rf_init()返回的設(shè)備描回:成功返回0功參返例:int注:用此函數(shù)將某一塊中的數(shù)值傳入內(nèi)部寄存器,然后rf_transfer()函數(shù)將寄存器中數(shù)再傳送到另一塊中去,實(shí)現(xiàn)塊與塊之間數(shù)值傳送。該函數(shù)只用于值塊16) 功參能:傳送,將寄存器的內(nèi)容傳送到EEPROM中,在rf_restore()后執(zhí)行數(shù)icdev:rf_init()返回的設(shè)備描回:成功返回0返例:rf_restore(icdev,1);上兩行實(shí)現(xiàn)將塊1的內(nèi)容傳送到塊217) rf_halt(HANDLE0返例模式則必須把卡移開感應(yīng)區(qū)再進(jìn)來才能尋得這張卡——————————————————————————————————————————————Page46of 高級(jí)函18) 功 高級(jí)函18) 功rf_request,rf_anticoll和的功能數(shù):icdev:rf_init()返回的設(shè)備描述_Mode:U尋卡模0:IDLE1:ALL回:成功則返回0參返例intunsignedlongsnr;st=rf_card(icdev,0,&snr);IDLE模式尋卡注意:rf_card():rf_request(),rf_selectandrf_anticoll()卡如果選擇L執(zhí)行r_ha)U19) *_KeyA,unsignedchar_B0,unsignedchar_B1,unsigned_B3,unsignedchar_Bk,unsignedchar3參數(shù):icdev:rf_init()返回的設(shè)備描述_SecNr:扇區(qū)_KeyA:密碼_B00控制字,低3位(D2D1D0)對(duì)C10、C20、_B11控制字,低3位(D2D1D0)對(duì)C11、C21、_B22控制字,低3位(D2D1D0)對(duì)C12、C22、_B33控制字,低3位(D2D1D0)對(duì)C13、C23、_Bk:保留參數(shù),取值為_B2,unsignedintunsignedcharkeya[6]={0xa0,0xa1,0xa2,0xa3,0xa4,0xa5};st=rf——————————————————————————————————————————————Page47of8復(fù)旦籌碼卡操作函 復(fù)旦非接觸卡這里只說明了復(fù)卡的操作函數(shù),有關(guān)卡的資料請(qǐng)參考錄FM11RF005操作流Do8復(fù)旦籌碼卡操作函 復(fù)旦非接觸卡這里只說明了復(fù)卡的操作函數(shù),有關(guān)卡的資料請(qǐng)參考錄FM11RF005操作流DoAUTH Card——————————————————————————————————————————————Page48ofWaitcommandPowerOn函數(shù)說明IDLE0-15塊數(shù)據(jù)或?qū)懭?-15塊數(shù)據(jù)。NY函數(shù)說明IDLE0-15塊數(shù)據(jù)或?qū)懭?-15塊數(shù)據(jù)。NYN調(diào)用FUDAN卡API函數(shù)流程——————————————————————————————————————————————Page49of退出程只須驗(yàn)證一次密碼Y上電復(fù)1) rf_request(HANDLEicdev,unsignedchar_Mode,unsignedint16參數(shù):icdev:rf_init()返回的設(shè)備描述1) rf_request(HANDLEicdev,unsignedchar_Mode,unsignedint16參數(shù):icdev:rf_init()返回的設(shè)備描述01ALL一次對(duì)一張卡操一次可對(duì)多張卡操作std.4k:0x0002,SHC1122:0x3300)返回值=失例:#defineIDLE0x00intst;unsignedint 能:卡防沖突,返回卡的序數(shù):icdev:rf_init()返回的設(shè)備描述回:成功則返回0返例intunsignedlongsnr;注:request指令之后應(yīng)立即調(diào)用anticoll,除非卡的序列號(hào)已知 _Snr:卡序列回:成功則返回0返例intst,type;unsignedlong _Mode:0:IDLE——————————————————————————————————————————————Page50of1:ALL失=0<>0int例unsignedcharMode=0;//IDLEmodeunsignedlongsnr;1:ALL失=0<>0int例unsignedcharMode=0;//IDLEmodeunsignedlongsnr;注意:rf_card()由三個(gè)低級(jí)函數(shù)構(gòu)成:rf_requestrf_selectandrf_anticoll()2)對(duì)于需要認(rèn)證的卡片,這里有兩種認(rèn)證方式:裝載密碼認(rèn)證和直接密安全性裝載密碼認(rèn)證是指將密碼下載到讀寫器存儲(chǔ)單機(jī)發(fā)送卡片認(rèn)證指令后讀寫從存儲(chǔ)單元取出相應(yīng)的密碼進(jìn)行卡片認(rèn)證。由于密碼下載到讀寫器存儲(chǔ)單元后是裝載密碼可以和卡片交易分開,可以在不同的時(shí)間和地點(diǎn)進(jìn)行。rf_load_key(HANDLEicdev,unsignedchar_Mode,unsignedcharchar將密碼裝入讀寫模塊RAM中,沒有數(shù)據(jù)交換16FM005只有一個(gè)密碼,用于密碼驗(yàn)證的塊icdev:rf_init()返回的設(shè)備描_Mode:_SecNr:裝載密碼的扇區(qū)號(hào)(0-_Nkey:6字節(jié)密碼,因?yàn)镕M0054個(gè)字節(jié)的密碼,2位可以設(shè)為0。返回=成失例:st=rf_load_key(icdev,0,1,key);//在扇區(qū)1中裝載0A密rf_load_key_hex(HANDLEicdev,unsignedchar_Mode,unsignedchar:rf_load_key相似,用十六進(jìn)制表示參數(shù):icdev:rf_init()返回的設(shè)備描述符Mode:_SecNr:裝載密碼的扇區(qū)號(hào)(0-_Nkey:12字節(jié)密碼,FM0054個(gè)字節(jié)的密碼,——————————————————————————————————————————————Page51of位可以設(shè)0成失 /loadthe0PthPkey位可以設(shè)0成失 /loadthe0PthPkeyA“a0a1a2a3a4a5”intosector1charkey[]=“a0a1a2a3a4a5”; rf_authentication(HANDLEicdev,unsignedchar_Mode,unsignedchar功能: .參數(shù) icdev:rf_init()返回的設(shè)備描述_Mode:返回 =例 int失//authenticationthe5thsectorwhitthe0PthPkeyA注意因?yàn)镕M005只有一個(gè)密碼,所以用于密碼驗(yàn)證的塊號(hào)要與裝載密碼的扇直接密碼認(rèn)優(yōu)點(diǎn):方便,沒有使用壽命限制C缺點(diǎn):安全性不intrf_authentication_key(HANDLEicdev,unsignedchar_Mode,unsignedcharunsignedchar功能利用函數(shù)參數(shù)中提供的密碼對(duì)卡片指定數(shù)據(jù)塊進(jìn)行認(rèn)證。如果參數(shù)中提供的密碼片的密碼匹配,則認(rèn)證成功,反之則認(rèn)證失敗參數(shù)icdev:rf_init()返回的設(shè)備描_Mode:0KEYA4KEYBBlockNr:卡片數(shù)據(jù)塊地址=錯(cuò)返回例unsignedcharkey[]={0xff,0xff,0xff,0xff,0xff,——————————————————————————————————————————————Page52of3) 3) icdev:rf_init()返回的設(shè)備描 要讀取的數(shù)據(jù)塊(0-_Data:讀出的數(shù)據(jù)返回 成 intst;unsignedchar例 :讀一個(gè)數(shù)據(jù)塊,十六進(jìn)制表示數(shù)據(jù)參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:要讀取的數(shù)據(jù)塊(0~15)Data:rf_read()相同.返回 int例unsignedchardata[32];4) 參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:要寫數(shù)據(jù)的塊地址(2-15返回:成功則返回0例intunsignedcharst=rf_write(icdev,4,data);//寫第四 rf_write_hex(HANDLEicdev,unsignedchar_Adr,char參數(shù):icdev:rf_init()返回的設(shè)備描_Adr:要寫數(shù)據(jù)的塊地址(2-15_Data:要寫入的數(shù)——————————————————————————————————————————————Page53of返回 成 失int返回 成 失int例5)中止對(duì)卡操作,如果想繼續(xù)對(duì)卡操作,需要重新尋卡 rf_halt(HANDLE:中止對(duì)卡操作,如果想繼續(xù)對(duì)卡操作,需要重新尋卡。icdev:rf_init()返回的設(shè)備描 成 失例——————————————————————————————————————————————Page54of9華虹SHC1102卡操作函狀態(tài)9華虹SHC1102卡操作函狀態(tài)ReadGet——————————————————————

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論