Tiêu chuẩn TCVN 6755:2008 Yêu cầu kỹ thuật về mã vạch 128
- Thuộc tính
- Nội dung
- Tiêu chuẩn liên quan
- Lược đồ
- Tải về
Đây là tiện ích dành cho thành viên đăng ký phần mềm.
Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.
Tiêu chuẩn Việt Nam TCVN 6755:2008
Số hiệu: | TCVN 6755:2008 | Loại văn bản: | Tiêu chuẩn Việt Nam |
Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Lĩnh vực: | Khoa học-Công nghệ, Thông tin-Truyền thông |
Năm ban hành: | 2008 | Hiệu lực: | |
Người ký: | Tình trạng hiệu lực: | Đã biết Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây! | |
TIÊU CHUẨN QUỐC GIA
TCVN 6755:2008
ISO/IEC 15417:2007
CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT VỀ MÃ VẠCH 128
Information technology – Automatic identification and data capture techniques – Code 128 bar code symbology specification
Lời nói đầu
TCVN 6755 : 2008 thay thế TCVN 6755 : 2000.
TCVN 6755 : 2008 hoàn toàn tương đương ISO/IEC 15417:2007.
TCVN 6755 : 2008 do Tiểu Ban kỹ thuật tiêu chuẩn quốc gia TCVN/JTC1/SC31 "Thu thập dữ liệu tự động" biên soạn, Tổng cục Tiêu chuẩn Đo lường Chất lượng đề nghị, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
Công nghệ mã vạch dựa trên sự thừa nhận các mẫu hình được mã hóa dưới dạng các vạch và khoảng trống với kích thước xác định. Có nhiều phương pháp mã hóa thông tin bằng mã vạch, được gọi là phương pháp mã vạch hóa. Mã vạch 128 là một mã vạch như vậy. Các quy tắc xác định việc thể hiện các ký tự bằng các vạch và khoảng trống và các đặc tính quan trọng khác của mỗi ký tự mã vạch được gọi là quy định kỹ thuật về mã vạch.
Trước đây, quy định kỹ thuật về mã vạch được một số tổ chức biên soạn và công bố, kết quả là có một số trường hợp về các yêu cầu trái ngược nhau đối với các ký tự mã vạch nào đó.
Nhà sản xuất thiết bị mã vạch và người sử dụng công nghệ mã vạch yêu cầu phải có các tiêu chuẩn quy định kỹ thuật về mã vạch để họ có thể tham khảo khi thiết kế thiết bị và phần mềm.
CÔNG NGHỆ THÔNG TIN – KỸ THUẬT PHÂN ĐỊNH VÀ THU NHẬN DỮ LIỆU TỰ ĐỘNG – YÊU CẦU KỸ THUẬT VỀ MÃ VẠCH 128
Information technology – Automatic identification and data capture techniques – Code 128 bar code symbology specification
1. Phạm vi áp dụng
Tiêu chuẩn này quy định các yêu cầu đối với mã vạch 128, các đặc tính của mã vạch 128, việc mã hóa các ký tự dữ liệu, các kích thước, thuật toán giải mã và các thông số do ứng dụng quy định. Tiêu chuẩn này quy định chuỗi tiếp đầu tố phân định ứng dụng dùng cho mã vạch 128.
2. Tài liệu viện dẫn
Các tài liệu viện dẫn sau là cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi.
TCVN 7626 (ISO/IEC 15416) Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Yêu cầu kỹ thuật đối với kiểm tra chất lượng in mã vạch – Mã vạch một chiều
ISO/IEC 646-1991 Information technology – ISO 7-bit coded character set for information interchange (Công nghệ thông tin – Bộ ký tự mã hóa ISO 7-bit dành cho trao đổi thông tin)
ISO/IEC 8859-1 Information technology – 8-bit single-byte coded graphic character sets – Part 1: Latin alphabet No.1 (Công nghệ thông tin – Bộ ký tự đồ họa mã hóa đơn byte 8-bit – Phần 1: Chữ cái Latin No.1)
ISO/IEC 15424 Information technology – Automatic identification and data capture techniques - Data carrier identifiers (Công nghệ thông tin- Kỹ thuật phân định và nhập dữ liệu tự động - Các số phân định vật mang dữ liệu (gồm cả các mã nhận dạng mã vạch))
ISO/IEC 19762-1 Information technology – Automatic identification and data capture (AIDC) techniques – Harmonized vocabulary – Part 1: General terms relating to AIDC (Công nghệ thông tin- Kỹ thuật phân định và thu nhận dữ liệu tự động (AIDC) – Thuật ngữ hài hòa – Phần 1: Các thuật ngữ chung liên quan đến AIDC)
ISO/IEC 19762-2 Information technology – Automatic identification and data capture (AIDC) techniques – Harmonized vocabulary – Part 2: Optically readable media (ORM) (Công nghệ thông tin- Kỹ thuật phân định và thu nhận dữ liệu tự động (AIDC) – Thuật ngữ hài hòa – Phần 2: Phương tiện đọc quang học).
3. Thuật ngữ và định nghĩa
Trong tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong ISO/IEC 19762-1 và ISO/IEC 19762-2.
4. Yêu cầu kỹ thuật
4.1. Các đặc trưng của mã vạch
Mã vạch 128 có các đặc trưng sau:
a) Bộ ký tự có khả năng mã hóa:
1) Tất cả 128 ký tự của ISO/IEC 646 tức là các ký tự từ 0 đến 128 theo ISO/IEC 646.
CHÚ THÍCH: Phiên bản này gồm bộ G0 của ISO/IEC 646 và bộ C0 của ISO/IEC 6429 có giá trị 28-31 sửa đổi tương ứng FS,GS, RS và US.
2) Các ký tự có giá trị byte từ 128 đến 255 cũng có thể được mã hóa.
3) 4 ký tự chức năng không dữ liệu.
4) 4 ký tự lựa chọn bộ mã.
5) 3 ký tự Bắt đầu.
6) 1 ký tự Kết thúc.
b) Loại mã vạch: liên tục.
c) Số yếu tố trong mỗi ký tự mã vạch: 6, bao gồm 3 vạch tối và 3 vạch sáng, mỗi vạch tối hoặc vạch sáng có chiều rộng 1, 2, 3 hoặc 4 mô đun (Ký tự Kết thúc: 7 yếu tố gồm 4 vạch tối và 3 vạch sáng).
d) Ký tự tự kiểm tra: có.
e) Chiều dài mã vạch: thay đổi.
f) Khả năng giải mã hai hướng: có.
g) Ký tự kiểm tra mã vạch: một, bắt buộc (xem A.1).
h) Mật độ ký tự của mã vạch: 11 mô đun cho một ký tự mã vạch (5,5 mô đun cho một ký tự số).
i) Vùng không chứa dữ liệu: tương đương 35 mô đun.
4.2. Cấu trúc mã vạch
Mã vạch 128 gồm:
a) Vùng trống phía trước.
b) Một ký tự Bắt đầu.
c) Một hoặc nhiều ký tự thể hiện dữ liệu và các ký tự đặc biệt.
d) Một ký tự kiểm tra mã vạch.
e) Một ký tự Kết thúc.
f) Vùng trống phía sau.
Hình 1 minh họa mã vạch 128 mã hóa chữ “AIM”
Hình 1 – Mã vạch 128
4.3. Mã hóa ký tự
4.3.1. Cấu trúc ký tự mã vạch
Mỗi ký tự mã vạch bao gồm sáu yếu tố (3 vạch tối và 3 vạch sáng, bố trí xen kẽ nhau từ trái qua phải, bắt đầu bằng một vạch tối), mỗi vạch tối hoặc vạch sáng rộng 1, 2, 3 hoặc 4 mô đun, chiều rộng tổng là 11 mô đun. Tổng số các mô đun vạch tối của bất kỳ một ký tự mã vạch nào luôn luôn là chẵn và do vậy tổng số các mô đun vạch sáng luôn luôn là lẻ. Tính chẵn lẻ này tạo điều kiện cho việc tiến hành tự kiểm tra ký tự. Ký tự kết thúc có thêm một yếu tố vạch tối rộng 2 mô đun bổ sung thêm vào tạo nên chiều rộng tổng của nó là 13 mô đun.
Mỗi ký tự mã vạch được cấp cho một giá trị kê trong Bảng 1. Giá trị này được dùng để tính giá trị ký tự kiểm tra mã vạch. Nó cũng có thể được dùng để chuyển đổi sang các giá trị ISO/IEC 646 hoặc ngược lại (xem Phụ lục D). Bảng 1 quy định các ký tự của mã vạch 128. Trong cột “chiều rộng của yếu tố” giá trị bằng số thể hiện chiều rộng của yếu tố tính bằng mô đun hoặc bội của kích thước X.
Hình 2 dưới đây minh họa ký tự Bắt đầu A
Hình 2 – Ký tự Bắt đầu A của mã vạch 128
Hình 3 minh họa việc mã hóa của ký tự giá trị 35, thể hiện ký tự dữ liệu “C” trong Bộ mã A hoặc B hoặc 2 chữ số “35” trong Bộ mã C.
Hình 3 – Ký tự mã vạch giá trị 35 của mã vạch 128
Hình 4 dưới đây minh họa ký tự kết thúc
Hình 4 – Ký tự kết thúc mã vạch 128
4.3.2. Mã hóa ký tự dữ liệu
Mã vạch 128 có 3 bộ mã ký tự dữ liệu riêng rẽ cho trong Bảng 1, gọi là Bộ mã A, Bộ mã B và Bộ mã C, mỗi bộ là một bộ con của bộ ký tự ISO/IEC 646 IRV cùng với các ký tự bổ trợ khác nhau. Các vạch tối và vạch sáng của ký tự mã vạch thể hiện các ký tự dữ liệu trong các cột cho các Bộ mã A, B hoặc C. Việc lựa chọn bộ mã phụ thuộc vào ký tự Bắt đầu hoặc, trong phạm vi một mã vạch, vào việc sử dụng các ký tự mã A, mã B hoặc mã C hoặc ký tự Shift. Nếu mã vạch bắt đầu bằng ký tự Bắt đầu A, thì sau đó là Bộ mã A sẽ bắt đầu. Bộ mã B và Bộ mã C cũng được bắt đầu một cách tương tự bằng cách mở đầu cho mã vạch với các ký tự Bắt đầu B hoặc C tương ứng. Bộ mã có thể được xác định lại trong mã vạch này bằng cách sử dụng các ký tự mã A, mã B và mã C hoặc ký tự Shift (xem 4.3.4.1 về sử dụng các ký tự đặc biệt này).
Cùng một dữ liệu cũng có thể được thể hiện bằng những mã vạch 128 khác nhau thông qua việc sử dụng các tổ hợp khác nhau của các ký tự Bắt đầu, Bộ mã và Shift. Tiêu chuẩn ứng dụng không quy định bộ mã sử dụng. Phụ lục E cho các quy tắc để giảm thiểu chiều dài mã vạch cho trường hợp một dữ liệu cho trước bất kỳ. Bộ giải mã sẽ giải mã bổ sung thêm các mã vạch mà mã vạch này sử dụng các tổ hợp có ý nghĩa của các ký tự Bắt đầu, Bộ mã và Shift và dữ liệu chứ không phải được suy ra từ ứng dụng thuật toán trong Phụ lục E, chẳng hạn như một mã vạch có ký tự bộ mã hoặc Shift tại cuối của dữ liệu.
Bảng 1 – Mã hóa ký tự của mã vạch 128
Giá trị ký tự mã vạch |
Bộ mã A |
Giá trị ASCII cho Bộ mã A |
Bộ mã B |
Giá trị ISO/IEC 646 cho Bộ mã B |
Bộ mã C |
Chiều rộng yếu tố |
Kiểu mã hóa của yếu tố |
|||||||||||||||
|
|
|
|
|
|
B |
S |
B |
S |
B |
S |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
0 |
Khoảng trống |
32 |
Khoảng trống |
32 |
00 |
2 |
1 |
2 |
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
1 |
! |
33 |
! |
33 |
01 |
2 |
2 |
2 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
2 |
" |
34 |
" |
34 |
02 |
2 |
2 |
2 |
2 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
3 |
# |
35 |
# |
35 |
03 |
1 |
2 |
1 |
2 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
4 |
$ |
36 |
$ |
36 |
04 |
1 |
2 |
1 |
3 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
5 |
% |
37 |
% |
37 |
05 |
1 |
3 |
1 |
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
6 |
& |
38 |
& |
38 |
06 |
1 |
2 |
2 |
2 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
7 |
dấu móc lửng |
39 |
dấu móc lửng |
39 |
07 |
1 |
2 |
2 |
3 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
8 |
( |
40 |
( |
40 |
08 |
1 |
3 |
2 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
9 |
) |
41 |
) |
41 |
09 |
2 |
2 |
1 |
2 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
10 |
* |
42 |
* |
42 |
10 |
2 |
2 |
1 |
3 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
11 |
+ |
43 |
+ |
43 |
11 |
2 |
3 |
1 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
12 |
dấu phẩy |
44 |
dấu phẩy |
44 |
12 |
1 |
1 |
2 |
2 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
13 |
- |
45 |
- |
45 |
13 |
1 |
2 |
2 |
1 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
14 |
dấu chấm hết |
46 |
dấu chấm hết |
46 |
14 |
1 |
2 |
2 |
2 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
15 |
/ |
47 |
/ |
47 |
15 |
1 |
1 |
3 |
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
16 |
0 |
48 |
0 |
48 |
16 |
1 |
2 |
3 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
17 |
1 |
49 |
1 |
49 |
17 |
1 |
2 |
3 |
2 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
18 |
2 |
50 |
2 |
50 |
18 |
2 |
2 |
3 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
19 |
3 |
51 |
3 |
51 |
19 |
2 |
2 |
1 |
1 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
20 |
4 |
52 |
4 |
52 |
20 |
2 |
2 |
1 |
2 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
21 |
5 |
53 |
5 |
53 |
21 |
2 |
1 |
3 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
22 |
6 |
54 |
6 |
54 |
22 |
2 |
2 |
3 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
23 |
7 |
55 |
7 |
55 |
23 |
3 |
1 |
2 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
24 |
8 |
56 |
8 |
56 |
24 |
3 |
1 |
1 |
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
25 |
9 |
57 |
9 |
57 |
25 |
3 |
2 |
1 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
26 |
dấu hai chấm |
58 |
dấu hai chấm |
58 |
26 |
3 |
2 |
1 |
2 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
27 |
dấu nửa hai chấm |
59 |
dấu nửa hai |
59 |
27 |
3 |
1 |
2 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
28 |
< |
60 |
< |
60 |
28 |
3 |
2 |
2 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
29 |
= |
61 |
= |
61 |
29 |
3 |
2 |
2 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
30 |
> |
62 |
> |
62 |
30 |
2 |
1 |
2 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
31 |
? |
63 |
? |
63 |
31 |
2 |
1 |
2 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
Giá trị ký tự mã vạch |
Bộ mã A |
Giá trị ASCII cho Bộ mã A |
Bộ mã B |
Giá trị ISO/IEC 646 cho Bộ mã B |
Bộ mã C |
Chiều rộng yếu tố |
Kiểu mã hóa của yếu tố |
|||||||||||||||
|
|
|
|
|
|
B |
S |
B |
S |
B |
S |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
32 |
@ |
64 |
@ |
64 |
32 |
2 |
3 |
2 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
33 |
A |
65 |
A |
65 |
33 |
1 |
1 |
1 |
3 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
34 |
B |
66 |
B |
66 |
34 |
1 |
3 |
1 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
35 |
C |
67 |
C |
67 |
35 |
1 |
3 |
1 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
36 |
D |
68 |
D |
68 |
36 |
1 |
1 |
2 |
3 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
37 |
E |
69 |
E |
69 |
37 |
1 |
3 |
2 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
38 |
F |
70 |
F |
70 |
38 |
1 |
3 |
2 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
39 |
G |
71 |
G |
71 |
39 |
2 |
1 |
1 |
3 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
40 |
H |
72 |
H |
72 |
40 |
2 |
3 |
1 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
41 |
I |
73 |
I |
73 |
41 |
2 |
3 |
1 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
43 |
J |
74 |
J |
74 |
42 |
1 |
1 |
2 |
1 |
3 |
3 |
|
|
|
|
|
|
|
|
|
|
|
43 |
K |
75 |
K |
75 |
43 |
1 |
1 |
2 |
3 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
44 |
L |
76 |
L |
76 |
44 |
1 |
3 |
2 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
45 |
M |
77 |
M |
77 |
45 |
1 |
1 |
3 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
46 |
N |
78 |
N |
78 |
46 |
1 |
1 |
3 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
47 |
O |
79 |
O |
79 |
47 |
1 |
3 |
3 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
48 |
P |
80 |
P |
80 |
48 |
3 |
1 |
3 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
49 |
Q |
81 |
Q |
81 |
49 |
2 |
1 |
1 |
3 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
50 |
R |
82 |
R |
82 |
50 |
2 |
3 |
1 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
51 |
S |
83 |
S |
83 |
51 |
2 |
1 |
3 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
52 |
T |
84 |
T |
84 |
52 |
2 |
1 |
3 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
53 |
U |
85 |
U |
85 |
53 |
2 |
1 |
3 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
54 |
V |
86 |
V |
86 |
54 |
3 |
1 |
1 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
55 |
W |
87 |
W |
87 |
55 |
3 |
1 |
1 |
3 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
56 |
X |
88 |
X |
88 |
56 |
3 |
3 |
1 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
57 |
Y |
89 |
Y |
89 |
57 |
3 |
1 |
2 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
58 |
Z |
90 |
Z |
90 |
58 |
3 |
1 |
2 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
59 |
[ |
91 |
[ |
91 |
59 |
3 |
3 |
2 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
60 |
\ |
92 |
\ |
92 |
60 |
3 |
1 |
4 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
61 |
] |
93 |
] |
93 |
61 |
2 |
2 |
1 |
4 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
62 |
^ |
94 |
^ |
94 |
62 |
4 |
3 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
63 |
_ |
95 |
_ |
95 |
63 |
1 |
1 |
1 |
2 |
2 |
4 |
|
|
|
|
|
|
|
|
|
|
|
64 |
NUL |
00 |
` |
96 |
64 |
1 |
1 |
1 |
4 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
65 |
SOH |
01 |
a |
97 |
65 |
1 |
2 |
1 |
1 |
2 |
4 |
|
|
|
|
|
|
|
|
|
|
|
66 |
STX |
02 |
b |
98 |
66 |
1 |
2 |
1 |
4 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
67 |
ETX |
03 |
c |
99 |
67 |
1 |
4 |
1 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
68 |
EOT |
04 |
d |
100 |
68 |
1 |
4 |
1 |
2 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
69 |
ENQ |
05 |
e |
101 |
69 |
1 |
1 |
2 |
2 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
70 |
ACK |
06 |
f |
102 |
70 |
1 |
1 |
2 |
4 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
71 |
BEL |
07 |
g |
103 |
71 |
1 |
2 |
2 |
1 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
71 |
BEL |
07 |
g |
103 |
71 |
1 |
2 |
2 |
1 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
72 |
BS |
08 |
h |
104 |
72 |
1 |
2 |
2 |
4 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
73 |
HT |
09 |
i |
105 |
73 |
1 |
4 |
2 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
74 |
LF |
10 |
j |
106 |
74 |
1 |
4 |
2 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
75 |
VT |
11 |
k |
107 |
75 |
2 |
4 |
1 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
76 |
FF |
12 |
l |
108 |
76 |
2 |
2 |
1 |
1 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
Giá trị ký tự mã vạch |
Bộ mã A |
Giá trị ASCII cho Bộ mã A |
Bộ mã B |
Giá trị ISO/IEC 646 cho Bộ mã B |
Bộ mã C |
Chiều rộng yếu tố |
Kiểu mã hóa của yếu tố |
|||||||||||||||
|
|
|
|
|
|
B |
S |
B |
S |
B |
S |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
77 |
CR |
13 |
m |
109 |
77 |
4 |
1 |
3 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
78 |
SO |
14 |
n |
110 |
78 |
2 |
4 |
1 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
79 |
SI |
15 |
o |
111 |
79 |
1 |
3 |
4 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
80 |
DLE |
16 |
p |
112 |
80 |
1 |
1 |
1 |
2 |
4 |
2 |
|
|
|
|
|
|
|
|
|
|
|
81 |
DC1 |
17 |
q |
113 |
81 |
1 |
2 |
1 |
1 |
4 |
2 |
|
|
|
|
|
|
|
|
|
|
|
82 |
DC2 |
18 |
r |
114 |
82 |
1 |
2 |
1 |
2 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
83 |
DC3 |
19 |
s |
115 |
83 |
1 |
1 |
4 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
84 |
DC4 |
20 |
t |
116 |
84 |
1 |
2 |
4 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
85 |
NAK |
21 |
u |
117 |
85 |
1 |
2 |
4 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
86 |
SYN |
22 |
v |
118 |
86 |
4 |
1 |
1 |
2 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
87 |
ETB |
23 |
w |
119 |
87 |
4 |
2 |
1 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
88 |
CAN |
24 |
x |
120 |
88 |
4 |
2 |
1 |
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
89 |
EM |
25 |
y |
121 |
89 |
2 |
1 |
2 |
1 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
90 |
SUB |
26 |
z |
122 |
90 |
2 |
1 |
4 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
91 |
ESC |
27 |
{ |
123 |
91 |
4 |
1 |
2 |
1 |
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
92 |
FS |
28 |
| |
124 |
92 |
1 |
1 |
1 |
1 |
4 |
3 |
|
|
|
|
|
|
|
|
|
|
|
93 |
GS |
29 |
} |
125 |
93 |
1 |
1 |
1 |
3 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
94 |
RS |
30 |
~ |
126 |
94 |
1 |
3 |
1 |
1 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
95 |
US |
31 |
DEL |
127 |
95 |
1 |
1 |
4 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
96 |
FNC3 |
|
FNC3 |
|
96 |
1 |
1 |
4 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
97 |
FNC2 |
|
FNC2 |
|
97 |
4 |
1 |
1 |
1 |
1 |
3 |
|
|
|
|
|
|
|
|
|
|
|
98 |
SHIFT |
|
SHIFT |
|
98 |
4 |
1 |
1 |
3 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
99 |
MÃ C |
|
MÃ C |
|
99 |
1 |
1 |
3 |
1 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
100 |
MÃ B |
|
FNC4 |
|
MÃ B |
1 |
1 |
4 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
101 |
FNC4 |
|
MÃ A |
|
MÃ A |
3 |
1 |
1 |
1 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
102 |
FNC1 |
|
FNC1 |
|
FNC1 |
4 |
1 |
1 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
103 |
Bắt đầu A |
2 |
1 |
1 |
4 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
||||
104 |
Bắt đầu B |
2 |
1 |
1 |
2 |
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
||||
105 |
Bắt đầu C |
2 |
1 |
1 |
2 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
Giá trị ký tự mã vạch |
Bộ mã A |
Bộ mã B |
Bộ mã C |
Chiều rộng yếu tố (mô đun) |
Kiểu mã hóa của yếu tố |
||||||||||||||||||
|
|
B |
S |
B |
S |
B |
S |
B |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
||
|
Kết thúc |
2 |
3 |
3 |
1 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
CHÚ THÍCH Ký tự kết thúc gồm 13 mô đun trong 4 vạch tối và 4 vạch sáng. Mỗi ký tự còn lại đều rộng 11 mô đun, bắt đầu bằng một vạch tối và kết thúc bằng một vạch sáng, và có 6 yếu tố, mỗi yếu tố có chiều rộng khác nhau từ 1 đến 4 mô đun. Giá trị bằng số trong cột B và S thể hiện số mô đun tương trong mỗi vạch tối hoặc v ạch sáng trong các ký tự mã vạch.
4.3.3. Các bộ mã
4.3.3.1. Bộ mã A
Bộ mã A gồm tất các các chữ số và chữ cái in hoa tiêu chuẩn, các ký tự chức năng và các ký tự điều khiển, tức là các ký tự có giá trị từ 00 đến 95 như quy định trong ISO/IEC 646 và 7 ký tự đặc biệt.
4.3.3.2. Bộ mã B
Bộ mã B gồm tất cả các chữ số và chữ cái in hoa tiêu chuẩn, các ký tự chức năng và các ký tự chữ cái thường, tức là các ký tự có giá trị từ 32 đến 127 như quy định trong ISO/IEC 646 và 7 ký tự đặc biệt.
4.3.3.3. Bộ mã C
Bộ mã C gồm một bộ 100 cặp chữ số từ 00 đến 99 và 3 ký tự đặc biệt. Điều này cho phép mã hóa dữ liệu số thành từng cặp 2 chữ số trong một ký tự mã vạch.
4.3.4. Các ký tự đặc biệt
Bảy ký tự cuối cùng trong Bộ mã A và B và 3 ký tự cuối cùng của Bộ mã C (ký tự có giá trị 100 – 102) là các ký tự đặc biệt không mang dữ liệu, không có ký tự ISO/IEC 646 tương đương, nó có ý nghĩa riêng đối với các thiết bị đọc mã vạch.
4.3.4.1. Các ký tự bộ mã và Shift
Các ký tự Bộ mã (mã A, mã B, mã C) và Shift được sử dụng để chuyển đổi từ một bộ mã này sang bộ mã khác trong một mã vạch. Chúng không được bộ giải mã chuyển đi.
a) Các ký tự bộ mã – Các ký tự mã A, B hoặc C chuyển đổi bộ mã mã vạch từ bộ xác định trước tới bộ mới được xác định bởi ký tự mã tương ứng. Thay đổi này áp dụng cho tất cả các ký tự tiếp sau ký tự mã (A, B hoặc C) cho tới khi kết thúc mã vạch hoặc gặp một ký tự mã khác hoặc ký tự Shift.
b) Ký tự Shift – Ký tự Shift chuyển đổi bộ mã từ A sang B hoặc từ B sang A chỉ áp dụng với một ký tự sau ký tự Shift. Các ký tự đằng sau ký tự chịu tác động sẽ quay lại với bộ mã A hoặc bộ mã B đã được xác định trước ký tự Shift. Ký tự mã vạch được shift (tức là ký tự đứng ngay sau ký tự Shift) không thể là ký tự mã hoặc Shift.
4.3.4.2. Các ký tự chức năng
Các ký tự chức năng (FNC) xác định việc chỉ thị cho thiết bị đọc mã vạch cho phép những hành động và ứng dụng đặc biệt.
a) FNC1 là đối tượng xem xét đặc biệt quy định trong Phụ lục B.
b) FNC2 (nối thông điệp) chỉ dẫn máy đọc mã vạch lưu giữ tạm thời dữ liệu từ mã vạch có chứa ký tự FNC2 và chuyển chúng đi như là một tiếp đầu tố của dữ liệu của mã vạch tiếp sau. Nó có thể sử dụng để kết nối một số mã vạch trước khi chuyển đi. Ký tự này có thể xuất hiện bất cứ đâu trong mã vạch. Ở những chỗ chuỗi dữ liệu quan trọng, cần phải thực hiện việc này để đảm bảo đọc mã vạch đúng thứ tự.
c) FNC3 (khởi tạo) chỉ dẫn máy đọc mã vạch dịch dữ liệu từ mã vạch chứa ký tự FNC3 thành chỉ dẫn để khởi tạo hoặc tái lập trình máy đọc mã vạch. Dữ liệu từ mã vạch không được máy đọc mã vạch chuyển đi. Ký tự này có thể xuất hiện bất cứ đâu trong mã vạch.
d) FNC4 được dùng để thể hiện bộ ký tự mở rộng (giá trị byte 128 đến 255) như quy định trong ISO/IEC 8859-1 hoặc trong quy định kỹ thuật ứng dụng. Nếu chỉ sử dụng riêng FNC4 thì giá trị 128 được cộng thêm vào giá trị ISO/IEC 646 của ký tự dữ liệu tiếp theo trong mã vạch. Ký tự Shift có thể theo sau ký tự FNC4 nếu cần chuyển bộ mã cho ký tự tiếp sau. Các ký tự dữ liệu phía sau quay trở lại bộ mã tiêu chuẩn ISO/IEC 646. Nếu hai ký tự FNC4 được dùng liên tiếp thì giá trị 128 được thêm vào giá trị ISO/IEC 646 của tất cả các ký tự tiếp theo cho tới khi hai ký tự FNC4 xuất hiện hoặc kết thúc mã vạch. Nếu trong chuỗi mã hóa mở rộng này một ký tự FNC4 đơn lẻ được sử dụng, được dùng để đổi duy nhất một ký tự dữ liệu tiếp theo thành mã hóa ISO/IEC 646 tiêu chuẩn. Các ký tự Shift và mã có hiệu quả tiêu chuẩn thông thường trong chuỗi này. Bộ ký tự tham chiếu sửa mã cho giá trị mở rộng 128-255 một nửa tương ứng của ISO/IEC 8859-1, Chữ cái la tinh 1, cho trong Phụ lục F, nhưng quy định kỹ thuật ứng dụng có thể quy định hoặc tham chiếu các bộ khác thay thế tương ứng với giá trị byte 128 đến 255.
4.3.4.3. Ký tự Bắt đầu và kết thúc
Các ký tự Bắt đầu A, B và C xác định bộ mã tương ứng được sử dụng bắt đầu trong một mã vạch. Ký tự kết thúc thông thường dùng cho tất cả các bộ mã.
Các ký tự Bắt đầu và kết thúc không được bộ giải mã truyền đi.
4.3.5. Ký tự kiểm tra mã vạch
Ký tự kiểm tra mã vạch là ký tự mã vạch cuối cùng trước ký tự kết thúc. Thuật toán để tính ký tự kiểm tra mã vạch cho trong A.1. Không thể hiện ký tự kiểm tra mã vạch trong diễn dịch người đọc, và chúng cũng không được bộ giải mã truyền đi.
4.4. Các kích thước
4.4.1. Chiều rộng danh định mô đun (X)
Chiều rộng của một mô đun phải được quy định trong quy định kỹ thuật ứng dụng, trong mối liên hệ với thiết bị sản xuất và đọc mã vạch và đồng bộ với các yêu cầu chung của ứng dụng. Xem 4.7.1
Kích thước X phải là hằng số trong toàn bộ một mã vạch.
4.4.2. Vùng trống
Chiều rộng tối thiểu của vùng trống (bên phải và bên trái mã vạch 128): 10 X.
4.4.3. Chiều rộng mã vạch
Chiều rộng W (tính bằng milimét) của một mã vạch 128, gồm cả vùng trống, có thể tính theo công thức sau:
W = [ 11(C + 2 ) + 2] X + 2Q
trong đó:
W là chiều rộng mã vạch;
C là số ký tự mã vạch (gồm cả ký tự kiểm tra mã vạch);
X là chiều rộng của yếu tố hẹp tính bằng milimét;
Q là chiều rộng của vùng trống tính bằng milimét.
CHÚ THÍCH: Cần áp dụng quy tắc trong Phụ lục E, hoặc thuật toán khác, để xác định số ký tự mã vạch trước khi tính công thức này.
4.5. Thuật toán giải mã tham chiếu
Hệ thống đọc mã vạch được thiết kế để đọc các mã vạch không hoàn hảo đến một mức độ mà thuật toán giải mã thực tế cho phép. Phần này mô tả thuật toán giải mã tham chiếu để tính giá trị độ giải mã nêu trong TCVN 7626 (ISO/IEC 15416).
Thuật toán này có các bước sau đây để giải mã từng ký tự mã vạch.
1. Tính số đo 8 chiều rộng p, e1, e2, e3, e4, b1, b2, và b3 (Hình 5)
Hình 5 – Các số đo độ giải mã
2. Chuyển đổi các số đo e1, e2, e3 và e4 thành các giá trị chuẩn hóa E1, E2, E3 và E4 nó sẽ thể hiện chiều rộng mô đun tích hợp (Ei) của các số đo này. Phương pháp tính giá trị thứ i như sau:
Nếu 1,5p / 11 ≤ ei < 2,5p / 11, thì Ei = 2
Nếu 2,5p / 11 ≤ ei < 3,5p / 11, thì Ei = 3
Nếu 3,5p / 11 ≤ ei < 4,5p / 11, thì Ei = 4
Nếu 4,5p / 11 ≤ ei < 5,5p / 11, thì Ei = 5
Nếu 5,5p / 11 ≤ ei < 6,5p / 11, thì Ei = 6
Nếu 6,5p / 11 ≤ ei < 7,5p / 11, thì Ei = 7
Nếu khác thì ký tự bị lỗi.
3. Dùng 4 giá trị E1, E2, E3, và E4 làm chìa khóa để tìm ký tự trong bảng giải mã. (Xem Bảng 2.)
4. Phục hồi giá trị tự kiểm tra ký tự V được lưu giữ trong bảng với ký tự này. Giá trị V bằng tổng các mô đun vạch của ký tự đó.
5. Kiểm tra xem
(V – 1,75)p/11 < (b1 + b2 + b3) < (V + 1,75)p/11
Nếu khác thì ký tự bị lỗi.
Tính toán này gián tiếp sử dụng tính chẵn lẻ của ký tự để tìm ra tất cả các sai lỗi do sai lỗi lề không hệ thống của một mô đun riêng rẽ.
Sử dụng 5 bước trên đây giải mã ký tự đầu tiên. Nếu đó là ký tự Bắt đầu thì tiếp tục giải mã mã vạch theo hướng tiến bình thường. Nếu đó không phải là ký tự Bắt đầu mà là ký tự Kết thúc thì cố gắng giải mã tất cả các ký tự tiếp theo theo hướng ngược lại.
Sau khi giải mã tất cả các ký tự, xác nhận có ký tự Bắt đầu đúng, ký tự kết thúc đúng và ký tự kiểm tra mã vạch đúng.
Chuyển tất cả các ký tự mã vạch thành ra các ký tự dữ liệu thích hợp trong Bộ mã A, B, hoặc C dựa theo ký tự Bắt đầu, các ký tự mã, và các ký tự Shift dùng trong mã vạch.
Thêm nữa, thực hiện các kiểm tra bổ sung khác về các vùng trống, gia tốc chùm, thời gian tuyệt đối, các kích thước… cho cẩn trọng và xem xét thiết bị đọc riêng và môi trường dự kiến sử dụng.
CHÚ THÍCH: Trong thuật toán này mã vạch được giải mã dựa trên phép đo “lề đến lề tương ứng” (e) cộng số đo bổ sung của tổng 3 chiều rộng vạch.
Bảng 2 – Các hiệu số lề để giải mã mã vạch 128
Giá trị ký tự |
E1 |
E2 |
E3 |
E4 |
V |
Giá trị ký tự |
E1 |
E2 |
E3 |
E4 |
V |
00 |
3 |
3 |
4 |
4 |
6 |
54 |
4 |
2 |
2 |
3 |
6 |
01 |
4 |
4 |
3 |
3 |
6 |
55 |
4 |
2 |
4 |
5 |
6 |
02 |
4 |
4 |
4 |
4 |
6 |
56 |
6 |
4 |
2 |
3 |
6 |
03 |
3 |
3 |
3 |
4 |
4 |
57 |
4 |
3 |
3 |
2 |
6 |
04 |
3 |
3 |
4 |
5 |
4 |
58 |
4 |
3 |
5 |
4 |
6 |
05 |
4 |
4 |
3 |
4 |
4 |
59 |
6 |
5 |
3 |
2 |
6 |
06 |
2 |
4 |
4 |
3 |
4 |
60 |
4 |
5 |
5 |
2 |
8 |
07 |
3 |
4 |
5 |
4 |
4 |
61 |
4 |
3 |
5 |
5 |
4 |
08 |
4 |
5 |
4 |
3 |
4 |
62 |
7 |
4 |
2 |
2 |
6 |
09 |
4 |
3 |
3 |
3 |
4 |
63 |
2 |
2 |
3 |
4 |
4 |
10 |
4 |
3 |
4 |
4 |
4 |
64 |
2 |
2 |
5 |
6 |
4 |
11 |
5 |
4 |
3 |
3 |
4 |
65 |
3 |
3 |
2 |
3 |
4 |
12 |
2 |
3 |
4 |
5 |
6 |
66 |
3 |
3 |
5 |
6 |
4 |
13 |
3 |
4 |
3 |
4 |
6 |
67 |
5 |
5 |
2 |
3 |
4 |
14 |
3 |
4 |
4 |
5 |
6 |
68 |
5 |
5 |
3 |
4 |
4 |
15 |
2 |
4 |
5 |
4 |
6 |
69 |
2 |
3 |
4 |
3 |
4 |
16 |
3 |
5 |
4 |
3 |
6 |
70 |
2 |
3 |
6 |
5 |
4 |
17 |
3 |
5 |
5 |
4 |
6 |
71 |
3 |
4 |
3 |
2 |
4 |
18 |
4 |
5 |
5 |
3 |
6 |
72 |
3 |
4 |
6 |
5 |
4 |
19 |
4 |
3 |
2 |
4 |
6 |
73 |
5 |
6 |
3 |
2 |
4 |
Giá trị ký tự |
E1 |
E2 |
E3 |
E4 |
V |
Giá trị ký tự |
E1 |
E2 |
E3 |
E4 |
V |
20 |
4 |
3 |
3 |
5 |
6 |
74 |
5 |
6 |
4 |
3 |
4 |
21 |
3 |
4 |
5 |
3 |
6 |
75 |
6 |
5 |
3 |
3 |
4 |
22 |
4 |
5 |
4 |
2 |
6 |
76 |
4 |
3 |
2 |
2 |
4 |
23 |
4 |
3 |
3 |
4 |
8 |
77 |
5 |
4 |
4 |
2 |
8 |
24 |
4 |
2 |
3 |
4 |
6 |
78 |
6 |
5 |
2 |
2 |
4 |
25 |
5 |
3 |
2 |
3 |
6 |
79 |
4 |
|