基于通用接口芯片CH365的財稅安全卡設計
目前中國國內“金稅工程”經(jīng)過(guò)幾年的推廣實(shí)施,在全國范圍內己取得了巨大的經(jīng)濟效益和社會(huì )效益,在金稅工程中,最重要的是對于開(kāi)票系統數據的保護,為了防止開(kāi)票系統受病毒感染或被人為地破壞,絕大部分的單位都被要求專(zhuān)機專(zhuān)用,從而來(lái)確保系統的安全和穩定。
本文引用地址:http://dyxdggzs.com/article/201705/359675.htm但隨著(zhù)“金稅工程”的深入推廣,也暴露出了一些急待解決的問(wèn)題∶首先,由于國稅局對于企業(yè)的防偽稅控開(kāi)票系統有“專(zhuān)機專(zhuān)用”的要求,致使企業(yè)花費一萬(wàn)多元購買(mǎi)的防偽稅控設備及計算機只能用于開(kāi)具增值稅發(fā)票巨大的資源浪費;其次,隨著(zhù)電子報稅、出口退稅等科技手段在企業(yè)中的應用以及企業(yè)財務(wù)管理的電子化,都必須依賴(lài)計算機處理,這必然會(huì )造成企業(yè)還需再投資一臺電腦給財務(wù)人員來(lái)處理這方面的工作,這對企業(yè)來(lái)說(shuō),是一種重復的投資;最后,防偽稅控的系統和數據,財務(wù)軟件和數據以及電子報稅系統和數據等都屬于企業(yè)的重要資料,如何保證其安全性,使其不會(huì )因為財務(wù)人員的誤操作、病毒等因素造成系統的崩潰,甚至重要數據資料的丟失,而影響企業(yè)的正常工作。
財稅安全卡的硬件實(shí)現
財稅安全卡的工作過(guò)程和工作原理是:利用PCI總線(xiàn)的擴展ROM機制,在安全卡上嵌入擴展程序,通過(guò)CH365的本地8位總線(xiàn),接管并擴展BIOS的INT13H中斷,實(shí)時(shí)監控系統的讀寫(xiě)操作,根據設置進(jìn)行過(guò)濾,確保讀寫(xiě)操作的安全性,實(shí)現硬盤(pán)隔離和一機多用。相關(guān)硬盤(pán)系統引導分區等信息可以通過(guò)CH365的兩線(xiàn)串行主機接口保存在EEPROM上,達到動(dòng)態(tài)分隔硬盤(pán)空間的目的,將一個(gè)硬盤(pán)分成相互隔離互不干擾的多個(gè)硬盤(pán)空間。

