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