智能卡数据压缩/解压装置以及写/读卡设备的制作方法

文档序号:6422778阅读:115来源:国知局
专利名称:智能卡数据压缩/解压装置以及写/读卡设备的制作方法
技术领域
本发明涉及一种数据压缩/解压装置,具体地,本发明涉及一种压缩/解压智能卡数据的装置,以及使用该装置的写/读卡设备。
背景技术
目前,智能卡的应用十分广泛,例如信用卡,交通卡等。随着智能卡业务的发展,需要智能卡能够存储越来越多的数据。在这种背景下,存在着现有的智能卡的存储容量不能满足实际的业务需要的问题。以交通卡为例,由于交通管理局要求在卡中存储驾驶员的档案信息和其他的明细记录,卡片的存储容量不能够满足要求,如果全部更换新卡,则一方面增加了银行的投入,另一方面要抛弃目前使用的交通卡,不再使用,这就造成了浪费。

发明内容
鉴于上述问题,提出了本发明。本发明的一个目的是提供一种智能卡数据压缩/解压装置,该装置能够在数据写入智能卡之前对其进行压缩,并且能够在从只能卡中读出数据时对数据进行解压,也就是说本发明仅仅对现有的写/读卡设备进行改进,而对相关的其他设备没有任何影响。
在本发明的一个方面,提出了一种智能卡数据压缩装置,包括第一输入单元,用于两个字符一组地依次输入具有预定长度的ASCII字符;第一比较器,用于对一组字符中的高位字符和预定的多个数值进行比较,以确定该高位字符的范围;第一减法器,用于根据所述高位字符的范围进行相应的减法操作,并输出减法结果;乘法器,用于将所述减法结果乘以十六进制数‘10’,产生第一临时变量;第二比较器,用于对该组字符中的低位字符和预定的多个数值进行比较,以确定该低位字符的范围;第二减法器,用于根据所述低位字符的范围进行相应的减法操作,输出第二临时变量;以及第一加法器,用于将所述第一临时变量与所述第二临时变量相加,输出压缩数据。
应用本发明第一方面的智能卡数据压缩装置,能够将要写入其中的数据压缩到大约原来的50%,这大大节约了存储空间,使得不用更换新的卡片就能够满足新业务对卡的存储容量的要求。
在本发明的第二方面,提出了一种智能卡数据解压装置,包括第二输入单元,用于按照字节输入具有预定长度的压缩数据;除法器,用于将输入的一个字节数据除以十六进制数‘10’,产生除法结果;第一‘与’电路,用于将所述的除法结果和十六进制数‘0F’进行‘与’操作,输出第三临时变量;第三比较器,用于将所述第三临时变量与一个预定的数值相比较以确定其范围;第二加法器,用于根据所述第三临时变量的范围进行相应的加法操作,输出第一字符;第二‘与’电路,用于将所述输入的字节和十六进制数‘0F’进行‘与’操作,输出第四临时变量;第四比较器,用于将所述的第四临时变量与一个预定的数值相比较以确定其范围;第三加法器,用于根据所述第四临时变量的范围进行相应的加法操作,输出第二字符;以及输出单元,用于依次输出第一字符和第二字符。
应用本发明第二方面的智能卡数据解压装置,能够对经过第一方面的智能卡数据压缩装置压缩的数据进行解压,然后提供给其他的设备,使得不用对相关的设备进行改动。
在本发明的第三方面,提出了一种包括数据压缩装置和数据解压装置的写/读卡设备。所述数据压缩装置和数据解压装置对应于上述的智能卡数据压缩装置和智能卡数据解压装置。
利用上述结构,能够将要写入智能卡的数据量压缩到原来的50%,并且在从其中读出数据时,对数据进行解压,然后提供给其他的设备,而不用对其他的设备进行改动。


