国产成人aaa在线视频免费观看_麻豆精品视频在线观看_欧美亚洲日本国产综合在线_成人网18免费韩国 - 九九热在线精品视频

射頻IC卡讀卡器,RFID讀寫器,讀寫模塊產品研發定制和銷售,軟件定制服務。我們的目標:一流的產品,五星級服務!對客戶的需求做出快速響應。
企業使用員工卡登錄計算機配置
Windows智能卡登錄系統
WEB與發卡器
WEB瀏覽器與UHF超高頻讀卡器
WEB讀卡器 IC卡(NFC)發卡器
PLC讀卡器 IC卡模塊
安卓讀卡器 UHF讀卡器
PCSC讀卡器 智能卡登錄
新聞搜索
 
最新新聞
1  如何給IC卡寫自定義
2  如何配置刷卡登錄電腦
3  插卡登錄拔卡鎖屏
4  在web頁面實現智能
5  關于IC卡密鑰理解和
6  BS架構下NFC讀寫
7  關于IC卡密鑰理解和
8  如何配置NFC讀卡器
9  企業使用員工卡登錄計
10  Java JNI調用
熱門新聞 點擊
 友我科技推出新一代農 182023
 友我科技RFID讀寫 178514
 友我科技發布PC/S 178419
 友我科技RFID產品 115169
 射頻IC卡和IC卡讀 77865
 射頻卡讀寫模塊選購指 61048
 友我科技PCSC雙界 51431
 ISO14443 I 26483
 射頻卡讀寫器發卡器介 23817
 接觸式IC卡接口原理 18985
產品推薦
   
  2.4G主動式 RFID電子標簽  
 
   
  2.4G主動式 RFID電子標簽  
 
   
  UHF遠距離G2電子標簽  
 
   
  各種尺寸的電子標簽  
 
   
  異型圓幣卡  
 
   
  高頻磁鐵RFID標簽  
 
   
  S70射頻卡RFID  
 
   
  125K只讀ID卡異型卡  
 
   
  遠距離6B電子標簽  
 
   
  125K只讀ID卡厚卡  
 
     新 聞 中 心

IC卡讀卡器開發指南

雙擊自動滾屏 發布者:YOWO RFID 發布時間: 閱讀:5981

IC卡讀卡器開發指南

1       概述

隨著社會的發展和科技的進步,IC卡應用越來越廣泛。會員卡,學生卡,社保卡,公交卡,金融卡等已得到大量的應用,可以說IC卡在我們身邊無處不在。IC卡的普及一方面取決于各個組織的大力推廣,另外也得力于無數程序員的辛苦工作,將IC卡讀卡器和IC卡融合到各個系統中。本文將著重介紹IC卡讀卡器在實際應用中編程的流程和步驟,使得IC卡的開發簡單明了,更縮短我們的開發周期。

2       非接觸IC卡介紹

非接觸IC卡是IC卡中的一種,由于非接觸IC卡沒有物理磨損,壽命更長,價格更便宜,使得非接觸IC卡的使用越來越多,最具有代表性的非接觸IC卡就是M1卡及其兼容卡。下面將以M1卡為例,來介紹M1的內部結構。
M1卡有1k和4k之分,內部結構基本差不多,以M1卡1K為例:
該IC卡共有16個扇區,每個扇區4個塊,每塊16字節,所以總共有字節數16*4*16=1024個字節。
 
第15扇區
第63塊
密鑰塊
第62塊
數據塊
第61塊
數據塊
第60塊
數據塊
 
.
.
.
 
第1扇區
第7塊
密鑰塊
第6塊
數據塊
第5塊
數據塊
第4塊
數據塊
第0扇區
第3塊
密鑰塊
第2塊
數據塊
第1塊
數據塊
第0塊
存卡號,只讀
 
每個扇區最后一塊用來保存密鑰,故不能當作數據來使用。第0塊由于是只讀的,也不能用來存取數據,所以此卡實際可用的內存為(16*3-1)*16= 752字節。
 
在讀寫某個數據塊之前,必須首先進行密鑰認證,如果密鑰認證失敗,則不能讀寫,只有認證成功,方可進行讀寫等操作。每個扇區共用一組密鑰,所以一個扇區只要認證成功一次,就可以讀寫此扇區中的四個數據塊。
 
每個可用的數據塊可以初始化為整形值或者原始數據。原始數據可以當作普通內存使用,整形值可以當作錢包等具有加減功能數字使用。
 