圖1:財稅安全卡硬件電路圖
PCI總線(xiàn)協(xié)議比較復雜,用戶(hù)可以根據具體實(shí)際需求選擇相應的開(kāi)發(fā)方式。一般,PCI總線(xiàn)開(kāi)發(fā)采用兩種方式:一是采用CPLD來(lái)設計控制接口。它的最大好處是比較靈活,用戶(hù)可以根據自己的需要開(kāi)發(fā)出適合于特定功能的芯片,而不必實(shí)現PCI的全部功能?,F在有許多生產(chǎn)可編程邏輯器件的廠(chǎng)商,如Xilinx的LogiCore和Altera的AMPP都提供經(jīng)過(guò)嚴格測試的PCI接口功能模塊,用戶(hù)只要進(jìn)行組合設計即可。由于PCI總線(xiàn)協(xié)議復雜,設計PCI控制接口難度較大,對于產(chǎn)品不大又有時(shí)限的工程項目來(lái)說(shuō),成本巨大。
二是采用通用PCI接口芯片,例如南京沁恒公司的CH365、AMCC公司的AMCCS5920和AMCCS5933,PLX公司的PLX9054和PLX9080等。通過(guò)專(zhuān)用芯片可以實(shí)現完整的PCI主控模塊和目標模塊的功能,將復雜的PCI總線(xiàn)接口轉換為相對簡(jiǎn)單的用戶(hù)接口,用戶(hù)只要設計轉換后的總線(xiàn)接口即可,它能實(shí)現PCI規范所要求的所有硬件接口信號和配置空間寄存器,專(zhuān)用接口芯片具有較低的成本和通用性,能夠有效降低接口設計的難度,縮短開(kāi)發(fā)時(shí)間,并能獲得較好的數據傳輸性能。
第二種方法適合于小規模的情況,能夠有效縮短開(kāi)發(fā)時(shí)間以及成本投入,因此在設計財稅安全卡上選擇CH365 PCI接口芯片。CH365是一個(gè)連接PCI總線(xiàn)的通用接口芯片,支持I/O端口映射、存儲器映射、擴展ROM以及中斷。實(shí)現將基于32位PCI總線(xiàn)的從設備接口轉換為主動(dòng)并行接口:8位數據、16位地址、I/O讀和寫(xiě)、存儲器讀和寫(xiě)。支持低電平有效的本地中斷請求,支持中斷共享。支持長(cháng)度達240字節的I/O端口。支持本地硬件定址功能,自由選擇I/O地址,并在指定地址實(shí)現I/O端口?;贑H365的財稅安全卡硬件電路圖如圖1。
在本設計中,所使用的存儲器是華邦公司的W27C512,64K容量。存儲器容量根據安全卡擴展程序的大小選擇更大的存儲器,如128K等。EEPROM是Atmel公司的AT24C02,支持寫(xiě)保護功能,能夠有效防止信息被篡改。圖1的財稅安全卡的硬件電路核心器件是PCI接口芯片CH365、W27C512和AT24C02,CH365的部分引腳連線(xiàn)直接與金手指(電路板和插槽之間的連接點(diǎn))相連。
CH365通過(guò)MEM_RD與ROM芯片U2(27C512)連接。CH365支持EPROM和閃存,容量為32KB或者64KB,如果將SYS_EX用于A(yíng)16地址線(xiàn),則最大容量可達128KB。一般情況下CH365直接支持32KB容量的擴展ROM(即27C256芯片的容量),但可以在擴展ROM的程序中通過(guò)控制A15地址線(xiàn)支持64KB容量的ROM芯片??蛇x的下拉電阻R1用于CH365的工作模式設定,圖中的數據線(xiàn)D0被連接了下拉電阻,所以系統復位后,地址線(xiàn)A15為低電平,從而選擇U2的低32KB(偏移地址為0000H~7FFFH),而在需要讀取U2的高32KB時(shí)(偏移地址為8000H~0FFFFH),可以通過(guò)寫(xiě)芯片控制寄存器的位0重新設定A15地址線(xiàn)來(lái)訪(fǎng)問(wèn)ROM的高字節。

