4442 IC卡简介: 4442卡为256字节加密卡,存在读数据、写数据、保护数据以及操作。 电气性能 ? ●256×8位EEPROM ? ●字节直接寻址 ? ●低地址32字节数据设不可恢复的写保护位 ? ●32位保护位 ? ●写数据操作结束标志 ? ●合7816-3标准的复位响应 ? ●字节擦除然后写入时间:标准值25ms ? ●少10000次的写擦除周期 ? ●数据保存期:10年 保密特性 ? ●三字节的用户。 ? ●核对正确前,数据只可读,不可改写。 ? ●核对正确后可以更改数据,包括再内。 ? ●错误计数器,初始值为3,核对出错1次,便减1,若计数器值为0,则卡自动锁,数据只可读出,不可再进行更改也无法再进行核对;若不为时,有核对正确,可恢复到初始值3。 ? ●写保护区(前32个字节)的每一字节可单独进行写保护,进行写保护后,内容不可再更改(即固化数据)。 程序员注意事项: 1.除去写保护区的32字节,程序员可操作的只有224字节,写保护区只有写如机会,一般不使用。 2.注意每次改写后,只有将卡下电后才会生效。 3.为3字节也就是24个位,一般出使为'',转换成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 正确