3       IC卡讀卡器介紹

IC卡讀卡器的種類繁多,這里以性價比較高的YW-605系列讀卡器來作介紹。
YW-605系列讀卡器具有多種接口,外觀簡潔,美觀大方,可以讀寫市面上大部分非接觸IC卡。

4       IC卡讀卡器API函數介紹

YW-605系列讀卡器提供二次開發功能,用戶可以在我們的DLL的基礎上調用相應的函數開發應用程序,我們提供Delphi,C++Builder,VB,VC等的調用例程和相關函數聲明單元,或者按照讀卡器的通信協議直接開發應用程序。
庫函數,C++語言版,其它語言見相應的函數聲明文件。
 
函數原形:int stdcall YW_GetDLLVersion(void);
參數列表:無
返 回 值:大于0為版本號,小于0為錯誤
 
2.     DES加解密函數
函數原形:int stdcall DES(unsigned char cModel, unsigned char *pkey, unsigned char *in, unsigned char *out);
參數列表:
參數
類型
含義
cModel
unsigned char
加解密方向,0為加密,1為解密
pkey
unsigned char*
加解密秘鑰,8個字節
in
unsigned char*
原始數據,8個字節
out
unsigned char*
加解密后的數據,8個字節
 
返 回 值:無意義
 
3.     3DES加解密函數
函數原形:int stdcall DES3(unsigned char cModel, unsigned char *pKey, unsigned char *In, unsigned char *Out);
參數列表:
參數
類型
含義
cModel
unsigned char
加解密方向,0為加密,1為解密
pkey
unsigned char*
加解密秘鑰,16個字節
in
unsigned char*
原始數據,8個字節
out
unsigned char*
加解密后的數據,8個字節
 
返 回 值:無意義
 
函數原形:int stdcall DES3_CBC(unsigned char cModel,  unsigned char *pKey,unsigned char *In, unsigned char *Out, unsigned char *pIV);
參數列表:
參數
類型
含義
cModel
unsigned char
加解密方向,0為加密,1為解密
pkey
unsigned char*
加解密秘鑰,16個字節
in
unsigned char*
原始數據,8個字節
out
unsigned char*
加解密后的數據,8個字節
pIV
unsigned char*
加解密向量,8個字節
返 回 值:無意義
 
函數原形:int stdcall YW_ComInitial(int PortIndex, int Baud);
參數列表:
參數
類型
含義
PortIndex
int
串口號,1--255
Baud
int
通信波特率,2400—115200,默認為19200
返 回 值:1成功,0失敗
 
 
函數原形:int stdcall YW_ComFree(void);
參數列表:無
返 回 值:1成功,0失敗
 
7.     USB無驅讀寫器,初始化USB
函數原形:int stdcall YW_USBHIDInitial(void);
參數列表:無
返 回 值:1成功,0失敗
 
8.     USB無驅讀寫器,釋放USB
函數原形:int stdcall YW_USBHIDFree(void);
參數列表:無
返 回 值:1成功,0失敗
 
函數原形:int stdcall YW_ComNewBound(int ReaderID ,int NewBound);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
NewBound
int
新的波特率
0x01->9600bps
0x02->14400bps
0x03->19200bps
0x04->28800bps
0x05->38400bps
0x06->57600bps
0x07->115200bps
返 回 值:1成功,0失敗
 
 
函數原形:int stdcall YW_SetReaderID(int OldID, int NewID);
參數列表:
參數
類型
含義
OldID
int
老的設備標示ID,范圍0x0000-0xFFFF
NewID
int
修改成新的設備標示ID,范圍0x0000-0xFFFF
返 回 值:1成功,0失敗
 
函數原形:int stdcall YW_GetReaderID(int ReaderID);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
返 回 值:>=0成功,并且為所獲取的設備標示,<0失敗
 
函數原形:int stdcall YW_GetReaderVersion(int ReaderID);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
返 回 值:大于0為版本號,小于0為錯誤
 
函數原形:int stdcall YW_GetReaderSerial(int ReaderID, char *ReaderSerial);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
ReaderSerial
Char *
讀取的產品序列號,長度為8個字節
返 回 值:大于0為成功,小于0為失敗
 
