유니버설 프로덕트 코드

Universal Product Code
UPC 바코드

Universal Product Code(UPC 코드 또는 UPC 코드)는 바코드 기호로, 전 세계적으로 매장 내 무역 품목 추적에 널리 사용됩니다.

UPC(기술적으로는 UPC-A)는 각 무역 품목에 고유하게 할당된 12자리 숫자로 구성됩니다.관련 국제 물품 번호(EAN) 바코드와 함께 UPC는 국제 GS1 [1]조직의 사양에 따라 판매 시 무역 품목 스캔에 주로 사용되는 바코드입니다.UPC 데이터 구조는 GTIN(Global Trade Item Number)의 구성요소이며 국제 표준에 기반한 글로벌 GS1 사양을 따릅니다.그러나 일부 소매업체(의류, 가구)는 GS1 시스템을 사용하지 않습니다(기타 바코드 기호 또는 물품 번호 시스템).한편, 일부 소매점은 EAN/UPC 바코드 심볼을 사용하지만 GTIN은 사용하지 않습니다(자사에서 판매하는 제품만 해당).

연구에 따르면 UPC의 채택과 확산은 혁신을 촉진하고 국제 소매 [2]공급망의 성장에 기여하였다.

역사

월러스 플린트는 1932년 펀치 카드를 이용한 자동 계산 시스템을 제안했다.버나드 실버드렉셀 공과대학 대학원생인 노먼 조셉 우드랜드는 과녁식 코드를 개발해 [3][4]1949년 특허를 출원했다.

1960년대와 1970년대 초, 북미의 철도는 철도 차량을 추적하기 위한 다색 바코드를 실험했지만, 이 시스템은 결국[5] 폐기되고 자동 장비 식별(AEI)이라는 무선 기반 시스템으로 대체되었습니다.

1973년 식품업계의 무역협회 그룹은 Uniform Product Code Council(UPCC; 통일제품코드협의회)를 결성했습니다.UCC는 McKinsey & Company의 컨설턴트 Larry Russell과 Tom Wilson의 도움을 받아 통일제품 [6]코드의 기초를 이루는 숫자 형식을 정의했습니다.Charegon, IBM, Litton-Zellweger, Pitney Bowes-Alpex, Plesey-Anker, RCA, Scanner Inc., Singer 및 Dymo Industries/Data General을 포함한 기술 회사들은 [citation needed]심볼 표현에 대한 대안을 의회에 제출했습니다.기호 선택 위원회는 마침내 George J. Laurer가 설계한 IBM 제안서를 구현하기로 선택했지만, 사람이 읽을 수 있는 [citation needed]영역의 글꼴을 약간 수정했습니다.

소매점 계산대에서 UPC 마크가 찍힌 첫 번째 [7]물품은 1974년 6월 26일 오전 8시 1분 오하이오주 트로이마쉬 슈퍼마켓에서 구입한 리글리쥬시 과일 껌 10팩(50개)이었다.NCR 현금 등록기가 67센트 [8]올랐다.쇼핑 카트에는 다른 바코드 제품도 들어있었지만 계산대에서 껌을 가장 먼저 주웠다.이 껌 꾸러미의 팩시밀리는 워싱턴 D.C.[9][10] 있는 스미스소니언 연구소미국 역사 박물관에 전시되었다.

Murray Eden은 Universal Product Code [11][12]바코드를 만든 팀의 컨설턴트였습니다.매사추세츠 공과대학의 과학자 위원회 의장으로서 그는 "앞으로 [13]닥칠 수밖에 없는 기술의 급증을 견딜 수 있는 상징을 선택하는 것"을 도왔다.그는 바코드 리더가 [14][15]제대로 작동하지 않을 경우를 대비해 숫자를 아래에 추가하는 아이디어를 생각해냈다.

IBM의 제안

1969년 후반, 노스캐롤라이나에 있는 Research Triangle Park(RTP)의 IBM은 George Laurer에게 슈퍼마켓 스캐너와 라벨을 만드는 방법을 결정하도록 했습니다.1970년 말, Hear Baumeister는 델타 A와 델타 B라는 두 개의 IBM 바코드로 달성할 수 있는 인치당 문자 수를 계산하는 방정식을 제공했습니다.1971년 2월 바우미스터는 라우러에 합류했다.

델타 B는 바 폭과 공간 폭, 코드 비트를 비교했습니다.이는 잉크 확산에 매우 민감하여 잉크나 압력이 부적절하면 막대의 양쪽 가장자리가 바깥쪽으로 퍼지거나 안으로 수축됩니다.

1971년 중반, 윌리엄 "빌" 크라우스는 델타 [4]C라고 불리는 새로운 바코드를 발명했다.Delta B의 인치당 4배 문자 수를 달성했습니다.

Delta C는 균일한 잉크 확산의 영향을 받지 않는 선행 또는 후행 에지로만 유도하여 높은 성능을 달성했습니다.코드는 대부분의 문자 또는 가급적 모든 문자에 걸쳐 있는 고정된 기준 거리를 가진 정의된 문자 세트를 가지고 있을 때 최상의 성능을 제공합니다.

