Card interface for interfacing a host application program to data storage cards
First Claim
1. A card reader/writer which interfaces a host application program with a data storage card having an associated card application, characterised in that:
- said card reader/writer can respond to said host application program using at least one designated high level language, a plurality of lower level protocol sets are stored which correspond to a plurality of different data storage card applications, said card reader is able to identify from the card the particular card application for any card interfaced to it for which it has a protocol set, and select from its store of protocols the appropriate lower level protocol for the identified card application, said card reader/writer reads and translates high level language commands from the host program to corresponding commands within said established lower level protocol and writes these lower commands to said card, and said card reader/writer reads commands or data in said established lower level protocol from said card translates them to corresponding commands or data in said high level language and writes these commands or data to said host application program.
2 Assignments
0 Petitions
Accused Products
Abstract
A card reader/writer which interfaces between a host application program and a data storage card. The card reader/writer reads from and writes to the application program with high level language of the commands. The card reader/writer translates the high level language commands of the host program to corresponding sequences of low level commands for reading and writing to the data storage card. The card reader/writer stores a plurality of sets of such low level commands, and is able to establish the card type for any card interfaced with the card reader/writer, and to use the appropriate command set for the established card type. The card reader/writer also translates low level commands from the card to high level commands for the host application program. The card reader/writer can be loaded with low level command sets for additional card types as required.
137 Citations
12 Claims
-
1. A card reader/writer which interfaces a host application program with a data storage card having an associated card application, characterised in that:
-
said card reader/writer can respond to said host application program using at least one designated high level language, a plurality of lower level protocol sets are stored which correspond to a plurality of different data storage card applications, said card reader is able to identify from the card the particular card application for any card interfaced to it for which it has a protocol set, and select from its store of protocols the appropriate lower level protocol for the identified card application, said card reader/writer reads and translates high level language commands from the host program to corresponding commands within said established lower level protocol and writes these lower commands to said card, and said card reader/writer reads commands or data in said established lower level protocol from said card translates them to corresponding commands or data in said high level language and writes these commands or data to said host application program. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of interfacing a host application program with a data storage card having an associated card application, comprising the steps of:
-
identifying the particular card application from the card, selecting from a store of a number of protocols for a number of different card applications the appropriate lower level protocol for the identified card application, reading high level language commands from the host program, translating said read high level language commands to corresponding commands within said identified lower level protocol, writing said corresponding commands to said card, reading commands or data in said established lower level protocol from said card, translating said lower level protocol commands or data into corresponding commands or data in said high level language, and writing said corresponding commands or data in said high level language to said host application program. - View Dependent Claims (7, 8)
-
-
9. A method of enabling a controller to read and write data via a card read/write station to an electronic data storage card having an associated card application, which method uses a stored-program stored-data processor, said method comprising:
- storing first data arrays containing strings of different card application-characterising data and for each string its corresponding card identifier, storing second data arrays containing card identifiers and for each identifier its corresponding command strings, and executing a program on said processor which causes said processor to;
(1) detect a card presented to said read/write station and to pass a card detect signal to said controller, (2) read the data string which characterises the card application, (3) search through at least one said first array for a matching data string, and upon making a successful match to retrieve the corresponding card application identifier, (4) select the appropriate command strings in said second array using the retrieved card application identifier, (5) accept generic transaction instructions from said controller, (6) translate the instructions from said controller to commands appropriate to the card application using the selected command strings from the second array, and (7) either read or write data to said card in accordance with said generic instructions.
- storing first data arrays containing strings of different card application-characterising data and for each string its corresponding card identifier, storing second data arrays containing card identifiers and for each identifier its corresponding command strings, and executing a program on said processor which causes said processor to;
-
10. A universal card interface for interfacing smartcards and other card devices having electronic data storage and having associated therewith a card application, with a controller requiring read/write access to said card comprising:
-
a card read/write station to which cards may be interfaced for data transfer, a processor having associated memory and input-output ports, said read/write station connected to one input-output port and said controller connected to a second input-output port, interface software and data arrays stored in said memory, said data arrays including first and second data arrays with said first data arrays containing strings of different card application-characterising data and for each string its corresponding card application identifier, said second data arrays containing card application identifiers and for each identifier its corresponding command strings, said software when executed by said processor causing said processor to;
(1) detect the presence of a card presented to said read/write station and to pass a card detect signal to said controller, (2) read from the card the data string which characterises the card application, (3) search through at least one said first array for a matching data string, and upon making a successful match to retrieve the corresponding card application identifier, (4) select the appropriate command strings in said second array using the retrieved card application identifier, (5) accept generic transaction instructions from said controller, (6) translate the instructions from said controller to commands appropriate to the card application on the card using the selected command strings from the second array, and (7) either read or write data to said card in accordance with said generic instructions.
-
-
11. A method of enabling host application software to interface with any known type of smartcard or other data storage card devices having an associated card application, comprising:
-
(1) reading from the card to be interfaced the data string which characterises a particular card application, (2) searching through a first data array containing strings of different card application-characterising data, and for each string its corresponding card application identifier, for a matching data string, and upon making a successful match retrieving the corresponding card identifier, (3) selecting the appropriate command strings from a second data array containing card application identifiers, and for each identifier its corresponding command strings, using the retrieved card application identifier, (4) accepting generic transaction instructions from said host application software, (5) translating the instructions from said host application software to lower level commands appropriate to the card application being interfaced using the selected command strings from said second data array, and (6) causing data to be either read from or written to said card in accordance with said generic instructions.
-
-
12. A software algorithm which enables host application software to interface with different types of smartcard or other data storage card devices having associated therewith a card application, comprising a hierarchy of functional modules wherein:
-
a first level module reads from the card to be interfaced the data string which characterises that card application and passes said data string to a second level module, the second level module searches through a first data array containing strings of different application-characterising data, and for each string its corresponding card application identifier, for a matching data string, and upon making a successful match retrieves the corresponding card application identifier and passes said card application identifier to a third level module, the third level module selects the appropriate command strings from a second data array containing card application identifiers, and for each identifier its corresponding command strings, using the card application identifier passed to it, a fifth level module accepts generic transaction instructions from said host application software and passes those instructions to a fourth level module, the fourth level module translates the instructions from said fifth level module to lower level commands appropriate to the card application being interfaced using the command strings selected by the third level module, and the first level module either reads from or writes to said card in accordance with the translated generic instructions passed from the fourth level module.
-
Specification