本發(fā)明涉及通訊技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)通信協(xié)議結(jié)構(gòu)及方法。
背景技術(shù):
現(xiàn)今廣泛使用的串行通信總線協(xié)議(如I2C、SPI),均受限于一主一從或一主多從的傳輸關(guān)系,總線上只能有一臺主機,不能夠?qū)崿F(xiàn)多系統(tǒng)設(shè)備間自由靈活的相互通信。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有技術(shù)中的不足,提供一種基于串行總線的可實現(xiàn)多主多從、多個設(shè)備間自由靈活地相互通信的數(shù)據(jù)傳輸協(xié)議結(jié)構(gòu)及方法。
為實現(xiàn)上述目的,本發(fā)明公開了如下技術(shù)方案:
一種數(shù)據(jù)通信協(xié)議結(jié)構(gòu),通信總線包括三根信號線,分別為:用于標(biāo)示總線狀態(tài)的BUSY線、用于系統(tǒng)數(shù)據(jù)傳輸?shù)腄ATA線和用于提供通信數(shù)據(jù)時序的CLK線,所有連接到總線設(shè)備上的串行數(shù)據(jù)線都連接到通信總線的DATA線上,所有設(shè)備的時鐘線都接在通信總線的CLK線上,各個設(shè)備的通信狀態(tài)線都接在通信總線的BUSY線上,BUSY線、DATA線和CLK線與電源連接之間需要有上拉電阻。
進(jìn)一步的,每個總線帶上的設(shè)備由系統(tǒng)分配一個唯一的地址。
本發(fā)明還公開了一種數(shù)據(jù)通信協(xié)議方法,利用如上所述的數(shù)據(jù)通信協(xié)議結(jié)構(gòu)進(jìn)行數(shù)據(jù)傳輸,規(guī)定傳輸數(shù)據(jù)時,數(shù)據(jù)結(jié)構(gòu)如下,第一個字節(jié)為發(fā)出源設(shè)備地址,第二字節(jié)為目標(biāo)設(shè)備地址,第三個字節(jié)內(nèi)容表示接下來有效數(shù)據(jù)的長度,之后是對應(yīng)長度的有效數(shù)據(jù),最后附有一位數(shù)據(jù)校驗位;
總線的運行由BUSY線的狀態(tài)控制,總線空閑時,BUSY線由上拉電阻置為高電平,數(shù)據(jù)源設(shè)備發(fā)送數(shù)據(jù)前會先檢測BUSY線狀態(tài),數(shù)據(jù)在總線開始傳輸?shù)臅r候,數(shù)據(jù)源設(shè)備將BUSY線由高電平拉低將總線置為占用狀態(tài),接著在CLK線上產(chǎn)生通信時序信號,并通過DATA線發(fā)出對應(yīng)時序的數(shù)據(jù)信息,每一個時鐘周期對應(yīng)一個bit數(shù)據(jù)的傳輸,在接收設(shè)備端,其他總線上的設(shè)備被BUSY線的低電平觸發(fā)中斷開始進(jìn)行數(shù)據(jù)監(jiān)聽,在每個CLK低電平時段對數(shù)據(jù)進(jìn)行讀取,在讀取第二字節(jié)的數(shù)據(jù)地址后,與自身地址進(jìn)行比對,比對相符時,開始接收有效數(shù)據(jù),若比對不符時,則退出中斷,釋放BUSY線,再次回到等待狀態(tài),接收設(shè)備完成所有數(shù)據(jù)的接收后,將BUSY線重新拉高,釋放總線。
進(jìn)一步的,所述每個總線帶上的設(shè)備為相同工作頻率的設(shè)備或不同工作頻率的設(shè)備,總線在通信時對通信頻率進(jìn)行設(shè)置,各系統(tǒng)設(shè)備間的通信都按照設(shè)定的頻率進(jìn)行,當(dāng)為不同工作頻率的設(shè)備時,即有不同系統(tǒng)時鐘的設(shè)備連接到總線上時,在設(shè)備的CLK線端,通過分頻或倍頻的調(diào)配,將設(shè)備統(tǒng)一配置為總線的通信頻率,從而實現(xiàn)了即使各個設(shè)備的工作頻率不同,當(dāng)其連接到總線上時,其通信間的時序頻率都能達(dá)到一致,屏蔽了不同系統(tǒng)時鐘設(shè)備的差異性。
本發(fā)明公開的一種數(shù)據(jù)通信協(xié)議結(jié)構(gòu)及方法,具有以下有益效果:
本數(shù)據(jù)通訊協(xié)議的發(fā)明,通過一根BUSY線標(biāo)示總線狀態(tài),加之DATA線與CLK線對于數(shù)據(jù)及數(shù)據(jù)時序的合理定義分配,只需總線上每個設(shè)備配置以一個唯一的地址,便可實現(xiàn)多設(shè)備之間無主從限制的相互自由通信。
多個設(shè)備間沒有主從關(guān)系限值,系統(tǒng)只需配置給各個設(shè)備唯一的通信地址,則可以實現(xiàn)多個設(shè)備之間的自由交互通信。
不同系統(tǒng)時鐘設(shè)備連接到總線上時,能簡單有效地實現(xiàn)設(shè)備通信地自適應(yīng)性。
附圖說明
圖1是本發(fā)明的硬件系統(tǒng)連接圖;
圖2是數(shù)據(jù)結(jié)構(gòu)定義圖;
圖3是數(shù)據(jù)傳輸時序圖。
具體實施方式
下面結(jié)合實施例對本發(fā)明作進(jìn)一步描述。
請參見圖1。一種數(shù)據(jù)通信協(xié)議結(jié)構(gòu),通信總線包括三根信號線,分別為:用于標(biāo)示總線狀態(tài)的BUSY線、用于系統(tǒng)數(shù)據(jù)傳輸?shù)腄ATA線和用于提供通信數(shù)據(jù)時序的CLK線,所有連接到總線設(shè)備上的串行數(shù)據(jù)線都連接到通信總線的DATA線上,所有設(shè)備的時鐘線都接在通信總線的CLK線上,各個設(shè)備的通信狀態(tài)線(通常選用設(shè)備的中斷接口)都接在通信總線的BUSY線上,BUSY線、DATA線和CLK線與電源連接之間需要有上拉電阻。
作為一種具體實施例,為了識別設(shè)備,將數(shù)據(jù)有效傳輸?shù)侥康牡?,每個總線帶上的設(shè)備由系統(tǒng)分配一個唯一的地址。
一種數(shù)據(jù)通信協(xié)議方法,利用如上所述的數(shù)據(jù)通信協(xié)議結(jié)構(gòu)進(jìn)行數(shù)據(jù)傳輸,規(guī)定傳輸數(shù)據(jù)時,數(shù)據(jù)結(jié)構(gòu)如下,第一個字節(jié)為發(fā)出源設(shè)備地址,第二字節(jié)為目標(biāo)設(shè)備地址,第三個字節(jié)內(nèi)容表示接下來有效數(shù)據(jù)的長度,之后是對應(yīng)長度的有效數(shù)據(jù),最后附有一位數(shù)據(jù)校驗位(見圖2),為數(shù)據(jù)提供安全可靠保證;
見圖3,總線的運行由BUSY線的狀態(tài)控制,總線空閑時,BUSY線由上拉電阻置為高電平,數(shù)據(jù)源設(shè)備試圖發(fā)送數(shù)據(jù)前會先檢測BUSY線狀態(tài),數(shù)據(jù)在總線開始傳輸?shù)臅r候,數(shù)據(jù)源設(shè)備將BUSY線由高電平拉低將總線置為占用狀態(tài),接著在CLK線上產(chǎn)生通信時序信號,并通過DATA線發(fā)出對應(yīng)時序的數(shù)據(jù)信息,每一個時鐘周期對應(yīng)一個bit數(shù)據(jù)的傳輸,在接收設(shè)備端,其他總線上的設(shè)備被BUSY線的低電平觸發(fā)中斷開始進(jìn)行數(shù)據(jù)監(jiān)聽,在每個CLK低電平時段對數(shù)據(jù)進(jìn)行讀取,在讀取第二字節(jié)的數(shù)據(jù)地址后,與自身地址進(jìn)行比對,比對相符時,開始接收有效數(shù)據(jù),若比對不符時,則退出中斷,釋放BUSY線,再次回到等待狀態(tài),接收設(shè)備完成所有數(shù)據(jù)的接收后,將BUSY線重新拉高,釋放總線,總線再次回到空閑可用狀態(tài),可供任意設(shè)備發(fā)起通信。
本發(fā)明中,所述每個總線帶上的設(shè)備為相同工作頻率的設(shè)備或不同工作頻率的設(shè)備,本發(fā)明可實現(xiàn)不同工作頻率的設(shè)備在總線上通信時通信時序的自適應(yīng)??偩€在通信時對通信頻率進(jìn)行設(shè)置,各系統(tǒng)設(shè)備間的通信都按照設(shè)定的頻率進(jìn)行,當(dāng)為不同工作頻率的設(shè)備時,即有不同系統(tǒng)時鐘的設(shè)備連接到總線上時,在設(shè)備的CLK線端,通過分頻或倍頻的調(diào)配,將設(shè)備統(tǒng)一配置為總線的通信頻率,從而實現(xiàn)了即使各個設(shè)備的工作頻率不同,當(dāng)其連接到總線上時,其通信間的時序頻率都能達(dá)到一致,屏蔽了不同系統(tǒng)時鐘設(shè)備的差異性,簡易有效地實現(xiàn)了設(shè)備在總線通信地自適應(yīng)性。
本發(fā)明可以解決現(xiàn)今廣泛使用的串行通信總線協(xié)議均受限于一主一從或一主多從的傳輸關(guān)系的問題,打破總線上只能有一臺主機的限制,所有設(shè)備可以實現(xiàn)組網(wǎng),即任意點對點的通信(類似mesh網(wǎng)絡(luò)),實現(xiàn)多主多從、多系統(tǒng)設(shè)備間自由靈活的相互通信。
以上所述僅是本發(fā)明的優(yōu)選實施方式,而非對其限制;應(yīng)當(dāng)指出,盡管參照上述各實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,其依然可以對上述各實施例所記載的技術(shù)方案進(jìn)行修改,或?qū)ζ渲胁糠只蛘呷考夹g(shù)特征進(jìn)行等同替換;而這些修改和替換,并不使相應(yīng)的技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。