TCVN7202:2008

Tiêu chuẩn quốc gia TCVN 7202:2008 (ISO/IEC 16388 : 2007) về 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 39 TIÊU CHUẨN QUỐC GIA TCVN 7202 : 2008 ISO/IEC 16388 : 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 39 Information technology – Automatic identification and data capture techniques – Code 39 bar code symbology specification Lời nói đầu TCVN 7202 : 2008 thay thế TCVN 7202 : 2002. TCVN 7202 : 2008 hoàn toàn tương đương ISO/IEC 16388 : 2007. TCVN 7202 : 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 39 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à các tiêu chuẩn ứng dụng. 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 39 Information technology – Automatic identification and data capture techniques – Code 39 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 39, các đặc tính của mã vạch 39, việc mã hóa ký tự dữ liệu, các kích thước, dung sai, các thuật toán giải mã và các thông số do ứng dụng quy định, các chuỗi tiếp đầu tố phân định mã vạch đối với mã vạch 39. 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 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 15424 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 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 trưng của mã vạch Mã vạch 39 có đặc trưng sau: a) Bộ ký tự có khả năng mã hóa: 1) Các chữ cái và chữ số toàn bộ từ A đến Z và từ 0 đến 9 (bao gồm các ký tự ASCII từ 65 đến 90 và từ 48 đến 57, phù hợp với ISO 646). 2) Các ký tự đặc biệt: khoảng trống $ % + - . / (tương ứng với các ký tự ASCII 32, 36, 37, 43, 45, 46 và 47, phù hợp với ISO 646). 3) Ký tự bắt đầu/ kết thúc. b) Loại mã vạch: rời rạc. c) Số yếu tố trong mỗi ký tự mã vạch: 9, bao gồm 3 vạch rộng và 6 vạch hẹp, trong đó có 5 vạch tối và 4 vạch sáng. d) Ký tự tự kiểm tra: có. e) Chiều dài chuỗi dữ liệu có khả năng mã hóa: thay đổi. f) Khả năng giải mã hai hướng: có. g) Ký tự kiểm tra mã vạch: một, tùy chọn (xem Phụ lục A). h) Mật độ ký tự của mã vạch: mỗi ký tự mã vạch có từ 13 đến 16 mô đun, bao gồm cả khoảng trống xen kẽ giữa các ký tự nhỏ nhất, tùy theo tỷ lệ rộng/ hẹp. i) Vùng không chứa dữ liệu: tương đương với 2 ký tự mã vạch. 4.2. Cấu trúc mã vạch Như minh họa trong Hình 1, mã vạch 39 gồm: a) Vùng trống phía trước; b) Ký tự bắt đầu; c) Một hay nhiều ký tự mã thể hiện dữ liệu (bao gồm cả ký tự kiểm tra mã, nếu có); d) Ký tự kết thúc; e) Vùng trống phía sau. Một khoảng trống – khe xen kẽ giữa các ký tự – dùng để phân tách các ký tự trong phạm vi mã vạch. Hình 1 – Mã vạch 39 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 chín yếu tố (năm vạch tối và bốn vạch sáng) trong đó có sáu yếu tố luôn là hẹp (hoặc là ba vạch tối hẹp và ba vạch sáng hẹp, hoặc là năm vạch tối hẹp và một vạch sáng hẹp) và ba yếu tố luôn là rộng (một vạch sáng rộng và hai vạch tối rộng khi có ba vạch tối hẹp, hoặc ba vạch sáng rộng khi có năm vạch tối hẹp). 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ự. 4.3.2. Bộ mã ký tự của mã vạch 39 Bảng 1 quy định tất cả các bộ mã ký tự của mã vạch 39. K ể u m ẫ u m ã h ó a Bảng 1 – Bộ mã ký tự của mã vạch 39 Ký tự Kiểu mã hóa B S B S B S B S B Giá trị 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 D 0 0 0 0 1 1 0 0 1 68 E 1 0 0 0 1 1 0 0 0 69 F 0 0 1 0 1 1 0 0 0 70 G 0 0 0 0 0 1 1 0 1 71 H 1 0 0 0 0 1 1 0 0 72 I 0 0 1 0 0 1 1 0 0 73 J 0 0 0 0 1 1 1 0 0 74 K 1 0 0 0 0 0 0 1 1 75 L 0 0 1 0 0 0 0 1 1 76 M 1 0 1 0 0 0 0 1 0 77 N 0 0 0 0 1 0 0 1 1 78 O 1 0 0 0 1 0 0 1 0 79 P 0 0 1 0 1 0 0 1 0 80 Q 0 0 0 0 0 0 1 1 1 81 R 1 0 0 0 0 0 1 1 0 82 S 0 0 1 0 0 0 1 1 0 83 T 0 0 0 0 1 0 1 1 0 84 U 1 1 0 0 0 0 0 0 1 85 V 0 1 1 0 0 0 0 0 1 86 W 1 1 1 0 0 0 0 0 0 87 X 0 1 0 0 1 0 0 0 1 88 Y 1 1 0 0 1 0 0 0 0 89 Z 0 1 1 0 1 0 0 0 0 90 dấu gạch ngang 0 1 0 0 0 0 1 0 1 45 dấu chấm câu 1 1 0 0 0 0 1 0 0 46 dấu cách 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 S//S hay * 0 1 0 0 1 0 1 0 0 Không có CHÚ THÍCH 1: S/S biểu thị ký tự bắt đầu và kết thúc, thường được thể hiện bằng dấu * CHÚ THÍCH 2: Trong các cột có tiêu đề là B và S, 0 thể hiện vạch hẹp và 1 thể hiện vạch rộng. 4.3.3. Ký tự bắt đầu và kết thúc Ký tự bắt đầu và kết thúc của mã vạch 39 thường được thể hiện ở dạng người đọc được bằng một dấu * (dấu sao). Ký tự này không được mã hóa vào bất cứ vị trí nào trong mã vạch 39 và không được bộ phận giải mã truyền đi. Ký tự bắt đầu được đặt ở tận cùng bên trái của các ký tự mã dữ liệu, và được chia tách khỏi vạch thứ nhất của ký tự dữ liệu đầu tiên bằng một khoảng trống xen kẽ giữa các ký tự. Ký tự kết thúc được đặt ở tận cùng bên phải của các ký tự mã dữ liệu (bao gồm cả ký tự kiểm tra nếu có), và được chia tách khỏi vạch tối cuối cùng của ký tự dữ liệu sau cùng bằng một khoảng trống xen kẽ giữa các ký tự. 4.3.4. Ký tự kiểm tra mã tùy chọn Phụ lục A quy định vị trí và cách tính ký tự kiểm tra mã. 4.4. Các kích thước Mã vạch 39 sử dụng các kích thước danh định sau: a) Độ rộng của yếu tố hẹp (X): kích thước X của mã vạch 39 được xác định theo quy định kỹ thuật ứng dụng, cân nhắc đến tính sẵn có của thiết bị sản xuất và đọc mã vạch và phù hợp với các yêu cầu ứng dụng chung. Xem điều 4.7.1. b) Tỷ lệ rộng/ hẹp ( N ): 2,0 : 1 đến 3,0 : 1. c) Độ rộng của khoảng trống xen kẽ giữa các ký tự ( l ): 1) nhỏ nhất: bằng X ; 2) lớn nhất: đối với X ≤ 0,287 mm: 5,3 X ; đối với X ≥ 0,287 mm: 1,52 mm hoặc 3 X , chọn số lớn hơn trong hai số. d) Độ rộng tối thiểu của vùng trống: 10 X . e) Khuyến nghị chiều cao tối thiểu của mã vạch để quét bằng tay: 5,0 mm hoặc 15 % chiều rộng của mã vạch không kể các vùng trống, chọn số lớn hơn trong hai số. CHÚ THÍCH: Có thể tính chiều rộng W (tính bằng milimét) của mã vạch 39, bao gồm các vùng trống, theo công thức sau: W = ( C + 2) (3 N + 6) X + ( C + 1) l + 2 Q trong đó W là chiều rộng của mã vạch; C là số các ký tự dữ liệu (bao gồm cả ký tự kiểm tra mã, nếu có); N là tỷ lệ rộng/ hẹp; X là độ rộng của yếu tố hẹp, tính bằng milimét; l là độ rộng của khoảng trống xen kẽ giữa các ký tự, tính bằng milimét; Q là độ rộng của vùng trống, tính bằng milimét. 4.5. 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ác mã vạch chất lượng kém đến giới hạn mà các 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 dùng để tính giá trị của độ giải mã như đã quy định trong TCVN 7626 (ISO/IEC 15416). a) Xác nhận sự có mặt của vùng trống phía trước; b) Đối với mỗi ký tự mã (bao gồm cả ký tự bắt đầu và kết thúc): 1) Đo độ rộng tổng của 5 vạch tối và 4 vạch sáng; gọi độ rộng tổng này là S . 2) Tính giá trị ngưỡng, T = S / 8. 3) So sánh độ rộng của mỗi yếu tố mã hóa ký tự đó với giá trị T . Nếu độ rộng của yếu tố lớn hơn T thì kết luận yếu tố là rộng; nếu không, yếu tố là hẹp. 4) Xác định xem kiểu mã hóa của các yếu tố rộng và hẹp có khớp với ký tự hợp lệ từ bộ mã cho phép hay không. c) Ký tự mã đầu tiên đọc được phải là ký tự bắt đầu/ kết thúc, từ đó có thể suy ra hướng quét. d) Tiếp tục đọc đến khi gặp ký tự bắt đầu/ kết thúc được xác nhận là hợp lệ. e) Xác nhận sự có mặt của vùng trống phía sau. 4.6. Chất lượng mã vạch 4.6.1. Quy định kỹ thuật về việc kiểm tra Để kiểm tra xác nhận xem một mã vạch có phù hợp với các quy định kỹ thuật nêu trong tiêu chuẩn này hay không thì phải kiểm tra theo quy định kỹ thuật về kiểm tra nêu trong TCVN 7626 (ISO/IEC 15416) quy định phương pháp tiêu chuẩn để đo và phân cấp mã vạch, như nêu ở 4.6.2. TCVN 7626 (ISO/IEC 15416) quy định các điều kiện để thực hiện các phép đo và quy định các phương pháp xác định cấp chất lượng tổng thể dựa trên các thuộc tính của mã vạch. Phải sử dụng thuật toán giải mã tham chiếu quy định trong 4.5 để đánh giá các thông số “giải mã” và “độ giải mã” theo TCVN 7626 (ISO/IEC 15416). Cấp tổng thể của mã vạch được thể hiện dưới dạng như cho trong ví dụ dưới đây: 1,5 / 10 / 660 trong đó: 1,5 là cấp chất lượng tổng thể của mã vạch; 10 là số tham chiếu của lỗ đo (trong ví dụ này có đường kính là 0,25 mm); 660 là bước sóng đỉnh đáp tuyến tính bằng nanômét. TCVN 7626 (ISO/IEC 15416) cho phép quy định các chuẩn cứ phụ đạt/ không đạt theo quy định kỹ thuật về mã vạch. Đối với mã vạch 39, các chuẩn cứ phụ được quy định trong 4.6.2. Bất kỳ một đồ thị quét riêng rẽ nào không đạt các yêu cầu này đều phải nhận cấp 0. 4.6.2. Các thông số bổ sung 4.6.2.1. Tỷ lệ rộng/ hẹp Phải tạo mã vạch với N danh định trong khoảng từ 2,0 đến 3,0. Giá trị N đo được trong mọi đồ thị quét phải ở trong khoảng từ 1,8 đến 3,4. Phải đo và phân cấp tỷ lệ rộng/hẹp trong đồ thị đặc tính phản xạ quét theo TCVN 7626 (ISO/IEC 15416) như sau: 1,8 ≤ N ≤ 3,4: Cấp 4 N < 1,8="" hoặc=""> N > 3,4: Cấp 0 4.6.2.2. Khoảng trống xen kẽ giữa các ký tự Đối với mã vạch có độ rộng yếu tố hẹp ( Z ) đo được nhỏ hơn 0,287 mm, khoảng trống xen kẽ giữa các ký tự cho phép lớn nhất là 5,3 Z . Đối với mã vạch có Z lớn hơn hoặc bằng 0,287 mm, khoảng trống xen kẽ giữa các ký tự lớn nhất là số lớn hơn trong hai số: 3Z hoặc 1,52 mm. Phải đo và phân cấp mỗi khoảng trống xen kẽ giữa các ký tự trong đồ thị đặc tính phản xạ quét theo TCVN 7626 (ISO/IEC 15416) như sau: l ≤ G max : Cấp 4 l <> max : Cấp 0 trong đó: G max = 5,3Z đối với Z < 0,287="" mm="" hoặc=""> max = MAX(1,52 mm, 3Z) đối với Z > 0,287 mm. 4.6.2.3. Vùng trống Vùng trống tại mỗi đầu của mã vạch phải tối thiểu là 10Z. Phải đo và phân cấp cả hai vùng trống bên trái và bên phải trong mỗi đồ thị đặc tính phản xạ quét theo TCVN 7626 (ISO/IEC 15416) như sau: Vùng trống ≥ 10Z: Cấp 4. Vùng trống < 10z:="" cấp=""> CHÚ THÍCH: Trong các điều từ 4.6.2.1 đến 4.6.2.3, các yêu cầu dựa vào phép đo thực tế chứ không dựa vào phép đo dự kiến một thông số xác định; do vậy, kích thước Z là phù hợp hơn so với kích thước X. 4.7. Các thông số do ứng dụng quy định 4.7.1. Mã vạch và các đặc trưng về kích thước Để in và có thể quét mã vạch 39 trong một ứng dụng nào đó, cần quy định mã vạch và các thông số về kích thước sau theo quy định kỹ thuật về ứng dụng: a) Chọn một tập hợp bổ sung của bộ ký tự có khả năng mã hóa; b) Số các ký tự dữ liệu trong mã vạch 39, có thể là cố định, thay đổi hay thay đổi dưới mức tối đa quy định; c) Có sử dụng ký tự kiểm tra mã vạch theo modulo 43 hay không (xem A.1) và bộ giải mã có truyền nó đi hay không; d) Có sử dụng ký tự kiểm tra dữ liệu hay không và nếu có thì thuật toán để tính nó; e) Khoảng kích thước X; f) Khoảng tỷ lệ rộng/ hẹp; g) Khoảng trống xen kẽ giữa các ký tự; h) Chiều cao tối thiểu của vạch. CHÚ THÍCH 1: Đối với các ứng dụng mong muốn tính bảo mật cao của dữ liệu, phải sử dụng ký tự kiểm tra mã vạch. CHÚ THÍCH 2: Tỷ lệ rộng/ hẹp phải càng cao càng tốt trong phạm vi đã quy định ở điều 4.4 để tối đa hóa khả năng đọc. Xem ví dụ nêu trong Phụ lục D. 4.7.2. Quy định kỹ thuật về quang học Để có thể quét được mã vạch trong một ứng dụng nào đó, cần quy định một số thông số quang học cụ thể. Bộ các thông số cần có trong tiêu chuẩn ứng dụng bao gồm quy định kỹ thuật về: - Bước sóng đỉnh đáp tuyến; - Mã vạch và máy quét phải phù hợp với chiều rộng dải năng lượng bán phổ; - Cỡ chấm sáng của máy quét; - Các thông số về hệ số phản xạ của các vạch tối và vạch sáng; - Các điều kiện thực hiện phép đo quang học; - Giới hạn các sai lỗi được phép trong mã vạch. Xem ví dụ nêu trong Phụ lục D. 4.7.3. Quy định kỹ thuật về kiểm tra Quy định kỹ thuật ứng dụng phải xác định cấp tổng thể tối thiểu của mã vạch chấp nhận được (bao gồm cả mức phân cấp tối thiểu, lỗ đo và bước sóng đỉnh đáp tuyến theo yêu cầu) khi đo mã vạch theo TCVN 7626 (ISO/IEC 15416). Phụ lục A (tham khảo) Các đặc tính bổ sung A.1. Ký tự kiểm tra A.1.1. Ký tự kiểm tra mã vạch Đối với các ứng dụng yêu cầu tính bảo mật cao của dữ liệu, phải dùng ký tự kiểm tra mã, trong trường hợp đó phải đặt ký tự kiểm tra mã ngay sau ký tự dữ liệu cuối cùng và trước ký tự kết thúc. Phải xác định việc sử dụng ký tự kiểm tra mã theo tiêu chuẩn ứng dụng. Việc sử dụng ký tự kiểm tra mã vạch phải tuân thủ thuật toán về ký tự kiểm tra mã vạch sau đây: a) Mỗi ký tự dữ liệu sẽ được gán cho một giá trị số thể hiện ở Bảng A.1 dưới đây; b) Tính tổng các giá trị số đối với tất cả các ký tự dữ liệu của mã vạch; c) Chia tổng này cho 43; d) Ký tự mà giá trị của nó (từ Bảng A.1) bằng phần dư của phép chia nêu ở bước c) sẽ được dùng làm ký tự kiểm tra. Bảng A.1 – Các giá trị ký tự số để tính ký tự kiểm tra mã vạch theo modulo 43 Ký tự Giá trị Ký tự Giá trị Ký tự Giá trị 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 dấu cách 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 Máy giải mã có thể truyền đi ký tự kiểm tra mã theo modulo 43. VÍ DỤ: Đối với dữ liệu “CODE 39”: Các ký tự dữ liệu C O D E dấu cách 3 9 Các giá trị của ký tự 12 24 13 14 38 3 9 Tổng các giá trị 113 Chia cho 43 113/43 = 2 dư 27 Giá trị 27 tương ứng với ký tự R Dữ liệu với ký tự kiểm tra mã C O D E dấu cách 3 9 R A.1.2. Ký tự kiểm tra dữ liệu Khi được máy giải mã truyền đi, ký tự kiểm tra mã theo modulo 43 có thể được dùng làm ký tự kiểm tra dữ liệu. Có thể lựa chọn thuật toán quy định trong ISO 7064, hoặc một thuật toán khác trong quy định kỹ thuật ứng dụng, để tính ký tự kiểm tra dữ liệu, với điều kiện có tính đến sự dự liệu phù hợp để tính và kiểm tra xác nhận nó trong khi tạo mã và trong phần mềm xử lý gói tin. Ký tự kiểm tra dữ liệu như vậy phải là ký tự cuối cùng của chuỗi dữ liệu và phải được máy giải mã truyền đi. A.2. Diễn dịch người đọc Thông thường, phải in phần diễn dịch người đọc về các ký tự dữ liệu (và dữ liệu và (các) ký tự kiểm tra mã, nếu có) cùng với mã vạch 39 mã hóa chúng. Có thể in ký tự bắt đầu/ kết thúc. Không quy định cỡ và phông của ký tự, và có thể in phần diễn dịch ở bất cứ vị trí nào trong khu vực xung quanh mã vạch, nhưng không xâm phạm các vùng trống. A.3. Các phương thức truyền dữ liệu quang học Có thể lập trình máy giải mã để giải các mã vạch 39 theo phương thức phi tiêu chuẩn để đáp ứng yêu cầu ứng dụng đặc thù. Có ba giản đồ như vậy là: toàn bộ ASCII (xem A.3.1), gắn gói tin (xem A.3.2) và các chức năng kiểm soát (xem A.3.3). Vì việc sử dụng các đặc tính này yêu cầu phải lập trình đặc biệt cho máy giải mã nên không khuyến nghị chúng cho các ứng dụng chung vì có thể nhầm lẫn với mã vạch 39 chuẩn. A.3.1. Toàn bộ ASCII Có thể mã hóa toàn bộ 128 ký tự của bộ ký tự ASCII theo ISO 646 IRV (bao gồm bộ C0 về các ký tự kiểm soát quy định trong ISO/IEC 6429 với các giá trị từ 28 đến 31 được sửa đổi tương ứng thành FS, GS, RS và US) bằng việc sử dụng hoặc là một hoặc là sự kết hợp của hai ký tự mã, được tạo thành từ một trong bốn ký tự ($ + % /) và theo sau là một trong 26 ký tự chữ cái. Những cách kết hợp này được chỉ ra trong Bảng A.2. Khi sự chọn lựa toàn bộ ASCII đã được phép trong máy giải mã, chỉ có ASCII tương ứng với các kết hợp ký tự mã vạch chứ không phải phần chuyển dịch nghĩa đen của chúng sẽ được truyền đi. A.3.2. Gắn gói tin Đôi khi việc cắt các gói tin dài thành nhiều mã vạch ngắn hơn là có nhiều tiện ích. Nếu ký tự dữ liệu đầu tiên của mã vạch 39 là một “khoảng trống”, có thể lập trình máy giải mã để gắn thông tin chứa trong phần còn lại của mã vạch vào tầng đệm lưu giữ (dữ liệu chưa được truyền đi). Quá trình này tiếp diễn đối với tất cả các mã vạch 39 kế tiếp với một “khoảng trống” ở đầu, cùng các gói tin sẽ được thêm vào đoạn cuối của những gói tin đã lưu trước đó. Khi đọc đến gói tin không có “khoảng trống” ở đầu, các nội dung trên sẽ được gắn vào tầng đệm, toàn bộ tầng đệm sẽ được truyền đi và sau đó tầng đệm sẽ bị xóa sạch. Nếu chuỗi dữ liệu là quan trọng, ứng dụng phải tạo ra các điều khoản để đảm bảo việc đọc các ký tự mã là theo đúng trình tự. A.3.3. Chức năng kiểm soát Có sẵn mô hình bổ sung riêng cho hệ thống và có thể dùng mô hình này cho các hệ thống đóng nhưng không cho các hệ thống mở. Bằng việc kết hợp hai ký tự mã từ bộ ($, %, +, -, *, /) (các ký tự ASCII 36, 37, 43, 45, 46, 47), có thể lập trình 36 chức năng kiểm soát vào trong một hệ thống. Có thể lập trình một cách đặc biệt cho máy giải mã để giải các ký tự mã này và thực hiện các chức năng đã quy định. Không được truyền đi phần dịch thuật nghĩa đen của các cặp ký tự này và không được dùng mã nhận dạng mã vạch (xem Phụ lục C). Bảng A.2 – Mã hóa toàn bộ bộ ký tự ASCII bằng mã vạch 39 ASCII MÃ ASCII MÃ ASCII MÃ ASCII MÃ 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 l %Q GS %C = %H ] %M } %R RS %D > %I ^ %N ~ %S US %E ? %J _ %O DEL %T hoặc %X hoặc Y hoặc %Z Phụ lục B (tham khảo) Hướng dẫn sử dụng mã vạch 39 B.1. Tính tương hợp của sự phân biệt tự động Máy giải mã vạch được lập trình phù hợp có thể đọc mã vạch 39 và được thiết kế để phân biệt tự động mã vạch 39 với các mã vạch khác. Bộ giá trị mã vạch của máy giải mã phải được giới hạn trong số những loại mã vạch cần để tối đa hóa tính an toàn của việc đọc mã. Khi sử dụng mã vạch 39 trong môi trường phân biệt tự động với mã vạch 2 trong 5 xen kẽ, phải tuân thủ các hướng dẫn sau: a) Khoảng trống danh định xen kẽ giữa các ký tự trong mã vạch 39 không được rộng hơn các yếu tố hẹp. b) Phải khống chế hệ thống đọc và lập trình máy giải mã để đảm bảo rằng số ký tự (kể cả ký tự bắt đầu và kết thúc) trong tất cả các mã vạch 39 lớn hơn một nửa số ký tự dữ liệu trong mã vạch ITF. c) Mã vạch ITF phải có chiều dài tối thiểu sáu ký tự trong môi trường mà chúng được phân biệt tự động với mã vạch 39. Việc sử dụng mã vạch có chiều dài cố định, có vạch chắn và ký tự kiểm tra cùng với mã vạch ITF theo khuyến nghị trong TCVN 6513 (ISO/IEC 16390) sẽ cung cấp sự bảo vệ bổ sung thêm trong môi trường phân biệt tự động. B.2.Xem xét về hệ thống Điều quan trọng là các bộ phận khác nhau (máy in, nhãn, máy quét) để tạo mã vạch phải hoạt động cùng nhau như một hệ thống. Một sai lỗi ở bất kỳ bộ phận nào, hoặc sự không khớp giữa chúng với nhau, đều có thể làm giảm tính năng hoạt động của toàn hệ thống. Các đặc tính về máy in, mã vạch và máy quét phải đồng bộ với nhau để đạt được tính năng mong muốn. B.3. Xem xét về việc in B.3.1. In điểm Phần mềm đồ họa được dựng để tạo mã vạch trên máy in điểm cần phải chia mỗi vạch tối và vạch sáng chính xác theo đúng pic điểm in của máy in được sử dụng, dù đó là loại mã vạch nào. đối với mã vạch 2 chiều rộng như mã 39, số điểm in tạo thành các yếu tố vạch tối và vạch sáng hẹp, trước khi bù tăng hoặc giảm chiều rộng vạch tối, phải là số nguyên cố định và không đổi, và số các điểm in tạo thành yếu tố rộng, trước khi bù tăng hoặc giảm chiều rộng vạch tối cũng phải là một bội số nguyên của số điểm in của yếu tố hẹp nhân với tỷ lệ rộng : hẹp. Chiều rộng khoảng trống xen kẽ giữa các ký tự cũng phải là một số nguyên cố định của các điểm in. Do vậy, một máy in đó cho chỉ có thể in được một bộ nhất định của kích thước X và tỷ số rộng : hẹp. Việc bù độ tăng (hoặc giảm) đồng nhất chiều rộng vạch tối phải tương ứng với tổng số bự trên toàn bộ các vạch tối và vạch sáng trong mã vạch. Điều này có thể hoàn thành bằng cách thay đổi số điểm nguyên từ sáng sang tối hoặc từ tối sang sáng theo cùng một cách thức đối với mỗi cặp tối-sáng trong mã vạch và đối với vạch tối cuối cùng trong mã vạch. Ví dụ, tất các các điểm dọc theo cùng một cạnh của từng vạch tối trong cùng một mã vạch cần phải chuyển từ tối sang sáng, hoặc là các điểm dọc theo hai cạnh của từng vạch tối trong một mã vạch cần phải chuyển từ tối sang sáng, trừ khi giải pháp của máy in cho phép thực hiện thỏa đáng việc này. Một bộ bất kỳ thay đổi điểm tối sang sáng hoặc sáng sang tối được chấp nhận nếu việc điều chỉnh được thực hiện một cách dứt khoát cho cả mã vạch và không gãy ra thay đổi chiều rộng tổng thể của mã vạch. Nếu không thỏa món nguyên tắc này sẽ làm giảm cấp chất lượng mã vạch và thường làm cho mã vạch không đọc được. Phần mềm in đa mục đích được thiết kế để hỗ trợ một dải máy in rộng sẽ cung cấp cho người dùng khả năng điều chỉnh kích thước X và tăng hoặc giảm chiều rộng vạch tối. Ví dụ về lập trình Những nguyên lý trên có thể được giảm thiểu đến các nguyên tắc sau đối với các file thiết kế mã vạch số hóa: 1) Chuyển độ phóng đại mong muốn hoặc kích thước X thành chiều rộng yếu tố hẹp tính theo điểm in làm tròn tới số nguyên gần nhất và chọn tỷ lệ rộng:hẹp để sao cho có số điểm in nguyên trong yếu tố rộng. 2) Xác định số điểm in theo số bù mong muốn để đồng nhất độ tăng chiều rộng vạch tối và làm tròn tới số nguyên lớn hơn gần nhất. 3) Áp dụng kết quả trên để quyết định số điểm in của bất kỳ vạch tối và vạch sáng nào trong mã vạch. VÍ DỤ Dùng file thiết kế mã vạch số hóa và thiết bị in với 24 điểm in trên 1mm, tạo mã vạch kích thước X 0,27 mm, tỷ lệ rộng:hẹp 2,5:1 và độ giảm chiều rộng vạch tối 0,06 mm. - Cỡ yếu tố hẹp là 24 điểm in/mm 0,27 mm = 6,5 điểm in, làm tròn là 6 điểm in cho yếu tố hẹp. - Cỡ yếu tố rộng là 6 2,5 = 15 điểm in. - Lượng bự tăng chiều rộng vạch tối là 0,06 mm 24 điểm in = 1,4 điểm in , làm tròn là 2 điểm in. Kết quả của quá trình này về số điểm in cho vạch tối và vạch sáng được minh họa như trong Bảng B.1. Bảng B.1 –Số điểm in được hiệu chỉnh cho giải pháp ảnh và giảm chiều rộng vạch tối Số điểm in Vạch tối Vạch sáng Yếu tố hẹp 4 8 Yếu tố rộng 13 17 B.3.2. Hướng dẫn người sử dụng phần mềm in điểm Khi in mã vạch lần đầu tiên trên hệ thống in gồm phần mềm in mã vạch và thiết bị in, người sử dụng cần phải kiểm tra xem mã vạch in ra có đạt được cấp chất lượng in yêu cầu và kích thước X không dựa theo TCVN 7626 (ISO/IEC 15416). Nếu mã vạch không đạt được cấp chất lượng yêu cầu thì người sử dụng có thể phải tăng kích thước X hoặc tăng hay giảm chiều rộng vạch tối. Nếu tăng kích thước X, người sử dụng phải kiểm tra xem có cần đạt được vùng trống tối thiểu không. Quá trình này có thể phải lặp lại cho tới khi đạt được cấp mã vạch yêu cầu. Không phải mọi hệ thống in đều có khả năng cho ra mã vạch chấp nhận được khi mà kích thước X nhỏ. B.3.3. Xem xét kiểm soát quá trình để kiểm soát quá trình in, cần phải đánh giá độ tăng hoặc giảm trung bình chiều rộng vạch tối và áp dụng hành động hiệu chỉnh để giảm thiểu chúng. Thông số “độ giải mã” đo được theo TCVN 7626 (ISO/IEC 15416) được phản ánh bởi độ tăng hoặc giảm chiều rộng vạch tối một cách hệ thống. Phụ lục C (quy định) Mã nhận dạng mã vạch Mã nhận dạng mã vạch được cấp cho mã 39 trong ISO/IEC 15424, nó có thể được phụ thêm vào như là tiếp đầu tố của dữ liệu mã hóa bởi một máy đọc mã vạch được lập trình thích hợp. Mã nhận dạng này là: ]Am trong đó: ] là ký tự 93 trong bộ ký tự ASCII, A là ký tự mã vạch dành cho mã vạch 39, m là ký tự biến đổi, có giá trị như trong Bảng C.1 dưới đây thể hiện các phương án có hiệu lực đang được áp dụng. Các giá trị cho phép của m là 0, 1, 3, 4, 5, và 7. Bảng C.1 - Giá trị của m dành cho mã vạch 39 Giá trị của m Phương án lựa chọn 0 Không có sự đánh giá tính hợp lệ của ký tự kiểm tra cũng như không có việc xử lý toàn bộ ASCII; mọi dữ liệu được truyền đi như khi được giải mã 1 Có ký tự kiểm tra mã vạch modulo 43 (theo A.1.1) và được truyền đi 3 Có ký tự kiểm tra mã vạch modulo 43 (theo A.1.1) nhưng không được truyền đi 4 Sự chuyển đổi của toàn bộ ASCII được thực hiện; không ký tự kiểm tra 5 Sự chuyển đổi của toàn bộ ASCII được thực hiện; có ký tự kiểm tra mã vạch modulo 43 và được truyền đi 7 Sự chuyển đổi của toàn bộ ASCII được thực hiện; Có ký tự kiểm tra mã vạch modulo 43 nhưng không được truyền đi Thông tin này không được mã hóa trong mã vạch, nhưng sẽ được bộ giải mã phát ra sau khi giải mã và được truyền đi như là một phần tiếp đầu trước gói tin dữ liệu. Phụ lục D (tham khảo) Ví dụ về các thông số do ứng dụng quy định D.1. Ví dụ về cấp chất lượng Cấp chất lượng tối thiểu theo TCVN 7626 (ISO/IEC 15416), bao gồm cả lỗ đo và bước sóng ánh sáng được sử dụng, ở dạng: 1,5 / 10 / 660 trong đó: 1,5 là cấp chất lượng tổng thể của mã vạch 10 là số tham chiếu lỗ đo (trong ví dụ này là đường kính 10 000 in. hoặc 0,25 mm) 660 là bước sóng đỉnh đáp tuyến tính bằng nanomet. Khi tham chiếu TCVN 7626 (ISO/IEC 15416), có thể xác định các giá trị tối thiểu của các thông số mã vạch đo được liên quan tới cấp chất lượng tổng thể. D.2. Ví dụ về các đặc trưng mã vạch a) Bộ ký tự mã hóa: toàn bộ bộ ký tự chữ cái và chữ số, không tính các ký tự đặc biệt. CHÚ THÍCH: Bộ ký tự này cũng không tính đến toàn bộ ASCII và sự chọn lựa chức năng kiểm soát. b) Số lượng ký tự dữ liệu: thay đổi, tối đa 16 ký tự. c) Ký tự kiểm tra mã vạch: ký tự kiểm tra mã vạch modulo 43 được sử dụng và truyền đi. d) Ký tự kiểm tra dữ liệu: không yêu cầu ký tự kiểm tra dữ liệu phụ thêm. D.3. Ví dụ về các đặc trưng kích thước D.3.1. Các kích thước Để hướng dẫn người dùng, quy định kỹ thuật ứng dụng có thể khuyến nghị một giá trị hoặc một khoảng các giá trị kích thước X, liên quan tới nhu cầu ứng dụng chung và khả năng của thiết bị sản xuất và đọc mã vạch. Bản thân việc không tuân thủ một kích thước X tối thiểu nào đó không phải là lý do để loại bỏ một mã vạch theo các tiêu chuẩn này. Đối với quét bằng tay, khuyến nghị kích thước Y tối thiểu là 5 mm hoặc 15 % chiều dài mã vạch, chọn số lớn hơn trong hai số. Tỷ lệ rộng/hẹp N (hoặc khoảng các giá trị N ) phải được quy định. VÍ DỤ X = 0,330 mm (tối thiểu), 0,660 mm (tối đa), N =3,0 : 1, Y = 15 mm. D.3.2. Dung sai kích thước Các tiêu chuẩn ứng dụng đó xác định chuẩn cứ dựa trên kích thước để đánh giá mã vạch và cần phải quy định kích thước X tối đa và tối thiểu. Dung sai hoặc sai số độ rộng tối đa của yếu tố (tính theo milimét) khỏi giá trị danh định phải là hằng số đối với mã vạch, và ký hiệu là t. Dung sai này được xác định như sau t = ± 4/27 (N – 2/3) X trong đó: t là dung sai kích thước; N là tỷ lệ rộng/hẹp; X là chiều rộng của yếu tố hẹp tính bằng milimét. Tổng số độ rộng của các yếu tố trong một ký tự không được sai khác giá trị danh định vượt quá 2t. THƯ MỤC TÀI LIỆU THAM KHẢO [1] TCVN 6512 (ISO/IEC 16390) Công nghệ thông tin – Kỹ thuật phân định và thu nhận dữ liệu tự động – Quy định kỹ thuật về mã vạch 2.5 xen kẽ. [2] ISO/IEC 7064 Information technology – Security techniques – Check character systems (Công nghệ thông tin – Kỹ thuật bảo mật – Các hệ thống ký tự kiểm tra). 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ữ và định nghĩa 4. Yêu cầu kỹ thuật Phụ lục A (tham khảo) Các đặc tính bổ sung Phụ lục B (tham khảo) Hướng dẫn sử dụng mã vạch 39 Phụ lục C (quy định) Mã nhận dạng mã vạch Phụ lục D (tham khảo) Ví dụ về các thông số do ứng dụng quy định Thư mục tài liệu tham khảo