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