1971년 8월, Crouse는 스캐너 작업에 참여했습니다.몇 달이 지나도 그들은 아무런 진전이 없었다.그들은 단순한 직선 레이저 스캐너로 스캔할 수 있는 RCA 불스 아이 라벨을 알고 있었지만, 판독 가능한 라벨이 너무 컸다.

Litton Industries는 면적을 줄이기 위해 과녁 심볼을 반으로 자르자고 제안했지만 여전히 너무 크고 RCA 심볼과 동일한 잉크 얼룩 인쇄 문제를 야기했습니다.용장성과 체크 기능이 완전히 제거되었습니다.그들은 또한 세계의 많은 제안들을 알고 있었지만, 어느 것도 실현 가능하지 않았다.

바우마이스터 제안의 일반적인 특징을 보여주는 UPC 라벨

1972년 봄, 바우미스터는 돌파구를 발표했다.그는 한 번에 읽어야 하는 모든 막대의 거리보다 약간 긴 막대가 있는 레이블을 제안했다.이 라벨은 단순한 "X" 스캐너로 스캔할 수 있습니다.직선 레이저 스캐너보다 약간 복잡합니다.다음 날 Baumeister는 라벨을 두 동강 낼 경우 막대 길이를 거의 절반으로 줄일 수 있다고 제안했다.

이 두 가지 제안은 과녁의 중심에서 3분의 1과 6분의 1의 면적을 줄였다.오른쪽 이미지는 바우마이스터가 제안한 라벨입니다.그는 그것이 잘 이해되었기 때문에 구체적인 바코드를 명시하지 않았다.바코딩과 10자리 숫자를 제외하고 오늘 UPC 라벨은 그의 제안서입니다.그 직후 바우미스터는 RTP의 다른 지역으로 이동했다.

Laurer는 라벨의 세부사항을 정의하고 제안서를 작성했습니다.N.J. Woodland는 프로젝트의 기획자로 임명되었고 Laurer가 그의 제안서를 작성하는 것을 도왔다.

Laurer가 바코드를 사용한 첫 시도는 Delta B였습니다.그 결과 라벨 사이즈는 가로 6인치, 세로 3인치로 너무 컸습니다.Crouse는 Laurer가 자신의 Delta C 바코드를 사용할 것을 제안하고 샘플 영숫자 세트와 다른 크기의 알파벳을 생성하기 위한 규칙이 있는 특허 사본을 제공했습니다.이것에 의해, 라벨의 사이즈가 약 1.5 인치x 0.9 인치까지 감소했습니다.

나중에 Laurer는 스캐너가 라벨을 검출하는 방법에 대해 Crouse에게 도움을 요청했습니다.이들은 함께 가드바와 라벨을 검출하는 방법에 대한 정의를 정의했습니다.또한 가드바는 스캐너 임계값 회로의 하프 라벨 식별 및 트레이닝 바를 식별하기 위한 정보를 제공합니다.Laurer는 완전한 라벨 정의를 가지고 그의 [16]제안서를 작성하기 시작했습니다.

이전에 크라우스는 반지나 팔찌처럼 착용한 단순한 지팡이에 대한 아이디어를 가지고 있었다.그는 라벨을 [citation needed]시연하기 위해 그 지팡이를 개발하기로 결정했다.

1972년 12월 1일 IBM은 IBM이 스캐너를 개발할 장소인 미네소타 주 로체스터의 Super Market Committee에 Laurer의 제안을 제출했습니다.프레젠테이션을 하는 동안 Crouse는 실험실에서 반지 지팡이로 UPC와 같은 라벨을 읽는 시범을 보였습니다.그는 일반 라벨을 읽는 것 외에도 제안서 소책자에 있는 두 페이지짜리 큰 중앙 접이식 라벨을 읽었습니다.그리고 나서 그는 테이블 위에 놓여 있는 라벨이 붙은 물건의 사진을 보여주는 페이지를 넘겼다.인쇄된 사진의 해상도 때문에 라벨이 작고 흠집이 있었지만, 막대기는 많은 부분을 읽었습니다.이 시연은 순수 델타 C 코드의 견고성을 보여 줍니다.그 제안은 받아들여졌다.

한 달 후 1973년 1월 1일 Crouse는 IBM의 Advanced Technology 그룹으로 복귀했고, Laurer는 레이블에 대한 모든 책임을 떠맡았습니다.

핸드헬드 인쇄 장치 제조업체인 Dymo Industries는 제조사가 바코드를 부착하지 않으면 핸드헬드 인쇄 장치가 바코드를 제작할 수 있도록 코드를 [clarification needed]문자로 구분해야 한다고 주장했습니다.Dymo의 제안은 IBM에 의해 받아들여졌고 IBM의 최신 제안에 통합되었습니다.

라벨의 두 반쪽에는 서로 다른 숫자 세트가 있어야 한다고 결정되었습니다.Delta C 특허에서 파생된 문자 집합 Laurer는 두 개의 막대와 두 개의 공백이 인쇄되는 7개의 인쇄 가능한 증분 또는 단위를 사용했습니다.이 결과 20개의 문자 조합이 생성되었지만 델타 C 규칙에 따라 읽었을 때 쌍에 대해 동일한 코드가 생성된 쌍이 2개 있었습니다.

