新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Cortex M3的嵌入式POS系統(tǒng)設(shè)計(jì)

基于Cortex M3的嵌入式POS系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò) 收藏

針對(duì)目前收款機(jī)系統(tǒng)在功能和性?xún)r(jià)比方面存在不足的問(wèn)題,介紹了一種基于Cortex M3芯片的收款機(jī)系統(tǒng)。該系統(tǒng)功能全面、性能良好、界面完善、具有故障分析和機(jī)器自檢功能。運(yùn)行結(jié)果表明,該系統(tǒng)實(shí)現(xiàn)了預(yù)期目標(biāo)。

本文引用地址:http://www.butianyuan.cn/article/201610/307365.htm

本文介紹了以 單片機(jī)為核心的POS 機(jī)、數(shù)據(jù)采集和數(shù)據(jù)輸出的小規(guī)模銷(xiāo)售系統(tǒng)。目前的收款機(jī)系統(tǒng)在硬件和軟件方面在成本上沒(méi)有有效的控制,在功能上沒(méi)有很充分地開(kāi)發(fā)。而此款POS 系統(tǒng)平臺(tái)則擁有成本低廉、操作方便、易于自檢維修等方面的優(yōu)勢(shì)。

POS 機(jī)的基本作業(yè)原理是先將商品資料輸入進(jìn)SPIFlash 中存儲(chǔ),商品上的條碼可以通過(guò)掃描槍上的光學(xué)讀取設(shè)備直接讀入,根據(jù)條形碼在收款機(jī)內(nèi)存中的商品數(shù)據(jù)庫(kù)找到該商品的相關(guān)內(nèi)容,當(dāng)然也可以直接用鍵盤(pán)輸入條形碼。每一筆商品銷(xiāo)售明細(xì)資料亦可自動(dòng)統(tǒng)計(jì),并且最多可以存一萬(wàn)筆以上交易記錄。

1 系統(tǒng)設(shè)計(jì)

1.1 硬件結(jié)構(gòu)

本系統(tǒng)采用ARM 為內(nèi)核的32 位微處理器VC,其主頻為72 Hz,該芯片內(nèi)部采用哈佛結(jié)構(gòu),內(nèi)部集成了最大存儲(chǔ)空間為256K 的Flash和64K 的SRAM,還有大量的I/O 口和外設(shè)(2 個(gè)I2 C總線(xiàn),3 個(gè)SPI,2 個(gè)I2 S,5 個(gè)USART,2 個(gè)CAN 等等)連接在2 個(gè)APB 總線(xiàn)上。

該系統(tǒng)硬件主要包括:收款數(shù)據(jù)處理模塊、收款程序存儲(chǔ)模塊、收款數(shù)據(jù)存儲(chǔ)模塊、串口調(diào)試模塊、收款顯示模塊、報(bào)表打印模塊、USB 模塊。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。

x1.JPG

圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

系統(tǒng)的實(shí)物圖如圖2 所示。

x2.JPG

圖2 系統(tǒng)的實(shí)物圖

在初始化時(shí),為了便于用戶(hù)或者維修人員及時(shí)了解設(shè)備運(yùn)轉(zhuǎn)情況和數(shù)據(jù)存儲(chǔ)情況,調(diào)試信息務(wù)必顯示在液晶屏上。通過(guò)CH452 鍵盤(pán)將中英文輸入信息輸入到設(shè)備上,通過(guò)掃描槍將商品中的條形碼讀取到設(shè)備中,最后還可將交易記錄輸出到小票打印機(jī)上,最多可以一次性記錄一萬(wàn)次交易信息。交易信息、用戶(hù)等資料存放在SPI Flash中,時(shí)鐘信息放在RTC 備用器中。

1.2 外設(shè)設(shè)備

1.2.1 輸入/輸出接口芯片和數(shù)碼管顯示芯片

CH452 是數(shù)碼管顯示驅(qū)動(dòng)和鍵盤(pán)掃描控制芯片,可以同時(shí)進(jìn)行64 鍵的鍵盤(pán)掃描和8 位數(shù)碼管的操作,具有BCD 譯碼、閃爍、移位、段位尋址等功能,還能對(duì)CPU 提供上電復(fù)位信號(hào)。

本次研究對(duì)象中CH452的LCD 交換數(shù)據(jù)功能是通過(guò)級(jí)聯(lián)的4 線(xiàn)串行接口完成的。在鍵盤(pán)掃描期間,DIG7~DIG0 引腳用于列掃描輸出,并且可以依次從DIG0 ~DIG7 輸出高電平,同時(shí)其余的引腳置0。SEG7 ~SEG0引腳都帶有內(nèi)部下拉電阻,用于行掃描輸入,在鍵盤(pán)掃描期間輸出被禁止。

