一例Data Matrix编码，其中是文本："Wikipedia, the free encyclopedia"
**Data Matrix**（数据矩阵），是一种由黑色、白色的色块（单元格）以正方形或长方形组成的二维条码（也可称矩阵），于1994年8月由美国国际资料公司所研发出，主要用于零件、印制电路板等等，美国国际资料公司于2008年被Microscan公司收购。被编码的信息可能是文本或数字数据。数据大小通常是几个至1556字节。被编码数据的长度决定了矩阵中色块的数量。编码时经常使用纠错码来增加可靠性：即便一个或多个色块被损坏而不可读，里面的信息仍然可被读取。一个数据矩阵可以存储最多2,335个数字或字母。

应用
--

一个Mini PCI板卡上的数据矩阵，编码了序列号15C06E115AZC72983004
Data Matrix最流行的应用是小物件的标签，因为该编码能在2或3平方毫米的面积上编码50个字符，且在20%对比度下仍然可读。Data Matrix的大小不受限制，商业应用的图像包括小至300微米（在一台600微米硅装置上激光蚀刻）和大至1米（涂在棚车顶上）的平面。绘制与读取系统的保真度是其唯一的限制。

美国电子工业联盟（EIA）建议使用Data Matrix标注小型电子元件。

将Data Matrix编码打印在标签或书信上正日益普遍。使用一台条码读取器（英语：）即可快速读取该编码，从而便于跟踪物品，例如跟踪包裹的邮递。

平面标注
对工业工程来说，此条码也可直接在组件上标记，从而使用Data Matrix编码数据来识别组件。厂商可以用各种方法在在组件上完成，但在航空航天工业中，条码通常以工业喷墨、点阵打标、激光打标和电解化学蚀刻（ECE）完成，使用这些方法来得到可延续到组件寿命的永久性标记。

Data Matrix编码通常使用专业摄像设备及软件进行验证。这种验证确保编码符合相关标准，并确保组件使用寿命期间的可读性。在组件投入使用后，该代码仍可被读取镜头读取、解码，解码后的信息可用于多种目的，例如移动跟踪和库存检查。

使用手机扫描Data Matrix条码（Semacode项目）
Data Matrix编码与其他开源编码（例如1D Barcodes）一样，也可以在手机上使用特定的移动应用来读取。

### 食品工业

### 艺术

2006年5月，德国计算机程序员Bernd Hopfengärtner创作了一个大型的数据矩阵麥田圈，内藏信息为："Hello, World!"。

技术规格
----

Data Matrix符号是由排列在周长查找器和定时模式内的模块组成的。它可以编码多达3116个ASCII（含扩展）字符。符号由包含模块的数据区域组成，这些数据区域以规则阵列的形式排列。大型符号包含多个区域。每个数据区域都由一个查找模式划定，其四面都被一个安静的区域边界（边缘）所包围。(注意：模块可以是圆形或方形——标准中没有定义具体的形状。例如，点状排列的单元一般是圆形的）。

Data Matrix编码的一个示例，被编码的文本："Wikipedia"。各颜色分别代表：数据（绿色），填充（黄色），纠错（红色），查找器和校定（品红色），未使用（橙色）。
### Data Matrix ECC 200

1826 DFR50-IC-U

### Data Matrix ECC 000–140

标准
--

Data Matrix是由International Data Matrix公司（ID Matrix）发明的，该公司被并入RVSI/Acuity CiMatrix（英语：），后者于2005年10月被西门子股份公司收购，2008年9月被Microscan Systems收购。今天，数据矩阵已被若干ISO/IEC标准所涵盖，并在许多应用中属于公共领域，这意味着它可以在没有任何许可或特许权使用费的情况下使用。

* ISO/IEC 16022:2006-Data Matrix码符号学规范
* ISO/IEC 15415-2-D印刷质量标准
* ISO/IEC 15418:2009-符号数据格式语义（GS1应用识别码和ASC MH10数据识别码和维护）。
* ISO/IEC 15424:2008-数据载体标识（包括符号学标识）[用于区分不同条码类型的标识] 。
* ISO/IEC 15434:2006-大容量ADC介质的语法（从扫描仪传输到软件的数据格式等）。
* ISO/IEC 15459-独特的识别码

编码
--

多种编码模式用于存储不同种类的信息。默认的模式是每8位码字存储一个ASCII字符。提供控制代码在不同的模式之间切换，如下表所示。

工业Data Matrix编码读取器

| 代码字 | 解释 |
| --- | --- |
| 0 | 未被使用 |
| 1–128 | ASCII 数据 (ASCII 值 + 1) |
| 129 | 消息结束 |
| 130–229 | 数位对00-99 |
| 230 | 基础 C40编码 |
| 231 | 开始 Base 256 编码 |
| 232 | FNC1 |
| 233 | 结构追加。允许消息被分在几个符号中。 |
| 234 | 读者编程 |
| 235 | 设置下一字符的最高位 |
| 236 | 宏 05 |
| 237 | 宏 06 |
| 238 | 开始 ANSI X12 编码 |
| 239 | 开始 Text 编码 |
| 240 | 开始 EDIFACT 编码 |
| 241 | Extended Channel Interpretation 编码 |
| 242–255 | 未使用 |

### 文字模型

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

### EDIFACT模式

EDIFACT（英语：）模式为每个字符使用6个位元，每4个字符封装在3个字节。它可以存储数字、大写字母以及许多标点符号，但不支持小写字母。

| 代码 | 含义 |
| --- | --- |
| 0 – 30 | ASCII代码 64 – 94 |
| 31 | 返回ASCII模式 |
| 32 – 63 | ASCII代码32 – 63 |

### 基本256模式

Base 256模式的数据以长度指示器开始，然后是数据字节数。1到249的长度被编码为一个字节，更长的长度被存储为两个字节。

L1 = floor(length / 250) + 249, L2 = length mod 250

最好避免在编码信息中出现长串的零，因为它们会成为数据矩阵符号中的大片空白区域，这可能会导致扫描仪失去同步。(由于这个原因，默认的ASCII编码不使用零。)为了减少这种可能性，长度和数据字节被添加一个伪随机值R(n)来掩盖，其中n是字节流的位置。

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

专利问题
----

参见
--

* QR碼
* PDF417条码
* 彩色條碼
* Aztec Code（英语：）
* MaxiCode（英语：）
* Nintendo e-Reader（英语：）
* Semacode（英语：）
* SPARQCode（英语：）
* 可信纸质密钥（英语：）

参考资料
----

1. ↑   (PDF).  [2017-10-10]. （原始内容存档 (PDF)于2016-04-02）.
2. ↑ .  [2017-10-10]. （原始内容存档于2019-01-23）.
3. ↑  Michael, Katina, etc (2009), Innovative Automatic Identification and Location-Based Services: From Bar Codes to Chip Implants 1st Edition pg.92, IGI Global, ISBN 978-1599047959.
4. ↑ .  [2017-09-19]. （原始内容存档于2018-01-02）.
5. ↑  Stevenson, Rick.  (PDF). Printed Circuit Design and Manufacture. December 2005  [2007-05-31]. （原始内容存档 (PDF)于2007-09-28）.
6. ↑ . arstechnica.com.  [22 February 2017]. （原始内容存档于2009-01-22）.

外部链接
----

* GS1 DataMatrix Guideline: Overview and technical introduction to the use of GS1 DataMatrix（页面存档备份，存于）
* 什么是 Data Matrix 码？ - 基恩士（页面存档备份，存于）（简体中文）