李敏,周先飞,钱峰
(芜湖职业技术学院信息工程学院,安徽芜湖241006)
基于无线传输的条形码检错系统设计
李敏,周先飞,钱峰
(芜湖职业技术学院信息工程学院,安徽芜湖241006)
为了检测产品条形码是否正确,采用PC和条形码读码器检测、比对条形码数据,在PC端采用VB软件开发友好的人机界面显示条形码值以及设置相应参数,并进行数据的记录保存。同时将处理结果通过串口发送至飞思卡尔单片机,单片机再将信号通过SPI总线传输至nRF24L01无线模块发送端,接收端的nRF24L01无线模块将信号通过SPI总线传至单片机,根据条形码正确与否控制步进电机运行,并带动码盘输出条形码。该系统操作简单,可用于教学实训场合或企业产品质检环节。
无线传输;条形码;检错系统
目前,在企业产品出厂前,均要在产品上贴上一维或二维条形码,而且多数是人工操作。由于条形码数字位数较长,如果工人对每个条形码进行人工检验,则是耗工耗时[1],而且随着工人的视觉疲劳,很容易出现错贴和漏贴条形码,将导致不能正确反映产品信息,对于企业产品追溯和质量管理影响极大。为了快速且准确地贴上条形码,笔者设计了条形码检错系统,将不在指定范围的或错误条形码挑出,保证出厂产品的条形码准确无误,提高工作效率。
系统由上、下位机构成,上位机用VB软件开发界面和读取条码值程序,其功能是PC通过串口连接到条形码读码机上,将每次读码器扫描值显示在计算机窗体的列表框中,并与事先设定的条形码数据进行一一比对,防止由于误操作引起的条形码错误。下位机平台主要由飞思卡尔单片机、步进电机驱动模块、无线传输模块和语音模块组成。上位机通过USB转串口与飞思卡尔单片机连接并通过SPI总线与无线模块通信,将数据传至下位机控制步进电机运行,当数据无效时,处理错误条形码后,通过复位键重新启动系统。具体系统框图见图1。
图1 条形码检错系统总体框图Fig.1Overall diagram of barcode error detection system
1.1 条形码检错系统步进电机控制模块
该系统采用飞思卡尔16位单片机MC9S12G128作为核心处理器,选用2相6线式型号为57BYGH001步进电机,根据被检验的条形码宽度,步距角设置为8细分,考虑到步进电机功率以及设计余量,系统采用TB6560作为步进电机驱动模块。为防止信号干扰和负载故障导致单片机损坏[2],在驱动模块与单片机之间添加3只10 Mbit/s光耦HCPL-2611,光耦输入接飞思卡尔单片机的输入输出端口PP0、PB2、PB3,光耦输出分别控制驱动模块TB6560的时钟端、方向控制端和使能控制端。根据选定步进电机参数要求,驱动模块的工作电压选定5V。
1.2 条形码检错系统无线传输模块
为减少系统连接线,采用目前使用较广泛的nRF24L01为核心芯片的无线传输模块,此模块具有RX自动应答和TX自动重发功能。PC机与飞思卡尔单片机通过串口连接将数据通过SPI传输至nRF24L01的接收端,单片机的PS7接无线模块的SPI片选使能端,PS6接SPI总线时钟信号,PS5和PS4分别接SPI总线的输入和输出,PT0接无线模块的中断输出口,PA0接无线模块的接收和发送模式选择端,硬件连接见图2。
图2 条形码检错系统硬件接线图Fig.2Hardware wiring diagram of barcode error detection system
1.3 条形码检错系统语音输出模块
为了提醒操作人员对错误条形码识别和处理,该系统接入了ISD4004语音录放模块芯片。飞思卡尔单片机PJ7接ISD4004的SPI使能信号端,PJ6作为SPI时钟信号,PJ5和PJ4分别作为SPI总线的输入输出信号,PT1作为检测EOM或OVF信号,PT2作为行地址时钟信号,ISD4004工作电压为3V。当出现条形码错误或不在指定范围时则报错,具体对ISD4004的操作如下:首先对器件发上电指令,等待一段时间延迟后,向ISD4004发报警音频的起始地址,并发送放音命令,直到出现EOM中断信号,结束此次操作[3]。音频输出端接运放进行信号放大并输出至扬声器,实现报警音频输出,硬件连接见图2。
2.1 条形码检错系统下位机设计
系统上电初始化完成后,等待有效信号,此信号分为当前条形码有效和复位按键输入。上位机判断出当前条形码有效时,根据固定帧格式发送指令给下位机,帧格式如表1所示。帧开始发送4个字节Preamble byte便于下位机准备接收,0x55作为帧头,表示有效数据,当Funciton_1为0x01时代表条形码有效,0x00代表条形码错误,Funciton_2和Function_3为保留字节,用于功能扩展,CheckSum字节用于从Header到Function_3共4个字节的8位CRC校验。
表1 发送至下位机的帧格式Tab.1Date frame format senting to the lower machine
当下位机接收到有效条形码信号时,MCU发出指令控制TB6560驱动步进电机前进一个步进,进行下一个条形码扫描;而当条形码无效时,操作人员在处理错误条形码后,通过复位按键控制步进电机前进一个步进,再扫描下一个条形码,程序流程图如图3所示。在单片机与计算机数据传输过程中,会发送反馈信号告知上位机数据已经收到,如果上位机在设定时间内未收到反馈信号则重发数据帧,直到收到数据或达到自动重发计数为止,超时则输出报警信号。
图3 下位机程序流程图Fig.3Lower machine program flowchart
2.2 条形码检错系统上位机设计
系统上位机软件采用VB开发。系统初始化PC串口并设置数据通信格式和串口号,查询条形码扫描枪是否接到串口上,如连接设备失败,则提示出错并返回。当条形码扫描枪已正常接上后,判断是否有接收事件,若检测缓冲区中数据有效,则获取条形码值,同时将数据解析出英文字符和数值,判断过程分为两部分,第一部分判断字符串与设定值是否相同,保证是同一批次产品;第二部分是数值比较,保证条形码数据在设定的区间范围内。如果前两级判断正确,则PC显示条形码值并加入显示队列;如果接收数据与设定不一致,上位机发无效信号至下位机并将本次数据记录保存,以便产品管理,设计流程图如图4所示。
图4 上位机条形码检错程序流程图Fig.4Program flowchart of upper machine barcode error detection
为验证软件设计的正确性,将市场上的一些商品条形码裁剪下来后,制作成条形码序列并进行检错,系统检错界面如图5所示。首先设置此批次产品的条形码区间在最小值和最大值之间,当按下启动键后,扫描当前条形码,并在扫描值显示框中显示正确条形码,同时在状态信息框中显示条形码正确,如果扫描的条形码错误或不在正确区间内,则扫描值显示框将不显示任何信息,同时在状态信息框中提示条形码出错。在进行下一次扫描时,界面的上一次扫描条码框里将显示刚刚扫过的正确条码,通过此框即可快速查看到已经扫描的连续条形码值,便于比对检错,同时可以通过清除条形码按键清除以前所检测的条形码序列。
图5 条形码检错系统界面Fig.5Barcode error detection system interface
系统通过条形码扫描枪读取数据,将数据显示在PC机上,并与设置值进行比对判断条形码的有效性,根据判断值,采用无线模块通过SPI总线将判断结果发至飞思卡尔单片机控制步进电机带动条形码盘,系统可显示条形码数据并记录保存,最终以表格文件输出打印。系统提高了产品条形码检错效率,解决了人工检验条形码的繁琐工序,可用于相关专业教学实训以及企业的产品条形码检错。
(References)
[1]轩民威,赵鹤鸣,游善红.C语言在条形码检错方面的应用[J].电脑知识与技术,2011,7(7):1575-1577.
[2]王党利,宁生科,马宝吉.基于TB6560的步进电机驱动电路设计[J].单片机与嵌入式系统应用,2010(1):41-43.
[3]冯志慧,许利军,薛鹏涛,等.一种基于单片机控制的ISD4004语音芯片应用电路[J].微计算机信息,2003,19(7):55-56.
(责任编辑:曾婷)
Design of Barcode Error Detective System Based on Wireless Transmission
LI Min,ZHOU Xianfei,QIAN Feng
(Institute of Information Engineering,Wuhu Institute of Technology,Wuhu 241006,Anhui,China)
In order to test the correctness of barcode,the system uses PC and reader of barcode to detect and compare the data of barcode,and uses man-machine interface which is developed by VB software to display the barcode value and set the appropriate parameters,then records and keeps da⁃ta.Meanwhile the results are sent to Freescale single chip microcomputer through the serial port,then the signal is transferred to the nRF24L01 wireless module sender through SPI bus.At last,the signal is sent into the single chip microcomputer by the nRF24L01 wireless module through SPI bus,then controls the operation of stepper motor according to the correctness of barcode and output the barcode.The system is easy to operate,can be used for teaching and product quality detection.
wireless transmission;barcode;error detective system
TP274
A
1673-0143(2014)03-0063-04
2014-03-25
安徽省校企合作实践教育基地项目(2012sjjd047);安徽省信息技术专业群教学团队项目(2013jxtd051)
李敏(1977—),男,讲师,硕士,研究方向:检测技术与自动化装置。