TCVN7825:2007

Tiêu chuẩn quốc gia TCVN 7825:2007 (ISO/IEC 15420 : 2000) về Công nghệ thông tin - Kỹ thuật phân định và thu thập dữ liệu tự động - Yêu cầu kỹ thuật mã vạch - EAN/UPC TIÊU CHUẨN QUỐC GIA TCVN 7825 : 2007 ISO/IEC 15420 : 2000 CÔNG NGHỆ THÔNG TIN - KỸ THUẬT PHÂN ĐỊNH VÀ THU THẬP DỮ LIỆU TỰ ĐỘNG - YÊU CẦU KỸ THUẬT MÃ VẠCH - EAN/UPC Information technology - Automatic identification and data capture techniques - Bar code symbology specification - EAN/UPC Lời nói đầu TCVN 7825: 2007 hoàn toàn tương đương ISO/IEC 15420:2000. TCVN 7825: 2007 thay thế TCVN 6382: 1998 và TCVN 6383: 1998. TCVN 7825: 2007 do Tiểu Ban kỹ thuật Tiêu chuẩn 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 việc nhận dạng các dấu hiệu mã hóa dưới dạng vạch và khoảng trống có các kích thước xác định. Có nhiều phương pháp mã hóa thông tin dưới dạng mã vạch, gọi là symbology (mã hóa bằng vạch). EAN/UPC là một loại symbology. Các quy tắc xác định việc chuyển các ký tự thành các dấu hiệu vạch và khoảng trống, và các đặc trưng quan trọng khác của mỗi symbology gọi là quy định kỹ thuật của symbology này. Mã vạch EAN/UPC dành riêng để mã hóa các mã số phân định. Việc sử dụng mã vạch này được giới hạn và phải tuân thủ các quy tắc và thủ tục đăng ký của EAN quốc tế (EAN) và của Hội đồng mã thống nhất của mỹ (UCC - Uniform Code Council). Từ đầu năm 2005, EAN và UCC đã kết hợp với nhau thành một tổ chức duy nhất là GS1. GS1 quản lý hệ thống mã số để đảm bảo các mã phân định được cấp cho từng vật phẩm cụ thể là đơn nhất trên toàn cầu và được xác định theo một cách nhất quán. Lợi ích chủ yếu đối với người sử dụng hệ thống GS1 là có sẵn mã phân định đơn nhất để dùng trong chuyển giao thương mại của họ. Xem Phụ lục C để có toàn cảnh của hệ thống GS1. Các nhà sản xuất thiết bị mã vạch và người dùng công nghệ mã vạch yêu cầu có các quy định kỹ thuật mã vạch được tiêu chuẩn hóa và phát hành rộng rãi để họ có thể tham chiếu 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 THẬP DỮ LIỆU TỰ ĐỘNG - YÊU CẦU KỸ THUẬT MÃ VẠCH - EAN/UPC Information technology - Automatic identification and data capture techniques - Bar code symbology specification - EAN/UPC 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 EAN/UPC bao gồm mã hóa các ký tự dữ liệu, định dạng hình mã, kích thước, quy định kỹ thuật về thử, và thuật toán giải mã tham chiếu. Nội dung dữ liệu và các quy tắc quản lý sử dụng mã vạch này được quy định trong các quy định kỹ thuật của hệ thống GS1. 2. Tài liệu viện dẫn Các tài liệu viện dẫn sau là rất cần thiết cho việc áp dụng tiêu chuẩn. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng 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: 2006 (ISO/IEC 15416:2000), Công nghệ thông tin - Kỹ thuật phân định và thu thập 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 1073-2:1976, Alphanumeric character sets for optical recognition - Part 2: Character set OCR-B - Shapes and dimensions of the printed image (Các bộ ký tự chữ-số dành cho nhận dạng quang học - Phần 2: Bộ ký tự OCR-B - Hình dáng và kích thước chữ in). ISO/IEC 15424:2000, Information technology - Automatic identification and data capture techniques - Data carrier identifiers (including Symbology Identifiers) (Công nghệ thông tin - Kỹ thuật phân định và thu nhận dữ liệu tự động - Các số phân định vật mang dữ liệu (gồm cả các số phân định mã vạch)). EN 1556:1996, Bar coding - Terminology (Mã vạch - Thuật ngữ). ANSI/UCC-1:1955, U.P.C Symbol Specification Manual (Sổ tay quy định kỹ thuật mã vạch U.P.C). GS1 General Specifications (Quy định kỹ thuật chung của GS1, Bỉ). 3. Thuật ngữ và định nghĩa Tiêu chuẩn này áp dụng các thuật ngữ và định nghĩa trong tiêu chuẩn EN 1556 như sau: 3.1. Mã vạch phụ (add-on symbol) Mã vạch dùng để mã hóa các thông tin phụ thêm vào thông tin trong mã chính. 3.2. Dấu hiệu phụ (auxiliary pattern) Dấu hiệu gồm vạch và khoảng trống thể hiện các thành phần không mang dữ liệu của mã vạch, ví dụ các dấu hiệu cảnh báo và các dấu phân cách giữa các ký tự. 3.3. Dấu phân cách (delineator) Dấu hiệu phụ dùng để tách các ký tự trong một mã vạch phụ. 3.4. Trạng thái chẵn (even parity) Một đặc tính của mã hóa ký tự mã vạch, trong đó ký tự này chứa một số chẵn các mô đun tối. 3.5. Dấu hiệu cảnh báo (guard pattern) Một dấu hiệu phụ gồm các vạch và khoảng trống tương ứng với dấu hiệu bắt đầu hoặc kết thúc trong các mã vạch khác, hoặc dùng để ngăn cách hai nửa của một mã vạch. 3.6. Hệ số phóng đại (magnification factor) Một hệ số nhân không đổi của các kích thước danh nghĩa của một mã vạch EAN/UPC. 3.7. Tổ chức mã số (numbering organisation) Cơ quan chịu trách nhiệm quản lý hệ thống GS1 và duy trì ngân hàng mã số trong một lãnh thổ xác định. 3.8. Bộ số (number set) Một dãy 10 dấu hiệu các vạch và khoảng trống của trạng thái chẵn hoặc lẻ mã hóa các chữ số từ 0 đến 9. 3.9. Trạng thái lẻ (odd parity) Một đặc tính của mã hóa ký tự mã vạch, trong đó ký tự này chứa một số lẻ các mô đun tối. 3.10. Hệ thống GS1 (GS1 system) Các qui định kỹ thuật, các tiêu chuẩn và hướng dẫn do tổ chức GS1 quản trị. Xem phụ lục C. 3.11. Mã hóa trạng thái biến đổi (variable parity encodation) Quá trình mã hóa thông tin phụ trong một họ các ký tự mã vạch bằng cách kết hợp các ký tự trạng thái lẻ và chẵn để mã hóa hoàn toàn các chữ số hoặc để kiểm tra. 3.12. Nén số không (zero-suppression) Quá trình bỏ các số không khỏi những vị trí riêng trong chuỗi dữ liệu UCC-12 để mã hóa chúng ở định dạng UPC-E. 4. Yêu cầu chung 4.1. Các đặc trưng của mã vạch Các đặc trưng của EAN/UPC là: a) Bộ ký tự mã hóa: chữ số (0 đến 9) tức là các ký tự ASCII từ 48 đến 57 theo ISO 646; b) Loại mã vạch: liên tục; c) Số yếu tố cho mỗi ký tự mã vạch: 4, bao gồm 2 vạch và 2 khoảng trống, mỗi vạch hay khoảng trống rộng 1, 2, 3 hoặc 4 mô đun (các dấu hiệu phụ có số yếu tố khác đi); d) Ký tự tự kiểm tra: có; e) Chiều dài chuỗi dữ liệu mã hóa: cố định (8, 12 hoặc 13 ký tự gồm cả số kiểm tra tùy theo từng loại mã vạch); f) Giải mã theo nhiều hướng: có; g) Số kiểm tra mã vạch: một, bắt buộc (xem A.1); h) Mật độ ký tự mã vạch: 7 mô đun cho một ký tự mã vạch; i) Số yếu tố không dữ liệu, kể cả số kiểm tra nhưng không kể các vùng trống: - 18 mô đun đối với mã vạch EAN-13, EAN-8 và UPC-A - 9 mô đun đối với mã vạch UPC-E 4.2. Loại mã vạch Có 4 loại mã vạch EAN/UPC đó là: - EAN-13, UPC-A và UPC-E, có thể đi cùng với mã vạch phụ; - EAN-8. Bốn loại trên được mô tả trong điều 4.4.1 đến 4.4.4 và các mã vạch phụ tùy chọn được mô tả trong điều 4.4.5. 4.3. Mã hóa mã vạch 4.3.1. Mã hóa ký tự mã vạch Các ký tự mã vạch mã hóa giá trị chữ số bằng các ký tự 7 mô đun lựa chọn từ các bộ số khác nhau A, B, và C, như cho trong Bảng 1: Bảng 1 - Các bộ chữ số A, B và C Giá trị chữ số Bộ A các chiều rộng yếu tố Bộ B các chiều rộng yếu tố Bộ C các chiều rộng yếu tố S B S B S B S B B S B S 0 3 2 1 1 1 1 2 3 3 2 1 1 1 2 2 2 1 1 2 2 2 2 2 2 1 2 2 1 2 1 2 2 1 2 2 1 2 2 3 1 4 1 1 1 1 4 1 1 4 1 1 4 1 1 3 2 2 3 1 1 1 1 3 2 5 1 2 3 1 1 3 2 1 1 2 3 1 6 1 1 1 4 4 1 1 1 1 1 1 4 7 1 3 1 2 2 1 3 1 1 3 1 2 8 1 2 1 3 3 1 2 1 1 2 1 3 9 3 1 1 2 2 1 1 3 3 1 1 2 CHÚ THÍCH: S chỉ khoảng trống (sáng), B chỉ vạch (tối), và các chiều rộng yếu tố tính theo mô đun. Phụ lục D minh họa Bảng 1 bằng hình vẽ. Tổng số mô đun của vạch trong mỗi ký tự mã vạch quyết định trạng thái của nó. Các ký tự mã vạch trong bộ số A là các ký tự trạng thái lẻ. Các ký tự mã vạch trong bộ số B và C là các ký tự trạng thái chẵn. Các ký tự của bộ số C là phản chiếu gương của các ký tự bộ số B. Các ký tự mã vạch trong bộ số A và B luôn luôn bắt đầu ở bên trái bằng một mô đun sáng và kết thúc ở bên phải bằng một mô đun tối. Các ký tự mã vạch trong bộ số C bắt đầu ở bên trái bằng một mô đun tối và kết thúc ở bên phải bằng một mô đun sáng. Một ký tự dữ liệu thông thường được thể hiện bằng một ký tự mã vạch. Nhưng trong những trường hợp riêng xác định dưới đây (xem điều 4.4.1, 4.4.4, 4.4.5) tổ hợp các bộ số trong một mã vạch có thể thể hiện hoặc là dữ liệu hoặc là số kiểm tra. Kỹ thuật này được gọi là mã hóa trạng thái biến đổi. 4.3.2. Mã hóa dấu hiệu phụ Các dấu hiệu phụ phải được tổ hợp như nêu trong Bảng 2. Bảng 2 - Các dấu hiệu phụ Dấu hiệu phụ Số mô đun Chiều rộng yếu tố tính theo mô đun S B S B S B Dấu hiệu cảnh báo thường 3 1 1 1 Dấu hiệu cảnh trung tâm 5 1 1 1 1 1 Dấu hiệu cảnh báo đặc biệt 6 1 1 1 1 1 1 Dấu hiệu cảnh báo phụ 4 1 1 2 Dấu ngăn cách phụ 2 1 1 CHÚ THÍCH: S chỉ yếu tố khoảng trống (sáng), B chỉ yếu tố vạch (tối). Phụ lục D minh họa các dấu hiệu này bằng hình vẽ. Dấu hiệu cảnh báo thường tương ứng với các dấu hiệu bắt đầu và kết thúc trong các mã vạch khác, và dấu hiệu cảnh báo đặc biệt được dùng làm dấu hiệu kết thúc trong mã vạch UPC-E. 4.4. Định dạng mã vạch 4.4.1. Mã vạch EAN-13 Mã vạch EAN-13 có cấu tạo như dưới đây, tính từ trái sang phải: - vùng trống bên trái; - dấu hiệu cảnh báo thường; - 6 ký tự mã vạch từ bộ mã A hoặc B; - dấu hiệu cảnh báo trung tâm; - 6 ký tự mã vạch từ bộ mã C; - dấu hiệu cảnh báo thường; - vùng trống bên phải. Ký tự mã vạch tận cùng bên phải mã hóa số kiểm tra được tính theo Phụ lục A.1. Vì mã vạch EAN-13 chứa 12 ký tự mã vạch nhưng mã hóa 13 chữ số (bao gồm cả số kiểm tra) nên giá trị của chữ số phụ, tức là ký tự ở tận cùng bên trái của chuỗi dữ liệu, phải được mã hóa bằng việc trộn trạng thái khác nhau của bộ số A và B cho 6 ký tự mã vạch của nửa bên trái mã vạch. Hệ thống mã hóa cho các giá trị của chữ số đứng đầu được quy định trong bảng 3. Hình 1 là một ví dụ của mã vạch EAN-13. Bảng 3 - Nửa bên trái của mã vạch EAN-13 Chữ số đầu tiên được mã hóa một cách ngầm định Các bộ chữ số để mã hóa nửa bên trái của mã vạch EAN-13 Vị trí ký tự mã vạch 1 2 3 4 5 6 0 A A A A A A 1 A A B A B B 2 A A B B A B 3 A A B B B A 4 A B A A B B 5 A B B A A B 6 A B B B A A 7 A B A B A B 8 A B A B B A 9 A B B A B A CHÚ THÍCH: Giá trị chữ số đầu tiên “0” giành cho các mã vạch mã hóa các chuỗi dữ liệu UCC-12. Hình 1 - Mã vạch EAN-13 4.4.2. Mã vạch EAN-8 Mã vạch EAN-8 có cấu tạo như dưới đây, tính từ trái sang phải: - vùng trống bên trái; - dấu hiệu cảnh báo thường; - 4 ký tự mã vạch từ bộ mã A; - dấu hiệu cảnh báo trung tâm; - 4 ký tự mã vạch từ bộ mã C; - dấu hiệu cảnh báo thường; - vùng trống bên phải. Ký tự mã vạch tận cùng bên phải mã hóa số kiểm tra được tính theo Phụ lục A.1. Hình 2 cho thấy một ví dụ mã vạch EAN-8. Hình 2 - Mã vạch EAN-8 4.4.3. Mã vạch UPC-A Mã vạch UPC-A có cấu tạo như dưới đây, tính từ trái sang phải: - vùng trống bên trái; - dấu hiệu cảnh báo thường; - 6 ký tự mã vạch từ bộ mã A; - dấu hiệu cảnh báo trung tâm; - 6 ký tự mã vạch từ bộ mã C; - dấu hiệu cảnh báo thường; - vùng trống bên phải. Ký tự mã vạch tận cùng bên phải mã hóa số kiểm tra được tính theo Phụ lục A.1. Mã vạch UPC-A có thể được giải mã như là một mã số 13 chữ số bằng cách thêm vào một số 0 ngầm định ở đằng trước mã số UCC-12. Hình 3 cho thấy một mã vạch UPC-A. Hình 3 - Mã vạch UPC-A 4.4.4. Mã vạch UPC-E Mã vạch UPC-E có cấu tạo như dưới đây, tính từ trái sang phải: - vùng trống bên trái; - dấu hiệu cảnh báo thường; - 6 ký tự mã vạch từ bộ mã A và B; - dấu hiệu cảnh báo đặc biệt; - vùng trống bên phải. Mã vạch UPC-E chỉ có thể sử dụng để mã hóa chuỗi dữ liệu UCC-12 với số đầu tiên là số 0 và chứa 4 hoặc 5 số 0 tiếp theo tại những vị trí xác định, như cho trong bảng 5. Những số 0 này được loại bỏ khỏi chuỗi dữ liệu khi mã hóa bằng phương pháp nén số 0 mô tả trong 4.4.4.1. Hình 4 cho thấy một ví dụ mã vạch UPC-E. Hình 4 - Mã vạch UPC-E (mã hóa “0 07834 00009 1” bằng cách nén số 0) 4.4.4.1. Mã hóa mã vạch UPC-E Dưới đây mô tả việc mã hóa một chuỗi dữ liệu phù hợp với nén số 0: 1) Giả sử D1, D2, D3….D12 biểu thị các ký tự dữ liệu UCC-12 (bao gồm cả số kiểm tra). D1 phải luôn luôn bằng 0. D12 phải là số kiểm tra mã vạch tính theo thuật toán trong Phụ lục A.1. Giả sử X1, X2, … X6 biểu thị 6 ký tự mã vạch trong mã vạch UPC-E cuối cùng. 2) Chuyển đổi D2 đến D11 thành một chuỗi ký tự mã vạch bằng cách loại bỏ những số 0 theo các quy tắc như sau: a) Nếu D11 bằng 5, 6, 7, 8 hoặc 9 và D7 đến D10 tất cả đều bằng 0 và D6 khác 0 thì D7 đến D10 không được mã hóa. Ký tự mã vạch: X1 X2 X3 X4 X5 X6 Ký tự dữ liệu: D2 D3 D4 D5 D6 D11 b) Nếu D6 đến D10 đều bằng 0 và D5 khác 0 thì D6 đến D10 không được mã hóa và X6 = 4. Ký tự mã vạch: X1 X2 X3 X4 X5 X6 Ký tự dữ liệu: D2 D3 D4 D5 D11 4 c) Nếu D4 bằng 0, 1 hoặc 2 và D5 đến D8 đều bằng 0 thì D5 đến D8 không được mã hóa. Ký tự mã vạch: X1 X2 X3 X4 X5 X6 Ký tự dữ liệu: D2 D3 D9 D10 D11 D4 d) Nếu D4 bằng 3, 4, 5, 6, 7, 8 hoặc 9 và D5 đến D9 đều bằng 0 thì D5 đến D9 không được mã hóa và X6 = 3. Ký tự mã vạch: X1 X2 X3 X4 X5 X6 Ký tự dữ liệu: D2 D3 D4 D10 D11 3 3) Việc quyết định các bộ mã để mã hóa ngầm định D12 theo bảng 4. 4) Mã hóa các ký tự mã vạch X1 đến X6 bằng cách dùng các bộ số A và B như quy định trong bước 3. Bảng 4 - Các bộ số cho mã vạch UPC-E Giá trị của chữ số kiểm tra D12 Các bộ số dùng để mã hóa mã vạch UPC-E Vị trí ký tự mã vạch 1 2 3 4 5 6 0 B B B A A A 1 B B A B A A 2 B B A A B A 3 B B A A A B 4 B A B B A A 5 B A A B B A 6 B A A A B B 7 B A B A B A 8 B A B A A B 9 B A A B A B Ví Dụ 1: Dữ liệu ban đầu 0 1 2 3 4 5 0 0 0 0 5 8 Sau khi nén số 0 1 2 3 4 5 5 Quy tắc 2a B A B A A B Ví Dụ 2: Dữ liệu ban đầu Sau khi nén số 0 Quy tắc 0 4 5 6 7 0 0 0 0 0 8 0 4 5 6 7 8 4 B B B A A A 2b Ví Dụ 3: Dữ liệu ban đầu Sau khi nén số 0 Quy tắc 0 3 4 0 0 0 0 0 5 6 7 3 3 4 5 6 7 0 B B A A A B 2c Ví Dụ 4: Dữ liệu ban đầu Sau khi nén số 0 Quy tắc 0 9 8 4 0 0 0 0 0 7 5 1 9 8 4 7 5 3 B B A B A A 2d CHÚ THÍCH: Các bộ số được dùng để mã hóa ngầm định số kiểm tra được cho thấy trong cột “sau khi nén số 0”. 4.4.4.2. Giải mã mã vạch UPC-E Độ lệch của chuỗi dữ liệu 12 chữ số khỏi các ký tự mã hóa trong mã vạch UPC-E có thể được thực hiện theo bảng 5. Bảng 5 - Giải mã mã vạch UPC-E Các chữ số được mã hóa trong mã vạch UPC-E Chữ số được giải mã P1 P2 P3 P4 P5 P6 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 (0) X1 X2 X3 X4 X5 0 (C) (0) X1 X2 0 0 0 0 0 X3 X4 X5 (C) (0) X1 X2 X3 X4 X5 1 (C) (0) X1 X2 1 0 0 0 0 X3 X4 X5 (C) (0) X1 X2 X3 X4 X5 2 (C) (0) X1 X2 2 0 0 0 0 X3 X4 X5 (C) (0) X1 X2 X3 X4 X5 3 (C) (0) X1 X2 X3 0 0 0 0 0 X4 X5 (C) (0) X1 X2 X3 X4 X5 4 (C) (0) X1 X2 X3 X4 0 0 0 0 0 X5 (C) (0) X1 X2 X3 X4 X5 5 (C) (0) X1 X2 X3 X4 X5 0 0 0 0 5 (C) (0) X1 X2 X3 X4 X5 6 (C) (0) X1 X2 X3 X4 X5 0 0 0 0 6 (C) (0) X1 X2 X3 X4 X5 7 (C) (0) X1 X2 X3 X4 X5 0 0 0 0 7 (C) (0) X1 X2 X3 X4 X5 8 (C) (0) X1 X2 X3 X4 X5 0 0 0 0 8 (C) (0) X1 X2 X3 X4 X5 9 (C) (0) X1 X2 X3 X4 X5 0 0 0 0 9 (C) CHÚ THÍCH: - Các ký tự mã vạch tại các vị trí P1, P2, …P5 của mã vạch UPC-E được thể hiện bằng X1, X2, …X5 . - Các chữ số 0 được chèn trở lại được ký hiệu bằng 0 gạch chân. - Chữ số đầu tiên của mã vạch UPC-E không được mã hóa, được ký hiệu là “(0)”. - Chữ số kiểm tra được mã hóa ngầm định trong mã vạch UPC-E được ký hiệu bằng “(C)”. 4.4.5. Mã vạch phụ Các mã vạch phụ được thiết kế để dùng cùng với mã vạch EAN/UPC trong các ấn phẩm nhiều kỳ và sách bìa mềm. Vì độ an toàn của chúng kém nên chỉ được sử dụng chúng tại những nơi các quy tắc trong quy định kỹ thuật áp dụng quản lý định dạng dữ liệu và nội dung đảm bảo an toàn thích hợp. 4.4.5.1. Mã vạch phụ 2 chữ số Mã vạch phụ 2 chữ số có thể được dùng trong các ứng dụng riêng, đi kèm với mã vạch EAN-13, UPC-A hoặc UPC-E. Mã vạch phụ được đặt tại vị trí tiếp sau vùng trống bên phải của mã vạch chính và có cấu tạo như sau: - dấu hiệu cảnh báo phụ; - chữ số đầu tiên của số phụ từ bộ số A hoặc B; - dấu hiệu phân cách phụ; - chữ số thứ hai của số phụ từ bộ số A hoặc B; - vùng trống bên phải. Mã vạch phụ không có dấu hiệu cảnh báo bên phải. Chúng không có số kiểm tra hiện rõ. Việc kiểm tra được thực hiện thông qua việc trộn các bộ số (A hoặc B) dùng cho 2 chữ số. Việc chọn các bộ số được kết nối với giá trị của số phụ được trình bày trong bảng 6. Bảng 6 - Các bộ số dành cho mã vạch phụ 2 chữ số Giá trị của số phụ Chữ số bên trái Chữ số bên phải Bội số của 4 (00, 04, 08,…96) A A Bội số của 4+1 (01, 05,…97) A B Bội số của 4+2 (02, 06, …98) B A Bội số của 4+3 (03, 07,…99) B B Hình 5 cho thấy một ví dụ mã vạch UPC-A cùng với mã vạch phụ 2 chữ số. Hình 5 - Mã vạch UPC-A cùng với mã vạch phụ 2 chữ số 4.4.5.2 Mã vạch phụ 5 chữ số Mã vạch phụ 5 chữ số có thể dùng trong các ứng dụng riêng, kết hợp với các mã vạch EAN-13, UPC-A hoặc UPC-E. Mã vạch phụ được đặt tiếp theo vùng trống bên phải của mã vạch chính, và có cấu tạo như sau: - dấu hiệu cảnh báo phụ; - chữ số thứ nhất của mã số phụ từ bộ số A hoặc B; - dấu hiệu phân cách phụ; - chữ số thứ hai của mã số phụ từ bộ số A hoặc B; - dấu hiệu phân cách phụ; - chữ số thứ ba của mã số phụ từ bộ số A hoặc B; - dấu hiệu phân cách phụ; - chữ số thứ tư của mã số phụ từ bộ số A hoặc B; - dấu hiệu phân cách phụ; - chữ số thứ năm của mã số phụ từ bộ số A hoặc B; - vùng trống bên phải. Mã vạch phụ này không có dấu hiệu cảnh báo bên phải. Nó không có số kiểm tra hiện rõ. Việc kiểm tra được thực hiện thông qua việc phối hợp các bộ số (A hoặc B) dùng cho 5 chữ số. Giá trị v được xác định bằng quy tắc sau: 1) tổng các chữ số ở vị trí 1, 3 và 5; 2) nhân kết quả của bước 1 với 3; 3) tổng các chữ số còn lại (vị trí 2 và 4); 4) nhân kết quả của bước 3 với 9; 5) tổng kết quả của bước 2 và 4; 6) giá trị của v là chữ số hàng đơn vị của kết quả bước 5. VÍ DỤ: tính giá trị của v cho mã số phụ 86104: Bước 1: 8 + 1 + 4 = 13 Bước 2: 13 x 3 = 39 Bước 3: 6 + 0 = 6 Bước 4: 6 x 9 = 54 Bước 5: 39 + 54 = 93 Bước 6: v = 3. Sau đó các bộ số được quyết định bằng cách sử dụng bảng 7. Bảng 7 - Các bộ số dành cho mã vạch phụ 5 chữ số Giá trị của v Các bộ số dành cho các ký tự mã vạch 1 2 3 4 5 0 B B A A A 1 B A B A A 2 B A A B A 3 B A A A B 4 A B B A A 5 A A B B A 6 A A A B B 7 A B A B A 8 A B A A B 9 A A B A B Ví dụ , vì v = 3 cho nên chuỗi bộ số dùng để mã hóa giá trị 86104 là B A A A B. Hình 6 cho thấy một mã vạch EAN-13 với mã vạch phụ 5 chữ số. Hình 6 - Mã vạch EAN-13 với mã vạch phụ 5 chữ số. 4.5. Kích thước và dung sai Kích thước mã vạch EAN/UPC có thể được tham chiếu tới một bộ kích thước đã được xác định gọi là mã vạch cỡ danh định. Xem phụ lục E để thiết kế kích thước của mã vạch kích thước danh định. Mã vạch kích thước danh định phải dùng các kích thước sau đây. 4.5.1. Chiều rộng yếu tố hẹp (X) Chiều rộng danh định của yếu tố hẹp phải bằng 0,330 mm. 4.5.2. Chiều cao vạch Chiều cao danh định của vạch phải bằng: - các mã vạch EAN-13, UPC-A và UPC-E: 22,85 mm; - mã vạch EAN-8: 18,23 mm; - mã vạch phụ: 21,9 mm. Trong mã vạch EAN-13, EAN-8, UPC-A và UPC-E các vạch tạo thành các dấu hiệu cảnh báo bên trái, trung tâm và bên phải phải kéo dài xuống phía dưới là 5X, tức là 1,65 mm. Điều này cũng áp dụng đối với các vạch của ký tự mã vạch đầu tiên và cuối cùng của mã vạch UPC-A. 4.5.3. Vùng trống Chiều rộng vùng trống tối thiểu do các loại mã vạch chính yêu cầu là 7X. Những kích thước vùng trống tối thiểu khác nhau, được quy định cho các loại mã vạch khác nhau, do kích cỡ và vị trí của các ký tự người đọc. Chiều rộng tối thiểu của vùng trống: - mã vạch EAN-13: bên trái, 11X; bên phải, 7X; - mã vạch UPC-A: 9X; - mã vạch UPC-E: bên trái, 9X; bên phải, 7X; - mã vạch EAN-8: 7X; - mã vạch phụ (tất cả): 5X. Một công cụ có ích giúp cho việc duy trì vùng trống trong một số quá trình sản xuất là đưa ký tự “nhỏ hơn”(<) và/hoặc="" “lớn="" hơn”="" (="">) vào trường người đọc, chúng cần phải được đặt ngang với góc của vùng trống. Nếu công cụ này được sử dụng, các ký tự cần phải đặt theo thiết kế thích hợp trong phụ lục E. 4.5.4. Vị trí mã vạch phụ Mã vạch phụ không được xâm phạm vào vùng trống bên phải của mã vạch chính. Khoảng cách tối đa là 12X. Đầu dưới của các vạch trong mã vạch phụ đặt ngang hàng với đầu dưới của các vạch cảnh báo của mã vạch chính. 4.5.5. Các chiều rộng của yếu tố Chiều rộng của mỗi vạch và khoảng trống phải được xác định bởi bội số của kích thước X với chiều rộng tính bằng mô đun của mỗi vạch và khoảng trống (1, 2, 3 hoặc 4). Có một ngoại lệ đối với giá trị các chữ số 1, 2, 7 và 8. Đối với các ký tự này, các vạch và khoảng trống sẽ phải giảm đi hoặc tăng lên 1/13 mô đun, để nâng cao độ tin cậy khi quét. Điều này phải được thực hiện bằng cách giữ nguyên không đổi số đo từ một rìa đến rìa tương ứng và chiều rộng tổng cộng của ký tự mã vạch (xem ví dụ cho ở phụ lục G.3). Việc giảm hoặc tăng tính theo milimet của các vạch và khoảng trống cho các ký tự 1, 2, 7 và 8 cho trong bảng 8. Bảng 8 - Sự giảm/tăng đối với các ký tự 1, 2, 7 và 8 Giá trị ký tự Bộ số A Bộ số B và C Vạch Khoảng trống Vạch Khoảng trống 1 -0,025 +0,025 +0,025 -0,025 2 -0,025 +0,025 +0,025 -0,025 7 +0,025 -0,025 -0,025 +0,025 8 +0,025 -0,025 -0,025 +0,025 CHÚ THÍCH: Các thiết bị đã có và ảnh minh họa để tạo mã vạch đang sử dụng giá trị 0,030 mm cho hệ số giảm hoặc tăng có thể tiếp tục được làm việc như cũ. 4.5.6. Chiều rộng mã vạch Chiều rộng mã vạch tính theo mô đun (gồm cả vùng trống tối thiểu) được cho trong bảng 9. Bảng 9 - Chiều rộng mã vạch tính theo mô đun Loại mã vạch Chiều rộng EAN-13 113 UPC-A 113 EAN-8 81 UPC-E 67 Mã vạch phụ 2 chữ số 25 Mã vạch phụ 5 chữ số 52 EAN-13 hoặc UPC-A + Mã vạch phụ 2 chữ số 138 UPC-E + Mã vạch phụ 2 chữ số 92 EAN-13 hoặc UPC-A + Mã vạch phụ 5 chữ số 165 UPC-E + Mã vạch phụ 5 chữ số 119 4.5.7. Hệ số phóng đại Mã vạch có thể được làm cho nhỏ lại hoặc to lên so với cỡ danh định bằng cách áp dụng một hệ số phóng đại không đổi trong khoảng 0,8 đến 2,0 cho tất cả các kích thước. Hệ số phóng đại của mã vạch phụ sẽ phải giống hệt hệ số phóng đại của mã vạch chính mà nó đi kèm. 4.5.8. Dung sai kích thước Dung sai của các yếu tố có tính lịch sử cho trong phụ lục F.1 đã được thay thế bởi các quy định kỹ thuật về thử trong 4.7. 4.6. Thuật toán giải mã tham chiếu Các hệ thống đọc mã vạch được thiết kế để đọc các mã vạch không hoàn thiện đến một phạm vi nhất định mà thuật toán thực tế cho phép. Phần này mô tả thuật toán giải mã tham chiếu được dùng để quyết định giải mã và độ giải mã trong kiểm định mã vạch theo 4.7. Đối với mỗi ký tự mã vạch, giả thiết S là chiều rộng tổng đo được của ký tự. Giá trị S được dùng để xác định giá trị ngưỡng tham chiếu ( RT ). Sau đó số đo từ một rìa tới rìa tương tự (e) được so sánh với ngưỡng tham chiếu ( RT ) để xác định giá trị E . Giá trị của ký tự được xác định từ giá trị E . Giá trị e1 được xác định như là số đo từ rìa đầu tiên của một vạch tới rìa đầu tiên của vạch liền kề. Giá trị e2 được xác định như là số đo từ rìa cuối cùng của một vạch tới rìa cuối cùng của vạch liền kề. Đối với bộ số A và B, rìa bên phải của một trong 2 vạch được coi như là rìa đầu tiên, trong khi đó đối với bộ số C rìa bên trái của mỗi vạch được coi như là rìa đầu tiên. Mối quan hệ này được minh họa ở hình 7. Bộ mã C Bộ mã A và B Hình 7 - Số đo giải mã ký tự mã vạch Các ngưỡng tham chiếu RT1, RT2, RT3, RT4 và RT5 bằng: RT1 = (1,5/7) S RT2 = (2,5/7) S RT3 = (3,5/7) S RT4 = (4,5/7) S RT5 = (5,5/7) S Trong mỗi ký tự, số đo e1 và e2 được so sánh với ngưỡng tham chiếu. Giá trị nguyên tương ứng E1 và E2 được coi như bằng 2, 3, 4 hoặc 5 như sau: Nếu RT1 £ e i <> RT2 , thì E i = 2 Nếu RT2 £ e i <> RT3 , thì E i = 3 Nếu RT3 £ e i <> RT4 , thì E i = 4 Nếu RT4 £ e i <> RT5 , thì E i = 5 Nếu khác đi thì ký tự bị lỗi Trong bảng 10, dùng giá trị E1 và E2 để quyết định sơ bộ cho giá trị ký tự mã vạch. Bảng 10 - Bảng giải mã EAN/UPC. Ký tự Bộ số Quyết định sơ bộ Quyết định thứ hai 7(b 1 + b 2 )/S E1 E2 0 A 2 3 1 A 3 4 £ 4 2 A 4 3 £ 4 3 A 2 5 4 A 5 4 5 A 4 5 6 A 5 2 7 A 3 4 > 4 8 A 4 3 > 4 9 A 3 2 0 B và C 5 3 1 B và C 4 4 > 3 2 B và C 3 3 > 3 3 B và C 5 5 4 B và C 2 4 5 B và C 3 5 6 B và C 2 2 7 B và C 4 4 £ 3 8 B và C 3 3 £ 3 9 B và C 4 2 CHÚ THÍCH: b 1 và b 2 là các chiều rộng của 2 yếu tố vạch. Ký tự được quyết định một cách đơn nhất đối với mọi tổ hợp của E1 và E2 trừ bốn trường hợp sau: E1 = 3 và E2 = 4 (các ký tự 1 và 7 trong bộ số A) E1 = 4 và E2 = 3 (các ký tự 2 và 8 trong bộ số A) E1 = 4 và E2 = 4 (các ký tự 1 và 7 trong các bộ số B và C) E1 = 3 và E2 = 3 (các ký tự 2 và 8 trong các bộ số B và C) Những trường hợp này yêu cầu chiều rộng kết hợp của 2 vạch phải được thử như sau: Đối với E1 = 3 và E2 = 4: Ký tự là “1” nếu: 7x ( b 1 + b 2 )/ S £ 4; Ký tự là “7” nếu: 7 x ( b 1 + b 2 )/ S > 4. Đối với E1 = 4 và E2 = 3: Ký tự là “2” nếu: 7 x ( b 1 + b 2 )/ S £ 4 Ký tự là “8” nếu: 7 x ( b 1 + b 2 )/ S > 4 Đối với E1 = 4 và E2 = 4 : Ký tự là “1” nếu: 7 x ( b 1 + b 2 )/ S > 3 Ký tự là “7” nếu: 7 x ( b 1 + b 2 )/ S £ 3 Đối với E1 = 3 và E2 = 3 : Ký tự là “2” nếu : 7 x ( b 1 + b 2 )/ S > 3 Ký tự là “8” nếu : 7 x ( b 1 + b 2 )/ S £ 3 Các yêu cầu đối với ( b 1 + b 2 ) cho trong bảng 10. Các thủ tục tương tự cũng được dùng để giải mã các ký tự mã vạch trong các mã vạch phụ. Sử dụng hình 8 xác định số đo S thích hợp để tính giá trị ngưỡng tham chiếu RT1 và RT2 áp dụng cho các dấu hiệu phụ của mã vạch chính. Đối với mỗi mã vạch hoặc nửa mã vạch, các số đo của giá trị e 1 của dấu hiệu phụ thích hợp sau đó được so sánh với ngưỡng tham chiếu để lập giá trị số nguyên E i . Các giá trị E1, E2, E3 và E4 đã được xác định phải phù hợp với các giá trị của dấu hiệu phụ như cho trong bảng 11. Nếu không mã vạch bị lỗi. Hình 8 - Các số đo của dấu hiệu phụ Bảng 11 - Các giá trị E của dấu hiệu phụ của mã vạch chính Các dấu hiệu cảnh báo phụ E1 E2 E3 E4 Dấu hiệu cảnh báo thường 2 Trung tâm (nửa trái) 2 2 2 Trung tâm (nửa phải) 2 2 2 Dấu hiệu cảnh báo đặc biệt 2 2 2 2 4.7. Chất lượng mã vạch ISO 15416 quy định điều kiện đo và phương pháp đo các kích thước và các đặc tính khác của mã vạch. Để kiểm tra xem một mã vạch có phù hợp với các quy định kỹ thuật trong tiêu chuẩn này không, cần phải sử dụng ISO/IEC 15416. Theo Quy định kỹ thuật của GS1, cấp mã vạch tối thiểu phải là 1,5/06/670, trong đó: - Cấp chất lượng in tối thiểu là 1,5; - Độ mở khe (ống kính) đo là số 6 (0,15 mm); - Bước sóng ánh sáng để kiểm tra là 670 +/- 10 nm. CHÚ THÍCH: Cấp tối thiểu là 1,5/06/670 áp dụng cho mã vạch cuối cùng tại điểm sử dụng. Nên cố gắng đạt cấp mã vạch cao hơn tại chỗ in để cho phép những sai lệch do quá trình in và sự giảm cấp có thể xảy ra do bao gói, bảo quản và vận chuyển. Nếu có thể, cấp chất lượng của mã vạch khi in phải bằng hoặc vượt quá 2,5/06/670. 4.7.1. Độ giải mã Để tính toán giá trị độ giải mã V, ngoài các điều khoản của ISO/IEC 15416, còn áp dụng các điều khoản sau đây: Độ giải mã của ký tự 1, 2, 7 và 8 Giá trị độ giải mã V được tính cho mỗi ký tự. Đối với i = 1 và 2 và j = 2, 3, 4: K = giá trị nhỏ nhất V1 = K/(S/14) Đối với các ký tự 1, 2, 7 hoặc 8 trạng thái lẻ, giá trị V2 được cho bằng: V2 = [|(7/S)(chiều rộng kết hợp của cả hai vạch)-4|] / (15/13) Đối với các ký tự 1, 2, 7 hoặc 8 trang thái chẵn, giá trị V2 được cho bằng: V2 = [|(7/S)(chiều rộng kết hợp của cả hai vạch)-3|] / (15/13) Đối với mỗi ký tự 1, 2, 7 hoặc 8 giá trị độ giải mã V bằng giá trị nào nhỏ hơn trong V1 hoặc V2. 4.7.1.1. Độ giải mã đối với các dấu hiệu phụ Giá trị độ giải mã V đối với các dấu hiệu phụ phải được tính toán giống như đối với các ký tự mã vạch tiêu chuẩn (n, k), nhưng sử dụng các giá trị của n, k và S như sau. Vạch ngoài cùng bên trái và dấu hiệu cảnh báo bên phải không được tính gộp vào trong tính toán này. Đối với các dấu hiệu cảnh báo thường bên trái và bên phải của các mã vạch EAN-13, EAN-8 và UPC-A, n = 2, k = 1; S sẽ là giá trị của S đối với ký tự mã vạch tiếp ngay bên phải hoặc bên trái tương ứng của dấu hiệu cảnh báo thường. Đối với dấu hiệu cảnh báo đặc biệt ở cuối bên phải của mã vạch UPC-E, n = 4, k = 2; S sẽ là giá trị của S đối với ký tự mã vạch ngay sau bên trái của dấu hiệu cảnh báo đặc biệt. Đối với dấu hiệu cảnh báo trung tâm của mã vạch EAN-13 và UPC-A, n = 4, k = 2. Trước hết, tính V1 đối với bốn yếu tố đầu tiên (khoảng trống-vạch-khoảng trống-vạch) sử dụng giá trị S đối với ký tự mã vạch ở ngay bên trái của dấu hiệu cảnh báo trung tâm; sau đó tính V2 đối với bốn yếu tố cuối cùng (khoảng trống-vạch-khoảng trống-vạch) sử dụng giá trị S đối với ký tự mã vạch ngay bên phải của dấu hiệu cảnh báo trung tâm. Giá trị của V đối với dấu hiệu cảnh báo trung tâm sẽ là giá trị thấp hơn trong V1 và V2. 4.7.2. Chuẩn cứ phụ ISO 15416 cho phép chuẩn cứ phụ qua/không qua được quy định bởi một quy định kỹ thuật của mã vạch. Đối với mã vạch EAN/UPC các kích thước vùng trống tối thiểu được cho trong 4.5.3. Bất kỳ một profile quét riêng rẽ nào không đạt những yêu cầu này sẽ phải nhận cấp “0”. Các quy định kỹ thuật gốc của GS1 đã quy định các điều kiện quang học mà mã vạch EAN/UPC phải được quét theo điều kiện đó. Những điều kiện truyền thống đó được cho trong phụ lục F.2 nhưng chúng đã bị thay thế bởi quy định kỹ thuật về thử cho trong phần này. 4.8. Các thông số do người dùng quy định Chỉ có GS1 được quyền quy định các thông số người dùng quy định cho mã vạch EAN/UPC. Quy định kỹ thuật của hệ thống GS1 quy định các thông số sau đây: - nội dung dữ liệu; - lựa chọn loại mã vạch và sử dụng các mã vạch phụ. 4.9. Diễn dịch người đọc Diễn dịch người đọc được quy định trong phụ lục A.2. 4.10. Dữ liệu được truyền Ứng dụng chủ yếu của hệ thống GS1 phụ thuộc giao thức đối với dữ liệu truyền từ máy đọc tới điểm tính tiền hoặc thiết bị khác. Nếu không có giao thức truyền được xác định trước giữa máy đọc và ứng dụng, thì việc truyền các số phân định mã vạch sẽ tạo thuận lợi cho thiết bị đọc. Dữ liệu truyền đi phải bao gồm số phân định mã vạch tiếp theo là dữ liệu đã giải mã như quy định trong phụ lục B. 4.11. Hướng dẫn áp dụng Các hướng dẫn áp dụng thực tế mã vạch này cho trong phụ lục G. PHỤ LỤC A (quy định) Các đặc trưng phụ A.1. Số kiểm tra Số kiểm tra bắt buộc EAN/UPC là chữ số cuối cùng bên phải trong EAN-13, UCC-12 và EAN-8. Để tính số kiểm tra hoặc là kiểm định lại số kiểm tra trong trường hợp nó đã có, có thể sử dụng thuật toán sau đây: 1) Lập một bảng có số cột bằng chiều dài của mã số EAN hoặc UCC-12: - 13 cho EAN-13; - 12 cho UCC-12; - 8 cho EAN-8 CHÚ THÍCH: Cả mã vạch UPC-A và UPC-E đều mã hóa mã số UCC-12. 2) Cấp hệ số trọng lượng: Đối với EAN-13 1 3 1 3 1 3 1 3 1 3 1 3 1 Đối với UCC-12 3 1 3 1 3 1 3 1 3 1 3 1 Đối với EAN-8 3 1 3 1 3 1 3 1 3) Đặt các chữ số của mã số đúng vào các vị trí của nó. Nếu chưa có số kiểm tra thì để cột cuối cùng bên phải trống. 4) Nhân mỗi chữ số của mã số EAN hoặc UCC-12 với hệ số trọng lượng của nó. 5) Tổng các kết quả 6) Chia tổng đó cho 10 để tìm số dư. Nếu số kiểm tra đã được ghi vào cột ngoài cùng bên phải, số dư phải bằng 0. (Nếu số dư không bằng 0, thì hoặc là dữ liệu đã sai hoặc tính toán sai). Nếu chưa có số kiểm tra, thì thực hiện bước 7. 7) Xác định số kiểm tra i) Nếu số dư bằng 0, thì số kiểm tra bằng 0. ii) Nếu số dư không bằng 0, thì số kiểm tra bằng 10 trừ đi số dư. VÍ DỤ: Cho EAN-8 Bước 2: 3 1 3 1 3 1 3 1 Bước 3: 5 4 4 9 0 1 0 Bước 4: 15 4 12 9 0 1 0 Bước 5: Tổng bằng 41 Bước 6: 41 chia cho 10 bằng 4 dư 1 Bước 7: 10 - 1 = 9; do đó số kiểm tra bằng 9 Mã số EAN-8 đầy đủ là: 54490109 A.2. Diễn dịch người đọc Các chữ số người đọc phải được in bên dưới mã vạch chính và bên trên mã vạch phụ. Cần sử dụng một phông chữ rõ ràng cho chữ số người đọc, ví dụ OCR-B như quy định trong tiêu chuẩn ISO 1073-2. Phông này chỉ dùng để tham chiếu như một giao diện tiêu chuẩn thuận tiện và không có mục đích đọc các ký tự này bằng máy hay kiểm định. Các loại phông và các cỡ ký tự thay thế hợp lý khác cũng được chấp nhận nếu nó rõ ràng dễ đọc. Tất cả các ký tự được mã hóa của EAN-13, UPC-A, EAN-8 và các mã vạch phụ phải được thể hiện dưới dạng người đọc. Đối với mã vạch UPC-E, sáu chữ số được mã hóa trực tiếp cùng với các số ”0” ở đầu và số kiểm tra mã hóa ngầm định phải được thể hiện dưới dạng người đọc được. Hình 1, 2, 3, 4, 5 và 6 minh họa từng loại mã vạch gồm cả chữ số người đọc được. Chiều cao của các chữ số này trong mã vạch có cỡ danh định là 2,75 mm. Khoảng cách tối thiểu giữa đỉnh của chữ số và chân của vạch phải bằng 0,5X. Trong mã vạch EAN-13, chữ số tận cùng bên trái, được mã hóa bằng trạng thái chẵn lẻ khác nhau, được in bên trái của dấu hiệu cảnh báo bắt đầu ngang hàng với các chữ số khác. Đối với mã vạch UPC-A và UPC-E, cỡ của chữ số đầu tiên và cuối cùng sẽ phải giảm đến chiều rộng lớn nhất tương đương bằng 4 mô đun. Chiều cao này cũng được giảm một cách tỷ lệ. Cạnh phải của chữ số đầu tiên được đặt cách cạnh bên trái của vạch cảnh báo tận cùng bên trái là 5 mô đun. Cạnh trái của chữ số cuối cùng được đặt cách cạnh phải của vạch cảnh báo tận cùng bên phải là 5 mô đun đối với mã vạch UPC-A và 3 mô đun đối với mã vạch UPC-E. Lề đáy của chữ số đầu tiên và cuối cùng phải đặt ngang hàng với các chữ số giữ nguyên cỡ còn lại. Diễn dịch người đọc của mã vạch phụ được đặt bên trên mã vạch phụ. Các chữ số phải có cùng chiều cao với chữ số của mã vạch chính. Lề phía trên của các chữ số được đặt ngang với lề trên của các vạch của mã vạch chính. Khoảng cách tối thiểu giữa đáy của chữ số và đỉnh của các vạch phải là 0,5X. Một số ngành công nghiệp dùng những biến thể riêng của diễn dịch người đọc như là đưa dấu gạch ngang để phân đoạn trường chữ số. Một trong những ví dụ này cho trong phụ lục E. PHỤ LỤC B (quy định) Số phân định mã vạch Số phân định mã vạch có thể được một máy đọc được lập trình thích hợp thêm vào như là một phần đầu của dữ liệu mã hóa. Số phân định mã vạch được cấp cho EAN/UPC trong ISO/IEC 15424 “Công nghệ thông tin - Kỹ thuật phân định và nhập dữ liệu tự động - Số phân định vật mang dữ liệu (bao gồm cả số phân định mã vạch) là: ]E m trong đó: ] thể hiện ký tự 93 ASCII, E là ký tự mã hóa cho mã vạch EAN/UPC và m là ký tự biến đổi như trong bảng B.1 dưới đây. Giá trị cho phép của m là 0, 1, 2, 3, 4. CHÚ THÍCH: Mã vạch EAN/UPC cùng với mã vạch phụ có thể coi hoặc là như hai mã vạch riêng biệt, mỗi mã vạch được truyền tách biệt với số phân định mã vạch riêng của nó hoặc là như một gói dữ liệu đơn. Người dùng có thể chọn một trong hai phương pháp này. Tất cả dữ liệu phải được truyền như là dữ liệu ASCII tuân theo ISO 646. Bảng B.1 - Các giá trị của m cho EAN/UPC Giá trị m Lựa chọn 0 Gói dữ liệu tiêu chuẩn định dạng EAN đầy đủ, tức là 13 chữ số đối với EAN-13, UPC-A và UPC-E (không chứa dữ liệu phụ) 1 Chỉ có dữ liệu phụ 2 chữ số 2 Chỉ có dữ liệu phụ 5 chữ số 3 Gói dữ liệu kết hợp gồm 13 chữ số của mã vạch EAN-13, UPC-A hoặc UPC-E và 2 hoặc 5 chữ số của mã vạch phụ 4 Gói dữ liệu EAN-8 Số phân định mã vạch này không được mã hóa trong mã vạch, nhưng được phát bởi thiết bị giải mã sau khi giải mã và truyền đi như là phần đầu của thông điệp dữ liệu. Các giá trị của m được cấp trước đây (8, 9, A, B, C) nay đều bãi bỏ. PHỤ LỤC C (tham khảo) Khái quát về hệ thống GS1 GS1 là tổ chức quản lý mã số phân định toàn cầu. Hệ thống GS1 được duy trì thông qua một mạng lưới các cơ quan quốc gia và liên quốc gia gọi là các tổ chức mã số. ứng dụng chung nhất của mã số phân định GS1 là trong phạm vi phân định sản phẩm. Nhưng các mã số có thể được dùng để phân định các đối tượng khác trong các quy tắc thông dụng của hệ thống GS1. Nguyên tắc cơ bản của tiêu chuẩn phân định là các mã số không có nghĩa. Bản thân mã số không mang bất kỳ một thông tin nào về đối tượng mà nó phân định. Nó không phân định quốc gia xuất xứ, nhà cung cấp, loại hoặc giá của đối tượng. Nhưng các mã số được cấu trúc để cho phép quản lý hệ thống và đảm bảo tính đơn nhất của mã số trên toàn cầu. Trong giai đoạn trước đây, các tiêu chuẩn phân định của UCC hoàn toàn tương hợp với các tiêu chuẩn quốc tế của GS1. Thông tin chi tiết về hệ thống GS1 có thể có được từ các tổ chức mã số và từ GS1: GS1 AISBL Blue Tower Avenue Louise 326, b 10 B-1050 Brussels, Belgium T +32 (0)2 788 78 00 F +32 (0)2 788 78 99 contactus@gs1.org www.gs1.org PHỤ LỤC D (tham khảo) Minh họa các bộ số A, B và C và các dấu hiệu phụ Hình D.1 - Các bộ số A, B, và C, và các dấu hiệu phụ PHỤ LỤC E (tham khảo) Bản vẽ kích thước của mã vạch cỡ danh định Hình E.1 - EAN-13 Hình E.2 - UPC-A Hình E.3 - Ví dụ về biến thể UPC-A Hình E.4 - EAN-8 Hình E.5 - UPC-E Hình E.6 - UPC-A với mã vạch phụ 2 chữ số Hình E.7 - EAN-13 với mã vạch phụ 5 chữ số Chú thích tham khảo: Đối với các trạng thái biến dị của họ các mã vạch EAN/UPC nêu trong phụ lục này, một kích thước riêng có thể được minh họa chỉ ở một trong các hình. Mọi kích thước có thể đạt được từ 4,5 lần so với kích thước nêu trong tiêu chuẩn này. Các kích thước liên quan đến các kí tự người đọc là theo Phụ lục A.2. Nếu sử dụng phông người đọc được khác với OCR B, một vài kích thước có thể biến đổi so với các kích thước nêu trong phụ lục này. PHỤ LỤC F (tham khảo) Các phương pháp đo truyền thống F.1. Dung sai kích thước Các dung sai cho trong phần này được xuất xứ từ Phụ lục A của “Sổ tay quy định kỹ thuật mã vạch U.P.C” và được áp dụng “chỉ cho các máy in mã vạch loại 1”. “Quy định kỹ thuật GS1” xuất bản sau đó chấp nhận dung sai này như là “Dung sai cần lưu tâm đối với các thiết bị in nhãn trong nội bộ cửa hàng”. Mặc dù các dung sai này vẫn còn có ích để kiểm soát quá trình hoặc là để hướng dẫn phát triển thiết bị in, chúng đã bị hủy bỏ bởi các quy định kỹ thuật về thử ở phần 4.7. Có 3 dung sai khác nhau áp dụng cho mã vạch EAN/UPC. Chúng được minh họa trong hình F.1 và được định nghĩa như sau: - Tb là dung sai của chiều rộng vạch hoặc khoảng trống (ba kích thước có chỉ số ‘b’ trên hình F.1); - Te là dung sai tiếp giáp (giới hạn) vạch và khoảng trống trong một ký tự mã vạch và được minh họa như hai kích thước có chỉ số ‘e’ trên hình F.1. Các kích thước này được đo từ lề đầu của một vạch tới lề đầu của vạch tiếp sau hoặc là lề cuối của một vạch tới lề cuối của vạch tiếp sau; - Tp là dung sai áp dụng cho chiều rộng tổng của một ký tự mã vạch (kích thước có chỉ số ‘p’ trên hình F.1.). Hình F.1 - Các số đo dung sai Các giá trị của dung sai Tb , Te , và Tp đối với hệ số phóng đại M đã cho được xác định bằng: - Nếu M £ 1, Tb = ± ( X - 0,229) mm; - Nếu M > 1, Tb = ± (0,470 X - 0,055) mm; - Te = ± 0,147 X ; - Tp = ± 0, 290 X. Trong trường hợp khoảng trống đầu của một ký tự từ bộ số A hoặc B, hoặc là khoảng trống cuối của một ký tự từ bộ số C, không áp dụng dung sai Tb . Tuy nhiên, chiều rộng của khoảng trống này không bao giờ được nhỏ hơn 0,200 mm. Hình F.2 minh họa ba dung sai này được tính cho các giá trị khác nhau của X. Hình F.2 - Dung sai được tính cho các giá trị khác nhau của X F.2. Các thông số quang học Các thông số quang học mô tả trong phần này lấy từ lần xuất bản đầu tiên của Các quy định kỹ thuật UCC và EAN. Các thông số này dựa trên việc dùng máy quét la-ze khí nê-ông hê-li, là công nghệ nổi bật lúc ấy. Các máy quét và máy kiểm định hiện nay chủ yếu dùng ánh sáng phát ra từ điôt và các nguồn sáng la-ze điôt ở vùng khả kiến làm việc ở vùng bước sóng dài hơn so với la-ze khí. Quy định kỹ thuật này (xem 4.7) yêu cầu máy kiểm định làm việc trong phạm vi 670 +/- 10 nm và sử dụng độ mở lỗ đo 0,15 mm. Máy quét mở rộng để kiểm định mối tương quan thử phải phù hợp với việc kiểm định dùng các thông số này để cung cấp một cách tin cậy tính năng của máy quét đối với các máy quét đã lắp đặt cũng như mọi loại máy quét hiện nay. “Quy định kỹ thuật chung GS1” sử dụng các phương pháp đo truyền thống để xác định độ phản xạ chấp nhận được của các vạch và khoảng trống. Những yêu cầu của quy định kỹ thuật này (xem 4.7) khác với các thông số truyền thống được xác định như sau: - Bước sóng đỉnh đáp tuyến: 633 nm (nghĩa là mã vạch được quét ở phổ khả kiến (đỏ)); - Chiều rộng dải năng lượng nửa phổ: 100 nm (nghĩa là đường cong đáp tuyến của nguồn sáng phải giảm tới 50% của ánh sáng đỉnh tại 50 nm bên trên và bên dưới bước sóng đỉnh); - Cỡ của chấm máy quét hoặc độ mở lỗ đo: 0,200 mm (nghĩa là giá trị tối thiểu của kích thước X cộng dung sai của nó phải lớn hơn cỡ chấm là 0,200 mm); - Độ phản xạ của các yếu tố khoảng trống ( R L ): R L lớn hơn 30%; - Độ phản xạ của các yếu tố vạch ( R D ): R D nhỏ hơn 50%; - Độ phản xạ của mã vạch: Đối với một độ phản xạ ánh sáng của khoảng trống đã cho, biểu thức sau đây xác định giá trị tối đa chấp nhận được của độ phản xạ của vạch: log 10 R D £ 2,6 (log 10 R L ) - 0,3 CHÚ THÍCH: Thể hiện giá trị R D và R L không phải theo thang phần trăm mà theo một thang từ 0 đến 1. VÍ DỤ: R L = 0,65 (65%) và R D = 0,20 (20%) không thể là kết quả trong độ phản xạ của mã vạch chấp nhận được. Nếu R L = 65% thì R D phải bằng hoặc nhỏ hơn 16,4%. - Không có thông số riêng cho: độ tương phản lề tối thiểu, điều biến và khuyết tật. Tính năng của máy quét có thể bị suy yếu do độ tương phản lề kém, điều biến kém và khuyết tật cao. PHỤ LỤC G (tham khảo) Hướng dẫn đọc và in G.1. Tính tương hợp phân biệt tự động Mã vạch EAN/UPC có thể được đọc bởi các thiết bị giải mã được lập trình thích hợp được thiết kế để tự động phân biệt chúng với các mã vạch khác. Bộ mã vạch được giải mã có giá trị phải được giới hạn trong một phạm vi cần cho một ứng dụng nào đó với độ an toàn đọc tối đa. G.2. Xem xét hệ thống Điều quan trọng là các thành phần khác nhau (máy in, nhãn, máy đọc, cơ sở dữ liệu) được lắp đặt để hoạt động cùng với nhau trong một hệ thống. Một sai sót trong bất kỳ thành phần nào hoặc là sự không ăn khớp giữa chúng có thể làm giảm tính năng chung của hệ thống. G.3. Xem xét về in Phần mềm đồ họa dùng để tạo mã vạch trên máy in điểm phải chia độ vạch và khoảng trống chính xác theo đỉnh chấm của máy in sử dụng. Đối với mã vạch EAN/UPC, số chấm tạo thành mỗi mô đun phải là một giá trị nguyên cố định và không đổi. Vì vậy một máy in cho trước chỉ có thể in một bộ nhất định của độ phóng đại mã vạch. Giảm hoặc tăng các vạch và khoảng trống trong ký tự mã vạch 1, 2, 7 và 8 (xem 4.5.5) được thực hiện bằng cách thay đổi một số nguyên chấm tại chu vi vạch/khoảng trống từ tối sang sáng hoặc ngược lại miễn là giải pháp của máy in thực hiện chức năng này một cách hoàn hảo. Tương tự, việc bù cho sự tăng (hoặc giảm) chiều rộng vạch được thực hiện bằng cách thay đổi một số nguyên chấm tại mỗi chu vi vạch-tới-khoảng trống từ tối sang sáng (hoặc tứ sáng sang tối). Hoặc sự điều chỉnh này thay đổi số đo rìa tới rìa tương ứng hoặc là chiều rộng ký tự mã vạch tổng cộng. Nếu không theo những nguyên tắc này sẽ làm giảm cấp chất lượng mã vạch và làm cho mã vạch không đọc được. G.4. Ví dụ của người lập trình Các nguyên tắc nói ở G.3 có thể được giảm đi tới những quy tắc sau đây đối với những file thiết kế mã vạch kỹ thuật số dựa trên vec-tơ: 1) Chuyển độ phóng đại mong muốn thành cỡ mô đun tính theo chấm làm tròn tới số nguyên gần nhất với điều kiện độ phóng đại tối thiểu đạt được. 2) Chia số nguyên chấm theo mô đun cho 13 và làm tròn tới số nguyên gần nhất. Giá trị này được dùng để giảm hoặc tăng vạch và khoảng trống trong các ký tự 1, 2, 7, và 8. 3) Quyết định số chấm tương ứng với việc bù mong muốn để thống nhất tăng chiều rộng vạch và làm tròn tới số nguyên lớn hơn liền kề. 4) Áp dụng kết quả trên đây để quyết định số chấm của từng vạch và khoảng trống trong mã vạch. VÍ DỤ: Sử dụng file thiết kế mã vạch kỹ thuật số dựa trên vec-tơ với thiết bị ảnh 50 chấm trên milimet, tạo một mã vạch có độ phóng đại 90% có độ giảm chiều rộng vạch 0,11 mm. - Cỡ mô đun của 50 chấm/mm * 0,9 mag * 0,330 mm/mô đun = 14,85, làm tròn tới 14 chấm trên mô đun. Độ phóng đại thực tế trở thành 0,8480. - Bù của 1, 2, 7, 8 là (14 chấm/mô đun) / 13 = 1,077, làm tròn tới 1 chấm. - Bù nở chiều rộng vạch là 0,11 mm * 50 chấm/mm = 5,5, làm tròn lên 6 chấm. Quá trình này dẫn đến kết quả là số đếm chấm sẽ như sau đây đối với vạch và khoảng trống trong các dấu hiệu phụ và các ký tự mã vạch 0, 3, 4, 5, 6, và 9 như minh họa trong bảng G.1. Bảng G.1 - Sửa lỗi chấm đối với giải pháp ảnh và giảm chiều rộng vạch Số đếm mô đun Số đếm chấm Vạch Khoảng trống 1 8 20 2 22 34 3 36 48 4 50 62 Đối với các ký tự mã vạch 1, 2, 7, và 8, số đếm chấm của mỗi vạch và khoảng trống được minh họa trong bảng G.1 sẽ thay đổi một chấm theo hướng dấu + và - chỉ ra trong bảng 8. Ví dụ, ký tự mã vạch 1 trong bộ số B (xem bảng 1) sẽ có số đếm chấm như trong bảng G.2. Bảng G.2 - Sửa lỗi chấm đối với ký tự mã vạch 1, bộ số B Khoảng trống Vạch Khoảng trống Vạch 19 23 33 23 MỤC LỤC Lời nói đầu Lời giới thiệu 1. Phạm vi áp dụng 2. Tài liệu viện dẫn 3. Thuật ngữ, định nghĩa và các từ viết tắt 3.1. Mã vạch phụ (add-on symbol) 3.2. Dấu hiệu phụ (auxiliary pattern) 3.3. Dấu phân cách (delineator) 3.4. Trạng thái chẵn (even parity) 3.5. Dấu hiệu cảnh báo (guard pattern) 3.6. Hệ số phóng đại (magnification factor) 3.7. Tổ chức mã số (numbering organisation) 3.8. Bộ số (number set) 3.9. Trạng thái lẻ (odd parity) 3.10. Hệ thống GS1 (GS1 system) 3.11. Mã hóa trạng thái biến đổi (variable parity encodation) 3.12. Nén số không (zero-suppression) 4. Yêu cầu chung 4.1. Các đặc trưng của mã vạch 4.2. Loại mã vạch 4.3. Mã hóa mã vạch 4.3.1. Mã hóa ký tự mã vạch 4.3.2. Mã hóa dấu hiệu phụ 4.4. Các định dạng mã vạch 4.4.1. Mã vạch EAN-13 4.4.2. Mã vạch EAN-8 4.4.3. Mã vạch UPC-A 4.4.4. Mã vạch UPC-E 4.4.4.1. Mã hóa mã vạch UPC-E 4.4.4.2. Giải mã mã vạch UPC-E 4.4.5. Mã vạch phụ 4.4.5.1. Mã vạch phụ 2 chữ số 4.4.5.2. Mã vạch phụ 5 chữ số 4.5. Kích thước và dung sai 4.5.1. Chiều rộng yếu tố hẹp (X) 4.5.2. Chiều cao vạch 4.5.3. Vùng trống 4.5.4. Vị trí mã vạch phụ 4.5.5. Các chiều rộng của yếu tố 4.5.6. Chiều rộng mã vạch 4.5.7. Hệ số phóng đại 4.5.8. Dung sai kích thước 4.6. Thuật toán giải mã tham chiếu 4.7. Chất lượng mã vạch 4.7.1. Độ giải mã 4.7.1.1. Độ giải mã đối với các dấu hiệu phụ 4.7.2. Chuẩn cứ phụ 4.8. Các thông số do người dùng quy định 4.9. Diễn dịch người đọc 4.10. Dữ liệu được truyền 4.11. Hướng dẫn áp dụng Phụ lục A (quy định) Các đặc trưng phụ A.1. Số kiểm tra A.2. Diễn dịch người đọc Phụ lục B (quy định) Số phân định mã vạch Phụ lục C (tham khảo) Khái quát về hệ thống GS1 Phụ lục D (tham khảo) Minh họa các bộ số A, B và C và các dấu hiệu phụ Phụ lục E (tham khảo) Bản vẽ kích thước của mã vạch cỡ danh định Phụ lục F (tham khảo) Các phương pháp đo truyền thống Phụ lục G (tham khảo) Hướng dẫn đọc và in