Matriz de dados - Data Matrix

Um exemplo de código Data Matrix, codificando o texto: "Wikipedia, a enciclopédia livre"

Uma Data Matrix é um código bidimensional que consiste em "células" pretas e brancas ou pontos dispostos em um padrão quadrado ou retangular , também conhecido como matriz . As informações a serem codificadas podem ser texto ou dados numéricos. O tamanho normal dos dados é de alguns bytes até 1556 bytes . O comprimento dos dados codificados depende do número de células na matriz. Os códigos de correção de erros são freqüentemente usados ​​para aumentar a confiabilidade: mesmo se uma ou mais células estiverem danificadas e ilegíveis, a mensagem ainda poderá ser lida. Um símbolo Data Matrix pode armazenar até 2.335 caracteres alfanuméricos .

Os símbolos Data Matrix são retangulares, geralmente de formato quadrado e compostos de "células" quadradas que representam bits . Dependendo da codificação usada, uma célula "clara" representa um 0 e uma célula "escura" é um 1, ou vice-versa. Cada Data Matrix é composta por duas bordas adjacentes sólidas em forma de "L" (chamado de "padrão de localização") e duas outras bordas consistindo em "células" ou módulos alternados de luz e escuridão (chamado de "padrão de tempo"). Dentro dessas bordas estão linhas e colunas de células que codificam informações. O padrão localizador é usado para localizar e orientar o símbolo, enquanto o padrão de tempo fornece uma contagem do número de linhas e colunas no símbolo. À medida que mais dados são codificados no símbolo, o número de células (linhas e colunas) aumenta. Cada código é único. Os tamanhos dos símbolos variam de 10 × 10 a 144 × 144 na nova versão ECC 200 e de 9 × 9 a 49 × 49 na versão antiga ECC 000 - 140.

Formulários

Uma matriz de dados em uma placa Mini PCI , codificando o número de série 15C06E115AZC72983004

O aplicativo mais popular para Data Matrix é a marcação de itens pequenos, devido à capacidade do código de codificar cinquenta caracteres em um símbolo que é legível a 2 ou 3 mm 2 (0,003 ou 0,005 pol²) e ao fato de que o código pode ser lido com apenas uma taxa de contraste de 20%. Uma matriz de dados é escalonável; existem aplicações comerciais com imagens tão pequenas quanto 300 micrômetros (0,012 pol.) (gravadas a laser em um dispositivo de silício de 600 micrômetros (0,024 pol.)) e tão grandes quanto um quadrado de 1 metro (3 pés) (pintado no teto de um vagão ) . A fidelidade dos sistemas de marcação e leitura é a única limitação. A US Electronic Industries Alliance (EIA) recomenda o uso do Data Matrix para etiquetar pequenos componentes eletrônicos.

Os códigos Data Matrix estão se tornando comuns na mídia impressa, como etiquetas e cartas. O código pode ser lido rapidamente por um leitor de código de barras que permite que a mídia seja rastreada, por exemplo, quando um pacote foi despachado para o destinatário.

Superfícies de marcação

Para fins de engenharia industrial, os códigos Data Matrix podem ser marcados diretamente nos componentes, garantindo que apenas o componente pretendido seja identificado com os dados codificados por matriz de dados. Os códigos podem ser marcados em componentes com vários métodos, mas dentro da indústria aeroespacial eles são comumente jato de tinta industrial, marcação por ponto, marcação a laser e corrosão química eletrolítica (ECE). Esses métodos fornecem uma marca permanente que pode durar até a vida útil do componente.

Os códigos Data Matrix são geralmente verificados usando software e equipamento de câmera especializado. Essa verificação garante que o código está em conformidade com os padrões relevantes e garante a legibilidade durante a vida útil do componente. Depois que o componente entra em serviço, o código Data Matrix pode ser lido por uma câmera leitora, que decodifica os dados Data Matrix que podem ser usados ​​para diversos fins, como rastreamento de movimento ou verificação de estoque.

Leitura do código Data Matrix com telefone celular ( projeto Semacode )

