FM1208高级自定义CPU卡读写模块用户手册.docx

上传人:b****1 文档编号:2395111 上传时间:2023-05-03 格式:DOCX 页数:55 大小:1.59MB
下载 相关 举报
FM1208高级自定义CPU卡读写模块用户手册.docx_第1页
第1页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第2页
第2页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第3页
第3页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第4页
第4页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第5页
第5页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第6页
第6页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第7页
第7页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第8页
第8页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第9页
第9页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第10页
第10页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第11页
第11页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第12页
第12页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第13页
第13页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第14页
第14页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第15页
第15页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第16页
第16页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第17页
第17页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第18页
第18页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第19页
第19页 / 共55页
FM1208高级自定义CPU卡读写模块用户手册.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

FM1208高级自定义CPU卡读写模块用户手册.docx

《FM1208高级自定义CPU卡读写模块用户手册.docx》由会员分享,可在线阅读,更多相关《FM1208高级自定义CPU卡读写模块用户手册.docx(55页珍藏版)》请在冰点文库上搜索。

FM1208高级自定义CPU卡读写模块用户手册.docx

FM1208高级自定义CPU卡读写模块用户手册

类别

内容

关键词

摘要

修订历史

版本

日期

原因

V1.00

2015/01/30

创建文档

1.概述

CPU卡读写模块支持上海复旦微电子FM1208卡片的数据读写操作,具有UART通信接口。

模块不需要PSAM安全模块,所有密钥运算由读写模块独立完成,大大减少系统成本。

产品提供功能强大、高度集成的函数调用指令,实现自创目录、自创文件大小和自定义密钥管理系统,通过详细的例程说明,即可在30分钟内完全掌握CPU卡的自定义操作使用。

2.性能指标

2.1产品特性

●【支持卡片】:

上海复旦微电子FM1208CPU卡文件数据(自定义)读写操作;

●【电压范围】:

3.3V~5.5V;

●【工作电流】:

45mA;

●【工作温度】:

-20~85℃;

●【通信接口】:

UART(可外扩为RS-232或RS-485);

●【波特率】:

19200bps;

●【模块体积】:

⏹天线一体模块:

55.8×35.5×3mm;

⏹天线分体模块:

35.5×20.3×3mm;

●【读卡距离】:

40mm~60mm;

●【通信指示】:

具有2个通信数据收发指示灯,通信状态一目了然;

●【辅助输出】:

具有1个辅助输出,可以控制LED或蜂鸣器等外设;

●【看门狗】:

内置硬件看门狗,杜绝死机。

2.2应用场合

●通用读写卡器;

●门禁;

●停车场;

●消费机;

●预付费电表、水表、煤气表;

●其它使用Mifare卡作身份识别或金融交易的场合。

 

2.3产品尺寸

2.3.1天线一体

图21天线一体实物图

图22天线一体尺寸图(55.8×35.5mm)

 

2.3.2天线分体(标准型)

图23天线分体实物图

图24天线分体尺寸图(35.5×20.3mm)

图25外接天线板(尺寸:

70mm×50mm),读写数据距离>60mm

3.硬件接口

读卡模块具有一个电源通信接口和一个天线接口,如图31所示。

通信方式相同的模块其电源通信接口的定义相同,所有天线分体模块的天线接口的定义也相同。

图31模块接口

图32模块原理图符号

注意:

天线一体化模块虽然引出了天线接口,但其已经与模块内置的天线相连,所以实际使用时不能与外部再有任何电气连接,否则模块将无法正常工作。

 

3.1UART通信接口:

UART接口读写模块电源通信接口定义如表2所示。

表1电源通信接口定义

引脚

符号

I/O

说明

1

VCC

电源

模块电源,3.3V~5.5V

2

GND

模块地,连接到主机的地

3

TXD

输出

模块UART数据发送端,连接到主机的数据接收端RXD

4

RXD

输入

模块UART数据接收端,连接到主机的数据发送端TXD

5

NSS

——

——(没有使用,请悬空,不要连接到电源或地)

6

CLK

——

