專利名稱:一種主機通信方法、一種主機及通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種主機通信方法、一種主機及通信系統(tǒng)。
背景技術(shù):
IIC、485等總線作為管理總線應(yīng)用已經(jīng)非常廣泛,大多都是一個主機訪問多個設(shè)備的結(jié)構(gòu),不過IIC本身是支持多主協(xié)議的,但是大多數(shù)芯片內(nèi)置的協(xié)議機并不支持載波偵聽和沖突檢測,比如說Freescale的PowerPC,所以要想做到同一條總線上實現(xiàn)多主機還是比較麻煩的。目前主要的手段主要有兩種,一種是選擇控制芯片時需要內(nèi)置完整的標(biāo)準(zhǔn)的IIC協(xié)議,這樣會將選型的范圍變得很窄,而且大多數(shù)情況IIC僅是輔助通信系統(tǒng),主體功能并不在它,因為一個小的方面就把眾多的選擇排斥在外,這非常的不合適。還有一種方法是在邏輯器件譬如CPLD或FPGA燈芯片做一級中繼,把IIC協(xié)議在邏輯中完成,但這樣會增加邏輯器件的成本,而且如果是插卡式設(shè)備,每個IIC的主機在不同板子上的話,那樣所增加的成本將會更高。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種一種主機通信方法、一種主機及通信系統(tǒng),用以解決現(xiàn)有通信系統(tǒng)中總線控制器不支持多個主機通信的問題。本發(fā)明實施例提供的一種主機通信方法,包括:當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線;判斷搶占總線是否成功,若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);若判斷結(jié)果為搶占總線失敗,則主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。本發(fā)明實施例提供的一種主機,包括:搶占總線單元,用于當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線;總線狀態(tài)控制單元,判斷搶占總線是否成功,若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);若判斷結(jié)果為搶占總線失敗,則主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。本發(fā)明實施例提供的一種通信系統(tǒng),包括總線時鐘信號線和總線數(shù)據(jù)線,并且,該通信系統(tǒng)還包括:至少一臺主機,其中每臺主機均與總線時鐘信號線和總線數(shù)據(jù)線相連,并且每臺主機均為上述的主機;總線狀態(tài)線,與每臺主機相連,用于檢測主機是否占用總線進行通信。本發(fā)明實施例提供的一種多個主機通信系統(tǒng)及方法,該多個主機通信系統(tǒng)包括至少一臺主機,以及與每臺主機相連的總線時鐘信號線和總線數(shù)據(jù)線,通過在該多個主機通信系統(tǒng)中增加與每臺主機相連的用于檢測主機是否占用總線進行通信的總線狀態(tài)線,解決了現(xiàn)有總線控制器不支持多個主機通信的問題,實現(xiàn)了總線上多個主機自由通信的效果。
圖1為本發(fā)明實施例提供的一種主機通信方法的流程示意圖;圖2為本發(fā)明實施例提供的一種主機的結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例提供的一種通信系統(tǒng)的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例1所述的CPUl搶占總線的過程示意圖;圖5為本發(fā)明實施例2所述的CPUl與CPU3同時搶占總線的過程示意圖;圖6為本發(fā)明實施例3所述的CPUl與CPU2同時搶占總線的過程示意圖。
具體實施例方式本發(fā)明實施例提供了一種主機通信方法和主機及通信系統(tǒng),用以解決現(xiàn)有通信系統(tǒng)中總線控制器不支持多個主機通信的問題。本發(fā)明實施例提供的一種主機通信方法,包括:當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線;判斷搶占總線是否成功,若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);若判斷結(jié)果為搶占總線失敗,則主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。較佳地,所述若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線,包括:根據(jù)檢測輸入口檢測到的總線狀態(tài)線的數(shù)據(jù)確定總線狀態(tài)線為空閑狀態(tài),則主機通過狀態(tài)輸出口將該主機地址數(shù)據(jù)輸出到總線狀態(tài)線;主機的檢測輸入口檢測總線狀態(tài)線地址數(shù)據(jù),并將檢測到的總線狀態(tài)線的地址數(shù)據(jù)緩存到所述檢測輸入口;其中,主機的檢測輸入口和狀態(tài)輸出口分別與總線狀態(tài)線相連。較佳地,所述主機判斷搶占總線是否成功,包括:判斷檢測輸入口緩存的總線狀態(tài)線的地址數(shù)據(jù)與主機地址數(shù)據(jù)是否相同,如果是,則搶占總線成功;否則,搶占總線失敗。較佳地,所述若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài),包括:
通過狀態(tài)輸出口將占用狀態(tài)輸出到總線狀態(tài)線。較佳地,若判斷結(jié)果為搶占總線失敗時,所述第二預(yù)設(shè)時間為根據(jù)該主機的地址預(yù)先設(shè)置的時間。為了更好的理解本發(fā)明提供的技術(shù)方案,參見圖1所示的流程圖,本發(fā)明提供的多個主機通信系統(tǒng)的多個主機通信方法,包括:步驟S101,主機判斷其是否有通信需求,若有,則繼續(xù)步驟S102,若無,則不進行任何操作;步驟S102,主機檢測輸入口 GP102檢測總線狀態(tài)線是否為低電平;若否,則繼續(xù)步驟S103 ;若是,則繼續(xù)步驟S104 ;步驟S103,等待Ims時間,繼續(xù)步驟S102 ;其中具體等待時間時間可根據(jù)不同情況進行修改,例如,等待時間受到通信速率和數(shù)據(jù)量、以及CPU占用率、通信實時性的限制,如過平均每一次通信大約占用信道時間為1ms,那么我們的等待時間設(shè)為Ims (通過定時器中斷方式實現(xiàn))即可,或者有些操作系統(tǒng)每個任務(wù)時間片為10ms,這樣可以每隔IOms獲取一次狀態(tài),但是相對實時性也會下降。如果對通信實時性要求高,也可以等待100us、50us等,但是過小的間隔或持續(xù)不斷無間隔地獲取狀態(tài),會造成CPU利用率滿的情況。故這個等待時間是根據(jù)通信速率、單次通信平局?jǐn)?shù)據(jù)量、通信實時性、CPU利用率等種種限制合在一起權(quán)衡出來的一個時間;步驟S104,通過GPIOl輸出本主機的地址數(shù)據(jù)信息,并同時通過GP102對STA線上的地址數(shù)據(jù)進行檢測并緩存;步驟S105,判斷緩存中地址數(shù)據(jù)是否與本主機地址相同,若不相同,則繼續(xù)步驟S106,若相同,則繼續(xù)步驟S107 ;步驟S106,等待第二類等待時間,例如,本實施例中該第二類等待時間為主機地址數(shù)據(jù)乘以10微秒;繼續(xù)步驟S102 ;步驟S107,GPIOl輸出高電平拉低STA線電平,并開始正常通信,例如,本發(fā)明中GPIOl輸出I將STA線拉低;步驟S108,通信結(jié)束后,GPIOl輸出低電平釋放STA線為高,例如,本發(fā)明中GPIOl輸出0,則STA線恢復(fù)為高電平,即釋放為空閑狀態(tài)。需要說明的是,GPIOl輸出1,為輸出低電平,將STA線寫入低電平使其保持占用狀態(tài);GP101輸出0,為不輸出,STA線自行恢復(fù)為高電平,即恢復(fù)空閑狀態(tài)。本發(fā)明提供的一種主機,參見圖2所示的結(jié)構(gòu),包括:搶占總線單元Z101,用于當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線;總線狀態(tài)控制單元Z102,判斷搶占總線是否成功,若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);若判斷結(jié)果為搶占總線失敗,則主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。較佳地,所述搶占總線單元Z101,包括搶占總線子單元,具體用于:
根據(jù)檢測輸入口檢測到的總線狀態(tài)線的數(shù)據(jù)確定總線狀態(tài)線為空閑狀態(tài),則主機通過狀態(tài)輸出口將該主機地址數(shù)據(jù)輸出到總線狀態(tài)線;主機的檢測輸入口檢測總線狀態(tài)線地址數(shù)據(jù),并將檢測到的總線狀態(tài)線的地址數(shù)據(jù)緩存到所述檢測輸入口;其中,主機的檢測輸入口和狀態(tài)輸出口分別與總線狀態(tài)線相連。較佳地,所述總線狀態(tài)控制單元Z102,包括搶占總線結(jié)果判斷單元,具體用于:判斷檢測輸入口緩存的總線狀態(tài)線的地址數(shù)據(jù)與主機地址數(shù)據(jù)是否相同,如果是,則搶占總線成功;否則,搶占總線失敗。較佳地,若主機搶占總線成功,所述總線狀態(tài)控制單元,還包括占用總線單元,具體用于:通過狀態(tài)輸出口將占用狀態(tài)輸出到總線狀態(tài)線。較佳地,若總線狀態(tài)控制單元判斷出主機搶占總線失敗時,所述第二預(yù)設(shè)時間為根據(jù)該主機的地址預(yù)先設(shè)置的時間。參見圖3,本發(fā)明提供的一種通信系統(tǒng),包括:總線時鐘信號線IIC_SCL和總線數(shù)據(jù)線IIC_SDA ;至少一臺主機CPU,其中每臺主機均與總線時鐘信號線IIC_SCL和總線數(shù)據(jù)線IIC_SDA相連,并且每臺主機均為圖2所示的主機;總線狀態(tài)線STA,與每臺主機相連,用于檢測主機是否占用總線進行通信。較佳地,所述總線狀態(tài)線STA與每一主機新增的檢測輸入口 GP102和狀態(tài)輸出口GPIOl相連。較佳地,所述狀態(tài)輸出口 GPIOl,為:集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu)的狀態(tài)輸出口。較佳地,圖3所示的通信系統(tǒng)中,主機增加的狀態(tài)輸出口不包括集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu),因此增加晶體管,將此狀態(tài)輸出口通過晶體管以集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu)的形式連接總線狀態(tài)線,并將晶體管連接總線狀態(tài)線的一端作為主機的狀態(tài)輸出口。為了更好的理解本發(fā)明,下面結(jié)合附圖和具體實施例,對本發(fā)明提供的包含多個主機的通信系統(tǒng)進行多個主機通信的過程進行詳細(xì)說明。需要說明的是,以下實施例舉例說明本發(fā)明,但不限制本發(fā)明。實施例1按照圖3所示的通信系統(tǒng),參照圖4,只針對一個主機CPUl,其搶占總線的方法,包括:第一階段TlOl =CPUl的檢測輸入口 CPU1-GP101檢測總線狀態(tài)線STA為高電平,則說明總線狀態(tài)線空閑;第二階段T102 =CPUl的狀態(tài)輸出口 CPU1-GP102將CPUl的地址輸出到STA線,CPU1-GP101讀取STA線地址,判斷出讀取的地址為自己發(fā)出的CPUl的地址,則說明搶占總線成功;第三階段T103:CPU1-GP101輸出I將STA線拉低,即將STA線保持為占用狀態(tài),CPUl開始通信,進行數(shù)據(jù)傳輸;第四階段T104 =CPUl通信結(jié)束,CPU1-GP101輸出0,STA線恢復(fù)高電平,將總線釋放。需要說明的是,GPIOl輸出1,為輸出低電平,將STA線寫入低電平使其保持占用狀態(tài);GPIOl輸出0,為不輸出,STA線自行恢復(fù)為高電平,即恢復(fù)空閑狀態(tài)。以下實施例均相同,不在贅述。實施例2按照圖3所示的多主通信系統(tǒng),參照圖5,兩個主機CPUl和CPU3同時搶占總線的過程,包括:第一階段T201:CPU1-GP101和CPU3-GP101同時檢測STA為高電平,即總線空閑;第二階段T202:CPU1-GP102和CPU3-GP102分別將CPUl和CPU3的地址輸出到STA線,CPU1-GP101讀取STA線地址,判斷出讀取的地址為自己發(fā)出的CPUl的地址,則說明CPUl搶占總線成功;CPU3-GP101讀取STA線地址,判斷出讀取的地址不是自己發(fā)出的CPU3的地址,則說明CPU3搶占總線失敗,開始延時等待;第三階段T203:CPU1-GP101輸出I將STA線拉低,即將STA線保持為占用狀態(tài),CPUl開始通信,進行數(shù)據(jù)傳輸;其中,CPU3在這個階段內(nèi)延時等待周期結(jié)束,重新開始搶占,但是因為CPUl正在占用總線,CPU3只能繼續(xù)等待;第四階段T204 =CPUl通信結(jié)束,CPU1-GP101輸出0,STA線恢復(fù)高電平,將總線釋放;CPU3等待周期結(jié)束,檢測STA狀態(tài),當(dāng)檢測到STA為高電平時,立即搶占總線,CPU3-GP102將CPU3的地址輸出到STA線,CPU3-GP101讀取STA線地址,判斷出讀取的地址為自己發(fā)出的CPU3的地址,CPU3搶占總線成功;第五階段T205:CPU3-GP101輸出I將STA線拉低,即將STA線保持為占用狀態(tài),CPU3開始通信,進行數(shù)據(jù)傳輸;第六階段T206:CPU3通信結(jié)束,CPU3-GP101輸出0,STA線恢復(fù)高電平,將總線釋放。實施例3按照圖3所示的多主通信系統(tǒng),參照圖6,兩個CPUl和CPU2同時搶占總線的方法,包括:第一階段T301:CPU1-GP101和CPU2-GP101同時檢測STA為高電平,即總線空閑;第二階段T302:CPU1-GP102 和 CPU2-GP102 分別將 CPUl 和 CPU2 的地址輸出到 STA線,CPU1-GP101和CPU2-GP101分別讀取STA線地址,判斷出讀取的地址均不是自己發(fā)出的地址,則說明CPUl和CPU2均搶占總線失?。坏谌A段T303 =CPUl和CPU2分別開始延時等待,本實施例中,此時,CPUl等待一個CPUl的等待周期,CPU2等待兩個CPU2的等待周期,因此總線狀態(tài)線不被占用,為空閑狀態(tài);第四階段T304:此時CPUl完成延時等待,并輸出自己地址,CPU2仍在等待,CPUl成功搶占總線;第五階段T305:CPU1-GP101輸出I拉低STA總線,并開始數(shù)據(jù)傳輸,此時CPU2已完成延時,不過發(fā)現(xiàn)總線已被占,故需要等到下一次總線空閑才能進行搶占;第六階段T306:通信結(jié)束CPU1-GP101輸出0,釋放STA信號線,此時CPU2開始搶
占ο
通過以上三個實施例中三種典型多個主機搶占總線過程的分析,可以看出,本方案僅是通過增加一根信號線便完成了沖突檢測和隨機延時的沖突規(guī)避措施,可以應(yīng)對同一總線上多個主機不定時搶占總線通信的情況。這樣任何簡單的控制器都可以在同一系統(tǒng)中自由訪問總線上的各種從設(shè)備而不產(chǎn)生沖突,避免了很多因為總線訪問沖突而產(chǎn)生的種種問題。需要說明的是,本發(fā)明提供的實施例均是以IIC總線為例進行說明的,但是不限于IIC總線,例如,同時適用于485、422等工業(yè)現(xiàn)場總線。綜上所述,本發(fā)明實施例提供的一種主機通信方法、一種主機及包含多種該主機的通信系統(tǒng),通過在該通信系統(tǒng)中增加與每臺主機相連的用于檢測主機是否占用總線進行通信的總線狀態(tài)線,解決了現(xiàn)有總線控制器不支持多個主機通信的問題,實現(xiàn)了總線上多個主機自由通信的效果。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種主機通信方法,其特征在于,該主機通信方法包括: 當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線; 判斷搶占總線是否成功,如果是,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);否則,主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。
2.根據(jù)權(quán)利要求1所述的主機通信方法,其特征在于,所述若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線,包括: 根據(jù)檢測輸入口檢測到的總線狀態(tài)線的數(shù)據(jù)確定總線狀態(tài)線為空閑狀態(tài),則主機通過狀態(tài)輸出口將該主機地址數(shù)據(jù)輸出到總線狀態(tài)線; 主機的檢測輸入口檢測總線狀態(tài)線地址數(shù)據(jù),并將檢測到的總線狀態(tài)線的地址數(shù)據(jù)緩存到所述檢測輸入口; 其中,主機的檢測輸入口和狀態(tài)輸出口分別與總線狀態(tài)線相連。
3.根據(jù)權(quán)利要求2所述的主機通信方法,其特征在于,所述主機判斷搶占總線是否成功,包括: 判斷檢測輸入口緩存的總線狀態(tài)線的地址數(shù)據(jù)與主機地址數(shù)據(jù)是否相同,如果是,則搶占總線成功;否則,搶占總線失敗。
4.根據(jù)權(quán)利要求2所述的主機通信方法,其特征在于,所述若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài),包括: 通過狀態(tài)輸出口將占用狀態(tài)輸出到總線狀態(tài)線。
5.根據(jù)權(quán)利要求1所述的主機通信方法,其特征在于,若判斷結(jié)果為搶占總線失敗時,所述第二預(yù)設(shè)時間為根據(jù)該主機的地址預(yù)先設(shè)置的時間。
6.一種主機,其特征在于,該主機包括: 搶占總線單元,用于當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線; 總線狀態(tài)控制單元,判斷搶占總線是否成功,若判斷結(jié)果為搶占總線成功,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);若判斷結(jié)果為搶占總線失敗,則主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。
7.根據(jù)權(quán)利要求6所述的主機,其特征在于,所述搶占總線單元,包括搶占總線子單元,具體用于: 根據(jù)檢測輸入口檢測到的總線狀態(tài)線的數(shù)據(jù)確定總線狀態(tài)線為空閑狀態(tài),則主機通過狀態(tài)輸出口將該主機地址數(shù)據(jù)輸出到總線狀態(tài)線; 主機的檢測輸入口檢測總線狀態(tài)線地址數(shù)據(jù),并將檢測到的總線狀態(tài)線的地址數(shù)據(jù)緩存到所述檢測輸入口;其中,主機的檢測輸入口和狀態(tài)輸出口分別與總線狀態(tài)線相連。
8.根據(jù)權(quán)利要求7所述的主機,其特征在于,所述總線狀態(tài)控制單元,包括搶占總線結(jié)果判斷單元,具體用于: 判斷檢測輸入口緩存的總線狀態(tài)線的地址數(shù)據(jù)與主機地址數(shù)據(jù)是否相同,如果是,則搶占總線成功;否則,搶占總線失敗。
9.根據(jù)權(quán)利要求7所述的主機,其特征在于,若主機搶占總線成功,所述總線狀態(tài)控制單元,還包括占用總線單元,具體用于:通過狀態(tài)輸出口將占用狀態(tài)輸出到總線狀態(tài)線。
10.根據(jù)權(quán)利要求6所述的主機,其特征在于,若總線狀態(tài)控制單元判斷出主機搶占總線失敗時,所述第二預(yù)設(shè)時間為根據(jù)該主機的地址預(yù)先設(shè)置的時間。
11.一種通信系統(tǒng),包括總線時鐘信號線和總線數(shù)據(jù)線,其特征在于,該通信系統(tǒng)還包括: 至少一臺主機,其中每臺主機均與總線時鐘信號線和總線數(shù)據(jù)線相連,并且每臺主機均為如權(quán)利要求6 10任一權(quán)項所述的主機; 總線狀態(tài)線,與每臺主機相連,用于檢測主機是否占用總線進行通信。
12.根據(jù)權(quán)利要求11所述的通信系統(tǒng),其特征在于,所述總線狀態(tài)線與每一主機新增的檢測輸入口和狀態(tài)輸出口相連。
13.根據(jù)權(quán)利要求12所述的通信系統(tǒng),其特征在于,所述狀態(tài)輸出口,為: 集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu)的狀態(tài)輸出口。
14.根據(jù)權(quán)利要求12 所述的通信系統(tǒng),其特征在于,若所述主機增加的狀態(tài)輸出口不包括集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu)時,增加晶體管,將此狀態(tài)輸出口通過晶體管以集電極開路OC結(jié)構(gòu)或者漏極開路OD結(jié)構(gòu)的形式連接總線狀態(tài)線,并將晶體管連接總線狀態(tài)線的一端作為主機的狀態(tài)輸出口。
全文摘要
本發(fā)明公開了本發(fā)明實施例提供了一種主機通信方法、一種主機及通信系統(tǒng),用以解決現(xiàn)有通信系統(tǒng)中總線控制器不支持多個主機通信的問題。本發(fā)明提供的一種主機通信方法,包括當(dāng)主機有通信需求時,檢測總線狀態(tài)線,其中該總線狀態(tài)線與該主機所屬通信系統(tǒng)中的每一主機相連,用于檢測該通信系統(tǒng)中的主機是否占用總線進行通信,若總線狀態(tài)線為空閑狀態(tài),則主機搶占總線;若總線狀態(tài)線為占用狀態(tài),則主機按照第一預(yù)設(shè)時間等待后重新檢測狀態(tài)線;判斷搶占總線是否成功,如果是,則將總線狀態(tài)線設(shè)置為占用狀態(tài)并將此占用狀態(tài)保持,主機進行通信,通信結(jié)束后,將總線狀態(tài)線恢復(fù)為空閑狀態(tài);否則,主機按照第二預(yù)設(shè)時間進行等待后重新檢測總線狀態(tài)線。
文檔編號G06F13/40GK103116563SQ201210449319
公開日2013年5月22日 申請日期2012年11月9日 優(yōu)先權(quán)日2012年11月9日
發(fā)明者艾寧, 劉鵬 申請人:瑞斯康達(dá)科技發(fā)展股份有限公司