Os códigos Data Matrix, junto com outros códigos de fonte aberta, como os códigos de barras 1D, também podem ser lidos em telefones celulares por meio do download de aplicativos para celular específicos de código. Embora muitos dispositivos móveis sejam capazes de ler códigos 2D, incluindo Data Matrix Code, poucos estendem a decodificação para permitir o acesso móvel e interação, após o que os códigos podem ser usados ​​com segurança e em toda a mídia; por exemplo, em soluções de rastreamento e rastreamento, antifalsificação, por exemplo, e soluções bancárias.

Indústria alimentícia

Os códigos Data Matrix são usados ​​na indústria de alimentos em sistemas de autocoding para evitar que os produtos alimentícios sejam embalados e datados incorretamente. Os códigos são mantidos internamente em um banco de dados de fabricantes de alimentos e associados a cada produto exclusivo, por exemplo, variações de ingredientes. Para cada produto executado, o código exclusivo é fornecido à impressora. A arte da etiqueta é necessária para permitir que a matriz de dados 2D seja posicionada para uma digitalização ideal. Para códigos em preto e branco, o teste não é necessário, a menos que a qualidade de impressão seja um problema, mas todas as variações de cores precisam ser testadas antes da produção para garantir que sejam legíveis.

Arte

Em maio de 2006, um programador de computador alemão, Bernd Hopfengärtner, criou uma grande matriz de dados em um campo de trigo (de forma semelhante aos círculos nas plantações ). A mensagem dizia " Olá, mundo! ". Em junho de 2011, o tatuador parisiense KARL, como parte de uma promoção para o whisky escocês Ballantine , criou a primeira tatuagem animada do mundo utilizando um código Data Matrix em um processo colaborativo transmitido ao vivo no Facebook.

Especificações técnicas

Um exemplo de código Data Matrix, codificando o texto: "Wikipedia" colorido para mostrar os dados (verde), preenchimento (amarelo), correção de erros (vermelho), localizador e tempo (magenta) e não utilizado (laranja).

Os símbolos Data Matrix são compostos de módulos dispostos em um localizador de perímetro e um padrão de temporização. Ele pode codificar até 3.116 caracteres de todo o conjunto de caracteres ASCII (com extensões). O símbolo consiste em regiões de dados que contêm módulos definidos em uma matriz regular. Os símbolos grandes contêm várias regiões. Cada região de dados é delimitada por um padrão de localização, e isso é cercado em todos os quatro lados por uma borda de zona silenciosa (margem). (Observação: os módulos podem ser redondos ou quadrados - nenhuma forma específica é definida no padrão. Por exemplo, células pontilhadas geralmente são redondas.)

Data Matrix ECC 200

ECC 200, a versão mais recente do Data Matrix, usa códigos Reed – Solomon para erros e recuperação de apagamento. O ECC 200 permite a reconstrução de rotina de toda a sequência de dados codificados quando o símbolo sofreu 30% de dano, assumindo que a matriz ainda pode ser localizada com precisão. Data Matrix tem uma taxa de erro de menos de 1 em 10 milhões de caracteres digitalizados.

Os símbolos têm um número par de linhas e um número par de colunas. A maioria dos símbolos é quadrada com tamanhos de 10 × 10 a 144 × 144. Alguns símbolos, entretanto, são retangulares com tamanhos de 8 × 18 a 16 × 48 (apenas valores pares). Todos os símbolos que usam a correção de erros ECC 200 podem ser reconhecidos pelo módulo do canto superior direito sendo a mesma cor de fundo. (binário 0).

Recursos adicionais que diferenciam os símbolos ECC 200 dos padrões anteriores incluem:

  • Símbolos de leitura inversa (imagens claras em um fundo escuro)
  • Especificação do conjunto de caracteres (por meio de interpretações de canal estendido )
  • Símbolos retangulares
  • Anexo estruturado (vinculação de até 16 símbolos para codificar grandes quantidades de dados)

Data Matrix ECC 000-140

As versões mais antigas do Data Matrix incluem ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Em vez de usar códigos Reed-Solomon como ECC 200, ECC 000-140, use uma correção de erro baseada em convolução. Cada um varia na quantidade de correção de erros que oferece, sendo que o ECC 000 não oferece nenhum e o ECC 140 oferece o maior. Para detecção de erros no momento da decodificação, mesmo no caso de ECC 000, cada uma dessas versões também codifica uma Verificação de Redundância Cíclica (CRC) no padrão de bits. Como medida adicional, o posicionamento de cada bit no código é determinado pelas tabelas de posicionamento de bits incluídas na especificação. Essas versões mais antigas sempre têm um número ímpar de módulos e podem ser feitas em tamanhos que variam de 9 × 9 a 49 × 49. Todos os símbolos que utilizam a correção de erros ECC 000 a 140 podem ser reconhecidos pelo módulo do canto superior direito sendo o inverso da cor de fundo. (binário 1).

