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

バ−コ−ド読取装置

Info

Publication number
JPS593587A
JPS593587A JP11148682A JP11148682A JPS593587A JP S593587 A JPS593587 A JP S593587A JP 11148682 A JP11148682 A JP 11148682A JP 11148682 A JP11148682 A JP 11148682A JP S593587 A JPS593587 A JP S593587A
Authority
JP
Japan
Prior art keywords
bar
code
width value
data
decoding
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
JP11148682A
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 JP11148682A priority Critical patent/JPS593587A/ja
Publication of JPS593587A publication Critical patent/JPS593587A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

【発明の詳細な説明】 この発明は、キャラクタ情報がバーコードにて記録され
ている媒体からバーコード情報を読取るバーコード読取
装置に関する。
従来、この種のものには、例えば、所定のキャラクタ情
報が白黒のバーコードにて記録(印刷)されている媒体
を光照射して光の反射率の違いを電気信号(m流の大小
)に変換してバーコード情情を読取る光学的な読取装置
が実用化されている。
而して、この種の光学的読取装置は、キー人力操作のも
のに比べてデータ入力が極めて容易であると共に、通常
の用紙にバーコードを印刷するだけでよいので、磁気テ
ープ、磁気カード等の媒体に比べて安価である等の利点
を鳴し、電子式キャシュレジスタ等のようなPOSシス
テムのデータ入力手段として広く活用されている。
ところで、バーコードには、種々のコード態形がある。
すなわち、日本で使用されているJANコード、アメリ
カ、カナダで使用されているUPCコード、欧州で使用
されているRiANコード等のコード態形がある。そし
て、これらのコード態形の中でも標準コードと短縮コー
ドがあシ、夫々キャラクタ数を異ならしめている。然る
に、複数種類のコードを読み取り可能とするためには、
バーの幅値を記憶する記憶手段から幅値を読み出してデ
コードするが、この場合、ある特定の種類のコードであ
るとみなしてデコードし、もしエラーであれば、他の種
類のコードであると見なしてデコード処理を複数回実行
すればよい。
しかしながら、エラーにはノイズ等による読取エラーも
含まれるため、エラーが生じたら一義的に他の種類のコ
ードとしてのデコード処理に移ることはできない。
この発明は、エラーが生じた時点が、センターバーを中
心に゛両側に夫々複数キャラクタ分のバーコードを有し
てなるコードのセンターバー検出前であれば、他の種類
のコードに移ることなく、前記記憶手段内の先頭の幅値
を無視して再びデコードを行うことにより、前記記憶手
段内の先頭の幅値は、ノイズ等の読取エラーによるもの
として無視するエラー処理を行うバーコード読取装置を
提供することにある。
以下、この発明を図面に示す一実施何jづいて具体的に
説明する。図中1は、手動操作可能なハンドスキャナを
示す。このハンドスキャナ1はバーコードを照射したと
きの光の反射率(光の残糊を電気信号(電流の大小)に
変換し、A / D (アナログ/デジタル)変換回路
2に対して出力される。とのA / D変換回路2で変
換されたデジタル信号(矩形波信号)は、パルス検出回
路3に入力される。パルス検出回路3は入力される矩形
波のパルスの立ち上がりおよび立ち下がりに夫々同期し
てトリガを出力するもので、アンドゲート4を介して0
PU5に対してインタラブド信号工NT工として入力さ
れる。
0PU5は、演算用のX%Y%2レジスタ、フラグを記
憶するB’ B%PL・・・・・・FQレジスタ等の各
種のレジスタを有すると共に、メモリMに対してデータ
の書き込みをよび読み出しを実行する際に、メモリMの
ライトアドレスを記憶するアドレスSAW、メモリMの
リードアドレスを記憶するアドレス部ARの他[、Ab
% Ad及び論理演算回路ALU等を有する構成となっ
ている。而して、0PU5はSR型フリップ70ツブ(
S R−11t” ?)6の8およびR入力端子に、夫
々制御信号を出力し、5R−FF6をセット、リセット
させる。この5R−FF6はそのQ出力をアンドゲート
4の他方の入力端子に印加し、アンドゲート4を開閉制
御させるものである。また、0PU5は時間カウンタT
0で得られた計数値データを読み込み、かつ時間カウン
タT0に対してクリア信号OLを出力する。時間カウン
タT0は所定周波数のクロック信号を計数するもので、
0PU5に読み込まれる計数値データは、0PU5にイ
ンタラブド信号lNTlが入力されてから次のインタラ
ブド信号lNTlが入力されるまでの時間間隔に相当す
る。また、時間カウンタT0はその計数値がオーバフロ
ーした時にキャリー信号をOPU5に対してインタラブ
ド信号工NTIIとして出力する。更に、0PU5はメ
モリ゛Mとの間でデータの授受を行うと共に、データメ
モリDとの間でもデータの授受を行うように夫々メモリ
M、Dに対して相方向に接続されている。
メモリMは、例えば、RAM(ランダム・アクセス・メ
モリ)によって構成され、データの書き込み、読み出し
を実行する。すなわち、アドレス部AWの内容に応じて
アドレス指定されたメモリMのエリアには、時間カウン
タT0からの計数値データがOF’U5を介して書き込
まれ、また、アドレス部AHの内容に応じてアドレス指
定され゛たメモリMのエリア内のデータは、0PU5に
対して読み出される。なお、この実施例では、メモリM
の記憶容量は、時間カウンタTQを2バイトとすると、
40X2バイトのものを使用している。
データメモIJ Dの内容は、0PU5が例えば、図示
しないE oR(17,子犬キャッシュレジスタ)に対
してストローブ信号STを出力し、EOR側からデータ
転送要求信号00が0PU5に入力されたときに、0P
U5からkOR側へデータDTとして転送される。々お
、0PU5は、スピーカ7に報音指令を出力し、エラー
を報知する。
次に、上記実施例の動作を説明する。今、種類の異なる
コード態形としてJAN、UPQで表現されているバー
コードを絖み取るものとする。この、TANコードは、
第2図(A)に示す如く構成されている。すなわち、第
2図(A)は、センタバーOBを中心に夫々6キヤラク
タ分のバーコードDCを有する標準コードを示している
。この場合、センタバーOBを中心にしてその左側のバ
ーコード領域にはその左端にレフトマージンLMに続い
て設けられたレフトバーLBと、このレフトバーLBと
センターバーOBとの間にデータキャラクタ906桁を
有し、また、右側のバーコード領域にはその右端にライ
トマージンRMに続いて設けられたライトバーRBと、
このライトバーRBとセンp−/<−aBとの間にデー
タキャラクタう桁とモジュラスチェックキャラクタ1桁
とを有する構成となっている。而して、JANの左側の
バーコード領域内のキャラクタデータDOは、後述する
奇数および偶数パリティの組合せを用い、かつ右側のバ
ーコード領域内のデータキャラクタ及びモジュラスキャ
ラクタDoは、偶数パリティを用いる。
なお、JANのライトバーREとPフトパーLBとは同
一のコード態形をなしている。他方、UFOコードは、
第2図(B)に示す如く構成されている。
すなわち、第2図(B)はデータキャラクタ6桁で構成
された短縮コードを示している。したがって、このUF
Oの短縮コードは、  JANの半分のキャラクタより
成る。この場合、UFOフードにおいては1.TANの
センターバーOBに和尚するバーは有せず、かつレフト
マシンLMに続いて設けられたレフトバーLBと、ライ
トマージンRMに続いて設けられたライトバーRBとは
夫々、コード態形が異なり、レフトバーLEとJANと
同様に2本の黒バーを有する構成であるが、ライトバー
REは3本の黒バーを有する構成となっている。
また、UFOのデータキャラクタは奇数および偶数パリ
ティの組合せを用いている。
このように1.TANコードは、センターバーCBを境
にしてその左側のキャラクタは、奇数および偶数パリテ
ィの組合せを用い、かつその右側のキャラクタは、偶数
パリティを用いる構成であるから、JANを順方向或は
逆方向に走査したとしてもその区別が可能となる。また
、UFOコードは、レフトバーLBとライトバーRBの
コード態形が異なるので、これによってUPGの順方向
或は逆方向の走査が可能となる。しかも、UFOのキャ
ラクタ数はJ A Nの半分であり、しかもセンターバ
ーOBを有していないので、JAN、UPCの区別が可
能となる。
而して、第2図(A)、(B)に示すコードをハンドス
キャナ1で走査すると、A / D変換回路2の出力は
、第3図(A)、(B)に示す如くとなる。第3図(A
)は第2図(A)の、TANコードを走査したときの出
力波形、第3図(B)は第2図(B)のUFOコードを
走査したときの出力波形を示している。この場合の矩形
波は、白バーでLowレベル(ON)、黒バーでH1g
htレベル(”1”)となり、各バーの幅に対応してい
る。図中、センターバーOBは白3本、黒2本の合計5
本で構成され、また、キャラクタバーDOは、白バー2
本、黒バー2本の合計4本のバーで1キヤラクタを構成
し、合計6キヤラクタ分のバーを有している。なお、J
ANにおけるバーの数は、レフトバー3本、ライトバー
3本、センターバー5本、12キャラクタ48本で、総
計59本、また、UFOにおいては、レフトパー3本、
ライトバー6本、6キヤラクタ24本で、総計33本で
ある。また、各レフトバー、センタバー、ライトバーは
、バーの幅が最小のものを使用するが、各キャラクタバ
ー内には、最小幅のバーの2倍、3倍、4倍の幅をもっ
たバーが含まれており、幅の異なる4種類のバーで1キ
ヤラクタを構成可能となっている。この場合、幅の広い
バーは、最小幅のバーが2本〜4本連続しているものと
して取扱われる。
このようにして得られたパルス検出回路3の出力は、ア
ンドゲート4を介してOPU5に入力される。これによ
って、0PU5はインタラブド信号工NTIの割り込み
処理を実行する。すなわち、0PU5はインタラブド信
号工NT工が来ると、アドレスI%Awの内容を+1す
るインクリメント処理を実行し、次いで、時間カウンタ
’r□の計数値データを読み込んで、アドレス部AWの
内容に応じてアドレス指定されるメモリMのエリアに書
き込み、続いて、時間カウンタT。の内容をクリアする
処理をインタラブド信号工NT工が入力される毎に繰り
返し実行するようになる。この結果、0PU5に読み込
まれる時間カウンタT0の計数値データは、パルス検出
回路3の出力におけるパルスの時間間隔、換言すれば、
白黒バーの幅値に相当し、この幅値データがメモリMの
エリアに順次書き込まれる。この場合、時間カウンタT
。からキャリー信号が出力されると、0PU5はインタ
ラブド信号工NT工の割シ込み処理を実行する。
これによって、5R−FF6はリセットされ、インタラ
ブド信号工NT工の割υ込み処理を禁止させる。すなわ
ち、時間カウンタT。からキャリー信号が発生されると
いうことは、バーコードの走査が終り、スキャナ1を余
白部分(マージン等)に止めた場合であり、このような
場合に、インタラブド信号工NT工によるバーコードの
読み込み動作を禁止する。
而して、0PU5のメイン動作は、第4図、第う図のフ
ローにしたがって実行される。先ず、このメイン動作の
概略について説明する。基本的にはコード態形がJAN
であると仮宇し、メモリM内に記憶されたデータを読み
出してデコードする際に、所定のキャラクタにデコード
されず、デコードにエラーを生じた場合には、走査した
バーコードが、TANのものではなかったと判別し、U
PCコードとしてデコードを再開するよう&ユでいる。
この場合、センターバーを読み出すまではJ A N。
UFOの区別ができ々いので、6キヤラクタ分のデータ
をデコードしたら、次に読み出されるバーはセンターバ
ーであるとみなし、センターバー以4のバーコードを、
TANとしてデコードし続ける。
このとき、JANであれば、センターバー以降のデコー
ドにエラーを生じないので、そのままJANとして処理
し得るが、エラーを生じたならば、6キヤラクタ後のバ
ーがセンターバーではなかったことになり、センターバ
ーとみなしたバーの先頭に戻ってこれがライトバーかど
うかを調べる。
この結果、ライトバーであれば、UFOコードを順方向
に走査したものとして処理し、またライトバーでもなけ
れば、UFOコードを逆方向に走査したものとして処理
し、この処理中にエラーとなれば完全なエラーとして処
理する。すなわち、CPU5のメイン動作は、JANが
順方向或は逆方向に走査されたものとする処理と、UF
Oが順方向に走査されたものとする処理と、UFOが逆
方向に走査されたものとする処理と、エラー処理の4つ
の動作に大別される。以下、上記各動作を順次説明する
先ず、JANが順方向に走査或は逆方向に走査され、か
つエラーを生じなかった場合に基づいてOPU5のメイ
ンフローを説明する。ステップS1は電源投入時或は割
り込み処理後に実行され、メモリM1データメモリpお
よびCPU5内の各釉レジスタの内容に初期値を設定す
るイニシャライズ処理を実行する。続いて、ステップs
7は、5R−FF6をセットしてアンドゲート4を開成
させ、インタラブド信号工NT工の割り込み処理を実行
可能な状態にセットする。これによって、メモIJ M
に記憶された時間カウンタT0の計数値データ、換言す
れば、バーコードの幅値データをステップS3の実行に
より読み出す。すなわち、アドレス部AHの内容にした
がってアドレス指定されるメモリMのエリアから幅値デ
ータを読み出してXレジスタに転送する。次で、ステッ
プS4に進み、アドレスMARの内容を+1する処理を
実行し、アドレスの更新を行なう。続いて、ステップS
、に進み、アドレス部kHの内容がアドレス部AWの内
容よりも先行したかどうかを調べる。すなわち、メモリ
Mのデータの読み出し動作は、その書き込み動作に先行
することなく実行されなければならない為、ステップ〜
はその読み出し動作が正常であるかどうかを調べる処理
で、読み出し動作が正常であれば、アドレスsARの内
容がアドレス部AWの内容以上となり、次のステップS
6に進む。
ステップS6・S8は、メモリMから1キヤラクタ分の
データを読み出すために実行される処理で、上述の如<
、:rhN、UFOでは1キヤラクタを4本のバーで構
成する為、4本のバーに応じた幅値データを読み出すた
めに、ステップS8でYレジスタの内容を+1にインク
リメントする処理を実行シ、次で、ステップS8でYレ
ジスタの内容がl」であるかどうかを調べ、開でなけれ
ば、ステップS3に戻り、Yレジスタの内容がt」とな
るまで上述のステップS3乃至S8を繰り返して実行す
る。
この場合、ステップS6と88との間でステップS7が
実行されるが、このステップ8□はFKNレジスタ1″
がセットされているか否かを調べるものである。この場
合%’にレジスタはUPOコードとしての処理を実行さ
せるためのフラグがセットされるもので、今の場合には
、FKNレジスタ内容が1″′ではないので、ステップ
S7では1NO」と判断される。
このようにして1キヤラクタ分のデータをメモリMから
読み出し、Xレジスタに転送する処理が終ると、次のス
テップ八に進み、Xレジスタの内容を論理演算回路AL
Oにてデコードし、その結果を2レジスタに転送する。
次で、ステップS1゜に進み、上述のステップS1oで
デコードした結果デコードにエラーを生じたか否かを調
べる。今の場合、エラーは生じ寿かったので、ステップ
S1□に進み、FBレジスタに111′がセットされて
いるか否かを調べる。この場合、FBレジスタはUPO
コードの順方向の処理が終ったかどうかのフラグで、今
の場合、ステップS1□では「NO」と判断され、次の
ステップS1□に進む。ここでは、JANの2イトバー
、JAN% UFOのレフトバーの何れかが来たか否か
を調べ、倒れかが来たならば、次のステップS13 に
進み、FLレジスタに1″をセットする。このステップ
5Illはライトバー、レフトバーの何れかが来たなら
ば、以降、ステップSu を通ってステップ”15にフ
ローを進行させるために実行されるものである。また、
ステップSI4は11’Lレジスタの内容が1″である
かどうかを調べるもので、上述のステップS1□でライ
トバー、レフトバーの何れでもないと判断された場合に
は、ステップS14を通ってステップS3に戻し、ライ
トバー、レフトバーの合れかが来るまで上述の動作を実
行させながら待機する。而して、バーコードを順方向に
走査した場合には、レフトバー、逆方向に走査した場合
には、ライトバーが来るので、ステップS14からステ
ップS1.に進む。このステップS15はNレジスタの
内容が「6」、つまり、今までデコードしたキャラクタ
数が「6」であるかどうかを調べ、「6」でなければ、
Nレジスタの内容が112」であるかどうかを調べる次
のステップ5Illでは当然「NO」と判断されるので
、ステップS1□に進行するようになる。このステップ
S17では、2レジスタの内容をデータメモリDに転送
する処理を実行する。したがって、データメモリDには
上記ステップS、でデコードされた1キヤラクタ分のデ
ータが書き込まれる。次で、ステップ5Illに進み、
Nレジスタの内容を+1するインクリメント処理を実行
し、その結果、次のステップS1.でNレジスタの内容
が「6」かどうかを調べ、「6」でなければ、ステップ
S3に戻り、6キヤラクタ分のデコードが終るまで上述
の動作を繰り返し実行する。
而して、6キヤラクタ分のデコードが終ると、ステップ
S0て「YBsJと判断され、次のステップ820に進
行する。このステップS2゜はFyXレジスタ11」が
セットされているかどうかを調べるもので、1゛■レジ
スタはUFOコードとしての処理を実行させるためのフ
ラグがセットされるもので、今、】゛■レジスタの内容
は1”ではないので、ステップ”zoでは1NO」と判
断され、ステップS21に進む。ここでは、センターバ
ーが来たかどうかを調べる。JANコードにおいては、
6キヤラクタ以降のバーは、センターバーとなるので、
ステップS2□l二進み、0DD(奇数パリティ)、E
VEN(偶数パリティ)の検出を行う。
すなわち、今までデコードした6キヤラクタ分のデータ
が、JANを順方向に走査したときには、第6図に示す
ように、センターバーの左側データキャラクタの組合せ
が奇数パリティ(0)と偶数パリティ(lの組み合せか
、或いはJANを逆方向に走査したときにはセンターバ
ーの右側のキャラクタの偶数パリティがどうかを調べる
チェックを実行するものである。而して、このチェック
の結果、次のステップs23でエラーが生じなかったと
判断されたときには、次のステップs24に進む。ここ
では、センターバー検出フラグをFCレジスタにセット
する処理が行われる。すなわち、6ギヤラクタ分のデー
タをデコードしたら次に来るバーはセンターバーである
とみなして、予めFCレジスタにIJ 1 %をセット
しておく。続いて、ステップs25が実行され、アドレ
ス部^Rの内容から[1,Jを減算し、この演算結果デ
ータをアドレス部Abに退避する。すなわち、センター
バーの先頭のバーに対応するアドレスを退避する。次い
て、ステップs2.が実行され、アドレスIIs AH
の内容を+1する処理を実行したのち、ステップSJに
戻る。すなわち、センターバーは5本のバー、キャラク
タデータは4本のバーで構成されているため、上記ステ
ップS3に戻す際には、′リードアドレスを更新させ゛
、センターバーの次のバーをアドレス指定するために、
ステップS26の処理を予め実行しておく。
このような動作が順次実行されると、センターバー以降
のキャラクタデータがデコードされて順次データメモリ
Dに記憶されてゆく。而して、センターバー以降の6ギ
ヤラクタのデコードが終了し、全部で12キヤラクタ分
のデータがデータメモリDに記憶されると、ステップS
16で[ymsJと判断され、次のステップS2□に進
む。ここでは、ライトバー、レフトバーの何れかが来た
かどうかを調べるもので、何れか一方が来たならば、次
のステップ5211で走査方向の検出を行う。この場合
、ライトバー、レフトバーの何れもコード態形が同様で
あるので、これによっては走査方向の判別は不能である
ため、ステップS28においては、奇数パリティと偶数
パリティの組み合せがセンターバー以前にあれば、順方
向、センターバー以降ではあれげ逆方向と判別する。而
して、JANが順方向に走査された場合には、ステップ
s2−こ進み、5R−FF6をリセットし、インタラブ
ド信号工NT工の割り込み処理を禁止させたのち、デー
タメモリDに記憶された12キヤラクタ分のデータをK
OR側へ転送する。一方、JANが逆方向に走査された
場合には、ステップS28.に進み、データメモリDの
内容を反転したのち、ステップs29を介してステップ
”30を実行し、上述の場合と同様に、データをl1i
OR側へ転送する。
次に、UFOコードを順方向に走査した場合に基づいて
第4図、第5図のフローを説明する。なお、上述したよ
うに0PU5のメイン動作は、ハンドスキャナ1で読み
取ったデータをJAIJの12キヤラクタ分のデータと
してフローを実行している。ここで、JANのセンター
コード検出前に(Jエラーを生じず、センターコード検
出後にエラーを生じた場合を仮定して説明する。センタ
ーコード検出後のエラーは、ステップS18において、
6♀キャラクタのデコードを終了したのちに発生するか
、或は、UFOコードを走査していて6キヤラクターバ
ー以降の印刷ミス等によるノイズで12キヤラクタまで
はデコードされたが、その後ライトバー、レフトバーの
何れも検出されず、ステップS2□で[IJ OJと判
断された場合に発生する。このような場合、第5図のス
テップs3.に進み、F’Oレジスタの内容がrlJで
あるがどうがか調べられる。今の場合、センターコード
以降ニエラーを生じたのであるから、センターバー検出
フラグ″1nがFQレジスタにセットされているので、
ステップS3□で「yxsJと判断され、ステップ5s
f=進む。ここで、FBレジスタにl++がセットされ
ているかどうかが調べられるが、最初は、FBレジスタ
には1″がセットされていないので、ステップs、3に
進む。ステップS、3Gu、上述のステップS25でア
ドレスsA bに退赴させておいたセンターバーの先頭
のバーに対応するアドレスをアドレス部AHに転送して
復帰させる。
続いて、ステップS34に進み、センターバー以降えた
時点ではNレジスタの内容が6以上となっているので、
その内容に「6」をセットする。次いて、ステップS3
.は、ll1vレジスタおよび’Fkレレジスタに夫々
@1″をセットする処理を実行する。このような処理が
実行されると、第4図のフローに戻り、ステップち以降
が実行される。この結果、センターバーの先頭に戻って
データの読み出し動作が実行される。この場合、IFk
レジスタに1″がセットされているので、ステップs7
からステップS36に進み、Yレジスタの内容が[6!
Iであるか否かが調べられる。すなわち、UFOコード
においては6キヤラクタバーの後に、JANのセンター
バーに代って6本のバーで構成されたライトバーが来る
ので、このライトバーに相当する6つのデータを読み出
すために、Yレジスタの内容が「6」かどうかを調べ、
「6」でなければ、ステップS3に戻る。而して、UF
Oのライトバーに相当する6ケのデータを読み出したら
ステップS8、S10が順次実行され、デコードにエラ
ーを生じたか否かが調べられ、エラーが生じなかったと
きには、ステップS、に進む。今の場合、”Bレジスタ
の内容は0”であるからステップS1□が実行される。
この場合、ステップS では「NOI+2 と判断されるので、ステップ”14に進む。この時S1
5に進む。今、Nレジスタには「6」がセットされてい
るから、ステップ”20に進み、また、FVCレジスタ
内容は1″であるから第5図のステップS37に進み、
更に、’Bレジスタの内容はOI″であるからステップ
S38に進む。このステップS38では、UFOコード
のライトバーは6本のバーで構成されているので、6本
のバーで構成されたライトバーであるか否か、換言すれ
は、Upoのライトバーであるか否かが調べられる。今
の場合、UFOのライトバーであるから、第4図のフロ
ーに戻ってステップ829’ 830が実行され、デー
タをUFOのコードとしてEOR側へ転送される。
このように、センターバー以降のバーコードにエラーが
生じた際には、JANのセンターバーがJANコードの
半分のキャラクタからなるUFOコードのライトバーに
相当するか否かを検−出し、ライトバーに相当すること
が検出された際には、この時点でデコードされたキャラ
クタ、データをUPOを順方向に走査したデータとして
FOR側へ転送するのである。
次に、UFOコードを逆方向に走査した場合に基づいて
第4図、第5図のフローを説明する。この場合、JAN
のセンターコード検出後にエラーが生じると共に、UF
Oコードの順方向の処理でもエラーが生じる。すなわち
、UFOコードが逆方向に走査された場合には、JAN
のセンターバーに相当する部分にレフトバーが来るので
、UPCコードの順方向処理において、第5図のステッ
プS38では「yoJと判断される。これによってステ
ップS39 ’ ”’40が順次実行される。先ず、ス
テップS39では、UFOコードの順方向の処理が終っ
たので、FBレジスタに”1″をセットし、次で、ステ
ップS4oではFyレジスタをクリアする。続いて、ス
テップS3.が実行されるが、この時点ではFOレジス
タにはHlnがセットされているので、次のステップS
3□に進む。今、’Bレジスタには1”がセットされて
いるので、ステップS4□に進む。ここでは、FRNレ
ジスタ1′″がセットされているか否かが調べられる。
このFRNレジスタ上記インタラブド信号工NT工の処
理でメモIJ Mに順次データを書き込む場合、メモリ
Mの最終アドレスから先頭アドレスに戻ったときに1″
のフラグがセットされるもので、今の場合には「NO」
と判断され、ステップS4□に進み、アドレス部kRの
内容がクリアされ、リードアドレスを先頭アドレスにセ
ットすると共に、FCレジスタをクリアする。続いて、
第4FAのステップらに戻る。これによってメモリMの
先頭アドレスの内容から1譲次読み出す卵J作が実行さ
れる。
この場合、最初はPKNレジスタ1”がセットされてい
るので、ステップ83〜S7からステップS36に進み
、ライトバーに相当する6ケのデータが読み出されるま
でステップ83−8い F3s6が繰す返される。そし
て、ライトバーに相当する6ケのデ−タが読み出された
らステップS9.810を実行し、エラーではなかった
らステップS、に進む。今、FBレジスタはl″″にセ
ットされたからステップS43に進み、UFOコードの
ライトバーを構成する6ケのデータであるかどうかを調
べ、ライトバーでなければ、ステップS14を介してス
テップS3に戻り、ライトバーが来るまで待機する。而
して、ライトバーのコードが検出されると、ステップS
44に進み、’にレジスタをクリアする。次で、ステッ
プ813 ’ S14を介してステップ5Illに進み
、Nレジスタの内容が「6」となるまで、ステップ81
5〜S19を介してステップS3に戻シ同様の動作が繰
り返される。この場合、’にレジスタがクリアされてい
るので、ステップS、IC「NO」と判断され、ステッ
プS36に代ってステップS、が実行される。而して、
6キヤラクタ分のデータをデコードしてデータメモリD
に書き込んだら、ステップS15からステップS2゜に
進む。今、UFOコードの処理であるからyvレジスタ
には1”がセットされているので、第5図のステップS
37に進む。
今、’Bレジスタにはl!111がセットされているの
で、ステップS45に進む。ここでは、レフトバーか否
かが調べられる。UFOコードを逆方向に走査された場
合、6キヤラクタバー以降にはレフトバーが来るので、
ステップS45では「yhsJと判断され、第4図のス
テップ828′に進み、データメモリDの内容を反転し
たのちステップS2.を介してステップ”30が実行さ
れ、データメモIJ ])の内容がEOR側へ転送され
る。
このように、センターバー以降のバーコードにエラーが
生じた場合に1.TANのセンターバーがUP(3コー
ドのライトバーに相当するか否かを検出した際に、ライ
トバーに相当しないことが検出されたときには、メモリ
Mの先頭からデータを読み出し、これに基づいてUFO
コードの逆方向走査としてのキャラクタを生成し、KO
R側へ転送するのである。
次に、デコード不能となシ、最終的にエラーとなる場合
について説明する。エラーとなるのは、ステップS〆A
W<ARと判断された場合、ステップS45で[NoJ
と判断された場合、およびステップS41で「ymsj
と判断された場合には、ステップ”46に夫々進み、エ
ラーの報知が発音される。この場合、ステップS、でA
W<ARになると、リードアドレスがライトアドレスに
先行し、デコードのためにメモリMから読み出すデータ
がなくなる等の不都合を生ずるので、エラーとする。
また、ステップもで「NO」と判断されるのはNPCコ
ードの逆方向の処理で最後にレフトツク−が来なかった
ときであシ、この場合は、TANコード、およびUPO
コー:・の順方向、逆方向の処理の倒れでもなかったの
であるから最終的にエラーとする。更に、ステップS4
.で[yisJと判断されるのは、FRレジスタに″1
′がセットされているとき、すなわち、メモリMの最終
アドレスから先頭アドレスに戻り、メモリMの内容が書
き替えられているときであるから、この場合、  UF
Oコードの逆方向処理をメモIJ Mの先頭のアドレス
に戻って行ったとしても、その処理をすべきデータが既
にがくなっていてその逆方向処理ができないので、エラ
ーとする。
このように、ラード軸形の異なる複数種類のコードを読
み取り可能とするために、JANのセンターバー以降の
デコードエラーを検出するようにしている。
ところで、エラーには上述のデコードエラーに限らず、
各棟のエラーがある。例えば、ステップSゎ において
、印刷ミス、汚れ等によるノイズを読み取った際にデコ
ードエラーを生じた場合、ステップS21において、セ
ンターバーが来るべきところにセンターバーが来なかっ
た場合、ステップS23において、センターバーは来た
けれどもそれ以前にデコードし洸キャラクタのODD、
InVKく Nにエラーを生じた場合である。このようにステップS
24が実行される前、すなわち、センターバー検出前に
エラーが生じた場合をこけ、第5図のステップS31に
夫々進む。ここでは「NO」と判断されるので、ステッ
プS47に進み、アドレス部Adの内容を+2する処理
を実行し、次で、ステップ”4gに進み、アドレス部A
dの内容をアドレス&IS A Hに転送する処理を実
行し、ステップS3に戻る。すなわち、センターバー以
前にエラニが生じた場合には、もう一度デコードを再開
するが、このとき、アドレス部A(1の内容は電源投入
時には「0」となっているので、ステップS47’ S
4aが実行される結果、アドレス部AHは「2」となる
このため、メモリMからは先頭のデータが無視されて次
のデータから順次読み出され、このデータよりデコード
を再開する。このような処理は、ステップS1□で1y
ICsJと判断されるまで繰り返される結果、ライトバ
ー、レフトバーの何れが来るまで先頭バーが無視される
。而して、ステップS、□で[ygsJと判断されると
、ステップ513S1.を介してステップS15に進み
、以下1.rANUPOコードの順、逆方向の処理にし
たがってフローが実行される。
このように、JANのセンターバー以前にエラーが生じ
た場合には、先頭にノイズが含まれている可能性が極め
て高いので、この場合のエラーはノイズによるものであ
るとみなして先頭のバーを無視し2次のバーのデータよ
りデコードを再開するエラー処理を行うことにより、エ
ラーがノイズによる読取エラーなのか、他の種類のコー
ドを示すためのエラーなのかを判別することが可能とな
る。
他方、上述したインタラブド信号工NTIの処理におい
てはJANコードが、UFOコードかの判別が可能であ
る。すなわち、この割シ込み処理が実行されるのは、バ
ーコードの走査が終り、スキャナ1を余白部分(マージ
ン)に止めた場合であるので、その時点にメモリMの中
に伺本分のバーのデータがあるかを調べ、33本であれ
は、UPOコード1.59本であれば、JANコードで
あることが分る。このとき、Fエレジスタに1#をセッ
トしておけは、以降、JANコードの処理に替ってUF
Oコードの処理に進むようになる。
すなわち、メモリMに書き込まれたバーに対応するデー
タ数を2とすると、33≦2〈・う9のときには、ステ
ップs1.がらステップs1.に進み、Fエレジスタに
11″がセットされているがどうかが調べられる。今の
場合、  「yhsJと判断されるので、ステップS、
。に進み、UFOコードの処理を実行させる友めに、F
V、FKレジスタに61″をセットしたのち、ステラフ
鳴に戻る。この場合、ステップS15まで進むと、ここ
では「YES」と判断されるので、JANコードの12
キャラクタ分の処理が打ち切られ、UFOコードの処理
に進行する。そして、先ず、上述した場合と同様に、U
FOの順方向の処理が実行され、その結果、順方向でな
ければ、逆方向の処理が実行される。\ なお、上記実施例においては、4本分のバー毎にデコー
ドするようにしたが、センターバーが来た時点で一括し
てデコードするようにしてもよい。
塘り、ハンドスキャナに限らず、定置式スキャナであっ
てもよく、更に、光学的なスキャナに限らず、磁気的な
スキャナであってもよい。
加えて、上記実施例においては、JANコード、UFO
コードの読み取シを可能とし次が、その他のコード形態
を複数種類読み取シ可能とするようにしてもよい。
以上詳述に説明したように、この発明に係るバーコード
読取装置によれば、センターバー以前心に両側に夫々複
数キャラクタ分のバーコードを有してなるコードを読み
取るものにおいて、前記バーコードの各バーの領域に相
当する幅値を読み取って順次記憶させると共に、記憶さ
れた幅値をデコードしてキャラクタを生成する場合に、
センターバー検出前にキャラクタ−のデコードにエラー
が生じた際には、前記記憶内容の先頭の幅値を無視して
次の幅値からデコードを再開するようにしたから、複数
種類のコード帖形が読み取り可能であると共に、読取エ
ラーなのか、他の種類のコードであることを示すエラー
なのかを区別することができる。すなわち、センターバ
ー検出前であれば、他の種類のコードのデコードに移る
ことなく、読取エラーを処理することができる。また、
この読取エラーはセンターバーが検出された時点でデコ
ードされた奇数パリティ及び偶数パリティの組合せを検
出す飄ようにしても処理することかできる。     
        −
【図面の簡単な説明】
図面はこの発明の一実施例を示し、第1図は全体のブロ
ック回路図、第2図(A)はJANコードを示す図、第
2図(B)はUFOコードを示す図、第3図(A)はJ
ANコードを読み取ったときの第1図に示すA / D
変換回路の出力波形図、第3図(B)はUPCコードを
読み取ったときの第1図に示すA/D変換回路の出力波
形図、第4図、第5図は第1図に示すCPHのメイン動
作を説明するフローチャート、第6図は、JANコード
において、センターバーの左側のデーターキャラクタに
おける奇数パリティ及び偶数パリティの組合せを示す図
である。 1・・・・・・ハードスキャナ、2・・・・・・A /
 D変換回路、3・・・・・・パルス検出回路、5・・
・・・・OP U。 特許出願人 カシオ計X機株式会社

Claims (2)

    【特許請求の範囲】
  1. (1)センターバを中心に両側に夫々複数キャラクタ分
    のバーワードを有してなるフードを読み取るバー7−ド
    絖取執置において、前記バー7−)V)各バーの領域に
    相当する幅値を読み取る読取手段と、読み取られた幅値
    を順次記憶する記憶手段と、該記憶手段内の幅値に基づ
    いてキャラクタを生成するデコード手段とを備え、前記
    センターバー検出前に前記デコード手段によるキャラク
    タのデコードにエラーが生じた際に、前記記憶手段内の
    先頭の幅値を無視して次の幅値からデコードを再開する
    ことを特徴とするバーコード読取装置。
  2. (2)前記特許請求の範囲第1項記載(おいて、前記セ
    ンターバーが検出された時点で前記デコード手段でデコ
    ードされたキャラクタの奇数パリティ及び偶数パリティ
    の組合わせにエラーが生じた際に、前記記憶手段内の先
    頭の幅値を無視して次の幅値からデコードを再開するこ
    とを%徴とするバーコード読取装置。
JP11148682A 1982-06-30 1982-06-30 バ−コ−ド読取装置 Pending JPS593587A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=14562484

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPS593587A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5030588A (en) * 1988-04-05 1991-07-09 Seiko Instruments Inc. Method of making semiconductor device with film resistor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5030588A (en) * 1988-04-05 1991-07-09 Seiko Instruments Inc. Method of making semiconductor device with film resistor

Similar Documents

Publication Publication Date Title
JPS593587A (ja) バ−コ−ド読取装置
JPS5644946A (en) Code error correction and detection system
JPS593589A (ja) バ−コ−ド読取装置
JPS6111845A (ja) 印字デ−タ制御装置
JPS593588A (ja) バ−コ−ド読取装置
JPH0327952B2 (ja)
JPH02234517A (ja) 伝送中にデイジタル減衰および/または符号変換の実施される、パリテイチエツク可能な2進符号語の処理法
EA200001048A1 (ru) Способ изменения неделимым образом множества ячеек энергонезависимой памяти в карточке с микросхемой, в частности, в бесконтактной карточке
RU1798814C (ru) Устройство дл синтеза речевых сигналов
JPS5851371A (ja) 帳票処理方式
JPS5867456A (ja) 出力装置
JPH0290079A (ja) 大規模集積回路の識別方式
JPH03133672A (ja) 画像形成装置
JPS6186825A (ja) キ−ボ−ド入力装置
JPH01268337A (ja) インタフェース回路
JPS61198274A (ja) 文字パタ−ン記憶方式
JPS6216434B2 (ja)
JP2002320092A (ja) 画像処理装置及び画像処理方法
JPH0415485B2 (ja)
JPH0326177A (ja) 画像データの圧縮伸張コントローラ
JPS62147862A (ja) 画像復号器
JPH0724160B2 (ja) 連想記憶装置
JPS63146571A (ja) イメ−ジ処理装置
JPS61278975A (ja) 仮想メモリ制御回路
JPS62137640A (ja) インタプリタの実行制御方式