18자로는 부족했기 때문에 Laurer는 문자 집합에 한 단위를 추가하려고 했습니다.이 결과 26개의 델타 C 문자가 생성되어 2개의 10진수 문자를 제공할 수 있었지만 라벨의 폭과 높이에 14%가 추가되었습니다.면적이 30% 증가하거나 라벨이 1.7"x1.03"이 됩니다.Laurer는 이것이 용납될 수 없다고 느꼈다.

Laurer는 20자로 원래 문자 집합으로 돌아왔지만, 그 중 4개는 동일한 델타 C 판독값을 가진 두 쌍의 문자 집합이었습니다.그는 그것들을 모두 사용하기로 결정했다.쌍을 구별하기 위해 각 쌍의 막대 너비를 측정하여 서로 구별합니다.각 쌍에 대해 그 막대의 너비는 1~2유닛 또는 두유닛이 될 것이다.

라우러는 바우미스터 방정식을 이 세트에 적용하지 않았다.그는 막대 너비 한 개만 측정해도 그리 심각하지 않을 것이라고 느꼈다.두 배 이상의 면적을 늘리려면 폭과 높이를 50% 이상 늘려야 한다는 것이 밝혀졌습니다.Laurer는 나중에 각 세트에 포함된 이 4개의 문자가 대부분의 스캐너 읽기 오류의 원인이라는 것을 인정했습니다.

수학자인 데이비드 사비르는 이 기호가 인쇄될 수 있고 신뢰성 요건을 충족할 수 있다는 것을 증명하는 임무를 맡았으며 바우미스터의 방정식을 몰랐을 가능성이 높다.그와 Laurer는 오류 수정 및 탐지를 위해 10자리 숫자에 두 자리를 더 추가했습니다.

그런 다음 각 면에 막대로 채워진 단위 수에 홀수/짝수 패리티를 추가하기로 결정했습니다.홀수/짝수 패리티는 비트스트림에서 홀수 수의 비트오류를 검출하기 위해 사용되는 기술입니다.그들은 한쪽은 홀수, 다른 한쪽은 홀수 사용하기로 결정했다.이를 통해 어떤 하프티켓을 읽고 있는지 추가로 알 수 있습니다.즉, 모든 막대 너비를 정확하게 읽어야 판독이 가능했습니다.그것은 또한 모든 공간이 알려질 것이라는 것을 의미했다.

모든 비트 폭을 정확하게 읽도록 요구하면 기본적으로 델타 C 기준 측정을 제외하고 델타 C의 이점이 무효화됩니다.이상한 문자 집합과 라벨 크기만 Delta C 코드의 그림자로 남아 있습니다.크기는 순수 델타 C에 대해 계산된 그대로였습니다.필요한 막대 폭 측정을 고려하여 라벨 크기를 올바르게 재계산했다면 라벨이 너무 커서 허용할 수 없었을 것입니다.

기계 공학 및 전자 회로 설계에는 일반적으로 알려진 공차를 사용하는 최악의 경우 설계가 필요합니다.바코드로 작업하는 많은 엔지니어들은 그러한 것에 대한 경험이 거의 없었고 다소 직관적인 방법을 사용했다.이것이 Delta B 코드의 성능 저하와 RCA의 Bull's Eye 스캐너 장애의 원인입니다.

다음 표는 1970년대 초에 사용 가능했던 라벨과 그 크기를 보여줍니다.

