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