JPS593588A - バ−コ−ド読取装置 - Google Patents

バ−コ−ド読取装置

Info

Publication number
JPS593588A
JPS593588A JP11148782A JP11148782A JPS593588A JP S593588 A JPS593588 A JP S593588A JP 11148782 A JP11148782 A JP 11148782A JP 11148782 A JP11148782 A JP 11148782A JP S593588 A JPS593588 A JP S593588A
Authority
JP
Japan
Prior art keywords
code
bar
character
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11148782A
Other languages
English (en)
Inventor
Shigeru Yamada
繁 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP11148782A priority Critical patent/JPS593588A/ja
Publication of JPS593588A publication Critical patent/JPS593588A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners

Landscapes

  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 この発明は、キャラクタ情報がバーコードにて記録され
ている媒体からバーコード情報を読取るバーコード読取
装置に関する。
従来、この種のものには、例えば、所定のキャラクタ情
報が白黒のバーコードにて記録(印刷)されていて媒体
を光照射して光の反射率の違いを電気信号(電流の大小
)に変換してバーコード情報を読取る光学的な読取装置
が実用化されている。
而して、この糧の光学的読取装置は、キー人力操作のも
のに比べてデータ入力が極めて容易であると共に、通常
の用紙にバーコードを印刷するだけでよいので、磁気テ
ープ、磁気カード等の媒体に比べて安価である等の利点
を有し、阻子式キャシュレジスタ等のようなPOSシス
テムのデータ人力手段として広く活用されている。
ところで、バーコードには、種々のコード態形がある。
すなわち、日本で使用されているJANコード、アメリ
カ、カナダで使用されているUPCコード、欧州で使用
されているFANコード等のコード態形がある。そして
、これらのコード態形の中でも標準コードと短縮コード
があり、夫々キャラクタ数を異ならしめている。然るに
、コード態形の異なるバーコードを読取るようにすると
、キャラクタ数が増えれば、これに伴って読み取られた
バーの幅を記憶するための記憶手段の容量が増大する。
すなわち、最大キャラクタ数のコード態形に対応して前
記記憶手段の容量を増大させなければならない。
この発明は、前記記憶手段の記憶容量を必要最小限にし
、しかもこの記憶容量よシも長いキャラクタ数のコード
をも読み取ることができるバーコード読取装置を提供す
ることにある。
以下、この発明を図面に示す一実施例に基づいて具体的
に説明する。図中1は、手動操作可能なハンドスキャナ
を示す。このハンドスキャナ1はバーコードを照射した
ときの光の反射率(光の強弱)を電気信号(電流の大小
)に変換し、A/D(アナログ/デジタル)変換回路2
に対して出力される。このA/D変換回路2で変換され
たデジタル信号(矩形波信号)は、パルス検出回路3に
入力される。パルス検出回路3は入力される矩形波のパ
ルスの立ち止が9および立ち下がりに夫々同期してトリ
ガを出力するもので、アンドゲート4を介して0PU5
に対してインタラブド信号工NT工として入力される。
OPH1は、演算用のx、y、zvレジスタフラグを記
憶するF、 、PL・・・・・・FCレジスタ等の各種
のレジスタを有すると共に、メモリMに対してデータの
書き込みおよび読み出しを実行する際に、メモリMのラ
イトアドレスを記憶するアドレスWbAW%  メモリ
Mのリードアドレスを記憶するアドレスMAWの他にA
b、Ad及び論理演算回路ALU等を有する構成となっ
ている。而して、CPU5はSR型スフリップフロップ
SR−F F )6のSおよびR入力端子に、夫々制御
信号を出力し、5R−FF6をセット、リセットさせる
。この5R−IFF6はそのQ出力をアンドゲート4の
他方の入力端子に印加し、アンドゲート4を開閉制御さ
せるものである。また、0PU5は時間カウンタTcで
得られた計数値データを読み込み、かつ時間カウンタT
cに対してクリア信号OLを両力する。時間カウンタT
0は所定周波数のクロック信号を計数するもので、0P
U5に読み込まれる計数値データは、0PU5にインタ
ラブド信号工NT工が入力されてから次のインタラブド
信号INT工が入力されるまでの時間間隔に相当する。
また、時間カウンタTcはその計数値がオーバフローし
た時にキャリー信号を0PU5に対してインタラブド信
号工NTnとして出力する。更に、0PU5はメモリM
との間でデータの授受を行うと共に、データメモリDと
の間でもデータの授受を行うように夫々メモリM、Dに
対して相方向に接続されている。
メモリMは、例えば、RAM(ランダム・アクセス・メ
モリ)によって構成され、データの書き込み、読み出し
を実行する。すなわち、アドレス1fBAWの内容に応
じてアドレス指定されたメモリMのエリアには、時間カ
ウンタTcからの計数値データが0PU5を介して書き
込まれ、また、アドレス部A、の内容に応じてアドレス
指定されたメモリMのエリア内のデータは、0PU5に
対して読み出される。なお、この実施例では、メモリM
の記憶容量は、時間カウンタTOを2バイトとすると、
40X2バイトのものを使用している。
これは、複数種数のコードのうち、先頭バーから後端バ
ーまでの長さが短いコード分よりも僅かに多い記憶容量
に相当している。
データメモリDの内容は、0PU5が例えば、図示しな
いKOR(i子式キャッシュレジスタ)に対してストロ
ーブ信号STを出力し、KOR側からデータ転送要求信
号OOがCPH1に入力されたときに、0PU5からK
OR側へデータDTとして転送される。なお、0PU5
は、スビーカ7に報音指令を出力し、エラーを報知する
次に、上記実施例の動作を説明する。今、種類の異なる
コード態形として、TAN、UFOで表現されているバ
ーコードを読み取るものとする。このJANコードは、
第2図(A)に示す如く構成されている。すなわち、第
2図(^)は、センターバーOBを中心に夫々6キヤラ
クタ分のバーコードD。
を有する標準コードを示している。この場合、センター
バーOEを中心にしてその左側のバーコード領域にはそ
の左端にレフトマージンLMに続いて設けられたレフト
バーLBと、このレフトバーLEとセンターバーOBと
の間にデータキャラクタ6桁6桁を有し、また、右側の
バーコード領域に1ブその右端にライトマージンRMに
続いて設けられたライトバーRBと、このライトバーR
BとセンターバーOBとの間にデータキャラクタラ桁と
モジュラスチェックキャラクタ1桁とを有する構成とな
っている。而して、JANの左側のバーコード領域内q
キャラゲタデータDoは、奇数および偶数パリティのi
会せを用い、かつ右側のバーコード領域内のデータキャ
ラクタ及びモジュラスキャラクタDoは、偶数パリティ
を用いる。なお1.TANのライトバーRBとにフトバ
ーLBとは同一のコード態形をなしている。他方、UP
Cコードは、第2図(B)に示す如く構成されている。
すなわち、第2図(B)はデータキャラクタ6桁で構成
された短縮コードを示している。したがって、このUF
Oの短縮コードは、JANの半分のキャラクタより成る
。この場合、UFOコードにおいては、JANのセンタ
ーバーOBに相当するバーは有せず、かつし7トマジン
LMに続いて設けられたレフトバーL 3と、ライトマ
ージンRMに続いて設けられたライトバーRBとは夫々
、コード態形が異なり、レフトバーLBはJANとIT
FI m 12本の黒バーを有する構成であるが、ライ
トバーRBは3本の黒バーを有する構成と々つでいる。
また、UFOのデータキャラクタは奇数および偶数パリ
ティの組合せを用いている。
このように1.TA、Nコードは、センターバーOBを
境にしてその左側のキャラクタは、奇数および偶数ハリ
ティの組合せを用い、kつその右側のキャラクタは、偶
数パリティを用いる構成であるから1.rANを順方向
或は逆方向に走査したとしてもその区別が可能となる。
また、UFOコードは、レフトバーLBとライトバーR
Bのコード態形が異なるので、これによってUFOの順
方向或は逆方向の走査が可能とガる。しかも、UFOの
キャラクタ数はJANの半分であシ、シかもセンターバ
ーOBを有していないので、JAN、UFOの区別が可
能となる。
而して、第2 [1J(A)、(B)に示すコードをノ
・ンドスキャナ1で走査すると、A/Di換回路2の出
力は、第3図(A)、(B)に示す如くとなる。第3図
(A)は第2図(A)のJANコードを走査したときの
出力波形、第3図(B)は第2図(B)のUFOコード
を走査したときの出力波形を示している。この場合の矩
形波は、白バーでり。WレベルC″’o”)、黒バーで
H1ghtレベル(”l”)となり、各バーの幅に対応
している。図中、センターバーOBは白3本、黒2本の
合計5本で構成され、また、キャラクタバーDCは、白
バー2本、黒バー2本の合計4本のバーで1キヤラクタ
を構成し、合計6キヤラクタ分のバーを有している。な
お、JANにおけるバーの数は、レフトバー3本、ライ
トバー3本、センターバー5本、12キャラクタ48本
で、総計59本、また、UFOにおいては、レフトパー
3本、ライトバー6本、6キヤラクタ24本で、総組3
3本である。また、各レフトバー、センターバー、ライ
トバーは、バーの幅が最小のものを使用するが、各キャ
ラクタバー内には、最小幅のバーの2倍、3倍、4倍の
幅をもったバーが含まれており、幅の異なる4種類のバ
ーで1キヤラクタを構成可能となっている。この場合、
幅の広いバーは、最小幅のバーが2本〜4本連続してい
るものとして取扱われる。
このようにして得られたパルス検出回路3の出力は、ア
ンドゲート4を介して0PU5に入力される。これによ
って、0PU5はインタラブド信号工NT工の割り込み
処理を実行する。すなわち、0PU5はインタラブト信
号工NT工が来ると、アドレスIIAWの内容を+1す
るインクリメント処理を実行し、次いで、時間カウンタ
Tcの計数値データを読み込んで、アドレス部A、の内
容に応じてアドレス指定されるメモリMのエリアに書き
込み、続いて、時間カウンタT、の内容をクリアする処
理をインタラブド信号IIJT工が入力される毎に繰り
返し実行するようになる。この結果、OPH1に読み込
まれる時間カウンタTcの計数値データは、パルス検出
回路3の出力におけるパルスの時…]間隔、換言すれば
、白黒バーの幅値に相当し、この幅値デ・−夕がメモリ
Mのエリアに順次書き込捷れる。この場合、時間カウン
タTcからキャリー信号が出力されると、0PU5はイ
ンタラブド信号工NTIの割り込み処理を実行する。
これによって、5R−FF6はリセットされ、インタラ
ブド信号工NT工の割シ込み処理を禁止させる。すなわ
ち、時間カウンタTcからキャリー信号が発生されると
いうことは、バーコードの走査が終り、スキャナ1を余
白部分(マージン等)に止めた場合であり、このような
場合には、インタラブド信号工IT工によるバーコード
の読み込み動作を禁止する。
而して、0PTJ5のメイン動作は、第4図、第5図の
フローにしたがって実行される。先ず、このメイン動作
の概略について説明する。基本的にはコード態形がJA
Nであると仮定し、メモリM内に記憶されたデータを1
唄次読み出してデコードする際に、所定のキャラクタに
デコードされず、デコードにエラーを生じた場合には、
走査したバーコードがJANのものではなかったと判別
[7、UPOコードとしてデコードを再開するようlこ
している。この場合、センターバーを読み出すまでハJ
 A N%upaの区別ができないので、6キヤラクタ
分のデータをデコードしたら、次に絖み出されるバーは
センターバーであるとみなし、センターバー以降のバー
コードをJANとしてデコードし続ける。このとき、J
ANであれば、センターバ=y、pのデコードにエラー
を生じないので、そのままJANとして処理し得るが、
エラーを生じたならば、6キヤラクタ後のバーがセンタ
ーバではなかったことになシ、センターバーとみなした
バーの先頭に戻ってこれがライトバーかどうかを調べる
。この結果、ライトバーであれは、UPCコードを順方
向に走査したものとして処理し、またライトバーでもな
ければ、UFOコードを逆方向に走査しiとものとして
処理し、この処理中にエラーとなれば完全なエラーとし
て処理する。すなわち、0PU5のメイン動作は、JA
Nが順方向或は逆方向に走査されたものとする処理と、
UFOが順方向に走査されたものとする処理と、エラー
処理の4つの動作に大別される。以下、上記谷動作を順
次説明する。
先ず、J A Nが順方向に走査或は逆方向に走査され
、かつエラーを生じなかった場合に基づいて0PU5の
メイン70−を説明する。ステップS1は電源投入時或
は割り込み処理後に実行され、メモりM、データメモリ
Dおよび0PU5内の各柚レジスタの内容に初期値を設
定するイニシャライズ処理を実行する。絖いて、ステッ
プS1では、5R−FIF5をセットしてアンドゲート
4を開成させ、インタラブド信号工NT工の割り込み処
理を実行可能な状独にセットする。これによって、メモ
IJ Mに記憶された時間カウンタTcの計数値データ
、換言すれば、バーコードの幅値データをステップS、
の実行により読み出す。すなわち、アドレス部A、の内
容にしたがってアドレス指定されるメモリMのエリアか
ら幅値データを読み出してXレジスタに転送する。次で
、ステップs4に進み、アドレス部AIの内容を+1す
る処理を実行し、アドレスの更新を行なう。続いて、ス
テップS、に進み、アドレス部A、の内容がアドレス部
A、の内容よりも先行したかどうかを調べる。
すなわち、メモリMのデータの読み出し動作は、その書
き込み動作に先行することなく実行されなければならな
い為、ステップS、はその読み出し動作が正常であるか
どうかを調べる処理で、読み出し動作が正常であれば、
アドレス部A1の内容がアドレス部A、の内容以上とな
り、次のステップS4に進む。ステップS、、’S8は
、メモリMから1キャラクタ分のデータを読み出すため
に実行される処理で、上述の如く、JAN、UFOでは
1キヤラクタを4本のバーで構成する為、4本のバーに
応じた幅値データを読み出すために、ステップS8でX
レジスタの内容を+1にインクリメントする処理−を実
行し、次で、ステップS、でXレジスタの内容がrAJ
であるかどうかを調べ、「4」でなければ、ステップS
3に戻り、Xレジスタの内容が「4」となるまで上述の
ステップも乃至へを繰り返して実行する。この場合、ス
テップs6と88との間でステップらが実行されるが、
このステップ吻はFfレジスタに1′″″がセットされ
ているが否かを調べるものである。この場合、Fよレジ
スタはUFOコードとしての処理を実行させるためのフ
ラグがセットされるもので、今の場合には、Fヨレジス
タの内容が11′ではないので、ステップS7では「N
O」と判断される。
このようにして1キヤラクタ分のデータをメモリMから
読み出し、Xレジスタに転送する処理が終ると、次のス
テップS、に進み、Xレジスタの内容を商理演算回路A
LOにてデコードし、その結果を2レジスタに転送する
。次で、ステップs1゜に進み、上述のステップS、 
 でデコードした結果、デコードにエラーを生じたか否
かを調べる。今の場合、エラーは生じなかったので、ス
テップS1゜に進み、”mレジスタにl#がセットされ
ているか否かを調べる。この場合、’lレジスタはUF
Oコードの順方向の処理が終ったかどうかのフラグで、
今の場合、ステップ”+1では「NO」と判断され、次
のステップS1□に進む。ここでは、JANのライトバ
ー、JAN%UFOのレフトバーの何れかが来たか否か
を調べ、倒れかが来たならば、次のステップS、に進み
%  FLレジスタに111′をセラー・トする。この
ステップS13はライトバー、レフトバーの例れかが来
たならば、以降、ステップ”14を通ってステップ”1
5にフローを進行させるために実行されるものである。
また、ステップ”+4はPLレジスタの内容が71”で
あるがどうかを調べるもので、上述のステップS1□で
ライトバー、レフトバーの何れでもないと判断された場
合には、ステップS14を通ってステップS3に戻し、
ライトバーレフトバーの伺れかが来るまで上述の動作を
実行させながら待機する。而して、バーコードを順方向
に走査した場合には、レフトバー、逆方向に走査した場
合には、ライトバーが来るので、ステップS14からス
テップ”15に進む。
このステップS1.はNレジスタの内容が「6」、つま
り、今までデコードしたキャラクタ数が「6」であるか
どうかを調べ、「6」でなければ、Nレジスタの内容が
「12」であるかどうかを調べる次のステップS、では
当然「NO」と判断されるので、ステップSI7に進行
するようになる。このステップS17では、2レジスタ
の内容をデータメモIJ Dに転送する処理を実行する
。したがって、データメモリDには上記ステップS、で
デコードされた1キヤラクタ分のデータが書き込まれる
。次で、ステップ”18に進み、Nレジスタの内容を十
」工するインクリメント処理を実行し、その結果、。
次のステップ819でNレジスタの内容が「6Jかどう
かを調べ、E6」でなければ、ステップS3に戻り、6
キヤラクタ分のデコードが終るまで上述の動作を繰り返
し実行する。
而して、6キヤラクタ分のデーコードが終ると、ステッ
プS□、で「yICsJと判断され、次のステップ−8
2oに進行する。このステップS26はFvlレジスタ
rlJがセットされているかどうかを調べるもので、F
YXレジスタUFOコードとしての処理を実行させるた
めのフラグカセットされるもので、今、Fvlレジスタ
内容は1nではないので、ステップS2oでは「NO」
と判断され、ステップS21に進む。ここでは、センタ
ーバーが米たかどうかを調べる。、TANコードにおい
ては、6キヤラクタ以降のバーは、センターバーとなる
ので、ステップS、に進み、0DD(奇数パリティ)、
EVVN(偶数パリティ)の検出を行う。
すなわち、今までデコードした6キヤラクタ分のデータ
が、JAN′ft順方向に走査したときには、奇数パリ
ティと偶数パリティの組み合せか、或はJ゛^Nを逆方
向に走査したときには、全てが偶数パリティかどうかを
調べるチェックを実行するものである。而して、このチ
ェックの結果、次のステップS zaでエラーが生じな
かったと判断されたときには、次のステップS24に進
む。ここでは、センターバー検出フラグをFcレジスタ
にセットする処理が行われる。すなわち、6キヤラクタ
分のデータをデコードしたら次に来乞バーはセンターバ
ーであるとみなして、予めF、レジスタに61”をセッ
トしておく。続いて、ステップs25が実行され、アド
レス部A8の内容から「4」を減算し、この演算結果デ
ータをアドレス部Abに退避する。すなわち、センター
バーの先頭のバーに対応するアドレスを退避する。次い
て、ステップS26が実行され、アドレス部A8の内容
を+1する処理を実行したのち、ステップもに戻る。す
なわち、センターバーは5本のバー、キャラクタデータ
は4本のバーで構成されているため、上記ステップS3
に戻す際には、リードアドレスを更新させ、センターバ
ーの次のバーをアドレス指定するために、ステップS2
6の処理を予め実行しておく。
このようガ動作が順次実行されると、センターバー以降
のキャラクタデータがデコードされて順次データメモリ
Dに記憶されてゆく。而して、センターバー以降の6キ
ヤラクタのデコードが終了し、全部で12キヤラクタ分
のデータがデータメモIJ ])に記憶されると、ステ
ップ5Illで「yxs」と判断され、次のステップS
27に進む。ここでは、ライトバー、レフトバーの伺れ
かが来たかどうかを調べるもので、倒れか一方が来たな
らば、次のステップS28で走査方向の検出を行う。こ
の場合、ライトバー、レフトバーの何れもシード態形が
同様であるので、これによっては走査方向の判別は不能
であるため、ステップ82Bにおいては、奇数パリティ
と偶数パリティの組み合せがセンターバー以前にあれば
、順方向、センターバー以降ではあれば逆方向と判別す
る。而して1.TANが順方向に走査された場合には、
ステップS2−こ進み、5R−FF6をリセットし、イ
ンタラブド信号INT工の割り込み処理を禁止させたの
ち、データメモリDに記憶された12キヤラクタ分のデ
ータをFOR側へ転送する。一方1.TANが逆方向に
走査された場合には、ステップ828′に進み、データ
メモリDの内容を反転したのち、ステップS2.を介し
てステップS、。を実行し、上述の場合と同様に、デー
タをIOR側へ転送する。
次に、UFOコードを順方向に走査した場合に基づいて
第4図、第5図の70−を説明する。なお、上述したよ
うに0PU5のメイン動作は、ハンドスキャナ1で読み
取ったデータをJANの12キヤラクタ分のデータとし
てフローを実行している。ここで1.TANのセンター
コード検出前にはエラーを生じず、センターコード検出
後にエラーを生じた場合を仮定して説明する。センター
コード検出後のエラーはステップ”10において、6キ
ヤラクタ分のデコードを終了したのちに発生するか、或
は、UFOコードを走査していて6キヤラクタバー以降
の印刷ミス等によるノイズで12キヤラクタまではデコ
ードされたが、その後、ライトバー、レフトバーの何れ
も検出されず、ステップS27で「NO」と判断された
場合に発生する。
このような場合、第5図のステップS3□に進み、Fc
レジスタの内容が「1」であるかどうかが調ぺられる。
今の場合、センターコード以降にエラーを生じたのであ
るから、センターバー検出フラグ″1″がF0レジスタ
にセットされているので、ステップS3.で「yxsJ
と判断され、ステップ8.2に進む。ここで%  Fl
 レジスタに′1″がセットされているかどうかが調べ
