0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

電子設計 ? 作者:電子設計 ? 2018-11-23 08:01 ? 次閱讀

針對目前嵌入式收款機系統(tǒng)在功能和性價比方面存在不足的問題,介紹了一種基于Cortex M3芯片的嵌入式收款機系統(tǒng)。該系統(tǒng)功能全面、性能良好、界面完善、具有故障分析和機器自檢功能。運行結(jié)果表明,該系統(tǒng)實現(xiàn)了預期目標。

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

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

1 系統(tǒng)設計

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

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

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

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

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

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

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

1.2 外設設備

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

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

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

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

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

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

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

圖3 CH452 與STM32F107VC 的連接

1.2.2 存儲設備

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

圖4 W25X16 與STM32F107VC 的連接

1.2.3 打印機

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

1.2.4 掃描輸入設備

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

1.2.5 顯示設備

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

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

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

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

① 打開晶振:

LCD_WriteReg(0x0000,0x0001);

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

LCD_WriteReg(0x0001,0x6B3F);

③ 掃描開始地址:

LCD_WriteReg(0x000F,0x0000);

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

(1 )設置光標函數(shù)

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

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

(2)畫線函數(shù)

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

其中,x,y 是位置坐標,Length 是指線的長度,Direction是指線的朝向,LineColor 則設定線的顏色。

(3)顯示漢字

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

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

2 軟件框圖

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

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

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

3.1 機器自檢

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

實現(xiàn)以STM32F107單片機為核心的嵌入式POS機系統(tǒng)的設計

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

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

3.2 運行結(jié)果

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

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

結(jié)語

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51121

    瀏覽量

    426072
  • 單片機
    +關注

    關注

    6041

    文章

    44616

    瀏覽量

    637427
  • 嵌入式
    +關注

    關注

    5089

    文章

    19170

    瀏覽量

    306794
收藏 人收藏

    評論

    相關推薦

    STM32F107上編寫自己的嵌入式系統(tǒng)需要學習哪些資料

    要求在STM32F107上編寫自己的嵌入式操作系統(tǒng),想問問大家需要學習哪些資料,不知道哪些資料最適合自己編寫系統(tǒng),能更快地了解,不想走太多的彎路,謝謝大家!
    發(fā)表于 01-31 10:12

    單片機STM32F107獨立看門狗時單片機不斷復位

    目前有一問題,一直受困,請大家?guī)蛶兔?!使?b class='flag-5'>單片機STM32F107,目前使用功能獨立看門狗,串口,問題如下1. 有獨立看門狗時,正常運行下,串口可以發(fā)送數(shù)據(jù),但是單片機不斷復位,在調(diào)試模式下,有時候
    發(fā)表于 03-18 08:03

    【匯總整理】STM32F107板資料及μC/OS的例程軟件

    、關鍵系統(tǒng)設計的理想選擇!我給初學者整理一些最基礎開發(fā)板和嵌入式操作系統(tǒng)的使用資料,希望能有幫助。附件1:STM32F107中國版用戶手冊附件2:S
    發(fā)表于 07-19 10:21

    基于CortexM3的嵌入式POS系統(tǒng)設計

    本文介紹了以STM32F107 單片機核心POS 、數(shù)據(jù)采集和數(shù)據(jù)輸出的小規(guī)模銷售
    發(fā)表于 02-02 06:26

    如何對STM32F103/STM32F107系列單片機進行MODBUS移植呢

    FreeMODBUS是什么?如何對STM32F103/STM32F107系列單片機進行MODBUS移植呢?
    發(fā)表于 11-01 06:38

    單片機核心嵌入式系統(tǒng)設計

    1.單片機核心嵌入式系統(tǒng)單片機體積小,重量輕,具有很強的靈活性而且價格便宜,具有邏輯判斷,定
    發(fā)表于 11-23 06:39

    STM32F107的時鐘設置

    STM32F107的時鐘設置,有用的107 時鐘配置
    發(fā)表于 10-12 16:05 ?14次下載

    POS的工作原理與基于Cortex M3芯片的嵌入式POS系統(tǒng)設計

    本文介紹了以STM32F107 單片機核心POS 、數(shù)據(jù)采集和數(shù)據(jù)輸出的小規(guī)模銷售
    發(fā)表于 10-20 11:04 ?34次下載
    <b class='flag-5'>POS</b><b class='flag-5'>機</b>的工作原理與基于Cortex M3芯片的<b class='flag-5'>嵌入式</b><b class='flag-5'>POS</b><b class='flag-5'>機</b><b class='flag-5'>系統(tǒng)</b>設計

    什么是嵌入式單片機?嵌入式單片機詳情匯總

    嵌入式單片機,即嵌入式微控制器,指以微控制器核心控制單元的嵌入到對象體系中的專用計算機
    發(fā)表于 11-13 09:39 ?6116次閱讀

    使用STM32F107單片機控制CH451數(shù)碼管左移顯示鍵碼值

    本文檔的主要內(nèi)容詳細介紹的是利用STM32F107單片機控制CH451,數(shù)碼管依次左移顯示鍵碼值。
    發(fā)表于 02-15 08:00 ?29次下載
    使用<b class='flag-5'>STM32F107</b><b class='flag-5'>單片機</b>控制CH451數(shù)碼管左移顯示鍵碼值

    STM32F107單片機開發(fā)板的模板文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM32F107單片機開發(fā)板的模板文件免費下載。
    發(fā)表于 04-23 17:14 ?71次下載
    <b class='flag-5'>STM32F107</b><b class='flag-5'>單片機</b>開發(fā)板的模板文件免費下載

    單片機嵌入式區(qū)別

    的)、MIPS(路由器領域廣泛使用,還有龍芯CPU)片上資源單片機片上資源有限,單片機數(shù)據(jù)手冊一般千頁以內(nèi)。嵌入式片上資源豐富,應用處理器數(shù)據(jù)手冊一般數(shù)千頁。價格單片機價格較低。整個
    發(fā)表于 10-20 14:21 ?4次下載
    <b class='flag-5'>單片機</b>與<b class='flag-5'>嵌入式</b>區(qū)別

    單片機是否嵌入式技術,單片機嵌入式學哪個?

    單片機嵌入式,我喜歡用兒子和爸爸這種關系去區(qū)分它們。我當初是通過嵌入式挖到了單片機開發(fā),所以說單片機
    發(fā)表于 10-20 15:06 ?14次下載
    <b class='flag-5'>單片機</b>是否<b class='flag-5'>為</b><b class='flag-5'>嵌入式</b>技術,<b class='flag-5'>單片機</b>和<b class='flag-5'>嵌入式</b>學哪個?

    單片機or嵌入式linux

    和RTOS經(jīng)驗,之前面試也拿過一些做單片機stm32開發(fā)的offer,所以今天分享一些關于單片機是否要轉(zhuǎn)嵌入式Linux的一些觀點。一、你真的決定要轉(zhuǎn)
    發(fā)表于 11-01 16:26 ?17次下載
    <b class='flag-5'>單片機</b>or<b class='flag-5'>嵌入式</b>linux

    1.單片機嵌入式的關系(3)

    單片機嵌入式的關系什么是單片機?什么是嵌入式單片機嵌入式
    發(fā)表于 12-01 15:51 ?16次下載
    1.<b class='flag-5'>單片機</b>和<b class='flag-5'>嵌入式</b>的關系(3)