超市版稅控收款機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
稅控收款機(jī)是具有特定稅控功能的電子收款機(jī),能夠保證數(shù)據(jù)的正確生成、可靠存儲(chǔ)、安全傳輸,并可實(shí)現(xiàn)稅務(wù)管理和稽查等功能。與普通地稅業(yè)稅控機(jī)相比,超市版需要存儲(chǔ)大量的單品,并有多種商品查找、銷售、收款方式和商業(yè)報(bào)表。超市版稅控機(jī)是一個(gè)復(fù)雜的系統(tǒng),很難用8位或16位單片機(jī)這類功能簡(jiǎn)單的處理器來(lái)實(shí)現(xiàn),且此類處理器一般無(wú)操作系統(tǒng),操作不便。針對(duì)這種情況和中小型超市的需求,這里提出一種基于W90P710處理器及μCLinux操作系統(tǒng)的超市版稅控收款機(jī)的設(shè)計(jì)方案,提出一種擁有掉電保護(hù)裝置、采用嵌入式操作系統(tǒng),可有效提高稅控機(jī)在處理能力、存儲(chǔ)容量、掉電保護(hù)和用戶操作等方面性能。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 硬件總體架構(gòu)
該設(shè)計(jì)處理器為W90P710/W90N745,這是一款專為稅控收款機(jī)而設(shè)計(jì)的器件,幾乎集成了稅控機(jī)所需的所有控制器,又稱片上系統(tǒng)(SOC),它采用ARM的ARM7TDMI微處理器核心以及0.18μm標(biāo)準(zhǔn)生產(chǎn),標(biāo)準(zhǔn)操作頻率達(dá)80 MHz,并采用176-Pin/128-Pin LQPF封裝,較大程度降低了功耗和成本,減少了系統(tǒng)的擴(kuò)展和體積。
超市版稅控收款機(jī)主要包括主控部分(MCU、RAM、程序存儲(chǔ)器、實(shí)時(shí)時(shí)鐘)、稅控存儲(chǔ)器、發(fā)票存儲(chǔ)器、通訊部分、顯示器、打印部分、鍵盤、IC卡讀寫器等必要配置和一些相對(duì)于地稅版收款機(jī)的擴(kuò)展配置(條碼槍、錢箱、權(quán)限鎖、稅控收款機(jī)硬件設(shè)計(jì)總體上采用核心板(CPU板)、接口板、功能模塊外同子系統(tǒng)構(gòu)成。圖1為其硬件組成。
2.2 核心板與接口板模塊
CPU外圍電路主要包括上電初始化設(shè)置電路、晶振電路和CPU復(fù)位電路。圖2為CPU復(fù)位電路。
(1)復(fù)位電路當(dāng)電壓為2.8~3.0 V時(shí),CPU能正常工作,但NOR Flash卻不能正常工作,此時(shí)寫入Flash的數(shù)據(jù)不可靠,這種情況在非法掉電時(shí),因此,該系統(tǒng)設(shè)計(jì)引入CPU復(fù)位電路??紤]到功耗和成本,選擇ADM-809-T器件,低電平有效,復(fù)位時(shí)間140 ns,滿足W90P710對(duì)復(fù)位時(shí)間的要求。
(2)SDRAM電路選用兩片并聯(lián)的16位W986d16EH,構(gòu)成32位的SDRAM。
(3)Flash電路分為NAND Flash和NOR Flash兩部分。本設(shè)計(jì)采用W19B/L320S的NOR Flash作為程序存儲(chǔ)器,選用HYUS08121A的NAND Flash作為稅控機(jī)的數(shù)據(jù)存儲(chǔ)器。
(4)USB接口電路W90P710內(nèi)集成有符合USB1.1規(guī)范的USB HOST控制器。由于USB-HOST與USB-DEVICE的控制器都是集成在W90P710內(nèi)部的,只需將其接口引出即可。
(5)以太網(wǎng)電路主要由MAC控制器和物理層接口(PHY)兩部分組成。W90N710內(nèi)嵌一個(gè)以太網(wǎng)MAC控制器,另外采用DM9161物理層器件以提供以太網(wǎng)的接入通道。
(6)LCD電路考慮到成本,該稅控機(jī)顯示功能模塊采用MST-G240128DYSY-5W型液晶顯示器,它是240x128點(diǎn)陣圖形顯示器,其控制器為UC1608。
(7)RTC掉電保護(hù)電路由于稅控?cái)?shù)據(jù)的申報(bào)、稽查都要涉及稅控機(jī)的系統(tǒng)時(shí)間,因此,稅控收款機(jī)要求高精度時(shí)鐘,故RTC掉電保護(hù)電路極其重要。具體電路如圖3所示。
掉電保護(hù)的原理實(shí)際上就是用2個(gè)二極管來(lái)選擇是用系統(tǒng)電源供電還是用備電池供電,當(dāng)稅控機(jī)正常供電時(shí),VBAT端的電壓約為2.6 V,此時(shí)VD2不導(dǎo)通;若稅控機(jī)掉電,VD3不導(dǎo)通,此時(shí)VD2導(dǎo)通,開始啟用備用電池供電,實(shí)現(xiàn)不間斷供電。由于RTC的供電電壓約1.8 V;所以應(yīng)加一只3.3 V轉(zhuǎn)1.8 V的穩(wěn)壓管對(duì)W90P710內(nèi)的RTC控制器供電。
[!--empirenews.page--]2.3 外圍功能子模塊
超市版稅控收款機(jī)外圍設(shè)備包括打印發(fā)票的打印機(jī)、用戶操作的鍵盤、與稅控用戶卡通信的讀卡器設(shè)備。這3外圍設(shè)備個(gè)模塊各自由一個(gè)8位單片機(jī)控制,功能相對(duì)獨(dú)立,將這些設(shè)備模塊獨(dú)立設(shè)計(jì)后通過(guò)串口連接到主機(jī)上。處理器W90P710上帶有4個(gè)獨(dú)立的串口。稅控機(jī)內(nèi)設(shè)備間的通信只使用串口1作為串行總線,由核心板擴(kuò)展3個(gè)相同的接口,分別與讀卡器、打印機(jī)、鍵盤相連接。ARM7與3個(gè)外設(shè)之間采取命令應(yīng)答的通信模式進(jìn)行通信,并且采用時(shí)間片輪詢方案,當(dāng)總線發(fā)生競(jìng)爭(zhēng)時(shí),可避免一個(gè)設(shè)備占用總線資源而導(dǎo)致死機(jī)。串口0被用作調(diào)試端口,與PC機(jī)相連。串口2接外置手寫板,用于輸入文字信息。串口3接外置MODEM等設(shè)備。針對(duì)超市版稅控收款機(jī)相對(duì)于地稅版所特有的功能,本設(shè)計(jì)還增加了條碼槍、錢箱、權(quán)限鎖等外設(shè)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)軟件架構(gòu)
稅控系統(tǒng)軟件主要由硬件驅(qū)動(dòng)程序、操作系統(tǒng)平臺(tái)相關(guān)軟件和應(yīng)用軟件3部分組成。硬件驅(qū)動(dòng)程序包括CPU初始化、Flash驅(qū)動(dòng)、LCD驅(qū)動(dòng)、USB驅(qū)動(dòng)、以太網(wǎng)驅(qū)動(dòng)、串口驅(qū)動(dòng)等。操作系統(tǒng)平臺(tái)相關(guān)軟件包括系統(tǒng)引導(dǎo)程序(BootLoader)、操作系統(tǒng)內(nèi)核、操作系統(tǒng)組件、API、交叉編譯器等。硬件驅(qū)動(dòng)程序?yàn)棣藽Linux訪問(wèn)底層硬件提供統(tǒng)一的接口。系統(tǒng)引導(dǎo)程序是針對(duì)開發(fā)板自帶的BootLoader而設(shè)計(jì)的,根據(jù)稅控機(jī)的實(shí)際需求進(jìn)行修改而得到的。引導(dǎo)程序負(fù)責(zé)上電啟動(dòng),硬件檢測(cè)及進(jìn)入μCLinux操作系統(tǒng)。μCLinux操作系統(tǒng)實(shí)現(xiàn)文件系統(tǒng)管理、任務(wù)調(diào)動(dòng)、網(wǎng)絡(luò)功能、設(shè)備驅(qū)動(dòng),并提供用戶程序的運(yùn)行環(huán)境等功能。最上層為應(yīng)用軟件。該稅控系統(tǒng)的嵌入式Linux軟件平臺(tái)架構(gòu)如圖4所示。
3.2 應(yīng)用軟件設(shè)計(jì)
3.2.1 軟件總體架構(gòu)
超市版稅控收款機(jī)應(yīng)用軟件有3大功能:系統(tǒng)管理設(shè)置功能、商業(yè)功能和稅控功能。主控模塊控制機(jī)器信息,包括系統(tǒng)設(shè)置、員丁管理、基本信息查詢以及附加功能。該模塊與商業(yè)管理模塊和稅控管理模塊聯(lián)系比較密切。而商業(yè)管理和稅控管理兩個(gè)模塊相對(duì)獨(dú)立,主要通過(guò)機(jī)器初始化和開票操作相關(guān)聯(lián)。這3個(gè)模塊的數(shù)據(jù)都存儲(chǔ)在嵌入式數(shù)據(jù)庫(kù)中。在模塊化設(shè)計(jì)的同時(shí),每個(gè)模塊還采用分層設(shè)計(jì),有分界面、數(shù)據(jù)庫(kù)和基本流程3層,分別調(diào)用不同的API接口,結(jié)構(gòu)清晰,為后續(xù)代碼的跨平臺(tái)移植奠定了基礎(chǔ)。系統(tǒng)功能模塊的劃分如圖5所示。
應(yīng)用軟件是超市版稅控收款機(jī)的核心。由于ARM7處理器沒(méi)有MMU(內(nèi)存管理單元),所以在設(shè)計(jì)應(yīng)用程序時(shí)一定要考慮到內(nèi)存的使用情況,否則就會(huì)出錯(cuò),導(dǎo)致程序崩潰。稅控收款機(jī)的應(yīng)用軟件采用結(jié)構(gòu)化、模塊化設(shè)計(jì)。在模塊劃分的同時(shí),每個(gè)模塊又分層次設(shè)計(jì),從上到下依次為界面層,數(shù)據(jù)庫(kù)應(yīng)用層以及流程層。
3.2.2 系統(tǒng)管理模塊
系統(tǒng)管理包括員工管理、系統(tǒng)設(shè)置和基本信息查詢。其中,員工管理主要有權(quán)限管理和單個(gè)管理兩種。當(dāng)機(jī)器初始化后,數(shù)據(jù)庫(kù)有一個(gè)默認(rèn)的管理員,操作人在注冊(cè)員工之前只能以該管理員的身份登陸,然后注冊(cè)新員工來(lái)進(jìn)行操作;系統(tǒng)設(shè)置主要是設(shè)定系統(tǒng)的功能,實(shí)現(xiàn)對(duì)系統(tǒng)設(shè)置表的操作;基本信息查詢是對(duì)數(shù)據(jù)庫(kù)的操作,用戶可以在這個(gè)子模塊內(nèi)查詢機(jī)器的信息。
3.2.3 商業(yè)管理模塊
商業(yè)管理包括銷售和報(bào)表兩個(gè)模塊。其中,銷售模塊是超市版收款機(jī)運(yùn)用最頻繁的一部分,包括收款員交接班,錢箱管理,多種單品錄入方式等功能。而報(bào)表子模塊主要是總結(jié)一個(gè)階段內(nèi)銷售及發(fā)票信息,以便用戶了解一段時(shí)間內(nèi)的銷售量,單個(gè)項(xiàng)目的銷售量以及員工業(yè)績(jī)等。查看報(bào)表后,用戶可以打印各種報(bào)表信息。
3.2.4 稅務(wù)管理模塊
稅務(wù)管理模塊包括發(fā)票管理和稅務(wù)管理兩個(gè)模塊。其中,發(fā)票管理模塊主要管理對(duì)稅控機(jī)的發(fā)票。按常規(guī)來(lái)說(shuō),退票和廢票是銷售的另外兩種方式,之所以將發(fā)票管理模塊放在稅務(wù)管理模塊中,主要是因?yàn)檫@兩個(gè)模塊使用較少,沒(méi)有必要和銷售放在一起,每次都需選擇。只有稅務(wù)管理模塊是稅控收款機(jī)最主要的功能,因此要求安全可靠,考慮到所有異常情況的發(fā)生,才能有利于稅控機(jī)的推廣。稅務(wù)管理包括稅務(wù)初始化、開票、申報(bào)、完稅、稽查等功能。
4 應(yīng)用實(shí)例
經(jīng)過(guò)精心設(shè)計(jì)和反復(fù)調(diào)試,目前樣機(jī)已完成且通過(guò)測(cè)試和鑒定,能可靠的實(shí)現(xiàn)各項(xiàng)功能。具體功能實(shí)現(xiàn)為:分權(quán)限管理,支持6個(gè)管理員、99個(gè)收款員;可打印13種商業(yè)報(bào)表:支持兩萬(wàn)個(gè)PLU,條碼長(zhǎng)度支持1~20位;最多可將商品分成50個(gè)部類進(jìn)行管理;可快捷注冊(cè)20個(gè)PLU;最多可保留20條銷售暫掛信息;擁有輸入快捷鍵、商品編碼、商品條形碼、商品拼音4種商品錄入查找方式;支持現(xiàn)金、優(yōu)惠券、信用卡、支票以及兩種外幣等6種付款方式,并可進(jìn)行退票,廢票操作;最多可同時(shí)使用6個(gè)項(xiàng)目,每個(gè)項(xiàng)目可對(duì)應(yīng)不同稅率;具有單張發(fā)票限額、累計(jì)發(fā)票限額、退票限額功能;可支持打印76 mm、57 mm兩種發(fā)票;可存儲(chǔ)100筆錢箱報(bào)告和記錄50 000條發(fā)票明細(xì);可保持10年日交易數(shù)據(jù)(國(guó)標(biāo)要求不少于5年);能夠可靠地完成報(bào)稅、完稅及稅務(wù)部門的稽查功能。
5 結(jié)束語(yǔ)
在國(guó)家稅控機(jī)有關(guān)標(biāo)準(zhǔn)的基礎(chǔ)上,仔細(xì)研究目前稅控收款機(jī)的不足與缺陷,根據(jù)市場(chǎng)需求,設(shè)計(jì)超市版稅控收款機(jī)的軟硬件。但由于硬件限制,單品注冊(cè)數(shù)量和查找速度仍不夠理想,此款稅控機(jī)適用于中小型超市,在此基礎(chǔ)上經(jīng)過(guò)升級(jí)可開發(fā)網(wǎng)絡(luò)版收款機(jī),將其使用于大型超市。