De acordo com a ISO / IEC 16022, "ECC 000-140 só deve ser usado em aplicações fechadas onde uma única parte controla a produção e a leitura dos símbolos e é responsável pelo desempenho geral do sistema."

Padrões

Data Matrix foi inventado pela International Data Matrix, Inc. (ID Matrix) que foi fundida em RVSI / Acuity CiMatrix , que foi adquirida pela Siemens AG em outubro de 2005 e Microscan Systems em setembro de 2008. Data Matrix é coberto hoje por vários ISO / IEC padrões e é de domínio público para muitos aplicativos, o que significa que pode ser usado sem qualquer licenciamento ou royalties.

  • ISO / IEC 16022: 2006 - especificação de simbologia de código de barras Data Matrix
  • Padrão de qualidade de impressão ISO / IEC 15415—2-D
  • ISO / IEC 15418: 2016 - Semântica de formato de dados de símbolo ( identificadores de aplicativo GS1 e identificadores de dados ASC MH10 e manutenção)
  • ISO / IEC 15424: 2008 - Identificadores de portadora de dados (incluindo identificadores de simbologia) [IDs para distinguir diferentes tipos de código de barras]
  • ISO / IEC 15434: 2006 - Sintaxe para mídia ADC de alta capacidade (formato de dados transferidos do scanner para o software, etc.)
  • ISO / IEC 15459 - Identificadores únicos

Codificação

Leitores de código Industrial Data Matrix

O processo de codificação é descrito no padrão ISO / IEC 16022: 2006. Foi publicado software de código aberto para codificação e decodificação da variante ECC-200 do Data Matrix.

Os diagramas abaixo ilustram a colocação dos dados da mensagem em um símbolo Data Matrix. A mensagem é "Wikipedia" e está organizada em um padrão diagonal um tanto complicado, começando perto do canto superior esquerdo. Alguns caracteres são divididos em duas partes, como o W inicial e o terceiro 'i' está no "padrão de canto 2" em vez do arranjo em forma de L usual. Também são mostrados o código de fim de mensagem (marcado como Fim), os bytes de preenchimento (P) e correção de erros (E) e quatro módulos de espaço não utilizado (X).

Data Matrix Encoding.svg Datamatrixfilling.png

Vários modos de codificação são usados ​​para armazenar diferentes tipos de mensagens. O modo padrão armazena um caractere ASCII por palavra-código de 8 bits. Os códigos de controle são fornecidos para alternar entre os modos, conforme mostrado abaixo.

Palavra-código Interpretação
0 Não usado
1-128 Dados ASCII (valor ASCII + 1)
129 Fim da mensagem
130-229 Pares de dígitos 00 - 99
230 Comece a codificação C40
231 Comece a codificação Base 256
232 FNC1
233 Anexo estruturado. Permite que uma mensagem seja dividida em vários símbolos.
234 Programação do leitor
235 Defina a parte alta do seguinte caractere
236 05 Macro
237 06 Macro
238 Comece a codificação ANSI X12
239 Comece a codificação de texto
240 Comece a codificação EDIFACT
241 Código de interpretação de canal estendido
242-255 Não usado

Modos de texto

Os modos C40, Texto e X12 são potencialmente mais compactos para armazenar mensagens de texto. Eles são semelhantes ao DEC Radix-50 , usando códigos de caracteres no intervalo 0-39, e três desses códigos são combinados para fazer um número até 40 3 = 64000, que é compactado em dois bytes (valor máximo 65536) como segue :

V = C1 × 1600 + C2 × 40 + C3 + 1
B1 = piso (V / 256)
B2 = V mod 256

O valor resultante de B1 está no intervalo de 0–250. O valor especial 254 é usado para retornar ao modo de codificação ASCII.