られるが、最初は、F、レジスタには”1″がセットさ
れていないので、ステップ”33に進む。ステップs3
3は、上述のステップS2.でアドレス1l(Abに退
避させておいたセンターバーの先頭のバーに対応するア
ドレスをアドレス部A8に転送して復帰させる。続いテ
、ステップsJ4 に進み、センターバー以降えた時点
ではNレジスタの内容が6以上となっているので、その
内容に16」をセットする。次いで、ステップS3.は
、8“7レジスタおよびB+、レジスタニ夫々″′1′
′をセットする処理を実行する。このような処理が実行
されると、第4図のフローに反り、ステップS3以降が
実行される。この結果、センターバーの先頭に戻ってデ
ータの読み出し動作が実行される。この場合、F、レジ
スタに″1″がセットされているので、ステップS7か
らステップS3゜に進み、Yレジスタの内容が「6」で
あるか否かが調べられる。すなわち、UFOコードにお
いては6キヤラクタバーの後に、JANのセンターバー
に代って6本のバーで構成されたライトバーが来るので
、このライトバーに相当する6つのデータを読み出すた
めに、Yレジスタの内容が「6」かどうかを調べ、「6
」でなければ、ステップS3に戻る。而して、UFOの
ライトバーに相当する6ケのデータを読み出したらステ
ップS3、”10が順次実行され、デコードにエラーを
生じたか否かが調べられ、エラーが生じなかったときに
は、ステップS1□に進む。今の場合、’l レジスタ
の内容は601であるからステップS1□が実行される
。この場合、ステップS1□では「NO」と判断される
ので、ステップS14に進む。この時点15に進む。今
、Nレジスタには「6」がセットされているから、ステ
ップS2oに進み、また、Fvlレジスタ内容はtl 
luであるから第5図のステップS37に進み、更に、
Fl レジスタの内’6に一110″であるからステッ
プS38に進む。このステップ”38では、UFOコー
ドのライトバーは6本のバーで構成されているので、6
本のバーで構成されたライトバーであるか否か、換言す
れは、UFOのライトバーであるか否かが調べられる。
今の場合、u’poのライトバーであるから、第4図の
フローに戻ってステップS22、S3oが実行され、デ
ータをUFOのコードとしてEOR側へ転送される。
このように、センターバー以降のバーコードにエラーが
生じた際には、JANのセンターバーがJANコードの
半分のキャラ′クタからなるUFOコードのライトバー
に相当するか否かを検出し、ライトバーに相当すること
が検出された際には、この時点でデコードされたキャラ
クタデータをUPOを順方向に走査したデータとしてE
OR側へ転送するのである。
次に、UFOコードを逆方向に走査した場合に基づいて
第4図、第う図のフローを説明する。この場合、JAN
のセンターコード検出後にエラーが生じると共に、UF
Oコードの順方向の処理でもエラーが生じる。すなわち
、UFOコードが逆方向に走査された場合には、JAN
のセンターバーに相当する部分にレフトバーが来るので
、  UPCコードの順方向処理において、第5図のス
テップ”3Bでは「NO」と判断される。これによって
ステップ”39.840が順次実行される□。先ず、ス
テップ”39では、UFOコードの順方向の処理が終っ
たので、’lレジスタに@II′″をセットし、次で、
ステップ840ではFLレジスタをクリアする。続いて
、ステップ5111が実行されるが、この時点ではFC
レジスタには1′″がセットされているので、次のステ
ップS3□に進む。今、FMレジスタには′1”がセッ
トされているので、ステップS4.に進む。ここでは、
’lレジスタに1“がセットされているか否かが調べら
れる。とのFルジスタは上記インタラブド信号工NTI
の処理でメモIJ Mに順次データを書き込む場合、メ
モリMの最終アドレスから先頭アドレスに戻ったときに
1″のフラグがセットされるもので、今の場合には「N
O」と判断され、ステップs4□に進み、アドレスFA
I A 、の内容がクリアされ、リードアドレスを先頭
アドレスにセットすると共に、F。レジスタをクリアす
る。続いて、第4図のステップS、に戻る。これによっ
てメモリMの先頭アドレスの内容から順次読み出す動作
が実行される。
この場合、最初、St F 、レジスタに1′″がセッ
トされているので、ステップ83〜S7からステップS
36に進み、ライトバーに相当する6ケのデータが読み
出されるまでステップ”r SF ”asが繰す返され
る。そして、ライトバーに相当する6ケのデータが読み
出されたらステップ”9’ ”10を実行しエラーでは
なかったらステップS、□に進む。今、F、レジスタは
1′′にセットされたからステップS43に進み、UF
Oコードのライトバーを構成する6ケのデータであるか
どうかを調べ、ライトバーでなければ、ステップS14
を介してステップS3に戻シ、ライトバーが来るまで待
機する。而して、ライトバーのコードが検出されると、
ステップS、4に進み、Fヨレジスタをクリアする。次
テ1ステップ”+3 ’ ”14を介してステップ81
Bに進み、Nレジスタの内容が「6」となるまで、ステ
ップ815〜SI9を介してステップもに戻シ同様の動
作が繰り返される。この場合、Il′にレジスタがクリ
アされているので、ステップS7で「NO」と判断され
、ステップS3゜に代ってステップS8が実行される。
而して、6キヤラクタ分のデータをデコードしてデータ
メモ゛すDに書き込んだら、ステップ”+5からステッ
プ8□0に進む。今、UFOコードの処理であるからP
vレジスタには12がセットされているので、第5図の
ステップS37に進む。
今%’lレジスタには1”がセットされているので、ス
テップS4.に進む。ここでは、レフトバーか否かが調
べられる。CPUコードを逆方向に走査された場合、6
キヤラクタバー以降にはレフトバーが来るので、ステッ
プ845でGt[yxsJと判断され、第4図のステッ
プ”2B’に進み、データメモリDの内容を反転したの
ちステップS2.を介してステップS3゜が実行され、
データメモリDの内容がKOR側へ転送される。
このように、センターバー以降のバーコードにエラーが
生じた場合に1.TANのセンターバーがUFOコード
のライトバーに相当するか否かを検出した際に、ライト
バーに相当しないことが検出されたときには、メモリM
の先頭からデータを読み出し、これに基づいてUFOコ
ードの逆方向走査としてのキャラクタを生成し、EOR
ll[へ転送するのである。
次に、デコード不能となり、最終的にエラーとなる場合
について説明する。エラーとなるのは、ステップS5で
A、<A、と判断された場合、ステップ84.で「NO
」と判断された場合、およびステップ”41で「ygs
Jと判断された場合には、ステップS46に夫々進み、
エラーの報知が促音さ114、この場合、ステップS5
でA、(A、になると、リードアドレスがライトアドレ
スに先行し、デコードのためにメモリMから読み出すデ
ータがなくなる等の不都合を生ずるので、エラーとする
。まり、ステップS45で1NO」と判断されるのは、
UFOコードの逆方向の処理で最後にレフトバーが来な
かったときであり、この場合は、TANコード、および
UFOコードの順方向、逆方向の処理の何れでもなかっ
たのであるから最終的にエラーとする。更に、ステップ
S4□で[yxsJと判断されるのは、’l レジスタ
に′1″がセットされているとき、すガわち、メモリM
の最終アドレスから先頭アドレスに戻り、メモリMの内
容が書き替えられているときであるから、この場合、U
PCコードの逆方向処理をメモリMの先頭のアドレスに
戻って行ったとしても、その処理をすべきデータが既に
なくなっていてその逆方向処理ができないので、エラー
とする。
このように、コード態形の異なる複数種類のコードを読
み取り可能とするために1.rANのセンターバー以降
のデコードエラーを検出するようにしている。
ところで、エラーには上述のデコードエラーに限らず、
各種のエラーがある。例えば、ステップ”1Gおいて、
印刷ミス、汚れ等によるノイズを読み取つ丘際にデコー
ドエラーを生じた場合、ステップS21において、セン
ターバーが来るべきところにセンターバーが米なかった
場合、ステップS28において、センターバーは来たけ
れどもそれ以前にデコードしたキャラクタの0DDSE
VENにエラーを生じた場合である。このようにステッ
プS24が実行される前、すなわち、センターバー検出
前にエラーが生じた場合には、第5図のステップS31
に夫々進む。ここでは「NO」と判断されるので、ステ
ップS47に進み、アドレス部Adの内容を+2する処
理を実行し、次で、ステップS48に進み、アドレス部
Adの内容をアドレス部A、に転送する処理を実行し、
ステップS3に戻る。
すなわち、センターバー以前にエラーが生じた場合には
、もう一度デコードを再開するが、このとき、アドレス
部Adの内容はm源投入時には「0」となっているので
、ステップS47.5411が実行される結果、アドレ
スMS A 、は「2」となる。このため、メモリMか
らは先頭のデータが無視されて次のデータから1胆次読
み出され、このデータよりデコードを書間する。このよ
うな処理は、ステップS2で[yxsJと判断されるま
で繰り返される結果、ライトバー、し7トバーの何れが
来るまで先頭バーが無視される。而して、ステップ81
□で[yxsJと判断されると、ステップsI3、Sl
、を介してステップS15に進み、以下、JAN。
CPUコードの順、逆方向の処理にしたがったフローが
実行される。
このように1.TANのセンターバー以前にエラーが生
じた場合には、先頭にノイズが含まれている可能性が極
めて高いので、この場合のエラーはノイズによるもので
あるとみなして先頭のバーを無視し次のバーのデータよ
りデコードを再開するエラー処理を行うことにより、エ
ラーがノイズによる読取エラーなのか、他の種類のコー
ドを示すためのエラーなのかを判別することが可能とな
る。
他方、上述したインタラブ1信% rNTIlの処理に
おいては、TANコードか、U、POコードかの判別が
可能である。すなわち、この割シ込み処理が実行すれる
のは、バーコードの走査が終り、スキャナ1を余白部分
(マージン)に止めた場合であるので、その時点にメモ
リMの中に例本分のバーのデータがあるかを調べ、33
本以上で59本未満であれば、UFOコード、59本以
上であれば、JANコードであることが分る。このとき
、Fエレジスタに1″をセットしておけば、以降、JA
Nコードの処理に替ってUFOコードの処理に進むよう
になる。すなわち、メモリMに書き込まれたバーに対応
するデータ数を2とすると、33≦z〈59のときには
、ステップSI、からステップS、9に進み、F■レジ
スタに1″°がセットされているかどうかが調べられる
。今の場合、[YisJと判断されるので、ステップ”
soに進み、UFOコードの処理を実行させるために、
Fv。
F、レジスタに”1″′をセットしたのチ、ステップS
1に戻る。この場合、ステップ”’+5 ”で進むと、
ここでは[ygsJと判断されるので5.TANコード
の12キャラクタ分の処理が打ち切られ、UPOコード
の処理に進行する。そして、先ず、上述した場合と同様
に、UFOの順方向の処理が実行され、その結果、順方
向でなければ、逆方向の処理が実行される。
なお、上記実施例においては、4本分の25−毎にデコ
ードするようにしたが、センターバーが来た時点で一括
してデコードするようにしてもよい。
捷だ、ハンドスキャナに限らず、定置式スキャナであっ
てもよく、更に、光学的なスキャナに限らず、磁気的な
スキャナであってもよい。
加えて、上記実施例にあっては5.TANコードUFO
コードの読み取りを可能としたが、その他のコード形態
を複数種類読み取り可能とするようにしてもよい。
以上詳述に説明したように、この発明に係るバーコード
読取装置によれば、センターバーを中心に両側に夫々複
数キャラクタ分のバーコードを有してなる第1のコード
を読み取るものにおいて、前記バーコードの各バーの領
域に相当する幅値を読み取って順次記憶させると共に記
憶された幅値をデコードしてキャラクタ(生成する場合
に、センターバー以降のバーコードにエラーが生じた際
には、このセンターバーが前記第1のコードの半分のキ
ャラクタからな(る第2のストップコードに和尚するか
否かを検出し、ストップコードに相当することが検出さ
れた際には、この時点で前記デコードされたキャラクタ
を第2のコードのキャラクタとして送出するようにした
から、複数種数のコード態形が読み取り可能であると共
に、前記幅値を記憶するメモリは、1キャラクタ分のバ
ーよりも僅かに大きな記憶容量、具体的には、センター
バー5本十余白部分又はノイズ数本分の記憶容量を持て
ば実現可能である。また、前記ストップコードに相当し
ないことが検出された際には、再び前記記憶内容の先頭
から順次読み出された幅値に基づいて第2のコードの逆
方向走査としてキャラクタを生成するようにした場合で
あっても、短い第2のコード分の記憶容量でよい。具体
的には、上記実施例においては、UFOコードはバーの
数が33本であるので、多少の余裕を持たせ40ケ(3
5ケ+ノイズ分)の幅値を記憶する817でよい。
【図面の簡単な説明】
図面はこの発明の一実施例を示し、第1図は全体のブロ
ック回路図、第2図(A)はJANコードを示す図、第
2図(B)はUFOコードを示す図、第3図(A)はJ
ANコードを読み取ったときの第1図に示すA / D
変換回路の出力波形図、第3図(B)はUPOコードを
読み取ったときfllI第1図に示すA/D変換回路の
出力波形図、第4図、第5図は第1図に示すOPUのメ
イン動作を説明するフローチャートである。 1・・・・・・ハンドスキャナ、2・・・・・・A /
 D変換回路、3・・・・・・パルス検出回路、5・・
・・・・0PU0特許出願人  カシオ計算機株式会社

Claims (2)

    【特許請求の範囲】
  1. (1)センターバーを中心に両側に夫々複数キャラクタ
    分のバーコードを有してなる第1のコードを@8゜ミ取
    ルバーコード読取装置において、前記バーコードの各バ
    ーの領域に相当する幅値を読み取る読取手段と、読み取
    知れた幅値を順次記憶する記憶手段と、該記憶手段内の
    幅値に基づいてキャラクタを生成するデコード手段と、
    前記センターバー以降のバーコードにエラーが生じた際
    に、前記センターバーが前記第1のコードの手分のキャ
    ラクタからなる第2のコードのストップコードに相当す
    るか否かを検出する検出手段と、ストップコードに相当
    することが検出された際には、この時点で前記デコード
    されたキャラクタを第2のコードのキャラクタとして送
    出する制御手段とを具備して成るバーコード読取装置。
  2. (2)前記特許請求の範囲第1項の記載において、前記
    検出手段でストップコードに相当しないことが検出され
    た際には、再び前記記憶手段内の先頭から順次読み出さ
    れた幅値に基づいて第2のコードの逆方向走査としての
    キャラクタを生成することを特徴とするバーコード読取
    装置。
JP11148782A 1982-06-30 1982-06-30 バ−コ−ド読取装置 Pending JPS593588A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11148782A JPS593588A (ja) 1982-06-30 1982-06-30 バ−コ−ド読取装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11148782A JPS593588A (ja) 1982-06-30 1982-06-30 バ−コ−ド読取装置

Publications (1)

Publication Number Publication Date
JPS593588A true JPS593588A (ja) 1984-01-10

Family

ID=14562510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11148782A Pending JPS593588A (ja) 1982-06-30 1982-06-30 バ−コ−ド読取装置

Country Status (1)

Country Link
JP (1) JPS593588A (ja)

Similar Documents

Publication Publication Date Title
US5414252A (en) High speed scan bar code reader which can read more than one type of bar code
US5128527A (en) Apparatus for reading a bar code
JP3028815B2 (ja) 携帯可能電子装置の伝送方法と携帯可能電子装置
JP2755516B2 (ja) 自動識別デコード装置
JP3673015B2 (ja) 半導体装置における周辺デバイス識別方法
US5726995A (en) Method and apparatus for selecting modes of an intergrated circuit
JPS593588A (ja) バ−コ−ド読取装置
JPS593589A (ja) バ−コ−ド読取装置
US5270524A (en) Automatic discriminating and decoding apparatus
JP2730342B2 (ja) 割り込み制御回路
JPS593587A (ja) バ−コ−ド読取装置
KR910008434B1 (ko) 카드리더 및 그의 제어방법
JP2695790B2 (ja) イメージ処理システム
US5357092A (en) Barcode communication interface system and method therefor
JPS58107977A (ja) 記憶装置へのアクセス方式
JP2561308B2 (ja) データのスタック装置
JPS58225487A (ja) バ−コ−ド読取装置
JP2741404B2 (ja) バーコード読取装置
JP2783234B2 (ja) バーコード読取装置
JPH0327951B2 (ja)
RU2042189C1 (ru) Микропрограммное устройство управления
JPH04136769U (ja) データキヤリア
JPS59105151A (ja) 割込み処理制御方式
JP2000057060A (ja) 記憶装置
KR0168973B1 (ko) 어드레스를 자동 증가시켜 롬을 억세스하는 방법 및 그장치