基于LPC2138的超市收銀機系統(tǒng)設(shè)計
Philips公司的32位的ARM7 LPC2138微控制器具有強大的存儲空間,內(nèi)嵌32 KB片內(nèi)靜態(tài)RAM和512KB的Flash存儲器;可以實現(xiàn)在系統(tǒng)可編程(ISP)、在應用可編程(IAP);2個8路10位A/D轉(zhuǎn)換器、1個D/A轉(zhuǎn)換器,轉(zhuǎn)換迅速、準確;引腳資源豐富,多達47個可承受5 V電壓的通用I/O口;多個串行接口,包括2個16C550工業(yè)標準UART、2個高速I2C接口(400 kbps)、SPI和具有緩沖作用和數(shù)據(jù)長度可變功能的SSP。LPC21-38可以移植μC/OS-II操作系統(tǒng),軟件的可移植性好,工作可靠。
2 實現(xiàn)原理及系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)采用ARM7 LPC2138芯片作為主控制器,嵌入μC/OS-II實時操作系統(tǒng),對系統(tǒng)進行控制和管理。通過模擬PS/2標準協(xié)議,實現(xiàn)了AS-8110條形碼輸入器和PS/2標準鍵盤輸入;通過I2C總線接口擴展了PCF8563實時時鐘芯片獲取實時時鐘,E2PROM存儲器AT24C256芯片實現(xiàn)系統(tǒng)重要參數(shù)的斷電保護;擴展數(shù)字溫度傳感器DSl8820和HMl500濕度傳感器,對超市環(huán)境進行實時檢測,在異常情況下通過聲光進行報警提示;采用DMB32240A-01W大屏幕彩色LCD顯示終端進行顯示,人機交互界面友好;通過擴展?jié)h字微型打印機,實現(xiàn)購物小票的打?。幌到y(tǒng)擴展了語音控制器SPCE061,實現(xiàn)語音播放及語音識別等功能;同時,還外擴了一個串行口,可以通過485總線將所有超市收銀系統(tǒng)構(gòu)建一個網(wǎng)絡,通過一個中心PC主機進行統(tǒng)一管理。
3 系統(tǒng)硬件設(shè)計
3.1 鍵盤輸入接口電路設(shè)計
針對超市收銀機對鍵盤的特殊需要,采用雙鍵盤,即4×6簡易鍵盤和PS/2鍵盤。
(1)4 x 6簡易鍵盤
系統(tǒng)擴展4×6簡易鍵盤,通過行列掃描的方式讀取鍵值。鍵盤接口和定義如圖2和圖3所示。
(2)PS/2鍵盤
PS/2鍵盤是微機標準鍵盤。它與微機通過PS/2協(xié)議進行信息通信,接口電路如圖4所示。
只要ARM微控制器使用PS/2協(xié)議就能取得鍵盤數(shù)據(jù),標準鍵盤提供至少86個功能鍵供用戶使用。擴展PS/2標準鍵盤可實現(xiàn)多種漢字輸入等功能。
如圖5所示,鍵盤接口使用2條數(shù)據(jù)線,數(shù)據(jù)位在CLOCK(時鐘腳)的下降沿被PC機ARM讀入,接收數(shù)據(jù)時使用外部中斷EXTO。
3.2 條形碼輸入器接口電路設(shè)計
系統(tǒng)采用標準鍵盤PS/2接口與LPC2138接口與PC機標準鍵盤并線使用,接口簡單。接口電路如圖6所示。
AS8110條碼閱讀器功能:
①手持近距虹光條碼閱讀器,內(nèi)置解碼器,準確識讀各種一維條碼。
②AS8110條碼閱讀器擁有7種提示音和音量可調(diào)的蜂鳴器,可根據(jù)使用的環(huán)境調(diào)節(jié)蜂鳴器的音量。
③AS8110條碼閱讀器有多個內(nèi)置接口(RS-232、鍵盤接口、光筆及先進的USB接口)。
3.3 打印機接口電路設(shè)計
漢字微型打印機為針式打印機。打印機接收主機送來的代碼,經(jīng)過打印機輸入接口電路的處理后送至打印機的主控電路;在程序的控制下,產(chǎn)生字符或圖形的編碼,驅(qū)動打印頭打印一列的點陣圖形,同時字車橫向運動,產(chǎn)生列間距或字間距,再打印下一列,逐列進行打印;一行打印完畢后,啟動走紙機構(gòu)進紙,產(chǎn)生行距,同時打印頭回車換行,打印下一行。上述過程反復進行,直到打印完畢。
使用74HCl64串入/并出串行接口打印機,接口電路如圖7所示。
3.4 存儲模塊電路設(shè)計
SD卡擁有大容量數(shù)據(jù)存儲、快速數(shù)據(jù)傳輸率、極大的移動靈活性以及很好的安全性。通過9針的接口電路與專門的驅(qū)動器相連接,數(shù)據(jù)具有掉電保護。在SPI模式下,主機使用SPI總線直接對卡進行訪問。
圖8為SD卡與LPC2138通信的接口連接電路(SPI模式)。
3.5 溫、濕度測量接口電路設(shè)計
數(shù)字化溫度傳感器DSl8820具有與CPU接口方便、直接數(shù)字量輸出等優(yōu)點,另外提供12位(二進制)溫度讀數(shù)指示器件的溫度信息。經(jīng)過單
線接口送入DSl8820或從DSl8820送出,因此從主機CPU到DS18820僅需一條線(和地線),電路如圖9所示。
HMl500是美國Humirel公司于2002年推出的電容式濕度一體化傳感器。該傳感器線性輸出相對濕度,輸出為模擬信號,通過A/D轉(zhuǎn)換器測量濕度對應的模擬電壓,并計算得到相應的相對濕度值。相對濕度接口電路如圖10所示。
3.6 I2C總線接口電路設(shè)計
利用ARM微控制器的I2C總線擴展PCF8563和AT24C256接口芯片,分別實現(xiàn)獲取實時時鐘和系統(tǒng)重要參數(shù)的斷電保護功能,電路如圖11所示。
4 軟件設(shè)計
系統(tǒng)軟件工作流程如圖12所示。
系統(tǒng)共有4種工作模式,即銷售操作模式、銷售記錄模式、綜合報表模式和系統(tǒng)設(shè)置模式。
銷售操作模式為默認工作模式,主要工作為:條形碼或者手動輸入商品條碼,通過系統(tǒng)查詢調(diào)出商品單價,根據(jù)所輸入的商品數(shù)量計算并顯示各類商品的總額和找零。在確認交易成功后,系統(tǒng)打印購物小票并將相關(guān)記錄存入銷售記錄和綜合報表記錄中。
銷售記錄模式主要用于查詢本日、本周、本月的詳細銷售清單,包括交易商品名稱、交易時間、交易金額和收銀員編號等。
綜合報表模式主要用于查詢商品入貨量和出貨量的詳細記錄,包括商品名稱、進貨數(shù)量、進貨日期、出貨數(shù)量、獲利情況等。
系統(tǒng)設(shè)置模式主要包括PLU設(shè)置、時間設(shè)置、收銀員設(shè)置和清空記錄。PLU設(shè)置目錄下可以進行商品名稱、條碼以及單價的錄入;時間設(shè)置目錄下可以對系統(tǒng)時間進行設(shè)置;收銀員設(shè)置目錄下可以對當前收銀員信息編號進行設(shè)置;清空記錄目錄下,可以對環(huán)境監(jiān)測報警閾值進行設(shè)定,可以恢復系統(tǒng)出廠設(shè)置等。
5 理論分析
5.1 SD卡存儲空間分配
經(jīng)查閱資料得知,SD卡的內(nèi)部結(jié)構(gòu)是按扇區(qū)組合的,每512字節(jié)為一個扇區(qū)。為了方便操作,我們約定,每條銷售紀錄、每種貨物都獨自占一個扇區(qū)(盡管一條記錄無論如何也不會有512字節(jié))。這樣,無論是在存貨還是在銷售時,各條記錄之間從不沖突。按扇區(qū)讀寫十分方便。
SD存儲卡的存儲空間為1 GB。
1 GB/512B=221
1 GB SD存儲卡存儲的銷售記錄與存貨紀錄總計超過100萬條。
5.2 存儲商品價目表數(shù)據(jù)位數(shù)定義
系統(tǒng)采用64位存儲商品價目表,各種數(shù)據(jù)格式如下:
存儲一條商品價目表使用7字節(jié)。
結(jié)語
本文提出了基于Philips公司的ARM7 LPC2138微控制器的超市收銀管理系統(tǒng)的一種設(shè)計方法。系統(tǒng)合理調(diào)理了多個模塊同時工作情況的協(xié)調(diào)與穩(wěn)定,在降低成本的前提下,不僅實現(xiàn)了常用超市收銀機的基本功能,還增加了環(huán)境檢測報警及語音等特色功能。