《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > POS機數(shù)據(jù)采集器的設(shè)計
POS機數(shù)據(jù)采集器的設(shè)計
來源:微型機與應(yīng)用2013年第24期
臧 慧,, 楊江寧, 焦鳳昌
(廣西大學 電氣工程學院,,廣西 南寧530004)
摘要: 以RISC架構(gòu)的微控制器為核心,,通過分析日常使用較多的零售POS機,結(jié)合帶糾錯機制的通信方式,,設(shè)計POS收款機數(shù)據(jù)采集器,。采用熱敏POS機和針式POS機對設(shè)計樣品進行了測試,結(jié)果表明,該設(shè)備采集的準確率符合要求,,具有較好的應(yīng)用前景,。
Abstract:
Key words :

摘  要: RISC架構(gòu)的微控制器為核心,通過分析日常使用較多的零售POS機,,結(jié)合帶糾錯機制的通信方式,,設(shè)計POS收款機數(shù)據(jù)采集器。采用熱敏POS機和針式POS機對設(shè)計樣品進行了測試,,結(jié)果表明,該設(shè)備采集的準確率符合要求,,具有較好的應(yīng)用前景。
關(guān)鍵詞: POS機,;票據(jù)打印機,;信號調(diào)理;數(shù)據(jù)存儲

    POS機最早用于零售業(yè),,但因其方便,、快捷的特性,當今已用于生活的各方面,。隨著POS機的大規(guī)模使用,,對其通信信息的監(jiān)控和管理也變得越發(fā)重要。通過使用POS機,,用戶可以很方便地管理日常銷售,、進出貨物等,但相關(guān)部門無法透明地對其進行監(jiān)管,。針對這一現(xiàn)象,,本文以零售業(yè)的POS收款機為例,在不影響票據(jù)打印機正常工作的前提下,通過截取打印時的數(shù)據(jù),,實現(xiàn)了對其通信數(shù)據(jù)的監(jiān)控,。
1 系統(tǒng)總體方案設(shè)計
    POS主機與票據(jù)打印機的接口方式有并口、串口和USB,,但目前應(yīng)用較多的還是并口,,因此本文主要研究的是并口方式。POS收款機的每一筆銷售及收款數(shù)據(jù)都會通過票據(jù)打印機打印成銷售小票,,在POS主機與票據(jù)打印機之間加入數(shù)據(jù)采集裝置,,每當打印票據(jù)時都會同時觸發(fā)采集器進行數(shù)據(jù)采集,并通過有線通信方式上傳至數(shù)據(jù)服務(wù)器,。圖1為設(shè)計方案結(jié)構(gòu),。

2 硬件設(shè)計
    本文設(shè)計的數(shù)據(jù)采集器由信號調(diào)理單元、通信單元,、存儲單元,、微控制器和供電單元五部分組成。硬件結(jié)構(gòu)框圖如圖2所示,。


    6N137有正邏輯和反邏輯兩種工作方式,,本文使用的是正邏輯方式,如圖9所示,,使用時需要注意以下幾點:

  (1) 當6N137工作于正邏輯時,,前端供電應(yīng)獨立于系統(tǒng)電源。
     (2)由6N137的內(nèi)部結(jié)構(gòu)可知,,PIN2與PIN3之間為發(fā)光二極管,,發(fā)光二極管正向壓降1.2 V~1.7 V,正向電流為6.5 mA~15 mA,,光敏管導(dǎo)通。若不加限流電阻或阻值很小,,6N137仍能工作,,但發(fā)光二極管導(dǎo)通電流很大,對VCC1有較大沖擊,尤其是數(shù)字波形較抖時,,上升,、下降沿的頻譜很寬,會造成相當大的尖峰脈沖噪聲,。因此在可能的情況下,,限流電阻盡量取大[2]。
     (3)VCC和GND引腳之間必須連接一個高頻特性很好的陶瓷電容或固體鉭電容CF(容值為0.1 ?滋F或者更大),,而且盡可能靠近VCC和GND引腳,。此電容可以吸收電源線上的紋波,同時減小光電隔離器接收端開關(guān)工作時對電源的沖擊。
     (4)輸出端(PIN6)是集電極開路輸出,,通常加上拉電阻RL,。此電阻若取的太小,會使6N137的耗電增大,,加大對電源的沖擊,,使旁路電容CF無法吸收[2]。
