一种基于RFID的超市收银系统
2016-10-11张静文李宏伟
张静文,李宏伟,赵 发
(安徽工程大学 电气工程学院,安徽 芜湖 241000)
一种基于RFID的超市收银系统
张静文,李宏伟,赵发
(安徽工程大学 电气工程学院,安徽 芜湖 241000)
为了节省消费者排队等候人工结算的时间和减少超市对收银系统的投入成本,设计了一种基于RFID的超市收银系统。将RFID标签嵌在超市商品上,被消费者选购到购物筐中。结账时,利用RFID技术使与超市结算终端相连接的RFID阅读器一次性扫描购物筐中所有商品,实现消费者自助结算,可以方便消费者购物并且能减轻超市结算压力,很大程度上提高了生活效率。
FRID;超市收银系统;自助结算
0 引言
超市作为当今国内销售商品最广、数量最多和人流量最多的一种市场,有种类繁多的商品信息和其他信息需要处理,而对于这些信息的管理存在很多缺陷[1-2],主要表现在收银系统和商品防盗系统。其中收银系统主要是由于还处于人工逐个扫描商品,消费者排队付现的状态,往往浪费了消费者大量的宝贵时间和加重了超市对收银系统的投入。射频识别(Radio Frequency Identification,RFID),即电子标签和无线射频识别,是一种通信技术[3],它采用感应识别特定的电子标签(RFID Tags)发出的无线电波特定频段的能量,进行非接触式双向通信,达成目标识别和数据交换目的的自动识别技术[4-5]。正是RFID标签采用无线电射频同时对多个物体进行识读这个2个特点,为解决上面的问题提供一个完美的方法。将RFID标签嵌入超市商品上,消费者所选购的商品放在购物筐中,利用与结算终端相连接的RFID阅读器一次性扫描购物筐中的所有商品,顾客实现自主结算。前人对本系统的设计还是停留在构思的阶段,本文将给出了相应的模块的实现代码和算法。基于RFID标签所具备的信息容量大和可修改的功能,本设计将超市的商品防盗系统整合到超市收银系统当中。
1 硬件设计
本系统包括硬件设计和软件设计,硬件部分主要是RFID标签、RFID阅读器和结算终端;软件部分主要包括防止错误识别的算法和数据管理。
1.1RFID标签
RFID标签由耦合元件及芯片组成,每个RFID标签具有唯一的电子编码,附着在物体上标识目标对象。RFID标签分为有源标签、无源标签和半有源半无源标签,根据超市商品的特点,本文选择无源RFID标签[6]。无源RFID标签如图1所示。工作时,标签在磁场中接收阅读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的商品的价格、ID和保质期等信息,阅读器读取信息并解码后,送至中央信息系统进行有关数据处理。
图1 无源RFID标签
1.2RFID阅读器
RFID阅读器由实时处理器、操作系统、虚拟移动内存和一个小型的内置模块(内含收发装置)组成。RFID阅读器具有防止数据冲撞的特点,所以RFID阅读器可以快速和准确地同时处理多件商品[7-8]。而且根据功率的大小,RFID阅读器和RFID标签之间有效距离可达到1 500 m。
本设计中主要2次用到RFID阅读器,第一次是用来扫描购物车中的商品,然后生成商品清单上传结算终端进行后续处理。第二次是将RFID阅读器嵌入到超市出口的防盗系统中,取代超市中传统的电子商品防盗系统(Electronic Article Surveillance,EAS)。当消费者携带商品走出超市时,位于防盗系统中的RFID阅读器将快速扫描消费者袋中的商品的ID,并与结算处的RFID阅读器生成的商品清单比对。若发现有未付款的商品,及时报警。
1.3结算终端
结算终端主要是用来给消费者自助付款,主要针对两类消费者:会员和非会员。会员直接利用超市会员卡付款,非会员则可以选择银联或现金付款。待消费者付款找零以后,结算终端打印清单,并将清单上传超市数据库,告诉数据库本清单商品已被购买,指示数据库及时对超市中的商品数量做出及时的调整,方便超市的管理者对超市的货物进行采购补充。
结算终端上行连接超市数据库,下行通过RS-485与RFID阅读器相连接。选择利用RS-485与RFID阅读器相连接,主要考虑RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,增强了整个系统的稳定性。
2 软件设计
2.1防止错误识别
防止错误识别主要是指RFID阅读器对购物筐的商品的识别,如果最后商品扫描时只扫描一次,对于机器的正确性还是存在疑问的,所以本设计在对最后的商品识别的时候,采用多次扫描比对列表的方法。当消费者将购物筐放在扫描区的时候,RFID阅读器会对购物筐中的商品连续进行3次扫描做出3个商品清单(list),将扫描到的货号以字符串的个数输入到3个数组中,通过语句intlen=sizeof(list)/sizeof(list[0])计算出出数组中的元素,即购物筐中商品的数量;然后利用冒泡法对扫描到的数据进行排序,若2个list完全相同,只要对比了2个list中相同下标的元素就可以了,省去遍历第二个list的过程,提升程序的运行效率;最后比对这3个商品清单,如果有2个以上的清单中的商品是一致的,则认为RFID扫描的数据为正确的,清单将会上传到结算终端。如果3个清单的数据都不一致,则需要选择人工扫描商品的方法。
在算法确认之前,曾认为对RFID扫描到的数据进行排序是不必要的,甚至会降低程序的运行效率,主要原因是当在大数据面前,先将数据排序后查找数据会缩短时间,然而那是对大数据而言的。考虑到实际情况,消费者到超市中购物时,并不会使购买商品的个数成为大数据,反过来思考,购物筐也装不下大数据,所以对将数据进行排序再比较的方法运用到小数据上产生了疑问,为解决这个问题本设计做了2种算法在程序执行效率上的对比,如表1所示(单位:ms),2种算法消耗时间差值的绝对值曲线如图2所示。
表1 排序和未排序的算法的运行效率比较
从表1和图2中可以得出,先排序再比较要比直接比较所消耗的时间要少,而且数据越大,差别越明显,小数据时也有明显的优势,所以本设计采用先排序再比较的算法。
图2 2种算法消耗时间的差值绝对值
比较算法思想:先比较,3个数组的元素个数是否相同,如果3个数组的元素个数都不相同直接请求人工扫描,从而减少数组中货号的比较工作,提高比较算法的运行速度。如果3次扫描的购物筐中货物数量存在2个以上相等,则进行货号的比较,分别是list1和list2比较、list1和list3比较以及list2好list3比较。如果list1和list2的货号都相等并且循环次数达到list1和list2的长度,表示扫描正确直接跳出,不在进行后面list1和list3比较与list2和list3比较,这样同样提高了算法的效率。若list1和list2的货号不完全相等,则进行后续的比较。
下面是算法的具体代码:
if((len1==len2)||(len1==len3)||(len2==len3))
{
inti;
for(i=0;i { if(list1[i]==list2[i]) { cout<<″list1[″< if((i+1)==len1 &&(i+1)==len2) gotoScanSuccesse; } else { cout<<″list1[″< goto CompareList1WithList3; } } CompareList1WithList3: for(i=0;i { if(list1[i]==list3[i]) { cout<<″list1[″< if((i+1)==len1 &&(i+1)==len3) gotoScanSuccesse; } else { cout<<″list1[″< gotoCompareList2WithList3; } } CompareList2WithList3: for(i=0;i { if(list2[i]==list3[i]) { cout<<″list2[″< if((i+1)==len2 &&(i+1)==len3) ScanSuccesse:cout<<″机器扫描成功!″< } else { cout<<″请求人工扫描″< gotoEndLine; } } EndLine:; } else cout<<″请求人工扫描″< 2.2数据管理 本系统分为前台程序和后台程序,后台程序是系统初始化和系统维护经常使用的一部分程序,主要任务就是建立基本数据、进出货盘点和打印报表;后台程序主要负责的都是管理上的功能,当后台建立完整的数据后,前台才能顺利地进行商品数据的操作。 2.2.1前台编译环境的选择 Microsoft Visual Studio(VS)是美国微软公司的开发工具包系列产品,VS2013是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具和集成开发环境(IDE)等。VS2013改进对C++语言的支持,新增了一系列编辑器的功能,性能获得了优化并改进了代码质量,增强了代码调试和性能分析,新的XAML UI响应工具可帮助分析XAML应用的响应能力;C++AMP增强,改进图形调试等。VS2013提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效地提高了应用程序的运行效率和可靠性。此外VS2013提供导出SQL Server的便捷方法,方便访问SQL Server,包括与SQLServer中数据库建立连接、表的建立与删除、数据的追加、更新和删除等方法。 2.2.2后台数据库的实现选择 Microsoft公司的SQL Server是关系型网络数据库管理系统,它的工作环境为Microsoft Windows NT系列或Microsoft Windows98。SQL Server与Microsoft公司的其他软件,如Microsoft Office或MicrosoftVisual Studio,设计风格一致,并能相互配合。 SQL Server具有分布式数据库和数据库功能,支持客户机/服务器机构,并能够进行分布式事务处理和联机分析处理[9-10]。SQL Server具有强大的数据库管理功能,它提供丰富的管理工具以支持数据库的安全性管理、完整性管理和作业管理。SQLServer还具有强大的网络功能,支持发布WEB页面和接收电子邮件,SQL Server支持ANSISQL(标准SQL),并将标准SQL扩展成为更加实用的Transact-SQL。 利用射频识别技术所设计出的及结算和防盗于一体的超市收银系统,不仅大大节省了消费者的排队时间,给消费者带来了一种全新的生活方式,并为超市大大减少了对收银系统和防盗系统的开支,使我们的生活更轻松、更便捷。 [1]殷曦希,杨峰.超市收银管理系统的分析和设计[J].商场现代化,2012(2):6-7. [2]Prater E,Frazier G V,Reyes P M.Future Impacts of RFIDon E-Supply Chains in Grocery Retailing[J].Supply Chain Management an International Journal,2005,10(2):134-142. [3]章乐.基于RFID技术的超市自动计费付费系统的设计与开发[J].电子技术与软件工程,2013(14):48-50. [4]三宅信一郎,周文豪.RFID物联网世界最新应用[M].北京:北京理工大学出版社,2012. [5]MiyukiO,ShinjiH.Development of RFID Application[J].福井工業高等専門学校研究紀要·自然科学·工学,2008(42):9-12. [6]无源RFID标签的结构[J].中国电子商情(RFID技术与应用),2009,4(1):60-62. [7]武岳山.无源RFID系统中多标签识别的基本原理[J].中国自动识别技术,2008(4):48-52. [8]刘晓岗,宋高俊.基于RFID防碰撞算法综述[J].无线互联科技,2015(5):26-27. [9]夏天.大型超市管理系统的方案设计[J].华中农业大学学报:社会科学版,2003(3):39-43. [10]闫旭.浅谈SQLServer数据库的特点和基本功能[J].价值工程,2012(22):229-231. A Supermarket Cashier System Based on RFID ZHANG Jing-wen,LI Hong-wei,ZHAO Fa (College of Electrical Engineering,Anhui Polytechnic University,Wuhu Anhui 241000,China) In order to save customers’ time of queuing to pay and reduce the cost on supermarket cashier system,we design a supermarket cashier system based on RFID.Consumers choose and buy goods embedded with RFID tags in the shopping basket.The RFID reader connected to the supermarket terminal can scan all the goods in the shopping basket one-time by using RFID technology when checkout.Consumers realize self-help and settlement.It can facilitate the consumer shopping,lessen the pressure balance,and greatly improve the efficiency of life. FRID;Supermarket cashier system;Independent settlement 10.3969/j.issn.1003-3114.2016.05.18 引用格式:张静文,李宏伟,赵发.一种基于RFID的超市收银系统[J].无线电通信技术,2016,42(5):71-74. 2016-06-07 安徽省大学生创新创业训练计划项目(AH201410363182) 张静文(1994—),女,学士,主要研究方向:主要研究方向:电子技术应用、无线通信等。赵发(1983—),硕士,讲师。主要研究方向:无线通信。 TN911.23 A 1003-3114(2016)05-71-043 结束语