超市自助購物系統(tǒng)設(shè)計原理與實現(xiàn),軟硬件協(xié)同
第1章引言
本文檔主要內(nèi)容在于介紹超市自助購物系統(tǒng)的開發(fā)背景,設(shè)計原理,和具體實現(xiàn),同時介紹系統(tǒng)使用方法,以期達到完善該系統(tǒng)并推廣應(yīng)用的目的。
本文檔的讀者對象是應(yīng)用此系統(tǒng)的超市方,普通購物者也可閱讀此文檔,但不用關(guān)注具體技術(shù)細節(jié),只需要了解用戶使用方法即可。
§1.2項目背景
每次去超市買東西時,收銀臺前面長長的隊伍是一個讓所有人都發(fā)愁的問題。收銀員已經(jīng)用最快的速度去刷取物品上的條形碼,但結(jié)賬的整體時間依舊讓顧客等得不耐煩……
RFID射頻識別技術(shù)的高速發(fā)展,對于上面所述問題的解決提供了可能性。我們想利用RFID技術(shù)的優(yōu)勢,開發(fā)一套嶄新的超市自助購物系統(tǒng),大大縮短顧客結(jié)款的時間。
第2章系統(tǒng)結(jié)構(gòu)
§2.1系統(tǒng)框架
§2.2購物車模塊操作流程
§2.3收銀臺模塊操作流程
§2.4系統(tǒng)特點
當(dāng)前的超市結(jié)算系統(tǒng)主要依靠收銀臺處掃描商品包裝表面的條形碼來統(tǒng)計價格。條形碼系統(tǒng)的結(jié)算速度受到很大的限制,這已經(jīng)成為當(dāng)前超市結(jié)算系統(tǒng)被消費者詬病的主要原因。相比之下,基于單片機和RMU系列開發(fā)板的超市自助購物系統(tǒng)具有很多獨特的優(yōu)勢。
2.4.1 等待時間短
當(dāng)前的超市結(jié)算系統(tǒng)完全是在收銀臺處對商品信息進行統(tǒng)計。超市自助購物系統(tǒng)把這段時間分成了兩部分,并且把最耗時間的部分——一件一件掃描購買的商品,轉(zhuǎn)移到購物車上進行。在購物的同時,完成當(dāng)前車內(nèi)商品總價的計算。收銀臺處只需進行結(jié)賬環(huán)節(jié),不用經(jīng)歷掃描條形碼的漫長過程。
2.4.2 支付形式多樣化
超市自助購物系統(tǒng)有兩種支付方式,現(xiàn)金支付和會員卡余額支付?,F(xiàn)金支付就是當(dāng)前超市中普遍采用的方式,支付過程比較麻煩。除此之外,購物者還可以選擇會員卡余額支付。只要會員卡賬戶余額大于本次消費金額,就可以利用余額支付。
2.4.3 完善的會員卡體系
會員卡在超市自助購物系統(tǒng)中發(fā)揮著不可替代的作用。會員卡中包括的信息有:會員卡號,會員卡密碼,會員卡余額,會員卡積分。
選購好物品進行結(jié)算時購物車模塊會把本次消費金額寫到自己的會員卡中,這個過程中需要會員卡密碼。利用會員卡余額支付時也需要會員卡密碼。根據(jù)每次消費金額計算出本次消費的積分,累加到會員卡積分中。
2.4.4 系統(tǒng)功耗小
購物車模塊選取了低功耗的MSP430單片機和RMU900+開發(fā)板(配套小功率天線),完全可以利用5V的充電電池做電源。收銀臺模塊接有交流電源,供電比較容易。兩部分模塊在非工作狀態(tài)下都可以待機,不向外發(fā)射電磁波,節(jié)省能源。
第3章技術(shù)細節(jié)(硬件部分)
§3.1描述各部分技術(shù)系統(tǒng)
系統(tǒng)硬件框圖如下:
圖3.1硬件部分框架
§3.2MSP430 MCU
MCU芯片選擇TI公司的MSP430 F169。MSP430 提供兩個UART通信模塊,LCD顯示接口, EEPROM擴展接口,共有6組I/O接口,能夠最多支持16個中斷源,同時MSP 430 有獨特的低功耗模式,可以極大地減小能量消耗。采用官方IAR Embeded Workbench,界面友好,能夠極大簡化軟件設(shè)計及調(diào)試驗證,提高系統(tǒng)魯棒性。
MSP430 采用3.3V供電,與RMU 900+供電電壓相同,異步串行通信部分采用URAT1端口,采用外接晶振,頻率為8MHz,波特率設(shè)置為57600 bps。
系統(tǒng)采用3級中斷:初始上電復(fù)位中斷,初始上電時,系統(tǒng)檢測各模塊性能;低功耗喚醒中斷,當(dāng)購物結(jié)束后系統(tǒng)進入低功耗模式,新顧客通過按鍵產(chǎn)生中斷,從低功耗模式中喚醒;串口通信接收中斷,接收RMU900發(fā)送的握手信息及讀取到的標(biāo)簽信息。
LCD 顯示采用1602液晶顯示屏,可以顯示2行,每行16個字符(ASIIC碼字符)。由于開發(fā)時間倉促,LCD功能不夠完善。進一步的設(shè)計中計劃采用12864液晶顯示屏或其他大屏幕顯示屏。但屏幕過大將會消耗更多電能,在基本設(shè)計中,1602液晶可以滿足需求。
鍵盤采用8個獨立按鍵,實際用到3個按鍵,分別是Wake_up(從低功耗中喚醒按鍵),Key_start(連接RMU900+,啟動購物),Key_stop(結(jié)束購物,刷會員卡)。其中Wake_up產(chǎn)生中斷。
§3.3讀寫模塊及天線
RFID讀寫模塊分別采用恒睿公司的RMU900+和RMU920。RMU900+在購物車上使用,采用電池供電。RMU900+通過開發(fā)板上的UART通信口與MCU通信。RMU920在收銀臺終端處固定,采用220V交流供電,采用USB與終端PC通信。
購物車上天線采用T3640天線,該天線有效讀取距離約為1m,符合購物車要求。終端處天線采用9dbi圓極化天線,功率較大,讀取范圍可以達到5m。具體天線參數(shù)可以參考天線Datasheet。
§3.4存儲模塊
實際電子標(biāo)簽盡管可以讀入許多位,但依照讀寫模塊的使用說明,結(jié)果測試后我們發(fā)現(xiàn)標(biāo)簽只可以寫入數(shù)據(jù)2個字節(jié)。則根據(jù)每個標(biāo)簽對應(yīng)于不同的商品,目前只能做到216=65536件商品,這在商品如此豐富的今天顯然無法滿足需求。如果電子標(biāo)簽制造廠商可以將標(biāo)簽做到允許讀取8個字節(jié),則可以有216件商品,這個數(shù)量足以滿足所有需求。
現(xiàn)代物聯(lián)網(wǎng)不僅要求顧客了解商品名稱,價格等基本信息,顧客還希望了解商品的產(chǎn)地,生產(chǎn)日期,保質(zhì)期等相關(guān)信息。這些信息在商品出廠時由廠家連同標(biāo)簽號寫入數(shù)據(jù)庫,商品進入超市后超市將這些信息寫入EEPROM當(dāng)中。EEPROM和MCU相連,可以在讀到每個ID號時從內(nèi)存中找出商品信息,通過LCD顯示給顧客。
開發(fā)中由于標(biāo)簽數(shù)量有限,相關(guān)信息存在MCU的程序存儲空間中即可。
§3.5終端PC模塊
收銀臺終端為一PC機,上安裝有我們開發(fā)的軟件程序。終端和RMU920相連,也可以通過RFID讀取商品信息,但讀取速度較傳統(tǒng)條形碼有大幅度提高。PC后臺通過局域網(wǎng)LAN與服務(wù)器數(shù)據(jù)庫(Server Data Base)相連,可以實時將結(jié)算信息傳送至服務(wù)器。
§3.6服務(wù)器模塊
服務(wù)器模塊可以與MCU和終端PC進行通信,將商品庫存信息存至MCU中,并實時更新商品數(shù)據(jù)庫和會員信息數(shù)據(jù)庫。
第4章技術(shù)細節(jié)(軟件部分)
§4.1描述各部分技術(shù)系統(tǒng)
本產(chǎn)品所使用所有軟件程序(PC機上)均是基于Microsoft Visual C++ 6.0 的MFC開發(fā)的。該軟件包含以下功能:1,利用天線讀取標(biāo)簽信息;2,利用所讀取信息進行識別,修改,統(tǒng)計等過程;3,將處理過的信息記錄在PC機中。
圖4.1 軟件部分架
§4.2商品讀取函數(shù)
利用了所給頭文件RMU900_API.h中的函數(shù)進行了對天線和標(biāo)簽的操作。首先用到了RmuOpenAndConnect函數(shù)連接天線,然后利用RmuReadDataSingle函數(shù)進行對商品的讀取操作,在程序中進行了去重操作,保證了同一件商品被且僅被讀取了一次。
§4.3商品(消費者)識別函數(shù)
首先利用標(biāo)簽中的特殊信息位辨別此標(biāo)簽為商品還是消費者,然后在相應(yīng)的庫中尋找是否存在相應(yīng)的商品(消費者),如果存在這樣的商品(消費者),那么就導(dǎo)入相應(yīng)商品(消費者)的信息,如果不存在相應(yīng)的商品(消費者),則再相應(yīng)的區(qū)域報相應(yīng)的錯誤。
§4.4信息處理函數(shù)
4.4.1 信息顯示
因為使用了MFC庫,所以只需要將所需顯示的信息值賦予相應(yīng)的文字框的對象,然后刷新屏幕,即可實現(xiàn)信息的顯示
4.4.2 總金額統(tǒng)計與比較
每次讀入信息后,可以得到其相應(yīng)的價格信息,將所有的金額相加后,即可得到總金額,然后將計算得到的總金額與消費者標(biāo)簽中的讀到的總金額相比較,如果一致則顯示此次消費的金額,然后可以進行消費操作,如果不一致則進行報錯。
4.4.3 支付與積分函數(shù)
支付有兩種方式,現(xiàn)金支付與會員卡消費,對應(yīng)了兩個不同的按鍵,如果是現(xiàn)金支付,系統(tǒng)僅是將消費金額對應(yīng)的積分存入會員卡信息中;如果是會員卡支付,則不僅是將消費金額對應(yīng)的積分存入會員卡信息中,同時也將會員卡的余額減去對應(yīng)的消費金額,如果余額不足,則報錯。
§4.5其他函數(shù)
4.5.1 清零函數(shù)
為方便多次操作進行統(tǒng)計,系統(tǒng)提供了清零操作,本函數(shù)不僅將內(nèi)存中所有相應(yīng)的變量全部置零,同時也會清除顯示屏上所有上次遺留下來的信息,如商品信息,總金額信息與錯誤提示等。
4.5.2 報錯函數(shù)
本函數(shù)旨在處理一些意想不到的錯誤,每一步遇到問題后都會轉(zhuǎn)向此函數(shù),程序?qū)⒔K止運行,同時將相應(yīng)(唯一)的錯誤顯示在報錯區(qū)域。
4.5.3 商品庫,消費者庫導(dǎo)入函數(shù)
本函數(shù)利用的是C++ 中的文件讀入讀出流的知識,利用文件流,對商品庫,消費者庫(.txt文件)中儲存的信息進行讀入和修改。
4.5.4 總銷售數(shù)量與金額統(tǒng)計函數(shù)
為了方便商場管理者對商場進行管理,該軟件特別設(shè)置了該函數(shù),用來統(tǒng)計一段時間內(nèi)商場銷售的所有商品的總數(shù)量和金額,并將其保存在‘sale.txt’中。
第5章應(yīng)用前景與發(fā)展方向
未來商品使用RFID電子標(biāo)簽代替條形碼已成為貨物流通發(fā)展的必然趨勢。利用RFID電子標(biāo)簽,本系統(tǒng)可實現(xiàn)“購物無停頓,支付由我選”的自由自主購物。
從購物者角度出發(fā),本系統(tǒng)可消除當(dāng)前超市收銀臺前排長隊的現(xiàn)象,大大節(jié)約了購物者的購物時間,增加了消費舒適度。同時由于RFID電子標(biāo)簽保存信息較多,購物者可以從商品識別系統(tǒng)中讀取到該商品的整個生產(chǎn)流通過程,能夠買到更放心的商品。
從超市角度出發(fā),超市可以大大減少收銀員的數(shù)量,降低了經(jīng)營成本;結(jié)算速度的加快同時提高了超市的吞吐量;結(jié)算系統(tǒng)與數(shù)據(jù)中心相連可以使超市隨時了解熱門商品及短缺商品信息,利用物聯(lián)網(wǎng)可以實現(xiàn)商品的及時調(diào)運和補充。
鑒于目前絕大多數(shù)超市依然使用傳統(tǒng)的人工結(jié)算方式,此系統(tǒng)的發(fā)展應(yīng)用前景極為廣闊。我們相信,如果此系統(tǒng)實現(xiàn)投入商用,必將帶來零售業(yè)和物流業(yè)的一場革命。
第6章改進方案
超市自助購物系統(tǒng)滿足了最初的設(shè)計要求。但是,依舊有需要改進的地方,主要有下面幾點:
購物車模塊由MSP430單片機和RMU900+開發(fā)板組成,體積較大,并且單片機和開發(fā)板上的很多資源沒有使用。在以后的設(shè)計中可以把MSP430單片機的主芯片、RMU900+芯片、電源控制模塊和液晶顯示屏集成在一塊電路板上,節(jié)省系統(tǒng)成本,提高系統(tǒng)的穩(wěn)定性。
當(dāng)前的RMU系列開發(fā)板只能寫一個字大小的數(shù)據(jù)(16位),對標(biāo)簽的讀寫操作很局限。以后可以完善RMU開發(fā)板的功能,擴大寫操作的數(shù)據(jù)位數(shù),提高對標(biāo)簽存儲區(qū)的利用,進而可以提高標(biāo)簽數(shù)據(jù)存儲量,讓購物者看到商品的更多信息。
當(dāng)前的收銀臺模塊只能單機運行,不支持聯(lián)網(wǎng)操作,不能進行數(shù)據(jù)的動態(tài)更新。在以后的設(shè)計中,可以在PC機程序部分實現(xiàn)聯(lián)網(wǎng)操作,真正滿足超市系統(tǒng)對聯(lián)機工作的需求。在一臺收銀臺PC機結(jié)賬之后馬上同步更新超市的物品數(shù)據(jù)庫和會員卡數(shù)據(jù)庫。
當(dāng)前的系統(tǒng)安全性很差,對數(shù)據(jù)篡改行為沒有防御性。以后的設(shè)計中可以在寫操作和結(jié)賬過程中更多地使用標(biāo)簽密碼,增強對數(shù)據(jù)安全的保護,有效防御篡改數(shù)據(jù)的行為。
評論