라벨 타입 라벨 치수 지역
모스 부호가 있는 불스 아이 큰. 큰.
Delta B의 Bull's Eye 12.0인치(300mm) 직경 113.10 인치2 (729.7 cm2)
Delta A의 Bull's Eye 9.0인치(230mm) 직경 63.62 인치2 (132.5 cm2)
바우마이스터 1차 델타 B 포함 6.0인치×5.8인치(150mm×150mm) 34.802 인치 (224.5 cm2)
Baumeister 2 하프 (델타 B 포함) 6.0 인치 × 3.0 인치 (125 mm × 76 mm) 18.00 인치2 (182.1 cm2)
Baumeister 2 하프(델타 A 포함 4.5인치 × 2.3인치 (120mm × 58mm) 10.35인치2(66.8cm2)
Delta C가 있는 바우미스터 1.5인치×0.9인치(38mm×23mm) 1.35 인치2 (82.7 cm)

이는 동일한 정보와 신뢰할 수 있는 가독성을 가진 과녁의 중심을 가정한 것입니다.

구성.

각 UPC-A 바코드는 스캔 가능한 검은색 막대 스트립과 12자리 숫자 위의 공백으로 구성됩니다.UPC-A 바코드에 어떠한 문자, 문자 또는 기타 내용도 표시할 수 없습니다.12자리 숫자와 검은색 막대 및 공백 스트립 사이에는 일대일 대응이 있습니다. 즉, 각 12자리 숫자를 시각적으로 표현하는 방법은 하나뿐이며 검은색 막대 및 공백의 각 스트립을 숫자로 표현하는 방법은 하나뿐입니다.

모든 UPC-A 바코드의 스캔 가능 영역은 SLLLLLLLRRE 패턴을 따릅니다.여기서 S(시작), M(중간) 및 E(끝) 가드 패턴은 모든 UPC-A 바코드에서 동일하게 표현되며 L(왼쪽)과 R(오른쪽)은 각각 12C의 숫자를 나타냅니다.첫 번째 숫자 L은 다음 숫자가 사용하는 특정 번호 시스템을 나타냅니다.마지막 자리 R은 오류 감지 체크 자리입니다. 이를 통해 검색 또는 수동 입력 시 일부 오류를 감지할 수 있습니다.가드 패턴은 6자리 숫자로 이루어진2개의 그룹을 구분하여 타이밍을 설정합니다.

UPC-A UPC-E
UPC-A.png UPC-E.png

UPC-A 042100005264는 UPC-A 번호 시스템0 및 UPC-A 체크 디짓4에 의해 정의되는 "EOEOO" 패리티 패턴을 가진 UPC-E 425261과 동일합니다.

포맷

UPC-A 바코드는 다양한 밀도로 인쇄하여 다양한 인쇄 및 스캔 프로세스를 수용할 수 있습니다.유의한 치수 파라미터를 x차원(단일 모듈 요소의 폭)이라고 합니다.각 막대(공간)의 폭은 x 차원과 각 막대(공간)의 모듈 폭(1, 2, 3, 또는 4 단위)을 곱하여 결정됩니다.가드 패턴은 각각 2개의 막대를 포함하고 UPC-A 바코드의 각 12자리 숫자가 2개의 막대와 2개의 공백으로 구성되므로 모든 UPC-A 바코드는 정확히 (3 × 2) + (12 × 2) = 30개의 막대로 구성됩니다. 이 중 6은 가드 패턴을 나타내고 24는 숫자를 나타냅니다.

공칭 크기에서 UPC-A의 x 치수는 0.33mm(0.013인치)입니다.UPC-A의 공칭 기호 높이는 25.9mm(1.02인치)입니다.S(시작), M(중간), E(끝) 가드 패턴을 형성하는 바는 x 치수의 5배만큼 아래로 확장되며 결과적으로 공칭 기호 높이는 27.55mm(1.08인치)입니다.이는 UPC-A 바코드의 첫 번째 및 마지막 숫자의 막대에도 적용됩니다.UPC-A는 80%에서 200%까지 축소 또는 확대할 수 있습니다.

UPC-A [17][18]바코드의 스캔 가능 영역 양쪽에 x 치수의 9배 이상의 폭을 가진 조용한 영역이 있어야 합니다.UPC-A 바코드로 인코딩된 GTIN-12 번호의 경우 UPC 바코드 스캐너가 올바르게 동작하기 위해 필요한 대기 영역을 나타내기 위해 사람이 판독할 수 있는 해석의 첫 번째 및 마지막 자리는 항상 기호 외부에 배치됩니다.

부호화

UPC-A 바코드는 UPC-A 12자리 번호를 인코딩하는 줄과 공백으로 시각적으로 표시됩니다.각 자릿수는 2개의 막대와 2개의 공백으로 이루어진 고유한 패턴으로 나타납니다.막대 및 공간은 가변 폭(1, 2, 3, 또는 4 모듈 폭)입니다.숫자의 총 너비는 항상 7 모듈입니다. 따라서 UPC-A 12자리 숫자는 총 7×12 = 84 모듈이 필요합니다.

완전한 UPC-A의 폭은 95 모듈입니다.디짓트(L 및 R 섹션)의 경우 84 모듈과 S(시작), M(중간), E(끝)의 가드 패턴의 경우 11개의 모듈을 조합합니다.S(시작) 및 E(끝) 가드 패턴은 너비가 3 모듈이며 패턴 바-스페이스 바를 사용합니다.각 바 및 공간은 1 모듈 너비가 됩니다.M(중간) 가드 패턴은 폭이 5 모듈이며 패턴 space-bar-space-bar-space-space를 사용합니다.여기서 각 바 및 공간은 1개의 모듈 폭이기도 합니다.또한 UPC-A 기호는 S(시작) 전 및 E(끝) 가드 패턴 후에 조용한 존(폭 9 모듈 추가 공간)이 필요합니다.

UPC-A 바코드 패턴 SLLLLLLLRRRE 인코딩 테이블
조용히해.
구역
S
(시작)
L
(왼쪽 숫자)
M
(중간)
R
(오른쪽 숫자)
E
(종료)
조용히해.
구역
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A S.svg UPC-A Q.svg

UPC-A의 좌측 디짓(M(중간) 가드 패턴의 좌측 디짓)에는 홀수 패리티가 있습니다.즉, 검은색 막대의 총 폭은 홀수 모듈 수입니다.반대로 오른쪽 자리에는 짝수 패리티가 있습니다.이것에 의해, UPC 스캐너는, 심볼을 왼쪽에서 오른쪽으로 스캔 하고 있는지, 오른쪽에서 왼쪽으로 스캔 하고 있는지를 판별할 수 있다(심볼은 거꾸로 되어 있다).S(시작) 또는 E(끝) 가드 패턴(읽는 방향과 막대 공간 막대가 같음)을 확인한 후, 스캐너는 먼저 홀수 패리티 디짓(왼쪽에서 오른쪽으로 스캔하는 경우), 오른쪽에서 왼쪽으로 스캔하면 패리티 숫자를 볼 수 있는 패리티 디짓(오른쪽에서 왼쪽으로 스캔하면 패리티 디짓)을 확인합니다.패리티/방향 정보를 사용하면 거꾸로 된 기호가 스캐너에 혼란을 주지 않습니다.거꾸로 된 기호를 대면 스캐너가 이를 무시하거나(많은 스캐너가 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 스캔을 번갈아 실행하므로 이후 패스로 기호를 읽을 수 있습니다) 숫자를 인식하여 올바른 순서로 배치할 수 있습니다.숫자 인코딩에 다른 속성이 있습니다.오른쪽 숫자는 왼쪽 숫자의 광학 역수입니다. 즉, 검은색 막대가 공백으로 변환되고 그 반대도 마찬가지입니다.예를 들어 왼쪽 '4'는 공간×1 - 막대×1 - 공간×3 - 막대×2이고 오른쪽 '4'는 막대×1 - 공간×1 - 막대×3 - 공간×2이다.

번호부여

UPC-A 및 UPC-E 바코드의 수는 작성에 사용되는 표준에 따라 제한됩니다.

UPC-A: (왼쪽 자리당 10개의 가능한 값 ^ 6개의 왼쪽 자리) × (오른쪽 자리당 10개의 가능한 값 ^ 5개의 오른쪽 자리) = 100,000,000.
UPC-E: (숫자당 10개의 가능한 값 ^ 6자리) × (UPC-E 번호당 2개의 가능한 패리티 패턴) = 2,000,000.

번호 시스템 번호

다음으로 대응하는 12자리 UPC-A 번호 스키마 LLLLLLRRRR을 가진 가능한 모든 번호 시스템에 대해 설명합니다.여기서 L은 번호 시스템 디짓트, R 체크 디짓트를 나타냅니다.

0–1, 6–9
대부분의 제품.LLLLL 번호는 제조원 코드(로컬 GS1 조직에 의해 할당됨)이며, RRR 번호는 제품 코드입니다.
2
현지 사용(점포/창고), 가변 중량으로 판매되는 품목에 대해 예약되어 있습니다.고기, 신선한 과일 또는 야채와 같은 가변 무게의 품목은 포장되어 있는 경우 상점에 따라 품목 번호가 할당됩니다.이 경우, LLLLL은 아이템 번호이며, RRRR은 중량 또는 가격 중 하나입니다.첫 번째 R은 어느 것을(무게의 경우 0)으로 할지를 결정합니다.
3
NDC(National Drug Code) 번호에 따른 약물.미국의 제약회사들은 NDC 번호로 UPC의 가운데 10자리를 사용한다.일반적으로 판매 시점에 시판되는 의약품만 스캔되지만, NDC 기반 UPC는 처방전 의약품 패키지와 수술 제품에 사용되며, 이 경우 일반적으로 UPN [19]코드라고 불린다.
4
로컬(스토어/창고)용으로 예약되어 있으며, 종종 로열티 카드 또는 스토어 쿠폰용으로 예약되어 있습니다.
5
쿠폰.LLLLL 디짓은 제품의 UPC 프리픽스의 2~6자리 숫자입니다.다음 3개의 RRR은 패밀리코드(제조업체에서 설정 또는 쿠폰 클리어 하우스에서 제공), 다음 2개의 RR은 값 코드(GS1 값 코드 테이블에 따라)로 할인 금액을 결정합니다.이 쿠폰들은 두 배나 세 [20]배 정도 될 수 있다.

자릿수계산확인

UPC에는 일반적인 데이터 입력 오류를 검출하기 위한 체크 디짓이 포함되어 있습니다.예를 들어 UPC-A 코드는 체크 선택하여 체크 디짓 방정식을 충족시킵니다.

입력된 코드가 방정식을 충족하지 못하면 유효한 UPC-A가 아닙니다.

UPC-A 체크 디짓은 다음과 같이 계산할 수 있습니다.

  1. 홀수 위치(첫 번째, 세 번째, 다섯 번째, 열한 번째)의 숫자를 합합니다.
  2. 그 결과에 3을 곱하시오.
  3. 짝수 위치(2, 4, 6..., 10)의 자리 합계를 결과에 더합니다.
  4. 결과 모듈로 10(즉, 10으로 나누었을 때 나머지를)을 찾아 M이라고 합니다.
  5. M이 0일 경우 체크 디짓은 0이고 그렇지 않을 경우 체크 디짓10 - M입니다.

예를 들어 UPC-A 바코드 "03600029145x12"에서12 x12 다음 방법으로 계산할 수 있습니다.

  1. 홀수 자리(0 + 6 + 0 + 2 + 1 + 5 = 14)를 합산합니다.
  2. 결과에 3을 곱한다(14 × 3 = 42).
  3. 짝수 자리(42 + (3 + 0 + 0 + 0 + 9 + 4) = 58)를 더합니다.
  4. 결과 모듈로 10(58 mod 10 = 8 = M)을 구합니다.
  5. M이 0이 아니면 10에서 M을 뺍니다(10 - M = 10 - 8 = 2).

따라서 체크 디짓x12 는 2 입니다.

체크 디짓 방정식은 적절한 오류 검출 속성을 가지도록 선택됩니다(Luhn 알고리즘 참조).

  • UPC-A는, 1 자리수의 에러를 100% 검출할 수 있습니다.
    한 자리 오류는 정확히 한 자리가 잘못되었음을 의미합니다.잘못된 숫자와 올바른 숫자의 차이 모듈로 10을 d로 합니다.d의 값은 0일 수 없습니다.이 값은 숫자가 같기 때문입니다.단, d는 {1, 2, 3, 4, 5, 6, 7, 8, 9}의 다른 값일 수 있습니다.오차 자릿수가 홀수 위치(무게 1)일 경우 체크 자릿수 방정식의 왼쪽이 d만큼 변화하고 등가성이 0이 아니다.오차 자릿수가 짝수 위치(무게 3)일 경우 좌측은 3d 변화하지만 그 변화도 0이 아닌 모듈로 10이므로 체크 자릿수 방정식이 충족되지 않는다.
  • UPC-A는 약 89%의 전위 오류를 검출할 수 있습니다.특히 인접한 두 자리수의 차이가 5일 경우에만 UPC-A는 전이를 검출할 수 없습니다.
    1. 인접한 2자리 숫자가 전치되는 경우 숫자 a 중 하나에 1의 가중치가 부여되고 다른 숫자 b = a + d에 3의 가중치가 부여됩니다. 여기서 d는 두 자리 사이의 차이입니다.숫자가 올바른 순서로 정렬되어 있다면, 그들은 다음과 같은 역할을 할 것이다.
      체크 디짓 방정식의 왼쪽에 표시됩니다.전치된 순서대로, 그들은
      b + a a + ( + ) a + \ b + 3 a =a + ( + d ) = a +}
      LHS에 접속합니다.두 기여도를 빼면 LHS가 얼마나 변화하는지 알 수 있습니다.
      모듈러 변경이 0이 아닌 한 오류가 검출됩니다.2d 0 0 modulo 10일 경우 변경은 검출되지 않습니다.그 결과, 문자차 d 5 5 의 경우에만 에러가 검출되지 않습니다(d 0 0 의 경우, 퇴화 「전송」은 에러가 아닙니다).
    2. 다음으로 전치의 거리 d가 5인 빈도를 생각해 보겠습니다.