2.2 存儲單元
    每張票據(jù)包含的信息量大小不一,,統(tǒng)計發(fā)現(xiàn)8 KB能包含絕大數(shù)消費者單次購物的信息量,。ATmega128A片內(nèi)集成有4 KB的SRAM,因此需要外部擴展,。本文選用Cypress公司的CY62256,,具有15 bit地址線和8 bit數(shù)據(jù)線,容量為32 KB,。由于Atmega128A是高速單片機,,建議在高速系統(tǒng)中使用74AHC系列地址鎖存器[3]。
  為使數(shù)據(jù)掉電不丟失,,使用RAMTRON公司的鐵電存儲器(FRAM)FM24C64,,容量64 kbit,可承受一萬億次的擦寫操作,,帶I2C接口[4],。本系統(tǒng)使用8片F(xiàn)M24C64,每片單獨存放一張小票的數(shù)據(jù),。
2.3 通信部分
    串行通信方式有EIA-232[5],、 RS-485D等。本文采用RS-485通信,,考慮到系統(tǒng)的穩(wěn)定性,,本文分別在前端和后端加入了隔離電路,如圖10所示,。
2.4 電源部分
    本文采用DC-DC電源轉(zhuǎn)化器件,與LDO器件相比,,其轉(zhuǎn)換效率更高,熱耗散小,。典型應(yīng)用電路見參考文獻[6],,圖11為PIN2(Output)輸出波形。

    采用DC-DC隔離器使6N137前端供電獨立于系統(tǒng)電源,,IB050LS-1W在使用時因注意以下幾點:
    (1)輸入和輸出端應(yīng)該加入濾波電路,,實驗發(fā)現(xiàn)在不加入濾波電路的情況下,關(guān)閉系統(tǒng)電源,,會有自動出紙的現(xiàn)象發(fā)生,。
    (2)推薦使用簡單的被動LC電路濾波,,并且電感的自諧振頻率必須遠離于DC-DC模塊的典型工作頻率,電感的DC電流額定值最好大約兩倍于DC-DC模塊的額定輸出電流值[7],。
3 軟件設(shè)計
    主流程如圖12所示,,在主循環(huán)中,用指令包標志位的0,、1狀態(tài)來表示是否正確接收一個指令包,,通過查詢其狀態(tài)來執(zhí)行往后函數(shù)。為提高系統(tǒng)的穩(wěn)定性,,加入了指令防錯機制,,若上位機發(fā)送的指令不符合本系統(tǒng)設(shè)定,則返回錯誤狀態(tài)數(shù)據(jù)包,。

 

 

    采集的數(shù)據(jù)直接緩存在外擴的存儲器內(nèi),,32 KB被均勻分成4塊區(qū)域,每塊區(qū)域單獨緩存一張小票的數(shù)據(jù),。并行接口在SPP模式下,速率是50 KB/s~150 KB/s[1],,傳輸一張信息量為8 KB的票據(jù),最長也只需0.16 s,。本文的設(shè)計思想:在每張票據(jù)第一次觸發(fā)外部中斷采集數(shù)據(jù)的同時打開定時器,,如圖13所示,1 s后POS主機已將票據(jù)的信息傳送給票據(jù)打印機,,緩存區(qū)域內(nèi)也已存有這張票的數(shù)據(jù),,此時進入定時中斷服務(wù)函數(shù)完成數(shù)據(jù)的轉(zhuǎn)存。本文使用狀態(tài)機[6]思想完成數(shù)據(jù)的轉(zhuǎn)存,,如圖14所示,。輸入為0時進入狀態(tài)0,緩存塊0中的數(shù)據(jù)被轉(zhuǎn)存至第一片F(xiàn)M2C64內(nèi),,指針指向緩存塊1,,關(guān)定時器,中斷返回,,其后狀態(tài)與之類似,。
     如圖15所示,在串口接收中斷服務(wù)函數(shù)內(nèi),,將ATmega128A自帶的各種錯誤標志位作為第一層篩選條件,讀取緩存區(qū)的數(shù)據(jù)后將系統(tǒng)設(shè)定值作為第二層篩選條件,。滿足以上條件表示數(shù)據(jù)接收正確,,將指令包標志位置1,中斷返回,。

    ATmega128A片內(nèi)集成硬件看門狗,,所以本系統(tǒng)并未加入外圍看門狗復(fù)位電路,。本文采用的方式是,設(shè)置看門狗典型溢出時間為0.9 s,,使用定時器每0.5 s進入中斷服務(wù)函數(shù)喂狗,。
