条码识别(精选四篇)
条码识别 篇1
关键词:二维条码,PDF417,图像识别,算法
1 引言
条码技术自出现以来,得到了业界的普遍关注,发展十分迅速,现已广泛应用于商业、交通运输、仓储业、制造业、邮电业、医疗卫生等领域[1],极大的提高了数据采集和信息处理的速度,提高了工作效率,并为管理的科学化、信息化和现代化作出了贡献。目前常用的是一维条码,但一维条码最大的弱点就是表征的信息量是有限的,需要依赖外部数据库支持,离开这个数据库[2]条码本身就没有意义了。二维条码克服了这一弱点,它是在一维条码基础上形成的高密度、高信息量的条码,可以将大量信息在小区域内编码,它本身就是一个完整的数据文件,是实现证件、卡片等信息存储、携带并可以通过机器自动识读的理想方法。
在二维条码中,应用最广泛的是PDF417条码。现在二维条码PDF417的标准[3]和压缩算法虽已公开,但是解码算法却很少。本文在对PDF417二维条码的符号结构及编码原理研究的基础上,实现二维条形码识别的软件算法实现,可以拓宽条码应用领域,节约条码应用成本。
2 图像预处理
对二维条码译码,首先要采集得到条码符号图像,根据采集到的图像特点,将译码过程主要分为两个部分:首先,对采集的条码图像用合适的方法进行预处理,达到满意的效果,然后,再根据编码规则进行解释,实现译码。
采集的条码图像使用灰度图像,对图像的基本要求是条码符号中的单位模块至少要包含3至4个像素,以保证识别的可靠性,提高识读率。图2所示为采集到的PDF417码。
2.1 图像二值化[4]
数字化的灰度图像包括特征物、背景和噪声。从数字灰度图像中提取特征物,最常用的方法是设定一阈值θ,用阈值θ将灰度图像的数据分成两部分,即大于阈值的像素群和小于阈值的像素群。若输入灰度图像函数为f(x,y),输出二值图像的函数为g(x,y),则
二值化处理就是求解阈值θ,从而把灰度图像f(x,y)分成特征物和背景两个部分。阈值是把图像和背景区分开的标尺,适当的阈值就是既要尽可能的保存图像信息又要尽可能的减少背景和噪声的干扰,这是选择阈值θ的原则。根据该原则,在此使用条码图像的灰度直方图[5]来确定阈值θ,如图3所示。
确定阈值θ后,对图像进行二值化处理。图4是经该过程处理后的条码图像:
2.2 降噪处理
原始条码图像由于存在着边沿毛刺、孤立点噪音等变形,不能准确地反映条码符号。因此必须首先去除这些干扰,对条码图像进行整形,才能提高译码的正确率。在图像处理中用于降噪的算法很多,本文采用Unger提出的平滑算法[6],设有3*3窗口,如图5所示,其中p为当前点,N0~N7为八个相邻点。
Unger平滑准则为:
(1)当p为白点时,用布尔函数f1的值来代替p的值,
即N0、N2、N4和N6中至少有三个黑点时,则将p改为黑点,否则p不变。
(2)当p为黑点时,用布尔函数f2的值来代替p的值,
即若N2、N3、N4中至少有一个为黑点,并且N0、N6、N7中也至少有一个为黑点时,或N0、N1、N2中至少有一个为黑点,并且N4、N5、N6中至少有一个为黑点时,p不变,否则将p改为白点。
毛刺噪声采取中值滤波去除,通过与周围象素值进行比较,假如差别超过灰度变化范围的一半,就改变原来的象素值。某一灰度值为x的象素点e,其去噪声过程由下式计算:
其中:w表示图像灰度变化范围,表示以x为中心围成的8个方向的象素点的灰度值的平均值。
处理后条码图像如图6所示。
3 图像校正
图像校正主要是处理图像的偏转问题。这一过程主要针对二维码进行,因为一维条码的结构特点决定了它在一定范围内偏转是不影响其识别的,而二维码图像包含信息量大,图像要求较高,在扫描过程中图像产生偏转是不可避免,因此对图像进行几何校正非常有必要。本文要实现的几何变换过程是图像的旋转,这是一种相对复杂的几何变换。一般图像旋转是以图像中心为原点,旋转一定的角度,旋转后,图像的大小一般会改变,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有图像,下面的过程推导了旋转运算[7]的变换公式。如图7所示,点(x0 y0)经过旋转θ度后坐标变为(x1,y1)。
旋转前:
旋转后:
旋转矩阵表达式为:
其逆运算如下:
进行图像旋转之前要确定图像偏转的角度,如图8所示。本文根据条码图像的水平垂直投影确定该角,在此不再赘述。
该过程处理后条码图像如图9所示。
4 译码
经过处理的条码图像质量较高,除边缘外几乎没有了噪声与形变。译码的过程分为两部分,首先求取条码的码词矩阵,然后根据码词矩阵进行译码[8],还原出所携带信息。
根据二维条码PDF417的特性,选出每(一层中最合适的扫描结果,并对其做规格化修正,得到符号字符。然后按8个符号字符与一个码字相对应的关系分割,得到全部码字信息,然后除去左右标志符等附加信息就可以完整的实现译码。
5 结论
将本文提出的方法进行软件实现,经反复验证,能够识别通过图像采集、与水平方向偏转±4~5°的PDF417码。确定该方法有效,软件识别系统性能稳定,取得了满意的结果,为二维条码的识别提供了一条有效的途径。
参考文献
[1]郑文超.条码技术指南[M].中国标准出版社.2003:4~6.
[2]刘明业,李春,吴清平等.二维条形码技术的发展状况[J].电子展望与决策.2000.3.
[3]中华人民共和国国家标准《四一七条码》GB/T17172-1997.
[4]陈传波等编著.数字图像处理[M].机械工业出版社.2004.7.
[5]何斌,马天予,王运坚,朱红莲.Visual C++数字图像处理(第二版)[M].人民邮电出版社.2002.
[6]Unger S.H.Pattern Detection and Recognition[J].Proceeding of the IRE.1959:1737~1752.
[7]潘云鹤,董金祥,陈德人编著.计算机图形学——原理,方法及应用(修订版)[M].高等教育出版社.2003.12.
PDF417二维条码的识别及应用 篇2
1 PDF417条码简介
PDF417二维条码是目前应用最广泛的二维条码, 被广泛应用于证件、单证、物流等用于对人和物的身份识别。PDF417二维条码在我国有着良好的应用现状, 原因有二, 一是二维条码的成本低、信息可以跟随载体移动、不需要数据库与计算机网络的支持、有高强度的保密防伪等优势;二是根据我国国情, 人口居多, 计算机网络技术不够成熟, 投资资金的难度大, 对保密防伪的要求高等特点。到目前为止, 我国在一些省市中的暂住证、行车证、卫生防疫证、保险卡等各种证件上采用了PDF417二维条码技术。执行相关证件录入计算机问题, 节约了人力物力, 还简单建立了良好的服务机制。利用PDF417二维条码解决手动录入的大工作量问题、便于进行数据的自动交换。[1]
2 PDF417条码的生成与识别
2.1 PDF417条码的生成
关于PDF417的生成过程, 首先输入一串字符串信息, 该字符串通过PDF417的编码规则, 计算出一串码字信息, 每个码字用0-928的数值表示, 然后根据RS纠错码算法算出错误纠正码字, 接着将每个码字根据PDF417的规则排列并分别转化成4个条和4个空共17个条空序列的组合, 就生成PDF417二维条形码。[2]
本系统在WEB页面中采用C#语言调用MakeB ar.dll二维条码生成动态连接库, 来生成PDF417二维条码。首先通过DllI mport导入MakeB ar.dll, 然后调用此动态连接库提供的接口函数:
[Dll Import ("Make PDF417.dll") ]
public static extern void Make (byte[]ucD ata, int nD ataL en, string szB mp FileN ame, int nC lumn, int nE rr, int nH LRatio, int nH eight) ;
Make函数是生成条码图片位图函数, 动态连接库对其中的参数都做了具体的说明, 如ucD ata为条码数据, nD ataL en为条码数据长度, nE rr为纠错等级等。
2.2 PDF417条码的识别
PDF417的识别的过程大致就是生成的逆过程, 将二维码图形逐步分解成条和空的组合, 再转化成码字, 然后进行RS译码纠正错误的码字, 再进行PDF417的解码, 转化为最初的字符串。本系统采用二维条码扫描枪, 直接扫描二维条码图形进行识别。
2.3 汉字的识别方案
要正确的识别汉字, 就要有一种对汉字和ASCII码进行统一编码的字符集, 将要进行PDF417编码的数据源先进行这种字符集的编码转换成前文所说的字符串信息, 最终完成PDF417识别是再将字符串信息进行这种字符集的解码。unicode编码所有字符均占用2个字节, GBK编码中ASCII码的字符占1个字节, 汉字占两个字节, 并且GBK编码的统一编码方式不会导致将一个汉字变成两个ASCII字符的结果, 故采用GBK编码较为节省信息量。
3 实验室信息管理系统的设计
3.1 开发环境
系统搭建了B/S架构的客户服务系统, 开发工具使用Visual Studio 2010, 通过创建基于C#语言下的网络应用程序来实现。采用的数据库软件是SQL server 2005。因为B/S架构在客户机端不用安装专门的软件, 只要一个浏览器即可;SQL server 2005通用性强, 易于连接并且维护简单, 易于操作。
3.2 系统组成和运作流程
系统由数据源、二维条码扫描枪、计算机、应用软件和输出设备组成, 如图1所示。系统的运作流程为:生成PDF417条码、打印条码、管理人员登入实验室管理系统中的设备管理或考勤模块中、用二维条码扫描打印好的条码、显示条码内部信息在相应模块界面、系统处理完成相应操作, 如图2所示。
3.3 数据库设计
PDF417条码的生成和识别不需要数据库, 这里的数据库是实验室信息管理系统的数据库。数据库是实验室信息管理系统的基础, 在数据库的支持下可以进行信息的查询、增加、删除、更新、统计等操作。[3]
根据用户的信息需求来设计数据库。首先, 在用户管理方面, 我们创建了权限表、学生表、教师表、实验员表。其中学生表、教师表、实验员表以各自的校园ID (学号、工号) 为主码, 权限表的主码为外码进行联系。其次, 在设备信息管理方面, 我们创建了设备表, 以设备号为主码;出借表, 以出借单号为主码;维修表以维修单号为主码;报废表以报废单号为主码。其中出借表、维修表、报废表为设备号为外码进行联系。
3.4 系统功能模块
系统的功能模块由PDF417生成系统、实验室设备管理、考勤管理、实验室开放管理和系统管理组成。对于不同权限的用户, 系统的功能模块是不同的。对于实验员, 即管理员, 其功能模块如图3所示。[4]
(1) PDF417条码生成:可将学生和设备的信息生成PDF417条码, 并进行打印或批量打印。可以手动填写学生和设备的具体信息进行编码, 但所有信息手动填写效率低, 只需填写关键字段进行查询, 即可得到其它所有信息。
(2) 设备管理:可进行设备基本信息的管理, 设备出借、维修、报废、入库、盘点管理及设备信息的查询和统计。完成设备出借、维修等管理后会生成相应的表单并供存档打印。
设备查询与统计可按照设备名称、实验室名称以及日期等统计实验室设备运行状况。该功能主要是为了使用户能够实时掌握实验室设备的运行状况, 所做的主要操作就是查询和统计, 所以数据以只读形式出现。
(3) 考勤管理:可进行学生基本信息管理、考勤及学生信息的查询和统计。考勤分为考勤管理人员, 可能是老师或者管理员, 被考勤人员为学生。老师和实验员可以对学生的考勤结果进行统计, 实时掌握学生的出勤率, 改进手动签到难于统计的缺点。
(4) 实验室开放管理:可进行实验室信息管理;提供信息查询和预约, 有利于老师和学生申请使用实验室和设备;提供交互管理, 有利于申请者更好的和管理员进行沟通和解决问题。
(5) 系统管理:可进行数据备份、权限管理及信息维护。
4 条码生成识别在系统中的应用
根据前文的系统运作流程进行说明PDF417条码在实验室信息管理系统中的应用。首先是条码的生成, 实验室管理人员登入系统后, 选择PDF417生成系统下的设备编码模块, 输入设备号, 点击查询, 可获取该设备的其它字段, 点击条码生成, 可在右侧生成图形, 供保存和打印。如图4所示。
然后是条码识别的应用, 实验室管理人员登入系统后, 选择实验室设备管理下的设备出借模块, 出借单界面会自动生成出借单号, 只需扫描枪扫描要出借的设备条码, 再进行GBK解码相应的设备信息就会显示出来, 一个出借单可以扫描多个设备, 接着根据提示填写相应的信息就可完成出借, 并生成出借单, 供保存和打印。如图5所示。
5 结语
高校实验室是高校教学和科研的重要求场所, 提高实验室的管理水平至关重要, 实验室信息管理系统的建设必不可少。目前, 高校的实验室信息管理系统大都还处于传统的模式, 或是引用了一维条码的信息系统, 其管理水平有待进一步提高。而二维条码以其自身的优势有的广阔的应用前景, 相信将它应用于高校的实验室信息管理系统也是将来高校实验室建设的一个趋势。
摘要:本文提出了一种可识别汉字的PDF417二维条码的生成识别方案, 并将之应用于实验室信息管理系统, 作为实验室设备和学生的身份识别, 用于实验室设备管理和考勤管理, 规范并提高了实验室的管理效率, 减轻了实验室管理人员的负担, 又为学生和老师提供了便利。
关键词:PDF417,二维条码,实验室信息管理系统,身份识别
参考文献
[1]宋卫海, 宋士银.二维条码PDF417码技术的应用及发展前景.山东轻工业学院学报, 2001, 15 (3) :19-24.
[2]中华人民共和国国家技术监督局.GB/T 17172-1997.中华人民共和国国家标准四一七条码417 Bar code.中国标准出版社, 1998-08-01.
[3]杜博.高校实验室管理系统的设计与实现[J].电子设计工程, 2011, 19 (15) :36-39.
条码识别 篇3
自动化生产线物品流向控制的工艺布置图如图1所示。在自动化生产线上运行的物品依次从工位1到工位2再到工位3,在工位3完成相应的操作后,需要根据物品的属性决定是沿直线向前运行到达工位5还是向右运行到工位4。在一些简单的应用场合,可以在工位3处安装一个手动选择按钮,由人工来选择。但在一些复杂的应用情况下,需要根据物品自身的属性或是物品在生产过程中附加的特性来决定物体的流向,采用人工选择的方法就达不到要求了。这时可采用条码技术,在每个物品的上面贴上代表其属性的条码,在分检工位(工位3)处安装一个条码扫描器,当物品运行到分检工位(工位3)处时,P L C将该物品的条码值读入到控制系统中,解码出相应的属性值,再进行流向的控制。
要通过扫描器将条码值读到控制系统,首要的问题是如何连接扫描器和控制器,一般的工业条码扫描器都配有串行输出口,所以,通常采用串口和P L C进行连接。本文采用的CLV系列条码扫描器,具有RS-232接口,为了与之连接,在P L C的硬件配置中,需要配置一个RS-232C接口模块。硬件接线完成后,需要在PLC软件中对RS-232C模块进行设置。
2 STEP7软件中对串口模块RS-232C的设置
(1)打开西门子S7-300的编程软件STEP7,建立一个项目,打开项目的硬件配置界面,插入该系统所需要的电源、CPU、I/O模块。本系统中需要用串口模块从条码扫描器中读数据,所以在硬件配置的7号槽中添加一个CP340-RS232接口模块,如图2所示。
(2)在硬件配置图中点击CP340-RS232C,出现如图3所示的界面,General选项用于描述该模块的一些基本功能,不需要设置;Addresses选项用于设置该模块在机架上的物理地址,在模块添加到机架上时(如图2所示),系统会自动分配一个地址,设计人员也可以根据需要更改这个地址;Basic Parameters选项用于设置中断方式和CPU停止时的响应方式,本系统中使用默认设置不需要修改。以上的三项设置完成后点击Parameter,进入参数设置界面。
(3)参数设置界面如图4所示。点击Protocol将出现A SCⅡ通信时的协议设置界面,如图5所示,在该菜单中设置波特率、传输位、校验方式等通信协议参数;在Transfer菜单中设置数据流控制方式,如图6所示,本例中采用默认值;在Receiving Data菜单中设置接收的数据的覆盖方式,如图7所示,本例中采用默认值。
3 用于读串口数据的应用程序
在STEP7软件中进行完上面的设置后,就可以编写应用程序读取条码的扫描值。为了能从程序中读到条码的扫描值,需要调用系统功能块FB2,该系统功能块的作用是读取串口通信模块接收到的信息,它的参数如表1所示。其中比较重要的有:LADDR,是硬件组态时CP340模块的地址,要和图3中所设定的地址一致;DB_NO,是指定读回的串口数据的存储位置。其它参数在编程时按功能描述作相应的设置如图8所示。
4 读回的数据处理及应用
如图8所示,读回的数据放在数据块DB5中。DB5中定义1 4个字节型数据,用于存放读回的数据,其先后顺序是先高后低。例如实际条码是“6 901028 056616”,那么通过串口读回的数在DB5中的排列顺序是:DB5.DBB0存储6的ASC码,DB5.DBB1存储9的ASC码,DB5.DBB1存储0的A S C码,这个顺序是由功能块F B 2定义的,使用时需要将这些数据转存到其他存储地址中。
数据转存完成后,将各存储单元中的ASCⅡ码通过程序转换为0~9的数字,并将转换结果存放在以MB200开始的14个字节中。程序如下:
数据转换完成后,就可以在控制程序中应用,通常在实际使用时可能只有几位是有用的,这时可以将有用的位所在的存储单元中的值取出来与设定值进行比较,从而决定控制程序的流向。在图1所示的流程中,物体到达分检工位(工位3)时,经过条码扫描器,将物体上的条码信息读出来,假设决定物体流向的是条码″的第二位,如果是1物体直线向前运行,如果是5物体拐弯向右运行。通过上面所述的方法将条码的值读回来,经过转换后,存储在MB200开始的14个字节中。那么,条码的第二位存储在MB201中,这时,只要在程序中用MB201中的值和1或5进行比较,根据比较结果就可以完成控制任务。
参考文献
[1]张成海.条码技术与应用[M].北京:清华大学出版社,2003
条码识别 篇4
条形码作为一种及时、准确、可靠、经济的数据输入手段已被物流信息系统采用。在工业发达的国家已经普及应用, 已成为商品独有的世界通用的“身份证”。它在交通运输业、邮电通讯业、物流行业、超市等领域有不寻常的表现[1]。
条码技术 (一维条码、二维条码) 是在计算机技术与信息技术基础上发展的信息存储、传递和识别技术。二维条码是美国SYMBOL公司1991年发明的, 二维条码具有高密度、高可靠性的优点, 可以在有限的几何空间内表示更多的信息, 其应用前景非常广阔。因此, 设计快速而精准的二维条码识别器值得深入研究。
1 二维条码特性和码制
二维条码如图1所示, 二维条码的特性如下[2]。
(1) 高密度。
二维条码通过利用垂直方向的尺寸来提高条码的信息密度。可以把产品信息全部存储在一个二维条码中, 要查看产品信息, 只要用识读设备扫描二维条码即可。
(2) 具有纠错功能。
二维条码的纠错算法与人造卫星和VCD等所用的纠错算法相同。这种纠错机制使得二维条码成为一种安全可靠的信息存储和识别的方法, 这是一维条码无法相比的。
(3) 可以表示多种语言文字。
多数二维条码都具有字节表示模式, 即提供了一种表示字节流的机制。
(4) 可表示图像数据。
既然二维条码可以表示字节数据, 而图像多以字节形式存储, 因此使图像 (如照片、指纹等) 的条码表示成为可能。
(5) 可引入加密机制。
用二维条码表示照片时, 可以先用一定的加密算法将图像信息加密, 然后再用二维条码表示。在识别二维条码时, 再加以一定的解密算法, 就可以恢复所表示的照片。
二维条码有多种码制, 常用的有:PDF417, Data Matrix, Maxi Code, Aztec, QR Code, Veri Code, Ultra Code, Code49和Code 16K码等。根据二维码的实现原理和结构形状的差异, 主要分为堆积层排式、棋盘矩阵式和邮政码三类。其中PDF417目前在我国应用最为广泛[3]。
2 基于DSP的嵌入式二维条码识别器
介绍一种基于数字信号处理器 (digital signal processing, DSP) 的二维条码识别器的基本设计方案。该方案可将解码后的数据实时上传给上位机PC, 本身也存储一定量的解码数据, 可作为便携式二维条码数据采集器单独使用。
2.1 系统处理的流程
系统处理的流程如图2所示。系统的工作过程如下, 通过图像传感器获取二维条码图像。获取的图像首先进行图像降噪、图像校正和二值化等预处理。降噪处理可通过多帧图像平均降噪或递归滤波的方法, 图像校正通过Hough变换, 二值化可采用最小均方根误差的方法确定门限。经过二值化的图像通过不同条空的比例进行码字分割, 分割出的码字和码本中的码字进行模板匹配来确定解码数据。解码后的数据一方面可以写入系统自带的大容量FLASH中, 也可以通过USB接口实时将解码数据上传给PC。
2.2 二维条码识别器的硬件设计
识别器的硬件结构图如图3所示, 下面对主要部件的选择和功用逐一介绍。
2.2.1 DSP芯片的选择
数字信号处理器 (DSP) 在该系统中主要负责图像的预处理和识别匹配。由于二维条码解码算法比较复杂, 对硬件系统的要求比较高, 选用TI公司的TMS320VC5416, 该款芯片具有很高的性价比。它功耗低, 运算速度达160 MIPS。采用模板匹配方式进行码字识别, 对一个码字进行匹配需要8 000个指令周期, 如果平均每个二维条码包含500个码字, 则可计算所需时间为:8 000×500/160 000 000=0.03 s, 可满足系统实时性要求[4]。
2.2.2 图像传感器的选择
条码图像传感器的作用是将二维条码读入系统, 其成像质量的好坏直接影响整个系统的性能。现在常用的图像传感器一般有2种:CCD (charge coupled device) 和CMOS (complementary metal-oxide-semiconductor transistor) [2]。
CCD又分为线阵CCD和面阵CCD。用线阵CCD时进行二维条码扫描需要扫描电动机。在扫描电动机的带动下CCD逐行扫描条码, 因而速度较慢, 但其成本较低。面阵CCD扫描速度块, 成像质量好, 但控制电路复杂, 成本高。
CMOS是最近几年发展起来的一种图像传感器, CMOS对光照强度的要求比CCD的要求高, 但CMOS传感器易于集成, 接口简单, 内部一般集成A/D, 可直接输出灰度级数字信号, 成本也较低, 因而CMOS的应用越来越普及。
该系统中选用Omni Vision公司的黑白CMOS图像传感器OV7120。OV7120为单电源+5 V工作, 分辨率为640×480像素, 成像速度可达30帧/s, 信噪比大于48 dB, 有逐行和隔行两种扫描方式, 并内置伽马校正功能, 输出为8 b灰度信号。
2.2.3 USB接口设计
通用串行总线 (universal serial bus, USB) 是1994年底由Intel为首的7家公司共同开发的PC外设接口标准。它的主要优点如下:数据传输速率明显快于一般的串口;支持控制传输、中断传输、块传输和同步传输4种传输方式;支持热拨插和即插即用;占用的系统资源少;USB 2.0数据传输速度可达480 Mb/s[5,6]。
Philips公司的ISP1581是一种价格低、功能强的高速通用串行总线 (USB) 接口器件, 它完全符合USB 2.0规范, 并为基于微控制器或微处理器的系统提供了高速USB通信能力。此外, ISP1581内部还集成了许多特性, 包括Soft Connect、低频晶体振荡器和集成的终止寄存器。使USB功能很容易地用于PC机的外设。
2.2.4 逻辑控制
整个系统的逻辑控制由一片CPLD (complex programmable logic device) 完成, 主要完成复位、中断和地址译码功能。在此选用Xilinx公司的XC95144XL, 其单电源3.3 V工作, 有144个宏单元, 81个用户I/O引脚。DSP的数据空间、程序空间、I/O空间的寻址是由DS, PS, IS, MSTRB, IOSTRB等控制信号完成, 将这些控制信号连入CPLD, 由CPLD来完成译码, 选通相应器件。在项目的实际设计过程, 采用VHDL硬件描述语言来描述时序控制电路。使用CPLD可以给硬件实现带来极大便利, 可将扩展的按键、LCD等外围设备, 由CPLD接入DSP, 并由CPLD实现基本的控制功能。
2.3 二维条码识别器的软件设计
该系统的软件包括DSP中的软件、USB同PC通信软件。下面给出软件的设计方法。
DSP中软件的设计如图4所示, 其核心是二维条码解码算法。在DSP上的软件由图像数据接收模块、条码解码模块、串口数据发送模块3个功能模块组成。使用TI公司的嵌入式操作系统DSP/BIOS, 以上功能模块可以作为操作系统的几个中断, 算法程序作为标准子程序, 这样使程序结构清晰, 降低了程序的复杂性, 并改善了系统的可靠性与可维护性[7,8]。
USB接口通信的结构体系如图5所示, 包括硬件驱动层、设备枚举、USB事物层、Mass storage 命令层、文件系统、应用层等。
其中驱动层的固件设计是整个通信模块的中心。固件是Fireware对应的中文词, 它是与USB芯片相连的CPU执行的代码, 负责两项任务:一是作为驻留在设备中的内应, 相应主机的列举请求;二是作为智能设备的控制中心[9,10]。固件的开发一般采用前台主循环与后台的ISR之间的通信结构, 这两个全局变量的结构如下:
Typedef union_event_flags
{
Struct_flags
{
Unsigned char timer :1; //时间溢出
Unsigned char bus_reset :1; //总线复位标志
Unsigned char suspend :1; //挂起改变标志
Unsigned char setup_packet :1; //收到setup包
Unsigned char remote_wakeup :1; //远程唤醒标志
Unsigned char in_isr :1; //USB中断服务标志
Unsigned char control_state :2; //
//0:IDEL空闲状态;1:TRANSMIT数据发送状态;
//2:RECEIVE数据接收状态
Unsigned char configuration :1; //配置标志 (0:未配置;1:已经配置)
Unsigned char ep1_rxdone :1; //端点1收到数据标志
Unsigned char ep2_rxdone :1; //端点2收到数据标志
Unsigned char ep1buf_full :1; //端点1输出双缓冲区满标志
Unsigned char ep2buf_full :1; //端点2输出双缓冲区满标志
}bits;
Unsigned short value;
}EVENTFLAGS;
EVENTFLAGS bEVENflags;
3 结 语
该系统可以对二维条码进行快速识别、存储和上传PC。当今信息化的趋势使得人们不得不考虑数据的实时共享, 比如将识别器得到的信息通过网络实时共享更新。可以通过连接PC来实现, 也可以通过在识别器上加装通信模块来实现, 使得信息传递的速度加快, 提高物流系统或是资源管理系统的效率。
参考文献
[1]阮李英.如何应用二维码[J].中国质量技术监督, 2009 (5) :60-61.
[2]邓链, 吴晓兵, 王克涌, 等.信息识别技术[M].北京:机械工业出版社, 2006.
[3]徐常凯, 郑金忠.新型条码在军事物流中的应用研究[J].物流技术, 2006 (7) :236-238.
[4]Texas Instruments.DSP selection guide[M].Texas, USA:Texas Instruments, 2004.
[5]刘青丽.基于USB 2.0接口技术的数据采集系统的设计与实现[D].成都:西南交通大学, 2004.
[6]段军.基于USB的数据采集和控制系统的开发与研究[D].南京:南京理工大学, 2004.
[7]陈兴刚, 刘振华, 郭宝华.FRID技术与条码技术在军事物流领域的联合应用[J].包装工程, 2006, 27 (1) :87-89.
[8]郭颖.基于DSP的新型图形发生器主控制器的研究[D].北京:中国科学院电工研究所, 2004.
[9]张剑.基于USB总线的便携式数据采集系统设计[D].南京:南京理工大学, 2004.