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