As interpretações dos códigos de caracteres são mostradas na tabela abaixo. Os modos C40 e Texto possuem quatro conjuntos separados. Conjunto 0 é o padrão e contém códigos que selecionam temporariamente um conjunto diferente para o próximo caractere. A única diferença é que eles invertem as letras maiúsculas e minúsculas. C40 é principalmente maiúsculo, com letras minúsculas no conjunto 3; O texto é o contrário. O conjunto 1, contendo códigos de controle ASCII, e o conjunto 2, contendo símbolos de pontuação, são idênticos no C40 e no modo Texto.

Código conjunto 0 conjunto 1 conjunto 2 conjunto 3 X12
C40 Texto C40 Texto
0 conjunto 1 NUL ! ` CR
1 conjunto 2 SOH " uma UMA *
2 conjunto 3 STX # b B >
3 espaço ETX $ c C espaço
4 0 EOT % d D 0
5 1 ENQ E e E 1
6 2 ACK ' f F 2
7 3 BEL ( g G 3
8 4 BS ) h H 4
9 5 HT * eu eu 5
10 6 LF + j J 6
11 7 VT , k K 7
12 8 FF - eu eu 8
13 9 CR . m M 9
14 UMA uma TÃO / n N UMA
15 B b SI : o O B
16 C c DLE ; p P C
17 D d DC1 < q Q D
18 E e DC2 = r R E
19 F f DC3 > s S F
20 G g DC4 ? t T G
21 H h NAK @ você você H
22 eu eu SYN [ v V eu
23 J j ETB \ C C J
24 K k POSSO ] x X K
25 eu eu EM ^ y Y eu
26 M m SUB _ z Z M
27 N n ESC FNC1 { N
28 O o FS | O
29 P p GS } P
30 Q q RS hibit ~ Q
31 R r nós DEL R
32 S s S
33 T t T
34 você você você
35 V v V
36 C C C
37 X x X
38 Y y Y
39 Z z Z

Modo EDIFACT

O modo EDIFACT usa seis bits por caractere, com quatro caracteres compactados em três bytes. Ele pode armazenar dígitos, letras maiúsculas e muitos sinais de pontuação, mas não tem suporte para letras minúsculas.

Código Significado
0-30 Códigos ASCII 64-94
31 Retornar ao modo ASCII
32-63 Códigos ASCII 32-63

Modo base 256

Os dados do modo Base 256 começam com um indicador de comprimento, seguido por um número de bytes de dados. Um comprimento de 1 a 249 é codificado como um único byte e os comprimentos mais longos são armazenados como dois bytes.

L1 = piso (comprimento / 250) + 249, L2 = comprimento mod 250

É desejável evitar longas sequências de zeros na mensagem codificada, porque eles se tornam grandes áreas em branco no símbolo Data Matrix, o que pode fazer com que o scanner perca a sincronização. (A codificação ASCII padrão não usa zero por esse motivo.) Para tornar isso menos provável, o comprimento e os bytes de dados são obscurecidos pela adição de um valor pseudo-aleatório R (n), onde n é a posição no fluxo de bytes.

R (n) = (149 × n) mod 255 + 1

Problemas de patentes

Antes do vencimento da Patente dos EUA 5.612.524 em novembro de 2007, a empresa de propriedade intelectual Acacia Technologies alegou que o Data Matrix estava parcialmente coberto por seu conteúdo. Como proprietária da patente, a Acacia supostamente contatou os usuários do Data Matrix exigindo taxas de licença relacionadas à patente.

Cognex Corporation , um grande fabricante de dispositivos de código de barras 2D, entrou com uma reclamação de julgamento declaratório em 13 de março de 2006 após receber informações de que a Acacia havia contatado seus clientes exigindo taxas de licenciamento. Em 19 de maio de 2008, a juíza Joan N. Ericksen do Tribunal Distrital dos Estados Unidos em Minnesota decidiu a favor da Cognex. A decisão considerou que a patente '524, que alegava cobrir um sistema de captura e leitura de códigos de simbologia 2D, é inválida e inexequível devido à conduta injusta dos réus durante a obtenção da patente.

Embora a decisão tenha sido proferida após a expiração da patente, ela impedia reclamações por violação com base no uso de Data Matrix antes de novembro de 2007.

Um pedido de patente alemã DE 4107020 foi depositado em 1991 e publicado em 1992. Esta patente não é citada nos pedidos de patentes dos Estados Unidos acima e pode invalidá-los.

Veja também

Referências

links externos