啟用鍵盤(pán)掃描功能后,4 線(xiàn)串行接口中的DOUT 引腳的功能由串行接口的數(shù)據(jù)輸出變?yōu)殒I盤(pán)中斷輸出以及按鍵數(shù)據(jù)輸出。如果有DIGm(m=0,1,2…7)與SEGn(n=0,1,2 …7)的鍵被按下,那么當(dāng)DIGm 輸出高電平時(shí),SEGn 可以檢測(cè)到高電平;如果按鍵有效,按鍵產(chǎn)生的代碼通過(guò)DOUT 引腳就能夠產(chǎn)生中斷,CPU 則用串行接口來(lái)讀取代碼。

另外,CH452 僅支持每次同時(shí)按下一個(gè)鍵,如果有多個(gè)鍵值按下,則取按鍵代碼較小的按鍵。

表1、表2 是在DIG7~DIG0 與SEG7~SEG0 之間8×8 矩陣的按鍵編址,按鍵按下時(shí),狀態(tài)碼位6 總是置1,而按鍵代碼共有7 位,所以當(dāng)鍵按下時(shí),CH452 所提供的實(shí)際按鍵代碼在下表中的按鍵編址基礎(chǔ)上偏移40H。也就是說(shuō),本文設(shè)定的按鍵代碼的取值范圍應(yīng)該在40H~7FH 之間。

CH452 還可以控制8 個(gè)數(shù)碼管和64 個(gè)LED 燈,在這次項(xiàng)目中根據(jù)不同的界面可以用來(lái)顯示時(shí)間、商品價(jià)格等可以用數(shù)字表示的參數(shù)。

x3.JPG

CH452 與作為CPU 的STM32 的連接方式如圖3 所示。

x31.JPG

圖3 CH452 與VC 的連接

1.2.2 存儲(chǔ)設(shè)備

W25X16 是華邦公司推出的繼W25X10/20/40/80 后容量更大的FLASH 存儲(chǔ)器產(chǎn)品,它有占用空間小、使用壽命長(zhǎng)、功耗較低等優(yōu)點(diǎn)。W25X16 能容納2 MB,分布在8 192 個(gè)編程頁(yè)上。它分為32 個(gè)塊,每個(gè)塊由16 個(gè)扇區(qū)組成,W25X16 的最少擦除單位就是一個(gè)扇區(qū)(4 KB)。W25X16 與STM32F107VC 的連接方式如圖4 所示。

x4.JPG

圖4 W25X16 與STM32F107VC 的連接

1.2.3 打印機(jī)

本次項(xiàng)目采用熱敏打印機(jī)來(lái)輸出每次交易信息。商寶熱敏打印機(jī)支持并口、串口、USB、LAN 網(wǎng)絡(luò)等途徑傳輸數(shù)據(jù),帶有384 個(gè)方點(diǎn)的帶加熱點(diǎn)陣固定打印頭。打印機(jī)通過(guò)CPU 傳輸?shù)臄?shù)據(jù)邏輯控制點(diǎn)陣,并且控制進(jìn)紙,從而在熱敏紙上印出字體,打出顧客需要的包含交易信息的小票。

1.2.4 掃描輸入設(shè)備

掃描槍利用收集到的條形碼上強(qiáng)弱不同的反射光,經(jīng)過(guò)光學(xué)系統(tǒng)成像通過(guò)光電轉(zhuǎn)換器將光信號(hào)轉(zhuǎn)換成電信號(hào),譯碼器根據(jù)測(cè)量而來(lái)的脈沖信號(hào)0、1 來(lái)判別條和空的數(shù)目,得到的數(shù)據(jù)還要通過(guò)對(duì)應(yīng)的編碼規(guī)則(比如本次項(xiàng)目所用的掃描儀運(yùn)用EAN 13 碼)轉(zhuǎn)換成條形碼序列號(hào)。

1.2.5 顯示設(shè)備

TFT LCD 因其具有大容量、高速度和高對(duì)比度顯示等,成為當(dāng)前顯示領(lǐng)域的主流。LCD 利用了液晶的電光效應(yīng),通過(guò)電路控制液晶單元的透射率及反射率,從而產(chǎn)生不同灰度層次及多達(dá)1670 萬(wàn)種色彩的靚麗圖像,顯示需要的英文和漢文信息都是通過(guò)點(diǎn)陣原理完成的。

