1 引言
稅控系統(tǒng)即“POS電子稅收控制系統(tǒng)”, 是由POS機(jī)、金稅卡/IC卡,、讀卡器,、計(jì)算機(jī)及打印機(jī)等設(shè)備構(gòu)成的電子信息網(wǎng)絡(luò)。POS稅款機(jī)的推廣是執(zhí)行“金稅工程”的一個重點(diǎn)項(xiàng)目,,推廣應(yīng)用POS稅款機(jī)能夠讓稅務(wù)部門節(jié)約大量的人力財(cái)力,,杜絕商家經(jīng)營中的偷稅漏稅情形。由于目前市面上使用的POS機(jī)五花八門,,全部更換是一個很大的經(jīng)濟(jì)負(fù)擔(dān),,因此,一個可行的方法是對現(xiàn)有的普通收款機(jī)進(jìn)行改造,,安上稅控裝置,。以MCU為核心的嵌入式稅控系統(tǒng)以其高效、可靠,、低價(jià)的優(yōu)點(diǎn),,成為最佳的稅控系統(tǒng)解決方案之一。
2 稅務(wù)監(jiān)控系統(tǒng)介紹
稅務(wù)監(jiān)控系統(tǒng)通過截獲POS機(jī)的打印數(shù)據(jù),,從中提取出交易的日期,、時間、金額等稅控信息,,并在打印數(shù)據(jù)中插入加密的防偽信息,,再送到打印機(jī)打印出票據(jù)。同時,系統(tǒng)能夠響應(yīng)稅務(wù)管理中心的命令,,向中心提供營業(yè)額等稅務(wù)信息,。其拓?fù)浣Y(jié)構(gòu)如圖1所示。

稅控POS機(jī)是在普通POS機(jī)的基礎(chǔ)上增加了具有數(shù)據(jù)保護(hù)功能的“黑匣子”,。它的主要作用是自動記錄用戶的經(jīng)營結(jié)果,,掌握用戶的真實(shí)營業(yè)數(shù)據(jù),才能有效堵塞稅收漏洞,,從而保證征稅工作的合理性與合法性,。
3 M68HC912D60芯片介紹
3.1 基本結(jié)構(gòu)
M68HC912D60 單片機(jī)是Motorola公司的16位單片機(jī),由控制單元和執(zhí)行單元兩個主要部分組成,??刂茊卧瑫r序發(fā)生器、控制存儲器和隨機(jī)控制邏輯,,為執(zhí)行單元生成所有的控制;執(zhí)行單元(EU)包含所有的寄存器,、ALU和總線接口。
3.2 功能特點(diǎn)
M68HC912D60系列采用模塊化設(shè)計(jì),,各種不同型號單片機(jī)可由不同的模塊組成,。M68HC912D60是其中的代表產(chǎn)品,它速度快,、功能強(qiáng),、內(nèi)部資源豐富。M68HC912D60具有如下特點(diǎn):
16 bit CPU12 與M68HC11 指令組兼容
60K片內(nèi)EEPROM
60K片內(nèi)ROM
2kB片內(nèi)RAM
8MHz內(nèi)部總線頻率
20bit ALU
2個增強(qiáng)型串行口通訊口SCI
1個串行外圍接口SPI
4通道可編程的 PWM
2× 8channels, 10bit A/D 轉(zhuǎn)換器
112Pin TQFP /80pin QFP 封裝
3.3 M68HC912D60的結(jié)構(gòu)與存儲器組織
M68HC08系列可以尋址64Kbytes的存儲空間,。M68HC912D60的存儲器組織包括:
60K 片內(nèi)FLASH EEPROM
60K片內(nèi)ROM
1K 片內(nèi)EEPROM
2kB片內(nèi)RAM
4 基于Motorola M68HC912D60單片機(jī)的稅務(wù)控制系統(tǒng)設(shè)計(jì)
Motorola M68HC912系列單片機(jī)具有速度快,、功能強(qiáng)、功耗低,、價(jià)格低等特點(diǎn),,采用先進(jìn)的亞微米工藝,具有較高的性價(jià)比,。以下討論一個基于M68HC912D60嵌入式稅務(wù)監(jiān)控系統(tǒng)的實(shí)現(xiàn),。
4.1 系統(tǒng)描述
稅務(wù)監(jiān)控系統(tǒng)是通過在普通POS機(jī)中加裝一個稅控黑匣子,從而準(zhǔn)確地獲取經(jīng)營者的營業(yè)額,,并能將數(shù)據(jù)傳送至稅務(wù)管理中心,,提供稅收依據(jù)。
4.2 硬件系統(tǒng)設(shè)計(jì)
稅務(wù)監(jiān)控系統(tǒng)的硬件設(shè)計(jì)主要包括MCU,、外圍接口單元,、控制單元、外擴(kuò)數(shù)據(jù)存儲器SRAM,、嵌入式MODEM單元,、8250串行接口,、8255并行接口及時鐘電路幾大模塊。系統(tǒng)結(jié)構(gòu)框圖如圖2所示,。外圍接口單元由RS-232接口,、RS-485接口、指示電路接口和電話線接口構(gòu)成;控制單元由復(fù)位電路,、掉電保護(hù)電路和看門狗電路構(gòu)成,。

