项目名称:天津城市一卡通项目消费卡应用规范(版本:2.04)天津城市一卡通有限公司·天津2008年5月29日第2页共16页文档修订记录序号修改时间修改人审核人备注1.贾冬梅2.2011-6-10董志欣黄总、贾冬梅,韩鹏在公共信息区(正副本)增加了联程优惠交易时间。第3页共16页天津城市一卡通IC卡数据结构——非接触式IC卡概述本数据结构基于A类非接触式IC卡设计,可用于城市交通自动收费和小额消费领域。天津城市一卡通交易流程遵循建设部《建设事业IC卡应用技术》(CJ/T166-2002)和《天津市建设事业IC卡应用技术》(CJ/T166—2002)。本结构遵循以下原则:采用文件方式设计,使用目录文件作为应用索引,支持多应用;采用两级的文件层次,即每个应用文件中包括多个基本文件负责完成不同的功能,而应用之间相互独立;应用的扩展方便,专用文件可灵活设置;卡片内基本的文件逻辑结构见下图所示。目录文件发卡方数据文件公共应用文件行业应用文件钱包文件充值信息文件公共信息文件交易记录文件个人信息文件地铁文件过程文件轻轨文件非计次月票及计时文件公交市区/郊区月票文件第4页共16页目前使用范围最广的A类逻辑加密卡是Philips公司的Mifare系列,容量为1K字节.卡基本内存结构扇区0(Sector0)BLOCK0制造商专用数据BLOCK1用户数据BLOCK2用户数据BLOCK3密钥数据扇区1(Sector1)BLOCK0用户数据BLOCK1用户数据BLOCK2用户数据BLOCK3密钥数据……扇区15(Sector15)BLOCK0用户数据BLOCK1用户数据BLOCK2用户数据BLOCK3密钥数据每个数据块包含16字节。IC卡内存总容量:16*4*16=1024字节实际的用户数据总容量:32+16*3*15=752字节该卡有16个扇区,每个扇区包含4个由16字节组成的数据块,各扇区的数据结构定义如表1所示:表1TYPEA非接触逻辑加密卡用户卡数据结构表SectorBlock0123456789ABCDEF0(00)00唯一代码(CSN)LRC厂商信息应用标识目录区11000110030303061112131415161718FF22城市代码行业代码发行流水备份卡认证码备份000000校验33KeyA0(读)访问控制字KeyB0(写)1(01)40城市代码行业代码发行流水卡认证码启用标志卡类押金校验发行区51发行日期(年月日)有效日期(年月日)启用日期(年月日)年检日期YMD校验62充值时间(年月日时)充值原额本次充值操作员工号0000校验73KeyA1(读)访问控制字KeyB1(写)2(10)80累计充值额允许最大余额(HEX)充值设备编号000000校验公用钱包区91钱包钱包钱包校验102钱包备份钱包备份钱包备份校验113KeyA2(读/减)访问控制字KeyB2(写/加)3(03)120交易时间原额交易金额交易终端号第5页共16页月日时分类型交易记录区A131交易时间原额交易金额交易类型终端号142交易时间原额交易金额交易类型终端号153KeyA3(读/写)访问控制字KeyB3(读/写)4(03)160交易时间原额交易金额交易类型终端号交易记录区B171交易时间原额交易金额交易类型终端号182交易时间原额交易金额交易类型终端号193KeyA4(读/写)访问控制字KeyB4(读/写)5(03)200交易时间原额交易金额交易类型终端号交易记录区C211交易时间原额交易金额交易类型终端号222交易时间原额交易金额交易类型终端号233KeyA5(读/写)访问控制字KeyB5(读/写)6(06)240交易记录指针钱包累计交易次数交易进程标志月票累计交易次数黑名单标志文件标识轨道交通专用标识联程优惠交易时间(年月日时分)00校验公用信息区251交易记录指针钱包累计交易次数交易进程标志月票累计交易次数黑名单标志文件标识轨道交通专用标识联程优惠交易时间(年月日时分)00校验262公交充次终端号公交充次操作员充次日期(年月日)原剩余次数充入次数标识校验273KeyA6(读/写)访问控制字KeyB6(读/写)7(11)280市区基本次数/月启用日期(年月)固定0x32终止日期(年月)固定0x32月票充值计数器1区域编号专线线路号票卡类型校验公交月票文件291月(年季旬)票计数器月(年季旬)票计数器月(年季旬)票计数器校验302月(年季旬)票计数器备份月(年季旬)票计数器备份月(年季旬)票计数器备份校验313KeyA7(读/减)访问控制字KeyB7(写/加)8(12)320郊区基本次数/月启用日期(年月)固定0x32终止日期(年月)固定0x32月票充值计数器2公司编号专线线路号1专线线路号2校验公交郊区月票文件331月(年季旬)票计数器月(年季旬)票计数器月(年季旬)票计数器校验342月(年季旬)票计数器备份月(年季旬)票计数器备份月(年季旬)票计数器校验353KeyA8(读/减)访问控制字KeyB8(写/加)9(13)360进站交易时间-进站设备标识交易金额000000校验第6页共16页标志轨道交通过程文件371出站标志交易时间-出站设备标识交易金额000000校验382备份标志地铁充次终端号地铁充次操作员充次日期(年月日时)原剩余次数充入次数校验393KeyA9(读/写)访问控制字KeyB9(读/写)10(14)400类型次数或金额启用年月日终止年月日线路站号线路站号0000校验地铁文件411月(年季旬)票计数器月(年季旬)票计数器月(年季旬)票计数器校验422月(年季旬)票计数器备份月(年季旬)票计数器备份月(年季旬)票计数器备份校验433KeyA10(读/减)访问控制字KeyB10(写/加)11(15)440进站标志交易时间-进站设备标识交易金额000000校验轻轨过程文件451出站标志交易时间-出站设备标识交易金额000000校验462备份标志校验473KeyA11(读/写)访问控制字KeyB11(读/写)12(16)480进站标志交易时间-进路网编号设备标示车辆类型000000校验高速公路文件491出站标志交易时间-出路网编号设备标示车辆类型000000校验502513KeyA12(读/写)访问控制字KeyB12(读/写)13(17)520类型启用年月日终止年月日校验轻轨文件和自行车文件531交易标记交易时间终端编号00交易认证码校验542交易标记交易时间终端编号00交易认证码校验553KeyA13(读/写)访问控制字KeyB13(读/写)14(18)560交易时间-入库网点编号000000000000校验停车场过程文件571备份标志车牌照号00000000000000校验582000000000000000000000000000000校验593KeyA14(读/写)访问控制字KeyB14(读/写)15(FF)600行业预留文件611622633KeyA15访问控制字KeyB15注:阴影区域是钱包区反码标志第7页共16页1.应用标识目录区文件(0扇区):0扇区(应用标识目录区)第1块16个字节分别代表16个扇区在应用上文件类型相对应的编码,应用文件类型的编码如表2:表2应用文件类型编码表应用文件类型编码应用文件名称应用文件类型编码应用文件名称00目录文件13轨道交通过程文件01发行区文件14地铁文件03交易记录区文件15轻轨文件06公共信息区文件16高速公路过程文件10公用钱包文件17预留11公交月票文件18预留12预留FF行业预留文件0扇区(应用标识目录区)第2块是对扇区1卡号部分的备份。数据定义参见1扇区。校验:检验字,计算方法为:检验字=前15个字节的半加和,下同。访问条件:目录区的KeyA为“0xA0,0xA1,0xA2,0xA3,0xA4,0xA5”,认证目录区文件的KeyA可以对目录区实现读操作;目录区的KeyB由安全模块计算,认证目录区的KeyB可以对目录区实现写的操作。2.发行区文件(1扇区):卡号:卡号由卡的发卡城市代码、行业代码、发卡机构在对卡进行初始化时给出的流水号和卡的认证码构成。其中卡的发卡城市代码按邮政的城市代码的前4位确定;行业代码按建设部的规定确定。卡的认证码(MAC码)顺序由卡的用户卡的城市代码、唯一代码(CSN)、发行流水号与ISAM卡内部的Key,经过加密运算得到,并写入卡内。机具在验证卡的合法性时,同样以上述方式从PSAM卡中得到MAC码,与消费卡内的MAC码进行核对,用以认证用户卡的合法性。卡号、认证码(MAC)的数据结构如表3:表3构成卡号的数据结构:名称字节数数据格式发卡城市代码2BCD行业代码2BCD发行流水号4HEX卡的认证码MAC4HEX行业代码使用2字节,第一字节固定为0x00,后一个字节为该卡可使用的应用行业的代码,见表4:。表4应用行业代码表行业编码行业名称行业编码行业名称行业编码行业名称00城市通用10文化娱乐20供电01公交及快速道11环卫系统21自来水第8页共16页02出租汽车12商业批发22煤气天然气03地铁13零售23供热04轻轨14餐饮旅馆服务24工商税务05轮渡15邮电通讯25体育健身06园林景点16金融保险26自行车租赁07路桥17教育系统08旅游大巴18厂矿企业09停车场19石油化工31行政机关启用标志(HEX码):记录卡的启用标志,为卡的发行机构初始化后的标志位,其定义如表5:表5启用标志:编码意义01未启用02启用03停用04黑名单卡押金:表示在用户购卡时付的卡的押金,HEX码,单位:元;卡类:卡的应用类型,见表6:。表6卡类型编码卡类型名称代码普通卡0x00老人卡0z01老人卡纪念卡0x02旅游卡0x03旅游卡纪念卡0x04停车卡0x05测试卡0x06联名卡0x07纪念卡0x08京津互联互通Oxo9城市会卡0x10备用0x11~0x18卡类型名称代码用于地铁、轻轨行业0x19~0x7F非接触管理用卡0x80~0x9F备用0xAO~0xEF发行日期、有效期限和启用日期和年检日期::记录卡的首次发行日期、卡的有效期限和启用日期和应该年检的日期。卡的发行日期有效期限、启用日期和年检日期的年、月、日表示方法应符合GB/T7408规定,其数据结构如表7:表7发行有效启用日期数据结构:名称字节数内容数据格式第9页共16页发行日期4年月日(YYYYMMDD)BCD有效日期4年月日(YYYYMMDD)BCD启用日期4年月日(YYYYMMDD)BCD年检日期3年月日(YYMMDD)BCD充值记录:充值记录包括充值时间、充值原额、本次充值、操作员工号、累计充值额、允许最大余额、充值设备编号。其中累计充值额、允许最大余额、充值设备编号存储在公共钱包区第0块。充值时间:记录当前充值的时间,其年月日时表示为YYMMDDHH的BCD码充值原额:记录本次充值前卡内钱包的剩余金额。补码表示。单位为分,HEX码表示,逆序(由左到右:低位在前,高位在后)。本次充值:记录当次充值金额。以元为单位,BCD码。操作员工号:记录完成当次充值的操作员工号。累计充值额:记录钱包的累计充值总额,每次充值操作时改写。逆序(由左到右:低位在前,高位在后)。允许最大余额:最大值限定为100000(分)。逆序(由左到右:低位在前,高位在后)。充值设备编号:记录完成当次充值的终端设备编号。充值记录的数据结构如表8:表8充值记录的数据结构名称长度(byte)内容数据格式充值时间4年、月、日、时BCD充值前原额4以分为单位,低位在前,补码HEX本次充值金额2以元为单位BCD允许最大余额4100000(分),低位在前HEX累计充值额4以分为单位,低位在前HEX充值设备编号4高位在前BCD操作员工号3高位在前BCD访问条件:发行区的KeyA=4字节卡号+卡号的前2字节[CSN(4)+CSN(2)],认证发行区文件的KeyA可以对发行区实现读操作。发行区文件的KeyB由安全模块计算,认证发行区文件的KeyB可以对发行区实现写的操作。对于发行区在本系统中只有发行机构的卡初始化机和充值机具有