一种多用途智能卡发卡机及其发卡方法

文档序号:6447766阅读:346来源:国知局
专利名称:一种多用途智能卡发卡机及其发卡方法
技术领域
本发明涉及一种多用途智能卡发卡机及其发卡方法。
背景技术
由于智能卡具有很强的安全机制,在很多领域已得到了广泛的应用,如电信行业、金融行业、社会保障、商业消费、交通行业、电子加油、电子政务、电子商务、校园应用、门禁等。当具有各种功能的智能卡被使用前,需要经过智能卡个人化的过程。现在存在两种典型的发卡方法,即集中式发卡和立即式发卡。在某些领域智能卡的发行量不大,并且要求发卡响应周期短,最好要求能递交申请后立刻领到智能卡,在这些领域采用立即式发卡的方式,立即式发卡采用一台电脑连接一到两个智能卡读写器并由智能卡供卡商提供专用的个人化软件的技术方案。
在电信、金融和社会保障等行业,智能卡发行量很大,这种百万级的发卡量不可能依靠手工方式完成智能卡的发行,必须采用集中式发卡,依靠专用的大型发卡机硬件平台完成。采用集中式发卡必须事先由发卡商的营业网点收集客户个人信息并汇总到数据库,然后由相应的发卡机构根据汇总的客户个人信息制定发卡任务,在大型发卡机上完成批量发卡。
如图1所示,现有的大型发卡机的智能卡个人化系统一般如以下结构,它由中央发卡控制系统11、智能卡个人化数据库12、智能卡子系统总线通讯模块13、编程站14、密钥站15、密钥卡16、空白智能卡17、第三方驱动程序18等构成。
其中,中央发卡控制系统11负责智能卡数据流格式设置、卡片位置设置、发卡机设置、发卡任务的制定以及智能卡个人化软件的选择,并读取智能卡个人化数据库控制智能卡在密钥站和编程站上发卡;智能卡子系统总线通讯模块13负责在中央发卡控制系统和密钥站与编程站间交换数据,调度智能卡的个人化;编程站14根据智能卡个人化数据和从密钥站提供的密钥明文数据个人化空白智能卡;密钥站15按规定的安全策略保存密钥数据并向编程站提供密钥内容,实施智能卡的安全访问和控制策略;密钥站和编程站中分别有一个专用驱动程序驻留在内存中对密钥卡和空白智能卡执行读取或写入操作。
在这种技术方案下的发卡流程大致如下发行商指定具体智能卡业务内容,设计好智能卡的卡内文件结构和文件内容;为新的智能卡业务基于上述的硬件平台开发智能卡个人化软件,把设计好的智能卡个人化软件保存在中央发卡控制系统所在的工作站上;启动中央发卡控制系统,通过授权认证后,中央发卡控制系统指定智能卡个人化软件并把个人化软件包下载到编程站和密钥站;在编程站和密钥站卡槽中分别放置空白智能卡和密钥卡(在大型发卡机上空白智能卡是自动进槽的),启动发卡机执行发卡任务;中央发卡控制系统从智能卡个人化数据库中连续的读取个人数据记录并下载到编程站中,由个人数据记录驱动并执行空白智能卡的个人化。
该种技术方案为每种智能卡业务编写个人化软件,这些个人化软件之间不具备兼容性,甚至同一种业务的任何修改,都要对个人化软件进行修改,这种开发方式在兼容性上具有以下六点不可克服的技术难点1、智能卡业务种类的差别专用的智能卡个人化软件只为特定的智能卡业务发卡,而不同的业务种类具有不同的应用领域和范围,具体到细节就是不同的业务要求设计不同的卡内文件结构和文件内容。
2、智能卡指令集各不相同智能卡操作系统一般情况包含三类指令集平台指令、行业规范指令和个人化指令。不同行业智能卡操作系统的行业规范指令集和个人化指令集不统一;同行业的不同公司的操作系统的个人化指令集没有统一的规范;对指令返回的错误码的规定也是不同的。
3、密钥和密码的安装变化范围很大密钥和密码的安装是智能卡个人化过程中最难的部分。密钥和密码安装指令属于个人化指令,在不同智能卡操作系统实现中是不一样的;不同的智能卡操作系统的安全策略和其内部的安全状态机的实现是与智能卡操作系统相关的,这决定了采用不同智能卡操作系统的智能卡的密钥和密码安装过程中,安全流程和加密算法是不一样的。
4、基本加密算法和行业领域安全流程不同不同智能卡操作系统实现中采用不同的基本加密算法,在金融和电信行业的智能卡操作系统中,基本加密算法可采用DES、3DES、RSA、IDEA、A3、A5、A8等。不同的行业对会话加密、数字签名、鉴权认证、密钥分散、行业交易流程等安全过程的规定是行业相关的。
5、密钥站和编程站间的接口不可预见密钥站驱动程序提供给编程站驱动程序最重要的接口信息是对不同密钥的索引,由不同的密钥管理系统生成的密钥卡对保存在密钥卡中的密钥管理没有一个统一的规定,因此编程站驱动程序不能预测密钥站驱动程序提供的接口。
6、发卡硬件平台的不同现有的大型发卡机种类很多,每一种专业的发卡机其体系结构和开发环境是大不相同的,目前没有一种技术能适应种类繁多的发卡机平台,为每一种平台进行定制开发是现有技术不可避免的选择。
为了改变现有的发卡方式,本申请人在专利发明申请01126689.9中阐述了另外一种方案。该方案与上述的解决方案不同点在于对第三方智能卡个人化软件的开发方式进行了改进;该方案设计了一种脚本语言规则,利用脚本语言规则编写智能卡个人化流程输入文件,然后把流程输入文件翻译成一种等价的中间指令流数据文件;指令流格式的设计是为了降低流程输入文件的存储空间并方便解释器的实现;在编程站中编写指令流解释程序解释执行指令流数据文件;密钥站的驱动程序与总线通讯驱动程序要单独编写;在发卡时,个人化数据记录和指令流数据文件一起被下载到编程站,由编程站解释程序解释指令,读取个人化数据记录个人化空白智能卡。
但是,该技术方案仍然不能克服上述3、4、6等难题。另外其扩展功能受到了编程站解释程序的限制,引入指令流数据文件影响系统性能,如利用脚本语言编写安全流程算法,增加了编程站解释程序设计复杂度,同时解释执行加密算法过程,性能会受到很大影响,并且会导致指令流数据文件太大,极端情况下会因为指令流数据文件太大而无法执行,因为编程站的内存空间是很有限的;密钥站与总线通讯模块在更换密钥管理系统后要重新编写,增加了开发周期和成本。

