Bước tới nội dung

UPC-A

Bách khoa toàn thư mở Wikipedia

Mã vạch UPC-A hay EAN.UCC-12 là loại mã vạch sử dụng phổ biến ở Bắc Mỹ (MỹCanada) cho đến hiện nay, mặc dù từ ngày 1 tháng 1 năm 2005 người ta đã bắt đầu chuyển sang sử dụng EAN-13 để phù hợp với tiêu chuẩn quốc tế. Mã vạch UPC-A có thể tìm thấy trên rất nhiều chủng loại hàng hóa tiêu dùng trong các siêu thị hay cửa hàng cũng như trên sách, báo, tạp chí. Do vậy đôi khi người ta gọi chúng là "mã vạch UPC". Điều này thực ra không chính xác do các loại mã vạch UPC khác cũng tồn tại (chẳng hạn UPC-E, UPC bổ sung 2 số, UPC bổ sung 5 số v.v). UPC-A mã hóa dữ liệu là một chuỗi 11 số (có giá trị từ 0 đến 9) và có một số kiểm tra ở cuối để tạo ra một chuỗi số mã vạch hoàn chỉnh là 12 số. Do vậy mới có từ EAN.UCC-12.

Hình minh họa của UPC-A

Đặc trưng

[sửa | sửa mã nguồn]

Một mã vạch UPC-A bao gồm các phần sau:

  • Số hệ thống, nằm trong khoảng từ 0 đến 9. Ý nghĩa của các số này nằm trong bảng dưới đây
Số hệ thống Ý nghĩa
0, 7 Mã vạch UPC-A thông thường
1, 6, 8, 9 Dự trữ
2 Sử dụng cho các mặt hàng bán theo trọng lượng
3 Dược phẩm/Các mặt hàng y tế
4 Không hạn chế về định dạng, sử dụng nội bộ cho các mặt hàng phi-lương thực (thực phẩm).
5 Vé, phiếu
  • Mã nhà sản xuất: Gồm 5 số từ 00000 đến 99999. Việc cấp mã nhà sản xuất do hội đồng UCC cấp cho các công ty hay nhà sản xuất có mặt hàng sử dụng loại mã vạch UPC. Tuy nhiên, trên thực tế không phải công ty hay nhà sản xuất nào cũng có tới 100.000 mặt hàng nên UCC đã quyết định sử dụng mã nhà sản xuất dài hơn 5 số. Mã này tên gọi đầy đủ của nó là "mã nhà sản xuất độ dài biến đổi" (tiếng Anh: variable-length manufacturer code). Điều này đồng nghĩa với mã sản phẩm bị hạn chế hơn.
  • Mã sản phẩm: Gồm 5 số từ 00000 đến 99999. Với việc áp dụng mã nhà sản xuất dài hơn 5 số thì mã sản phẩm bị hạn chế. Tuy nhiên, nếu một nhà sản xuất nào đó có hơn 100.000 mặt hàng khác nhau thì họ có thể xin UCC cấp thêm mã nhà sản xuất khác.
  • Số kiểm tra, được tính như EAN-13 với bổ sung thêm một số 0 vào trước chuỗi số của mã vạch UPC-A.

Đặc trưng kỹ thuật

[sửa | sửa mã nguồn]

Như đã nói trên đây, thực tế UPC-A là một tập con của EAN-13 với số 0 dẫn đầu. Ví dụ chuỗi số "123456789012" của UPC-A thực tế hoàn toàn đồng nhất với chuỗi số "0123456789012" của EAN-13. Do vậy, mọi quy tắc trong mã hóa của UPC-A là các quy tắc mã hóa của EAN-13 (tính số kiểm tra, các giá trị bit của các số được mã hóa cũng như của các vạch bảo vệ trái, phải, trung tâm) được áp dụng cho chuỗi: "0" + chuỗi UPC-A.

Tuy nhiên, việc in ấn hay thể hiện bên ngoài thì hơi khác một chút. Người ta không in số 0 dẫn đầu như trong EAN-13 mà ở vị trí đó người ta in số hệ thống. Xem xét giá trị bit của các số được mã hóa theo EAN-13 ta thấy rằng mỗi số khi mã hóa sẽ bao gồm 2 khoảng trắng và 2 vạch có độ rộng thay đổi (nhưng tổng độ rộng không đổi) xen kẽ nhau (Trắng-Vạch-Trắng-Vạch - ở bên trái của các vạch bảo vệ trung tâm hoặc Vạch-Trắng-Vạch-Trắng - ở bên phải của các vạch bảo vệ trung tâm).

Trong khoảng giữa các vạch bảo vệ trái và bảo vệ trung tâm, người ta mã hóa số hệ thống + 5 số mã nhà sản xuất, trong đó mã hóa của số hệ thống được in ra có chiều cao như các vạch bảo vệ, các vạch của mã nhà sản xuất được in ngắn hơn lấy chỗ cho việc in các số của mã này. Do vậy ở đầu của mã vạch UPC-A nói chung nhìn thấy có 4 vạch dài hơn các vạch thông thường.

Trong khoảng giữa các vạch bảo vệ trung tâm và bảo vệ phải, người ta mã hóa mã sản phẩm + số kiểm tra, trong đó mã hóa của số kiểm tra được in ra có chiều cao như các vạch bảo vệ, các vạch của mã sản phẩm được in ngắn hơn lấy chỗ cho việc in các số của mã này. Do vậy ở cuối của mã vạch UPC-A nói chung nhìn thấy có 4 vạch dài hơn các vạch thông thường. Số kiểm tra được in bên ngoài các vạch bảo vệ phải như trong hình minh họa.

Quy tắc tính

[sửa | sửa mã nguồn]

Trước khi có sự ra đời của EAN-13 thì quy tắc tính số kiểm tra của UPC-A như sau:

  1. Lấy tổng của các số ở vị trí lẻ (1, 3, 5, 7, 9, 11). Các số này nhân với 3 được một số A.
  2. Lấy tổng của các số ở vị trí chẵn (2, 4, 6, 8,10) được một số B.
  3. Lấy tổng (A + B) và xét tính chia hết cho 10. Nếu chia hết thì số kiểm tra bằng 0. Nếu không chia hết (số dư khác 0) thì lấy phần bù (10- số dư) làm số kiểm tra.

Quy tắc này phù hợp với quy tắc tính số kiểm tra của EAN-13 do sau khi thêm số 0 vào đầu chuỗi UPC-A thì các vị trí chẵn của UPC-A đổi thành vị trí lẻ của EAN-13 và ngược lại.

Tham khảo

[sửa | sửa mã nguồn]