支持RFID讀寫模塊在Wince5.0和Wince6.0系統(tǒng)應(yīng)用
目錄
簡(jiǎn)介
RFID模塊選型
RFID模塊Wince API-基礎(chǔ)函數(shù)
RFID模塊Wince API-ISO14443A函數(shù)
RFID模塊Wince API-CPU卡函數(shù)
RFID模塊Wince API-ISO14443B函數(shù)
RFID模塊Wince API-ISO15693函數(shù)
友我科技高頻RFID讀寫模塊集成了原裝進(jìn)口的高性能射頻芯片,配以多重硬件和軟件保護(hù),運(yùn)行穩(wěn)定可靠。公司在多年的射頻開(kāi)發(fā)和現(xiàn)場(chǎng)經(jīng)驗(yàn)上,不斷地完善和開(kāi)發(fā)出新的RFID產(chǎn)品,以適應(yīng)各個(gè)行業(yè)和平臺(tái)的使用需求。這些RFID模塊支持ISO14443-A Mifare One S50,S70,UltraLight,MifarePro,ISO14443-B SR176, ISO15693 ,I CODE SL2 和其他相關(guān)兼容卡片。針對(duì)WINCE系統(tǒng),我們發(fā)布了yw20x.dll,方便工程師將友我科技的模塊潛入到wince系統(tǒng)中。
目前,友我科技的模塊和wince動(dòng)態(tài)庫(kù)yw20x.dll可以使用在wince5.0和wince6.0,net frame 2.0及以上的系統(tǒng)環(huán)境。同時(shí),友我科技為客戶提供網(wǎng)絡(luò)tcpip的wince解決方案和動(dòng)態(tài)庫(kù)dll,相關(guān)需求請(qǐng)聯(lián)系客服。
型號(hào) |
支持卡協(xié)議 |
供電電壓 |
接口 |
尺寸 |
支持卡片 |
YW-201 |
ISO14443A |
+5V |
IIC,UART(TTL) |
20*40 |
Mifare S50,S70,CPU |
YW-201C |
ISO14443A |
+5V |
IIC,UART(TTL) |
60*60 |
Mifare S50,S70,CPU |
YW-201C3 |
ISO14443A |
+3.3V |
IIC,UART(TTL) |
60*60 |
Mifare S50,S70,CPU |
YW-202 |
ISO14443A |
+5V |
IIC,UART(TTL) |
20*40 |
Mifare S50,S70,CPU,SR512 |
YW-202C |
ISO14443A |
+5V |
IIC,UART(TTL) |
60*60 |
Mifare S50,S70,CPU,SR512 |
YW-203 |
ISO15693 |
+5V |
IIC,UART(TTL) |
20*40 |
ICode,TagIT,, MB89R118B |
YW-203C |
ISO15693 |
+5V |
IIC,UART(TTL) |
60*60 |
ICode,TagIT,, MB89R118B |
YW-204 |
ISO14443A |
+5V |
IIC,UART(TTL) |
20*40 |
Mifare S50,S70,CPU,SR512, ICode,TagIT,, MB89R118B |
YW-204C |
ISO14443A |
+5V |
IIC,UART(TTL) |
60*60 |
Mifare S50,S70,CPU,SR512, ICode,TagIT,, MB89R118B |
YW-401 |
ISO14443A |
+3.3V |
IIC,UART(TTL) |
38*38 |
Mifare S50,S70,CPU |
YW-411 |
ISO14443A |
+3.3V |
UART(TTL) |
45*45 |
Mifare S50,S70 |
1 RFID模塊Wince API-基礎(chǔ)函數(shù)
1.1 DES加解密函數(shù)
方法:public static extern int DES(byte cModel, byte[] pkey, byte[] pInData, byte[] pOutData);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
cModel |
byte |
IN |
DES方式: |
pkey |
byte[] |
IN |
DES 密鑰(8 bytes) |
pInData |
byte[] |
IN |
原始數(shù)據(jù)(8 bytes) |
pOutData |
byte[] |
OUT |
加密后的數(shù)據(jù)(8 bytes) |
返回值:0x01->成功,<=0 失敗
1.2 3DES加解密函數(shù)
方法:public static extern int DES3(byte cModel, byte[] pKey, byte[] pInData, byte[] pOutData);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
cModel |
byte |
IN |
DES方式: |
pkey |
byte[] |
IN |
DES密鑰(16 bytes) |
pInData |
byte[] |
IN |
原始數(shù)據(jù)(8 bytes) |
pOutData |
byte[] |
OUT |
加密后的數(shù)據(jù)(8 bytes) |
返回值:0x01->成功,<=0 失敗
1.3 帶向量的3DES加解密函數(shù)
方法:public static extern int DES3_CBC(byte cModel, byte[] pKey,byte[] pInData, byte[] pOutData, byte[] pIV);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
cModel |
byte |
IN |
DES方式: |
pkey |
byte[] |
IN |
DES 密鑰(16 bytes) |
pInData |
byte[] |
IN |
原始數(shù)據(jù)(8 bytes) |
pOutData |
byte[] |
OUT |
加密后的數(shù)據(jù)(8 bytes) |
pIV |
byte[] |
IN |
Vector(8 bytes) |
返回值:0x01->成功,<=0 失敗
1.4 打開(kāi)串口
方法:public static extern int YW_ComInitial(int PortIndex, int Baud);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
PortIndex |
int |
IN |
串口號(hào) |
Baud |
int |
IN |
波特率 |
返回值:0x01->成功,<=0 失敗
1.5 關(guān)串口
方法:public static extern int YW_ComFree()
參數(shù)列表:None
返回值:0x01->成功,<=0 失敗
1.6 修改模塊波特率
方法:public static extern int YW_ComNewBaud(int NewBaudIndex);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
NewBaudIndex |
int |
IN |
0x00->9600 |
返回值:0x01->成功,<=0 失敗
1.7 開(kāi)關(guān)模塊射頻天線
方法:public static extern int YW_AntennaStatus(bool AntOpen,bool AutoRequest)
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
AntOpen |
bool |
IN |
True: 開(kāi)天線 |
AutoRequest |
bool |
IN |
是否自動(dòng)尋卡,wince系統(tǒng)請(qǐng)?jiān)O(shè)置成false |
返回值:0x01->成功,<=0 失敗
1.8 尋卡類型設(shè)置
方法:public static extern int YW_SearchCardMode(byte Mode);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
Mode |
byte |
IN |
0x41‐類型 A(0x41) |
返回值:0x01->成功,<=0 失敗
1.9 寫模塊內(nèi)存
方法:public static extern int YW_WriteReaderMemory(int AddrBegin, int DataLen, byte[] Data)
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
AddrBegin |
int |
IN |
起始地址 |
DataLen |
int |
IN |
數(shù)據(jù)長(zhǎng)度 |
Data |
byte[] |
IN |
數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
1.10 讀模塊內(nèi)存
方法:public static extern int YW_ReadReaderMemory(int AddrBegin, int DataLen, byte[] DataRead);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
AddrBegin |
int |
IN |
起始地址 |
DataLen |
int |
IN |
數(shù)據(jù)長(zhǎng)度 |
Data |
byte[] |
OUT |
數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
1.11 模塊休眠,任何指令可以激活
方法:public static extern int YW_ModuleSleep()
參數(shù)列表:None
返回值:0x01->成功,<=0 失敗
1.12 獲取IIC地址
方法:public static extern int YW_ GetIICAddr ();
參數(shù)列表:None
<=0 失敗, >0 IIC 地址
1.13 設(shè)置IIC地址
方法:public static extern int YW_SetIICAddr(byte IICAddr);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
IICAddr |
byte |
IN |
新的IIC地址 |
返回值:0x01->成功,<=0 失敗
2 RFID模塊Wince API-ISO14443A函數(shù)
2.1 ISO14443A 尋卡
方法:public static extern int YW_RequestCard(byte CardMode, byte[] CardNo,byte[] OtherInfo);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
CardMode |
byte |
IN |
0x00: 所有卡 |
CardNo |
byte[] |
OUT |
卡號(hào). |
OtherInfo |
byte[] |
OUT |
其他信息 |
<=0 失敗, else 返回值 value(>0) is the length of CardNo.
2.2 讀M1卡塊數(shù)據(jù)
方法:public static extern int YW_ReadaBlock(byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key, int BlockAddr, byte[] pData)
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊 |
pData |
byte[] |
OUT |
16 bytes 數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
2.3 寫M1卡塊數(shù)據(jù)
方法:public static extern int YW_ WriteaBlock (byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key, int BlockAddr, byte[] pData);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊 |
pData |
byte[] |
IN |
16 bytes 數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
2.4 讀M1卡扇區(qū)數(shù)據(jù)
方法:public static extern int YW_ ReadSector (byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key, int SectorAddr, byte[] pData);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
SectorAddr |
int |
IN |
扇區(qū)號(hào) |
pData |
byte[] |
OUT |
64 bytes 數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
2.5 M1卡初始化為錢包(值)
方法:public static extern int YW_InitiaPurse(byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key,int BlockAddr, int IniMoney);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊號(hào) |
IniMoney |
int |
IN |
初始值 |
返回值:0x01->成功,<=0 失敗
2.6 M1卡讀錢包(值)
方法:public static extern int YW_ ReadPurse (byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key,int BlockAddr, ref int Money);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊號(hào) |
Money |
Ref int |
OUT |
值 |
返回值:0x01->成功,<=0 失敗
2.7 M1卡充值錢包(加值)
方法:public static extern int YW_IncPurse( (byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key,int BlockAddr, int Money);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊號(hào) |
Money |
int |
IN |
值 |
返回值:0x01->成功,<=0 失敗
2.8 M1卡消費(fèi)錢包(減值)
方法:public static extern int YW_DecPurse( (byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key,int BlockAddr, int Money);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
BlockAddr |
int |
IN |
塊號(hào) |
Money |
int |
IN |
值 |
返回值:0x01->成功,<=0 失敗
2.9 備份錢包(值)
方法:public static extern int YW_BakPurse(byte KeyAB,byte KeyMode,byte KeyIndx, byte[] Key,int SrcBlockAddr, int DesBlockAddr);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyAB |
byte |
IN |
0x00: Key A |
KeyMode |
byte |
IN |
0x00: 命令密鑰 |
KeyIndx |
byte |
IN |
如果采用系統(tǒng)密鑰 KeyIndx =0 to 31 |
Key |
byte[] |
IN |
命令密鑰6 bytes. |
SrcBlockAddr |
int |
IN |
原塊號(hào) |
DesBlockAddr |
int |
IN |
目的塊號(hào) |
返回值:0x01->成功,<=0 失敗
2.10 卡Halt
方法:public static extern int YW_Halt_();
參數(shù)列表:None
返回值:0x01->成功,<=0 失敗
2.11 下載密鑰
方法:public static extern int YW_DownKey(int KeyIndex, byte[] Key);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
KeyIndex |
byte |
IN |
0 to 31,密鑰序號(hào) |
Key |
byte[] |
IN |
6 Bytes, 系統(tǒng)密鑰 |
返回值:0x01->成功,<=0 失敗
2.12 UltraLight讀數(shù)據(jù)
方法:public static extern int YW_M401UL_Read(byte Block, byte[] pData)
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
Block |
?byte |
IN |
塊號(hào) |
pData |
byte[] |
OUT |
塊數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
2.13 UltraLight寫數(shù)據(jù)
方法:public static extern int YW_M401UL_ Write (byte Block, byte[] pData);
參數(shù)列表:
參數(shù) |
類型 |
方向 |
說(shuō)明 |
Block |
?byte |
IN |
塊號(hào) |
pData |
byte[] |
IN |
塊數(shù)據(jù) |
返回值:0x01->成功,<=0 失敗
|
RFID讀寫器,SDK,IC卡讀卡器,開(kāi)發(fā)包,二次開(kāi)發(fā),智能卡讀卡器,RFID讀卡器,CPU卡讀寫器,讀卡模塊 |