函數原形:int stdcall YW_Buzzer(int ReaderID,int Time_ON, int Time_OFF, int Cycle);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Time_ON
int
蜂鳴器鳴叫時間,單位:秒
Time_OFF
int
蜂鳴器靜音時間,單位:秒
Cycle
int
把Time_ON和Time_OFF作為一個周期,則此參數為執行此周期的次數。
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
15. LED指示燈控制
函數原形:int stdcall YW_Led(int ReaderID,int LEDIndex, int Time_ON, int Time_OFF, int Cycle, int LedIndexOn);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
LEDIndex
int
LED燈序號
01:紅燈
02:綠燈
04:黃燈
Time_ON
int
LED燈亮時間,單位:秒
Time_OFF
int
LED燈滅時間,單位:秒
Cycle
int
把Time_ON和Time_OFF作為一個周期,則此參數為執行此周期的次數。
LedIndexOn
int
最后要亮的燈:
00:全滅
01:紅燈
02:綠燈
04:黃燈
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
函數原形:int stdcall YW_LEDDisplay(int ReaderID,int Alignment,char *LEDText);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Alignment
int
顯示時的對齊方式:
1:左對齊
2:居中對齊
3:右對齊
LEDText
Char *
要顯示的字符串。
可顯示的字符如下:
0123456789AbCdEF.-
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
函數原形:int stdcall YW_AntennaStatus(int ReaderID,bool Status);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Status
bool
True: 開天線
False:關天線
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
函數原形:int stdcall YW_SearchCardMode(int ReaderID,int SearchMode);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
SearchMode
char
卡類型
0x41-----ISO14443A
0x42----- ISO14443B
0x31----- ISO15693
0x53------ST系列卡
0x52------AT88RF020等
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
ISO14443A相關函數
 
函數原形:int stdcall YW_RequestCard(int ReaderID,char RequestMode , unsigned short *CardType);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
RequestMode
char
尋卡的模式
0x52----- 所有卡
0x26----- 激活卡
CardType
unsigned short *
返回卡的類型
0x4400 = Ultralight/UltraLight C  /MifarePlus(7Byte UID)
0x0400 = Mifare Mini/Mifare 1K (S50) /MifarePlus(4Byte UID)
0x0200 = Mifare_4K(S70)/ MifarePlus(4Byte UID)
0x0800 = Mifare_Pro
0x0403 = Mifare_ProX
0x4403 ->Mifare_DESFire
0x4200 -> MifarePlus(7Byte UID)
 
 
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
20. Type A卡訪沖突
函數原形:int stdcall YW_AntiCollide(int ReaderID,unsigned char *LenSNO, unsigned char *SNO)
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
LenSNO
unsigned char*
訪沖突獲得卡號的長度
SNO
unsigned char *
訪沖突獲得卡號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_CardSelect(int ReaderID,char LenSNO, unsigned char *SNO)
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
LenSNO
unsigned char
選擇卡的卡號長度
SNO
unsigned char *
要選擇的卡號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall  YW_AntiCollideAndSelect(int ReaderID, unsigned char MultiCardMode, unsigned char *CardMem, int *SNLen, unsigned char *SN);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
MultiCardMode
unsigned char
對多張卡的處理方式
0: 多張卡返回錯誤
1:返回一張卡號
CardMem
unsigned char *
卡片容量代碼
SNLen
int *
輸出卡號的長度
SN
unsigned char *
輸出卡的序列號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall  YW_RequestAntiandSelect(int ReaderID,int SearchMode,int MultiCardMode,unsigned short *ATQA,unsigned char *SAK,unsigned char *LenSNO,unsigned char *SNO);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
RequestMode
unsigned char
尋卡的模式
0x52 所有卡
0x26 激活卡
MultiCardMode
unsigned char
對多張卡的處理方式
0: 多張卡返回錯誤
1:返回一張卡號
ATQA
unsigned short *
ATQA值
SAK
unsigned char *
SAK值
SNLen
int *
輸出卡號的長度
SN
unsigned char *
輸出卡的序列號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
24. Type A卡n級訪沖突
函數原形:int stdcall YW_AntiCollide_Level(int ReaderID,int Leveln,char *LenSNO, unsigned char *SNO);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Leveln
int
訪沖突級別,最高為3級
LenSNO
unsigned char*
訪沖突獲得卡號的長度
SNO
unsigned char *
訪沖突獲得卡號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
25. Type A卡n級選卡
函數原形:int stdcall YW_SelectCard_Level(int ReaderID,int Leveln,unsigned char *SAK)
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Leveln
int
訪沖突級別,最高為3級
SAK
unsigned char*
SAK值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
S50/S70卡相關操作
 
