主办单位:中国物品编码中心 | 中国自动识别技术协会 | 《中国自动识别技术》杂志社

设为首页 | 加入收藏 | 关于我们

  行业应用  正文

基于Actel平台的条码图像采集系统

发布时间:2017年11月09日 来源:中国自动识别网 作者:徐谦

常见的条码是由宽度不相等的多个黑条和白条组成,它是按照一定的规则进行排列的,常用来表达多种信息的图形标识符。条码一般有多个部分组成,其中的信息会指示出其物品的生产国家、制造公司、商品、生产日期、图书分类号、起止地点、类别等许多信息。条码技术具有误码率低、应用成本低、识别速度快、设备相对便宜和技术较成熟特点。
目前市场上条码应用已经相当普及,但是条码识别设备价格高,导致读取设备的推广速度远远低于二维码。研究并设计出适用于国内的识别设备,降低其使用成本,适应市场需求,保护国内商家和消费者的权益。
 
系统硬件结构
使用ACTEL平台的FPGA芯片和USB2.0接口将MT9M112图像数据传输到上位机,通过Verilog HDL语言在FPGA中设计出相应的内核,实现对数据的快速读写。该设计实测其传输速度快、数据准确,高速USB数据传输的也可正常使用。利用FPGA并行处理的功能,传输零数据丢失,使上位机得到的数据更为清晰流畅。采用MICRON公司的图像传感器芯片MT9M112做为图像采集部分,通过USB控制芯片EZ_USB FX2进行数据采集,由上位机对图像进行显示和实时解码处理。由于MT9M112芯片输出的串行图像数据流是8位的,所以如果直接与USB对接会使slave FIFO难确保数据不会丢失,并且非常难在串行数据中加入帧识别信息。ACTEL平台的FPGA能很好的解决这个问题,通过FPGA对采集到的串行数据做转换后再交给USB 2.0,使其传送到上位机。
该设计主要由摄像处理芯片、ACTEL平台和USB接口三大模块组成,摄像采集芯片的数据经ACTEL平台的FIFO内核处理后由串行8位转换到串行16位,USB接口将收到的差分数据提交给上位机。系统的整体构成框图如图1所示:
 
图1 系统构成图
 
图1 反应了系统各个模块间数据流和控制流的连接关系。该方案主要由采集芯片 MT9M112、FPGA和USB接口芯片(使用68013A型号)三个模块组成。
MT9M112模块主要负责采集图像,并同时输出图像数据。MT9M112默认输出为 ITU-R BT.656格式的8位数据流。当行有效和帧有效两信号同时有效时,图像采集芯片MT9M112将会输出图像数据,有数据总线将其传输入FPGA模块。
FPGA 模块负责对数据的处理。在ACTEL平台中创建FIFO_Core内核,设置它的输出数据宽度为16位,使其在控制时钟不变的情况能加快传输数据速率,达到零错误的要求。Verilog HDL语言实现了模块内部的连接,FPGA除了负责有效的帧图像传输外,还将进行图像帧数据或行数据的同步。16位的数据流经由FPGA数据总线传输到USB2.0相应的从FIFO_Core中。
MT9M112芯片主要完成图像数据的采集,USB2.0主要负责将数据打包送到上位机。数据总线按需求选择8位位宽或是16位位宽(本设计必须将FIFO_Core总线数据转换为16位,因为系统必须在控制时钟不变的情况下加快USB传输数据的速率)。
 
条码采集系统的软件实现
软件整体流程图如图2所示。整个软件分三个主要的判断条件:首先确定是否找到定位图像,然后进行版本信息判断和最后再对条码数据码字译码的结果进行判断。如果数据码字译码失败,软件将会返回到开始阶段重新开始。
 
图2   软件整体流程图
 
为了方便程序的可读性和团队测试时的延续性,对条码程序模块进行了功能分块,每一块都能实时处理模块的内容。条码识别软件主要划分为这几个主要程序模块:主程序、二值化算法、图像定位、几何校正函数、取样程序等。每个程序模块会单独封装成独立函数,方便后期查找BUG。
主调程序
int32_tC7_image_processor(int32_t*error_code,C7_image_info_t*info);
功能:是系统的主调用程序,对各个模块进行调度。
参数说明:
error_code:返回错误类型
info:结构体指针
二值化函数
int C7_binary_img(int*error_code, C7_image_t*
plmg);
功能:首先使用最优阀值二值化对图像进行预处理。
参数说明:
error_code:出错代码
plmg:8位灰度位图信息
图像定位函数
int32_tC7_local_img(int32_t*error_code,C7_
image_info_t*info);
功能:获取当前图像的中心坐标,如没有获取到图像将进行报错。
参数说明
error_code:出错代码
info:图像处理信息
几何校正函数
int32_tC7_calibrate_img(int*error_code,C7_
image_info_t*pinfo);
功能:采用仿射变换公式算法,随机选取三对特征点进行修正。
参数说明:
error_code:出错代码
pinfo:图像处理信息
取样
int32_tC7_sample_img(int32_t*error_code,C7_image_info_t*pinfo);
功能:对图像传感器获得的图像进行采样,并进行初步的译码预处理。
参数说明
error_code:出错代码
pinfo:图像处理信息
在CMOS图像传感器的现实使用中,常常会因为现场情况的复杂性造成采集条码的失真和误判情况。该系统在这种情况下仍能够正常工作,分辨出条码内容。在352*288和320*240两个分辨率下处理时间都在10ms左右,理论上每秒可识别100张左右的条码,可满足实时性的要求。
与目前社会上大多用DSP处理器异步通信相比,在ACTEL平台上应用的条码图像采集系统利用了ACTEL平台的FPGA降低了生产成本,使图像传送速度得到了大幅度的提升,出错率也得到了很好的控制,通过USB2.0增强型51内核的控制,使产品不仅功能齐全,技术先进,更富于人性化,便于被广大客户所接受。
 
                                         徐谦    
(作者单位:湖南工程学院)
《中国自动识别技术》2017年第5期总第68期

延伸阅读:

声明:

    凡本网注明“来源:中国自动识别网、《中国自动识别技术》、《条码与信息系统》”的所有作品,版权均属于中国自动识别网、《中国自动识别技术》、《条码与信息系统》, 未经本网授权不得转载、摘编或利用其他方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:中国自动识别网、《中国自动识别技术》或《条码与信息系统》”。违反上述声明者,本网将追究其相关法律责任。
    凡本网注明“来源:XXX(非中国自动识别网、《中国自动识别技术》、《条码与信息系统》)”的作品,均转载自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。文章内容仅供参考。 如因作品内容、版权和其他问题需要同本网联系的,请将内容传真至010-84295675,以便本网尽快处理。

高端访谈 更多>>
Fingerprints:开启生物识...
Ted Hansson,作为信息和通信技术(ICT)专家,在亚洲拥有超过十年的创建、管理和支持团队的经验。他于2013年加入Fing...
商品条码服务数字经济进行时
李建辉,中国物品编码中心总工程师、中国ECR委员会秘书长、物品编码与自动识别技术专家。对物品编码与自动识别技术及...
专属eBay的跨境电商谋略
郑长青,现任eBay跨境贸易事业部中国区总经理,eBay全球高级总监,全面负责eBay在中国的业务管理和拓展、品类管理及卖...
英特尔:智能物联 绽放“...
英特尔认为联接、智能、自治是物联网发展的趋势,并将其形象地称之为物联网领域的摩尔定律。过去10年内,处理成本降低...
杂志专区 更多>>

《2018第4期》

《2018第4期》