專利名稱:數(shù)據(jù)傳輸系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)傳輸系統(tǒng)及方法,尤其涉及一種使用串行式通用輸
入/輸出(SGPIO)接口,以實現(xiàn)具有序列附加SCSI接口的擴(kuò)展器(SAS Expander)之間相互通信的系統(tǒng)及方法。
背景技術(shù):
參考圖1,為傳統(tǒng)使用串行式通用輸入/輸出接口 (SGPIO)的通信系統(tǒng), 其中,一擴(kuò)展器(Expander)10具有頻率引腳(SCLOCK)、負(fù)載引腳(SLOAD)、 數(shù)據(jù)輸入引腳(SDATAIN)及數(shù)據(jù)輸出引腳(SDATAOUT),而以現(xiàn)場可 編程門陣列(FPGA)或復(fù)雜可規(guī)劃邏輯元件(CPLD)實現(xiàn)的一元件20同 樣具有頻率引腳(SCLOCK)、負(fù)載引腳(SLOAD)、數(shù)據(jù)輸入引腳(SDATAIN) 及數(shù)據(jù)輸出引腳(SDATAOUT)。
再參考圖l,前述擴(kuò)展器(Expander) 10的引腳分別通過串行式通用輸 入/輸出接口 (SGPIO) 30對應(yīng)連接到元件20的引腳,擴(kuò)展器(Expander) 10設(shè)為串行式通用輸入/輸出接口 (SGPIO) 30的起始者(SGPIO initiator), 而元件20設(shè)為串行式通用輸入/輸出接口 (SGPIO) 30的目標(biāo)者(SGPIO Target)。另夕卜,元件20上的其它引腳(未標(biāo)示)作為通用輸入/輸出接口 (GPIO)。
如此,元件20就可以利用擴(kuò)展器(Expander) 10實現(xiàn)通用輸入/輸出接 口 (GPIO)的擴(kuò)展。此時,串行式通用輸入/輸出(SGPIO) 30是作為通用 輸入/輸出接口 (GPIO)擴(kuò)展之用。而在傳統(tǒng)使用串行式通用輸入/輸出接口 (SGPIO)的通信系統(tǒng)中,如果串行式通用輸入/輸出接口 (SGPIO) 30不被 使用于擴(kuò)展通用輸入/輸出接口 (GPIO)的用途時,它會因為不能使用于其 它用途,而處于閑置狀態(tài)。
另外,在具有序列附加SCSI (Serial Attached SCSI; SAS)及簡單磁盤 捆綁(Just Bundle Of Disks; JBOD)的產(chǎn)品設(shè)計中,考慮到雙I/O控制卡的應(yīng)用環(huán)境,往往需要實現(xiàn)i/o控制卡之間的通信。為了保證通信的高可用性, 又常常使用兩路通信路徑。這兩路通信路徑通常使用內(nèi)部集成電路總線(Inter Integrated Circuit; 12C)或者異步式串行接口 (Universal Asynchronous Receiver Transmitter; UART)。
然而,現(xiàn)有的具有序列附加SCSI接口的擴(kuò)展器(SAS Expander)的內(nèi) 部集成電路總線(I2C)或者異步式串行(UART)接口數(shù)往往不能滿足要求, 只能提供一條內(nèi)部集成電路總線(I2C)來作為通信路徑, 一旦內(nèi)部集成電 路總線(I2C)這條路徑出現(xiàn)故障,具有序列附加SCSI接口的擴(kuò)展器(SAS Expander)之間的通信將中斷。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種數(shù)據(jù)傳輸系統(tǒng)及方法,在于當(dāng)串行式通用輸 入/輸出接口 (SGPIO)閑置的時候,得以利用串行式通用輸入/輸出接口
(SGPIO)以實現(xiàn)兩具有序列附加SCSI接口的擴(kuò)展器(SAS Expander)之間 的通信,為雙卡通信提供另一條路徑,以解決通信接口不足的問題。
因此,本發(fā)明提供一種數(shù)據(jù)傳輸系統(tǒng),其包括有一第一擴(kuò)展器、 一第二 擴(kuò)展器、 一串行式通用輸入/輸出接口 (SGPIO)及一通用輸入/輸出接口
(GPIO)。串行式通用輸入/輸出接口 (SGPIO)連接于該第一擴(kuò)展器與該 第二擴(kuò)展器,提供該第一擴(kuò)展器與該第二擴(kuò)展器之間串行數(shù)據(jù)的傳輸,其中 該串行式通用輸入/輸出接口 (SGPIO)的頻率引腳(SCLK)與負(fù)載引腳
(SLOAD)不使用。通用輸入/輸出接口 (GPIO)連接于該第一擴(kuò)展器與該 第二擴(kuò)展器,提供該第一擴(kuò)展器與該第二擴(kuò)展器之間確認(rèn)信號的傳輸。
另外,本發(fā)明提供一種數(shù)據(jù)傳輸方法,使用串行式通用輸入/輸出接口
(SGPIO)以實現(xiàn)兩個擴(kuò)展器之間的數(shù)據(jù)通信。數(shù)據(jù)傳輸方法為,首先,一 方擴(kuò)展器通過通用輸入/輸出接口 (GPIO)判斷對方擴(kuò)展器是否正在傳送數(shù) 據(jù),在前述判斷中,若判斷為是,則一方擴(kuò)展器通過串行式通用輸入/輸出接 口 (SGPIO)讀取對方擴(kuò)展器送出的數(shù)據(jù),反之若判斷為不是,則一方擴(kuò)展 器將自我判斷是否有數(shù)據(jù)需要傳送出去。在前述自我判斷中,若判斷為不是,
則結(jié)束兩個擴(kuò)展器之間的數(shù)據(jù)通信,反之若判斷為是,則一方擴(kuò)展器i過通
用輸入/輸出接口 (GPIO)通知對方擴(kuò)展器準(zhǔn)備接收數(shù)據(jù)。最后, 一方擴(kuò)展器通過串行式通用輸入/輸出接口 ( SGPIO )將欲傳送的數(shù)據(jù)送至對方擴(kuò)展器。 綜上,本發(fā)明提供兩個通用輸入/輸出(GPIO)引腳作為雙卡通信的同 步控制路徑,以同步兩個擴(kuò)展器之間串行式通用輸入/輸出接口 (SGPIO)的 發(fā)送和接收情形。同時,串行式通用輸入/輸出接口 (SGPIO)作為通信路徑 雙卡通信另一條路徑,讓在內(nèi)部集成電路總線(I2C)或者異步式串行接口 (UART)不足的情況下,仍可保證雙卡通信的高可用性。
以上的概述與接下來的詳細(xì)說明都為示范性質(zhì),是為了進(jìn)一步說明本發(fā) 明的權(quán)利要求。而有關(guān)本發(fā)明的其它目的與優(yōu)點,將在后續(xù)的說明與附圖加 以闡述。
圖1為傳統(tǒng)使用串行式通用輸入/輸出接口 (SGPIO)的通信系統(tǒng);
圖2為本發(fā)明使用串行式通用輸入/輸出接口 (SGPIO)的通信系統(tǒng);及 圖3為本發(fā)明的方法流程圖示意圖。
其中,附圖標(biāo)記說明如下 公知
10擴(kuò)展器 20元件
30 串行式通用輸入/輸出接口 (SGPIO)
本發(fā)明
50第一擴(kuò)展器 60第二擴(kuò)展器
40 串行式通用輸入/輸出接口 (SGPIO) 70通用輸入/輸出接口 (GPIO)
具體實施例方式
參考圖2,為本發(fā)明使用串行式通用輸入/輸出接口 (SGPIO)的通信系 統(tǒng)。數(shù)據(jù)傳輸系統(tǒng)包括有一第一擴(kuò)展器50、 一第二擴(kuò)展器60、 一串、行式通 用輸入/輸出接口 (SGPIO) 40及一通用輸入/輸出接口 (GPIO) 70,其中, 第一擴(kuò)展器50與第二擴(kuò)展器60都為具有序列附加SCSI接口的擴(kuò)展器(SASExpander),并且,第一擴(kuò)展器50與第二擴(kuò)展器60也都是串行式通用輸入/ 輸出接口 (SGPIO) 40的起始者(SGPIO initiator)。
再參考圖2,串行式通用輸入/輸出接口 (SGPIO) 40連接于第一擴(kuò)展器 50與第二擴(kuò)展器60,用以提供第一擴(kuò)展器50與第二擴(kuò)展器60之間串行數(shù) 據(jù)的傳輸。其中,串行式通用輸入/輸出接口 (SGPIO) 40用作第一擴(kuò)展器 50與第二擴(kuò)展器60之間通信的主要困難,在于兩個擴(kuò)展器50、 60都是串行 式通用輸入/輸出接口 (SGPIO) 40的起始者(SGPIO initiator),而串行式 通用輸入/輸出接口 (SGPIO) 40的協(xié)議中,并未考慮兩個起始者(SGPIO initiator)之間如何通信的問題。由于任何時候都是由起始者(SGPIO initiator) 發(fā)起數(shù)據(jù)讀取或者數(shù)據(jù)寫入的操作,如果兩個起始者(SGPIO initiator)同時 進(jìn)行讀取數(shù)據(jù)或者寫入數(shù)據(jù)的話,就會造成數(shù)據(jù)丟失。
因此,為了解決前述串行式通用輸入/輸出接口 (SGPIO) 40用作擴(kuò)展器
(Expander)50、60之間通信的主要困難,串行式通用輸入/輸出接口(SGPIO) 40的頻率引腳SCLK與負(fù)載引腳SLOAD選擇不使用。如此,在擴(kuò)展器
(Expander) 50、 60之間的連接關(guān)系上來說,第一擴(kuò)展器50與第二擴(kuò)展器 60 二者的SCLOCK與SLOAD接腳不要互相連接,以避免一方進(jìn)行數(shù)據(jù)讀 取操作時,卻將對方的SLOAD接腳電位拉低,而造成對方不能同步進(jìn)行數(shù) 據(jù)寫入的操作。
另外,串行式通用輸入/輸出接口 (SGPIO) 40提供的數(shù)據(jù)輸入引腳 SDATAIN與數(shù)據(jù)輸出引腳SDATAOUT則作為第一擴(kuò)展器50與第二擴(kuò)展器 60之間串行數(shù)據(jù)的傳輸。其中,第一擴(kuò)展器50的數(shù)據(jù)輸出引腳SDATAOUT 連接到第二擴(kuò)展器60的數(shù)據(jù)輸入引腳SDATAIN,而第一擴(kuò)展器50的數(shù)據(jù) 輸入引腳SDATAIN連接到第二擴(kuò)展器60的數(shù)據(jù)輸出引腳SDATAOUT。如 此,當(dāng)?shù)谝粩U(kuò)展器50輸出數(shù)據(jù)至它的數(shù)據(jù)輸出引腳SDATAOUT時,即會通 知第二擴(kuò)展器60準(zhǔn)備接收。第二擴(kuò)展器60收到通知后,即置它的負(fù)載引腳 SLOAD為低電位,以從它的數(shù)據(jù)輸入引腳SDATAIN上讀取數(shù)據(jù)。同理, 第二擴(kuò)展器60也可以依此方式,傳遞資料給第一擴(kuò)展器50。
另外,通用輸入/輸出接口 (GPIO) 70連接于第一擴(kuò)展器50與第二擴(kuò)展 器60間,其中通用輸入/輸出接口 (GPIO) 70具有第一通信引腳GPIOl與 第二通信引腳GPI02,作為第一擴(kuò)展器50與第二擴(kuò)展器60之間確認(rèn)信號的傳輸。
再參考圖2,根據(jù)本發(fā)明的數(shù)據(jù)傳輸系統(tǒng),當(dāng)?shù)谝粩U(kuò)展器50要寫入數(shù)據(jù) 到第二擴(kuò)展器60的時候,必須先通過第一通信引腳GPIOl通知第二擴(kuò)展器 60。第二擴(kuò)展器60接收到通知后,開始通過串行式通用輸入/輸出接口 (SGPIO) 40的數(shù)據(jù)輸入引腳SDATAIN,讀取從第一擴(kuò)展器50的數(shù)據(jù)輸出 引腳SDATAOUT所送出的數(shù)據(jù)。同樣的,第二擴(kuò)展器60要將數(shù)據(jù)寫入第一 擴(kuò)展器50的時候,會先通過第二通信引腳GPI02通知第一擴(kuò)展器50。第一 擴(kuò)展器50接收到通知后,開始通過串行式通用輸入/輸出接口 (SGPIO) 40 的數(shù)據(jù)輸入引腳SDATAIN,讀取從第二擴(kuò)展器(Expander) 60的數(shù)據(jù)輸出 引腳SDATAOUT所送出的數(shù)據(jù)。
如此,本發(fā)明可以在串行式通用輸入/輸出接口 (SGPIO)40處于閑置的 時候,利用串行式通用輸入/輸出接口 (SGPIO) 40以實現(xiàn)兩具有序列附加 SCSI接口的擴(kuò)展器(SAS Expander)之間的通信,而為雙卡通信提供另一條 路徑。并于內(nèi)部集成電路總線(I2C)或者異步式串行(UART)接口路徑出 現(xiàn)問題時,使用串行式通用輸入/輸出接口 (SGPIO) 40作為通信路徑,進(jìn) 而達(dá)到雙卡通信高可用性的目標(biāo)。
配合圖2,參考圖3,為本發(fā)明的方法流程圖示意圖。首先,第二擴(kuò)展 器60通過第一通信引腳GPIOl,用以判斷第一擴(kuò)展器50是否正在傳送數(shù)據(jù) (S110)。前述步驟S110后,如果判斷為"是",則第二擴(kuò)展器60通過數(shù) 據(jù)輸入引腳SDATAIN,讀取從第一擴(kuò)展器50的數(shù)據(jù)輸出引腳SDATAOUT 送出的數(shù)據(jù),如Slll。前述步驟S110后,如果判斷為"否",則第二擴(kuò)展 器60會自我判斷是否有數(shù)據(jù)需要傳送出去,如S112。前述步驟S112后,如 果判斷為"否",則結(jié)束兩個擴(kuò)展器50、 60之間的數(shù)據(jù)通信。前述步驟S112 后,如果判斷為"是",則第二擴(kuò)展器60通過第二通信引腳GPI02,用以 通知第一擴(kuò)展器50準(zhǔn)備接收數(shù)據(jù),如S114。接下來,第一擴(kuò)展器60會將欲 傳送的數(shù)據(jù)送至它的數(shù)據(jù)輸出引腳SDATAOUT,如S116,再來,通過第二 通信引腳GPI02通知第一擴(kuò)展器50,數(shù)據(jù)已經(jīng)發(fā)送完畢,如S118。
綜上所述,本發(fā)明利用了兩個通用輸入/輸出接口 GPIO作為同步t兩個具 有序列附加SCSI接口的擴(kuò)展器(SAS Expander)之間串行式通用輸入/輸出 接口的發(fā)送和接收,達(dá)到數(shù)據(jù)同步傳輸?shù)挠猛?。同時,本發(fā)明使用了串行式通用輸入/輸出接口 ( SGPIO )作為兩個具有序列附加SCSI接口的擴(kuò)展器(SAS Expander)之間通信的另一路徑,在內(nèi)部集成電路總線(I2C)或者異步式串 行(UART)接口不足的情況下仍可保證兩個具有序列附加SCSI接口的擴(kuò)展 器(SAS Expander)通信的高可用性。
如上所述,僅為本發(fā)明最佳的具體實施例,但是本發(fā)明的特征并不局限 于此,任何熟悉該項技術(shù)的技術(shù)人員在本發(fā)明的領(lǐng)域內(nèi),可輕易思及的變化 或修飾,都可涵蓋在以下本發(fā)明的權(quán)利要求書所保護(hù)的范圍內(nèi)。
權(quán)利要求
1. 一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括有一第一擴(kuò)展器;一第二擴(kuò)展器;一串行式通用輸入/輸出接口,連接于該第一擴(kuò)展器與該第二擴(kuò)展器,該串行式通用輸入/輸出接口提供該第一擴(kuò)展器與該第二擴(kuò)展器之間串行數(shù)據(jù)的傳輸;及一通用輸入/輸出接口,連接于該第一擴(kuò)展器與該第二擴(kuò)展器,該通用輸入/輸出接口提供該第一擴(kuò)展器與該第二擴(kuò)展器之間確認(rèn)信號的傳輸;其中,該第一擴(kuò)展器與該第二擴(kuò)展器通過該串行式通用輸入/輸出接口彼此相互傳輸數(shù)據(jù),并于數(shù)據(jù)正確接收后,通過該通用輸入/輸出接口彼此相互傳輸確認(rèn)信號。
2. 如權(quán)利要求1所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,該第一擴(kuò)展器為一 具有序列附加接口的擴(kuò)展器。
3. 如權(quán)利要求1所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,該第二擴(kuò)展器為一 具有序列附加接口的擴(kuò)展器。
4. 如權(quán)利要求1所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,該串行式通用輸入/ 輸出接口提供數(shù)據(jù)輸入引腳與數(shù)據(jù)輸出引腳作為該第一擴(kuò)展器與該第二擴(kuò) 展器之間串行數(shù)據(jù)的傳輸。
5. 如權(quán)利要求1所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,該通用輸入/輸出接 口具有兩個通信引腳,作為該第一擴(kuò)展器與該第二擴(kuò)展器之間確認(rèn)信號的傳 輸。
6. 如權(quán)利要求1所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,該串行式通用輸入/ 輸出接口的頻率引腳與負(fù)載引腳不使用。
7. —種數(shù)據(jù)傳輸方法,其特征在于,使用串行式通用輸入/輸出接口實現(xiàn) 兩個擴(kuò)展器之間的數(shù)據(jù)通信,包括有-
8.第一擴(kuò)展器通過通用輸入/輸出接口 ,判斷對方擴(kuò)展器是否正在傳送數(shù)據(jù);b.步驟a判斷為是,則第一擴(kuò)展器通過串行式通用輸入/輸出接口,讀取 第二擴(kuò)展器送出的數(shù)據(jù);c. 步驟a判斷為否,則第一擴(kuò)展器自我判斷是否有數(shù)據(jù)需要傳送出去;d. 步驟c判斷為是,則第一擴(kuò)展器通過通用輸入/輸出接口,通知第二擴(kuò) 展器準(zhǔn)備接收數(shù)據(jù);及e. 第一擴(kuò)展器通過串行式通用輸入/輸出接口 ,將欲傳送的數(shù)據(jù)送至第二 擴(kuò)展器。8. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中第一擴(kuò)展器通 過該通用輸入/輸出接口的第一通信引腳,接收第二擴(kuò)展器送出的通知信號, 以判斷第二擴(kuò)展器是否正在傳送數(shù)據(jù)。
9. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中第一擴(kuò)展器通 過串行式通用輸入/輸出接口的數(shù)據(jù)輸入引腳,讀取第二擴(kuò)展器送出的數(shù)據(jù)。
10. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中第一擴(kuò)展器通 過通用輸入/輸出接口的第二通信引腳,通知第二擴(kuò)展器準(zhǔn)備接收數(shù)據(jù)。
11. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中第一擴(kuò)展器通 過串行式通用輸入/輸出接口的數(shù)據(jù)輸出引腳,將欲傳送的數(shù)據(jù)送至第二擴(kuò)展 器°
12. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中步驟c判斷為 否,則結(jié)束兩個擴(kuò)展器之間的數(shù)據(jù)通信。
13. 如權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,其中該串行式通用 輸入/輸出接口的頻率引腳與負(fù)載引腳不使用。
全文摘要
一種數(shù)據(jù)傳輸系統(tǒng)及方法,使用SGPIO接口實現(xiàn)SAS擴(kuò)展器之間的通信。數(shù)據(jù)傳輸系統(tǒng)包括有第一擴(kuò)展器、第二擴(kuò)展器、串行式通用輸入/輸出接口(SGPIO)及通用輸入/輸出接口(GPIO)。串行式通用輸入/輸出接口(SGPIO)提供第一擴(kuò)展器與第二擴(kuò)展器之間串行數(shù)據(jù)的傳輸,其中串行式通用輸入/輸出接口(SGPIO)的頻率引腳(SCLK)與負(fù)載引腳(SLOAD)不使用。同時,通用輸入/輸出接口(GPIO)提供第一擴(kuò)展器與該第二擴(kuò)展器之間確認(rèn)信號的傳輸。
文檔編號G06F13/38GK101477501SQ200810002238
公開日2009年7月8日 申請日期2008年1月2日 優(yōu)先權(quán)日2008年1月2日
發(fā)明者何汪平 申請人:環(huán)隆電氣股份有限公司