(57)【要約】【課題】磁気カードの複数種類のフォーマットを簡易な方法によって判定することが可能な磁気データのフォーマットの判定方法を提供する。【解決手段】本発明の磁気データのフォーマットの判定方法は、磁気データに含まれるパリティビットのパリティチェックの結果によってフォーマット判定を行う（ＳＡ３）。また、磁気カードリーダの磁気ヘッドにより読み取られた磁気データを第１の磁気データ、この第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして、磁気データに含まれるパリティビットのパリティチェックの結果や磁気データに含まれる全キャラクタ数によってカード搬送方向判定を行う（ＳＡ４）。【選択図】図６
2011054065.tif 000002
【特許請求の範囲】
【請求項１】
磁気カードリーダの磁気ヘッドにより磁気カードの磁気ストライプに書き込まれた磁気データを読み取るステップと、
読み取られた磁気データがＩＳＯ規格のフォーマット又はＩＳＯ規格以外の特定のフォーマットに合致しているか否かを判定するステップと、
を備えた磁気データのフォーマットの判定方法。
【請求項２】
前記磁気ストライプには複数のトラックが設けられ、前記複数のトラックの中で予め定めたトラックに書き込まれた磁気データのフォーマットがＩＳＯ規格のフォーマット又はＩＳＯ規格以外の特定のフォーマットに合致しているか否かを判定するステップであることを特徴とする請求項１記載の磁気データのフォーマットの判定方法。
【請求項３】
前記磁気ストライプに記録されている磁気データおいて、ＩＳＯ規格のフォーマットとＩＳＯ規格以外の特定のフォーマットとでは１つのキャラクタを構成するビット数が異なり、該ビット数を判定の対象とすることを特徴とする請求項１または２記載の磁気データのフォーマットの判定方法。
【請求項４】
前記磁気ストライプに記録されている磁気データおいて、ＩＳＯ規格のフォーマットとＩＳＯ規格以外の特定のフォーマットとでは、最大キャラクタ数が異なり、該キャラクタ数を判定の対象とすることを特徴とする請求項１または２記載の磁気データのフォーマットの判定方法。
【請求項５】
前記磁気データに含まれるパリティビットのパリティチェックの結果によってフォーマット判定を行うことを特徴とする請求項１から４のいずれか記載の磁気データのフォーマットの判定方法。
【請求項６】
前記特定のフォーマットはＡＡＭＶＡカードに使用されるフォーマットであることを特徴とする請求項１から５のいずれか記載の磁気データのフォーマットの判定方法。
【請求項７】
磁気カードリーダの磁気ヘッドにより読み取られた磁気データを第１の磁気データとして記憶するステップと、
前記第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして記憶するステップと、
前記第１の磁気データ及び前記第２の磁気データに基づいて、磁気カードのカード搬送方向を判定するステップと、
を備えた請求項１または２記載の磁気データのフォーマットの判定方法。
【請求項８】
磁気データに含まれるキャラクタ数によってカード搬送方向判定を行うことを特徴とする請求項７記載の磁気データのフォーマットの判定方法。
【請求項９】
磁気データに含まれるパリティビットのパリティチェックの結果によってカード搬送方向判定を行うことを特徴とする請求項７または８記載の磁気データのフォーマットの判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気カードリーダの磁気ヘッドにより磁気カードの磁気ストライプに書き込まれた磁気データを読み取って、読み取られた磁気データを解析する磁気データのフォーマットの判定方法に関する。
【背景技術】
【０００２】
磁気カードリーダで使用する磁気データのフォーマットとしては、ＩＳＯ規格のフォーマットが一般的であるが、ＩＳＯ規格以外の特定のフォーマットがあり、磁気カードリーダが磁気データを読み取るときには、いずれのフォーマットであるのかの判定を行う必要がある。（例えば、特許文献１を参照。）
【０００３】
特許文献１に示す磁気カードリーダでは、フォーマットの判定は、まず上位装置（ホストコンピュータ）より指示されたフォーマットにてデコードを行い、そのデコード結果が指示されたフォーマットと一致しているか否かの判定をし、その結果を上位装置へ通知している。この判定方法により、磁気データのフォーマットがいずれのフォーマットであるのかを判定することが可能となり、上位装置の負荷軽減に寄与することとなる。
【０００４】
【特許文献１】特開２０００−３０６０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたフォーマットの判定方法は、上位装置がフォーマットを指示し、磁気カードリーダはその指示されたフォーマットでデコードを行い、デコードされたデータを上位装置に送信して、上位装置がフォーマット判定を行うというデータ処理をしている。このため、上位装置と磁気カードリーダとのトラフィックが煩雑である。
【０００６】
また、いずれかのフォーマットでデコードされたデータを上位装置が受け取り、そのデータのキャラクタコードの種類やキャラクタ数によってフォーマット判定を行っていることから、デコードされたデータの内容自体が適正であることが前提となっている。
【０００７】
例えば、ユーザの手動により磁気カードを搬送する磁気カードリーダ（手動式の磁気カードリーダ）においては、磁気カードを搬送するカード搬送方向が磁気ヘッドによって記録された磁気記録の順方向または逆方向となる場合もある。そのため、フォーマット判定とは別にデコード結果を元にしたカード搬送方向の判定も行う必要があるが、カード搬送方向を考慮したデコードは行われていない。カード搬送方向を考慮せずにデコードされたデータは、当然に不適正なデータ内容となり、特許文献１に示す判定方法ではフォーマット判定ができないこととなる。
【０００８】
本発明は、このような点に鑑みてなされたものであり、その目的は、複数種類の磁気カードに記録されている磁気データのフォーマットを簡易な方法によって判定が可能な磁気データのフォーマットの判定方法を提供することにある。さらに、もう一つの目的は、磁気カードを搬送するカード搬送方向を判定し、カード搬送方向を考慮したフォーマットの判定が可能な磁気データのフォーマットの判定方法を提供することにある。
【課題を解決するための手段】
【０００９】
以上のような課題を解決するために、本発明の磁気データの解析方法は磁気カードの磁気ストライプにおいて、磁気データに含まれるパリティビットのパリティチェックの結果によってフォーマット判定を行う。また、磁気カードリーダの磁気ヘッドにより読み取られた磁気データを第１の磁気データ、この第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして、磁気データに含まれるパリティビットのパリティチェックの結果や磁気データに含まれるキャラクタ数によってカード搬送方向判定を行う。
【００１０】
より具体的には、本発明は、以下のものを提供する。
【００１１】
（１）  磁気カードリーダの磁気ヘッドにより磁気カードの磁気ストライプに書き込まれた磁気データを読み取るステップと、読み取られた磁気データがＩＳＯ規格のフォーマット又はＩＳＯ規格以外の特定のフォーマットに合致しているか否かを判定するステップと、を備えた磁気データのフォーマットの判定方法。
【００１２】
本発明によれば、磁気カードの磁気ストライプに書き込まれた磁気データを読み取り、読み取られた磁気データがＩＳＯ規格のフォーマット又はＩＳＯ規格以外の特定のフォーマットに合致しているか否かを判定することで、ＩＳＯ規格のフォーマットに合致している場合にはＩＳＯ規格のフォーマットと、ＩＳＯ規格以外の特定のフォーマットに合致している場合にはその特定のフォーマットと判別することができる。
【００１３】
（２）  前記磁気ストライプには複数のトラックが設けられ、前記複数のトラックの中で予め定めたトラックに書き込まれた磁気データのフォーマットがＩＳＯ規格のフォーマット又はＩＳＯ規格以外の特定のフォーマットに合致しているか否かを判定するステップであることを特徴とする磁気データのフォーマットの判定方法。
【００１４】
本発明によれば、複数のトラックの中で予め定めたトラックに書き込まれた磁気データのフォーマットに基づいてフォーマットを判定することから、フォーマット判定を簡易に行うことができる。
【００１５】
（３）  前記磁気ストライプに記録されている磁気データおいて、ＩＳＯ規格のフォーマットとＩＳＯ規格以外の特定のフォーマットとでは１つのキャラクタを構成するビット数が異なり、該ビット数を判定の対象とすることを特徴とする請求項１または２記載の磁気データのフォーマットの判定方法。
【００１６】
本発明によれば、両規格におけるフォーマットにおいて、磁気データ内の１つのキャラクタを構成するビット数が異なり、このビット数を用いてフォーマット判定の対象とすることから、フォーマット判定を簡易に行うことができる。
【００１７】
（４）  前記磁気ストライプに記録されている磁気データおいて、ＩＳＯ規格のフォーマットとＩＳＯ規格以外の特定のフォーマットとでは、最大キャラクタ数が異なり、該キャラクタ数を判定の対象とすることを特徴とする請求項１または２記載の磁気データのフォーマットの判定方法。
【００１８】
本発明によれば、両規格におけるフォーマットにおいて、磁気データ内の最大キャラクタ数が異なり、この最大キャラクタ数の違いに着目した簡易なフォーマット判定を行うことができる。
【００１９】
（５）  磁気データに含まれるパリティビットのパリティチェックの結果によってフォーマット判定を行うことを特徴とする磁気データのフォーマットの判定方法。
【００２０】
本発明によれば、パリティチェックの結果によってフォーマット判定を行うことから、磁気データの内容自体が適正か否かによってフォーマット判定を行う従来に比べて、簡易なフォーマット判定を行うことができる。
【００２１】
（６）  前記特定のフォーマットはＡＡＭＶＡカードに使用されるフォーマットであることを特徴とする磁気データのフォーマットの判定方法。
【００２２】
本発明によれば、特定のフォーマットはＡＡＭＶＡカードに使用されるフォーマットであることから、ＩＳＯ規格のフォーマットかＡＡＭＶＡカードに使用されるフォーマットかのフォーマット判定を行うことができる。
【００２３】
（７）  磁気カードリーダの磁気ヘッドにより読み取られた磁気データを第１の磁気データとして記憶するステップと、前記第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして記憶するステップと、前記第１の磁気データ及び前記第２の磁気データに基づいて、磁気カードのカード搬送方向を判定するステップと、を備えた磁気データのフォーマットの判定方法。
【００２４】
本発明によれば、磁気カードリーダの磁気ヘッドにより読み取られた磁気データを第１の磁気データとし、第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして、第１の磁気データ及び第２の磁気データに基づいて、磁気カードのカード搬送方向を判定することから、カード搬送方向において磁気記録の順・逆方向に可能な磁気カードリーダにおけるカード搬送方向の判定、かかるカード搬送方向を考慮したフォーマット判定を行うことができる。
【００２５】
（８）  磁気データに含まれるキャラクタ数によってカード搬送方向判定を行うことを特徴とする磁気データのフォーマットの判定方法。
【００２６】
本発明によれば、第１の磁気データに含まれるキャラクタ数、第２の磁気データに含まれるキャラクタ数によって磁気カードのカード搬送方向を判定することから、磁気記録の順・逆方向の双方向に搬送可能な磁気カードリーダにおけるカード搬送方向の判定、かかるカード搬送方向を考慮したフォーマット判定を行うことができる。
【００２７】
（９）  磁気データに含まれるパリティビットのパリティチェックの結果によってカード搬送方向判定を行うことを特徴とする磁気データのフォーマットの判定方法。
【００２８】
本発明によれば、第１の磁気データに含まれるパリティビットのパリティチェック、第２の磁気データに含まれるパリティビットのパリティチェックを行い、それらの結果によって磁気カードのカード搬送方向を判定することから、磁気記録の順・逆方向の双方向に搬送可能な磁気カードリーダにおけるカード搬送方向の判定、かかるカード搬送方向を考慮したフォーマット判定を行うことができる。
【発明の効果】
【００２９】
本発明によれば、磁気カードの磁気ストライプに書き込まれた磁気データを解析することによって、複数種類の磁気カードのフォーマット判定を行うことができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００３１】
図１（ａ）は、本発明の実施の形態に係る磁気カードリーダ１の概要を示す上面図である。図１（ｂ）は、本発明の実施の形態に係る（多チャンネル）磁気ヘッド３０と磁気カードの磁気ストライプ３５との関係を示す関係平面図である。
【００３２】
この磁気カードリーダ１は、手動式磁気カードリーダ、例えば、スワイプ式磁気カードリーダであり、カード搬送方向と直交する面の断面形状がほぼコ字形状をなし、カード走行路を形成するフレーム２０と、このフレーム２０の一部（底部）として形成される走行基準面２１と、磁気カード２上に形成された磁気ストライプ３５に記録されている磁気情報を読み取る磁気ヘッド３と、を有している。
【００３３】
磁気ヘッド３は、カード走行路に臨むように配置されている。そして、磁気カード２上の磁気情報に係る信号を再生する。具体的には、磁気ヘッド３は、磁気カード２表面上の磁気ストライプ３５のトラックに接触・摺動することによって、その磁気ストライプ３５のトラックに記録された磁気情報を読み取り、その磁気情報に係る信号（Ｆ２Ｆ信号）を生成する。
【００３４】
本実施の形態では、図１（ｂ）に示すように、磁気ヘッド３は３個の磁気コアを有する多チャンネル磁気ヘッドであり、各磁気コア３１，３２，３３は、磁気カード２の磁気ストライプ３５に設けられた３本の磁気データトラック（以下、トラックという）３６，３７，３８にそれぞれ対応して設けられている。
【００３５】
上述したように、本実施の形態に示す磁気カードリーダ１は手動式磁気カードリーダであるので、磁気カード２は操作者によって図中の両方向（磁気記録の順・逆方向）矢印で示すように、走行基準面２１に沿って手動で搬送させることで、磁気ヘッド３によって磁気ストライプ３５のトラック３６，３７，３８に記録されている磁気データが読み取られるようになっている。
【００３６】
図２は、本発明の実施の形態に係る磁気カードリーダ１及び上位装置６の電気的構成の概略を示すブロック図である。
【００３７】
図２において、本発明の実施の形態に係る磁気カードリーダ１は、磁気ヘッド３と、復調部４と、磁気カードリーダのＣＰＵ５と、外部通信用Ｉ／Ｆ部５０と、を備えている。なお、ＲＯＭやＲＡＭは、ＣＰＵ５内に組み込まれていることとしたが、別個独立に設けても構わない。一般に、ＲＯＭには、磁気カードリーダ１の基本機能を支えるシステムプログラムが格納される。ＲＡＭは、ＣＰＵ５のワーキングエリアとして機能する。
【００３８】
ＣＰＵ５は、磁気カードリーダ１の制御中枢を司るものであって、磁気カードリーダ１の統合的な制御を行う。磁気ヘッド３による再生信号は、復調部４において復調された後（Ｆ２Ｆ信号（アナログ波形）である読み取り信号を、２値化信号（デジタル波形）に変換した後）、ＣＰＵ５に送られる。なお、再生信号は、復調部４に送られる前に、波形の増幅・整形を行うＡＭＰ（増幅）回路を経由してもよい。後述するように、ＩＳＯ規格フォーマット、ＩＳＯ規格以外の特定のフォーマットともに、Ｆ２Ｆ変調方式で行なわれている。
【００３９】
ＣＰＵ５は、外部通信用Ｉ／Ｆ部５０，５０'を介して上位装置６と通信する。上位装置６には、磁気カードリーダ１と同様に、ＣＰＵ６０と、上位装置６の基本機能を支えるシステムプログラムが格納されるＲＯＭ６１と、上位装置６のワーキングエリアとして機能するＲＡＭ６２と、マウス，キーボード等からなる操作手段及びディスプレイ等からなる表示手段とを有するインターフェース部７０と、外部メモリとしてのＨＤＤ（ハードディスクドライブ）と、を有している。
【００４０】
このＨＤＤ内には、デコード機能を有する磁気データデコード用ミドルウエア７とアプリケーションプログラム８とが設けられている。
【００４１】
なお、磁気データデコード用ミドルウエア７は、アプリケーションプログラム８とＩ／Ｆ部５０等との中間で動くソフトウエアであり、汎用性のあるアプリケーションプログラム８が独自の処理機能を有するＩ／Ｆ部５０等を制御することができるような機能を持たせている。
【００４２】
本実施の形態において、磁気データデコード用ミドルウエア７には、図２に示すように、デコードデータ生成処理７１、フォーマット判定処理７２、カード搬送方向判定処理７３を備えている。
【００４３】
デコードデータ生成処理７１は、磁気カードリーダ１のＣＰＵ５から送られてきた磁気データ（ビットデータ）を、各トラックに対応したＩＳＯ規格のフォーマットまたはＩＳＯ規格以外の特定のフォーマットに基づいて配列する処理である。また、磁気カードを搬送するカード搬送方向の判定を行なうために、格納された磁気データ（ビットデータ）の前後関係を入れ替えた（第２の）磁気データを生成する処理を行うようにしている。
【００４４】
フォーマット判定処理７２は、ＩＳＯ規格のフォーマットまたはＩＳＯ規格以外の特定のフォーマットで配列された磁気データに基づいて、フォーマットを判定する処理である。
【００４５】
カード搬送方向判定処理７３は、磁気カードを搬送するカード搬送方向が磁気ヘッドによって記録された磁気記録の順方向または逆方向のどちらかであるかを判定する処理である。
【００４６】
また、磁気データデコード用ミドルウエア７は、磁気カードリーダの制御に関する複数のアプリケーションソフトが共通して利用する汎用性の高い磁気カードリーダ制御ＤＬＬの一部として設けられてもよい。
【００４７】
本実施の形態では、ＲＡＭ６２には、図２に示すように、読取りデータ領域６３及びデコードデータ領域６４を備えている。
【００４８】
読取りデータ領域６３は、磁気カードリーダ１のＣＰＵ５から送られてきた磁気データ（ビットデータ）を、第１トラック、第２トラック、第３トラックの順に格納するようになっている。
【００４９】
デコードデータ領域６４は、後述する図３に示すように、磁気カード２に記録されている磁気データの基本配列に従って、格納されるようになっている。本実施の形態では、ＩＳＯ規格のフォーマットに基づいて磁気データ（ビットデータ）を配列したＩＳＯフォワード領域６５、ＩＳＯバックワード領域６６と、ＩＳＯ規格以外の特定のフォーマットに基づいて磁気データ（ビットデータ）を配列したＡＡＭＶＡフォワード領域６７、ＡＡＭＶＡバックワード領域６８と４つの（メモリ）領域を備えている。
【００５０】
さらに、ＩＳＯフォワード領域６５は、図２に示すように、第１トラック、第２トラック、第３トラックごとに区分けされている。同様に、ＩＳＯバックワード領域６６、ＡＡＭＶＡフォワード領域６７、ＡＡＭＶＡバックワード領域６８には、第１、第２、第３トラックの順に（メモリ）領域が設けられている。
【００５１】
そして、ＩＳＯフォワード領域６５には、読取りデータ領域６３に格納された磁気データ（ビットデータ）を第1の磁気データとして格納されている。具体的には、第１〜第３トラックの各トラックにおいて、磁気データ（ビットデータ）の先端から後端の順番に、後述する図３に示すように、磁気カード２に記録されている磁気データの基本配列に従って、磁気データ（ビットデータ）を格納されるようになっている。つぎに、ＩＳＯバックワード領域６６には、ＩＳＯフォワード領域６５に格納された磁気データ（ビットデータ）の前後関係を入れ替えた第２の磁気データが格納されている。すなわち、読取りデータ領域６３に格納された第１〜第３トラックの各トラックにおいて、磁気データ（ビットデータ）の後端から前端の順番に、後述する図３に示すように、磁気カード２に記録されている磁気データの基本配列に従って、磁気データ（ビットデータ）を格納されるようになっている。
【００５２】
同様にして、ＡＡＭＶＡフォワード領域６７には、読取りデータ領域６３に格納された磁気データ（ビットデータ）を第1の磁気データとして格納されている。ＡＡＭＶＡバックワード領域６８には、ＡＡＭＶＡフォワード領域６７に格納された磁気データの前後関係を入れ替えた第２の磁気データが格納されている。
【００５３】
上位装置６において、ＣＰＵ６０は、磁気カードリーダのＣＰＵ５から送られてきた磁気データ（ビットデータ）を、磁気データデコード用ミドルウエア７を用いてデコード（復号）し、アプリケーションプログラム８を実行する際の入力としてアプリケーションに通知する。具体的には、本実施形態において、磁気カードリーダ１のＣＰＵ５から送られてきた磁気データ（ビットデータ）は、磁気データデコード用ミドルウエア７を用いてＩＳＯ規格やＡＡＭＶＡ規格で定められたフォーマットに従ったデータ（キャラクタ）へデコード（復号）処理される。アプリケーションプログラム８は、デコード（復号）されたデータを解析して、フォーマット判定やカード搬送方向判定を行う機能を有し、上位装置６に実行させる。なお、アプリケーションプログラム８に磁気データデコード用ミドルウエア７を組み込んでもよい。
【００５４】
このように、本実施の形態では、磁気カードリーダ１は、磁気ヘッド３によって読み取られた磁気カード２の磁気データをビットデータで磁気カードリーダ１から上位装置６へと受け渡し、上位装置６によってデコード処理を行うことから、デコード処理機能を有しない磁気カードリーダ１についても本発明を採用することができる。
【００５５】
なお、ＣＰＵ６０やＨＤＤ内のアプリケーションプログラム８は、磁気ヘッド３により読み取られた磁気情報よりスタートコードＳＴＸ（ＳＳ）やエンドコードＥＴＸ（ＥＳ）やチェックコードを検出する検出手段の一例として、また、磁気情報を読み取ってエラーを検出するエラー検出手段の一例として機能する。
【００５６】
図３は、磁気カード２に記録されている磁気データの基本配列を示す図、図４のうち、（ａ）はＩＳＯ規格のフォーマット、（ｂ）はＩＳＯ規格以外の特定の規格としてのＡＡＭＶＡ規格のフォーマットを示す図である。また、図５は、カードリーダのデータ復調動作を説明するための信号波形図である。
【００５７】
図３に示すように、磁気データは、各トラック毎に、スタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＥＳ）及びチェックコードより構成される。また、スタートコードＳＴＸ（ＳＳ）の前には、磁気データの同期を取るためのプリアンブルデータ（連続した０）が記録され、チェックコードの後には磁気データの同期を取るためのポストアンブルデータ（連続した０）が記録されている。スタートコードＳＴＸ（ＳＳ）には始まりを示す磁気データ、エンドコードＥＴＸ（ＥＳ）には終了を示す磁気データが記録されている。データには実際に記録される磁気データが記録されている。また、チェックコードには記録された磁気データを読み出すときに、データエラーが生じていないかどうかを検証するための磁気データが記録されている。
【００５８】
磁気カード等における磁気データの記録は、Ｆおよび２Ｆという２種類の周波数の組み合わせによって記録される周波数変調方式が一般的である。かかる方式を採用している磁気カードリーダ等の記録再生装置では、磁気カードの磁気ストライプに対して相対的に磁気ヘッドを摺動させることにより、磁気記録データをアナログ再生信号の形態で再生し、このアナログ再生信号の信号波形に基づき、２値データをデコーディングしている。
【００５９】
図１に示すように、この構成の磁気記録データを再生するための磁気カードリーダにおいては、操作者によって磁気カード２を図中の両方向（磁気記録の順・逆方向）矢印で示すように、走行基準面２１に沿って手動で搬送させることで、磁気ヘッド３を磁気カード２の磁気ストライプ３５に接触させた状態で、当該磁気カード２を搬送させ、これにより、磁気ストライプ３５に記録されている磁気記録データに対応するアナログ再生信号を得ている。
【００６０】
ここで、磁気記録のための記録電流波形は、図５（i）に示すように、周波数Ｆのパルス信号と、周波数２Ｆのパルス信号の組み合わせからなり、２値データ「０」は低い周波数Ｆのパルス信号により規定され、２値データ「１」は高い周波数２Ｆのパルス信号により規定される。従って、図５（i）では、（００００１０・・）と続く２値データが表されている。磁気ヘッド１１から増幅器４１を介して得られるアナログ再生信号Ａの信号波形は、図５（ii）に示すような波形となり、記録電流波形の立ち上がりおよび立ち下がり時点が正負のピークとなって現れる。換言すると、磁気的に記録されている記録データの磁気極性の反転位置で正負のピークが現れる。このアナログ再生信号波形は、ピーク検出回路４２に供給されて、ピーク位置が判別される。さらに、比較機４３を介して、(iv)に示すような記録電流波形に対応するデジタル再生信号波形が得られる。このデジタル信号波形に基づき、上位装置６によって磁気記録データのデコーディングが行われる。例えば、図５（i）より、磁気ヘッド３で再生された順番に、"００００１０・・・・"と続くビットデータ（２値データ）が作成される。これを、上位装置６のＲＡＭに１トラック分格納される。次に、格納されたビットデータ（２値データ）は、後述するとおり、ＩＳＯ規格の第１トラックは、７ビットで各コード等が形成されているので、１番目のビットデータ（２値データ）から順に、７ビットづつ区切りをつけ、図４（ａ）に示すＳＴＸコード、ＥＴＸコードのビット配列をみつけ、その間のビットデータが、図３に示すデータとなる。
【００６１】
本実施の形態では、ＩＳＯ規格のフォーマットは、図４（ａ）に示すようになっており、３つのトラック（第１トラック乃至第３トラック）からなっている。
【００６２】
第１トラック（トラック１（ＩＡＴＡ形式））はＩＡＴＡ形式とも呼ばれている。記録される磁気データは、１つのキャラクタが７ビットで構成され、キャラクタは英数字と各種記号が含まれている。磁気データとして記録されるキャラクタ数は、最小キャラクタ数（図４（ａ）では「ＳＭＩＮ」と明記）は３、最大キャラクタ数（図４（ａ）では「ＳＭＡＸ」と明記）は７９となっている。なお、最大キャラクタ数は７２となるタイプも存在する。
【００６３】
１つのキャラクタを構成する７ビットは、６つのデータビットと１つのパリティビットで構成されている。例えば、"１０１１０１１"で示されるキャラクタにおいて、第１番目のビット"１"はパリティビットとなっており、残りの６つのデータビットの正当性を検証するようになっている。そして、残りの６つのビット"０１１０１１"はデータビットであり、キャラクタを定義している。
【００６４】
また、スタートコードＳＴＸ（ＳＳ）は、"１０００１０１"と定義されており、第1番目のビット"１"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"００１１１１１"と定義されており、第1番目のビット"０"はパリティビットとなっている。
【００６５】
第２トラック（トラック２（ＡＢＡ形式））はＡＢＡ形式とも呼ばれている。この第２トラックに記録される磁気データは、１つのキャラクタが５ビットで構成され、キャラクタは数字と各種記号が含まれている。キャラクタを構成する５ビットにおいて、第１番目のビットはパリティビットとなっており、残りの４つのビットはデータビットであり、キャラクタを定義している。また、キャラクタ数は、最小キャラクタ数は３、最大キャラクタ数は４０となっている。第２トラックにおけるスタートコードＳＴＸ（ＳＳ）は、"０１０１１"と定義されており、第1番目のビット"０"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"１１１１１"と定義されており、第1番目のビット"１"はパリティビットとなっている。
【００６６】
第３トラック（トラック３（ＭＩＮＴＳ形式））はＭＩＮＴＳ形式と呼ばれ、１つのキャラクタは、第２トラックと同じく５ビットで構成されており、キャラクタは数字と各種記号が含まれている。キャラクタを構成する５ビットにおいて、第１番目のビットはパリティビットとなっており、残りの４つのビットはデータビットであり、キャラクタを定義している。また、キャラクタ数は、最小キャラクタ数は３、最大キャラクタ数は１０７となっている。第３トラックにおけるスタートコードＳＴＸ（ＳＳ）は、"０１０１１"と定義されており、第1番目のビット"０"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"１１１１１"と定義されており、第1番目のビット"１"はパリティビットとなっている。
【００６７】
また、図４（ａ）に示すＲＣ（Redundancy  Check：誤り制御方式）は、図３に示すチェックコードに記録される磁気データを表している。第１から第３トラックでは、３トラックとも同じ、ＬＲＣ方式（水平パリティチェック方式）を採用し、具体的には、スタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＥＳ）に記録された磁気データについて誤り検出を行い、誤り検出方式は偶数パリティチェック（ビット１の個数が偶数個になる）を用いている。
【００６８】
さらに、図４（ａ）に示すＶＲＣ（垂直パリティチェック方式）が採用されており、誤り検出方式は奇数パリティチェック（ビット１の個数が奇数個になる）を用いている。そして、ＬＲＣ自身の垂直パリティチェック方式ＶＲＣは有効化されている。すなわち、ＬＲＣ自身がチェックコードとして磁気データであり、この磁気データに、ＶＲＣを付加するようになっている。
【００６９】
次に、ＩＳＯ規格以外の特定の規格としてのＡＡＭＶＡ規格のフォーマットについて説明する。
【００７０】
本実施の形態では、ＡＡＭＶＡ規格のフォーマットは、図４（ｂ）に示すようになっており、３つのトラック（第１トラック乃至第３トラック）からなっている。
【００７１】
ＡＡＭＶＡ規格の第１トラック（トラック１）は、１つのキャラクタが７ビットで構成され、キャラクタは英数字と各種記号が含まれている。磁気データとして記録されるキャラクタ数は、最小キャラクタ数（図４（ｂ）では「ＳＭＩＮ」と明記）は規定されておらず、最大キャラクタ数（図４（ｂ）では「ＳＭＡＸ」と明記）は８２となっている。
【００７２】
１つのキャラクタを構成する７ビットは、６つのデータビットと１つのパリティビットで構成され、第１番目のビットはパリティビットとなっており、残りの６つのデータビットの正当性を検証するようになっている。そして、残りの６つのビットはデータビットであり、キャラクタを定義している。
【００７３】
また、スタートコードＳＴＸ（ＳＳ）は、"１０００１０１"と定義されており、第1番目のビット"１"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"００１１１１１"と定義されており、第1番目のビット"０"はパリティビットとなっている。
ＡＡＭＶＡ規格の第２トラック（トラック２）は、１つのキャラクタが５ビットで構成され、キャラクタは数字と各種記号が含まれている。磁気データとして記録されるキャラクタ数は、最小キャラクタ数は規定されておらず、最大キャラクタ数は４０となっている。
【００７４】
１つのキャラクタを構成する５ビットは、４つのデータビットと１つのパリティビットで構成され、第１番目のビットはパリティビットとなっており、残りの４つのビットデータの正当性を検証するようになっている。そして、残りの４つのビットはデータビットであり、キャラクタを定義している。
【００７５】
第２トラックにおけるスタートコードＳＴＸ（ＳＳ）は、"０１０１１"と定義されており、第1番目のビット"０"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"１１１１１"と定義されており、第１番目のビット"１"はパリティビットとなっている。
【００７６】
ＡＡＭＶＡ規格の第３トラック（トラック３）は、１つのキャラクタが７ビットで構成され、キャラクタは数字と各種記号が含まれている。磁気データとして記録されるキャラクタ数は、最小キャラクタ数は規定されておらず、最大キャラクタ数は８２となっている。
【００７７】
１つのキャラクタを構成する７ビットは、６つのデータビットと１つのパリティビットで構成され、第１番目のビットはパリティビットとなっており、磁気データの正当性を検証するようになっている。そして、残りの６つのビットはデータビットであり、キャラクタを定義している。
【００７８】
また、スタートコードＳＴＸ（ＳＳ）は、"１０００１０１"と定義されており、第1番目のビット"１"はパリティビットとなっている。エンドコードＥＴＸ（ＥＳ）は、"００１１１１１"と定義されており、第１番目のビット"０"はパリティビットとなっている。
【００７９】
また、図４（ｂ）に示すＲＣ（Redundancy  Check：誤り制御方式）は、図３に示すチェックコードに記録される磁気データを表している。ＡＡＭＶＡ規格の第１から第３トラックでは、３トラックとも同じ、ＬＲＣ方式（水平パリティチェック方式）を採用し、具体的には、スタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＥＳ）に記録された磁気データについて誤り検出を行い、誤り検出方式は偶数パリティチェック（ビット１の個数が偶数個になる）を用いている。
【００８０】
さらに、図４（ｂ）に示すＶＲＣ（垂直パリティチェック方式）が採用されており、誤り検出方式は奇数パリティチェック（ビット１の個数が奇数個になる）を用いている。そして、ＬＲＣ自身の垂直パリティチェック方式ＶＲＣは有効化されている。すなわち、ＬＲＣ自身がチェックコードとして磁気データであり、この磁気データに、ＶＲＣを付加するようになっている。
【００８１】
図６は、本実施形態に係る磁気データのフォーマット判定方法の情報処理の流れを示すフローチャートである。
【００８２】
まず、上位装置６のＣＰＵ６０は、磁気カードリーダ１から磁気データ（ビットデータ）を受信したか否かを判断する（ステップＳＡ１）。磁気データ（ビットデータ）を受信しない場合には待機となる（ステップＳＡ１：ＮＯ）。
【００８３】
磁気データ（ビットデータ）を受信した場合（ステップＳＡ１：ＹＥＳ）、上位装置６のＣＰＵ６０は、受信した磁気データ（ビットデータ）をＲＡＭ６２の読取データ領域６３に第１トラックの先端から後端の順序で磁気データ（ビットデータ）を保存し、次に、第２トラック、第３トラックについて同様に磁気データを保存する。第１トラックから第３トラックまで磁気データを記録し保存した後、磁気データデコード用ミドルウエア７のデコードデータ生成処理７１を行う。これにより、読取データ領域６３に記録されている磁気データ（ビットデータ）は、ＩＳＯ規格のフォーマットまたはＩＳＯ規格以外のフォーマットの配列に基づいて格納される（ステップＳＡ２）。本実施の形態では、磁気データは、図２に示すデコードデータ領域６４内にある４つフォーマットの配列に基づいて格納される。より具体的には、ＩＳＯフォワード領域６５は、磁気カードを搬送した方向に従って、第１の磁気データとして格納されている。ＩＳＯバックワード領域６６は、第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データとして格納されている。同様に、ＡＡＭＶＡフォワード領域６７には第１の磁気データとして、ＡＡＭＶＡバックワード領域６８には、第２の磁気データとしてそれぞれ格納されている。
【００８４】
次に、上位装置６のＣＰＵ６０は、フォーマット判定処理を行う（ステップＳＡ３）。具体的には、後述する磁気データの解析により、磁気データがＩＳＯ規格のフォーマットであるか、ＩＳＯ規格以外のＡＡＭＶＡ規格のフォーマットで記録されているのかを判定する。
【００８５】
さらに、上位装置６のＣＰＵ６０は、フォーマット判定処理によってフォーマットが判別できれば、カード搬送方向判定処理を行う（ステップＳＡ４）。本実施の形態では、ユーザの手動により磁気カードを搬送する磁気カードリーダ（手動式の磁気カードリーダ）においては、磁気カードを搬送するカード搬送方向が磁気ヘッドによって記録された磁気記録の順方向または逆方向となる場合もある。
【００８６】
具体的には、本実施の形態において、図２に示すデコードデータ領域６４内には、ＩＳＯフォワード領域６５と、ＩＳＯバックワード領域６６とを形成している。上位装置６（アプリケーションプログラム８）では、カード搬送方向が決まっていないので、２つの領域６５、６６の磁気データを用いて情報のやり取りを行なう必要がある。このため、処理時間がかかるという問題がある。なお、ＩＳＯ規格以外のＡＡＭＶＡ規格のフォーマットの場合も同様である。また、カード搬送方向の判定を、センサ等を用いて行なうことは可能であるが、上記手動式の磁気カードリーダでは大型化、高価になるという問題がある。
【００８７】
［フォーマット判定処理］
図７は、本実施形態に係る磁気データの解析によってフォーマット判定を行う情報処理の流れを示すフローチャートであり、フォーマット判定処理（図６のステップＳＡ３）に関するサブルーチンである。本実施の形態では、ＩＳＯ規格又はＡＡＭＶＡ規格でフォーマットされた磁気カードのフォーマット判定を行う。具体的には、図４に示すように、ＩＳＯ規格のフォーマットとＡＡＭＶＡ規格のフォーマットでは、第３トラックのキャラクタ構成が７ビットと５ビットと異なり、また、第1トラックの最大キャラクタ数（図４では「ＳＭＡＸ」）が７９と８２と異なることが判る。そこで、デコードの優先順位を第３トラック、第１トラックの順とする。
【００８８】
まず、図２に示すＩＳＯフォワード領域６５に格納されている第３トラック（トラック３）の磁気データおよびＩＳＯバックワード領域６６に格納されている第３トラック（トラック３）の磁気データをデコードする（ステップＳＢ１）。
【００８９】
これら２つのＩＳＯ規格でフォーマットされた磁気データのいずれかがデコードに成功したか失敗したかを判断する（ステップＳＢ２）。
【００９０】
具体的には、デコードの成否は、配列の中に、（１）スタートコードＳＴＸ（ＳＳ）の配列、すなわち、"０１０１１"がない。（２）つぎに、スタートコードＳＴＸ（ＳＳ）があった場合、エンドコードＥＴＸ（ＳＥ）の配列、すなわち、"１１１１１"がない。（３）さらに、エンドコードの次にあるチェックコードが誤っている。（４）スタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＳＳ）、チェックコードのパリティビットのパリティチェックの結果が正しいかどうかによって決定することができる。これら（１）〜（４）のチェック全てにおいてエラーがなければデコードは成功と判断し、いずれか一つでもエラーがあればデコード失敗と判断する。
【００９１】
次に、ステップＳＢ２において、２つの磁気データのいずれかがデコード成功と判断した場合は、図２に示すＡＡＭＶＡフォワード領域６７に格納されている第３トラック（トラック３）の磁気データおよびＡＡＭＶＡバックワード領域６８に格納されている第３トラック（トラック３）の磁気データをデコードする（ステップＳＢ３）。
【００９２】
これら２つのＡＡＭＶＡ規格でフォーマットされた磁気データのいずれかがデコードに成功したか失敗したかを判断する（ステップＳＢ４）。具体的には、デコードの成否は、配列の中で、上記した（１）〜（４）のチェックについて同様に行なう。なお、（１）〜（４）のチェックは、１つのキャラクタを構成する７ビットで行なわれる。
【００９３】
ステップＳＢ４において、これら（１）〜（４）のチェック全てにおいてエラーがなければデコード成功と判断した場合は、ＩＳＯ規格及びＡＡＭＶＡ規格のいずれでもデコードに成功していることから、磁気カード２のフォーマット判定不可としてカード種類判定不能エラーをアプリケーションプログラム８に通知し、本サブルーチンを終了する。図６に示すフローチャートに戻り、カード搬送方向判定処理ＳＡ４は行なわずに、終了する。
一方、ステップＳＢ４においてデコード失敗と判断した場合は、ＩＳＯ規格でデコードに成功していることから、ＩＳＯ規格のフォーマットで磁気記録されている磁気カードであるとしてアプリケーションプログラム８に通知し、本サブルーチンを終了する。図６に示すフローチャートに戻り、カード搬送方向判定処理ＳＡ４に進む。
【００９４】
ステップＳＢ２に戻り、ステップＳＢ２において、２つの磁気データの両者ともにデコード失敗と判断した場合は、図２に示すＡＡＭＶＡフォワード領域６７に格納されている第３トラック（トラック３）の磁気データおよびＡＡＭＶＡバックワード領域６８に格納されている第３トラック（トラック３）の磁気データをデコードする（ステップＳＢ５）。
【００９５】
これら２つのＡＡＭＶＡ規格でフォーマットされた磁気データのいずれかがデコードに成功したか失敗したかを判断する（ステップＳＢ６）。
【００９６】
具体的には、デコードの成否は、配列の中で、上記した（１）〜（４）のチェックについて同様に行なう。なお、（１）〜（４）のチェックは、１つのキャラクタを構成する７ビットで行なわれる。
【００９７】
ステップＳＢ６において、２つの磁気データのいずれかがデコード成功と判断した場合は、ＩＳＯ規格のフォーマットに基づく磁気データはデコードに失敗し、ＡＡＭＶＡ規格のフォーマットに基づく磁気データはデコードに成功していることから、磁気カード２は、ＡＡＭＶＡ規格のフォーマットで磁気記録されている磁気カードであるとしてアプリケーションプログラム８に通知し、本サブルーチンを終了する。図６に示すフローチャートに戻り、カード搬送方向判定処理ＳＡ４に進む。
【００９８】
ステップＳＢ６において、２つの磁気データの両者ともにデコード失敗と判断した場合は、図２に示すＡＡＭＶＡフォワード領域６７に格納されている第１トラック（トラック１）の磁気データおよびＡＡＭＶＡバックワード領域６８に格納されている第１トラック（トラック１）の磁気データをデコードする（ステップＳＢ７）。
これら２つのＡＡＭＶＡ規格でフォーマットされた磁気データのいずれかがデコードに成功したか失敗したかを判断する（ステップＳＢ８）。
【００９９】
具体的には、デコードの成否は、配列の中で、上記した（１）〜（４）のチェックについて同様に行なう。なお、（１）〜（４）のチェックは、１つのキャラクタを構成する７ビットで行なわれる。
【０１００】
ステップＳＢ８において２つの磁気データのいずれかがデコード成功と判断した場合は、トラック１に含まれるデータのキャラクタ数が所定の閾値（７６キャラクタ数）以下かそれよりも大きいかを判断する（ステップＳＢ９）。図４（ａ）、（ｂ）に示すように、第１トラック（トラック１）は、どちらのフォーマットであってもスタートコード及びエンドコードは、１つのキャラクタが７ビットで構成されるため、キャラクタ数の違いのみによってフォーマット判定が可能である。
【０１０１】
具体的には、図４（ａ）に示すように、ＩＳＯ規格のフォーマットの場合、最大キャラクタ数は７９であるが、この中には、スタートコードＳＴＸ（ＳＳ）、エンドコードＥＴＸ（ＳＥ）、エンドコードの３つのキャラクタが最小キャラクタ数として含まれている。そのため、データの最大キャラクタ数は、７９−３＝７６となる。一方、ＡＡＭＶＡ規格のフォーマットの場合は、図４（ｂ）に示すように、最小キャラクタ数が定義されていない。
【０１０２】
デコードの結果、データのキャラクタ数が所定の閾値よりも大きいと判断した場合はＡＡＭＶＡ規格のフォーマットで磁気記録された磁気カードと、所定の閾値以下と判断した場合はＩＳＯ規格のフォーマットで磁気記録された磁気カードとしてアプリケーションプログラム８に通知し、本サブルーチンを終了する。図６に示すフローチャートに戻り、カード搬送方向判定処理ＳＡ４に進む。
【０１０３】
ステップＳＢ８に戻り、２つの磁気データの両者ともにデコード失敗と判断した場合は、エラー通知を行うために、ＩＳＯ規格のフォーマットで磁気記録された磁気カードであるとしてアプリケーションプログラム８に通知する。なお、ステップＳＢ８において、２つの磁気データの両者ともにデコード失敗と判断した場合は、カード種類判定不能エラーとしてもよい。
【０１０４】
［カード搬送方向判定］
図８は、本実施の形態に係る磁気データの解析によってカード搬送方向判定を行う情報処理の流れを示すフローチャートであり、カード搬送方向判定処理（図６のステップＳＡ４）に関するサブルーチンである。なお、本実施の形態では、予め磁気カード２の磁気データのフォーマットが確定していることが前提となるため、ＩＳＯ規格のフォーマットで磁気記録された磁気データについて説明する。また、本実施の形態では、上述したフォーマット判定と同じ優先順位、すなわち、デコードの優先順位を第３トラック、第１トラック、第２トラックの順とする。なお、デコードの優先順位はこれに限定されることなく、第１トラック、または第２トラックから順番に処理してもよい。また、ＡＡＭＶＡ規格のフォーマットで磁気記録された磁気データについて行ってもよい。
【０１０５】
まず、図２に示すＩＳＯフォワード領域６５に格納されている第３トラック（トラック３）の磁気データおよびＩＳＯバックワード領域６６に格納されている第３トラック（トラック３）の磁気データをデコードする（ステップＳＣ１）。
なお、ＩＳＯフォワード領域６５に格納されている第３トラック（トラック３）の磁気データは第１の磁気データであり、ＩＳＯバックワード領域６６に格納されている第３トラック（トラック３）の磁気データは、第1の磁気データを第１の磁気データの前後関係を入れ替えた磁気データを第２の磁気データである。
【０１０６】
これら２つのＩＳＯ規格でフォーマットされた磁気データのいずれかがデコードに成功したか失敗したかを判断する（ステップＳＣ２）。
【０１０７】
具体的には、デコードの成否は、上述したフォーマット判定処理で説明したように、配列の中に、（１）スタートコードＳＴＸ（ＳＳ）の配列、すなわち、"０１０１１"がない。（２）つぎに、スタートコードＳＴＸ（ＳＳ）があった場合、エンドコードＥＴＸ（ＳＥ）の配列、すなわち、"１１１１１"がない。（３）さらに、エンドコードの次にあるチェックコードが誤っている。（４）スタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＳＳ）、チェックコードのパリティビットのパリティチェックの結果が正しいかどうかによって決定することができる。これら（１）〜（４）のチェック全てにおいてエラーがなければデコードは成功と判断し、いずれか一つでもエラーがあればデコード失敗と判断する。
【０１０８】
ステップＳＣ２において、第１の磁気データのみによってデコードに成功すればフォワード方向であると判定する。すなわち、ユーザの手動により磁気カード２を搬送する磁気カードリーダ１（手動式の磁気カードリーダ）において、磁気カード２を搬送するカード搬送方向が磁気ヘッド３によって記録された磁気記録の順方向であると判断する。
一方、第２の磁気データのみによってデコードに成功すればバックワード方向であると判定する。この場合は、カード搬送方向が磁気記録の逆方向であると判断する。
【０１０９】
このように、カード搬送方向が判定できた場合には、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１１０】
ステップＳＣ２に戻り、第１の磁気データ及び第２の磁気データの双方においてデコードに成功したと判断した場合、又は第１の磁気データ及び第２の磁気データの双方においてデコードに失敗したと判断した場合は、次に、第１トラック（トラック１）をＩＳＯ規格のフォーマットでデコードする（ステップＳＣ３）。
【０１１１】
本実施の形態では、図２に示すＩＳＯフォワード領域６５に格納されている第１トラック（トラック１）の第１の磁気データおよびＩＳＯバックワード領域６６に格納されている第１トラック（トラック１）の第２の磁気データをデコードする。
【０１１２】
これら２つのＩＳＯ規格でフォーマットされた磁気データのいずれかが、デコードに成功したか失敗したかを判断する（ステップＳＣ４）。具体的には、デコードの成否は、配列の中で、上記した（１）〜（４）のチェックについて同様に行なう。なお、（１）〜（４）のチェックは、キャラクタを構成する７ビットで行なわれる。
【０１１３】
デコードの成否はステップＳＣ２の判定と同様であり、ステップＳＣ４において、第１の磁気データのみによってデコードに成功すればフォワード方向であると判定する一方、第２の磁気データのみによってデコードに成功すればバックワード方向であると判定する。
【０１１４】
このように、カード搬送方向が判定できた場合には、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１１５】
ステップＳＣ４に戻り、第１の磁気データ及び第２の磁気データの双方においてデコードに成功したと判断した場合、又は第１の磁気データ及び第２の磁気データの双方においてデコードに失敗したと判断した場合は、次に、第２トラック（トラック２）をＩＳＯ規格のフォーマットでデコードする（ステップＳＣ５）。
【０１１６】
これら２つのＩＳＯ規格でフォーマットされた磁気データのいずれかが、デコードに成功したか失敗したかを判断する（ステップＳＣ６）。
【０１１７】
具体的には、デコードの成否は、配列の中で、上記した（１）〜（４）のチェックについて同様に行なう。なお、（１）〜（４）のチェックは、第３トラック（トラック３）と同様に、キャラクタを構成する５ビットで行なわれる。
【０１１８】
デコードの成否はステップＳＣ２やステップＳＣ４の判定と同様であり、ステップＳＣ６において、第１の磁気データのみによってデコードに成功すればフォワード方向であると判定する一方、第２の磁気データのみによってデコードに成功すればバックワード方向であると判定する。
【０１１９】
このように、カード搬送方向が判定できた場合には、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１２０】
ステップＳＣ６に戻り、第１の磁気データ及び第２の磁気データの双方においてデコードに成功したと判断した場合、又は第１の磁気データ及び第２の磁気データの双方においてデコードに失敗したと判断した場合は、次に、第３トラック（トラック３）に記録されている全キャラクタ数を第１の磁気データと第２の磁気データとで比較する（ステップＳＣ７）。第３トラック（トラック３）のキャラクタ数は、具体的には、図４（ａ）に示すように、ＩＳＯ規格のフォーマットの場合、最大キャラクタ数（「ＳＭＡＸ」の欄）は１０７であり、この中には、スタートコードＳＴＸ（ＳＳ）、エンドコードＥＴＸ（ＳＥ）、エンドコードの３つのキャラクタが最小キャラクタ数として含まれている。なお、デコードに失敗してキャラクタ数の算出が不可能な場合は、キャラクタ数を０とする。
【０１２１】
ステップＳＣ７では、例えば、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも多いと判断した場合は、フォワード>バックワードとして、フォワード方向であると判定する。一方、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも少ないと判断した場合は、フォワード<バックワードとして、バックワード方向であると判定し、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１２２】
ここで、カード搬送方向が磁気記録の逆方向である場合も、偶然に、スタートコードＳＴＸ（ＳＳ）、エンドコードＥＴＸ（ＳＥ）、エンドコードが出現する可能性があるので、デコードに成功することが考えられる。しかし、偶然にデコードできた場合のスタートコードＳＴＸ（ＳＳ）、データ、エンドコードＥＴＸ（ＳＥ）、エンドコードの全キャラクタ数は、正しくデコードできた場合の全キャラクタ数よりは少ないことが経験則でわかっている。すなわち、カード搬送方向が磁気記録の逆方向である場合に、磁気データには、スタートＳＴＸ（ＳＳ）、エンドコードＥＴＸ（ＳＥ）、チェックコードが存在する。しかし、偶然存在した場合は、図３に示すような配列で存在しておらず、データ領域内に混在して存在するようになっている。このように、データ領域内に擬似的なスタートＳＴＸ（ＳＳ）、エンドコードＥＴＸ（ＳＥ）、チェックコードが存在したとしても、磁気記録の正方向の場合のデータ領域内に記録されているキャラクタ数よりは少なくなることは明らかである。
【０１２３】
ステップＳＣ７において、第１の磁気データから得られた全キャラクタ数と第２の磁気データから得られた全キャラクタ数が同じと判断した場合は、フォワード＝バックワードとして、次に、第１トラック（トラック１）に記録されている全キャラクタ数を第１の磁気データと第２の磁気データとで比較する（ステップＳＣ８）。
【０１２４】
ステップＳＣ８では、ステップＳＣ７と同様に、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも多いと判断した場合は、フォワード方向であると判定する。一方、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも少ないと判断した場合は、バックワード方向であると判定し、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１２５】
さらに、ステップＳＣ８に戻り、第１の磁気データから得られた全キャラクタ数と第２の磁気データから得られた全キャラクタ数が同じと判断した場合は、フォワード＝バックワードとして、次に、第２トラック（トラック２）に記録されている全キャラクタ数を第１の磁気データと第２の磁気データとで比較する（ステップＳＣ９）。
【０１２６】
ステップＳＣ９では、ステップＳＣ７、ステップＳＣ８と同様に、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも多いと判断した場合は、フォワード方向であると判定する。一方、第１の磁気データから得られた全キャラクタ数が第２の磁気データから得られた全キャラクタ数よりも少ないと判断した場合は、バックワード方向であると判定し、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。
【０１２７】
さらに、ステップＳＣ９において、第１の磁気データから得られた全キャラクタ数と第２の磁気データから得られた全キャラクタ数が同じと判断した場合は、フォワード方向であると判定し、本サブルーチンを終了する。図６に示すフローチャートに戻り、終了となる。具体的には、例えば、カード搬送方向が何れの方向においてもデコードに失敗した場合には全キャラクタ数が０となる。
【０１２８】
このように、本実施の形態では、何れの方向においてもデコードに失敗し、キャラクタ数が０であった場合、エラー内容を上位装置６に通知するために、ＩＳＯ規格のフォーマットにてデコードした場合のエラー内容を通知するようにしている。なお、フォーマット判定時と同様に、「カード搬送方向判定不能エラー」として上位装置６に通知するようにしてもよい。
【０１２９】
以上、本発明の実施形態に係る磁気データのフォーマットの判定方法によれば、図４に示すように、ＩＳＯ規格とＡＡＭＶＡ規格のフォーマットの相違、具体的には、１つのキャラクタを構成するビット数（７ビットか５ビット）が異なる第３トラックを最優先に判定し、もし、判定が困難な場合には、データのキャラクタ数が異なる第１トラックを次に判定した（図７ではトラック２については判定していません）ので、デコードするトラックの優先順位を設けることにより、従来に比べて簡易な方法でフォーマット判定を最適に行うことができる。
【０１３０】
また、本発明の実施形態に係るフォーマット判定方法において、図７に示すように、第３トラックにおいてＩＳＯ規格，ＡＡＭＶＡ規格の両方でのデコードが成功した場合はカード種類判定不能とし、第３トラックのデコードに失敗し、第１トラックにおいてＩＳＯ規格，ＡＡＭＶＡ規格の両方でのデコードが成功した場合は、ＩＳＯ規格のフォーマットで磁気記録された磁気カードと判断する。第２トラックのみデコードに成功した場合も、ＩＳＯ規格のフォーマットで磁気記録された磁気カードと判断する。全てのトラックにおけるデコードに失敗した場合も、ＩＳＯ規格のフォーマットで磁気記録された磁気カードと判断して処理をすることができる。このように、本実施の形態では、ＩＳＯ規格のフォーマットはＡＡＭＶＡ規格のフォーマットに比べて汎用的であるので、ＩＳＯ規格のフォーマットで磁気記録された磁気カードとして処理している。なお、フォーマット判定不能エラーとして処理してもよい。
【０１３１】
さらに、カード搬送方向判定において、フォワード，バックワードの双方向でデコードに成功するか、双方向ともデコードに失敗した場合は、次の優先順位のトラックのデコードの成否で方向を判断し、全てのトラックにおいて方向の判別がつかない場合は、各トラックに記録されている全キャラクタ数の大きい方を読み取り方向とする。なお、本実施の形態では、全てのトラックにおいて全キャラクタ数の大小判別がつかないときは、フォワード方向として、上位装置６に通知し、つぎのコマンド（指令）を待つようにしている。
【０１３２】
本実施の形態では、ユーザの手動により磁気カードを搬送する磁気カードリーダ（手動式の磁気カードリーダ）において、磁気カードを搬送するカード搬送方向が磁気ヘッドによって記録された磁気記録の順方向または逆方向となる場合もある。そのため、全キャラクタ数に基づいて、カード搬送方向が判別することで、例えば、図２に示すデコードデータ領域６４内にある４つの領域６５から６７のいずれか１つの領域に格納されている磁気データを用いればよいので、上位装置６は、カード内の磁気情報のやり取りをより効率的に行なうことができる。
【０１３３】
［他の実施の形態］
上述したように、本実施形態では、カードを手で一方向に搬送しながら情報を読み取るスワイプ型の磁気カードリーダ１を採用するが、必ずしもこれに限られない。例えば、スワイプ型以外のカードを手で操作してカード情報を読み取る手動式でもよい。より具体的には、カードを手で挿入口へ差し込んで抜き取ることにより情報を読み取る挿入型（ディップ型）に採用することができる。また、モータで駆動される搬送機構によりカードを自動的に内部に取り込んで情報を読み取るモータ駆動式の磁気カードリーダに採用することができる。なお、モータ駆動式の磁気カードリーダでは、カード搬送方向が予め決められているので、図６に示すカード搬送方向判定処理を省略してもよい。
【０１３４】
また、磁気カードリーダ１のファームウェアプログラムに磁気データデコード用ミドルウエアが有する機能を組み込み、磁気データのデコード機能、フォーマット判定機能及びカード搬送方向判定機能を磁気カードリーダ１にて実行し、フォーマット判定結果及びカード搬送方向判定結果を上位装置６に通知することも可能である。なお、本実施の形態では、ＩＳＯ規格以外の特定のフォーマットとして、ＡＡＭＶＡ規格のフォーマットを用いたが、これ以外のフォーマットであってもよい。
【産業上の利用可能性】
【０１３５】
本発明に係る磁気データのフォーマットの判定方法は、複数種類の磁気カードのフォーマットを判定したり、磁気ヘッドによって記録された磁気記録の双方向に対してカード搬送可能な磁気カードリーダにおける磁気カードのカード搬送方向を判定したりできるものとして有用である。
【図面の簡単な説明】
【０１３６】
【図１】本発明の実施の形態に係る磁気カードリーダの概要を説明するための図である。
【図２】本発明の実施の形態に係る磁気カードリーダ及び上位装置の電気的構成の概略を示すブロック図である。
【図３】磁気カードに記録されている磁気データの構成構成を示す図である。
【図４】本実施形態に係る磁気データの規格ごとの基本構成を示す図である。
【図５】カードリーダのデータ復調動作を説明するための信号波形図である。
【図６】本実施形態に係る磁気データのフォーマット判定方法の情報処理の流れを示すフローチャートである。
【図７】本実施形態に係る磁気データの解析によってフォーマット判定を行う情報処理の流れを示すフローチャートである。
【図８】本実施形態に係る磁気データの解析によってカード搬送方向判定を行う情報処理の流れを示すフローチャートである。
【符号の説明】
【０１３７】
１  磁気カードリーダ
２  カード
３  磁気ヘッド
４  復調部
５  ＣＰＵ
６  上位装置
７  磁気データデコード用ミドルウエア
８  アプリケーションプログラム
２０  フレーム
２１  走行基準面
３５  磁気ストライプ
５０，５０'  Ｉ／Ｆ部
６０  制御部
７０  インターフェース部
【図１】
2011054065.tif 000003
【図２】
2011054065.tif 000004
【図３】
2011054065.tif 000005
【図４】
2011054065.tif 000006
【図５】
2011054065.tif 000007
【図６】
2011054065.tif 000008
【図７】
2011054065.tif 000009
【図８】
2011054065.tif 000010