다음 표는 UPC-A 바코드의 d-transitions 표입니다. { 0,, , ... , 9 : \ d \ in \ { , , 2 , \ldots , 9 \} }
UPC-A 바코드의 d-트랜스포지션 표
d
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
3 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9
4 3 3 3 4 3 5 3 6 3 7 3 8 3 9
5 4 4 4 5 4 6 4 7 4 8 4 9
6 5 5 5 6 5 7 5 8 5 9
7 6 6 6 7 6 8 6 9
8 7 7 7 8 7 9
9 8 8 8 9
10 9 9
10 18 16 14 12 10 8 6 4 2
합계는 d-전위 수를 포함하므로 검출 불가능한 전위 오류의 비율은 다음과 같습니다(여기서 d = 0인 경우 변환).

바리에이션

UPC는 기술적으로 UPC-A라고 불립니다.

다른 변종 UPC가 존재합니다.

  • UPC-B는 체크 디짓이 없는 UPC의 12자리 버전으로 NDC(National Drug Code) 및 National Health Related Items [21][failed verification]Code용으로 개발되었습니다.11자리 숫자와 1자리 제품 코드가 있으며,[22] 일반적으로 사용되지 않습니다.
  • UPC-C는 제품 코드와 체크 디짓이 있는 12자리 코드입니다.일반적으로 [22]사용되지 않습니다.
  • UPC-D는 가변 길이 코드(12자리 이상)로, 12번째 자리는 체크 디짓트입니다.이러한 버전은 일반적으로 사용되지 않습니다.
  • UPC-E는 6자리 코드로, UPC-A 12자리 코드에 상당하는 번호 체계를 0 또는 1로 나타냅니다.
  • UPC-2는 잡지 또는 정기 간행물의 판을 나타내기 위해 사용되는 UPC의 2자리 보충판입니다.
  • UPC-5는 UPC의 5자리 보충판입니다.책의 권장 소매가를 나타내기 위해 사용됩니다.