——(没有使用,请悬空,不要连接到电源或地)

7

INT

输出

辅助输出引脚,可以用来控制LED或蜂鸣器等外设

UART接口读写模块与一般微控制器(MCU)连接的电路如图33所示,天线一体读写模块不需要外接天线。

图33UART接口读写模块与微控制器连接

主机与模块的UART通信时序图如图34所示。

图34主机与模块UART通信时序

如果想把模块连接到电脑,则需要在电脑串口和模块之间加入MAX232之类的芯片,把RS-232电平转换为TTL的电平,或者使用USB转UART(非RS-232)转换器。

UART接口读写模块与电脑连接的电路如图35所示。

图35UART接口读写模块与电脑连接

3.2分体模块与天线的连接

分体模块需要外接天线才能工作,其天线接口的定义如表4所示。

表2天线接口定义

引脚

符号

I/O

说明

1

ANT2

输出

天线发送端2

2

GND

公共地

3

ANT1

输出

天线发送端1

分体模块与天线连接的电路如图38所示。

Cs1、Cs2、Cp1、Cp2和Rp1是天线的调谐元件,其参数在每种天线都是不一样的,需要根据实际情况进行调整,图中的参数只供参考。

(Cp1+Cp2)一般为50pF~200pF,天线一般为1~4圈,通常线圈的面积越大所需圈数越少。

图36分体模块与天线连接

3.3辅助输出

模块具有1个辅助输出端口,可以用来连接LED或蜂鸣器,主机可以通过命令控制模块辅助输出的打开(输出高电平)或关闭(输出低电平),从而实现控制LED的亮灭和蜂鸣器的鸣叫。

模块辅助输出与LED或蜂鸣器的连接如图39所示。

辅助输出可以直接驱动LED,但不能直接驱动蜂鸣器,所以控制蜂鸣器时需要外接三极管驱动。

上电时辅助输出端口默认输出为低电平。

图37模块辅助输出控制LED或蜂鸣器

3.4通信指示灯

模块具有两个通信数据收发指示灯,平时两指示灯不亮,当模块接收到数据时,绿色接收指示灯将会闪烁;当模块向外发送数据时,红色发送指示灯将会闪烁。

另外在模块上电时,发送指示灯会亮1秒后熄灭,表示模块工作正常。

通过这两个指示灯您可以清楚地知道通信的状态,快速排除故障,免除了动用示波器的麻烦。

3.5结构尺寸

天线分体和天线一体模块的结构尺寸分别如图310和图311所示,我们还为您准备了AutoCAD格式的封装图和DXP(Protel)格式的元件库,请向我们销售人员索取。

图38天线分体模块结构尺寸

图39天线一体化模块结构尺寸

4.通信协议

当主机(这里把与模块通信的设备统称为主机)通过UART接口与模块通信时,采用“命令——响应”的方式,主机发送命令数据给模块,模块执行相应的动作,然后把执行结果返回给主机。

主机与模块UART通信的参数为:

波特率19200bps,8位数据位,1位停止位,无奇偶校验。

4.1数据帧结构

数据帧格式分为主机命令数据帧和模块响应数据帧。

●主机命令数据帧结构

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

1字节

1字节

1字节

N字节

1字节

●模块响应数据帧结构

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

1字节

1字节

1字节

1字节

N字节

1字节

●帧数据含义

⏹LEN:

整个数据帧的长度,包含LEN本身及帧最后的校验值;

⏹ADDR:

读卡模块的地址,RS-485通信时会校验此地址,如果地址错误模块将不响应命令;

⏹FC:

命令码,具体含义参照表4.1;

⏹SW:

模块执行命令后返回的操作状态,0x00表示操作成功,其它值为错误代码,详见表4.2;

⏹DATA:

主机命令相关的参数或模块回应的数据,有的命令不带参数,则没有该字段。

如果操作不成功(SW不为0)这时数据为两字节更具体的错误代码(参见§10附录2:

CPU卡常用APDU错误码);

⏹BCC:

校验值,除了BCC以外所有数据的累加和取反,只取最低字节。