通过阅读下面结合附图所做的详细说明,能够更清楚地理解本发明上面的特性,目的和其他优点,其中图1是根据本发明实施例的智能卡数据压缩装置的结构图;图2是根据本发明实施例的智能卡数据解压装置的结构图;图3是根据本发明实施例的智能卡数据压缩装置的工作流程图;图4是根据本发明实施例的智能卡数据解压装置的工作流程图;图5是根据本发明实施例的智能卡数据压缩装置的另一结构图。
具体实施例方式
下面参照附图,通过示意性的实施例对本发明进行详细地说明。出于清楚说明的目的,相同的组成部分或者单元在不同的附图中以相同或者相似的附图标记来表示,并且在下面的说明中省略了对本发明来说是不必要的细节和内容,因为这样会导致本发明的主题变得不清楚。
图1示出了根据本发明实施例的智能卡数据压缩装置的结构示意图。
如图1所示,本发明的智能卡数据压缩装置包括第一输入单元100,用于两个一组地依次输入具有预定长度的ASCII字符;第一比较器102,用于对一组字符中的高位字符和预定的多个数值进行比较,以确定该高位字符的范围;第一减法器106,用于根据所述高位字符的范围进行相应的减法操作,并输出减法结果;乘法器110,用于将所述减法结果乘以十六进制数‘10’,产生第一临时变量;第二比较器104,用于对该组字符中的低位字符和预定的多个数值进行比较,以确定该低位字符的范围;第二减法器108,用于根据所述低位字符的范围进行相应的减法操作,输出第二临时变量;第一加法器112,用于将所述第一临时变量与所述第二临时变量相加,输出压缩数据。
通常写入智能卡的数据是ASCII字符,并且限于0-9,a-f和A-F的范围,并且默认a-f和A-F代表的含义相同。因此,本发明正是针对这种特殊的数据进行压缩,以满足对存储空间的要求。
因此,在本发明的智能卡数据压缩装置中,在第一比较器102和104中将一组字符中的高位字符和低位字符分别与0,9,A和F的ASCII码值相比较,以确定所述高位字符和低位字符的范围。
如果输入的一组字符中的高位字符是字符0-9之一,也就是说该字符在字符0-9的范围中,则用该高位字符的ASCII码值减去十六进制数‘30’;如果该高位字符落在A-F的范围中,则用该高位字符的ASCII码值减去十六进制数‘37’。上述相减的结果称为减法结果。然后在乘法器110中,将该减法结果乘以十六进制数‘10’,同样,如果输入的该组字符中的低位字符是字符0-9之一,则用该高位字符的ASCII码值减去十六进制数‘30’;如果该低位字符落在A-F的范围中,则用该低位字符的ASCII码值减去十六进制数‘37’。上述减法结果称为第二临时变量。然后在第一加法器112中,将所述第一临时变量与所述第二临时变量相加,产生压缩数据,并输出。对于后续的字符,所进行的压缩处理与上述的相同,因此不再进行详细说明。
此外,在本发明的智能卡数据压缩装置中,乘法器110可以用移位寄存器来代替,因为这里与十六进制数‘10’相乘,实际上相当于将第一临时变量左移4位。
图2示出了本发明实施例的智能卡数据解压装置的示意结构图。如图2所示,在本发明中,智能卡数据解压装置包括第二输入单元200,用于按照字节输入具有预定长度的压缩数据;除法器202,用于将输入的一个字节数据除以十六进制数‘10’,产生除法结果;第一‘与’电路,用于将所述的除法结果和十六进制数‘0F’进行‘与’操作,输出第三临时变量;第三比较器210,用于将所述第三临时变量与一个预定的数值相比较以确定其范围;第二加法器214,用于根据所述第三临时变量的范围进行相应的加法操作,输出第一字符;第二‘与’电路,用于将所述输入的字节和十六进制数‘0F’进行‘与’操作,输出第第四临时变量;第四比较器,用于将所述的第四临时变量与一个预定的数值相比较以确定其范围;第三加法器212,用于根据所述第四临时变量的范围进行相应的加法操作,输出第二字符;输出单元216,用于依次输出第一字符和第二字符。对于后续的字节数据,执行与上述相同的操作,知道该压缩数据全部被解压。
在本发明的智能卡数据解压装置中,除法器202将输入的数据字节除以十六进制数‘10’,然后在第一‘与’电路206中和十六进制数‘0F’进行‘与’操作,输出第三临时变量。
接下来,第三比较器210对所述第三临时变量和一个预定的数值进行比较,以确定其所处的范围,具体来说,对所述第三临时变量与十六进制数‘30’进行比较,如果小于该预定数值,则在第二加法器214中将该第三临时变量加上十六进制数‘37’,否则加上十六进制数‘30’,然后输出第一字符。
同样地,第二‘与’电路204将输入的数据字节和十六进制数‘0F’进行‘与’操作,输出第四临时变量。然后在第四比较器208中与十六进制数‘30’进行比较,如果小于该数值,则在第三加法器212中将该第四临时变量加上十六进制数‘37’,否则加上十六进制数‘30’,然后输出第二字符。最后,输出单元216依次输出第一字符和第二字符,从而将输入的一个数据字节解压缩为两个字符。
同样,在本发明的智能卡数据压缩装置中,除法器202可以用移位寄存器来代替,因为这里除以十六进制数‘10’,实际上相当于将输入的数据字节右移4位。
下面操作附图3和4对本发明的智能卡数据压缩装置和智能卡数据解压装置的工作流程进行详细的说明。
图3是根据本发明实施例的智能卡数据压缩装置的工作流程图。图4是根据本发明实施例的智能卡数据解压装置的工作流程图。如图3所示,在压缩处理开始之后,在步骤S310,第一输入装置100将具有预定长度的ASCII字符串两个两个读入进来,例如ASCII字符‘A3’。然后在步骤S312,第一比较器102将该两个一组的字符中的高位字符与多个预定的数值进行比较,也就是与字符0,9,A和F的ASCII码值进行比较,以确定该高位字符的范围。对于字符‘A3’,高位字符‘A’显然处于A-F的范围之中。
在确定了高位字符的范围之后,由于该高位字符落在A-F的范围之中,将该高位字符减去十六进制数‘37’,产生差值。这里将字符‘A’的ASCII码值减去十六进制数‘37’,得到的差值为十六进制数‘A’。
接下来在步骤S316中,乘法器110将该差值乘以十六进制数‘10’,将相乘得到的结果称为第一临时变量,即十六进制数‘A0’。
在步骤S318,对于该组字符中的低位字符进行相同的处理。也就是,第二比较器104将该两个一组的字符中的低位字符与多个预定的数值进行比较,也就是与字符0,9,A和F的ASCII码值进行比较,以确定该低位字符的范围。这里,低位字符‘3’显然处于0-9的范围之中。
在确定了低位字符的范围之后,由于处于0-9的范围中,则在步骤S320,第一减法器106将该低位字符的ASCII码值减去十六进制数‘30’,产生第二临时变量,为十六进制数‘3’。
最后,在步骤S322,第一加法器112将该第一临时变量和第二临时变量相加,输出压缩数据。
此外,在上述的压缩过程中,要求输入的ASCII字符串必须是偶数个。对于实际中出现的奇数个字符的情况,如果最后仅仅读入一个字符,则直接在该字符后补上字符‘F’,从而克服了奇数个字符的问题。
图4示出了解压过程,在解压开始之后,在步骤S410,第二输入单元200一个字节一个字节地读取具有预定长度的数据,例如读入一个字节的数据‘A3’。
然后,在步骤412,除法器202,将该读入的数据字节除以十六进制数‘10’,产生除法结果。之后,在步骤S414,第一‘与’电路206将该除法结果和十六进制数‘0F’进行‘与’操作,产生第三临时变量,这里为十六进制数‘0A’。接下来在步骤S416,第二‘与’电路204将所如的数据字节直接和十六进制数‘0F’进行‘与’操作,产生第四临时变量,即十六进制数‘03’。
在步骤S418,分别在第三比较器210和第四比较器208中对第三临时变量和第四临时变量与预定的一个数值,即十六进制数‘0A’相比较,确定第三临时变量和第四临时变量的范围。
在步骤S420,如果大于该预定数值,则将相应的临时变量加上十六进制数‘37’,否则加上十六进制数‘30’,分别输出得到第一和第二字符,即ASCII字符‘A3’。
最后在步骤S422,输出单元216依次输出上述的第一和第二字符。对于后续的数据字节,执行相同的解压过程。
此外,由于a-f和A-F含义等同,所以在一串字符中会出现小写字符,为了避免混淆,可以在输入装置后设置一个转换单元114,如图5所示,这样可以消除读入的字符串中既存在大写字符A-F,又出现小写字符a-f的情况。
尽管出于说明的目的,披露了本发明的优选实施例,但本领域中的技术人员可以知道在不脱离本发明的范围的情况下,各种修改、增加和替代都是可能的。因此,本发明并不仅限于上述实施例,而是由所附权利要求及完全范围内的等同物来限定。
权利要求
1.一种智能卡数据压缩装置,包括第一输入单元,用于两个字符一组地依次输入具有预定长度的ASCII字符;第一比较器,用于对一组字符中的高位字符和预定的多个数值进行比较,以确定该高位字符的范围;第一减法器,用于根据所述高位字符的范围进行相应的减法操作,并输出减法结果;乘法器,用于将所述减法结果乘以十六进制数‘10’,产生第一临时变量;第二比较器,用于对该组字符中的低位字符和预定的多个数值进行比较,以确定该低位字符的范围;第二减法器,用于根据所述低位字符的范围进行相应的减法操作,输出第二临时变量;以及第一加法器,用于将所述第一临时变量与所述第二临时变量相加,输出压缩数据。
2.根据权利要求1所述的智能卡数据压缩装置,还包括设置在第一输入单元后面的转换单元,用于将输入的小写字符转换成相应的大写字符。
3.根据权利要求1所述的智能卡数据压缩装置,所述乘法器是移位寄存器,用于将所述第一临时变量左移四位。
4.根据权利要求1-3之一所述的智能卡数据压缩装置,其中,所述多个预定的数值是字符0,9,A和F的ASCII码值。
5.根据权利要求1-3之一所述的智能卡数据压缩装置,其中,如果所述高位字符或低位字符处于0-9的范围中,则所述第一减法器或者第二减法器将所述高位字符或低位字符减去十六进制数‘30’。
6.根据权利要求1-3之一所述的智能卡数据压缩装置,其中,如果所述高位字符或低位字符处于A-F的范围中,则所述第一减法器或者第二减法器将所述高位字符或低位字符减去十六进制数‘37’。
7.一种智能卡数据解压装置,包括第二输入单元,用于按照字节输入具有预定长度的压缩数据;除法器,用于将输入的一个字节数据除以十六进制数‘10’,产生除法结果;第一‘与’电路,用于将所述的除法结果和十六进制数‘0F’进行‘与’操作,输出第三临时变量;第三比较器,用于将所述第三临时变量与一个预定的数值相比较以确定其范围;第二加法器,用于根据所述第三临时变量的范围进行相应的加法操作,输出第一字符;第二‘与’电路,用于将所述输入的字节和十六进制数‘0F’进行‘与’操作,输出第第四临时变量;第四比较器,用于将所述的第四临时变量与一个预定的数值相比较以确定其范围;第三加法器,用于根据所述第四临时变量的范围进行相应的加法操作,输出第二字符;以及输出单元,用于依次输出第一字符和第二字符。
8.根据权利要求7所述的智能卡数据解压装置,其中所述乘法器是移位寄存器,用于将所述第三临时变量右移四位。
9.根据权利要求7所述的智能卡数据解压装置,其中所述一个预定的数值是十六进制数‘0A’。
10.根据权利要求7或8所述的智能卡数据解压装置,其中,如果所述第三临时变量或第四临时变量处于0-9的范围中,则所述第二加法器或者第三加法器将所述第三临时变量或第四临时变量加上十六进制数‘30’。
11.根据权利要求7或8所述的智能卡数据解压装置,其中,如果所述第三临时变量或第四临时变量处于A-F的范围中,则所述第二加法器或者第三加法器将所述第三临时变量或第四临时变量加上十六进制数‘37’。
12.一种写/读卡设备,包括用于对写入卡的数据进行压缩的数据压缩装置和用于对从卡中读出的数据进行解压的数据解压装置;所述数据压缩装置包括第一输入单元,用于两个一组地依次输入具有预定长度的ASCII字符;第一比较器,用于对一组字符中的高位字符和预定的多个数值进行比较,以确定该高位字符的范围;第一减法器,用于根据所述高位字符的范围进行相应的减法操作,并输出减法结果;乘法器,用于将所述减法结果乘以十六进制数‘10’,产生第一临时变量;第二比较器,用于对该组字符中的低位字符和预定的多个数值进行比较,以确定该低位字符的范围;第二减法器,用于根据所述低位字符的范围进行相应的减法操作,输出第二临时变量;以及第一加法器,用于将所述第一临时变量与所述第二临时变量相加,输出压缩数据;所述数据解压装置包括第二输入单元,用于按照字节输入具有预定长度的压缩数据;除法器,用于将输入的一个字节数据除以十六进制数‘10’,产生除法结果;第一‘与’电路,用于将所述的除法结果和十六进制数‘0F’进行‘与’操作,输出第三临时变量;第三比较器,用于将所述第三临时变量与一个预定的数值相比较以确定其范围;第二加法器,用于根据所述第三临时变量的范围进行相应的加法操作,输出第一字符;第二‘与’电路,用于将所述输入的字节和十六进制数‘0F’进行‘与’操作,输出第第四临时变量;第四比较器,用于将所述的第四临时变量与一个预定的数值相比较以确定其范围;第三加法器,用于根据所述第四临时变量的范围进行相应的加法操作,输出第二字符;以及输出单元,用于依次输出第一字符和第二字符。
全文摘要
公开了一种智能卡数据压缩/解压装置。在智能卡应用中,随着业务的需要,现有的卡的存储容量不能满足要求。其中,第一输入单元输入具有预定长度的ASCII字符;第一和第二比较器对一组字符中的高位字符和低位字符与预定的多个数值进行比较,以确定该高位字符和低位字符的范围;第一减法器和第二减法器根据所述范围进行相应的减法操作,并分别输出减法结果和第二临时变量;乘法器将所述减法结果乘以十六进制数‘10’,产生第一临时变量;第一加法器将所述第一临时变量与所述第二临时变量相加,输出压缩数据。此外还公开了一种具备压缩/解压装置的写/读卡设备。利用上述结构,能够将要写入其中的数据压缩到大约原来的50%。
文档编号G06K7/00GK1588807SQ20041006899
公开日2005年3月2日 申请日期2004年7月15日 优先权日2004年7月15日
发明者王丽平, 李保旭, 伊劲松, 刘赫赫, 李卫东, 郭斯, 田燕红, 刘惠, 王翔, 李蜀北 申请人:中国工商银行
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1