劉堅(jiān)強(qiáng),王永才,佟忠正,王化明
(1.東北大學(xué) 信息科學(xué)與工程學(xué)院,沈陽110819; 2.青島理工大學(xué)琴島學(xué)院)
劉堅(jiān)強(qiáng)(碩士研究生),研究方向?yàn)榍度胧较到y(tǒng)開發(fā)、智能檢測;王永才(助教),研究方向?yàn)榍度胧郊夹g(shù)及儀器等;佟忠正、王化明(碩士研究生),研究方向?yàn)殡娏ο到y(tǒng)自動(dòng)化。
Philips公司的32位的ARM7 LPC2138微控制器具有強(qiáng)大的存儲空間,內(nèi)嵌32 KB片內(nèi)靜態(tài)RAM和512 KB的Flash存儲器;可以實(shí)現(xiàn)在系統(tǒng)可編程(ISP)、在應(yīng)用可編程(IAP);2個(gè)8路10位A/D轉(zhuǎn)換器、1個(gè)D/A轉(zhuǎn)換器,轉(zhuǎn)換迅速、準(zhǔn)確;引腳資源豐富,多達(dá)47個(gè)可承受5 V電壓的通用I/O口;多個(gè)串行接口,包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn) UART、2個(gè)高速I2C接口(400 kbps)、SPI和具有緩沖作用和數(shù)據(jù)長度可變功能的SSP。LPC2138可以移植μ C/OS-II操作系統(tǒng),軟件的可移植性好,工作可靠。
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)采用ARM7 LPC2138芯片作為主控制器,嵌入μ C/OS-II實(shí)時(shí)操作系統(tǒng),對系統(tǒng)進(jìn)行控制和管理。通過模擬PS/2標(biāo)準(zhǔn)協(xié)議,實(shí)現(xiàn)了 AS8110條形碼輸入器和PS/2標(biāo)準(zhǔn)鍵盤輸入;通過 I2C總線接口擴(kuò)展了PCF8563實(shí)時(shí)時(shí)鐘芯片獲取實(shí)時(shí)時(shí)鐘,E2PROM存儲器AT24C256芯片實(shí)現(xiàn)系統(tǒng)重要參數(shù)的斷電保護(hù);擴(kuò)展數(shù)字溫度傳感器DS18B20和HM1500濕度傳感器,對超市環(huán)境進(jìn)行實(shí)時(shí)檢測,在異常情況下通過聲光進(jìn)行報(bào)警提示;采用DM B32240A-01W大屏幕彩色LCD顯示終端進(jìn)行顯示,人機(jī)交互界面友好;通過擴(kuò)展?jié)h字微型打印機(jī),實(shí)現(xiàn)購物小票的打印;系統(tǒng)擴(kuò)展了語音控制器SPCE061,實(shí)現(xiàn)語音播放及語音識別等功能;同時(shí),還外擴(kuò)了一個(gè)串行口,可以通過485總線將所有超市收銀系統(tǒng)構(gòu)建一個(gè)網(wǎng)絡(luò),通過一個(gè)中心PC主機(jī)進(jìn)行統(tǒng)一管理。
針對超市收銀機(jī)對鍵盤的特殊需要,采用雙鍵盤,即4×6簡易鍵盤和PS/2鍵盤。
(1)4×6簡易鍵盤
系統(tǒng)擴(kuò)展4×6簡易鍵盤,通過行列掃描的方式讀取鍵值。鍵盤接口和定義如圖2和圖3所示。

圖2 4×6簡易鍵盤接口

圖3 4×6簡易鍵盤功能定義
(2)PS/2鍵盤
PS/2鍵盤是微機(jī)標(biāo)準(zhǔn)鍵盤。它與微機(jī)通過PS/2協(xié)議進(jìn)行信息通信,接口電路如圖4所示。

圖4 PS/2接口定義
只要ARM微控制器使用PS/2協(xié)議就能取得鍵盤數(shù)據(jù),標(biāo)準(zhǔn)鍵盤提供至少86個(gè)功能鍵供用戶使用。擴(kuò)展PS/2標(biāo)準(zhǔn)鍵盤可實(shí)現(xiàn)多種漢字輸入等功能。
如圖5所示,鍵盤接口使用 2條數(shù)據(jù)線,數(shù)據(jù)位在CLOCK(時(shí)鐘腳)的下降沿被 PC機(jī)ARM讀入,接收數(shù)據(jù)時(shí)使用外部中斷EXT0。

圖5 PS/2協(xié)議時(shí)序
系統(tǒng)采用標(biāo)準(zhǔn)鍵盤PS/2接口與LPC2138接口與PC機(jī)標(biāo)準(zhǔn)鍵盤并線使用,接口簡單。接口電路如圖6所示。

圖6 鍵盤和條形碼掃描器接口電路
AS8110條碼閱讀器功能:
①手持近距虹光條碼閱讀器,內(nèi)置解碼器,準(zhǔn)確識讀各種一維條碼。
②AS8110條碼閱讀器擁有7種提示音和音量可調(diào)的蜂鳴器,可根據(jù)使用的環(huán)境調(diào)節(jié)蜂鳴器的音量。
③AS8110條碼閱讀器有多個(gè)內(nèi)置接口(RS-232、鍵盤接口、光筆及先進(jìn)的USB接口)。
漢字微型打印機(jī)為針式打印機(jī)。打印機(jī)接收主機(jī)送來的代碼,經(jīng)過打印機(jī)輸入接口電路的處理后送至打印機(jī)的主控電路;在程序的控制下,產(chǎn)生字符或圖形的編碼,驅(qū)動(dòng)打印頭打印一列的點(diǎn)陣圖形,同時(shí)字車橫向運(yùn)動(dòng),產(chǎn)生列間距或字間距,再打印下一列,逐列進(jìn)行打印;一行打印完畢后,啟動(dòng)走紙機(jī)構(gòu)進(jìn)紙,產(chǎn)生行距,同時(shí)打印頭回車換行,打印下一行。上述過程反復(fù)進(jìn)行,直到打印完畢。
使用74HC164串入/并出串行接口打印機(jī),接口電路如圖7所示。