UPC-E

UPC 바코드를 12자리 바코드가 들어가지 않는 작은 패키지에 사용할 수 있도록 UPC-E라는 제로 억제 버전이 개발되었습니다.UPC-E에서는 시스템 번호, 제조원 코드의 모든 후행 0 및 제품 코드의 모든 선행 0이 억제됩니다( [23]생략됩니다).이 심볼은 6자리 코드만 사용하고 M(중간) 가드 패턴을 사용하지 않으며 E(끝) 가드 패턴이 스페이스-바-스페이스-바로서 형성된다는 점에서 UPC-A와 다릅니다.즉, UPC-E 바코드는 SDDDDDE 패턴을 따릅니다.6 자리수의 UPC-E 와 12 자리수의 UPC-A 의 관련성은, UPC-E 수치 패턴과 UPC-E 패리티 패턴에 의해서 결정됩니다.이 값은 UPC-A 번호 시스템0 또는 1에만 대응합니다.UPC-A 체크 디짓과 함께 UPC-E 패리티 패턴을 결정합니다.제조업체 코드 번호는 M으로 표시되고 제품 코드 번호는 P로 표시됩니다.

마지막 UPC-E 자리 UPC-E 수치 패턴 UPC-A 상당량 사용 가능한 제품 번호
0 MMPPP0 0 또는 1 + MM000-00PP + 체크 디짓 PPP = 000-999
1 MMPPP1 0 또는 1 + MM100-00PP + 체크 디짓 PPP = 000-999
2 MMPPP2 0 또는 1 + MM200-00PP + 체크 디짓 PPP = 000-999
3 MMPP3 0 또는 1 + MM00-000PP + 체크 디짓 PP = 00-99
4 MMMP4 0 또는 1 + MMM0-0000P + 체크 디짓 P = 0 ~9
5 MMM5 0 또는 1 + MMM-00005 + 체크 디짓 5 = P
6 MMM6 0 또는 1 + MMM-00006 + 체크 디짓 6 = P
7 MMM7 0 또는 1 + MMM-00007 + 체크 디짓 7 = P
8 MMM8 0 또는 1 + MMM-00008 + 체크 디짓 8 = P
9 MMM9 0 또는 1 + MMM-00009 + 체크 디짓 9 = P