MCU模塊完成整個系統(tǒng)的控制和相應(yīng)處理;外圍接口單元模塊主要完成本系統(tǒng)與PC機(jī)、遠(yuǎn)程管理中心之間以及下層的各個PoS分機(jī)之間的通信接口;外擴(kuò)存儲器RAM完成對各個PoS分機(jī)上傳輸數(shù)據(jù)的暫時保存,,等接收到規(guī)定數(shù)量的數(shù)據(jù)后,,統(tǒng)一由MODEM傳到稅控管理中心。
控制單元模塊主要完成用戶對整個系統(tǒng)的控制,,即對數(shù)據(jù)提供可靠的掉電保護(hù),防止掉電后丟失數(shù)據(jù),,對系統(tǒng)提供徹底,、統(tǒng)一的復(fù)位,以防系統(tǒng)死機(jī),,實(shí)現(xiàn)對程序的監(jiān)視功能,,解決了程序“跑飛”失控及死循環(huán)問題;8250串行接口模塊完成 MCU與嵌入式MODEM芯片的接口。
嵌入式MODEM單元模塊完成數(shù)據(jù)的調(diào)制解調(diào),,并通過電話線接口與遠(yuǎn)程的標(biāo)準(zhǔn)MODEM進(jìn)行通信;8255接口模塊完成數(shù)據(jù)線的擴(kuò)充,,提供足夠的數(shù)據(jù)線來驅(qū)動系統(tǒng)的指示電路;時鐘電路模塊主要是為系統(tǒng)提供一個準(zhǔn)確、穩(wěn)定和可靠的時鐘,,以便定時和為監(jiān)視器(Watchdog)電路提供方波輸入等,。其中,8255接口模塊,、8250接口模塊及外擴(kuò)存儲器RAM之間,,是通過M68HC912D60的C口的高三位經(jīng)過譯碼后的片選信號控制各模塊的片選來進(jìn)行切換的。
4.3 系統(tǒng)軟件設(shè)計(jì)
軟件部分包括PoS稅控盒部分和稅務(wù)部門的主機(jī)上運(yùn)行的服務(wù)器部分,。前者是以MCU為核心的嵌入式系統(tǒng),,全部以匯編語言編寫;后者運(yùn)行于 Windows平臺,采用VB語言,。圖3給出了主程序的工作流程,。

系統(tǒng)中的通信協(xié)議包括稅控分機(jī)與POSMaster 之間的通信協(xié)議、PoSMaster與稅務(wù)部門主機(jī)間的通信協(xié)議,、稅控分機(jī)與PC機(jī)直接通信的協(xié)議(用于PoSMaster的通信線路故障時),。本系統(tǒng)參考電信部門IC卡公用付費(fèi)電話系統(tǒng)的通信協(xié)議和相關(guān)的國家標(biāo)準(zhǔn),制定了自己的通信協(xié)議,??紤]到設(shè)計(jì)的方便性,在上述的三種通信中采用基本相同的鏈路層和應(yīng)用層協(xié)議。下面是對所用協(xié)議的簡單描述,。
4.3.1 幀結(jié)構(gòu)
鏈路層有兩種幀結(jié)構(gòu):命令幀和數(shù)據(jù)幀,。
(a)命令幀
用于傳輸建鏈請求、應(yīng)答,、請求數(shù)據(jù)等命令以進(jìn)行鏈路控制,,命令幀結(jié)構(gòu)如下:

命令幀符號定義:
SOH 標(biāo)題開始
TYPE 指示幀的類型
Length 指示幀長度
Command 傳輸?shù)拿睿纾?/p>
命令字符:
AUDIT 請求數(shù)據(jù)
ACK 肯定應(yīng)答
NAK 否定應(yīng)答
EOT 傳輸結(jié)束
(b)數(shù)據(jù)幀
用于傳輸實(shí)際的數(shù)據(jù)即稅控信息數(shù)據(jù),,數(shù)據(jù)幀結(jié)構(gòu)如下:
數(shù)據(jù)幀符號定義: SOH 標(biāo)題開始
TYPE 指示幀的類型
Length 指示幀長度
DATA 傳輸?shù)恼?數(shù)據(jù))
ETB 指示一幀數(shù)據(jù)結(jié)束
ETX 指示所有數(shù)據(jù)結(jié)束
BCC 校驗(yàn)碼
4.3.2 通信的流程
在物理層建立連接后,,先發(fā)送一長串同步碼,然后再發(fā)送第一幀數(shù)據(jù),,數(shù)據(jù)上傳的一方發(fā)送肯定應(yīng)答后開始數(shù)據(jù)傳輸過程,。數(shù)據(jù)收集方每接收到一幀數(shù)據(jù),根據(jù)校驗(yàn)的結(jié)果發(fā)肯定或否定應(yīng)答,。
4.3.3 差錯控制
本協(xié)議采用BCC規(guī)則的偶校驗(yàn),。接收端收到一幀數(shù)據(jù)后,若BCC校驗(yàn)有錯,,則發(fā)送NAK要求對方重發(fā)上一幀數(shù)據(jù),。對同一幀信息文電如果重發(fā)次數(shù)超出閾值,則本次通信失敗,,雙方退出通信過程,。
4.3.4 超時控制
通信雙方在收到對方的命令或數(shù)據(jù)后必須在6s以內(nèi)回應(yīng);若某一方在6s內(nèi)沒有收到對方的回應(yīng)則重發(fā)上一次的命令或數(shù)據(jù)。允許的最大重發(fā)次數(shù)為3次,。