4.2命令码

读写模块命令码如表4.1所示。

表4.1读写模块命令码

命令

命令码

命令数据

响应数据

控制辅助输出端口

0x14

循环次数+高电平+低电平时间

——

读取模块信息

0x15

——

模块描述信息字符串

激活A型卡

0x16

——

卡片序列号

CPU卡激活

0x18

——

激活CPU卡ISO14443-4

外部认证

0xC0

密钥编号+密钥值

密钥验证获取操作权限

创建目录

0xC2

外部认证密钥+目录ID+目录大小+建立权限+擦除权限+目录名称+目录内的传输密钥

自定义目录

选择目录或文件

0xC3

目录ID或者文件ID

进入目录或选择文件

创建文件

0xC4

文件ID+文件大小+读权限+写权限

创建二进制数据文件

擦除目录文件

0xC5

——

擦除目录下所有目录及文件

创建密钥文件

0xC6

文件空间+增加权限+密钥编号

密钥权限值+密钥值

创建密钥文件

写文件数据

0xC8

文件ID+地址偏移+写数据长度数据

写二进制文件

读文件数据

0xC9

文件ID+地址偏移+读数据长度

读二进制文件

注:

响应时间仅供参考,测试条件为:

UART通信,波特率19200bps。

4.3操作状态码

读写模块返回的操作状态码意义如表4.2所示。

表4.2操作返回状态码意义

返回状态

意义

6981

命令与文件结构不相容

6982

不满足安全状态

6983

密钥被锁死

6985

使用条件不满足

6987

无安全报文

6988

安全报文数据项不正确

6A80

数据域参数错误

6A81

功能不支持或卡中无MF或卡片已锁定

6A82

文件未找到

6A83

记录未找到

6A84

文件无足够空间

6A86

参数P1P2错误

6B00

在达到Le/Lc字节之前文件结束,偏移量错误

6Cxx

Le错误

6E00

无铲的CLA

6F00

数据无效

9302

MAC错误

9303

应用已被锁定

9401

金额不足

9403

密钥未找到

9406

所需要MAC不可用

5.命令详解

以下实际例子的数据如果没有特别说明均为16进制,对于多字节数据字段的发送和回应均为小端模式,波特率为:

19200bps。

5.1读取模块信息(FC=0x15)

读取模块型号和版本等信息。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x04

0x01

0x15

——

0xE5

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0xXX

0x01

0x15

0x00

模块信息

0xXX

⏹DATA:

字符串形式的模块信息,包含有模块型号和版本等内容。

3.通信实例

操作

发送

返回

备注

读取模块信息

040115E5

1F0115004355543130302D412056312E303220323031332D31322D313200A2

返回的模块信息字符串为“XXX100-AV1.022013-12-12”

5.2读取卡片序列号(FC=0x16)

读取卡片原始序列号。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x04

0x01

0x16

——

0xE4

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0x09

0x01

0x16

0x00

卡片序列号

0xXX

3.通信实例

操作

发送

返回

备注

读取卡片序列号

040116E4

090116001E80D73238

卡片序列号为0x32D7801E(回应数据为小端模式)

5.3控制辅助输出端口(FC=0x14)

控制辅助输出端口的高低电平。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x07

0x01

0x14

循环次数+

高电平时间+低电平时间

0xXX

⏹DATA:

◆循环次数:

1字节;

◆高电平时间:

1字节,以10ms为单位。

◆低电平时间:

1字节,以10ms为单位。

注意:

高电平值+低电平值之和不能大于255。

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0x05

0x01

0x14

0x00

——

0xE5

3.通信实例

操作

发送

返回

备注

输出端口动作

07011403140AC2

05011400E5

循环3次,高电平时间200ms(0x14×10ms=200ms),低电平时间100ms(0x0A×10ms=100ms)

5.4CPU卡激活ISO14443-4(FC=0x18)

激活CPU卡ISO14443-4层,只有CPU卡才能激活到这一层,逻辑加密卡(如Mifare卡)不能激活到该层。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x04

0x01

0x18

——

0xE2