예를 들어, UPC-E 654321은, 부호화된 디지트의 UPC-E 패리티 패턴에 따라, UPC-A 065100004327 또는 165100004324 에 대응하는 경우가 있습니다.

UPC-A
체크 디짓
UPC-A의 UPC-E 패리티 패턴

번호 체계 0

UPC-A의 UPC-E 패리티 패턴

번호계 1

0 으으으으 OOOEE
1 이오 OOEE
2 이우오 OOE
3 이우오 OOEO
4 이우 오우이
5 EOOEO 오우
6 이OOE 오우우
7 EOOEO 오에오에
8 EOOE OOEEO
9 이오 OEEO
UPC-E 바코드 패턴 SDDDDDE 인코딩 테이블
S
(시작)
O
(홀수 패리티 디짓)
E
(짝수 패리티 자리)
E
(종료)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-E S.svg UPC-E 0ow.svg
3-2-1-1
UPC-E 1ow.svg
2-2-2-1
UPC-E 2ow.svg
2-1-2-2
UPC-E 3ow.svg
1-4-1-1
UPC-E 4ow.svg
1-1-3-2
UPC-E 5ow.svg
1-2-3-1
UPC-E 6ow.svg
1-1-1-4
UPC-E 7ow.svg
1-3-1-2
UPC-E 8ow.svg
1-2-1-3
UPC-E 9ow.svg
3-1-1-2
UPC-E 0ew.svg
1-1-2-3
UPC-E 1ew.svg
1-2-2-2
UPC-E 2ew.svg
2-2-1-2
UPC-E 3ew.svg
1-1-4-1
UPC-E 4ew.svg
2-3-1-1
UPC-E 5ew.svg
1-3-2-1
UPC-E 6ew.svg
4-1-1-1
UPC-E 7ew.svg
2-1-3-1
UPC-E 8ew.svg
3-1-2-1
UPC-E 9ew.svg
2-1-1-3
UPC-E E.svg

"EOEOEO" 패리티 패턴(UPC-A 065100004327)을 사용하는 UPC-E 654321은 다음과 같이 인코딩됩니다.

1-1-1 4-1-1-1 1-2-3-1 2-3-1-1 1-4-1-1 2-2-1-2 2-2-2-1 1-1-1-1-1-1.

바코드는 다음과 같습니다.

UPC-E-654321.png

EAN-13

EAN-13은 UPC-A의 슈퍼셋으로 개발되었으며 모든 UPC-A 번호의 선두에 추가 숫자가 추가되었습니다.이를 통해 이론적으로 가능한 고유값의 수가 10배 증가한 1조개가 되었습니다.또한 EAN-13 바코드는 제품을 판매하는 회사가 소재하는 국가(상품이 제조되는 국가와 동일하거나 동일하지 않을 수 있음)를 나타냅니다.GS1 국가 코드에 따라 코드의 선두 3자리가 이를 결정합니다.모든 UPC-A 코드는 UPC-A 코드에 0자리 숫자를 부가함으로써 동등한 EAN-13 코드로 쉽게 변환할 수 있습니다.이 경우에도 체크 디짓은 변경되지 않습니다.이제 모든 POS(Point-of-Sale) 시스템이 두 시스템을 동등하게 이해할 수 있습니다.

EAN-8은 EAN 바코드의 8자리 변형입니다.

