智能卡支付终端设计实例
本应用笔记介绍了一个基于DS8007多协议双智能卡接口芯片和DS5002安全微控制器的智能卡支付交易系统。该系统可实现基本的智能卡存款、取款交易以及卡的初始化功能。虽然系统没有进行任何与"实际"支付交易系统有关的安全测试,但这里演示的功能对于此类系统极具代表性。
演示中使用的硬件是DS8007评估(EV)板。该评估套件提供了一个方便的、经过验证的平台,用于测试基于DS8007器件的智能卡操作。评估板包括:作为主处理器的DS5002安全微控制器、一个2行20字符的液晶显示(LCD)模块、两个智能卡插槽(分别为信用卡尺寸和SIM尺寸)。此外还提供一个DB-9连接器,用于通过RS-232串行接口传输信号。使用本公司的微控制器工具包(MTK)软件(下载),用户可将PC与RS-232口连接下载程序或数据文件,也可以与应用系统通信。评估板还包括512k x8的电池备份SRAM,用于存储程序和数据信息。DS5002安全处理器为电池备份的SRAM提供电源检测和控制电路。
开发该应用系统使用的软件工具集是Keil公司的PK51专业开发工具套件,包括μVision3集成开发环境(IDE)和CX51 ANSI C编译器。PK51包提供汇编器、连接器、仿真器和调试器的完整开发环境。它生成的十六进制文件可使用MTK软件直接从PC下载到DS8007评估板。
应用实例
本应用笔记提供的交易功能可看作是应用笔记4036:利用DS8007评估套件进行设计中描述的低层功能之上的附加层。
本交易实例可执行和正确管理应用协议数据单元(APDU)的发送和接收。APDU由ACOS3智能卡EMV规范定义。通过生成和发送适当的APDU并处理其可能的响应,可演示典型的支付交易操作。
用于本应用系统的C语言源代码可提供下载,文件名为AN4120_SW.zip。前面提到的应用笔记4036中的代码是这些交易实例的核心,它提供DS8007的所有基本接口/驱动函数和所有直接的低层智能卡接口函数。AN4036中的代码也在相同的网址提供下载,文件名为AN4036_SW.zip。
交易实例详述
为创建一组有代表性的交易功能,本实例实现了三种主要的智能卡操作:
* 取款交易,即扣除信用卡余额
* 存款交易,即增加信用卡余额
* 信用卡初始化交易,将信用卡余额和交易次数设定为初始值
卡中初始金额为$100.00,初始交易次数在初始化交易过程中被设定为1。为简化实例,每次存款、取款交易都固定在信用卡余额中增加或扣除$10.00。
为了提供一个合理的演示,首先要考虑的是如何利用DS8007评估板上的资源建立一个用户接口。由于设计目标之一是无需借助其它设备就能单机运行,因此评估板上的RS-232串口不能作为用户接口。最方便作为用户输入接口的硬件是开关SW4,当该开关按下时,会将处理器的端口引脚P3.2下拉至地电平。P3.2是一个多功能端口引脚,还可用作外部中断输入(INT0)。但是本应用实例软件中不使能该中断,因此,引脚P3.2通常由处理器的引脚驱动电路上拉到高电平,按下开关SW4时通过一个1kΩ电阻拉至低电平。应用系统可简单通过读取该引脚的电平检测开关是否闭合。
板载LCD模块可作为用户接口的输出器件。DS8007评估板的LCD模块是一个2行20字符的显示器。它包含液晶驱动电路,并为处理器提供8位并行接口。通过向模块写入必要的控制和字符就可进行显示操作,由模块管理实际的LCD。
用户完成一次输入,软件就以重复顺序在LCD上显示三种可能的交易类型供用户选择。按下开关SW4时,软件执行选中的交易。
智能卡详述
本应用实例中选用的智能卡是香港Advanced Card Systems Limited(ACS)公司生产的ACOS3卡。该卡内含嵌入式处理器,运行ACS智能卡操作系统版本3 (ACOS3)的操作系统,具有如下特性:
* 16kB应用数据EEPROM存储器
* 符合ISO 7816-1/2/3标准,T=0协议
* 兼容数字加密标准(DES)、3DES和信息验证能力(MAC)
* 5个安全码+发行密码
* 卡持有者可更新PIN码
* 密钥对相互验证
* 会话密钥采用随机数字
* 线性文件具有固定的记录长度
* 帐户数据结构可实现安全支付应用系统
* ACOS3性能的全部说明可在ACS网站上找到。对于本应用实例,没有使用智能卡的任何安全功能,只使用其文件结构和EEPROM存储空间。
智能卡存储空间
本交易实例中,选用的智能卡必须包含一定的非易失存储器空间,用于保存信息。仅有两个数值保存在卡中:记录成功处理的交易次数的"计数器"和虚拟帐户的"余额"。对于该计数器,选用1个字节的无符号数,它可表示0至255次交易数。对于余额,选用16位整数,可表示数值-32,768至+32,767。这种方式允许用户透支卡中的可用余额(即产生负的余额)。因此,本实例中总共需要3个字节的非易失存储器。
- 濡ゅ倹岣挎鍥╀焊閸曨垼鏆ョ€规悶鍎抽埢鑲╂暜閸繂鎮嬮柟瀛樺姇閻撹法鎷嬮鐔告畬缂佸顑呴〃婊呮啑閿燂拷
闁稿繈鍔嶉弻鐔告媴瀹ュ拋鍔呭☉鏃傚Т閻ㄧ姵锛愰幋婊呯懇濞戞挻姘ㄩ悡锛勬嫚閸☆厾绀夐柟缁樺姇瀹曞矂鎯嶉弬鍨岛鐎规悶鍎扮紞鏃堟嚄閽樺顫旈柨娑樿嫰婵亪骞冮妸銉﹀渐闂侇偆鍠愰崹姘舵⒐婢舵瓕绀嬪ù鍏坚缚椤懘鎯冮崟顐ゆ濡増鍨垫导鎰矙鐎n亞鐟�...
- 濞戞搩鍘炬鍥╀焊閸曨垼鏆ョ€规悶鍎抽埢鑲╂暜閸繂鎮嬮柟瀛樺姇閻撹法鎷嬮鐔告畬缂佸顑呴〃婊呮啑閿燂拷
缂侇噣绠栭埀顒婃嫹30濠㈣埖宀稿Λ顒備焊閸曨垼鏆ラ柛鈺冾攰椤斿嫮鎷犻崜褉鏌ら柨娑樺缁楁挾鈧鍩栧璺ㄦ嫚閹惧懐绀夐柛鏂烘櫅椤掔喖宕ㄥΟ鐑樺渐闂侇偆鍠曢幓顏堝礆妫颁胶顏卞☉鎿冧簻閹酣寮介悡搴f濡増鍨垫导鎰矙鐎n亞鐟庨柣銊ュ椤╋箑效閿燂拷...
- Agilent ADS 闁轰焦鐟ラ鐔煎春绾拋鍞查悹鍥у⒔閳诲吋绺藉Δ鍕垫
濞戞挻鎸搁宥夊箳閸綆鍤﹂柨娑樿嫰閸欏繘妫冮姀锝庡敼閻熸瑯鏋僁S闁告艾瀚~鎺楀礉閻旇鍘撮柛婊冭嫰娴兼劗绮欑€n亞瀹夐柣銏╃厜缁遍亶宕濋埡鍌氫憾闁烩偓鍔嶅〒鍫曟儗椤撶姵鐣遍柡鍐ㄧ埣濡法鈧冻缂氱槐鐧咲S...
- HFSS閻庢冻缂氱弧鍕春绾拋鍞查悹鍥у⒔閳诲吋绺藉Δ鍕垫
閻犙冨缁讳焦绋夐幘鎰佸晙闁瑰搫鐗愰鎶芥晬鐏炶棄寮块梻鍫涘灱椤斿骞掗崷娆禨S闁汇劌瀚慨娑㈡嚄閽樺瀚查幖瀛樻⒒閺併倝鏁嶇仦钘夌盎闁告柡鏅滈崑宥夊礂閵娾晜妗ㄧ紒顖濆吹缁椽宕烽弶娆惧妳濞戞梻濮电敮澶愬箵椤″锭SS...
- CST鐎甸偊鍠楃亸婵嗩啅閵夈倗绋婇悗骞垮€曢悡璺ㄦ媼椤撶喐娈岀紒瀣儏椤ㄦ粎鎲楅敓锟�
闁哄瀛╁Σ鎴澝虹€b晛鐦滈悹浣筋嚋缁辨繈宕楅妸鈺傛〃閻犱礁寮跺绶維T闁告艾瀚伴妴宥夊礉閻旇鍘撮柛婊冭嫰娴兼劗绮欑€n亞瀹夐柣銏╃厜缁辨繈宕濋埡鍌氫憾闊浂鍋婇埀顒傚枙閸ゆ粎鈧冻闄勭敮澶愬箵椤″T閻犱焦宕橀鍛婃償閺冨倹鏆�...
- 閻忓繐瀚伴。鍫曞春閾忚鏀ㄩ柛鈺冾攰椤斿嫮鎷犻崜褉鏌�
濞戞挸娲g粭鈧Δ鍌浬戦妶濂哥嵁閸愬弶鍕鹃悹褍鍤栫槐婵囨交濞嗗海鏄傞悹鍥у⒔閳诲吋绋夋潪鎵☉闁革负鍔岄惃鐘筹紣閹寸偛螚闁哄牜鍨堕。顐﹀春閻旀灚浜i悘鐐存礃鐎氱敻鎳樺鍓х闁瑰灚鎸风粭鍛村锤濮橆剛鏉介柣銊ュ缁楁挻绋夊顒傚敤缁绢厸鍋�...
- 鐎甸偊鍠楃亸婵堜焊閸曨垼鏆ユ繛鏉戭儔閸f椽骞欏鍕▕闁糕晝顢婇鍕嫚閸撗€鏌ら柛姘墦濞夛拷
閻犳劦鍘洪幏閬嶅触閸儲鑲犻柡鍥ㄦ綑閻ゅ嫰骞嗛悪鍛缂傚啯鍨甸崹搴ㄥΥ娓氣偓椤e墎鎷崣妯哄磿闁靛棔鑳堕妵姘枖閵忕姵鐝ら柕鍡曟娣囧﹪宕i柨瀣埍闁挎稑鏈崹婊呮啺娴e湱澹夐柡宥夘棑缁ㄥ潡鏌呴敓锟�...