⏹注意事项:

◆CPU卡离开读写模块放回后,对卡片进行任何操作前必须进行1次CPU卡激活,卡片激活后只要卡片不离开模块则不需要再次激活;

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0x25

0x01

0x18

0x00

返回CPU卡的ATS信息

0xXX

⏹DATA:

数据区返回CPU卡片的ATS信息包含TST0TA1TB1TC1历史字符等信息

◆【0】:

ATS信息长度

◆【1】:

TS

◆【2】:

T0

◆……后续数据与T0的值有关非固定值

⏹注意事项:

◆错误返回

模块返回数据为“05011802DF”,表明读卡失败或该卡片不是CPU卡,有可能是逻辑加密卡(Mifare卡)或ID卡等。

◆目录操作

CPU卡激活成功后,表示进入CPU卡根目录,所有操作均表示在根目录下的操作。

3.通信实例

操作

发送

返回

备注

激活CPU卡片

040118E2

25011800107880A00220900000000000767A68C2000000000000000000000000000000004D

激活CPU卡片到ISO14443-4层

5.5外部认证(FC=0xC0)

进行密钥认证,获取CPU卡操作权限,只有操作权限满足才能进行对应的目录创建、文件创建或文件读写等操作。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x15

0x01

0xC0

密钥编号+密钥值

0xXX

⏹DATA:

◆【密钥编号】:

1字节,密钥保存的编号,不同目录下的编号可以相同,如目录1和目录2均可有密钥编号为0的密钥,密钥为0的编号默认为传输密钥;

◆【密钥值】:

16字节,需要进行外部认证的密钥。

⏹注意事项:

◆不同目录有不同的认证密钥,即外部认证仅针对当前选择的目录,认证成功后可获取当前目录的操作权限;

◆全新的FM1208CPU卡默认根目录下的外部认证密钥是16字节0xFF;

◆外部认证成功后,只要权限足够,即可连续对指定目录内容进行创建、读写等操作,不需要每个操作步骤均进行外部认证;

◆若目录具有密钥文件,若外部认证连续15次错误将永久锁死卡片不能使用。

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0x07

0x01

0xC0

0x00

认证结果

0xXX

⏹DATA:

◆【认证结果】:

密钥认证后的结果,认证结果如下表所示:

回应数据

认证结果

9000

认证成功,获取对应密钥的操作权限。

6283

密钥校验错误

6581

写EEPROM不成功

6700

错误的长度

6981

不是外部认证密钥

6982

密钥使用条件不满足

6983

密钥认证错误次数达到15次,卡片锁死不能使用。

6A82

KEY文件未找到

6A88

没有创建密钥文件,即没有认证密钥。

63CX

密钥认证错误,CX数据不断减少,最多仅允许认证15次,当到达C0(15次)后卡片锁死不能使用。

9302

安全信息不正确

⏹注意事项

◆每个目录(包括根目录)均有自已的密钥文件,外部验证不同的密钥文件具有不同的操作权限;

◆对目录进行任何操作,如创建子目录、创建文件、读写文件前均需要对该目录的密钥文件进行外部认证,获取操作权限(是否需要外部认证与目录与文件创建时的权限设置有关,后续详细说明)。

3.通信实例

操作

发送

返回

备注

激活CPU卡片

040118E2

25011800107880A00220900000000000767A68C2000000000000000000000000000000004D

激活CPU卡片到ISO14443-4层

外部认证

1501C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39

0701C0000090A7

认证根目录编号为0的密钥,密钥值16字节默认为全0xFF

5.6创建密钥文件(FC=0xC6)

对指定目录创建密钥文件及操作权限,外部认证成功后即获取该目录对应的操作权限,操作权限包括目录建立、目录删除、文件建立、文件读写等操作功能。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x19

0x01

0xC6

文件空间+增加权限+密钥编号+

密钥权限值+密钥值

0xXX

⏹DATA:

◆【文件空间】:

2字节,用于保存多个外部认证密钥的文件空间,文件空间为16的倍数,如保存5组不同权限的认证密钥,文件空间容量为90个字节;