发明内容
本发明是为了解决现有的大型发卡机种类繁多、智能卡发卡机编程复杂、更换密钥管理系统困难、开发成本大的缺点,而提供的一种多用途智能卡发卡机及其发卡方法,该多用途智能卡发卡机及其发卡方法解决了因为智能卡的技术平台、安全策略、应用领域的行业规范、业务范围以及发卡机硬件平台的差异性带来的异构性和不兼容性的问题,从而使定制的发卡软件包通用性增强。
本发明采取的技术方案是多用途智能卡发卡机,包括中央发卡控制系统、智能卡个人化数据库、总线通讯模块、编程站、密钥站、密钥卡、空白智能卡;智能卡个人化数据库的输出与中央发卡控制系统的输入端连接,中央发卡控制系统的输出端与总线通讯模块连接,总线通讯模块的输出通过数据总线连接到到编程站和密钥站;所述的总线通讯模块通过总线通讯驱动程序在中央发卡控制系统和编程站和密钥站间交换数据;所述的编程站和密钥站分别包含编程站驱动程序和密钥站驱动程序,并通过编程站驱动程序和密钥站驱动程序分别驱动智能卡和密钥卡;其特点是,还包括流程设计子系统,所述的流程设计子系统输出总线通讯驱动程序到总线通讯模块、以及编程站驱动程序到编程站和密钥站驱动程序到密钥站。
上述多用途智能卡发卡机,其中,所述的流程设计子系统包括G语言编译和硬件适配模块、G语言语法规则生成器、个人化流程输入模块、以及至少一个密钥站流程输入模块(根据发卡机的物理配置可设置密钥站A、B、C、D等,相应的,每个密钥站要对应不同的密钥站流程输入模块);所述的G语言语法规则生成器输出G语言语法规则分别到个人化流程输入模块、密钥站流程输入模块,再分别由个人化流程输入模块、密钥站流程输入模块输出到G语言编译和硬件适配模块,由G语言编译和硬件适配模块输出到总线通讯模块和编程站以及密钥站。
上述多用途智能卡发卡机,其中,所述的个人化流程输入模块和密钥站流程输入模块各包括接收消息模块、命令帧辅助计算模块、比特流生成器、智能卡命令帧处理模块、发送响应消息模块,各模块顺序连接。
上述多用途智能卡发卡机,其中,所述的G语言编译和硬件适配模块包括工程文件属性配置模块、创建工程文件模块、G语言编译单元、外部数据表单、参数输入模块、系统配置模块、发卡机硬件适配器;所述的工程文件属性配置模块的输出与创建工程文件模块的输入连接,创建工程文件模块的输出与G语言编译单元连接,外部数据表单与G语言编译单元双向连接,参数输入模块的输出与系统配置模块连接,系统配置模块的输出分别与G语言编译单元和发卡机硬件适配器连接,G语言编译单元的代码生成模块分别输出Makefile文件和流程代码,发卡机硬件适配器的框架生成器和总线通讯模块生成器分别输出框架代码和总线通讯驱动程序。
上述多用途智能卡发卡机,其中,所述的G语言编译单元包括词法分析模块、语法分析模块、语义分析模块、G语言函数映射模块、代码生成模块,顺序连接;所述的G语言编译器的创建工程文件模块的输出连接到词法分析模块;所述代码生成模块的输出分别与Makefile文件模块和流程代码模块连接。
上述多用途智能卡发卡机,其中,所述的外部数据表单包括错误表、语法树、符号表。
上述多用途智能卡发卡机,其中,所述的发卡机硬件适配器包括总线通讯模块生成器、平台函数映射模块、框架生成器;所述的总线通讯模块生成器输出总线通讯驱动程序代码;所述的平台函数映射模块输出与发卡机硬件平台相关的G语言函数到高级语言函数的映射规则表到G语言编译单元的G语言函数映射模块;所述的框架生成器输出框架代码。
多用途智能卡发卡机的发卡方法,其特点是,包括以下步骤a、在PC上打开G语言编译和硬件适配模块;b、创建工程文件模块为新的智能卡业务创建新的工程文件,根据具体的智能卡业务,添加工程子项目到该工程文件;c、工程文件属性配置模块为新的工程文件设置相关属性;d、参数输入模块对新创建的工程文件进行相关的应用环境配置;
e、使用G语言语法规则为工程文件中的每个子项目编写流程输入模块并保存在PC上;f、通过G语言编译和硬件适配模块编译该工程文件,编译后生成编程站驱动程序、密钥站驱动程序源代码以及输出总线通讯驱动程序源代码和Makefile文件;g、利用目标机的开发环境编译G语言编译和硬件适配模块输出的源代码,生成目标机上的可执行文件,把可执行文件保存在中央发卡控制系统所在的工作站上;h、启动中央发卡控制系统,通过授权认证后,中央发卡控制系统指定智能卡个人化软件包并把个人化软件下载到编程站和密钥站;i、在编程站和密钥站卡槽中分别放置空白智能卡和密钥卡,启动发卡机执行发卡任务;j、中央发卡控制系统从智能卡个人化数据库中连续读取个人化数据记录下载到编程站中,以个人化数据记录驱动并执行空白智能卡的个人化。
上述多用途智能卡发卡机的发卡方法,其中,d步骤所述的参数输入模块对新创建的工程文件进行相关的应用环境配置包括如下五种情况d-1物理平台参数配置模块设置目标发卡机的物理平台参数信息,包括编程站和密钥站的数目以及对应的地址名;d-2用户卡参数配置设置特定的智能卡操作系统相关参数,包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择;d-3密钥卡参数配置设置特定的密钥卡操作系统相关参数,包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择;d-4系统消息配置模块设置整个系统定义的消息集合,并把消息名和消息编码映射起来,然后添加到G语言编译和硬件适配模块符号表中;d-5自定义函数配置模块导入本次应用开发中要用到的扩展函数。
上述多用途智能卡发卡机的发卡方法,其中,d-5步骤所述的自定义函数配置模块导入本次应用开发中要用到的扩展函数采用如下方法进行扩展d-5-1自定义函数配置模块提供扩展的G语言函数的语法声明,并把它插入到G语言编译和硬件适配模块的符号表;d-5-2自定义函数配置模块同时提供对应的高级语言函数的语法声明,把语法声明保存在G语言编译和硬件适配模块的系统配置模块;d-5-3自定义函数配置模块设置扩展的G语言函数到高级语言函数的参数映射规则表,保存在系统配置模块中;d-5-4自定义函数配置模块提供对应的高级语言函数的实现文件和依赖文件信息,保存在系统配置模块中;上述多用途智能卡发卡机的发卡方法,其中,e步骤所述的使用G语言语法规则为工程文件中的每个子项目编写流程输入模块包括如下方法采用比特流生成器生成智能卡命令帧,比特流生成器执行如下的操作e-1如果输入比特流生成器单个的常量或变量,根据常量或变量的数据类型执行编码转换,然后插入到比特流缓冲区;e-2如果输入比特流生成器级连的多个常量或变量,按从左到右的顺序依次对常量或变量执行编码转换,插入到比特流缓冲区;e-3按级连的常量或变量的数据类型,对生成的比特流缓冲区执行类型推导。