UPC 사용상의 주의:

  • EAN 마크가 붙어 있는 모든 제품은 현재 북미에서는 UPC 마크가 붙어 있는 것 외에 모두 사용할 수 있습니다.
  • 기존 UPC가 있는 제품은 EAN으로 다시 표시할 필요가 없습니다.
  • 북미에서는 주로 UPC 번호00 ~ 09 에 10 ~12 의 숫자를 추가하는 것으로써, EAN 는 코드를 30% 더 추가합니다.이것은 UPC를 단계적으로 폐지하기 위한 강력한 인센티브입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "GS1 BARCODE CHART". GS1 US. April 3, 2013.
  2. ^ Basker, Emek; Simcoe, Timothy (2021). "Upstream, Downstream: Diffusion and Impacts of the Universal Product Code". Journal of Political Economy. 129 (4): 1252–1286. doi:10.1086/712762. ISSN 0022-3808. S2CID 229505646.
  3. ^ 미국 특허 2612994, Woodland, Norman J. & Silver, Bernard, "Classifying Device and Method", 1952년 10월 7일 발행
  4. ^ a b "UPC - The Transformation of Retail". IBM. March 7, 2012. Retrieved November 12, 2021.
  5. ^ "A Brief History of the Bar Code". Esquire. 153 (3): 42. March 2010. Archived from the original on June 1, 2016.
  6. ^ "Our innovative history – McKinsey firsts". mckinsey.com. 2013. Archived from the original on October 12, 2013. (슬라이드 10/18 참조)
  7. ^ Nelson, Benjamin (1997). Punched Cards to Bar Codes: A 200 Year Journey with Descriptions of over 260 Codes. Peterborough, N.H.: Helmers Publishing. ISBN 978-091126112-7.
  8. ^ Alfred, Randy (June 26, 2008). "June 26, 1974: By Gum! There's a New Way to Buy Gum". Wired. Archived from the original on August 24, 2010.
  9. ^ Heller, Nathan. "Scanning Species". Harvard Magazine. September–October 2005.
  10. ^ "The History of the Bar Code". Smithsonian. September 23, 2015. Retrieved August 12, 2021.
  11. ^ "Oral-History: Murray Eden - Engineering and Technology History Wiki". ethw.org. November 10, 1999. Retrieved January 4, 2021.
  12. ^ National Commission on Productivity and Work Quality (1975). Technology Applied to the Food Industry: A Preliminary Report. p. 15.
  13. ^ Haberman, Alan L. (2001). Twenty-Five Years Behind Bars: The Proceedings of the Twenty-Fifth Anniversary of the U.P.C. at the Smithsonian Institution, September 30, 1999. Harvard University Wertheim Publications Committee. pp. 74, 108. ISBN 978-0-674-00657-7.
  14. ^ Casanova, Stephanie. "Murray Eden, a biomedical engineer with a love of singing, dies in Tucson at 99". Arizona Daily Star. Retrieved January 14, 2021.
  15. ^ Roth, Brad (April 17, 2020). "Murray Eden". Medium. Retrieved January 14, 2021.
  16. ^ "Alumni Hall Of Fame Members". University of Maryland Alumni Association. The University of Maryland. 2005. Archived from the original on June 23, 2007. Retrieved June 10, 2009. After graduating from Maryland in 1951, George Laurer joined IBM as a junior engineer and worked up the ranks to senior engineer. In 1969, he returned to the technical side of engineering and was later assigned the monumental task of designing a code and symbol for product identification for the Uniform Grocery Product Code Council. His solution—the Universal Product Code—radically changed the retail world. Since then, he has enhanced the code by adding a 13th digit.
  17. ^ rainman_63 (April 6, 2005). "Drawing UPC-A Barcodes with C#". codeproject.com.
  18. ^ UPC Symbol Specification Manual. Uniform Code Council. 1986.
  19. ^ "Barcodes for Pharmaceuticals and Surgical Products". SimplyBarcodes.com.
  20. ^ "Barcodes for Coupons". SimplyBarcodes.com.
  21. ^ "NHRIC (National Health Related Items Code)". HealthData. U.S. Department of Health & Human Services.
  22. ^ a b "Bar Code 1: A Web Of Information About Bar Code UPC and EAN Bar Code Page". Adams Communications. June 20, 2013.
  23. ^ "UPC-A Symbology – UPC-E background information and UPC-A to UPC-E conversion". barcodeisland.com. Retrieved January 21, 2013.

추가 정보

  • US 3832686, Bilgutay, Ilhan M., "Bar Code Font", 1972년 5월 11일 발행, 1974년 8월 27일 발행
  • US 3145291, Brainerd, H. B., 1959년 7월 2일 발행된 "식별 시스템"은 1964년 4월 18일 철도 바코드를 발행했습니다.
  • US 3617707, Shields, Charles B. & Stapelfeldt, Roelif, "자동 자동차 식별 시스템", 1967년 8월 17일 발행, 1971년 11월 2일 발행
  • US 3723710, Crouse, William G. & Jones, John E., 1971년 6월 28일 발행, 1973년 3월 27일 발행.

외부 링크