(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本発明の実施の形態を説明する。
(1)実施形態の構成
(磁気カードリーダライタの概略構成)
図1は、磁気カードリーダライタ1内部の構成を示す図である。
図2は、
図1における磁気カードリーダライタ1のI−I線で切断した図である。
【0015】
本実施形態では、磁気カードリーダライタ1は、例えば、プリペイドカードを用いてサービスの料金や商品の代金を支払うための装置、より具体的には、洗車場や駐車場の料金支払機、POS(Point of Sale)システムの端末、自動販売機等に接続される。また、これらの装置と磁気カードリーダライタ1とが一体化されていてもよい。
【0016】
磁気カードリーダライタ1は、磁気カード20に記録されたデータの読み取りと、磁気カード20へのデータの書き込みとを行うための装置である。磁気カードリーダライタ1は、
図1、2に示すように、筐体10内に、磁気カード2に記録されているデータの読み取りおよび磁気カード20へのデータの書き込みを行うカード処理部2と、磁気カードリーダライタ1の全体や各種の制御を行う制御部9の各構成を実装する回路基板とが設けられている。制御部9は、外部の上位装置12(
図5参照)と、例えば、RS232C等の通信回線を介して電気的に接続されている。
【0017】
磁気カード20は、
図1、2のX軸方向(左右方向)に搬送される。A方向が磁気カード20の挿入方向であり、B方向が排出方向である。また、
図1、2のZ軸方向は、磁気カード20の厚さ方向であり、Y軸方向は、磁気カード20の幅方向(磁気カード20の短手方向における幅方向)である。
【0018】
筐体10には、磁気カード20が挿入、排出されるカード挿入口3が形成されており、筐体10の内部には、カード挿入口3から挿入された磁気カード20が搬送されるカード搬送路4が形成されている。
カード搬送路4は、カード挿入口3からX軸方向に向かって延びるように形成され、Y軸方向の両側からカード搬送路4を挟むように、規制部材8(81、82)が設けられている。規制部材81は、
図2における磁気ヘッド6側に設けられており、規制部材82は、カード搬送路4を挟んで規制部材81と対向する位置に設けられている。規制部材81の内側面(カード搬送路4に面した面)は、ガイド基準面となっており、磁気カード20は、ガイド基準面に押し付けられるようにして搬送され、磁気カード20がY軸方向に逸脱することなく、磁気ヘッド6上を確実に通過する。
また、
図1、2に示すように、磁気カードリーダライタ1には、奥側(X軸方向の右側)に、磁気カード20の端部が筐体10から露出するように開口部31が形成されている。
【0019】
カード処理部2は、カード搬送路4で磁気カード20を搬送するためのカード搬送機構5と、データの読み取りおよび書き込みを行う磁気ヘッド6と、カード搬送路4内の磁気カード20の有無を検出するカード検出センサ(フォトセンサ)7とを備えている。
【0020】
カード搬送機構5は、カード搬送路4に沿って磁気カード20を搬送する機構であり、2個の駆動ローラ51、53と、各駆動ローラ51、53と対向する位置に配置された従動ローラ52、54と、駆動ローラ51、53を回転駆動する駆動モータ50と、駆動用モータ50の動力を駆動ローラ51、53に伝達する動力伝達機構とを備えている。また、2個の駆動ローラ51、53は、カード20の搬送方向で所定の間隔をあけた状態で配置されている。
【0021】
動力伝達機構は、具体的には、
図1、2に示すようにプーリ55、56、57と、無端ベルト58、59とで構成されている。駆動モータ50の軸とプーリ56には、無端ベルト58が掛け回されている。駆動ローラ51とプーリ55は、プーリ56と同一の軸に設けられている。プーリ55とプーリ57には、無端ベルト59が掛け回されている。駆動ローラ53は、プーリ57と同一の軸に設けられている。駆動モータ50が発生した駆動力は、無端ベルト58を介してプーリ56に伝達され、プーリ55及び駆動ローラ51がこの駆動力によって回転する。プーリ55に伝達された駆動力は、無端ベルト59を介してプーリ57に伝達され、駆動ローラ53がこの駆動力によって回転する。従動ローラ52、54は、カード搬送路4を挟んでそれぞれ駆動ローラ51、53と対向する位置に設けられており、磁気カード20の搬送に伴って従動回転する。駆動モータ50が
図1のa方向に回転すると、磁気カード20がA方向に搬送され、駆動モータ50がb方向に回転すると、磁気カード20がB方向に搬送される。
【0022】
図3は、磁気ヘッド6の構造を示す図である。磁気ヘッド6は、パーマロイ等の強磁性体の磁気コア61を用いて、磁気コア61と磁気コア61の間に僅かな隙間をあけて、そこに生ずる磁界を用いて磁気カード20に形成された磁気ストライプ21上を接触・摺動することによって、磁気データ20の書き込み又は読み込みを行う。より具体的には、
図5に示すように、磁気ヘッド6は、磁気ギャップ(磁気スペーサ)65を挟んで対向する磁気コア61と、磁気コア61に巻回されたライト用巻き線62(1次コイルの一例に相当する)と、磁気コア61に巻回されたリード用巻き線63(2次コイルの一例に相当する)と、これらを格納するケース64と、を有している。このように、磁気ヘッド6は、リード用巻き線63(リードコイル)が巻回された磁気コア61(リードコア)とライト用巻き線62(ライトコイル)が巻回された磁気コア61(ライトコア)が磁気ギャップ65を挾んで対向する、いわゆるシングルギャップ形式のヘッド構造を有している。すなわち、磁気ヘッド6は、
図5に示すように、磁気ストライプ21から磁気データを読み取るリード部(リードヘッド)6aと、磁気ストライプ21に磁気データを書き込むライト部(ライトヘッド)6bとに相当する。ライト部6bは、ライト用信号線を介して書込制御部95に接続されている。リード部6aは、リード用信号線を介して読取制御部94に接続されている。
【0023】
ライト用巻き線62には、磁気カード20に対する磁気データの書き込み電流が流れ、リード用巻き線63には、磁気ギャップ65近傍の磁束変化に基づいて電磁誘導により電流が流れるようになっている。ライト用巻き線62に書き込み電流を流すと、ライト用巻き線62内に誘導磁束が発生するとともに、磁気コア61に沿って形成された磁路に誘導磁束が発生する。そして、磁気コア61に沿って形成された磁路に誘導磁束が発生したことに起因して、磁気ギャップ65近傍の磁束が変化し、電磁誘導によりリード用巻き線63に誘導電流が発生する。
【0024】
カード検出センサ7は、カード搬送路4に沿って搬送される磁気カード20の位置を検出するセンサであり、例えば、発光素子と受光素子とを有する光学式のセンサ(フォトセンサ)である。カード検出センサ7は、第1センサ71と、第2センサ72と、第3センサ73との3つのセンサで構成されている。各センサ71、72、73は、
図1等に示すように、発光素子71a、72a、73aと受光素子71b、72b、73bとをそれぞれカード搬送路4を挟んで互いに対向させて構成されている。なお、発光素子71a、72a、73aは、例えば発光ダイオードであり、受光素子71b、72b、73bは、例えばフォトトランジスタである。
【0025】
第1センサ71は、カード挿入口3近傍と駆動ローラ51との間の位置に設けられており、第2センサ72は、駆動ローラ51と磁気ヘッド6との間の位置に設けられており、第3センサ73は、磁気ヘッド6と駆動ローラ53との間の位置に設けられている。
カード検出センサ7(71、72、73)は、
図2に示すように、磁気カード20の搬送方向において、磁気ヘッド6とカード検出センサ7とがY軸方向の位置が略一致するように配置されている。また、カード検出センサ7は、第1センサ71と第2センサ72との距離(間隔)と、第2センサ72と第3センサ73との距離(間隔)とが、いずれも磁気カード20の長さLよりも短くなるように配置されている。
【0026】
(磁気カード)
図4は、磁気カード20を示す図であり、(a)は磁気カード20の平面図、(b)はデータのフォーマットを示す模式図である。
磁気カード20は、樹脂や紙で作製されたカードの表面に帯状の磁気ストライプ21を形成したものである。本実施形態では、磁気カード20は、いわゆるプリペイドカードであり、残高、残高が書き込まれた日を表す日付、有効期限等のデータが磁気ストライプ21に記録される。磁気ストライプ21には、同一のデータが記録される複数の記録領域が形成されており、本実施形態では、
図4に示すように、第1記録領域22と第2記録領域23が形成されている。
【0027】
第1記録領域22と第2記録領域23には、
図4(b)に示すデータフォーマットに従ってデータが記録される。具体的には、磁気カード20が磁気カードリーダライタ1に挿入される方向(
図4(b)の右側から)順に、データの開始を示すスタートコードが記録されるスタートコード領域221、231と、データが記録されるデータ領域222、232と、データの終わりを示すエンドコードが記録されるエンドコード領域223、233と、データ領域222、232から読み取ったデータが正しいかどうかを検査するためのエラー検出コードが記録されるエラー検出コード領域224、234となっている。本実施形態では、エラー検出コードは、周知であるCRC(巡回冗長検査)方式が採用され、各記録領域22(23)のスタートコード領域221(231)、データ領域222(232)、エンドコード領域223(233)の3つの領域に記録されたデータを用いてCRC符号が算出され、各エラー検出コード領域224(234)に記録される。
【0028】
(磁気カードリーダライタの電気的構成)
図5は、磁気カードリーダライタ1の電気的構成を示すブロック図である。
磁気カードリーダライタ1は、上位装置12に通信回線、例えば、RS−232Cケーブルを介して接続されている。
【0029】
上位装置12は、下位装置に対しコマンド等により動作を指令し、磁気カードリーダライタ1、入力装置13及び表示装置14は、上位装置12からの指令(コマンド等)に従って動作する下位装置に相当する。上位装置12は、図示しないが、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)及び外部I/F(Interface)等の各種ハードウェアを有しており、上位装置12を統合的に制御する機能、磁気カードリーダライタ1等との通信機能などを有している。すなわち、ROMなどには、上位装置12全体を統合的に制御するプログラム、磁気カードリーダライタ1等との通信を行うためのプログラム、及び磁気カードリーダライタ1の制御プログラムなどが格納されており、CPUは、適宜それらのプログラムを読み出して、RAMをワーキングエリアとしつつ各種処理を実行する。
【0030】
入力装置13は、例えば複数のキーなどの操作子を備えた入力手段である。ユーザが入力装置13を操作すると、入力装置13がユーザの操作を表す信号を上位装置12に供給し、上位装置12のCPUがこの信号に応じた処理を実行する。
【0031】
表示装置14は、例えば液晶パネル及び液晶駆動回路を有する表示手段であり、上位装置12のCPUから送信された命令に応じて画像を表示する。なお、表示装置14にタッチパネルの機能を備えることにより、表示装置14が入力装置13を兼ねるように構成してもよい。
【0032】
磁気カードリーダライタ1は、上位装置12からの命令(コマンド等)に従って動作する下位装置であり、本実施形態では、磁気カードリーダライタ1のほかに、入力装置13及び表示装置14が通信回線を介して上位装置12に接続されている。
【0033】
磁気カードリーダライタ1の各種の制御を行う制御部9は、回路基板に実装されている。すなわち、以下に説明するCPU91、ROM92、RAM93、読取制御部94、書込制御部95及び外部I/F(Interface)96は、回路基板に実装されている。
【0034】
CPU91は、磁気カードリーダライタ1全体の制御を統括するとともに、RAM93をワークエリアとして用いてROM92に記憶された制御プログラムに従って、復号手段911、符号化手段912、判定手段913及び通知手段914の機能を実現するとともに、読取制御部94、書込制御部95及び外部I/F96の動作を制御する。
【0035】
CPU91は、磁気ストライプ21上の第1記録領域22と第2記録領域23に対して、磁気ヘッド6によりデータの読み取り又は書き込みを行う。
CPU91は、CRCチェックなどにより、読み取ったデータが正常か否かを判定するとともに、データの方向が正常な方向か否かを判定することにより、データが正常か否かを判定する。
なお、磁気ストライプ21の磁気的特性、データの記録方式は、例えば、日本工業規格(JIS)に基づくものとしてもよい。
【0036】
RAM93は、読取データバッファ93aと書込データバッファ93bを有する。読取データバッファ93aは、磁気カード20から読み取ったデータの一時的な記憶に用いられ、書込データバッファ93bは、磁気カード20に書き込むデータの一時的な記憶に用いられる。より詳細には、読取データバッファ93aには、第1記録領域22に記録されているデータと、第2記録領域23に記録されているデータが格納される。第1記録領域22のデータとしては、読取制御部94で出力された2値データ及び復号手段911で復号されたデータ(文字コード)が格納される。第2記録領域23のデータとしては、2値データ及び復号されたデータ(文字コード)が格納される。書込データバッファ93bには、上位装置12から送信される更新データや、後述するが、判定手段913で正常なデータとして判定されたデータを格納する。
【0037】
RAM93には、状態フラグ93cが書き込まれる。状態フラグ93cは、磁気カードリーダライタ1の動作モード、すなわち、通常モード中と補正モード中とのいずれかを示すためのフラグである。
この状態フラグ93cは、磁気カード20を待機している状態では通常モードであり、後述する磁気情報書込処理を実行する場合は補正モードを示すデータが設定される。一方、補正モードを示すデータが書き込まれている場合には、その後の処理を通常モードへ移行させるために、状態フラグ93cには通常モードを示すデータが設定される。
【0038】
外部I/F96は、例えばRS−232Cインターフェースであり、RS−232Cケーブルによって上位装置12の外部I/F(図示せず)に接続されている。
【0039】
リード部(リードヘッド)6aとしての磁気ヘッド6、読取制御部94、復号手段911、CPU91、読取データバッファ93aによって読取手段が構成され、読取手段は、磁気カード20からのデータの読み取りを行う機能を有する。
【0040】
読取制御部94は、波形整形回路941と復調回路942とを有する。波形整形回路941は、例えばバンドパスフィルタ、微分回路、コンパレータ等を有し、リード部(リードヘッド)6aとしての磁気ヘッド6から出力されたアナログ信号のピーク値を検出して矩形波を生成し、この矩形波を復調回路942に出力する。より詳細に説明すれば、磁気ヘッド6から得られるアナログ信号の信号波形は、記録電流波形の立ち上がりおよび立ち下がり時点が正負のピークとなって現れる。換言すると、磁気的に記録されている記録データの磁気極性の反転位置で正負のピークが現れる。このアナログ信号波形は、波形整形回路941に供給されて、ピーク位置が判別される。
【0041】
復調回路942は、波形整形回路941から出力された矩形波を復調する。具体的には、復調回路942は、記録電流波形に対応するデジタル信号波形が得られる。すなわち、波形整形回路941から出力された矩形波を周波数変調により「0」か「1」の2値データに変換する。本実施形態では、周波数変調の方式としてF2F変調を用いる。この場合、復調回路942は、所定の時間内にピークがない場合には「F」すなわち「0」に変換し、ピークがある場合には「2F」すなわち「1」に変換する。復調回路942は、このようにして復調された2値データを、一旦、読取データバッファ93aに格納する。より詳細に述べれば、磁気記録のための記録電流波形は、周波数Fのパルス信号と、周波数2Fのパルス信号の組み合わせからなり、2値データ「0」は低い周波数Fのパルス信号により規定され、2値データ「1」は高い周波数2Fのパルス信号により規定される。従って、(000010・・)と続く2値データが表されている。
【0042】
復号手段911は、CPU91がソフトウェアを実行することによって実現される機能である。復号手段911は、復調回路942によって復調された2値データを1文字分ずつのビット列(本実施形態では7ビット)に分割し、文字コード表を参照してビット列を復号する。より具体的には、2値データは読取データバッファ93aに格納されるので、復号処理を行う際、復号手段911は、読取データバッファ93aに格納された2値データを読み出し、復号処理を実施する。復号されたデータ(文字コード)は、読取データバッファ93aに記憶される。
【0043】
書込データバッファ93b、CPU91、符号化手段912、書込制御部95及びライト部(ライトヘッド)6bとしての磁気ヘッド6によって書込手段が構成され、書込手段は、磁気カード20へのデータの書き込みを行う機能を有する。
【0044】
符号化手段912は、CPU91がソフトウェアを実行することによって実現される機能である。符号化手段912は、書込データバッファ93bから読み出したデータを文字コード表を参照して2値データに変換し、この2値データを書込制御部95に出力する。
【0045】
書込制御部95は、書込駆動回路951と変調回路952とを有する。変調回路952は、符号化手段912から出力された2値データをF2F変調により変調し、変調されたデータを書込駆動回路951に出力する。書込駆動回路951は、変調回路952によって変調されたデータに基づいて、ライト部(ライトヘッド)6bとしての磁気ヘッド6に交番磁界を発生させるための交番駆動電流を生成し、交番駆動電流を、ライト部(ライトヘッド)6bとしての磁気ヘッド6に出力する。
【0046】
判定手段913は、読取制御部94によって読み取られたデータの誤りの有無を記録領域毎に判定する。具体的には、CPU91は、第1記録領域22と第2記録領域23から読み取られたデータを読取データバッファ93aから読み出し、読み出されたエラー検出コード領域224、234に格納されているエラー検出コードを取り出し、このエラー検出コードによって各データの誤りの有無を判定する。
【0047】
具体的には、エラー検出コードには、4つのタイプがある。タイプ1:第1記録領域22、第2記録領域23の2つのエラー検出コードが(読み込まれたデータは)正当である旨を示すコードである場合、タイプ2:第1記録領域22、第2記録領域23の2つのエラー検出コードが(読み込まれたデータは)異常(エラー)である旨を示すコードである場合、タイプ3:第1記録領域22のエラー検出コードが正当であるが、第2記録領域23は異常(エラー)である場合、タイプ4:第1記録領域22が異常(エラー)であるが、第2記録領域23が正当である場合である。このうち、タイプ1、タイプ2の両者が同じコードである場合、すなわち、両者とも正当である場合または異常(エラー)である場合には、そのまま上位装置12に報告する。一方、タイプ3、タイプ4の場合、すなわち、2つのコードが異なっている場合には判定手段913は補正機能を用いた処理(補正処理)を実行する(補正モード)。
【0048】
判定手段913は、データを補正する補正機能を有している。この補正機能は、磁気カード20に形成された第1記録領域22、第2記録領域23内に記録された同一のデータの読み取りを行い、いずれかのデータの読み取り結果が異常(エラー)である場合、正当である旨を示す、読み取られたデータを用いて、再度書き込み処理を実行し、異常(エラー)とである旨を示すデータを正当なデータに補正する機能である。
【0049】
通知手段914は、判定手段913の結果を上位装置12に報告する。また、通知手段914は、判定手段913の補正処理を実行し、書込制御部95による正当なデータを用いて再度書き込みが行われた場合に、異常(エラー)である旨を示すデータを持つ記録領域に正当なデータを再度書き込む補正処理を実行した旨を上位装置12に通知する。さらに、通知手段914は、書込手段913によって書き込まれた(正当な)データを上位装置12に通知する。具体的には、読取制御部94は、上述の書込手段による書き込みの行われた記録領域から磁気ヘッド6によりデータを読み取り、判定手段913は、当該データの誤りの有無を判定し、通知手段914は、当該データに誤りがないと判定手段913によって判定された場合に、当該データを上位装置12に通知する。
【0050】
(2)本実施形態の動作
次に、
図6から
図12に示すフローチャート及び
図13に示す動作説明図を参照して、磁気カードリーダライタ1で行われる各処理について説明する。
図6は、磁気カードリーダライタ1の動作手順において実行されるメイン処理を示すフローチャートである。
図13は、本実施形態に関わる要部の機構および動作を示す図である。磁気カードリーダライタ1は、次のステップを実行する。
【0051】
ステップS1は、磁気情報読取処理である。本実施形態では、磁気カード20を
図13に示すようにA方向に搬送し、磁気ヘッド6で磁気ストライプ21に記録されている磁気情報を読み取る。具体的には、磁気ストライプ21上に形成された、第1記録領域22及び第2記録領域23から磁気情報を読み取る。
【0052】
次に、ステップS2は判定処理である。第1記録領域22及び第2記録領域23に記録されている磁気データをそれぞれ読み取り、復号されたデータについて作成されたエラー検出コードを判定する。
【0053】
ステップS3は、磁気情報書込処理である。読み取りが初めてであれば、磁気カードリーダライタ1が補正モード(補正処理を実行するモード)に変更されて補正処理を実行し、正しい磁気情報を書き込む処理を実行する。一方、補正モードで読み取りが実施された場合には、そのまま上位装置12に通知する。
【0054】
ステップS4は、通知処理であり、上位装置12に磁気カードリーダライタ1で処理された結果を通知する。通知される結果は、具体的には、「第1記録領域22、第2記録領域23の両者ともに正しい磁気情報が記録されている。」、「補正処理を実行し、両者ともに正しい磁気情報が記録されている。」、「補正処理を実行したが、どちらか一方がエラーとなった。」、「1回目の読み取りエラーチェックと、2回目のエラーチェックとで同じ記録領域であるか、別の記録領域である。」等である。
【0055】
次に、
図7は、ステップS1で示した磁気情報読取処理の手順を示すフローチャートである。
ステップS11では、磁気カードを検出する。具体的には、磁気カードリーダライタ1のカード挿入口3に磁気カード20が挿入されると、磁気カード20の(前)端部が、カード検出センサとしての第1センサ71を通過する(
図13(A)参照)。第1センサ71の発光素子71aが発した光が磁気カード20で遮られると、受光素子71bがカード検出信号をCPU91に出力する。第1センサ71を通過することにより、磁気カード20が磁気カードリーダライタ1のカード挿入口3内に挿入されたことが検出される。第1センサ71から検知信号が、磁気カードリーダライタ1の外部I/F96を介して上位装置12に送信される。上位装置12は、その検知信号を受信し、磁気カード20のデータの読み取りを実行させる旨の指示(コマンド等)を磁気カードリーダライタ1に送信する。磁気カード20の挿入が検出されたならば(ステップS11:YES)、ステップS12に進む。
【0056】
ステップS12では、磁気カード20を搬送する。具体的には、磁気カードリーダライタ1が上位装置12からの指示(コマンド等)により、挿入された磁気カード20に記録されているデータの読み取り動作を開始する。駆動モータ50を起動すると無端ベルト58、59を介して接続される駆動ローラ51、53が回転する。駆動ローラ51と従動ローラ52の間に挟まれている磁気カード20は、磁気カードリーダライタ1の前方(カード挿入口3)から後方(
図6の右側)へ向けて搬送される。
【0057】
ステップS13では、磁気データを読み取る。磁気カード20がA方向に搬送されると、磁気ヘッド6により磁気カード20に記録されているデータの読み取りが行われる。詳細は、後述する
図8に示す磁気データの読取処理手順を示すフローチャートで説明する。
磁気カードリーダライタ1は、さらに、カード搬送路4に配置された磁気ヘッド6を用いて、磁気ストライプ21上に記録されているデータの読み取り動作を実行する。すなわち、駆動ローラ51と従動ローラ52が磁気カード20を挟み込みながらカード搬送路4内を搬送する。磁気カード20をさらに搬送させることで、磁気ヘッド6が磁気カード20の磁気ストライプ21に接触する。磁気ストライプ21に磁気ヘッド6を接触させつつ、磁気ストライプ21の長手方向に磁気カード20を移動させる。
【0058】
図8は、磁気情報を読み取る手順を示すフローチャートである。
ステップS131では、第1記録領域22に記録されている磁気データを読み取る。上述のように、磁気カード20がカード搬送路4内を搬送中、磁気ヘッド6は磁気カード20上に形成された磁気ストライプ21上を摺動する(
図13(B)を参照)。第2センサ72によって磁気カード20の前端の通過が検知されたならば、磁気ヘッド6がリード部6aとして作用し、磁気ヘッド6がデータに応じたアナログ信号を出力する。具体的には、磁気ヘッド6は、磁気ストライプ21内の第1記録領域22を摺動する。磁気カード20の先端(前方に向かって)が、
図6に示す第2センサ72を遮光するとセンサ出力信号がONする。これを検出して磁気読み取り処理を実行する(開始する)。磁気カード20が磁気ヘッド6上を通過してデータを読み取り、磁気ヘッド6から出力されるアナログ信号が制御部9(CPU91)に入力される。磁気ヘッド6で第1記録領域22から読み取られたアナログ信号は、読取制御部94に入力され、波形整形回路941、復調回路942を介して、2値データとして処理される。
なお、第1記録領域22、第2記録領域23からデータを読み取るタイミングは、例えば、カード検出センサとしての第2センサ72によって磁気カード20の前端の通過が検出されてからの経過時間で特定される。
【0059】
ステップS132では、磁気データを復調する。本実施形態では、磁気ヘッド6で読み取られたデータは、波形整形処理および復調処理が行われる。具体的には、磁気ヘッド6で読み取られたデータは、磁気ヘッド6の磁気コア61に巻回されているリード用巻き線63を介して読取制御部94に送信される。このアナログ信号は、読取制御部94を構成する波形整形回路941によってF2F変調方式(周波数変調の方式の一つ)による矩形波に整形され、復調回路942によって「0」、「1」の2値データに変換される。すなわち、磁気ヘッド6で読み取られたデータは、2値データに復調される。
【0060】
ステップS133では、復調されたデータを格納する。復調されたデータ、すなわち、2値データは、RAM93に格納される。具体的には、復調された2値データは、一旦、RAM93の読取データバッファ93a内の所定の領域に、第1記録領域22の2値データとして記録される。
【0061】
ステップS134では、第2記録領域23に記録されている磁気データを読み取る。具体的には、引き続き、駆動用モータ50は同じ方向に回転を継続し、磁気カード20は、搬送方向を変えずに搬送される。磁気カードリーダライタ1は、カード搬送路4内を搬送する磁気カード20の第2記録領域23に記録されているデータを、磁気ヘッド6でアナログ信号として出力され、同様にして、読取制御部94の波形整形回路941、復調回路942を介して、2値データとして処理される。
【0062】
ステップS135では、磁気データを復調する。上述したステップS132に示す第1記録領域22と同様に、第2記録領域23に記録されている磁気データが、読取制御部94に送信される。復調された2値データは、一旦、RAM93の読取データバッファ93a内の所定の領域(第1記録領域22のデータが格納されている領域以外の領域)に格納される。
【0063】
ステップS136では、復調されたデータを格納する。上述したステップS133に示す第1記録領域22と同様に、第2記録領域23に記録されている磁気データは、第1記録領域22の復調されたデータが格納された領域以外の領域に格納される。
【0064】
ステップS137では、2値データを復号する。本実施形態では、読取データバッファ93a内の2値データに対して7ビットのビット列の構成に従い第1記録領域22のデータ編集を実施する。具体的には、変換された2値データは、CPU91内の復号手段911に送信され、復号手段911によって復号される。すなわち、磁気ヘッド6が、第1記録領域22、第2記録領域23内のデータを読み取り、制御部9内で2値データに処理された後、読取データバッファ93a内に格納された2値データに対して、復号手段911により、データ復号処理を実行する。さらに、2値データによる文字コードの表現形態としては、7ビットコード体系を用いており、この体系では、16種類の文字(1〜F)を表現する。復号手段911では、これら16種類の文字に対応するビット列を予め記憶しており、再生された2値データを7ビット分毎に、これらのビット列と比較することにより、データを再生する。復号されたデータは、第1記録領域22の読取データバッファ93a内に格納される。格納されるデータは、
図4に示すデータフォーマットに従ってデータ領域ごとに、RAM93内の読取データバッファ93a内に記録される。このように、2値データが7ビットごとに対応する文字コードに変換され、スタートコード領域2212、データ領域222、エンドコード領域223に格納される。
【0065】
ステップS138では、全データを用いてエラー検出コードを計算する。具体的には、読み取られたデータについて、CRC方式により誤り検出を実行する。本実施形態では、第1記録領域22について、スタートコード領域221、データ領域222、エンドコード領域223に記録されている全データを用いてエラー検出コードを計算し、求めた値を、エラー検出コード領域224に記録する。同様にして、磁気ヘッド6が読み取った第2記録領域23内の復号されたデータについて、CRC方式により誤り検出を実行する。計算で求めた値を、エラー検出コード領域234に記録する。
【0066】
ステップS138が終了した後、
図7に示すステップS14が処理され、磁気カード20の搬送を停止する。具体的には、磁気カード20はカード搬送路4上の後方(
図6において右側)に搬送され、第3センサ73上を磁気カード20の後端が通過してセンサ出力はOFFとなる。第3センサ73によって磁気カード20の後端の通過が検知されたならば、第3センサ73が、これを検出して、駆動モータ50を停止する。駆動モータ50が停止した状態は、駆動ローラ51及び従動ローラ52に磁気カード20が挟持された状態でカード搬送機構5による磁気カード20の搬送を停止させる。
図13(c)は、磁気カード20の搬送を停止させた時点の磁気カード20の位置を示す図である。また、磁気カード20が停止したとき、磁気カード20に記録されているデータを磁気ヘッド6は読み取る動作も終了する(信号の読み取り処理を禁止する)。
【0067】
次に、
図6のステップS2では、読み取られたデータについて、判定処理が行われる。
図9は、ステップS2に示す判定処理の手順を示すフローチャートである。
ステップS21では、読み取ったデータが正当であるか、異常(エラー)であるか(の有無)を記録領域毎に判定する。具体的には、CPU91(判定手段913)が、
図4(b)に示す第1記録領域22に形成されているエラー検出コード領域224及び第2記録領域23のエラー検出コード領域234に記録されているデータにより誤りの有無を判定する。CPU91は、読取データバッファ93aに格納された第1記録領域22のエラー検出コード領域224内に格納されたエラー検出コードを読み出す。同様に、第2記録領域23のエラー検出コード領域234内に格納されたエラー検出コードを読み出す。そして、CPU91は、読み出されたエラー検出コードによって各データの誤りの有無を判定手段913で判定する。
【0068】
ステップS22では、データが正当である記録領域、すなわち、データの異常(エラー)がない記録領域と、データの異常(エラー)がある記録領域とが混在するか否かを判定する。具体的には、読取データバッファ93a内に格納されている第1記録領域22、第2記録領域23のエラー検出コード領域224、234内に記録されているデータから以下の4つの読み取り結果のいずれかを得る。
【0069】
読取結果1:第1記録領域22と第2記録領域23のどちらのデータも正当であると判定された場合、すなわち、エラー検出コード領域内に格納されているデータ(の結果)がともに正常な場合は、正常終了とする。
読取結果2:第1記録領域22と第2記録領域23の両方でデータが正当でなく、データの誤りがあると判定された場合、すなわち、エラー検出コード領域内に格納されているデータ(の結果)がともに異常(エラー)な場合は、異常終了とする。
【0070】
読取結果1と判定された場合、又は、読取結果2と判定された場合については、次のとおりの処理となる。
読取結果1、読取結果2の場合には、2つの第1記録領域22及び第2記録領域23は、エラー検出コード領域224(234)内に記録されているデータが、両者ともに同じデータ、すなわち、データの誤りがある(異常(エラー)がある)記録領域とデータの誤りがない(正当である)記録領域とが混在しないと判定し(ステップS22:YES)、つぎの通知処理(ステップS4)に進む。
【0071】
読取結果1、読取結果2の場合には、ステップS4に進み、
図6に示すフローチャートにより、上位装置12からの命令(コマンド等)に従い、第1記録領域22および第2記録領域23の読み取り結果を上位装置12に通知する。その後、上位装置12からの次の指令(コマンド等)を受信するまで待機する。
【0072】
ステップS22において、エラー検出コード領域224、234のいずれかに記録されているデータが異常(エラー)を示すデータがある場合には、第1記録領域22と第2記録領域23のいずれか一方でデータの誤りがある(異常(エラー)がある)と判定され、他方ではデータの誤りがない(正当である)と判定された場合には、データの誤りがある記録領域とデータの誤りがない記録領域とが混在すると判定し(ステップS22:NO)、ステップS23に進む。具体的には、次のとおりである。
【0073】
読取結果3:(第1記録領域22内の)エラー検出コード領域224に記録された結果が正当であるが、(第2記録領域23内の)エラー検出コード領域234に記録された結果が異常(エラー)がある場合。
読取結果4:読取結果3の逆の場合、すなわち、エラー検出コード領域224に記録された結果が異常であるが、エラー検出コード領域234に記録された結果が正当な場合。
【0074】
読取結果3、読取結果4の場合には、磁気カードリーダライタ1は、CPU91の判定手段913が持つデータを補正する補正機能(補正モード)を動作させる。本実施形態では、RAM93に形成された状態フラグ93cを、磁気カードリーダライタ1の通常モードから、補正モードに切り替える(ステップS23:NO)。
もし、ステップS23において、補正モードである場合には、そのまま終了する(ステップS23:YES)。
【0075】
次に、
図6のステップS3では、磁気情報書込処理、すなわち、補正処理を実行し、正しい磁気情報を書き込む。
図10は、磁気情報書込処理の手順を示すフローチャートである。
図11は、磁気情報を書き込む手順を示すフローチャートである。
磁気カードリーダライタ1が、判定手段913で判定した結果に基づき、補正処理を実施することについて説明する。データを補正する補正処理を実行する場合に、読取結果3の場合では第1記録領域22に格納されているデータを正当なデータ(有効なデータ)として、第2記録領域23に書き込まれたデータ、すなわち、異常(エラー)であるデータを補正する。また、読取結果4の場合では第2記録領域23に格納されているデータを正当なデータ(有効なデータ)として、第1記録領域22に書き込まれたデータを補正する。
【0076】
ステップS31では、正当なデータを用いて磁気情報書込処理に使用する補正データを作成する。具体的には、読取結果3、読取結果4の場合に、この正当なデータを書き込み、データを補正する補正処理を実行する。
まず、CPU91は、ステップS103でエラー検出コード領域224(または234)に記録されたデータが正当であると判定された第1記録領域22(または第2記録領域23)内に格納されている全てのデータを、読み取り結果が異常であった第2記録領域23(または第1記録領域22)の補正データとしてコピーし、RAM93内の書込データバッファ93bに展開する。展開後、磁気カードリーダライタ1は、書込データバッファ93b内に格納された補正データを、第1記録領域22及び第2記録領域23に書き込む動作を開始する。
【0077】
ステップS32では、磁気カード20をカード挿入口3に向かって搬送する。具体的には、書込制御部95が、正当なデータを搬送しながら、第1記録領域22、第2記録領域23に書き込む。磁気カード20は、
図13(C)に示すように、磁気カードリーダライタ1内の後方に停止している状態である。そこで、駆動モータ50を起動する。より詳細には、駆動用モータ50の回転方向をステップS12で説明した方向とは逆方向(
図1、2等におけるB方向)に磁気カード20が搬送されるように回転する。無端ベルト58、59を介して接続される駆動ローラ51、53が回転する。駆動ローラ53と従動ローラ54の間に挟まれている磁気カード21は後方(
図13の右側)から前方(左側:カード挿入口3)へ向けてB方向に搬送される(
図13(D)参照)。
【0078】
ステップS33では、磁気情報を書き込む。具体的には、磁気カード20が搬送され、第3センサ73を磁気カード20の先端(進行方向)が遮光するとセンサ出力信号がONする。第3センサ73の検知信号を検出して磁気ヘッド6はライト部(ライトヘッド)6bとして磁気書込み処理を実行する。磁気カード20が磁気ヘッド6上を通過する際に、補正データが書き込み信号に変換され、変換された書き込み信号がCPU91から出力されデータを書き込む。詳細は、後述する
図11に示す補正データの書き込み処理手順を示すフローチャートで説明する。
【0079】
図11は、磁気情報を書き込む手順を示すフローチャートである。
ステップS331では、補正データを符号化する。具体的には、補正データは、符号化手段912によって2値データに変換され、書込制御部95に入力される。
ステップS332では、2値データに変換されたデータを変調する。具体的には、変換された2値データは、書込制御部95に入力され、変調回路952によって変調される。変調されたデータは、さらに、書込駆動回路951によって交番駆動電流に変換されてライト部6bとしての磁気ヘッド6に出力され、ライトコアに巻回されているライトコイルを介して磁気ヘッド6によってデータが第2記録領域23、第1記録領域22に書き込まれる。
【0080】
ステップS333では、データを第2記録領域23に書き込む。具体的には、変換された2値データは、変調回路952によって変調され、書込駆動回路951によって交番駆動電流に変換されてライト部6bとしての磁気ヘッド6に出力され、ライトコアに巻回されているライトコイルを介して磁気ヘッド6によってデータが第2記録領域23のエンドコード領域233からデータ領域232、スタートコード領域231の順に書き込まれる。なお、書き込まれるデータは、ステップS102で磁気ヘッド6により読み込まれるデータ順と同じ順番である。
【0081】
ステップS334では、データを第1記録領域22に書き込む。具体的には、第2記録領域23に補正データが書き込まれたならば、磁気カード20は引き続きカード搬送機構5により搬送され、第1記録領域22に補正データが書き込まれる。この場合も、第2記録領域23と同様に、エンドコード領域223からデータ領域222、スタートコード領域221の順に書き込まれる(
図13(E)を参照)。
【0082】
なお、第1記録領域22、第2記録領域23にデータを書き込むタイミングは、例えば、カード検出センサとしての第3センサ73によって磁気カード20の後端の通過が検知されてからの経過時間で特定される。
また、正当なデータは、第1記録領域22、第2記録領域23に再度記録される。すなわち、正当なデータが記録されていた記録領域においても、再度書き込み処理が実施される。この理由は、第1記録領域22、第2記録領域23の境界およびその間の領域が精度が高くないため、換言すれば、第2記録領域23のスタートを示すスタートコード領域231の初めはデータを書き込みタイミングごとにずれているためである。
【0083】
第2記録領域23、第1記録領域22に補正データが書き込まれ、ステップS334が終了した後、
図10に示すステップS34が処理され、磁気カード20の搬送を停止する。具体的には、磁気カード20が前方に向かって搬送され、第1センサ71上を磁気カード20後端(進行方向)が通過してセンサ出力はOFFとなる。第1センサ71が、これを検出して駆動モータ50を停止する。磁気カード20は駆動ローラ51と従動ローラ52に挟まれた状態で停止する。また、磁気カード20が停止したとき、磁気カード20に記録されているデータを磁気ヘッド6は書き込み動作も終了する(信号の書き込み処理を禁止する)。
【0084】
補正データが第1記録領域22、第2記録領域23に書き込まれたならば、
図6に示すように、ステップS1に戻る。すなわち、磁気カードリーダライタ1のCPU91が、カード搬送機構5により磁気カード20を排出方向(B方向)へ搬送し、第3センサ73によって磁気カード20の後端の通過が検出されたならば、CPU91は、書込データバッファ93bから補正データ(正当なデータ)を読み出す。また、第2センサ72によって磁気カード20の前端の通過が検知されたならば、カード搬送機構5による磁気カード20の搬送を停止させる(
図13(C)を参照)。
【0085】
ステップS1の処理については、上述しているが、簡単に説明すると、磁気カード20を挿入方向(A方向)に搬送する。さらに、磁気ヘッド6により磁気カード20に記録されているデータの読み取りが行われる。
【0086】
次に、読み取ったデータが正当であるか、異常(エラー)であるか(の有無)を記録領域毎に判定する。なお、ここでの処理は、上述したステップS2と同じ処理なので、ここでの説明は省略する。
【0087】
ステップS2で再度、誤りの有無の判定を行うのは、ステップS3で補正データが正常に書き込まれるとは限らないからである。例えば、磁気ストライプ21に傷が付いていると、補正データを正常に書き込むことができない場合があり得る。また、最初の判定処理で磁気データに誤りがないと判定された記録領域に異物が付着したために、ステップS2において当該記録領域のデータに誤りがあると判定される場合もあり得る。本実施形態では、ステップS2で再度、誤りの有無の判定を行う。
【0088】
次に、
図6に示すステップS4では、通知処理を行う。具体的には、判定結果について上位装置12に通知する。
図12は、通知処理の手順を示すフローチャートである。
ステップS41では、第1記録領域22、第2記録領域23でデータの誤りがあるか否かを判定する。具体的には、上述した処理と同じように、読取データバッファ93a内に格納されている第1記録領域22、第2記録領域23のエラー検出コード領域224、234内に記録されているデータを判定する。
【0089】
ステップS41では、第1記録領域22と第2記録領域23のエラー検出コード領域224、234に格納されているデータの両方でデータの誤りがある(異常(エラー)である)と判定された場合には、ステップS41:YESとなり、ステップS44に進む。
【0090】
ステップS44では、全記録領域でデータの誤りがある(異常(エラー)がある)と判定した旨を上位装置12に通知する。このレスポンス(報告)を受けた上位装置12は、磁気カード20ではサービスの提供ができない旨を表示装置14に表示させる。上位装置12へ通知後、ステップS45へ進む。
【0091】
ステップS45では、カード搬送機構5を動作させて、磁気カード20を排出させる。磁気カードリーダライタ1は、ステップS2で受信した上位装置12からの命令(コマンド等)に従い、第1記録領域22および第2記録領域23の読み取り結果を上位装置12に通知する。その後、上位装置12からのつぎの指令(コマンド等)を受信するまで待機する。
【0092】
ステップS41において、第1記録領域22と第2記録領域23のどちらにもデータの誤りがない(正当である)と判定された場合、又は、第1記録領域22と第2記録領域23のいずれかのデータの誤りがない(正当である)と判定したが、他方では誤りがある(異常(エラー)である)と判定した場合(ステップS41:NO)には、本実施形態では上位装置12にその旨レスポンス(報告)し、ステップS42に進む。
【0093】
ステップS42では、誤りのないデータ(正当であるデータ)を書込データバッファ93bから読み出して上位装置12に送信する。ここで、正当なデータとは、本実施形態の磁気カード20はプリペイドカードであるので、残高、残高が書き込まれた日を表す日付、有効期限等のデータである。上位装置12はこのデータを受信する。磁気カードリーダライタ1は、ステップS43に進む。
【0094】
ステップS43では、上位装置12からの指示に従って処理を実行する。ここで、上位装置12は、ステップS42で磁気カードリーダライタ1から受信したデータに基づいて磁気カードリーダライタ1に対する指示の内容を決定する。例えば、ユーザが入力装置13によって所望のサービスを指定すると、上位装置12は、磁気カードリーダライタ1から受信した残高からそのサービスの料金を差し引いた残高を磁気カードリーダライタ1に送信し、磁気カードリーダライタ1がこの残高を受信する。すると、磁気カードリーダライタ1の書込制御部94が、上位装置12から受信した残高を磁気カード20に書き込む。そして、上位装置12は、ユーザが指定したサービスを提供する。例えば、洗車場に備えられた洗車機の使用を許可する。あるいは、ユーザが入力装置13によって、残高照会の指示を入力すると、上位装置12は残高を表示装置14に表示させる。以上の処理を実行したならば、ステップS45に進む。
【0095】
ステップS45では、カード搬送機構5を動作させて、磁気カード20を排出させる。磁気カードリーダライタ1は、ステップS102で受信した上位装置12からの命令(コマンド等)に従い、第1記録領域22および第2記録領域23の読み取り結果を上位装置12に通知する。その後、上位装置12からのつぎの指令(コマンド等)を受信するまで待機する。
【0096】
(本実施形態の効果)
本実施形態の効果は、次のとおりである。
本実施形態に係る磁気カードリーダライタ1は、磁気カード20に形成された第1記録領域22、第2記録領域23に記録された同一データの読み取りを行い、判定手段913がいずれかのデータの読み取り結果が異常であると判定した場合、判定手段913はその補正機能を動作させて、正当なデータを再度書き込む補正を行うので、磁気カード20に記録されているデータの一部が破損、消去した場合でも、読み取りの信頼性の低下を防止することができる。
【0097】
また、本実施形態に係る磁気カードリーダライタ1は、補正処理を実行した場合には、その結果と併せて、データの誤りがある記録領域に誤りのないデータの書き込みが行われた旨を上位装置12に通知する。これにより、磁気カードリーダライタ1の保守の参考となる情報を上位装置12に提供することができる。例えば、通知された情報を表わすログを上位装置12に蓄積しておくことによって、磁気カード20のデータの誤りの発生頻度がわかる。誤りの発生頻度が高いということは、磁気カードリーダライタ1に何らかの不具合がある可能性を示すから、深刻な故障が発生することを未然に防ぐことができる。
【0098】
また、本実施形態に係る磁気カードリーダライタ1は、データの誤りがある記録領域に書き込まれたデータを上位装置12に通知するから、誤りのないデータを上位装置12に通知することができる。
また、本実施形態に係る磁気カードリーダライタ1は、データの書き込みの行われた記録領域からデータを読み取り、このデータの誤りの有無を判定し、誤りがない場合に、このデータを上位装置12に通知するから、磁気カード20のデータの誤りが確実に修正されたことを上位装置12に通知することができる。
また、本実施形態に係る磁気カードリーダライタ1は、誤りのないデータをすべての記録領域に書き込むから、書き込みの処理を簡素化することができる。
【0099】
(3)変形例
上記の本実施形態を以下に示す変形例のように変形してもよい。また、複数の変形例を組み合わせても良い。また、本実施形態と変形例を組み合わせてもよい。
【0100】
(3.1)変形例1
上述した実施形態では、すべての記録領域に誤りのないデータを書き込み(ステップS3)、データの読み取りを行い(ステップS1)、データの誤りの有無を判定する(ステップS2)例を示したが、ステップS3の後のステップS1、S2を省略し、ステップS3で書込データバッファ93bに記憶されたデータ(誤りのないデータ)を読み出して上位装置12に送信するようにしてもよい。
【0101】
(3.2)変形例2
上述した実施形態では、ステップS3の処理後にすべての記録領域からデータを読み取り(ステップS1)、これらのデータの誤りの有無を判定する(ステップS2)例を示したが、最初のステップS2でデータの誤りがあると判定された記録領域からだけデータを読み取り(2度目のステップS1)、このデータの誤りの有無を判定する(2度目のステップS2)ようにしてもよい。
【0102】
(3.3)変形例3
上述した本実施形態では、磁気ストライプ21の長手方向に順に第1記録領域22、第2記録領域23を並べて設けた例を示したが、磁気ストライプ21を複数のトラックに分割し、磁気ストライプ21の長手方向に並列に第1記録領域22、第2記録領域23を設けてもよい。また、磁気ストライプ21上でデータが書き込まれる記録領域を3つ以上設けてもよい。
【0103】
(3.4)変形例4
上述した本実施形態では、磁気カード20におけるデータの記録方式として、F及び2Fという2種類の周波数の組み合わせによって記録される周波数変調方式を用いたが、これ以外の変調方式を用いてもよい。例えば、F3F、NRZI、MFM等の変調方式を用いてもよい。
また、本実施形態では、誤り検出符号がCRCである例を示したが、誤り検出符号は、パリティビット、CRCC(巡回冗長検査符号)、ECC(誤り訂正符号)等いかなるものでもよい。
【0104】
(3.5)変形例5
本実施形態では、CPU91が制御プログラムを実行することによって磁気カードリーダライタ1の動作を制御する例を示したが、本実施形態と同様の機能をハードウェアで実装するようにしてもよい。また、制御プログラムを、光記録媒体、磁気記録媒体、半導体メモリ等、コンピュータで読み取り可能な記録媒体に記録して提供し、この記録媒体から制御プログラムを読み取って磁気カードリーダライタ1に記憶させるようにしてもよい。また、この制御プログラムを電気通信回線経由で提供してもよい。
本実施形態では、読取制御部94及び書込制御部95の機能をハードウェアで実装し、復号手段911、符号化手段912、判定手段913、通知手段914の機能をソフトウェアで実装する例を示したが、これらの各機能はハードウェアとソフトウェアのどちらで実装してもよい。