圖2:CH365的讀寫(xiě)時(shí)序
另外,PCI擴展ROM的內容通常被BIOS復制到RAM內存中,所以需要設置CH365的擴展ROM基址以重新映射U2到存儲器空間。
CH365通過(guò)SYS_EX與EPPROM芯片U3(型號是AT24C02)連接,CH365的SCL信號線(xiàn)可以選用SYS_EX或者A15,系統復位后的默認選擇是A15,通常在A(yíng)15用作地址線(xiàn)時(shí)選用SYS_EX,否則選用A15。因為SDA信號線(xiàn)同時(shí)是數據線(xiàn)D7,為了防止在SCL高電平期間由于SDA變化而產(chǎn)生不必要的誤操作,通常借助于工作模式設定使SCL信號線(xiàn)(SYS_EX或A15)在系統復位后保持低電平。CH365的兩線(xiàn)串行接口使用7位設備地址,可以同時(shí)連接多個(gè)設備。設備地址和命令寄存器的位7至位1為7位設備地址位,用以選擇從設備;位0為命令位,置0代表寫(xiě)操作,置1代表讀操作。本設計中連接一個(gè)設備,通過(guò)數據線(xiàn)D7保存相關(guān)的硬盤(pán)引導分區的信息,同時(shí)通過(guò)“LOCK”信號可以對設備進(jìn)行寫(xiě)保護,防止信息篡改等。CH365的讀寫(xiě)時(shí)序如圖2。
財稅安全卡的擴展程序設計
PC機中的擴展ROM相當于一個(gè)電子盤(pán),如果在其中寫(xiě)入引導程序和應用程序,即使計算機沒(méi)有硬盤(pán)和操作系統,擴展ROM中的引導程序和應用程序也能夠控制計算機實(shí)現某些特定的功能。例如,無(wú)硬盤(pán)PC機用于工業(yè)控制,控制外部設備及作業(yè)流程等。
財稅安全卡就是應用到PCI總線(xiàn)的擴展ROM,通過(guò)特定的擴展引導應用程序,在計算機啟動(dòng)進(jìn)入硬盤(pán)時(shí)有效地接管和控制硬盤(pán)引導,以達到動(dòng)態(tài)分隔硬盤(pán)空間將一個(gè)硬盤(pán)分成相互隔離,互不干擾的多個(gè)硬盤(pán)空間,可以根據用戶(hù)需求引導進(jìn)入相應的系統和使用相應的空間。
擴展引導應用程序主要包括PC引導控制權接管模塊、動(dòng)態(tài)隔離硬盤(pán)空間模塊,多系統引導模塊(其中包含I2C讀寫(xiě)模塊)。通過(guò)豐富擴展引導引用程序,可以實(shí)現基于BIOS級的系統分區備份、系統數據備份、系統拷貝等功能。
1. PC引導控制權接管的實(shí)現
在PC的BIOS自檢中,硬件設備檢測正常通過(guò)后,就開(kāi)始把系統引導控制權即根據用戶(hù)指定的啟動(dòng)順序遞交給軟盤(pán)、硬盤(pán)或光驅啟動(dòng)。以從C盤(pán)啟動(dòng)為例,系統BIOS將讀取并執行硬盤(pán)上的主引導記錄,主引導記錄接著(zhù)從分區表中找到第一個(gè)活動(dòng)分區,然后讀取并執行這個(gè)活動(dòng)分區的分區引導記錄,而分區引導記錄將負責讀取并執行IO.SYS,這是DOS和Windows9x最基本的系統文件。
擴展ROM程序首次獲得CPU控制權,修改系統自舉中斷INT19以便在引導操作系統前被初始化,重新編寫(xiě)新INT19中斷服務(wù)程序,使用INT7B中斷向量作為返回地址。
BOOT_ROM_INIT: PUSH DX;保存寄存器
PUSH BX
MOV DH, 80H;位7置1則自動(dòng)檢測主板的BIOS
MOV DL, 0FFH;指定初始化方式,為0FFH則自動(dòng)檢測
MOV BX, OFFSET ROM_INT19;指定新INT19程序的偏移地址_ROM_INT19,
CALL INIT_ROM;ROM初始化程序,返回DL為實(shí)際使用的初始化方式
POP BX
POP DX
RETF;ROM初始化完成后返回,必須是遠程返回
2. 動(dòng)態(tài)隔離硬盤(pán)空間的實(shí)現
可以利用硬盤(pán)特性“AddressOffsetMode”和“SetMax”來(lái)有效地縮小硬盤(pán)空間,使得動(dòng)態(tài)隔離硬盤(pán)空間,其中通過(guò)獲取硬盤(pán)I/O端口的基址來(lái)設置硬盤(pán)最大邏輯塊尋址(LBA)地址。傳統的縮小硬盤(pán)空間采用的是隱藏分區,通過(guò)修改系統分區表的系統標志位達到隱藏分區效果,此方法安全性低,不能有效地隔離硬盤(pán),在財稅安全方面達不到安全性能要求。
3. 多系統引導模塊的實(shí)現
多系統引導根據用戶(hù)選擇啟動(dòng)相應的系統,去選擇相應的引導程序,這里有別于計算機多重引導啟動(dòng)(邏輯隔離)原有的系統引導程序,它是簡(jiǎn)單的單分區單系統啟動(dòng)模式,即固定讀入硬盤(pán)活動(dòng)分區引導記錄以實(shí)現對系統的引導,而活動(dòng)分區是相對固定的。重寫(xiě)的系統引導程序實(shí)現了多分區多系統啟動(dòng)模式,可以將硬盤(pán)任一分區視作活動(dòng)分區,讀入該分區引導記錄以引導系統,本設計中采用的是通過(guò)加載多重引導信息扇區,檢驗數據的有效性,在加載過(guò)程中動(dòng)態(tài)設置硬盤(pán)分區信息。
評論