張靜文,李宏偉,趙 發(fā)
(安徽工程大學(xué) 電氣工程學(xué)院,安徽 蕪湖 241000)
?
一種基于RFID的超市收銀系統(tǒng)
張靜文,李宏偉,趙發(fā)
(安徽工程大學(xué) 電氣工程學(xué)院,安徽 蕪湖 241000)
為了節(jié)省消費者排隊等候人工結(jié)算的時間和減少超市對收銀系統(tǒng)的投入成本,設(shè)計了一種基于RFID的超市收銀系統(tǒng)。將RFID標簽嵌在超市商品上,被消費者選購到購物筐中。結(jié)賬時,利用RFID技術(shù)使與超市結(jié)算終端相連接的RFID閱讀器一次性掃描購物筐中所有商品,實現(xiàn)消費者自助結(jié)算,可以方便消費者購物并且能減輕超市結(jié)算壓力,很大程度上提高了生活效率。
FRID;超市收銀系統(tǒng);自助結(jié)算
超市作為當(dāng)今國內(nèi)銷售商品最廣、數(shù)量最多和人流量最多的一種市場,有種類繁多的商品信息和其他信息需要處理,而對于這些信息的管理存在很多缺陷[1-2],主要表現(xiàn)在收銀系統(tǒng)和商品防盜系統(tǒng)。其中收銀系統(tǒng)主要是由于還處于人工逐個掃描商品,消費者排隊付現(xiàn)的狀態(tài),往往浪費了消費者大量的寶貴時間和加重了超市對收銀系統(tǒng)的投入。射頻識別(Radio Frequency Identification,RFID),即電子標簽和無線射頻識別,是一種通信技術(shù)[3],它采用感應(yīng)識別特定的電子標簽(RFID Tags)發(fā)出的無線電波特定頻段的能量,進行非接觸式雙向通信,達成目標識別和數(shù)據(jù)交換目的的自動識別技術(shù)[4-5]。正是RFID標簽采用無線電射頻同時對多個物體進行識讀這個2個特點,為解決上面的問題提供一個完美的方法。將RFID標簽嵌入超市商品上,消費者所選購的商品放在購物筐中,利用與結(jié)算終端相連接的RFID閱讀器一次性掃描購物筐中的所有商品,顧客實現(xiàn)自主結(jié)算。前人對本系統(tǒng)的設(shè)計還是停留在構(gòu)思的階段,本文將給出了相應(yīng)的模塊的實現(xiàn)代碼和算法?;赗FID標簽所具備的信息容量大和可修改的功能,本設(shè)計將超市的商品防盜系統(tǒng)整合到超市收銀系統(tǒng)當(dāng)中。
本系統(tǒng)包括硬件設(shè)計和軟件設(shè)計,硬件部分主要是RFID標簽、RFID閱讀器和結(jié)算終端;軟件部分主要包括防止錯誤識別的算法和數(shù)據(jù)管理。
1.1RFID標簽
RFID標簽由耦合元件及芯片組成,每個RFID標簽具有唯一的電子編碼,附著在物體上標識目標對象。RFID標簽分為有源標簽、無源標簽和半有源半無源標簽,根據(jù)超市商品的特點,本文選擇無源RFID標簽[6]。無源RFID標簽如圖1所示。工作時,標簽在磁場中接收閱讀器發(fā)出的射頻信號,憑借感應(yīng)電流所獲得的能量發(fā)送出存儲在芯片中的商品的價格、ID和保質(zhì)期等信息,閱讀器讀取信息并解碼后,送至中央信息系統(tǒng)進行有關(guān)數(shù)據(jù)處理。
圖1 無源RFID標簽
1.2RFID閱讀器
RFID閱讀器由實時處理器、操作系統(tǒng)、虛擬移動內(nèi)存和一個小型的內(nèi)置模塊(內(nèi)含收發(fā)裝置)組成。RFID閱讀器具有防止數(shù)據(jù)沖撞的特點,所以RFID閱讀器可以快速和準確地同時處理多件商品[7-8]。而且根據(jù)功率的大小,RFID閱讀器和RFID標簽之間有效距離可達到1 500 m。
本設(shè)計中主要2次用到RFID閱讀器,第一次是用來掃描購物車中的商品,然后生成商品清單上傳結(jié)算終端進行后續(xù)處理。第二次是將RFID閱讀器嵌入到超市出口的防盜系統(tǒng)中,取代超市中傳統(tǒng)的電子商品防盜系統(tǒng)(Electronic Article Surveillance,EAS)。當(dāng)消費者攜帶商品走出超市時,位于防盜系統(tǒng)中的RFID閱讀器將快速掃描消費者袋中的商品的ID,并與結(jié)算處的RFID閱讀器生成的商品清單比對。若發(fā)現(xiàn)有未付款的商品,及時報警。
1.3結(jié)算終端
結(jié)算終端主要是用來給消費者自助付款,主要針對兩類消費者:會員和非會員。會員直接利用超市會員卡付款,非會員則可以選擇銀聯(lián)或現(xiàn)金付款。待消費者付款找零以后,結(jié)算終端打印清單,并將清單上傳超市數(shù)據(jù)庫,告訴數(shù)據(jù)庫本清單商品已被購買,指示數(shù)據(jù)庫及時對超市中的商品數(shù)量做出及時的調(diào)整,方便超市的管理者對超市的貨物進行采購補充。
結(jié)算終端上行連接超市數(shù)據(jù)庫,下行通過RS-485與RFID閱讀器相連接。選擇利用RS-485與RFID閱讀器相連接,主要考慮RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,增強了整個系統(tǒng)的穩(wěn)定性。
2.1防止錯誤識別
防止錯誤識別主要是指RFID閱讀器對購物筐的商品的識別,如果最后商品掃描時只掃描一次,對于機器的正確性還是存在疑問的,所以本設(shè)計在對最后的商品識別的時候,采用多次掃描比對列表的方法。當(dāng)消費者將購物筐放在掃描區(qū)的時候,RFID閱讀器會對購物筐中的商品連續(xù)進行3次掃描做出3個商品清單(list),將掃描到的貨號以字符串的個數(shù)輸入到3個數(shù)組中,通過語句intlen=sizeof(list)/sizeof(list[0])計算出出數(shù)組中的元素,即購物筐中商品的數(shù)量;然后利用冒泡法對掃描到的數(shù)據(jù)進行排序,若2個list完全相同,只要對比了2個list中相同下標的元素就可以了,省去遍歷第二個list的過程,提升程序的運行效率;最后比對這3個商品清單,如果有2個以上的清單中的商品是一致的,則認為RFID掃描的數(shù)據(jù)為正確的,清單將會上傳到結(jié)算終端。如果3個清單的數(shù)據(jù)都不一致,則需要選擇人工掃描商品的方法。
在算法確認之前,曾認為對RFID掃描到的數(shù)據(jù)進行排序是不必要的,甚至?xí)档统绦虻倪\行效率,主要原因是當(dāng)在大數(shù)據(jù)面前,先將數(shù)據(jù)排序后查找數(shù)據(jù)會縮短時間,然而那是對大數(shù)據(jù)而言的??紤]到實際情況,消費者到超市中購物時,并不會使購買商品的個數(shù)成為大數(shù)據(jù),反過來思考,購物筐也裝不下大數(shù)據(jù),所以對將數(shù)據(jù)進行排序再比較的方法運用到小數(shù)據(jù)上產(chǎn)生了疑問,為解決這個問題本設(shè)計做了2種算法在程序執(zhí)行效率上的對比,如表1所示(單位:ms),2種算法消耗時間差值的絕對值曲線如圖2所示。
表1 排序和未排序的算法的運行效率比較
從表1和圖2中可以得出,先排序再比較要比直接比較所消耗的時間要少,而且數(shù)據(jù)越大,差別越明顯,小數(shù)據(jù)時也有明顯的優(yōu)勢,所以本設(shè)計采用先排序再比較的算法。
圖2 2種算法消耗時間的差值絕對值
比較算法思想:先比較,3個數(shù)組的元素個數(shù)是否相同,如果3個數(shù)組的元素個數(shù)都不相同直接請求人工掃描,從而減少數(shù)組中貨號的比較工作,提高比較算法的運行速度。如果3次掃描的購物筐中貨物數(shù)量存在2個以上相等,則進行貨號的比較,分別是list1和list2比較、list1和list3比較以及l(fā)ist2好list3比較。如果list1和list2的貨號都相等并且循環(huán)次數(shù)達到list1和list2的長度,表示掃描正確直接跳出,不在進行后面list1和list3比較與list2和list3比較,這樣同樣提高了算法的效率。若list1和list2的貨號不完全相等,則進行后續(xù)的比較。
下面是算法的具體代碼:
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數(shù)據(jù)管理 本系統(tǒng)分為前臺程序和后臺程序,后臺程序是系統(tǒng)初始化和系統(tǒng)維護經(jīng)常使用的一部分程序,主要任務(wù)就是建立基本數(shù)據(jù)、進出貨盤點和打印報表;后臺程序主要負責(zé)的都是管理上的功能,當(dāng)后臺建立完整的數(shù)據(jù)后,前臺才能順利地進行商品數(shù)據(jù)的操作。 2.2.1前臺編譯環(huán)境的選擇 Microsoft Visual Studio(VS)是美國微軟公司的開發(fā)工具包系列產(chǎn)品,VS2013是一個基本完整的開發(fā)工具集,它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具和集成開發(fā)環(huán)境(IDE)等。VS2013改進對C++語言的支持,新增了一系列編輯器的功能,性能獲得了優(yōu)化并改進了代碼質(zhì)量,增強了代碼調(diào)試和性能分析,新的XAML UI響應(yīng)工具可幫助分析XAML應(yīng)用的響應(yīng)能力;C++AMP增強,改進圖形調(diào)試等。VS2013提供了大量的控件,這些控件可用于設(shè)計界面和實現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設(shè)計過程,從而有效地提高了應(yīng)用程序的運行效率和可靠性。此外VS2013提供導(dǎo)出SQL Server的便捷方法,方便訪問SQL Server,包括與SQLServer中數(shù)據(jù)庫建立連接、表的建立與刪除、數(shù)據(jù)的追加、更新和刪除等方法。 2.2.2后臺數(shù)據(jù)庫的實現(xiàn)選擇 Microsoft公司的SQL Server是關(guān)系型網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng),它的工作環(huán)境為Microsoft Windows NT系列或Microsoft Windows98。SQL Server與Microsoft公司的其他軟件,如Microsoft Office或MicrosoftVisual Studio,設(shè)計風(fēng)格一致,并能相互配合。 SQL Server具有分布式數(shù)據(jù)庫和數(shù)據(jù)庫功能,支持客戶機/服務(wù)器機構(gòu),并能夠進行分布式事務(wù)處理和聯(lián)機分析處理[9-10]。SQL Server具有強大的數(shù)據(jù)庫管理功能,它提供豐富的管理工具以支持數(shù)據(jù)庫的安全性管理、完整性管理和作業(yè)管理。SQLServer還具有強大的網(wǎng)絡(luò)功能,支持發(fā)布WEB頁面和接收電子郵件,SQL Server支持ANSISQL(標準SQL),并將標準SQL擴展成為更加實用的Transact-SQL。 利用射頻識別技術(shù)所設(shè)計出的及結(jié)算和防盜于一體的超市收銀系統(tǒng),不僅大大節(jié)省了消費者的排隊時間,給消費者帶來了一種全新的生活方式,并為超市大大減少了對收銀系統(tǒng)和防盜系統(tǒng)的開支,使我們的生活更輕松、更便捷。 [1]殷曦希,楊峰.超市收銀管理系統(tǒng)的分析和設(shè)計[J].商場現(xiàn)代化,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技術(shù)的超市自動計費付費系統(tǒng)的設(shè)計與開發(fā)[J].電子技術(shù)與軟件工程,2013(14):48-50. [4]三宅信一郎,周文豪.RFID物聯(lián)網(wǎng)世界最新應(yīng)用[M].北京:北京理工大學(xué)出版社,2012. [5]MiyukiO,ShinjiH.Development of RFID Application[J].福井工業(yè)高等専門學(xué)校研究紀要·自然科學(xué)·工學(xué),2008(42):9-12. [6]無源RFID標簽的結(jié)構(gòu)[J].中國電子商情(RFID技術(shù)與應(yīng)用),2009,4(1):60-62. [7]武岳山.無源RFID系統(tǒng)中多標簽識別的基本原理[J].中國自動識別技術(shù),2008(4):48-52. [8]劉曉崗,宋高俊.基于RFID防碰撞算法綜述[J].無線互聯(lián)科技,2015(5):26-27. [9]夏天.大型超市管理系統(tǒng)的方案設(shè)計[J].華中農(nóng)業(yè)大學(xué)學(xué)報:社會科學(xué)版,2003(3):39-43. [10]閆旭.淺談SQLServer數(shù)據(jù)庫的特點和基本功能[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 引用格式:張靜文,李宏偉,趙發(fā).一種基于RFID的超市收銀系統(tǒng)[J].無線電通信技術(shù),2016,42(5):71-74. 2016-06-07 安徽省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(AH201410363182) 張靜文(1994—),女,學(xué)士,主要研究方向:主要研究方向:電子技術(shù)應(yīng)用、無線通信等。趙發(fā)(1983—),碩士,講師。主要研究方向:無線通信。 TN911.23 A 1003-3114(2016)05-71-043 結(jié)束語