函數原形:int stdcall YW_ DownLoadKey(int ReaderID, int KeyIndex,char * Key);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
KeyIndex
int
只寫區秘鑰序號0~31,共可寫32個秘鑰
Key
char *
秘鑰,每個秘鑰6個字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_KeyDown_Authorization (int ReaderID, char KeyMode ,int BlockAddr,int KeyIndex);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
KeyMode
char
KeyMode=0x60為A密鑰
KeyMode=0x61為B密鑰
BlockAddr
int
要驗證的絕對塊號地址
KeyIndex
int
只寫區秘鑰序號0~31
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_KeyAuthorization (int ReaderID,char KeyMode,int BlockAddr, unsigned char *Key);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
KeyMode
char
KeyMode=0x60為A密鑰
KeyMode=0x61為B密鑰
BlockAddr
int
要驗證的絕對塊號地址
Key
unsigned char *
密鑰字節(共6個字節)
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_ReadaBlock (int ReaderID,int BlockAddr,int LenData, unsigned char *Data);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對地址塊號
LenData
int
要讀出的數據的字節數,Mifare One為16個字節
Data
unsigned char *
輸出讀到的塊的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_WriteaBlock (int ReaderID,int BlockAddr,int LenData, unsigned char *Data);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
LenData
int
要寫入的數據的字節數,Mifare One為16個字節
Data
unsigned char *
要寫入的塊的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Purse_Initial (int ReaderID,int BlockAddr,int IniMoney);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
IniMoney
int
初始化錢包時的初始值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Purse_Read (int ReaderID,int BlockAddr,int *Money);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
Money
Int *
讀取的塊號錢包的當前值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Purse_Decrease (int ReaderID,int BlockAddr,int Decrement);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
Decrement
Int
錢包中要扣掉的值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Purse_Charge (int ReaderID,int BlockAddr,int Charge);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
Charge
Int
錢包中要充值的值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Restore (int ReaderID,int BlockAddr);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_Transfer (int ReaderID,int BlockAddr);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockAddr
int
絕對塊號地址
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
函數原形:int stdcall YW_ReadM1MultiBlock(int ReaderID, int StartBlock, int BlockNums, int *LenData, char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
StartBlock
int
絕對地址開始塊號
BlockNums
int
塊的數量
LenData
Int*
要讀出的數據的字節數
Data
unsigned char *
輸出讀到的塊的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
函數原形:int stdcall YW_WriteM1MultiBlock(int ReaderID, int StartBlock, int BlockNums, int LenData, char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
StartBlock
int
絕對地址開始塊號
BlockNums
int
塊的數量
LenData
int
要寫入的數據的字節數,Mifare One為16* BlockNums個字節
Data
unsigned char *
寫入的塊的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
UltraLight卡操作函數
 
函數原形:int stdcall YW_UltraLightRead(int ReaderID, int BlockID, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對地址塊號
pData
unsigned char *
輸出讀到的塊的數據,4字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
40. 寫UltraLight塊數據
函數原形:int stdcall YW_UltraLightWrite(int ReaderID, int BlockID, unsigned char *pData);
參數列表:
, ,
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對地址塊號
pData
unsigned char *
要寫入的塊的數據,4字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
Type A CPU卡操作函數
41. Type A CPU 卡復位
函數原形:int stdcall YW_TypeA_Reset(int ReaderID, unsigned char Mode, unsigned char MultiMode, int *rtLen, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Mode
unsigned char
尋卡的模式
0x52 所有卡
0x26 激活卡
MultiMode
unsigned char
對多張卡的處理方式
0: 多張卡返回錯誤
1:返回一張卡號
rtLen
int *
返回復位信息的長度
pData
unsigned char *
返回復位信息
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
42. Type A CPU 卡執行COS命令
函數原形:int stdcall YW_TypeA_COS(int ReaderID, int LenCOS, unsigned char *Com_COS, int *rtLen, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
LenCOS
unsigned char*
輸入的COS命令的長度
Com_COS
unsigned char*
COS命令
rtLen
int *
返回執行命令結果的長度
pData
unsigned char *
返回執行命令結果
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
Mifare Plus卡操作函數
 
43. Mifare Plus卡Level 0級寫數據
函數原形:int stdcall YW_MFP_L0_WritePerso(int ReaderID, int Address, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
Address
unsigned char
要寫入數據的地址
Com_ pData
unsigned char*
要寫入的數據,16字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
44. Mifare Plus卡Level 0級向Level 1或3級切換
函數原形:int stdcall YW_MFP_L0_CommitPerso(int ReaderID);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
45. Mifare Plus卡從低級向高級切換
函數原形:int stdcall YW_MFP_SwitchToLevel(int ReaderID, int DesLevel,unsigned char *SwitchKey);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
DesLevel
unsigned char
要切換到的層級,最高3級
SwitchKey
unsigned char*
切換秘鑰,16字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
46. Mifare Plus卡Level 3級授權
函數原形:int stdcall YW_MFP_L3_Authorization(int ReaderID, int KeyMode,int BlockID,unsigned char *Key);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
KeyMode
unsigned char
KeyMode=0x60為A密鑰
KeyMode=0x61為B密鑰
BlockID
unsigned char
塊號
Key
unsigned char*
秘鑰,16字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
47. Mifare Plus卡Level 3級讀塊數據
函數原形:int stdcall YW_MFP_L3_Read(int ReaderID, int StartBlock,int BlockNums,int *DataLen, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
StartBlock
int
開始塊號
BlockNums
int
塊數量
DataLen
int*
讀到的數據長度
pData
unsigned char*
讀到的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
48. Mifare Plus卡Level 3級寫塊數據
函數原形:int stdcall YW_MFP_L3_Write(int ReaderID, int StartBlock,int BlockNums, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
StartBlock
int
開始塊號
BlockNums
int
塊數量
pData
unsigned char*
要寫入的數據,長度必須是16* BlockNums
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
 
49. Mifare Plus卡Level 3級將某一扇區初始化為錢包
函數原形:int stdcall YW_MFP_L3_Purse_Initial(int ReaderID, int BlockID,int InitialValue);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對塊號地址
InitialValue
int
初始化錢包時的初始值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
50. Mifare Plus卡Level 3級讀取錢包值
函數原形:int stdcall YW_MFP_L3_Purse_Read(int ReaderID, int BlockID,int *Value);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對塊號地址
Value
Int *
讀取的塊號錢包的當前值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
51. Mifare Plus卡Level 3級錢包扣款
函數原形:int stdcall YW_MFP_L3_Purse_Charge(int ReaderID, int BlockID,int Value);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對塊號地址
Value
Int
錢包中要扣掉的值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
52. Mifare Plus卡Level 3級錢包充值
函數原形:int stdcall YW_MFP_L3_Purse_Decrease(int ReaderID, int BlockID,int Value);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
絕對塊號地址
Value
Int
錢包中要充值的值
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
53. Mifare Plus卡Level 3級備份錢包
函數原形:int stdcall YW_MFP_L3_Purse_Backup(int ReaderID, int BlockID,int DesBlockID);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
要備份的錢包塊號
DesBlockID
Int
目標塊號
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
54. Mifare Plus卡Level 3級通用讀寫第一次授權
函數原形:int stdcall YW_MFP_Authorization_First(int ReaderID,  int AESKeyAddr,unsigned char *AESKey);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
AESKeyAddr
int
要授權的地址
AESKey
unsigned char *
授權秘鑰,16字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
55. Mifare Plus卡Level 3級通用讀寫第二次授權
函數原形:int stdcall YW_MFP_Authorization_Follow(int ReaderID, int AESKeyAddr,unsigned char *AESKey);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
AESKeyAddr
int
要授權的地址
AESKey
unsigned char *
授權秘鑰,16字節
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
56. Mifare Plus卡Level 3級通用讀塊
函數原形:int stdcall YW_MFP_CommonRead(int ReaderID, int BlockID, int BlockNums,int *DataLen,unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
通用塊地址
BlockNums
int
塊數量
DataLen
Int*
返回的數據長度
pData
unsigned char *
返回的數據
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
57. Mifare Plus卡Level 3級通用寫塊
函數原形:int stdcall YW_MFP_CommonWrite(int ReaderID, int BlockID, int BlockNums, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
BlockID
int
通用塊地址
BlockNums
int
塊數量
pData
unsigned char *
要寫入的數據,長度必須為16* BlockNums
返 回 值:大于0為命令發送成功,小于0為命令發送失敗
 
SAM卡操作函數
58. SAM卡波特率設置
函數原形:int __stdcall YW_SAM_ResetBaud(int ReaderID,int SAMIndex, int BaudIndex);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
SAMIndex
int
SAM卡序號
BaudIndex
int
0x00->9600 (默認復位波特率)
0x01->19200
0x02->38400
0x03->55800
0x04->57600
0x05->115200
 
返 回 值:大于0為成功,小于0為失敗
 
59. SAM卡復位
函數原形:int __stdcall YW_SAM_Reset(int ReaderID,int SAMIndex, int *rtLen, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
SAMIndex
int
SAM卡序號
rtLen
int *
SAM卡復位返回的數據pData的長度
pData
unsigned char *
SAM卡復位返回的數據
 
返 回 值:大于0為成功,小于0為失敗
 
60. SAM卡執行COS命令
函數原形:int __stdcall YW_SAM_COS(int ReaderID,int SAMIndex, int LenCOS, unsigned char *Com_COS, int *rtLen, unsigned char *pData);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
SAMIndex
int
SAM卡序號
LenCOS
int
向SAM卡要發送的COS命令的長度
Com_COS
unsigned char *
向SAM卡要發送的COS命令
rtLen
unsigned char *
SAM執行COS命令后返回的數據的長度
pData
unsigned char *
SAM執行COS命令后返回的數據
 
返 回 值:大于0為成功,小于0為失敗
 
61. SAM卡PPS波特率設置
函數原形:int __stdcall YW_SAM_PPSBaud(int ReaderID,int SAMIndex, int BaudIndex);
參數列表:
參數
類型
含義
ReaderID
int
所要獲取的設備標示ID,范圍0x0000-0xFFFF,如果未知,則ReaderID=0
SAMIndex
int
SAM卡序號
BaudIndex
int
0x00->9600 (默認復位波特率)
0x01->19200
0x02->38400
0x03->55800
0x04->57600
0x05->115200
 
返 回 值:大于0為成功,小于0為失敗
 

5       讀卡操作流程

YW605在所有卡操作之前必須打開天線,讀完卡后可關閉天線,也可以不關閉天線。對卡的操作流程如下圖所示:
 
 
 
 
 
 
 
 
 
 
 
 
 
 

6       程序開發注意事項

6.1    YW-605系列讀卡器具有多種接口,不同的接口,SDK中端口初始化函數有所區別。

l        串口,RS485,USB虛擬的串口的讀卡器端口操作函數為:
打開端口:int stdcall YW_ComInitial(int PortIndex, int Baud);
釋放端口:int stdcall YW_ComFree(void);
l        USB HID的讀卡器端口操作函數為:
打開端口:int stdcall YW_USBHIDInitial(void);
釋放端口:int stdcall YW_USBHIDFree(void);

7       更多幫助

更多幫助請聯系友我科技技術支持,或者QQ:896163157.

最新版RFID讀寫器產品手冊下載


相關產品

最新RFID讀寫器產品手冊
RFID讀寫器SDK開發包
USB射頻卡RFID讀寫器YW-605-USB
串口射頻卡RFID讀寫器YW-605-RS232
LED射頻卡RFID讀寫器YW-608
射頻卡RFID讀寫器發卡器SDT系列
多功能LCD射頻卡RFID讀寫器YW-610
雙界面讀寫器YW-620
NFC讀寫器YW-607HCYW-607
網絡NFC讀寫器YW-615

打印本頁 || 關閉窗口
企業簡介||付款方式||網站地圖||友情連接||聯系我們

RFID讀寫器,IC卡讀卡器, 智能卡讀卡器,RFID讀卡器, 電子標簽,CPU卡讀寫器,讀卡模塊
北京友我科技有限公司 版權所有 (C)2008-2020
客戶服務中心信箱:coodor#126.com(將#改為@)
熱線直撥: 010-57049038 18910685939 電話微信:13691531038,13671114914
京ICP備14016005號
微信掃一掃聯系我們

微信掃一掃聯系我們

友我科技


1
RFID讀寫器產品手冊下載
2
讀寫器開發SDK下載
3
點擊聯系友我科技
4
點擊聯系友我科技
5
WEB讀卡器開發指南
6
Windows讀卡器開發指南
7
Android讀卡器開發指南
8
Wince讀卡器開發指南
9
PLC讀卡器開發指南
10
Linux讀卡器開發指南
11
單片機讀卡器開發指南
12
PCSC讀卡器開發指南