本次項(xiàng)目采用SSD1289 液晶顯示屏來(lái)輸出收款機(jī)各個(gè)界面,SSD1289 是一款帶有262 144 種顏色的薄膜場(chǎng)效應(yīng)管LCD 的控制器,它的屏幕尺寸為57 mm×79 mm,有效顯示面積為51 mm×65 mm。它具有240×320 的分辨率,SSD1289 具有4 種接口模式:i8080 的MPU 接口、VSINC 接口、SPI 接口和18 位RGB 接口。STM32F107VC 通過(guò)FCMS 總線(xiàn)來(lái)控制LCD 的驅(qū)動(dòng)。液晶與STM32F107VC 的連接方式如圖5 所示。

x5.JPG

圖5 SSD1289 與作為CPU 的STM32F107VC 的連接

下列是液晶部分的初始化操作。

① 打開(kāi)晶振:

LCD_WriteReg(0x0000,0x0001);

② 驅(qū)動(dòng)輸出控制(240×320 的分辨率):

LCD_WriteReg(0x0001,0x6B3F);

③ 掃描開(kāi)始地址:

LCD_WriteReg(0x000F,0x0000);

而液晶屏如果要顯示色彩繽紛的圖像或者文字就需要軟件對(duì)它進(jìn)行控制,而這是具有一定復(fù)雜度的,下列是液晶部分的部分高級(jí)函數(shù)操作。

(1 )設(shè)置光標(biāo)函數(shù)

Set_LCD_Cursor(u8 x,u16 y,u8 CursFlag,u32 CursCycleTime,u8 high,u8 width);

其中,x,y 是光標(biāo)閃爍的位置;CursFlag=1 表示顯示光標(biāo);CursFlag=0 表示不顯示光標(biāo);CursCycleTime 是光標(biāo)閃爍的周期;high 和width 則分別表示光標(biāo)的高度和寬度。

(2)畫(huà)線(xiàn)函數(shù)

LCD_DrawLine(u8 x,u16 y,uint16_t Length,uint8_t Direction,u16 LineColor);

其中,x,y 是位置坐標(biāo),Length 是指線(xiàn)的長(zhǎng)度,Direction是指線(xiàn)的朝向,LineColor 則設(shè)定線(xiàn)的顏色。

(3)顯示漢字

LCD_Disp_HZ_CharString(u8 x,u16 y,u8 *str,u16fontcolor,u16 backcolor);

其中,x,y 是位置坐標(biāo),str 指針指向漢字或英文字符編碼fontcolor,backcolor 分別顯示字符顯示顏色和背景顏色。

2 軟件框圖

根據(jù)項(xiàng)目的整體規(guī)劃,管理員及收銀員軟件系統(tǒng)框圖分別如圖6、圖7 所示。

x6.JPG

圖6 管理員系統(tǒng)軟件結(jié)構(gòu)框圖

3 系統(tǒng)的運(yùn)行情況

3.1 機(jī)器自檢

該套電子設(shè)備具有機(jī)器自檢功能,用戶(hù)通過(guò)輸入管理員密碼進(jìn)入“設(shè)置”,然后再進(jìn)入“機(jī)器測(cè)試及其結(jié)果顯示”就能夠及時(shí)了解機(jī)器運(yùn)行是否正常,如圖8 所示。

x7.JPG

圖7 收銀員系統(tǒng)軟件結(jié)構(gòu)框圖

x8.JPG

圖8 機(jī)器測(cè)試及其結(jié)果顯示

3.2 運(yùn)行結(jié)果

在執(zhí)行“登陸”→輸入“收銀員”密碼→“收款”,然后就可以出現(xiàn)收款界面。這個(gè)時(shí)候無(wú)論用掃描槍和商品編號(hào)輸入數(shù)字,都可以把商品編號(hào)輸入在框內(nèi),而且數(shù)量框也可以自行輸入每件商品的數(shù)目,然后按回車(chē)鍵結(jié)賬。最后,能夠在打印機(jī)上顯示打印小票,并且在LCD 上顯示收款界面收款界面——編者注。

如果想要錄入商品信息,可以執(zhí)行“登陸”→輸入“管理員”密碼→“錄入商品信息”,然后就可以出現(xiàn)錄入商品信息界面略——編者注。此時(shí),可以按中英文輸入切換鍵和大小寫(xiě)切換鍵分別切換輸入的語(yǔ)言和英文大小寫(xiě)。

結(jié)語(yǔ)

使用STM32F107VC 作為便攜式POS 機(jī)的硬件平臺(tái),能夠較大幅度地降低成本,操作更加便利,同時(shí)POS機(jī)的基本功能并沒(méi)有因此而減弱。而POS 機(jī)功能在STM32F107VC 上的開(kāi)發(fā)還可以更加充分,比如利用USB接口把更多的重要資料存儲(chǔ)在上位機(jī)中等。

  • STM32單片機(jī)中文官網(wǎng)
  • STM32單片機(jī)官方開(kāi)發(fā)工具
  • STM32單片機(jī)參考設(shè)計(jì)


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