4 結(jié)果及分析
    分別采用針式打印機和熱敏打印機對本系統(tǒng)進行測試。往ATmega128A燒寫程序前應(yīng)先配置好熔絲位,,對熔絲位的誤操作會將芯片鎖死,。
    表1為測試用的6種指令包,首先設(shè)定裝置所在的地址范圍,,第1個指令包將設(shè)備的地址限定在了0X01~0X50內(nèi),,起始字節(jié)0X24與結(jié)束字節(jié)0X2A分別為特殊字符S和*,第6個字節(jié)與第7個字節(jié)為前5個字節(jié)的CRC-16校驗字,,返回相同的數(shù)據(jù)包表明配置成功,;接著第2個指令包將設(shè)備的地址設(shè)為0X05,之后數(shù)據(jù)采集裝置就可開始工作,;指令包3的含義是將設(shè)備的地址設(shè)定成0X57,,然而先前設(shè)備的地址已經(jīng)被限定在了0X01~0X50范圍內(nèi),指令有誤,,應(yīng)返回錯誤狀態(tài)數(shù)據(jù)包,。程序中定義了一系列錯誤狀態(tài)標志位,以指示不同的錯誤狀態(tài),,防止誤操作,。

    第4個指令包發(fā)送后,回傳第一張小票的數(shù)據(jù),,需注意返回的數(shù)據(jù)包中第7個字節(jié)起才是票據(jù)的數(shù)據(jù),,將其與打印出的小票進行核對,最后第2和第3個字節(jié)是對小票數(shù)據(jù)進行CRC-16的校驗字,;與指令5對應(yīng)的數(shù)據(jù)包表明存儲的第二張小票的數(shù)據(jù)被清除,;而對應(yīng)于指令6返回的數(shù)據(jù)包說明小票地址有誤。
    本文設(shè)計的POS收款機數(shù)據(jù)采集器解決了零售行業(yè)中票據(jù)信息無法監(jiān)控的問題,,對數(shù)據(jù)統(tǒng)計和管理具有實際意義,。創(chuàng)新地加入了鐵電存儲器,數(shù)據(jù)信息頻繁擦寫的同時延長了設(shè)備的有效壽命,。隨著POS機的發(fā)展和儀表的智能化,、人性化,可以近一步完善產(chǎn)品功能,,從通信方面考慮改用無線方式(如Wi-Fi)完成數(shù)據(jù)的傳送,,減少線纜鋪設(shè)成本。
參考文獻
[1] 計算機的并行接口大全[EB/OL].(2010-03-09)[2013-09-24].http://www.elecfans.com/baike/computer/taishiji/20100309183757.html.
[2] 高速光耦6N137應(yīng)用電路[EB/OL].(2011-03-21)[2013-09-24]. http://wenku.baidu.com/view/43b6857e5acfa1c7aa-00ccff.html.
[3] Atmel Corp..ATmega128A complete[EB/OL].(2011-02-xx)[2013-09-24].http//www.atmel.com/devices/ATMEGA128A.aspx?tab=documents.
[4] Cypress Incorporated. FM24C64B:64Kb Serial 5 V F-RAM  Memory[EB/OL].(2013-07-19)[2013-09-24].http://www.cypress.com/?rID=73453
[5] 韋曉茹,,蔡志堅,,居戩之.AVR單片機ATmega16與計算機串行通信的實現(xiàn)[J].微型機與應(yīng)用,,2012,31(14):30-33.
[6] Teax Instruments Corp..LM2596 simple switcher power con verter 150 kHz 3A step-down voltage regulator[EB/OL]. (2013-04-xx)[2013-09-24].http://www.ti.com/lit/ds/symlink/lm2596.
[7] Delus Corp..模塊電源產(chǎn)品選型手冊[EB/OL].(2009-xx-xx)[2013-09-24].http://www.delus.cn.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。