◆【增加权限】:

1字节,默认为F0,可对密钥文件进行任意添加、删除密钥;

◆【密钥编号】:

1字节,新建的密钥文件自动添加一个新的密钥,用于标识该新的密钥地址编号。

密钥文件中不同的密钥仅能有唯一编号,不同密钥文件允许有相同密钥编号;

◆【密钥权限值】:

1字节,认证新建密钥后可获取的操作权限,密钥文件中其它的密钥可独立设置不同权限值,即同一密钥文件认证不同密钥可获取不同权限值;

◆【密钥值】:

16字节,需要进行外部认证的密钥。

⏹注意事项:

◆密钥权限判断说明:

假定目录/文件的操作权限为AB,认证密钥后取的权限值为XY,仅当以下条件成立时才能对目录或文件进行操作:

A≥X且Y≥B,任一条件不符合均没有操作权限,举例如下。

目录/文件操作权限

密钥权限

说明

F0

E2

F>E(符合),2>0(符合),具有操作权限,目录/文件操作权限为F0表示任何密钥权限均可满足,即不需要验证密钥权限即可无限制操作,若目录/文件操作权限不是F0,则必须进行外部认证。

F1

F2

F=F(符合),2>1(符合),具有对目录或文件的操作权限。

F3

0F

F>0(符合),F>3(符合),具有对目录或文件的操作权限,密钥权限为0F表示最高的密钥权限,即可对目录/文件进行任何功能的操作。

E2

F3

E2(符合),不具有对目录或文件的操作权限

0F

F1

0

EF

---

表示目录或文件禁止写操作,仅能作为只读文件

◆创建密钥文件指令仅适用于删除目录文件后马上新建密钥文件的场合,若删除目录文件后没有及时创建密钥文件,而是先创建了二进制文件,若想再次创建密钥文件时需要进行外部认证,由于没有密钥文件不能进行外部认证,因此不能再次创建密钥文件;

◆每个目录仅需要创建一个密钥文件,而且也必须创建一个密钥文件,若没有密钥文件则不能进行外部认证,不能获取对目录或文件的操作权限,从而有可能失去对该目录的控制。

2.模块返回

LEN

数据长度

ADDR

模块地址

FC

命令码

SW

操作状态

DATA

回应数据

BCC

校验值

0x07

0x01

0xC6

0x00

创建结果

0xXX

⏹DATA:

◆【创建结果】:

创建密钥文件返回结果如下表所示:

回应数据

认证结果

9000

创建密钥文件成功。

6A86

密钥文件已存在,不能重复创建

3.通信实例

全新的FM1208CPU卡根目录下默认有一个密钥文件,密钥文件中存有1个编号为0,16字节0xFF的认证密钥。

由于该密钥的权限比较低,不允许创建新的目录,一般对新的CPU卡片需要删除根目录下的密钥文件,再新建一个较高权限的密钥文件。

举例:

对新CPU卡创建密钥文件及添加1个编号为0,权限为0F,16字节0xFF的认证密钥,具体操作如下:

操作

发送

返回

备注

CPU卡激活

040118E2

25011800107880A00220900000000000767A68C2000000000000000000000000000000004D

激活CPU卡进入ISO14443-4层,进入CPU卡根目录

外部认证

1501C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39

0701C0000090A7

外部认证根目录下,编号为0,密钥为16字节0xFF,返回验证成功获取操作权限

删除目录/文件

0401C535

0701C5000090A2

删除根目录下的所有目录(包括目录下的文件)及密钥文件

创建密钥文件

1901C60001F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F

0701C6000090A1

根目录下创建密钥文件和1个256字节容量,编号为0,权限为0F,16字节0xFF密钥的认证密钥

5.7创建目录(FC=0xC2)

创建目录和创建目录下的密钥文件。

1.主机发送

LEN

数据长度

ADDR

模块地址

FC

命令码

DATA

命令相关数据

BCC

校验值

0x32

0x01

0xC2

外部认证密钥+目录ID+目录容量+建立文件权限+擦除文

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2