微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 产品设计原理:在小尺寸DSP上实 2D条形码解码

产品设计原理:在小尺寸DSP上实 2D条形码解码

时间:10-09 来源:3721RD 点击:

条形码一般被用于将关键的字母数字信息转换为数字系统能够扫描和读取的符号信息,而无需每次都要将信息录入数字系统。

1D(一维)条形码只能对数字数据进行编码,在过去二十年中主要用于产品运输和追踪、系统安全、超市等场合。使用 2D(二维)条形码,数据在水平和垂直方向被编码为 2D 符号,如下图 1 所示。

2D 符号所能包含的数据量远大于 1D 符号。2D 条形码解决方案可比传统 1D 条形码提供更大的信息密度,特别是对于那些需要对精密信息而不是简单的码信息进行编码的应用。

2D 条形码技术的一些应用包括产品标签、产品信息追踪和检验、移动安全、出入境检查服务、医疗保健和电子商务等。

图 1:2D 条形码示例

如今存在很多 2D 条形码算法,这催生出采用不同条形码技术的一系列应用。一般来说,有两种类型的 2D 条形码:1) 堆叠式 2D 条形码,例如 PDF417 和 Code 49,2) 矩阵式条形码,例如 QR 码和数据矩阵。在这篇文章中,我们仅限于讨论数据矩阵式条形码技术[2]。

2D 数据矩阵式条形码技术

2D 数据矩阵式条形码包括在正方形或长方形中排列的黑色和白色模块,如图 1 所示。编码数据位映射到黑色和白色模块(或单元)组成的区域,称为数据区域。关于 2D 数据矩阵式条形码所支持的不同类型的编码方案的详细信息,请参见参考文献[2]。

数据区域由定位图形包围(定位图形的底部和左侧只包含黑色模块,而定位图形的上部和右侧由交替的白色和黑色模块组成)。数据矩阵 2D 条形码支持由排位图形分隔的多个数据区域,从而能容纳更多数据信息。

有两种版本的数据矩阵,一种是基于循环冗余校验(CRC)和卷积纠错,另一种是基于里德所罗门(RS)纠错。对于扫描、读取和提取数据位,基于 CRC 与基于 RS 的数据矩阵解码没有区别。提取数据位之后,基于 CRC 的解码与基于 RS 的解码路径不同,因为它们的交织和纠错方法不同。

图 2:2D 条形码扫描器框图和 DSP 处理内核

这里我们考虑在小尺寸 Blackfin 处理器上对新兴的基于 RS 码的 2D 数据矩阵式条形码进行解码。通过 PPI-DMA 通道连接到 DSP 处理器的 2D 条形码扫描器的框图如上面图 2 所示。

在小尺寸 DSP 上实现条形码

传感器对条形码进行扫描并将像素数据通过并行端口接口(PPI)传输给 DSP。之后,DSP 处理器处理图像像素并提取数据区域中黑色和白色模块对应的数据位,然后进行纠错。从扫描的 2D 条形码的特定数据区域提取数据位的过程如下面图 3 所示的流程图。

图 3:从 2D 数据矩阵符号提取数据位的流程图

我们将 2D 数据矩阵式条形码看做大小为 M x N 的图像(通常是 QVGA 或 VGA 图像)并进行处理。相机的 CMOS 传感器捕获图像并将图像像素传输给 DSP 进行处理。

现在的问题是,需要多大的存储器来保存处理过程中的图像?例如,以 VGA(即 640x480)为例,我们需要大约 300 kB 的数据存储器来保存捕获到的图像。处理器内核的尺寸取决于其包含的存储器的数量。

特别是 L1 高速存储器,它占用更多的硅面积,总成本也更高。因此,大多数处理器包含非常有限的 L1 存储器。

另一方面,L2 或 L3 存储器通常有较大的容量,占用较小的面积,成本也较低。然而,它们速度较慢,需要通过 DMA 与处理器的工作存储器(L1)进行数据传输。

接下来我们将讨论用 Blackfin 系列的两款不同处理器实现数据矩阵 2D 条形码在,其中一款具有 16 kB 的 L1 和较大 L2/L3 存储器,另一款只有 16 kB 的 L1 存储器。

对于带有 L2 和 L3 存储器的处理器,捕获的图像通过 DMA 和 PPI 接口传输到 L2 存储器。然后通过将少量图像像素同时从 L2 移动到 L1 存储器,来对 2D 条形码中提取的数据位进行处理。在这种情况下,我们使用另一个 DMA 进行 L1 和 L2 之间的数据传输,整体解码很简单也不复杂。

在另一方面,如果仅有少量的 L1 存储器,并且没有 L2/L3 存储器,那么问题就相当棘手。在这种情况下,我们对同样的条形码要进行更多的扫描,并将目标区域(ROI)通过适当设置的 PPI-DMA 通道传输到 L1 存储器进行处理。

虽然这个系统设置起来很复杂,但其成本和尺寸与前一个例子相比要小。接下来,我们将讨论使用上面提到的两个处理器实例对 2D 数据矩阵式条形码进行解码的技术。

用 L2 存储器实施

在这种情况下,经扫描的所有图像通过 PPI-DMA 通道被读入 L2 存储器,采用另一个存储器 DMA 通过访问 L2 中的部分图像对其进行处理。如下图 4(a)所示。

图 4:用小尺寸 Blackfin 处理器进行 2D 条形码解码,

(a)具有

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top