GB/T ××××—××××
GB/T ××××—××××
目 次
前 言
II
1
1
范围
1
2
性引用文件
1
3 术语和定义
1
4 要求
1
4.1 符号特性
2
4.2 符号结构
2
4.3 字符编码
2
4.3.1 符号字符编码
4
4.3.2 起始符和终止符
4
4.3.3 符号校验字符
4
4.4 尺寸
4
4.5 译码算法
5
4.6 由应用规范确定的参数
5
4.6.1 符号及尺寸特征
5
4.6.2 光学参数
5
4.6.3 条码符号允许的质量等级
5
4.7 条码质量检验
5
4.7.1 宽窄比N
5
4.7.2 分隔字符的间隔
6
4.7.3 空白区
7
附录 A(资料性附录)附加的特性
10
附录 B(资料性附录)三九条码的使用指南
11
附录 C(资料性附录)符号标识符
12
附录 D(资料性附录)应用决定参数的实例
前 言
本
修改采用ISO/IEC 16388 《信息技术---自动识别和数据采集技术---条码符号规范---三九条码》(Information technology---Automatic identification and data capture techniques---Bar code symbology specifications---Code 39), 对现行的国家标准GB/T 12908--1991《三九条码》进行了修订。本标准以ISO/IEC 16388为基础,根据我国条码技术标准化状况,对采用的ISO/IEC 16388从内容上作了一定的修改。主要修改如下:
按照我国制定标准的规则及我国条码技术方面的相关标准,修改了该标准中的一些文字叙述和条码术语;
在“4.6应用确定的参数”中增加了 “4.6.3条码符号允许的质量等级”;
将ISO/IEC 16388的“4.6.3测试规范”改为“4.7条码质量检验”。
本标准代替GB/T 12908—1991《三九条码》。
本标准与GB/T 12908—1991相比主要变化如下:
增加三九条码标准的译码算法;
将ISO/IEC 15416作为三九条码的测量规范;
将许多原标准中的技术参数要求划为由具体应用规范来决定。
本标准的附录A、附录B、附录C、附录D均为资料性附录。
本标准由中国物品编码中心提出并归口。
本标准起草单位:中国物品编码中心。
本标准的主要起草人:刘伟、张靖渊、王艳春。
本标准原版本于1991年首次发布,本次为第一次修订。
三九条码
范围
本标准规定了三九条码的技术要求、符号特性、数据字符的编码、尺寸、译码算法,列出了由应用决定的参数。
本标准适用于自动识别与数据采集。
规范性引用文件
下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。
GB/T 12905 条码术语
ISO 646:1983 信息技术---用于信息交换的ISO 7位编码字符集
ISO 7064:1983 数据处理---校验字符系统
ISO/IEC 15416 信息技术---自动识别与数据采集技术---条码印刷质量测试规范---线形符号
ISO/IEC 15424 信息技术---自动识别与数据采集技术---数据载体/符号识别
3 术语和定义
GB/T 12905 中确立的术语和定义适用于本标准。
4 要求
4.1 符号特性
可编码的字符集:
1) A~Z和0~9的所有数字字母;
特殊字符:空格、$、%、+、-、.、/;
起始符/终止符。
条码类型为非连续型;
每个条码字符共9个单元,其中有3个宽单元和6个窄单元,共包括5个条和4个空;
条码字符自校验;
可编码的数据串为非定长;
双向可译码;
可以选用符号校验字符(参见附录A);
条码密度取决于条码字符间隔、X尺寸和宽窄比N;
非数据字符等于两个符号字符。
4.2 符号结构
三九条码符号包括:左右两侧空白区、起始符、条码数据符(包括符号校验字符)、终止符,如图1所示。条码字符间隔是一个空,它将条码字符分隔开。
空白区
起始符
1
A
终止符
空白区
1 A
图1. 表示“1A”的 三九条码符号
4.3 字符编码
4.3.1 符号字符编码
三九条码字符集见表1。
表1 三九条码字符集表
字符
编码图案
B
S
B
S
B
S
B
S
B
ASCII值
0
0
0
0
1
1
0
1
0
0
48
1
1
0
0
1
0
0
0
0
1
49
2
0
0
1
1
0
0
0
0
1
50
3
1
0
1
1
0
0
0
0
0
51
4
0
0
0
1
1
0
0
0
1
52
5
1
0
0
1
1
0
0
0
0
53
6
0
0
1
1
1
0
0
0
0
54
7
0
0
0
1
0
0
1
0
1
55
8
1
0
0
1
0
0
1
0
0
56
9
0
0
1
1
0
0
1
0
0
57
A
1
0
0
0
0
1
0
0
1
65
B
0
0
1
0
0
1
0
0
1
66
C
1
0
1
0
0
1
0
0
0
67
0
0
0
0
1
1
0
0
1
68
1
0
0
0
1
1
0
0
0
69
0
0
1
0
1
1
0
0
0
70
0
0
0
0
0
1
1
0
1
71
1
0
0
0
0
1
1
0
0
72
0
0
1
0
0
1
1
0
0
73
0
0
0
0
1
1
1
0
0
74
1
0
0
0
0
0
0
1
1
75
0
0
1
0
0
0
0
1
1
76
1
0
1
0
0
0
0
1
0
77
0
0
0
0
1
0
0
1
1
78
1
0
0
0
1
0
0
1
0
79
0
0
1
0
1
0
0
1
0
80
0
0
0
0
0
0
1
1
1
81
1
0
0
0
0
0
1
1
0
82
0
0
1
0
0
0
1
1
0
83
0
0
0
0
1
0
1
1
0
84
1
1
0
0
0
0
0
0
1
85
0
1
1
0
0
0
0
0
1
86
1
1
1
0
0
0
0
0
0
87
0
1
0
0
1
0
0
0
1
88
1
1
0
0
1
0
0
0
0
89
0
1
1
0
1
0
0
0
0
90
-
0
1
0
0
0
0
1
0
1
45
.
1
1
0
0
0
0
1
0
0
46
空格
0
1
1
0
0
0
1
0
0
32
$
0
1
0
1
0
1
0
0
0
36
/
0
1
0
1
0
0
0
1
0
47
+
0
1
0
0
0
1
0
1
0
43
%
0
0
0
1
0
1
0
1
0
37
*
0
1
0
0
1
0
1
0
0
无
注1:* 表示起始符/终止符。
注2:B表示条,S表示空。0代表一个窄单元,1代表一个宽单元。
4.3.2 起始符和终止符
在供人识读的字符中,三九条码的起始符和终止符通常用 * 表示。此字符不能在符号的其他位置作为数据的一部分,并且译码器不应将它输出。
4.3.3符号校验字符
三九条码的校验字符是可选的。附录A规定了校验字符的位置和计算
。
4.4 尺寸
三九条码应该使用下列标称尺寸:
a) 窄单元的宽度(X): X尺寸可以根据具体应用的需求由应用规范来确定,见4.6.1;
b) 宽窄比(N):2.0~3.0;
c) 条码字符间隔的宽度:最小值为X;当X﹤0.287mm时,最大值为5.3X;当X≥0.287mm时,最大值取1.52mm和3X中的较大值;
d) 空白区最小宽度:10X;
e) 对于人工扫描,条码的最小高度推荐值为:取5.0 mm 与不包含空白区符号总长度的15%两者中的较大值。
注:三九条码符号的长度W(以mm为单位)可以由以下公式计算:
W=(C + 2)(3N + 6)X +(C + 1)I + 2Q
式中:C 数据字符的数目(包括可能使用的符号校验字符);
N 宽窄比;
X 窄单元的标称尺寸;
I 条码字符间隔尺寸;
Q 空白区的宽度。
4.5 译码算法
a) 确认起始的空白区的存在
b) 对于每个条码字符(包括起始符和终止符):
1) 测量5个条、4个空的总宽度,以S表示;
2) 计算出一个阈值T,T = S/8
3) 将字符中每一个单元的宽度和T进行比较,单元宽度大于T,是宽单元,否则,是窄单元。
4) 确定宽窄单元的图案是否属于字符集中的一个有效字符。
c) 第一个条码字符必须是起始符或终止符,由此可以确定扫描的方向。
d) 持续识读条码字符,直至读完全部条码字符。
e) 确认尾部的空白区的存在。
4.6 由应用规范确定的参数
4.6.1 符号及尺寸特征
在应用中,为了使三九条码符号适于印刷并能被正确识读,需要对以下符号和尺寸参数进行规定:
a) 选择可编码字符集的子集;
b) 在符号中数据字符的数目。该数目可以是固定的,也可以定其为可变的,或对该数目规定一个最大值;
c) 是否使用模43符号校验字符(见附录A.1),译码器是否输出符号校验字符;
d) 是否使用数据校验字符。如果使用,指定其校验算法;
e) X尺寸的范围;
f) 宽窄比N的范围;
g) 条码字符间隔的尺寸;
h) 条高的最小值。
注1:如果在应用中希望增强数据的安全性,应该使用符号校验字符。
注2:为了最大限度地提高识读性能,尽量选用4.4 b)中较大的宽窄比。
附录D给出了一个实例。
4.6.2 光学参数
在一个给定的应用中为了使得条码符号能够被正确识读,就需要对一些光学参数进行规定,这些参数的选择应该适用于具体的应用规范,并应包括以下参数:
a) 峰点响应波长;
b) 光谱的半功率带宽;
c) 扫描器的光斑尺寸;
d) 条和空的反射率参数;
e) 光学测量所需要的条件;
f) 允许条码符号中缺陷的程度。
附录D给出了一个实例
4.6.3 条码符号允许的质量等级
条码符号允许的质量等级由应用规范决定。
4.7 条码符号质量检验
条码符号质量检验方法采用ISO/IEC 15416中的测试规范。
ISO/IEC 15416标准允许符号标准制定附加的合格和不合格的阈值。对于三九条码来讲,本标准的4.7.1至4.7.3给出了此种附加阈值。对于任何一个扫描波形,如果不满足这些条件,它的质量等级应该为0。
注:以下条款中的要求基于参数测量的实际值而不是想要达到的理论值。因此,使用Z尺寸(窄单元的实际尺寸)比使用X尺寸更为合适。
4.7.1 宽窄比N
符号在制作时,N的标称值在2.0至3.0之间(包括2.0和3.0),N的测量值应该在1.8至3.4之间(包括1.8和3.4)。
4.7.2 条码字符的间隔
对于Z尺寸小于0.287 mm的符号,条码字符间隔的最大许可值为5.3Z,对于Z尺寸大于或等于0.287 mm的符号,条码字符间隔的最大值为3Z和1.52 mm两者中的较大者。
4.7.3 空白区
条码符号两端的空白区尺寸的最小值各为10Z。
附 录 A
(资料性附录)
附加的特性
A.1 校验字符
A.1.1 符号校验字符
对于数据安全性要求比较高的应用,应该使用一个符号校验字符。在这种情况下,此符号校验字符应紧接在最后一个数据字符之后和终止符之前。
如果采用符号校验字符,应该采用以下符号校验字符的算法。
a) 为每一个数据字符分配一个数值,如表A.1所示。
b) 计算出符号所有数据字符数值的总和。
c) 将数值的总和除以43。
步骤c)所得的余数值在表A.1中对应的字符就是符号校验字符。译码器可以输出43模数的符号校验字符。
表A.1 字符值分配表
字符
值
字符
值
字符
值
0
0
F
15
U
30
1
1
G
16
V
31
2
2
H
17
W
32
3
3
I
18
X
33
4
4
J
19
Y
34
5
5
K
20
Z
35
6
6
L
21
-
36
7
7
M
22
.
37
8
8
N
23
空格
38
9
9
O
24
$
39
A
10
P
25
/
40
B
11
Q
26
+
41
C
12
R
27
%
42
D
13
S
28
E
14
T
29
例:对于“CODE 39”数据:
数据字符
C
O
D
E
空格
3
9
字符值
12
24
13
14
38
3
9
字符值的总和
113
除以43
113/43=2 …… 27
数值27对应的字符
R
带有符号校验字符的数据字符
C
O
D
E
空格
3
9
R
A.1.2 数据校验字符
43模校验字符通过译码器输出后也可用来作为数据校验字符。
在计算校验字符时,可以选用ISO 7064标准描述的算法,也可以选用应用规范规定的算法。这时,在符号制作和信息处理软件中需要增加一定的计算和检测。这样的数据校验字符应该是数据串的最后一个字符并应被译码器输出。
A.2 供人识读的字符
供人识读的字符(及可能使用的校验字符)通常应该同与其对应的三九条码一起印制,表示起始符和终止符的 * 也可印制。字符的大小和字体没有规定,但不应占用空白区,该字符可以印在条码符号周围。
A.3 可选择的数据传输模式
为了满足特定应用的需要,译码器可以通过编程来识读非标准形式的三九条码符号。这里有以下三个
:全ASCII码(见A.3.1),信息追加(见A.3.2)和控制函数(见A.3.3)。由于使用这些特性需要特殊的译码程序,所以在一般的应用中不宜使用,以免它们和标准的三九条码符号相互混淆。
A.3.1 全ASCII码
使用两个字符可以将与ISO 646一致的128个ASCII码全部字符集进行编码,这两个字符由( $ + % / )4个字符中的一个和26个英文字母中的一个构成,这些组合见表A.2。当译码器设置为全ASCII码模式时,译码器只输出符号字符组合后的ASCII码等效的字符,而不是输出ASCII码的字面翻译文字。
A.3.2 信息追加
有时将长的信息分割为多个短的符号可以带来一定的方便。如果三九条码符号的第一个字符为空格,经过编程的译码器会将该空格后的信息添加到一个存储缓冲区中(不输出数据)。对于所有由空格开始的三九条码符号都采用这一操作,一个信息被添加到前一个信息的尾部。当读到的信息头一个字符不是空格,数据被追加到缓冲区,再将缓冲区中的整个信息输出,然后清空缓冲区。此时,数据的顺序非常重要,应该采取
确保以正确的次序读取符号。
A.3.3 控制函数
有一种附加的系统专用模式,这一模式可以用于封闭系统,不能用于开放系统。通过将( $ % + - ./ )(ASCII值为36、37、43、45、46、47)集合的两个符号字符进行组合,就能为系统编制36个控制函数。译码器将对这些符号进行特殊处理,并执行这些定义过的函数。不应输出这些字符组合的文字翻译,不应采用符号标识符(见附录C)。
表A.2 三九条码中ASCII码字符全集的编码
ASCII码
代码
ASCII码
代码
ASCII码
代码
ASCII码
代码
NUL
%U
SP
SPACE
@
%V
'
%W
SOH
$A
!
/A
A
A
a
+A
STX
$B
"
/B
B
B
b
+B
ETX
$C
#
/C
C
C
c
+C
EOT
$D
$
/D
D
D
d
+D
ENQ
$E
%
/E
E
E
e
+E
ACK
$F
&
/F
F
F
f
+F
BEL
$G
'
/G
G
G
g
+G
BS
$H
(
/H
H
H
h
+H
HT
$I
)
/I
I
I
i
+I
LF
$J
*
/J
J
J
j
+J
VT
$K
+
/K
K
K
k
+K
FF
$L
,
/L
L
L
l
+L
CR
$M
-
-
M
M
m
+M
SO
$N
.
.
N
N
n
+N
SI
$O
/
/O
O
O
o
+O
DLE
$P
0
0
P
P
p
+P
DC1
$Q
1
1
Q
Q
q
+Q
DC2
$R
2
2
R
R
r
+R
DC3
$S
3
3
S
S
s
+S
DC4
$T
4
4
T
T
t
+T
NAK
$U
5
5
U
U
u
+U
SYN
$V
6
6
V
V
v
+V
ETB
$W
7
7
W
W
w
+W
CAN
$X
8
8
X
X
x
+X
EM
$Y
9
9
Y
Y
y
+Y
SUB
$Z
:
/Z
Z
Z
z
+Z
ESC
%A
;
%F
[
%K
{
%P
FS
%B
<
%G
\
%L
|
%Q
GS
%C
=
%H
]
%M
}
%R
RS
%D
>
%I
^
%N
~
%S
US
%E
?
%J
_
%O
DEL
%T或%X或%Y或%Z
附 录 B
(资料性附录)
三九条码的使用指南
B.1. 自动识别的相容性
三九条码可以被所设计的能将它从其他符号中自动识别出来的正常的条码译码器识读。
当三九条码和交插二五条码同处于一个自动识别环境时,应遵循以下指导原则:
a) 标称的条码字符的间隔取值为X。
b) 识读系统应该受到限定,译码器应该通过程序确保所有三九条码符号的字符(包括起始符和终止符)的数目多于在交插二五条码数据字符数目的一半。
c) 在和三九条码处于同一识别环境中,交插二五条码的字符数目最少为6个。
为了尽可能增强识读的可靠性,在一个指定的应用中,应该将译码器的有效识读符号集合限定在该应用中需要的符号。
B.2 系统的考虑
在条码识读系统中,各个部分(印制设备、符号、扫描器)应该互相配合,这一点非常重要。其中任何部分出了问题,或彼此之间不匹配,就会使整个系统受到损害。
如果某一用户或一个封闭系统的合作协议指定了扫描器和条码的印制设备,一些X尺寸、条码字符间隔的宽度以及光谱带宽就可以从标准值中导出。但是,印制设备、符号和扫描器的性能应该相互匹配,以达到预计的工作性能。
附 录 C
(资料性附录)
符号标识符
符号标识符可以通过编好程序的条码译码器作为数据前缀符加到译码数据上。ISO/IEC 15424为三九条码分配的符号标识符为:
]Am
其中:
— ]
代表第93号ASCII码字符;
— A
是三九条码的代码字符;
— m是一个修饰字符,下面的表C.1 给出了它的值,其值代表一些应用和操作方面的选项。
m的有效值为:0,1,3,4,5,7
表C.1 三九条码的m值及选项
m值
选项
0
没有校验字符,也没有ASCII码全集处理,所有数据按译码原样输出。
1
43模符号校验字符有效并输出
3
43模符号校验字符有效但不输出
4
进行ASCII码全集转换,没有校验字符
5
进行ASCII码全集转换,43模符号校验字符有效并输出
7
进行ASCII码全集转换,43模符号校验字符有效但不输出
不应该用条码字符对该符号标识符进行编码,但应该由译码器产生,译码器译码完成后,将此信息作为一个数据信息的前缀。
附 录 D
(资料性附录)
应用决定参数的实例
D.1 质量等级
应用规范应根据ISO/IEC 15416标准,给出一个带有测量孔径和测量光波长的最低质量等级,其形式如下例所示:
1.5/10/660
这里,1.5是整体符号级别
10是测量孔径参考号码(10表示孔径直径为0.25 mm)
660是峰值响应波长,单位是 nm。
根据ISO/IEC 15416,可以确定与整体等级相关的所测量的符号参数的最小值。
D.2 符号特征
可编码的字符集:除一些特殊的字符外的所有数字字母字符集(注意:这里面不含全ASCII码和控制函数选择);
数据字符的数目:可变,最长为16个字符;
符号校验字符:应该使用并输出43模的符号校验字符;
数据校验字符:无。
D.3 尺寸特征
考虑到一般应用的需要及符号制作和识读设备现有的条件,作为对用户的指导,应用规范可以对X尺寸推荐一个值或一个参考范围。在此类规范中,仅X尺寸超出范围不应成为拒绝符号的理由。
对于人工扫描,条码符号高度尺寸的最小值应为5.0mm和条码长度的15%中的较大值。
注:一些应用规范在评定符号时规定了尺寸方面的阈值,并需要指定最大和最小的X尺寸。对于任一给定的条码符号,允差或偏离标称值的单元宽度最大偏差(单位是mm)应该恒定,令该允差为t,其值通过下式确定:
t=±(4/27)(N–(2/3))X
式中:N 宽窄比
X 窄单元的宽度,单位是mm。
一个条码符号中各单元的宽度的总和与标称尺寸的偏差不能超过2t。
国家质量监督检验检疫总局 发布
××××-××-××实施
××××-××-××发布
信息技术—自动识别和数据采集技术—
条码符号规范—三九条码
Information technology—Automatic identification and data capture technique— Bar code symbology specifications—Code 39
(ISO /IEC 16388 : 1999 , MOD )
(报批稿)
GB/T 12908—2002
代替GB/T 12908—1991
中华人民共和国国家标准
ICS 35.040
A 24
�
I