本发明的具体性能特征由以下的实施例及其附图进一步描述。
图1是现有技术的结构示意图;图2是本发明的技术结构示意图;图3是流程设计子系统流程输入模块组成结构;图4是流程设计子系统比特流生成器工作过程;图5是G语言编译和硬件适配模块的组成结构;图6是G语言与某种高级语言类型等价列表;图7是G语言函数到高级语言函数映射规则(1);图8是G语言函数到高级语言函数映射规则(2);图9是基于DATACARD7000/9000大型发卡机平台上的实施例流程图。
具体实施方法本发明采用设计智能卡个人化流程制卡,该流程被编译成目标机的高级语言源代码,源代码随即被目标机编译器编译成发卡机可执行文件。在流程设计阶段,设计者使用统一的开发语言和编程模式,只须专注于智能卡的业务流程和智能卡的指令系统,而不用考虑各种大型发卡机的硬件平台和复杂的开发环境,从而完成智能卡个人化软件包的定制。
请参阅图2。本发明多用途智能卡发卡机,包括中央发卡控制系统11、智能卡个人化数据库12、总线通讯模块13、编程站14、密钥站15、密钥卡16、空白智能卡17;中央发卡控制系统11用于数据管理、格式设置和控制制卡过程;其中数据管理包括发卡输入数据的定义、截取、批量组织;格式设置包括智能卡部分的数据在数据流中的截取格式、卡片位置设置、机器设置、发卡任务的设置等;制卡是通过装入发卡数据生成批量发卡数据包发送给编程站处理卡片的过程。智能卡个人化数据库12是发卡个人信息的汇总并以一定格式存放,由中央发卡控制系统读取和管理,其输出与中央发卡控制系统11的输入端连接,中央发卡控制系统11的输出端与总线通讯模块13连接,总线通讯模块13的输出通过数据总线连接到到编程站14和密钥站15;编程站14是一个专用的智能卡读写器,用于对智能卡进行数据写入和个人化;密钥站15是一个专用的智能卡读写器,用于访问密钥卡,为智能卡个人化提供密钥来源。所述的总线通讯模块13通过总线通讯驱动程序在中央发卡控制系统11和编程站14和密钥站15间交换数据;所述的编程站14和密钥站15分别包含编程站驱动程序和密钥站驱动程序,并通过编程站驱动程序和密钥站驱动程序分别驱动智能卡17和密钥卡16;还包括流程设计子系统2,所述的流程设计子系统2输出总线通讯驱动程序到总线通讯模块13、以及编程站驱动程序到编程站14和密钥站驱动程序到密钥站15。
流程设计子系统2包括智能卡个人化流程描述语言G语言语法规则21、智能卡个人化流程输入模块22以及密钥站流程输入模块23、G语言编译和硬件适配模块24;G语言语法规则定义了一个完整的智能卡发卡描述语言,包括消息定义、消息结构定义、变量声明、函数声明、逻辑运算表达式、算术运算表达式、数组下标操作表达式、联接表达式、判断语句、循环语句、函数语句、赋值语句等语法单元;G语言编译和硬件适配模块负责编译按照G语言语法规则编写的流程输入文件,并输出密钥站驱动程序、编程站驱动程序和总线通讯驱动程序;G语言编译和硬件适配模块对流程输入文件执行词法分析、语法分析、语义分析以及代码生成,代码生成模块与发卡机硬件适配器配合,生成目标机的高级语言代码。
请参阅图3。智能卡个人化流程输入模块21和密钥站流程输入模块22相同,各包括接收消息31、命令帧辅助计算模块32、比特流生成器33、智能卡命令帧处理模块34、发送响应消息等模块35,顺序连接。
请参阅图4,上述智能卡流程设计子系统,其中个人化流程输入模块和密钥站流程输入模块包含比特流生成器生成智能卡命令帧的关键技术,比特流生成器工作过程如下智能卡个人化的典型过程是编程站向智能卡发送多条符合智能卡指令系统的命令帧集合,不同的业务和选用不同的智能卡,命令帧集合是不同的,对于读写密钥卡其过程也是相似的,方便的描述这种命令帧集合是构造不同的智能卡业务的关键。
比特流生成器33是描述命令帧集合的一种解决方案。比特流生成器是G语言语法规则中联接表达式的具体应用,比特流生成器具有如下特征(1)能把G语言中各种数据类型的常量或变量表示成比特流。
(2)能表示G语言中各种数据类型级联操作,把任意个不同类型的常量或变量连接在一起生成新的比特流缓冲区。
(3)具有类型推导功能,使得比特流生成器的输出可作为赋值语句的右边表达式和函数语句的实参表达式,解决类型等价和匹配的难题。
(4)能很方便的描述智能卡指令,使G语言编译器和G语言透明的处理各种智能卡指令。
请参阅图5。本发明G语言编译和硬件适配模块24包括工程文件属性配置模块241、创建工程文件模块242、G语言编译单元243、外部数据表单244、参数输入模块245、系统配置模块246、发卡机硬件适配器247;所述的工程文件属性配置模块的输出与创建工程文件模块的输入连接,创建工程文件模块的输出与G语言编译单元连接,外部数据表单与G语言编译单元双向连接,参数输入模块的输出与系统配置模块连接,系统配置模块的输出分别与G语言编译单元和发卡机硬件适配器连接,G语言编译单元的代码生成模块分别输出Makefile文件和流程代码,发卡机硬件适配器的框架生成器和总线通讯模块生成器分别输出框架代码和总线通讯驱动程序。
所述的外部数据表单244包括错误表2441、语法树2442和符号表2443。
所述的G语言编译单元243包括顺序连接的词法分析器2431、语法分析器2432、语义分析器2433、G语言函数映射器2434和代码生成器2435。
所述的参数输入模块245包括物理平台参数配置、用户卡参数配置、密钥卡参数配置、自定义函数配置、系统消息配置、平台接口消息配置、密码校验方式配置。
所述的发卡机硬件适配器247包括平台函数映射模块2471、框架生成器2472、和总线通讯模块生成器2473。总线通讯模块生成器2473输出总线通讯驱动程序代码;平台函数映射模块2471输出与发卡机硬件平台相关的G语言函数到高级语言函数的映射规则表到G语言编译单元的G语言函数映射模块;框架生成器2472输出框架代码。
请参阅图6、7、8,本发明G语言编译和硬件适配模块包含以下关键技术G语言编译和硬件适配模块中G语言函数映射模块实现G语言函数与高级语言函数混合编程的特征。
G语言函数可分为三种通用函数、平台函数、自定义函数。通用函数包含一些所有平台均可调用的基本函数,其对应的高级语言函数与平台无关;平台函数抽象了所有发卡机平台的操作函数和通讯函数,包括与低层智能卡的通讯函数和编程站或密钥站与系统总线的通讯函数,其对应的高级语言函数是平台相关的;自定义函数是用户扩充系统功能而自定义的G语言函数,自定义函数的个数和功能范围没有限制。
G语言函数本质上只是个函数声明,没有函数定义;在使用G语言函数前,首先要声明G语言函数,然后把G语言函数映射到对应的高级语言函数上;对于通用函数,系统执行缺省映射,对用户透明;对于平台函数,映射与选择的发卡机平台相关,这种映射对用户透明;对于自定义函数,用户决定映射其对应的高级语言函数。
G语言与高级语言等价类型列表如图6;G语言函数的映射规则如图7和图8,图7中G语言函数的返回值被映射到高级语言函数的参数中;图8中G语言函数的返回值被映射成高级语言函数的返回值。如图7左边部分是映射规则的G语言部分,G语言函数包括参数类型和返回值类型,以及参数和返回值被映射到相应高级语言函数参数的下标,下标表示该参数被映射到高级语言函数的哪个参数位置上;右边部分包括高级语言函数的参数类型定义及返回值类型定义;在高级语言函数参数中没被明确指明映射关系的,则该参数作为上个G语言函数参数的长度指示符;如果G语言函数的返回值为数组类型,该返回值被映射到高级语言函数的参数中并且其长度标识符作为该参数的下一个参数,在这种情况下,高级语言函数将缺失返回值类型映射,由高级语言的返回类型补充,因为G语言函数不处理错误,因此也就不需要返回值处理错误。
如图8,如果G语言函数的返回值为简单数据类型,该返回值直接映射到高级语言的返回值位置上;如果G语言函数前一个参数为数组类型,按规则高级语言函数对应参数位置下一个参数标识该参数的长度,但如果在映射表中,下一个参数被明确映射,则采用明确映射的参数而忽略缺省映射规则。这种映射的特点是函数名和函数参数均可以不一样,函数参数的个数和位置不匹配,但建立映射关系的参数域的参数类型必须匹配。
G语言函数与高级语言函数混合编程的特征解决了系统设计中的以下难题(1)系统可任意的增加新的G语言函数,扩充系统的功能和应用范围,如特殊的安全流程过程或一些特殊的功能模块;(2)G语言函数到高级语言函数的映射是动态的,这使得G语言系统平台函可以动态的映射到任意发卡机平台上特定的高级语言函数。
G语言编译和硬件适配模块的工作过程如下(1)编译器根据智能卡业务应用创建新的发卡应用工程文件;(2)设置新的发卡工程文件的属性,包括该工程文件包含的文件及文件名,所在目录,输出文件目录,文件的属性如文件属于编程站和密钥站等,保存该工程文件;(3)G语言编译和硬件适配模块选择具体的物理平台,以及物理平台的参数配置信息,如编程站的数目和密钥的数目编程站与密钥站的地址名等信息;
(4)对设计的智能卡业务流程进行配置,包括如下四种情况4-1.用户卡参数配置包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择,用户卡配置设置特定的智能卡操作系统相关参数;4-2.密钥卡参数配置包括可接受的智能卡命令状态字集合,取响应状态字集合和T0/T1通讯协议选择,密钥卡配置设置特定的密钥卡操作系统相关参数;4-3.系统消息配置模块设置整个系统定义的消息集合,并把消息名和消息编码映射起来,然后添加到G语言编译和硬件适配模块符号表中;4-4.自定义函数配置模块导入本次应用开发中要用到的扩展函数,自定义函数配置模块提供G语言函数的语法声明并把它插入到G语言编译和硬件适配模块符号表,提供对应的高级语言函数声明,并设置G语言函数到高级语言函数的映射规则表。映射规则如图7和图8所示;(5)打开工程文件并用G语言语法规则开发个人化流程输入模块和密钥站流程输入模块;(6)编译开发好的流程输入模块,一个完整的编译过程如下6-1.词法分析模块读入一个符号串,返回一个编译器预定义的记号和符号串属性;发生错误时错误信息添加到错误表并返回一个出错记号,消耗一个记号后继续分析;6-2.语法分析器取得下一个记号,使用递归下降分析的算法分析输入的记号是否符合G语言语法规则,如果符合则把新的记号添加到语法树并设置其节点属性,读入下一个记号;如果出错,采用应急方式算法进行错误处理,其基本机制是在每个语法单元的递归过程参数中增加一个同步记号集,在分析处理时,作为同步记号的记号在每次调用时被添加到这个集合中,该同步记号集记录下一条语句的记号的开始集合或本语句的后续集合;发生错误之后,把错误信息添加到错误表,读取下一个记号,如果下一个记号与同步记号集中的记号不匹配,跳过这个记号直到下一个记号与同步记号集中某个记号匹配,从这个记号重新开始语法分析;该算法不终止出错的编译过程,并且避免了错误级联和分析的死循环。
6-3.语义分析以语法分析器生成的语法树作为输入;语义分析阶段分为两个步骤,一是符号表的生成,二是G语言语法单元的类型检查;第一步是遍历语法树,把标识符插入到符号表,如变量,函数标识符等,把变量的类型,内存占用字节,初始化标志,读写属性以及函数的返回类型和长度,参数列表和消息的名字与编码属性添加到符号表中;符号表采用典型的哈希算法进行组织。第二步,为每条G语言语法单元编制属性文法等式,在遍历语法树时,配合符号表的标识符信息,对每条语法单元执行属性文法等式检查,如果遍历过程出现违背属性文法等式的情况,语义分析出现错误,把错误报告到错误表,然后继续执行语义分析。
6-4.代码生成阶段代码生成包括G语言到高级语言的等价翻译和与平台相关的框架代码的生成,两者共同构成最终的代码输出;平台相关的框架代码描述平台的头文件包含和系统函数声明,以及系统的主函数,主函数包括系统初始化过程和主消息分发函数;G语言到高级语言的等价翻译采用语法制导翻译原则,为每种G语言的语法单元编制代码输出符号的属性等式;其中消息声明,函数调用和联接表达式要采用特殊的处理;消息声明的高级语言输出包括三部分一是高级语言的函数声明;二是函数的实现;三是在主函数中的调用。高级语言的函数声明是消息声明的简单映射;函数的实现部分是对消息体进行翻译的代码输出;在主函数体中调用前,按消息声明的消息结构解析主消息分发函数接收的消息内容,然后调用消息声明对应的高级语言函数处理消息,发送响应消息;函数调用的翻译包括几个处理部分一是函数参数的处理;二是到高级语言函数的映射;三是根据高级语言函数的返回类型进行错误判断和异常处理;函数参数以联接表达式为表现形式,在映射到高级语言函数前必须把实参形式的联接表达式保存到参数变量中;到高级语言函数的映射包括映射表的查找和参数查表映射;最后是异常处理,根据高级语言函数声明返回类型,判断函数执行的状态并进行相应的错误处理。
联接表达式代码生成包括两个部分一是保存结果的中间变量定义;二是中间结果生成过程的代码输出。在处理流表达式前,根据要保存的中间结果的数量定义临时变量,这里包括一个合并相同变量的技巧以减少变量的定义;中间结果生成的代码输出根据联接表达式构成的元素的类型,执行内存拷贝,对于大于一字节的数据编码,执行编码转换。
6-5.总线通讯和控制模块代码生成这部分代码生成不属于编译器范畴,因此不能用G语言描述。在满足强约束条件下系统可以生成代码;约束条件如下6-5-1.编程站和密钥站与中央发卡控制系统间的消息定义集合必须是系统消息集合的子集;6-5-2.消息结构的定义按缺省规则约定;6-5-3.提供密钥卡相关的参数设置如密码的校验方式等。
采用本发明技术方案的情况下,发卡流程有别于现有技术的发卡流程,其包括以下步骤a、在PC上打开G语言编译和硬件适配模块;b、为新的智能卡业务创建新的工程文件,根据具体的智能卡业务,添加工程子项目到该工程文件;并输入相关的工程文件属性,如发卡机物理平台的选择、工程文件名、所在目录、是否创建总线通讯驱动程序、以及总线通讯驱动程序的文件名和所在目录;c、设置发卡机平台的物理配置参数,如编程站和密钥站的数目以及相应的地址名;d、为编程站或密钥站的子项目设置选用的智能卡和密钥卡的卡片属性参数,包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择,智能卡配置设置特定的智能卡操作系统相关参数;e、设置系统使用的确定的消息集合,确定消息声明集合设置整个系统定义的消息集,并把消息名和消息编码映射起来,然后添加到G语言编译和硬件适配模块符号表中;f、设置系统扩展的外部自定义函数,并设置相应的高级语言函数和映射规则表;自定义函数声明导入本次应用开发中扩展G语言函数;g、用G语言语法规则为工程文件中的每个子项目编写流程代码并保存在PC上;
h、编译工程文件,编译后生成智能卡个人化软件的全部源代码和Makefile文件以及总线通讯驱动程序;i、利用目标机的开发环境把G语言编译器输出的源代码编译生成目标机上可执行文件,把可执行文件保存在中央发卡控制系统所在的工作站上;j、启动中央发卡控制系统,通过授权认证后,中央发卡控制系统指定智能卡个人化软件包并把个人化软件下载到编程站和密钥站;k、在编程站和密钥站卡槽中分别放置空白智能卡和密钥卡(在大型发卡机上空白智能卡是自动进槽的),启动发卡机执行发卡任务;l、中央发卡控制系统从智能卡个人化数据库中连续的读取个人化数据记录下载到编程站中,以个人化数据记录驱动并执行空白智能卡的个人化。
如图9是本发明的在DATACARD7000/9000系列大型发卡机平台上的实施例流程图。
本实施例由PC机端流程设计子系统、大型发卡机控制台和个人化智能卡模块构成。例如使用斯伦贝谢的空白智能卡和密钥卡发行银行金融智能卡的工作流程如下1.设计发卡业务流程根据金融智能卡的应用需求设置G语言编译和硬件适配模块应用环境,如创建工程文件、选择发卡机平台、发卡机参数设置、智能卡参数设置、系统消息定义、外部函数定义等;根据智能卡业务内容设计卡内文件结构和文件内容,然后遵循斯伦贝谢智能卡的开发手册和密钥卡的开发手册以及G语言语法规则,开发金融智能卡的个人化流程文件和密钥站流程文件;编译个人化流程文件和密钥站流程文件,修正语法错误,输出编程站、密钥站驱动程序源代码和总线通讯驱动程序的源代码;编程站、密钥站驱动程序源代码由C51编译器编译生成目标文件,然后由DATACARD7000/9000开发环境把目标文件转换成发卡机环境可执行文件;总线通讯模块由OS/2平台的VISUAL AGE C++编译器编译总线通讯驱动程序输出动态连接库供中央发卡控制系统调用;把编程站和密钥站驱动程序可执行文件和总线通讯模块动态连接库文件以磁盘文件的形式拷贝到OS/2工作站;2.检验发卡业务流程的正确性在发卡机仿真器上下载密钥站驱动程序,插入密钥卡,通过仿真器发送命令到密钥卡,检查响应是否是否正确,如果不正确,根据仿真器返回的错误信息修改密钥站业务流程,重复上述步骤;在发卡机仿真器上下载编程站驱动程序,插入空白卡,通过仿真器发送个人化数据到编程站,编程站执行个人化过程,个人化完成后,检验被个人化的智能卡能否被金融卡检测平台正确读取。如果不正确,根据仿真器返回的错误信息修改个人化流程,重复上述步骤;最后在发卡机上进行综合测试;启动中央发卡控制系统,分别下载密钥站和编程站驱动程序到密钥站和编程站,试发行智能卡,检验被个人化的智能卡能否被金融卡检测平台正确读取。如果不正确,根据发卡机返回的错误信息修改个人化发卡流程;然后重复上述步骤;3.在大型发卡机上发卡经过授权认证后,启动控制台的中心发卡控制系统,制定发卡任务,选择上述的个人化软件下载到发卡机的编程站和密钥站;在发卡机的密钥站卡座上插入密钥卡,空白智能卡从添卡口自动导入;启动发卡任务,中央发卡控制系统发送校验密码命令到密钥站,密码校验成功后,中央发卡控制系统读取智能卡个人化数据记录,下载到发卡机编程站,由编程站驱动程序控制智能卡的个人化;中央发卡控制系统在个人化数据记录的驱动下调度编程站连续的发卡。
权利要求
1.多用途智能卡发卡机,包括中央发卡控制系统、智能卡个人化数据库、总线通讯模块、编程站、密钥站、密钥卡、空白智能卡;所述的中央发卡控制系统用于数据管理、格式设置和控制制卡过程;其中数据管理包括发卡输入数据的定义、截取、批量组织;格式设置包括智能卡部分的数据在数据流中的截取格式、卡片位置设置、机器设置、发卡任务的设置等;制卡是通过装入发卡数据生成批量发卡数据包发送给编程站处理卡片的过程;该中央发卡控制系统的输出端与总线通讯模块连接;所述的智能卡个人化数据库是发卡个人化信息的汇总、并以一定格式存放的数据文件,由中央发卡控制系统读取和管理,其输出与中央发卡控制系统的输入端连接;所述的总线通讯模块负责在中央发卡控制系统和编程站与密钥站间传输命令和数据信息;所述的编程站是一个专用的智能卡读写器,用于对智能卡进行数据写入和个人化;所述的密钥站是一个专用的智能卡读写器,用于访问密钥卡,为智能卡个人化提供密钥来源;其特征在于,还包括流程设计子系统,该流程设计子系统输出总线通讯驱动程序到总线通讯模块,并通过总线通讯驱动程序在中央发卡控制系统与编程站和密钥站之间交换数据;输出编程站驱动程序到编程站以驱动智能卡;输出密钥站驱动程序到密钥站,以驱动密钥卡。
2.根据权利要求1所述的多用途智能卡发卡机,其特征在于,所述的流程设计子系统包括G语言编译和硬件适配模块、G语言语法规则生成器、个人化流程输入模块、以及至少一个密钥站流程输入模块;所述的G语言语法规则生成器输出G语言语法规则分别到个人化流程输入模块、密钥站流程输入模块,再分别由个人化流程输入模块、密钥站流程输入模块输出到G语言编译和硬件适配模块,由G语言编译和硬件适配模块输出到总线通讯模块和编程站以及密钥站。
3.根据权利要求2所述的多用途智能卡发卡机,其特征在于,所述的个人化流程输入模块和密钥站流程输入模块各包括接收消息模块、命令帧辅助计算模块、比特流生成器、智能卡命令帧处理模块、发送响应消息模块,各模块顺序连接。
4.根据权利要求2所述的多用途智能卡发卡机,其特征在于,所述的G语言编译和硬件适配模块包括工程文件属性配置模块、创建工程文件模块、G语言编译单元、外部数据表单、参数输入模块、系统配置模块、发卡机硬件适配器;所述的工程文件属性配置模块的输出与创建工程文件模块的输入连接,创建工程文件模块的输出与G语言编译单元连接,外部数据表单与G语言编译单元双向连接,参数输入模块的输出与系统配置模块连接,系统配置模块的输出分别与G语言编译单元和发卡机硬件适配器连接,G语言编译单元的代码生成模块分别输出Makefile文件和流程代码,发卡机硬件适配器的框架生成器和总线通讯模块生成器分别输出框架代码和总线通讯驱动程序。
5.根据权利要求4所述的多用途智能卡发卡机,其特征在于,所述的G语言编译单元包括词法分析模块、语法分析模块、语义分析模块、G语言函数映射模块、代码生成模块,顺序连接;所述的G语言编译器的创建工程文件模块的输出连接到词法分析模块;所述代码生成模块的输出分别与Makefile文件模块和流程代码模块连接。
6.根据权利要求4所述的多用途智能卡发卡机,其特征在于,所述的发卡机硬件适配器包括总线通讯模块生成器、平台函数映射模块、框架生成器;所述的总线通讯模块生成器输出总线通讯驱动程序代码;所述的平台函数映射模块输出与发卡机硬件平台相关的G语言函数到高级语言函数的映射规则表到G语言编译单元的G语言函数映射模块;所述的框架生成器输出框架代码。
7.多用途智能卡发卡机的发卡方法,其特征在于,包括以下步骤a、在PC上打开G语言编译和硬件适配模块;b、创建工程文件模块为新的智能卡业务创建新的工程文件,根据具体的智能卡业务,添加工程子项目到该工程文件;c、工程文件属性配置模块为新的工程文件设置相关属性;d、参数输入模块对新创建的工程文件进行相关的应用环境配置;e、使用G语言语法规则为工程文件中的每个子项目编写流程输入模块并保存在PC上;f、通过G语言编译和硬件适配模块编译该工程文件,编译后生成编程站驱动程序、密钥站驱动程序源代码以及输出总线通讯驱动程序源代码和Makefile文件;g、利用目标机的开发环境编译G语言编译和硬件适配模块输出的源代码,生成目标机上的可执行文件,把可执行文件保存在中央发卡控制系统所在的工作站上;h、启动中央发卡控制系统,通过授权认证后,中央发卡控制系统指定智能卡个人化软件包并把个人化软件下载到编程站和密钥站;i、在编程站和密钥站卡槽中分别放置空白智能卡和密钥卡,启动发卡机执行发卡任务;j、中央发卡控制系统从智能卡个人化数据库中连续读取个人化数据记录下载到编程站中,以个人化数据记录驱动并执行空白智能卡的个人化。
8.根据权利要求7所述的多用途智能卡发卡机的发卡方法,其特征在于,d步骤所述的参数输入模块对新创建的工程文件进行相关的应用环境配置包括如下五种情况d-1物理平台参数配置模块设置目标发卡机的物理平台参数信息,包括编程站和密钥站的数目以及对应的地址名;d-2用户卡参数配置设置特定的智能卡操作系统相关参数,包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择;d-3密钥卡参数配置设置特定的密钥卡操作系统相关参数,包括可接受的智能卡命令响应状态字集合,取响应状态字集合和T0/T1通讯协议选择;d-4系统消息配置模块设置整个系统定义的消息集合,并把消息名和消息编码映射起来,然后添加到G语言编译和硬件适配模块符号表中;d-5自定义函数配置模块导入本次应用开发中要用到的扩展函数。
9.根据权利要求8所述的多用途智能卡发卡机的发卡方法,其特征在于,d-5步骤所述的自定义函数配置模块导入本次应用开发中要用到的扩展函数采用如下方法进行扩展d-5-1自定义函数配置模块提供扩展的G语言函数的语法声明,并把它插入到G语言编译和硬件适配模块的符号表;d-5-2自定义函数配置模块同时提供对应的高级语言函数的语法声明,把语法声明保存在G语言编译和硬件适配模块的系统配置模块;d-5-3自定义函数配置模块设置扩展的G语言函数到高级语言函数的参数映射规则表,保存在系统配置模块中;d-5-4自定义函数配置模块提供对应的高级语言函数的实现文件和依赖文件信息,保存在系统配置模块中;
10.根据权利要求7所述的多用途智能卡发卡机的发卡方法,其特征在于,e步骤所述的使用G语言语法规则为工程文件中的每个子项目编写流程输入模块包括如下方法采用比特流生成器生成智能卡命令帧,比特流生成器执行如下的操作e-1如果输入比特流生成器单个的常量或变量,根据常量或变量的数据类型执行编码转换,然后插入到比特流缓冲区;e-2如果输入比特流生成器级连的多个常量或变量,按从左到右的顺序依次对常量或变量执行编码转换,插入到比特流缓冲区;e-3按级连的常量或变量的数据类型,对生成的比特流缓冲区执行类型推导。
全文摘要
本发明公开了多用途智能卡发卡机及其发卡方法,包括中央发卡控制系统、智能卡个人化数据库、智能卡子系统总线通讯模块、编程站、密钥站、密钥卡、空白智能卡;其特点是,还包括流程设计子系统,所述的流程设计子系统分别输出总线通讯驱动程序到总线通讯模块、以及编程站驱动程序到编程站和密钥站驱动程序密钥站。
文档编号G06F13/14GK1521658SQ0311535
公开日2004年8月18日 申请日期2003年2月12日 优先权日2003年2月12日
发明者肖志明 申请人:肖志明
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1