上 海 复 旦 微 电 子 股 份 有 限 公 司 设 计 文 件
复旦微电子RF动态连接库
目 录
1. 射频卡介绍 4
2. M1兼容卡 4
2.1. 电气特性 4
2.2. 存储结构 4
2.4. 工作原理 6
数据操作函数 6
值操作函数(钱包操作) 6
芯片操作函数 6
高级函数 6
3. TOKEN(筹码型)卡介绍 7
3.1. 电气特性 7
3.2. 提供操作函数 7
4. 非接触CPU卡介绍 8
4.1. 电气特性 8
4.2. 提供操作函数 8
5. 库函数 8
5.1. Mifare 1卡函数使用规则 9
5.2. TOKEN卡函数使用规则 10
5.3. 钱包操作的特殊指令(适用于以上两种卡) 10
5.4. CPU卡函数使用规则 10
5.5. 函数返回信息代码 10
5.6. RFDLL.dll库函数详细说明 11
5.6.1. rf_reset 11
5.6.2. rf_beep 11
5.6.3. rf_init 12
5.6.4. rf_exit 12
5.6.5. rf_cardtype 12
5.6.6. rf_request 12
5.6.7. rf_anticoll 13
5.6.8. rf_select 13
5.6.9. rf_load_key 13
5.6.10. rf_halt 14
5.6.11. rf_read 14
5.6.12. rf_write 14
5.6.13. rf_authentication 14
5.6.14. rf_initval 15
5.6.15. rf_readval 15
5.6.16. rf_increment 15
5.6.17. rf_decrement 16
5.6.18. rf_restore 16
5.6.19. rf_transfer 16
5.6.20. rf_HL_read 16
m1卡
5.6.21. rf_HL_write 17
5.6.22. rf_HL_initval 17
5.6.23. rf_HL_increment 18
5.6.24. rf_HL_decrement 18
5.6.25. rf_token_read_noauth 18
5.6.26. rf_token_read 19
5.6.27. rf_token_write 19
5.6.28. rf_rats 19
5.6.29. rf_pps 20
5.6.30. rf_cpu_access 20
1. 射频卡介绍
射频卡即为非接触式IC卡,主要包括非接触逻辑加密卡和非接触CPU卡。按卡类型分类则
有TYPE A卡、TYPE B卡、15693卡等类型,其中TYPE A卡应用比较广泛,我公司的FM11RF32、FM11RF08、FM11RF005以及新研发成功的FM1208等芯片均是不同容量的TYPE A卡。其中FM1208为兼容逻辑加密卡的非接触CPU卡。而FM11RF32、FM11RF08、FM11RF005为非接触逻辑加密卡。它们中间容量为8K的FM11RF08是与Mifare one完全兼容的,512位的FM11RF005是一种小容量的筹码卡(又叫做TOKEN卡)。下面分别介绍一下:
2. M1兼容卡
M1卡为8K位的非接触式IC卡(典型产品:FM11RF08)。
2.1. 电气特性
● 容量为8K位EEPROM
● 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
● 每张卡有唯一序列号,为32位
● 具有防冲突机制,支持多卡操作
● 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
● 工作温度:-20℃~50℃
● 工作频率:13.56MHZ
● 通信速率:106KBPS
● 读写距离:10cm以内(与读写器有关)
● 数据保存期为10年,可改写10万次,读不限次
2.2. 存储结构
M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1
、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B,其结构如下: A0 | A1 | A2 | A3 | A4 | A5 | FF | 07 | 80 | 69 | B0 | B1 | B2 | B3 | B4 | B5 |
密码A(6字节) | 存取控制(4字节) | 密码B(6字节) |
| | | | | | | | | | | | | | | |
2.3. 控制属性
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。在存取控制中每个块都有相应的三个控制位,定义如下:
0 | 块0: | C10 | C20 | C30 |
1 | 块1: | C11 | C21 | C31 |
2 | 块2: | C12 | C22 | C32 |
3 | 块3: | C13 | C23 | C33 |
| | | | |
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减
值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置如下(字节9为备用字节,默认值为0x69):
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
字节6 | C23_b | C22_b | C21_b | C20_b | C13_b | C12_b | C11_b | C10_b |
字节7 | C13 | C12 | C11 | C10 | C33_b | C32_b | C31_b | C30_b |
字节8 | C33 | C32 | C31 | C30 | C23 | C22 | C21 | C20 |
| | | | | | | | |
(注:_b表示取反)
其中,黑区控制块3,蓝区控制块2,绿区控制块1,红区控制块0。