发布网友 发布时间:2022-04-26 08:09
共1个回答
热心网友 时间:2022-06-25 16:28
1.除去写保护区的32字节,程序员可操作的只有224字节,写保护区只有一次写如机会,一般不使用。
2.注意每次改写密码后,只有将卡下电后密码才会生效。
3.密码为3字节也就是24个位,一般初始密码为“255255255”,转换成16进制为六个F即“FFFFFF”。
市场上常用的芯片为西门子的SLE4442,也有使用国产复旦的FM4442和ATMEL的AM4442
常应用与酒店门锁及储值卡系统应用
明华兼容系列读卡器操作4442卡的函数
写操作函数: swr_4442()
读操作函数: srd_4442()
测卡型函数: chk_4442()
效验密码函数: csc_4442()
读取密码函数: rsc_4442()
更改密码函数: wsc_4442()
读密码错误计数: rsct_4442()
写保护位函数: pwr_4442()
读保护位函数: prd_4442()
写操作函数: swr_4442()
int swr_4442(int icdev, int offset, int len, unsigned char *w_string)
说明: 向指定地址写数据
调用: icdev: 通讯设备标识符
offset: 偏移地址,其值范围0~255
len: 字符串长度,其值范围1~256
w_string: 写入数据
返回: <0 错误
=0 正确
读操作函数: srd_4442()
int srd_4442(int icdev, int offset, int len, unsigned char* r_string )
说明: 从指定地址读数据
调用: icdev: 通讯设备标识符
offset: 偏移地址,其值范围0~255
len: 字符串长度,其值范围1~256
r_string: 读出数据所存放地址指针
返回: <>0 错误
=0
测卡型函数: chk_4442()
int chk_4442(int icdev)
说明: 检查卡型是否正确
调用: icdev: 通讯设备标识符
返回: <0 错误
=0 正确
效验密码函数: csc_4442()
int csc_4442(int icdev, int len, unsigned char* p_string)
说明: 核对卡密码
调用: icdev: 通讯设备标识符
len: 密码个数,其值为3
p_string: 密码字符串指针
返回: <0 错误
=0 密码正确
读取密码函数: rsc_4442()
int rsc_4442(int icdev, int len, unsigned char* p_string)
说明: 读出卡密码
调用: icdev: 通讯设备标识符
len: 密码个数,其值为3
p_string: 存放密码地址指针
返回: <>0 错误
=0 正确
更改密码函数: wsc_4442()
int wsc_4442(int icdev, int len,unsigned char* p_string)
说明: 改写卡密码
调用: icdev: 通讯设备标识符
len: 密码个数,其值为3
p_string: 新密码地址指针
返回: <0 错误
=0 正确
读密码错误计数: rsct_4442()
int rsct_4442(int icdev, int* counter)
说明: 读出密码错误计数器值
调用: icdev: 通讯设备标识符
counter: 密码错误记数值存放指针
返回: <0 错误
>=0 正确
写保护位函数: pwr_4442()
int pwr_4442(int icdev, int offset, int len, unsigned char* w_string)
说明: 保护指定地址的数据
调用: icdev: 通讯设备标识符
offset: 偏移地址,其值范围0~31
len: 字符串长度,其值范围1~32
w_string: 保护数据,必须和卡中已存在的数据一致
返回: <0 错误
=0 正确
读保护位函数: prd_4442()
int prd_4442(int icdev,int len,unsigned char *r_string)
说明: 读保护位
调用: icdev: 通讯设备标识符
len: 保护长度,其值为4
r_string: 存放保护标志的地址指针;
保护位为0表示已置保护,为1表示未置保护
返回: <0 错误
=0 正确