圖7 打印機(jī)接口電路
SD卡擁有大容量數(shù)據(jù)存儲、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性。通過9針的接口電路與專門的驅(qū)動(dòng)器相連接,數(shù)據(jù)具有掉電保護(hù)。在SPI模式下,主機(jī)使用SPI總線直接對卡進(jìn)行訪問。
圖8為SD卡與LPC2138通信的接口連接電路(SPI模式)。

圖8 SD卡硬件連接電路
數(shù)字化溫度傳感器DS18B20具有與CPU接口方便、直接數(shù)字量輸出等優(yōu)點(diǎn),另外提供12位(二進(jìn)制)溫度讀數(shù)指示器件的溫度信息。經(jīng)過單線接口送入 DS18B20或從DS18B20送出,因此從主機(jī)CPU到DS18B20僅需一條線(和地線),電路如圖9所示。
HM1500是美國Humirel公司于2002年推出的電容式濕度一體化傳感器。該傳感器線性輸出相對濕度,輸出為模擬信號,通過A/D轉(zhuǎn)換器測量濕度對應(yīng)的模擬電壓,并計(jì)算得到相應(yīng)的相對濕度值。相對濕度接口電路如圖10所示。

圖9 溫度檢測電路

圖10 相對濕度接口電路
利用ARM微控制器的I2C總線擴(kuò)展PCF8563和AT24C256接口芯片,分別實(shí)現(xiàn)獲取實(shí)時(shí)時(shí)鐘和系統(tǒng)重要參數(shù)的斷電保護(hù)功能,電路如圖11所示。

圖11 I2C總線接口電路
系統(tǒng)軟件工作流程如圖12所示。
系統(tǒng)共有4種工作模式,即銷售操作模式、銷售記錄模式、綜合報(bào)表模式和系統(tǒng)設(shè)置模式。
銷售操作模式為默認(rèn)工作模式,主要工作為:條形碼或者手動(dòng)輸入商品條碼,通過系統(tǒng)查詢調(diào)出商品單價(jià),根據(jù)所輸入的商品數(shù)量計(jì)算并顯示各類商品的總額和找零。在確認(rèn)交易成功后,系統(tǒng)打印購物小票并將相關(guān)記錄存入銷售記錄和綜合報(bào)表記錄中。
銷售記錄模式主要用于查詢本日、本周、本月的詳細(xì)銷售清單,包括交易商品名稱、交易時(shí)間、交易金額和收銀員編號等。
綜合報(bào)表模式主要用于查詢商品入貨量和出貨量的詳細(xì)記錄,包括商品名稱、進(jìn)貨數(shù)量、進(jìn)貨日期、出貨數(shù)量、獲利情況等。
系統(tǒng)設(shè)置模式主要包括PLU設(shè)置、時(shí)間設(shè)置、收銀員設(shè)置和清空記錄。PLU設(shè)置目錄下可以進(jìn)行商品名稱、條碼以及單價(jià)的錄入;時(shí)間設(shè)置目錄下可以對系統(tǒng)時(shí)間進(jìn)行設(shè)置;收銀員設(shè)置目錄下可以對當(dāng)前收銀員信息編號進(jìn)行設(shè)置;清空記錄目錄下,可以對環(huán)境監(jiān)測報(bào)警閾值進(jìn)行設(shè)定,可以恢復(fù)系統(tǒng)出廠設(shè)置等。

圖12 系統(tǒng)工作流程
經(jīng)查閱資料得知,SD卡的內(nèi)部結(jié)構(gòu)是按扇區(qū)組合的,每512字節(jié)為一個(gè)扇區(qū)。為了方便操作,我們約定,每條銷售紀(jì)錄、每種貨物都獨(dú)自占一個(gè)扇區(qū)(盡管一條記錄無論如何也不會有512字節(jié))。這樣,無論是在存貨還是在銷售時(shí),各條記錄之間從不沖突。按扇區(qū)讀寫十分方便。
SD存儲卡的存儲空間為1 GB。
1 GB/512B=221
1 GB SD存儲卡存儲的銷售記錄與存貨紀(jì)錄總計(jì)超過100萬條。
系統(tǒng)采用64位存儲商品價(jià)目表,各種數(shù)據(jù)格式如下:

商品條形碼 商品名 單價(jià) 庫存(13+1)位 6個(gè)漢字(12+1)位xxxx.x x元(7+1)位XXXXX(5+1)位共計(jì):13+1+12+1+7+1+5+1=41位
存儲一條商品價(jià)目表使用7字節(jié)。
本文提出了基于Philips公司的ARM7 LPC2138微控制器的超市收銀管理系統(tǒng)的一種設(shè)計(jì)方法。系統(tǒng)合理調(diào)理了多個(gè)模塊同時(shí)工作情況的協(xié)調(diào)與穩(wěn)定,在降低成本的前提下,不僅實(shí)現(xiàn)了常用超市收銀機(jī)的基本功能,還增加了環(huán)境檢測報(bào)警及語音等特色功能。
[1]譚浩強(qiáng).C語音程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,1999.
[2]馬忠梅,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.
[3]周立功,等.深入淺出ARM7—LPC213x_214x[M].北京:北京航空航天大學(xué)出版社.2005.
[4]樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2006.