專利名稱:支持熱插拔的spi4總線接口卡、及相應的主機和方法
技術領域:
本發明涉及通信領域,尤其涉及單板的熱插拔;更具體地說,本發明涉及支持SPI4總線的接口卡的熱插拔實現。
背景技術:
SPI4(System Packet Interface,系統包接口)是OIF(OpticalInternetworking Forum,光纖互聯網絡論壇)制定的互連物理層(Physicallayer,PHY)設備與鏈路層(Link layer,LINK)設備的點對點接口標準。針對不同的應用環境,所述SPI4對應有多個不同版本,且目前得到最廣泛應用的是SPI43(SPI4 Level 3)和SPI4(SPI4 Level 4 Phase 2);其中SPI43針對的信號頻率是2.5Gbps,而SPI4對應10Gbps的數據傳輸速率。更具體而言,SPI4可用于報文和信元傳送,主要應用于OC-192(192級光載體)ATM(Asynchronous Transfer Mode,異步傳輸模式)、SONET(Synchronous Optical Network,同步光纖網)/SDH(Synchronous DigitalHierarchy,同步數字系列網)等。
圖1為上述SPI4總線的參考模型示意圖,圖2為所述SPI4總線的信號示意圖。需要說明的是,OIF制定SPI4標準[OIF-SPI4-2.01]的初衷是為鏈路層設備110和物理層設備130之間相互傳送數據規定一套規則,SPI4總線也確實被設計成滿足這種特定應用的要求,盡管如此,所述SPI4總線還同樣能被應用在其他傳送報文或信元的場合。也就是說,圖1及圖2僅為參考模型,并不表示所述SPI4總線120兩側必須是鏈路層或物理層之類的器件/裝置/設備。同時,列舉上述SPI4總線的基本特性如下。
1、可用于點對點連接,如物理層和鏈路層設備的單向連接;2、在一條物理通道上,理論上可最多支持256個邏輯通道,每個邏輯通道對應物理層的一個實際端口。比如,某種物理芯片的線路側由250個低速的E1/T1接口組成,而系統側則通過SPI4總線與上層芯片互連。并且,SPI4總線針對不同應用最多所能支持的端口數目有所不同,比如應用于百兆快速以太網中時最多能支持110個端口。
3、發送/接收數據通路A、16bit位寬,采用LVDS[ANSI/TIA/EIA-644-A-1201]的差分傳輸模式;B、帶內的端口地址、SOP(Start of Packet,包起始)標志、EOP(Endof Packet,包結束)標志、錯誤控制字,即數據通道上既傳輸有效載荷信息,也傳輸控制信息;C、每對差分線上都以DDR(Double Date Rate,雙倍數據傳輸速率)的方式驅動和采樣數據,即數據在時鐘的上升沿和下降沿被驅動輸出或采樣輸入如果要支持10Gbps的互連應用,則時鐘線必須跑到311MHz以上,311MHz×2bit×16=9.952Gbps;而對于10G以太網或OC-192SDH/SONET,考慮到還有各種額外開銷,時鐘線頻率必須大于311MHz不少才能保證線速應用;D、源同步時鐘方案對大于130MHz的時鐘應用來說,普通時鐘(收發兩側由同一時鐘晶振同步)方案因可支持的數據有效窗口太小而大大限制了PCB布線長度,因此必須采用源同步時鐘方案;4、發送/接收流控通路,也即發送/接收FIFO(First In First Out,先進先出)狀態通道A、2bit并行狀態標志,I/O(Input/Output,輸入/輸出)電平為LVTTL(Lower Voltage Transistor-Transistor Logic,低壓三極管邏輯電平)或LVDS[IEEE 1596.3-1996,ANSI/TIA/EIA-644-1995];B、LVTTL電平下最大時鐘頻率是數據通道時鐘的1/4,LVDS電平下等于數據通道時鐘(雙沿采樣);C、帶內的SOF(Start of FIFO,FIFO狀態起始)標志;D、源同步時鐘。
SPI4總線標準實現了芯片之間的高速互連,但由于其總線數很多,同時其數據傳送電平為LVDS,因此其并不適合過背板和進行熱插拔。這使得現有SPI4總線芯片一般用作板內傳輸數據總線,且目前尚未發現實現了SPI4總線熱插拔的技術方案。
發明內容
針對上述現有技術的不足,本發明目的在于提供一種支持熱插拔的接口卡、以及與該接口卡配套的主機,以簡化基于高速SPI4總線的接口卡的插拔操作。
同時,本發明另一目的在于提供應用于上述接口卡及主機的相應熱插拔方法。
為了達到上述目的,本發明提供了一種支持熱插拔的接口卡,其上集成有電源線,用于為所述接口卡提供電源;在位信號線,用于指示所述接口卡是否已與主機建立物理連接;SPI4總線,用于與所述主機建立所述SPI總線連接,使得所述主機能夠與所述接口卡進行SPI4數據傳輸;PCI(Peripheral Component Interconnect,外圍部件互連)總線,用于與所述主機建立PCI總線連接,使得所述主機能夠通過所述PCI總線識別所述接口卡并進行相應配置,以完成對所述接口卡除數據傳輸外的控制管理。
對于上述接口卡,優選地,所述進行相應配置的具體內容至少包括有在熱插入所述接口卡的過程中,所述主機通過所述PCI總線識別出所述接口卡支持SPI4總線之后開通所述SPI4總線,并隨后對所述接口卡進行初始化配置,使得所述接口卡在初始化完畢后能夠通過所述SPI4總線與所述主機進行基于SPI4的數據傳輸。
對于上述接口卡,優選地,其上還集成有PCI時鐘頻率選擇線,用于讓所述主機能夠對所述PCI總線的工作時鐘頻率進行配置。
為了達到上述目的,本發明同時還提供了一種支持熱插拔上述接口卡的主機,其包括連接器,用于插接所述接口卡,使得所述接口卡能夠與所述主機建立物理連接;熱插拔控制模塊,與所述連接器相連,用于檢測所述接口卡與所述連接器的物理連接狀態,并相應控制所述接口卡的供電電源開關狀態以及所述接口卡與所述主機之間PCI總線的開通/關斷;SPI4總線控制器,與所述連接器和所述熱插拔控制模塊相連,用于根據所述熱插拔模塊返回的所述接口卡的狀態設置相應的SPI4總線接口狀態,以開通/關斷所述接口卡與所述主機之間的SPI4總線。
對于上述主機,優選地,所述熱插拔控制模塊包括有狀態寄存器,用于存儲所述接口卡的熱插拔狀態信號,且所述熱插拔狀態信號包括有復位信號、在位信號、上電指示信號、熱插拔中斷清除信號、供電電源控制信號、及PCI總線開關控制信號;接口卡檢測單元,與所述連接器和所述狀態寄存器相連,用于檢測所述接口卡與所述主機的物理連接狀態,且將所述檢測結果寫入所述狀態寄存器中;狀態邏輯單元,與所述連接器和所述狀態寄存器相連,用于讀寫所述狀態寄存器中存儲的各所述熱插拔狀態信號,并據此控制熱插拔所述接口卡過程中的狀態轉換;接口卡配置單元,與所述連接器、所述狀態邏輯單元、及所述SPI4總線控制器相連,用于根據所述狀態邏輯單元的狀態轉換指示對所述接口卡進行配置,包括打開/關閉所述接口卡的供電電源、以及開通/關斷所述接口卡與所述主機之間的PCI總線。
對于上述主機,進一步優選地,所述熱插拔控制模塊還包括有計時單元;所述計時單元與所述狀態邏輯單元相連,在所述狀態邏輯單元狀態轉換至打開/關閉所述接口卡的供電電源時被觸發,用于使所述狀態邏輯單元延時等待一個預設時間后再進行下一個狀態轉換。
為了達到上述另一目的,本發明還提供了一種熱插拔方法,用于熱插拔處理集成有SPI4總線的接口卡和主機之間的連接。其中,該方法的熱插入過程主要包括有下列步驟步驟A1,檢測到所述接口卡插入后,打開所述接口卡的供電電源,開始所述接口卡的上電過程;步驟A2,確定所述接口卡在位且上電完畢后,開通所述主機和所述接口卡之間的PCI總線;步驟A3,通過所述PCI總線對所述接口卡進行配置,且所述配置至少包括開通所述主機和所述接口卡之間的SPI4總線。
對于上述熱插拔方法,與熱插入過程相反,其熱拔出過程則主要包括有下列步驟步驟D1,接收到拔出所述接口卡的命令后,關斷所述主機和所述接口卡之間的SPI4總線,同時進行程序斷點保護操作;步驟D2,確定所述接口卡不在位后,關斷所述主機和所述接口卡之間的PCI總線,同時關閉所述接口卡的供電電源。
對于上述熱插拔方法,優選地,所述步驟A2具體包括有步驟A2-1,打開所述接口卡的供電電源時觸發一個計時單元;步驟A2-2,等待所述計時單元完成預設時間計時后,讀取所述接口卡的在位信號,并對所述在位信號進行去抖動處理;步驟A2-3,確定所述接口卡在位且上電完畢后,開通所述PCI總線。
對于上述熱插拔方法,優選地,所述步驟A3具體包括有步驟A3-1,產生一個中斷信號,同時使所述接口卡退出復位狀態;步驟A3-2,根據所述中斷信號對所述接口卡進行識別,在確定所述接口卡支持SPI4總線后通過設置相應的SPI4總線控制器來開通所述SPI4總線;步驟A3-3,開始所述接口卡的初始化過程;步驟A3-4,所述接口卡的初始化過程完畢后,無效所述中斷信號。
對于上述熱插拔方法,優選地,所述步驟D2之后還包括用于后續處理所述接口卡被拔出的步驟D3,且所述步驟D3具體包括有步驟D3-1,產生一個中斷信號,同時使所述接口卡進入復位狀態;步驟D3-2,根據所述中斷信號執行所述接口卡拔出的后續處理程序;步驟D3-3,所述后續處理程序完畢后,無效所述中斷信號。
對于上述熱插拔方法,進一步優選地,執行完所述步驟D2,延時等待一個預設時間并再次確定所述接口卡被拔出,再執行所述步驟D3。
綜上所述可知,本發明通過將PCI總線引入接口卡、在主機側配合相應的控制操作來實現SPI4總線的熱插拔,能夠有效簡化基于SPI4總線的接口卡的插拔操作,同時大大降低由于誤操作可能給主機帶來的功能損傷。
圖1為現有技術中SPI4總線的參考模型示意圖;圖2為現有技術中SPI4總線的信號示意圖;圖3為本發明支持熱插拔的接口卡與主機的第一實施例的示意圖;圖4為本發明支持熱插拔的接口卡與主機的第二實施例的示意圖;圖5為圖4所示狀態寄存器中存儲的狀態信號示意圖;圖6為本發明支持熱插拔的接口卡與主機的第三實施例的示意圖;圖7為本發明熱插拔方法中帶電插入接口卡的流程示意圖;圖8為本發明熱插拔方法中帶電拔出接口卡的流程示意圖;圖9為本發明熱插拔方法中的熱插拔狀態邏輯圖。
具體實施例方式
下面將首先參照圖3、圖4、及圖6詳細介紹本發明所提供支持熱插拔的基于SPI4總線的接口卡及其配套主機,隨后再參照圖7、圖8、及圖9詳細介紹應用于所述接口卡和主機的相應熱插拔方法。
如圖3、圖4、及圖6所示,本發明所提供支持熱插拔的接口卡200上集成有電源線、在位信號線、PCI總線、及SPI4總線。其中所述電源線,用于為所述接口卡200提供電源,并且所述電源線一般都優選地連接有電壓緩啟動電路(圖中未示出),以控制所述接口卡200供電電源的開啟速度并對其進行電壓監控。
所述在位信號線,用于指示所述接口卡200是否已插入主機300中相應的插槽內,也即指示所述接口卡200是否已與所述主機300建立物理連接。
所述SPI4總線,用于與所述主機300建立所述SPI總線連接,使得所述主機300能夠與所述接口卡200進行SPI4數據傳輸;所述PCI總線,用于與所述主機300建立PCI總線連接,使得所述主機300能夠通過所述PCI總線識別所述接口卡200并進行相應配置,以完成對所述接口卡200除數據傳輸外的控制管理。其中,所述主機300通過所述PCI總線識別所述接口卡200并進行相應配置的具體內容至少包括有在熱插入所述接口卡200的過程中,所述主機300通過所述PCI總線識別出所述接口卡200支持SPI4總線之后,開通所述SPI4總線;并隨后開始所述接口卡200的正常初始化過程,從而使得所述接口卡200在初始化完畢后能夠通過所述SPI4總線與所述主機300進行SPI4數據傳輸。
此外,如圖3、圖4、及圖6所示,本發明所提供支持熱插拔的接口卡200上還可能優選地集成有PCI時鐘頻率選擇線,用于讓所述主機能夠對所述PCI總線的工作時鐘頻率進行配置。
介紹完本發明在接口卡側的硬件技術方案后,下面將繼續介紹本發明在主機側的硬件技術方案。
首先,如圖3所示,本發明所提供支持熱插拔上述接口卡200的主機300包括有連接器310,用于插接所述接口卡200,使得所述接口卡200能夠與所述主機300建立物理連接。并且,與通用熱插拔技術類似,所述連接器300中插針優選地分為長插針和短插針兩種,其中所述長插針用于插接所述接口卡200的電源線、所述短插針用于插接所述接口卡200的信號線(包括所述在位信號線、所述PCI總線、及所述SPI4總線等)。這樣,在帶電插拔所述接口卡200的過程中,所述信號線要晚于所述電源線接觸、早于所述電源線分開,從而對所述主機300及所述接口卡200的芯片起到一定的保護作用。
熱插拔控制模塊320,與所述連接器310相連,用于檢測所述接口卡200與所述連接器310的物理連接狀態,并相應控制所述接口卡200的供電電源開關狀態以及所述接口卡200與所述主機300之間PCI總線的開通/關斷。
SPI4總線控制器330,與所述連接器310和所述熱插拔控制模塊320相連,用于根據所述熱插拔模塊320返回的所述接口卡200的狀態設置相應的SPI4總線接口狀態,以開通/關斷所述接口卡200與所述主機300之間的SPI4總線。舉例而言,所述SPI4總線控制器330通過將相應的SPI4總線I/O引腳置為高阻態,以關斷所述接口卡200與所述主機300之間的SPI4總線;反之,所述SPI4總線控制器330通過設置相應的SPI4總線控制寄存器(圖中未示出),以開通所述接口卡200與所述主機300之間的SPI4總線。
綜上所述,本發明技術方案的總體構思是將PCI總線引入基于高速SPI4總線的接口卡、并在主機側配合相應的控制操作,以實現所述接口卡與所述主機之間SPI4總線的熱插拔。并且,所述主機側的控制操作主要涉及如何確保在所述SPI4總線被關斷的狀態下進行所述接口卡的熱插拔操作。結合圖3具體而言,設置在主機側的所述SPI4總線控制器330用于關斷/開通所述主機300與所述接口卡200之間的SPI4總線,而同樣設置在主機側的所述熱插拔控制模塊320則用于控制所述SPI4總線控制器330關斷/開通所述SPI4總線的時間,也即確保所述SPI4總線控制器330能夠正確地關斷/開通所述SPI4總線。比如在所述接口卡200插入所述連接器310(也即所述主機300)之前,所述熱插拔控制模塊320需要通過設置所述SPI4總線控制器330將相應SPI4總線的I/O引腳置為高阻態,以保證所述接口卡200與所述主機300之間的SPI4總線處于關斷狀態;在所述接口卡200的熱插入過程中,所述熱插拔控制模塊320必須在確定所述接口卡200與所述主機300之間的PCI總線已開通、且經由所述PCI總線識別出所述接口卡200為支持SPI4總線的接口卡之后,才能通過所述SPI4總線控制器330設置相應的SPI4總線控制寄存器(圖中未示出)來開通所述接口卡200與所述主機300之間的SPI4總線;在所述接口卡200的熱拔出過程中,所述熱插拔控制模塊320必須在接收到相應的拔出中斷后,第一時間通過所述SPI4總線控制器330將相應SPI4總線的I/O引腳置為高阻態,以關斷所述接口卡200與所述主機300之間的SPI4總線。
繼續,如圖4所示,對于圖3所示本發明所提供支持熱插拔基于SPI4總線的接口卡200的主機300,其中所述熱插拔控制模塊320還可優選地包括有狀態寄存器321,用于存儲所述接口卡200的各種熱插拔狀態信號。并且,如圖5所示,所述各種熱插拔狀態信號包括有復位信號、在位信號、上電指示、熱插拔中斷清除、供電電源控制、PCI工作時鐘頻率、和/或PCI總線開關控制信號等。
接口卡檢測單元322,與所述連接器310和所述狀態寄存器321相連,用于檢測所述接口卡200與所述主機300的物理連接狀態,且將所述檢測結果寫入所述狀態寄存器321中。參照圖4具體而言,所述接口卡檢測單元322主要用于檢測所述接口卡200的在位信號線和PCI時鐘頻率選擇線,并將檢測到的在位信號和PCI工作時鐘頻率寫入所述狀態寄存器321中相應寄存位。
狀態邏輯單元323,與所述連接器310和所述狀態寄存器321相連,用于讀寫所述狀態寄存器321中各所述熱插拔狀態信號,并據此控制熱插拔所述接口卡過程中的狀態轉換。
接口卡配置單元324,與所述連接器310、所述狀態邏輯單元323、及所述SPI4總線控制器330相連,用于根據所述狀態邏輯單元323的狀態轉換指示對所述接口卡200進行配置。并且所述配置操作的具體內容包括有打開/關閉所述接口卡200的供電電源,以及開通/關斷所述接口卡200與所述主機300之間的PCI總線。
在所述接口卡200的熱插入過程中,所述接口卡配置單元324具體執行上述配置操作的時序為首先,打開所述接口卡200的供電電源;接著,在確定所述接口卡200在位且上電完畢之后,開通所述接口卡200與所述主機300之間的PCI總線。這樣,所述接口卡配置單元324才能通過所述PCI總線對所述接口卡200進行識別;并且,在確定所述接口卡200為支持SPI4總線的接口卡之后,所述接口卡配置單元324通過所述主機300中與其相連的SPI4總線控制器330來設置相應的SPI4總線控制寄存器(圖中未示出),以開通所述接口卡200與所述主機300之間的SPI4總線,并隨后開始正常的接口卡200初始化過程。
然而,在所述接口卡200的熱拔出過程中,所述接口卡配置單元324具體執行上述配置操作的時序為首先,在確定所述SPI4總線控制器330已經將相應的SPI4總線的I/O引腳置為高阻態(也即,已經關斷了所述接口卡200與所述主機300之間的SPI4總線)之后,所述接口卡配置單元324關斷所述接口卡200與所述主機300之間的PCI總線;隨后,所述接口卡配置單元324關閉所述接口卡200的供電電源。
同時,如圖6所示,對于圖4所示本發明所提供支持熱插拔基于SPI4總線的接口卡200的主機300,其中所述熱插拔控制模塊320還可進一步優選地包括有計時單元325。
進一步包括所述計時單元325的原因在于,打開/關閉所述接口卡200的供電電源后開啟的上電/下電過程需要一段時間(比如256ms)。因此為了盡可能地降低在該段時間內出現誤操作的可能,本發明通過所述計時單元325來強制所述狀態邏輯單元323延遲適當時間(比如512ms),以等待所述上電/下電過程的完成。
參照圖6具體而言,所述計時單元325與所述狀態邏輯單元323相連,在所述狀態邏輯單元323狀態轉換至打開/關閉所述接口卡200的供電電源時被觸發,用于使所述狀態邏輯單元323延時等待一個預設時間后再進行下一個狀態轉換。并且,本領域技術人員應能領會,所述預設時間的具體取值需要考慮多種應用現場因素,其可由用戶根據實際狀況來靈活設定。
最后,如前所述,本發明不僅提供有支持熱插拔的基于SPI4總線的接口卡及其配套主機,還提供有應用于所述接口卡和主機的相應熱插拔方法,并且圖7和圖8分別給出了該方法中熱插入和熱拔出的流程示意圖。下面將結合圖6所示本發明所提供接口卡和主機,分別對圖7和圖8所示各步驟進行詳細解釋。
如圖7所示,將圖6中所示集成有SPI4總線的接口卡200熱插入主機300(圖中未示出)的過程,主要包括有下列步驟步驟A0,將所述接口卡200插入所述主機300中的連接器310;步驟A1,所述主機300中的接口卡檢測單元322檢測到所述接口卡200的插入后修改所述主機300中狀態寄存器321的相應寄存位,隨后所述主機300中的狀態邏輯單元323根據所述狀態寄存器321中存儲內容進行狀態轉換并指示所述主機300中的接口卡配置單元324打開所述接口卡200的供電電源,開始所述接口卡200的上電過程;步驟A2,所述主機300中的狀態邏輯單元323狀態轉換至所述接口卡200在位且上電完畢后,指示所述主機300中的接口卡配置單元324開通所述主機300和所述接口卡200之間的PCI總線;步驟A3,所述主機300中的狀態邏輯單元323狀態轉換至PCI總線開關控制已打開后,指示所述主機300中的接口卡配置單元324通過所述PCI總線對所述接口卡200進行配置,且所述配置至少包括有通過所述主機300中與其相連的SPI總線控制器330來開通所述主機300和所述接口卡200之間的SPI4總線、以及所述接口卡200的正常初始化過程。
其中,如圖7所示,為了降低在所述接口卡200上電過程中,所述主機300(圖6中具體為狀態邏輯單元323)出現誤操作的可能,優選地,所述步驟A2具體包括有步驟A2-1,所述狀態邏輯單元323狀態轉換至打開所述接口卡200的供電電源時立即觸發所述主機300中的計時單元325,用來延遲一個預設時間以等待所述接口卡200上電完畢;步驟A2-2,所述主機300中接口卡檢測單元322獲取所述接口卡200的在位信號,并對所述在位信號進行去抖動處理后將其寫入所述主機300中狀態寄存器321;步驟A2-3,所述狀態邏輯單元323通過讀取所述狀態寄存器321中相應寄存位確定所述接口卡200在位且上電完畢后,打開PCI總線開關以開通所述主機300與所述接口卡200之間的所述PCI總線。
同時,為了保證所述接口卡200的狀態變化能夠持續被所述主機300(圖6中具體為接口卡檢測單元322)檢測到并及時進行相應處理,優選地,利用中斷機制執行所述步驟A3。并且,如圖7所示,所述步驟A3具體包括有步驟A3-1,所述主機300中狀態邏輯單元323產生一個熱插拔中斷信號,同時通過寫主機300中狀態寄存器321的相應寄存位進入清除中斷狀態并使所述接口卡200退出復位狀態;步驟A3-2,所述主機300中接口卡配置單元324根據所述中斷信號對所述接口卡200進行識別,在確定所述接口卡200支持SPI4總線之后,通過所述主機300中SPI4總線控制器330來開通所述主機300與所述接口卡200之間的SPI4總線;步驟A3-3,隨后,所述接口卡配置單元324開始正常的所述接口卡200的初始化過程;步驟A3-4,所述主機300中狀態邏輯單元323在所述接口卡200的初始化過程完畢后,通過寫所述主機300中狀態寄存器321的相應寄存位退出清除中斷狀態,以便所述接口卡200的狀態變化時能夠繼續報上中斷。
如圖8所示,將圖6中所示集成有SPI4總線的接口卡200熱拔出主機300(圖中未示出)的過程,主要包括有下列步驟步驟D0,所述主機300(圖6中具體為狀態邏輯單元323)接收到拔出接口卡200的命令;步驟D1,所述狀態邏輯單元323指示主機300中接口卡配置單元324通過主機300中SPI4總線控制器330將相應SPI4總線的I/O引腳置為高阻態,也即關斷所述主機300和所述接口卡200之間的SPI4總線;同時,所述接口卡配置單元324還要執行其它程序斷點的保護工作,使得所述主機300回復到沒有插入所述接口卡200的狀態;步驟D2,所述狀態邏輯單元323通過讀取主機300中狀態寄存器321后確定所述接口卡200不在位后,指示所述主機300中的接口卡配置單元324關斷所述主機300和所述接口卡200之間的PCI總線,同時關閉所述接口卡200的供電電源;步驟D3,所述狀態邏輯單元323通過寫所述狀態寄存器321中相應寄存位,以執行所述接口卡200被拔出的后續處理。
與圖7所示熱插入處理類似,為了降低在所述接口卡200下電過程中,所述主機300(圖6中具體為狀態邏輯單元323)出現誤操作的可能,優選地,在執行完所述步驟D2之后、且執行所述步驟D3之前,所述狀態邏輯單元323執行延遲等待一個預設時間的步驟D30。且如圖8所示,所述步驟D30具體包括有步驟D30-1,所述狀態邏輯單元323狀態轉換至關閉所述接口卡200的供電電源時立即觸發所述主機300中的計時單元325,用來延遲一個預設時間以等待所述接口卡200下電完畢;步驟D30-2,所述主機300中接口卡檢測單元322獲取所述接口卡200的在位信號,并對所述在位信號進行去抖動處理后將其寫入所述主機300中狀態寄存器321;步驟D30-3,所述狀態邏輯單元323通過讀取所述狀態寄存器321中相應寄存位確定所述接口卡200不在位且下電完畢。
同樣與圖7所示的熱插入處理類似,為了保證所述接口卡200的狀態變化能夠持續被所述主機300(圖6中具體為接口卡檢測單元322)檢測到并及時進行相應處理,優選地,利用中斷機制執行所述步驟D3。且如圖8所示,所述步驟D3具體包括有步驟D3-1,所述主機300中狀態邏輯單元323產生一個熱插拔中斷信號,同時通過寫主機300中狀態寄存器321的相應寄存位進入清除中斷狀態并使所述接口卡200進入復位狀態;步驟D3-2,所述主機300中接口卡配置單元324根據所述中斷信號執行所述接口卡200拔出的后續處理程序;步驟D3-3,所述狀態邏輯單元323在所述接口卡200拔出的后續處理程序結束后,通過寫所述主機300中狀態寄存器321的相應寄存位退出清除中斷狀態,以便所述接口卡200的狀態變化時能夠繼續報上中斷。
綜上所述,本發明所提供熱插拔方法中熱插拔狀態的邏輯轉換可簡示為圖9所示。并且,如圖9所示,本發明技術方案不僅簡化了基于高速SPI4總線的接口卡的插拔操作,同時還大大降低了由于誤操作可能給整機帶來的功能損傷。
需要聲明的是,上述發明內容及具體實施方式
意在證明本發明所提供技術方案的實際應用,不應解釋為對本發明保護范圍的限定。本領域技術人員在本發明的精神和原理內,當可作各種修改、等同替換、或改進。本發明的保護范圍以所附權利要求書為準。
權利要求
1.一種支持熱插拔的接口卡,集成有用于為所述接口卡提供電源的電源線和用于指示所述接口卡是否已與主機建立物理連接的在位信號線,其特征在于,所述接口卡還集成有SPI4總線,用于與所述主機建立所述SPI總線連接,使得所述主機能夠與所述接口卡進行SPI4數據傳輸;PCI總線,用于與所述主機建立PCI總線連接,使得所述主機能夠通過所述PCI總線識別所述接口卡并進行相應配置,以完成對所述接口卡除數據傳輸外的控制管理。
2.如權利要求1所述的接口卡,其特征在于,所述主機通過所述PCI總線識別所述接口卡并進行相應配置的具體內容包括,所述主機通過所述PCI總線識別出所述接口卡支持SPI4總線后再開通所述SPI4總線。
3.如權利要求1或2所述的接口卡,其特征在于,所述接口卡還集成有PCI時鐘頻率選擇線,用于讓所述主機能夠對所述PCI總線的工作時鐘頻率進行配置。
4.一種支持熱插拔如權利要求1所述接口卡的主機,包括用于插接所述接口卡的連接器;其特征在于,所述主機還包括熱插拔控制模塊,與所述連接器相連,用于檢測所述接口卡與所述連接器的物理連接狀態,并相應控制所述接口卡的供電電源開關狀態以及所述接口卡與所述主機之間PCI總線的開通/關斷;SPI4總線控制器,與所述連接器和所述熱插拔控制模塊相連,用于根據所述熱插拔控制模塊返回的所述接口卡的狀態設置相應的SPI4總線接口狀態,以開通/關斷所述接口卡與所述主機之間的SPI4總線。
5.如權利要求4所述的主機,其特征在于,所述熱插拔控制模塊包括有狀態寄存器,用于存儲所述接口卡的熱插拔狀態信號,且所述熱插拔狀態信號包括有復位信號、在位信號、上電指示信號、熱插拔中斷清除信號、供電電源控制信號、和/或PCI總線開關控制信號;接口卡檢測單元,與所述連接器和所述狀態寄存器相連,用于檢測所述接口卡與所述主機的物理連接狀態,且將所述檢測結果寫入所述狀態寄存器中;狀態邏輯單元,與所述連接器和所述狀態寄存器相連,用于讀寫所述狀態寄存器中存儲的各所述熱插拔狀態信號,并據此控制熱插拔所述接口卡過程中的狀態轉換;接口卡配置單元,與所述連接器、所述狀態邏輯單元、及所述SPI4總線控制器相連,用于根據所述狀態邏輯單元的狀態轉換指示對所述接口卡進行配置,包括打開/關閉所述接口卡的供電電源、以及開通/關斷所述接口卡與所述主機之間的PCI總線。
6.如權利要求5所述的主機,其特征在于,所述熱插拔控制模塊還包括有計時單元;所述計時單元與所述狀態邏輯單元相連,在所述狀態邏輯單元狀態轉換至打開/關閉所述接口卡的供電電源時被觸發,用于使所述狀態邏輯單元延時等待一個預設時間后再進行下一個狀態轉換。
7.一種熱插拔方法,用于熱插拔處理集成有SPI4總線的接口卡和主機之間的連接,其特征在于,所述方法包括有步驟A1,檢測到所述接口卡插入后,打開所述接口卡的供電電源,開始所述接口卡的上電過程;步驟A2,確定所述接口卡在位且上電完畢后,開通所述主機和所述接口卡之間的PCI總線;步驟A3,通過所述PCI總線對所述接口卡進行配置,且所述配置至少包括開通所述主機和所述接口卡之間的SPI4總線。
8.如權利要求7所述的熱插拔方法,其特征在于,所述方法還包括步驟D1,接收到拔出所述接口卡的命令后,關斷所述主機和所述接口卡之間的SPI4總線,同時進行程序斷點保護操作;步驟D2,確定所述接口卡不在位后,關斷所述主機和所述接口卡之間的PCI總線,同時關閉所述接口卡的供電電源。
9.如權利要求7或8所述的熱插拔方法,其特征在于,所述步驟A2具體包括有步驟A2-1,打開所述接口卡的供電電源時觸發一個計時單元;步驟A2-2,等待所述計時單元完成預設時間計時后,讀取所述接口卡的在位信號,并對所述在位信號進行去抖動處理;步驟A2-3,確定所述接口卡在位且上電完畢后,開通所述PCI總線。
10.如權利要求7或8所述的熱插拔方法,其特征在于,所述步驟A3具體包括有步驟A3-1,產生一個中斷信號,同時使所述接口卡退出復位狀態;步驟A3-2,根據所述中斷信號對所述接口卡進行識別,在確定所述接口卡支持SPI4總線后通過設置相應的SPI4總線控制器來開通所述SPI4總線;步驟A3-3,開始所述接口卡的初始化過程;步驟A3-4,所述接口卡的初始化過程完畢后,無效所述中斷信號。
11.如權利要求8所述的熱插拔方法,其特征在于,所述步驟D2之后還包括用于后續處理所述接口卡被拔出的步驟D3,且所述步驟D3具體包括有步驟D3-1,產生一個中斷信號,同時使所述接口卡進入復位狀態;步驟D3-2,根據所述中斷信號執行所述接口卡拔出的后續處理程序;步驟D3-3,所述后續處理程序完畢后,無效所述中斷信號。
12.如權利要求11所述的熱插拔方法,其特征在于,執行完所述步驟D2,延時等待一個預設時間并再次確定所述接口卡被拔出之后,再執行所述步驟D3。
全文摘要
本發明涉及基于高速SPI4總線的接口卡的熱插拔實現,公開了一種接口卡,其上集成有SPI4總線和PCI總線;一種與所述接口卡配套的主機,其包括有用于插接所述接口卡的連接器、用于控制所述接口卡與所述主機連接狀態的熱插拔控制模塊、和用于開通/關斷所述主機與所述接口卡之間所述SPI4總線的SPI4總線控制器;以及應用于上述接口卡和主機的相應熱插拔方法。本發明通過將PCI總線引入接口卡并在主機側配合相應的控制操作來實現SPI4總線的熱插拔,能夠有效簡化基于SPI4總線的接口卡的插拔操作,同時降低誤操作對主機帶來的功能損傷。
文檔編號G06F13/24GK101017473SQ20071008850
公開日2007年8月15日 申請日期2007年3月14日 優先權日2007年3月14日
發明者姚松, 馬少霞 申請人:杭州華為三康技術有限公司