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