計算機pci總線的擴展rom卡的製作方法
2023-06-19 18:05:06 2
專利名稱:計算機pci總線的擴展rom卡的製作方法
技術領域:
本發明涉及一種用於計算機的PCI總線的擴展ROM卡,尤其是由PCI總線接口模塊和ROM晶片組成的擴展ROM卡。
已有的PCI總線的擴展ROM卡根據其功能可分為防病毒卡、數據加解密卡(也可稱為數據安全卡)、硬碟還原卡(也可稱為硬碟保護卡、系統復原卡)等。安裝了防病毒卡的計算機可以清查病毒,防止病毒入侵;安裝了數據加解密卡的計算機則可以對重要的數據提供更強的安全性保障;安裝了硬碟還原卡的計算機則可以對用戶選定區域的硬碟數據進行保護和還原,以防止誤刪除、故意破壞以及防病毒等。這類擴展ROM卡主要依靠電腦程式也就是軟體實現具體功能,而硬體是軟體的載體,擴展ROM卡的硬體結構主要由一個PCI總線接口模塊和一個ROM晶片組成。ROM晶片是一種數據存儲器,其中存儲了實現擴展ROM卡的具體功能所需要的電腦程式代碼和數據,但不能被計算機直接存取到。PCI總線接口模塊是一種接口轉換裝置,用於將ROM晶片連接到計算機系統的PCI總線上,計算機系統通過PCI總線與PCI總線接口模塊相連接,再由PCI總線接口模塊與ROM晶片相連接,從而間接地存取ROM晶片中的程序代碼和數據。
根據計算機的PCI總線規範(PCI Local Bus Specification),PCI設備(包括擴展ROM卡或者網卡)應該實現配置空間,在配置空間中應該提供如下識別信息供應商識別碼(Vendor ID),設備識別碼(Device ID),設備分類代碼(Class Code)等。當計算機系統讀取了某擴展ROM卡的配置空間後,就可以根據所讀取的PCI設備識別信息(即供應商識別碼和設備識別碼以及可選的設備分類代碼)確定該擴展ROM卡是哪個廠家的哪個設備,進而可以在作業系統中加載相應的驅動程序和執行相應的操作。
為了向計算機系統提供PCI設備識別信息,已有的PCI總線接口模塊通常有兩種,一種是直接由一個專用接口晶片構成,另一種是由一個通用接口晶片和一個配置晶片構成。在專用接口晶片的方案中,各廠家為自己的擴展ROM卡定製專用接口晶片,PCI設備識別信息直接固化在專用接口晶片中,所以該晶片將只能用於某一個廠家的某一個設備;並且由於定製晶片就像開模具一樣,存在「開模費」和「單個產品的直接成本費」,所以在晶片用量低於幾十萬顆也就是該擴展ROM卡的銷量低於幾十萬套的情況下,將「開模費」平攤到每個晶片上,定製專用接口晶片的成本將會變得相當高。另一種由通用接口晶片和配置晶片構成的方案中,配置晶片是一種存取速度較低的串行接口的可編程存儲器EEPROM(例如型號為93C46或93LC46的集成電路),其中被設置了由各擴展ROM卡的廠家定義的PCI設備識別信息。通用接口晶片是一種工業化批量生產的電路結構固定的集成電路(例如型號為PCI9050、W89C940F的集成電路,W89C940F本來是PCI網卡晶片,但在一定條件下也可以用作擴展ROM卡的通用接口晶片),內部具有類似RAM結構的配置空間寄存器,通常不直接固化PCI設備識別信息。這類通用接口晶片在復位後,將配置晶片中的PCI設備識別信息讀取到通用接口晶片的配置空間寄存器中,以後計算機系統通過高速的PCI總線讀取該PCI設備的配置信息時,通用接口晶片將不再讀取低速的配置晶片,而是直接轉向配置空間寄存器。通過這樣的方式,將PCI設備識別信息定義在配置晶片中,從而使一個通用接口晶片可以用於多個廠家的多種擴展ROM卡設備,增加了通用接口晶片的用量,也就間接地降低了產品的成本,但由於多了一個配置晶片,直接產品成本還是偏高,並且為配置晶片寫入PCI設備識別信息也增加了生產時的工作量。
本發明的目的是,提供一種方便設置PCI設備識別信息並且硬體直接成本更低的計算機PCI總線的擴展ROM卡。
本發明的技術構思是,去掉原配置晶片,將PCI設備識別信息設置在ROM晶片中(該信息可以同時用於擴展ROM卡的PCI-ROM頭結構),將擴展ROM卡的配置空間分成設備識別信息區域和非設備識別信息區域,將設備識別信息區域映射到ROM晶片中。
本發明的技術方案是擴展ROM卡(2)具有印刷電路板和設置在板上的PCI總線接口模塊(3)和ROM晶片(4),PCI設備識別信息設置在ROM晶片中,PCI總線接口模塊通過其數據總線埠、地址總線埠、ROM控制信號埠與ROM晶片的對應埠相連接;PCI總線接口模塊具有PCI總線解碼電路(31)、配置空間寄存器(32)、配置空間再解碼電路(33)、邏輯或門(34),PCI總線解碼電路通過其輸出的配置空間控制信號端(C)和內部地址總線端與配置空間再解碼電路相連接,配置空間再解碼電路通過其輸出的設備識別信息區域的控制信號端(I)與邏輯或門的一組輸入端相連接,邏輯或門的另一組輸入端與PCI總線解碼電路輸出的擴展ROM存儲器空間控制信號端(M)相連接,邏輯或門的輸出端作為PCI總線接口模塊的ROM控制信號端,配置空間寄存器分別與內部地址總線、數據總線、配置空間再解碼電路的非設備識別信息區域的控制信號端相連接。擴展ROM卡的配置空間被配置空間再解碼電路進行地址解碼,分成設備識別信息區域和非設備識別信息區域,非設備識別信息區域繼續保留在配置空間寄存器中,而將對設備識別信息區域的存取通過邏輯或門與擴展ROM存儲器空間進行邏輯或操作,也就是將設備識別信息區域映射到作為存儲器空間的ROM晶片中。基於上述技術方案,擴展ROM卡的廠家只要將定義的PCI設備識別信息隨電腦程式和數據一起寫入ROM晶片,就可以省去配置晶片,既方便地定義了PCI設備識別信息,又節約了成本。
上述PCI設備識別信息主要是指PCI設備的供應商識別碼(Vendor ID)、設備識別碼(Device ID)、設備分類代碼(Class Code),進一步還可以包括Revision ID、SubsystemID、Subsystem Vendor ID等。供應商識別碼標明設備的製造者即生產廠家,由PCI-SIG分配以保證唯一性,設備識別碼標明特定的設備,由供應商分配,設備分類代碼主要用於系統確定該設備的類別,比如網卡的分類代碼是02H,分類代碼10H則為加解密設備。這些信息在配置空間中都具有固定的起始地址和長度供應商識別碼長度為兩字節,起始地址為00H-01H,設備識別碼在02H-03H的地址上,設備分類代碼在09H-0BH的地址上。
上述PCI總線接口模塊可以進一步包括一個可使能地址轉換電路(35),具有地址輸入埠、地址輸出埠、轉換使能控制輸入埠。可使能地址轉換電路的地址輸入端連接到內部地址總線上,地址輸出端作為PCI總線接口模塊的地址總線端與ROM晶片的地址端相連接,轉換使能控制輸入端連接到設備識別信息區域的控制信號線上。在設備識別信息區域的控制信號有效時,地址轉換被使能,可使能地址轉換電路輸出轉換後的映射地址,否則輸出未經處理過的地址。通過這樣的方式,就可以將配置空間的設備識別信息區域映射到ROM晶片中的一個固定並且不會衝突的地址上。例如配置空間中的供應商識別碼的標準地址為00H-01H,但ROM晶片中的00H地址通常會存儲ROM頭結構數據,為避免衝突,可以將供應商識別碼定義在ROM晶片的40H-41H地址上,並使可使能地址轉換電路將00H地址轉換成40H地址,經過這樣的處理,計算機系統在存取配置空間中的供應商識別碼時輸出地址為00H,經地址轉換後為40H,就可以在ROM晶片的40H地址上存取到事先定義的供應商識別碼。而在ROM作為存儲器空間被存取到時,因為可使能地址轉換電路不被使能而輸出未經處理過的地址,所以也不會影響ROM晶片原來的存取。
上述PCI總線接口模塊的配置空間再解碼電路還可以進一步包括一個解碼使能輸入埠,該解碼使能輸入端與一個從PCI總線接口模塊外部輸入的控制端或一個可預置的控制寄存器單元相連接,在配置空間寄存器中固化了默認的PCI設備識別信息的情況下,該解碼使能輸入端可以控制配置空間再解碼電路是否譯出設備識別信息區域的控制信號。對於ROM晶片失效等特殊情況,可以從外部控制端或控制寄存器中設定解碼使能輸入端為解碼禁止狀態,從而使擴展ROM卡在計算機系統存取設備識別信息時,返回配置空間寄存器中的默認設備識別信息,而不再映射到已經無效的ROM晶片中,這種方式可以輔助維護、升級等特殊操作,直到ROM晶片恢復有效。
上述ROM晶片通常選用在一定條件下可編程的數據存儲器,類型是EPROM、EEPROM或快閃記憶體(Flash Memory),在實際應用中,具體的型號是27256、27C256、27C512、27E512或29C010等。這些集成電路可以在線電擦寫或用編程器擦寫,將電腦程式和數據以及PCI設備識別信息方便地設置到ROM晶片中,從而實現擴展ROM卡的具體功能。為了支持PCI總線的字存取和雙字存取,實際的PCI總線解碼電路中還需要針對普通ROM晶片8位數據埠的情況增加一個2位地址計數器和一組數據寄存器,當計算機系統的PCI總線使用字存取時,地址計數器首先輸出地址0,從ROM晶片XXXXXXX0B(二進位數)地址中讀取一個字節暫存在數據寄存器中,然後對地址計數器增加計數而輸出地址1,再從ROM晶片XXXXXXX1B(二進位數)地址中讀取下一個字節,並與數據寄存器中的前一字節合併在一起,返回一個字數據給計算機系統。
上述擴展ROM卡的PCI總線接口模塊可以由高速邏輯電路實現,但實際上也可以定製成通用接口晶片,從而降低在批量應用時的硬體成本。這種定製和專用集成電路方案中的定製不同,前者仍然可以由各個擴展ROM卡的廠家定義PCI設備識別信息,所以可以推廣為行業應用,後者固化了PCI設備識別信息,所以只能供某個廠家使用。採用本發明的技術方案而定製的通用接口晶片,在對外連接關係上,應該具有與ROM晶片相連接的8位數據總線埠、至少15位地址總線埠以及ROM讀控制信號埠。地址總線越寬則所支持的ROM晶片容量越大,15位地址支持32KB的ROM晶片,可以滿足簡單功能的擴展ROM卡的需要。為了支持使用在線電擦寫的ROM晶片的擴展ROM卡,接口晶片還可以提供ROM寫控制信號以及可選的片選控制信號。
應用本發明的技術方案後,擴展ROM卡的廠家不必再向配置晶片寫入數據,減少了生產工序和工作量,並且仍然可以方便地設置PCI設備識別信息,更進一步地降低了擴展ROM卡的硬體直接成本。
下面結合附圖對本發明作進一步的說明。
圖1為應用本發明技術方案的擴展ROM卡的電路結構示意圖。
圖2為已有的擴展ROM卡的電路結構框圖。
圖3為應用本發明技術方案的擴展ROM卡的電路結構框圖。
圖4為應用本發明技術方案的擴展ROM卡的主要原理圖。
圖5為基於本發明技術方案將PCI總線接口模塊集成為單個晶片後的原理圖。
見圖1,本發明所描述的擴展ROM卡(2)包括PCI總線接口模塊(3)、ROM晶片(4)以及用於承載上述器件的印刷電路板。計算機的PCI總線通過PCI插槽以及擴展ROM卡的金手指與PCI總線接口模塊相連接,PCI總線接口模塊通過數據總線、地址總線以及ROM控制信號線與ROM晶片相連接,ROM晶片中除了實現擴展ROM卡具體功能所需要的電腦程式和數據外,還被設置了PCI設備識別信息。
見圖2,這是已有的擴展ROM卡的主要電路結構框圖,擴展ROM卡(2)的PCI總線接口模塊(3)包括PCI總線解碼電路(31)、配置空間寄存器(32)以及可選的用於存儲PCI設備識別信息的配置晶片。配置空間寄存器中具有已固化的或在復位後從配置晶片加載的PCI設備識別信息。PCI總線解碼電路與計算機的PCI總線相連接,對PCI總線操作進行命令解碼和地址空間解碼,輸出配置空間控制信號(C)、擴展ROM存儲器空間控制信號(M)、內部地址總線以及雙向數據總線。當計算機系統讀取擴展ROM卡的PCI設備識別信息時,PCI總線解碼電路向配置空間寄存器輸出有效的配置空間控制信號和存取地址,配置空間寄存器從數據總線輸出實際數據,經PCI總線解碼電路緩衝後返回計算機系統。
見圖3,這是應用本發明技術方案後的擴展ROM卡的主要電路結構框圖,在已有的擴展ROM卡(2)的PCI總線接口模塊(3)中增加部件配置空間再解碼電路(33)、邏輯或門(34)、可使能地址轉換電路(35)。配置空間再解碼電路將PCI總線解碼電路輸出的配置空間控制信號根據存取地址進行解碼,分解為非設備識別信息區域的控制信號和設備識別信息區域的控制信號,前者代替原配置空間控制信號與配置空間寄存器相連接,後者分別連接到邏輯或門的一個輸入端和可使能地址轉換電路的轉換使能控制輸入端。邏輯或門對兩個輸入端的信號進行邏輯或操作後輸出ROM控制信號,也就是使ROM控制信號在存取該存儲器空間或配置空間的設備識別信息區域時都輸出有效狀態。可使能地址轉換電路用於在轉換使能控制輸入有效時,將輸入的地址按固定格式轉換為映射地址,否則維持原地址輸出。當計算機系統存取擴展ROM卡的存儲器空間時,可使能地址轉換電路輸出原地址,邏輯或門輸出為有效,擴展ROM卡返回ROM晶片中的數據;當計算機系統存取配置空間的非設備識別信息區域時,經配置空間再解碼電路選中配置空間寄存器,擴展ROM卡返回配置空間寄存器中的數據;當計算機系統存取配置空間的設備識別信息區域時,經配置空間再解碼電路禁止配置空間寄存器,可使能地址轉換電路輸出轉換後的映射地址,邏輯或門輸出為有效,擴展ROM卡返回ROM晶片中映射地址處的PCI設備識別信息。
見圖4,這是應用本發明技術方案的擴展ROM卡的關鍵部位的原理圖,33是配置空間再解碼電路,34是邏輯或門,35是可使能地址轉換電路,為簡化起見,圖中僅畫出可使能地址轉換電路中的A7和A15的與門及相關連接,A8-A14的電路與A7或A15類同。PCI總線解碼電路(31)的具體實現可參考PCI總線規範,例如在檢測到PCI配置空間的存取命令並且PCI_IDSEL線有效時,輸出鎖存後的存取地址到內部地址總線並輸出有效的配置空間控制信號;在檢測到PCI存儲器空間的存儲命令時,將配置空間寄存器中的擴展ROM基址寄存器中的基址與輸入的存取地址基址相比較,確定基址相匹配後,輸出鎖存後的存取地址到內部地址總線並輸出有效的擴展ROM存儲器空間控制信號;為了支持8位數據總線的ROM晶片與32位PCI總線交換數據,PCI總線解碼電路具有一個地址計數器和一組數據寄存器,用於將字或雙字存取操作分解為2或4次字節存取操作,地址計數器用於計次和產生地址,數據寄存器用於暫時存放前幾次存取的數據,以便在所有數據存取完畢後再合併。圖中,PCI總線解碼電路輸出存儲器讀控制信號(MR)、配置空間控制信號包括讀控制信號(CR)和寫控制信號(CW)、16位內部地址總線信號(A0-A15)以及8位數據總線信號(D0-D7)。配置空間再解碼電路中,存取地址不是000000XXB(PCI設備識別信息所在地址00H-03H)時N-ID信號有效,進而使非設備識別信息區域的控制信號(CRO)和(CWO)有效,配置空間寄存器被選中;存取地址是000000XXB時ID信號有效,進而設備識別信息區域的控制信號(I)變為有效。邏輯或門將設備識別信息區域的控制信號(I)與存儲器讀控制信號(MR)相或,輸出ROM讀控制信號,圖中使用或非門使ROM晶片獲得低電平有效的控制信號(XMR)。可使能地址轉換電路被使能轉換後,地址A0-A5仍然正常輸出,地址A6總是輸出高電平,地址A7-A15總是輸出低電平,所以00H-3FH地址範圍內的配置空間將被映射到ROM晶片中的0040H-007FH地址範圍內,也就是說,配置空間中的供應商識別碼(原地址為00H-01H)將被映射到ROM晶片中的0040H-0041H地址上。
見圖5,基於本發明技術方案的擴展ROM卡(2)的PCI總線接口模塊(3)被集成為一個晶片。PCI總線接口模塊是型號為CH361的集成電路,ROM晶片(4)是型號為27C512的集成電路。CH361通過D0-D7、A0-A15以及MEM_READ#與27C512相連接,因為27C512不支持在線電擦寫,所以CH361的MEM_WRITE#端沒有連接。PCI設備識別信息按照原來在配置空間中的分布方式定義在27C512晶片的以0040H為起始地址的區域中,其中供應商識別碼定義在0040H-0041H的地址上,設備識別碼定義在0042H-0043H的地址上,設備分類代碼定義在0049H-004BH的地址上,相互之間的地址關係不變。以這樣的技術方案構成的擴展ROM卡,設置方便,生產更簡單,硬體成本更低。
權利要求
1.一種計算機PCI總線的擴展ROM卡,具有印刷電路板和設置在板上的PCI總線接口模塊、ROM晶片以及用於與PCI插槽相接觸的金手指觸點,金手指與PCI總線接口模塊的PCI總線埠相連接,PCI總線接口模塊通過其數據總線埠、地址總線埠、ROM控制信號埠與ROM晶片的對應埠相連接,ROM晶片是保存程序代碼和數據的存儲器,其特徵是在ROM晶片的特定區域中包含了該擴展ROM卡所必要的PCI設備識別信息,該擴展ROM卡不包含用於提供PCI設備識別信息的其它配置晶片。
2.根據權利要求1所述的擴展ROM卡,其特徵是PCI總線接口模塊具有PCI總線解碼電路、配置空間再解碼電路、配置空間寄存器、一組邏輯或門,PCI總線解碼電路通過其輸出的配置空間控制信號和內部地址總線與配置空間再解碼電路相連接,配置空間再解碼電路通過其輸出的設備識別信息區域的控制信號與邏輯或門的一組輸入端相連接,邏輯或門的另一組輸入端接PCI總線解碼電路的存儲器空間控制信號輸出端,邏輯或門的輸出端作為PCI總線接口模塊的ROM控制信號埠,配置空間寄存器分別與內部地址總線、數據總線、配置空間再解碼電路的非設備識別信息區域的控制信號輸出端相連接。
3.根據權利要求2所述的擴展ROM卡,其特徵是配置空間寄存器中設置了默認的設備識別信息,PCI總線接口模塊的配置空間再解碼電路包括一個解碼使能輸入端,該解碼使能輸入端與一個從PCI總線接口模塊外部輸入的控制端或一個可預置的控制寄存器單元相連接,用於控制配置空間再解碼電路是否譯出設備識別信息區域的控制信號。
4.根據權利要求1所述的擴展ROM卡,其特徵是設置在ROM晶片中的PCI設備識別信息包括供應商識別碼(Vendor ID)和設備識別碼(Device ID)。
5.根據權利要求4所述的擴展ROM卡,其特徵是PCI設備識別信息在ROM晶片中的相對地址,供應商識別碼處於0040H-0041H的地址,設備識別碼處於0042H-0043H的地址。
6.根據權利要求1所述的擴展ROM卡,其特徵是ROM晶片的類型是EPROM、EEPROM或快閃記憶體(Flash Memory),ROM晶片的型號是27C256、27C512或29C010。
7.根據權利要求1、2或3所述的擴展ROM卡,其特徵是PCI總線接口模塊是一個已經將模塊內部電路進行了集成的PCI總線接口晶片,該晶片具有與ROM晶片相連接的8位數據總線埠、至少14位地址總線埠、ROM讀控制信號埠。
8.根據權利要求1、2或3所述的擴展ROM卡,其特徵是PCI總線接口模塊和ROM晶片被集成在一個整合晶片中,擴展ROM卡只包含該整合晶片,而不再需要其它晶片。
全文摘要
本發明涉及一種在ROM中定義PCI設備識別信息的PCI總線的擴展ROM卡。根據PCI總線規範,在由PCI總線接口模塊(3)和ROM晶片(4)以及印刷電路板組成的擴展ROM卡(2)中,其配置空間應該提供由該擴展ROM卡的廠家定義的設備識別信息。本發明在PCI總線接口模塊中對配置空間進行地址再解碼,將配置空間分成非設備識別信息區域和設備識別信息區域,其中的設備識別信息區域被轉換地址後再定位到存儲器空間中。這樣,在系統讀取擴展ROM卡的設備識別信息時,實際將被映射到ROM晶片中的設備識別信息區域,從而便於各個廠家在ROM晶片中自行定義擴展ROM卡的設備識別信息。
文檔編號G06F13/38GK1469263SQ0311332
公開日2004年1月21日 申請日期2003年4月29日 優先權日2002年7月15日
發明者尹啟鳳 申請人:尹啟鳳