本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及幀傳輸方法及裝置。
背景技術(shù):
控制器局域網(wǎng)(Controller Area Network,CAN)總線(xiàn)是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線(xiàn),是一種點(diǎn)對(duì)多點(diǎn)的機(jī)制,目前已經(jīng)應(yīng)用于通械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等諸多領(lǐng)域。
隨著通信設(shè)備功能的迅速增強(qiáng),設(shè)備的多樣性和復(fù)雜性也隨之提高,在此情況下,通信系統(tǒng)中控制信息的傳輸能力面臨極大挑戰(zhàn)?,F(xiàn)有技術(shù)中,在CAN協(xié)議中使用數(shù)據(jù)幀進(jìn)行數(shù)據(jù)傳輸時(shí),無(wú)法對(duì)幀傳輸過(guò)程的傳輸狀態(tài)進(jìn)行指示。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法及裝置。旨在解決通信系統(tǒng)中無(wú)法對(duì)幀傳輸過(guò)程的傳輸狀態(tài)進(jìn)行指示的問(wèn)題。為了對(duì)披露的實(shí)施例的一些方面有一個(gè)基本的理解,下面給出了簡(jiǎn)單的概括。該概括部分不是泛泛評(píng)述,也不是要確定關(guān)鍵/重要組成元素或描繪這些實(shí)施例的保護(hù)范圍。其唯一目的是用簡(jiǎn)單的形式呈現(xiàn)一些概念,以此作為后面的詳細(xì)說(shuō)明的序言。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供了一種幀傳輸方法,所述方法包括:
生成數(shù)據(jù)幀,所述數(shù)據(jù)幀包括仲裁場(chǎng),所述仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,所述幀數(shù)指示字段用于指示所述數(shù)據(jù)幀的幀號(hào),所述幀號(hào)為小于2^N的非負(fù)整數(shù),所述N為所述幀數(shù)指示字段包括的比特?cái)?shù),所述完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
發(fā)送所述數(shù)據(jù)幀。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供了一種幀傳輸方法,所述方法包括:
接收數(shù)據(jù)幀,所述數(shù)據(jù)幀包括仲裁場(chǎng),所述仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,所述幀數(shù)指示字段用于指示所述數(shù)據(jù)幀的幀號(hào),所述幀號(hào)為小于2^N的非負(fù)整數(shù),所述N為所述幀數(shù)指示字段包括的比特?cái)?shù),所述完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
根據(jù)接收的所述數(shù)據(jù)幀,確定所述數(shù)據(jù)幀的幀號(hào)和所述幀傳輸過(guò)程的傳輸狀態(tài)。
根據(jù)本發(fā)明實(shí)施例的第三方面,提供了一種幀傳輸裝置,所述裝置包括:
處理器,用于生成數(shù)據(jù)幀,所述數(shù)據(jù)幀包括仲裁場(chǎng),所述仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,所述幀數(shù)指示字段用于指示所述數(shù)據(jù)幀的幀號(hào),所述幀號(hào)為小于2^N的非負(fù)整數(shù),所述N為所述幀數(shù)指示字段包括的比特?cái)?shù),所述完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
發(fā)送器,用于發(fā)送所述處理器生成的所述數(shù)據(jù)幀。
根據(jù)本發(fā)明實(shí)施例的第四方面,提供了一種幀傳輸裝置,所述裝置包括:
接收器,用于接收數(shù)據(jù)幀,所述數(shù)據(jù)幀包括仲裁場(chǎng),所述仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,所述幀數(shù)指示字段用于指示所述數(shù)據(jù)幀的幀號(hào),所述幀號(hào)為小于2^N的非負(fù)整數(shù),所述N為所述幀數(shù)指示字段包括的比特?cái)?shù),所述完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
處理器,用于根據(jù)所述接收器接收的所述數(shù)據(jù)幀,確定所述數(shù)據(jù)幀的幀號(hào)和所述幀傳輸過(guò)程的傳輸狀態(tài)。
本發(fā)明公開(kāi)的技術(shù)方案可以包括以下有益效果:
發(fā)送的數(shù)據(jù)幀中包括了幀數(shù)指示字段和完成指示字段。在數(shù)據(jù)傳輸過(guò)程中,接收端可以根據(jù)幀數(shù)指示字段攜帶的信息,獲取幀傳輸過(guò)程中數(shù)據(jù)幀的幀號(hào),根據(jù)完成指示字段攜帶的信息,獲取幀傳輸過(guò)程的傳輸狀態(tài)。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說(shuō)明
此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。
圖1是本發(fā)明實(shí)施例公開(kāi)的一種幀傳輸方法的流程圖;
圖2是本發(fā)明實(shí)施例公開(kāi)的一種數(shù)據(jù)幀的示意圖;
圖3是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸方法的流程圖;
圖4是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸方法的流程圖;
圖5是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸方法的流程圖;
圖6是本發(fā)明實(shí)施例公開(kāi)的一種幀傳輸裝置的示意圖;
圖7是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸裝置的示意圖;
圖8是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸裝置的示意圖;
圖9是本發(fā)明實(shí)施例公開(kāi)的另一種幀傳輸裝置的示意圖。
具體實(shí)施方式
以下描述和附圖充分地示出本發(fā)明的具體實(shí)施方案,以使本領(lǐng)域的技術(shù)人員能夠?qū)嵺`它們。實(shí)施例僅代表可能的變化。除非明確要求,否則單獨(dú)的部件和功能是可選的,并且操作的順序可以變化。一些實(shí)施方案的部分和特征可以被包括在或替換其他實(shí)施方案的部分和特征。本發(fā)明的實(shí)施方案的范圍包括權(quán)利要求書(shū)的整個(gè)范圍,以及權(quán)利要求書(shū)的所有可獲得的等同物。在本文中,各實(shí)施方案可以被單獨(dú)地或總地用術(shù)語(yǔ)“發(fā)明”來(lái)表示,這僅僅是為了方便,并且如果事實(shí)上公開(kāi)了超過(guò)一個(gè)的發(fā)明,不是要自動(dòng)地限制該應(yīng)用的范圍為任何單個(gè)發(fā)明或發(fā)明構(gòu)思。本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用于將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不要求或者暗示這些實(shí)體或操作之間存在任何實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素。本文中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的結(jié)構(gòu)、產(chǎn)品等而言,由于其與實(shí)施例公開(kāi)的部分相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
控制器局域網(wǎng)(Controller Area Network,CAN)協(xié)議是一種點(diǎn)對(duì)多點(diǎn)的傳輸協(xié)議,CAN總線(xiàn)是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線(xiàn),它可以使用雙絞線(xiàn)來(lái)傳輸信號(hào),是世界上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。CAN協(xié)議具有良好的健壯性,使其在自動(dòng)化等領(lǐng)域得到廣泛的應(yīng)用。
CAN總線(xiàn)上的通信節(jié)點(diǎn)可以依照功能分為標(biāo)準(zhǔn)節(jié)點(diǎn)和瘦節(jié)點(diǎn),其中,標(biāo)準(zhǔn)節(jié)點(diǎn)為擁有協(xié)議規(guī)定的完整功能的節(jié)點(diǎn),瘦節(jié)點(diǎn)為用于協(xié)議規(guī)定的部分功能的節(jié)點(diǎn),示例性的,瘦節(jié)點(diǎn)可以只包括協(xié)議規(guī)定的最基本的功能,通常瘦節(jié)點(diǎn)為成本較低、內(nèi)存資源有限的通信節(jié)點(diǎn)。
CAN總線(xiàn)上的通信節(jié)點(diǎn)可以依照用途分為主控制器和被控節(jié)點(diǎn),其中,主控制器可以向被控節(jié)點(diǎn)發(fā)送指令,要求被控節(jié)點(diǎn)執(zhí)行相應(yīng)的操作。本領(lǐng)域技術(shù)人員應(yīng)知,在CAN總線(xiàn)上,主控制器和被控節(jié)點(diǎn)的數(shù)量可以在具體實(shí)施過(guò)程中靈活設(shè)置,本發(fā)明對(duì)此并不限定。
在CAN協(xié)議中定義了數(shù)據(jù)幀,用于不同通信節(jié)點(diǎn)之間的數(shù)據(jù)傳輸。數(shù)據(jù)幀可以由7部分組成,即幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、循環(huán)冗余校驗(yàn)場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)束。特別的,數(shù)據(jù)幀包括標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀,其中,標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀的主要區(qū)別在于仲裁場(chǎng)中標(biāo)識(shí)(identifier,ID)字段所包括的比特位數(shù)不同。
本發(fā)明公開(kāi)了一種幀傳輸方法,如圖1所示,具體如下:
S101、生成數(shù)據(jù)幀,其中,數(shù)據(jù)幀包括仲裁場(chǎng),仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,幀數(shù)指示字段用于指示數(shù)據(jù)幀的幀號(hào),幀號(hào)為小于2^N的非負(fù)整數(shù),N為幀數(shù)指示字段包括的比特?cái)?shù),完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
S102、發(fā)送數(shù)據(jù)幀。
在S101中,生成的數(shù)據(jù)幀的示意圖如圖2所示,應(yīng)知,本發(fā)明對(duì)仲裁場(chǎng)在數(shù)據(jù)幀中的具體位置,以及幀數(shù)指示字段或完成指示字段在仲裁場(chǎng)和數(shù)據(jù)幀中的具體位置不做限定。作為一種可選的實(shí)施方式,圖2所示的具體字段的位置,僅作為示例。
其中,幀傳輸過(guò)程為通信節(jié)點(diǎn)之間的一次數(shù)據(jù)傳輸過(guò)程,示例性的,總線(xiàn)上至少包括通信節(jié)點(diǎn)A、B和C,在一次數(shù)據(jù)傳輸過(guò)程中,A向B發(fā)送數(shù)據(jù),則幀數(shù)指示字段記錄本次數(shù)據(jù)傳輸過(guò)程中A向B發(fā)送的數(shù)據(jù)幀的幀號(hào),發(fā)送完畢時(shí),完成指示字段承載的信息用于向B指示本次數(shù)據(jù)傳輸過(guò)程結(jié)束。而后當(dāng)A向C發(fā)送數(shù)據(jù)時(shí),開(kāi)始新一個(gè)的幀傳輸過(guò)程。
幀數(shù)指示字段的長(zhǎng)度可以由本領(lǐng)域技術(shù)人員在具體實(shí)施本發(fā)明的過(guò)程中根據(jù)實(shí)際需要表征的指令的數(shù)量進(jìn)行設(shè)置,例如,可以采用8位比特??蛇x的,當(dāng)幀數(shù)指示字段包括8位比特時(shí),可以承載8位自增循環(huán)碼用于對(duì)數(shù)據(jù)幀進(jìn)行計(jì)數(shù),以記錄幀號(hào)。
示例性的,如圖3所示,本方法還包括:
S103、接收異常指示幀,其中,異常指示幀用于指示幀傳輸過(guò)程中的異常數(shù)據(jù)幀。
可選的,當(dāng)幀數(shù)指示字段用于承載N位比特時(shí),在一次幀傳輸過(guò)程中,數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收端發(fā)送數(shù)據(jù)信息,起始數(shù)據(jù)幀的幀號(hào)為0,而后第n幀的幀號(hào)為(n+1),n為小于2^N的非負(fù)整數(shù),當(dāng)發(fā)送到幀號(hào)為(2^(N-1)-1)的幀時(shí),表明N位比特所能夠表征的幀號(hào)已使用一半,此時(shí),數(shù)據(jù)接收端可以向數(shù)據(jù)發(fā)送端發(fā)送異常指示幀,用于指示本次幀傳輸過(guò)程中的異常數(shù)據(jù)幀,如未接收到的數(shù)據(jù)幀,或未正確接收的數(shù)據(jù)幀等,并等待接收來(lái)自數(shù)據(jù)發(fā)送端重新發(fā)送的異常數(shù)據(jù)幀,重新發(fā)送異常數(shù)據(jù)幀的方法可以使用自動(dòng)請(qǐng)求重傳、混合自動(dòng)請(qǐng)求重傳等方案,本發(fā)明對(duì)此并不限定。數(shù)據(jù)接收端正確接收完成后,數(shù)據(jù)發(fā)送端再開(kāi)始發(fā)送幀號(hào)為2^(N-1)的幀。進(jìn)一步的,當(dāng)發(fā)送幀號(hào)為(2^N-1)的幀時(shí),表明N位比特所能夠表征的幀號(hào)已使用完畢,數(shù)據(jù)發(fā)送端可以接收來(lái)自數(shù)據(jù)接收端發(fā)送的異常指示幀,具體方案如前所述,此處不再贅述。
可選的,其他情況下,當(dāng)數(shù)據(jù)接收端接收到異常數(shù)據(jù)幀時(shí),可以向數(shù)據(jù)發(fā)送端發(fā)送異常指示幀,本領(lǐng)域技術(shù)人員在具體實(shí)施過(guò)程中,可以根據(jù)需要,結(jié)合本發(fā)明公開(kāi)的技術(shù)方案,確定發(fā)送異常指示幀的條件。
完成指示字段可以包括1位比特,可選的,當(dāng)比特為1時(shí),表征所述數(shù)據(jù)幀為幀傳輸過(guò)程的最后一幀,當(dāng)比特為0時(shí),表征數(shù)據(jù)幀不為幀傳輸過(guò)程的最后一幀。
本發(fā)明公開(kāi)的方法,發(fā)送的數(shù)據(jù)幀中包括了幀數(shù)指示字段和完成指示字段。在數(shù)據(jù)傳輸過(guò)程中,接收端可以根據(jù)幀數(shù)指示字段攜帶的信息,獲取幀傳輸過(guò)程中數(shù)據(jù)幀的幀號(hào),根據(jù)完成指示字段攜帶的信息,獲取幀傳輸過(guò)程的傳輸狀態(tài)。
本發(fā)明還公開(kāi)了一種幀傳輸方法,如圖4所示,具體如下:
S401、接收數(shù)據(jù)幀,其中,數(shù)據(jù)幀包括仲裁場(chǎng),仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,幀數(shù)指示字段用于指示數(shù)據(jù)幀的幀號(hào),幀號(hào)為小于2^N的非負(fù)整數(shù),N為幀數(shù)指示字段包括的比特?cái)?shù),完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
S402、根據(jù)接收的數(shù)據(jù)幀,確定數(shù)據(jù)幀的幀號(hào)和幀傳輸過(guò)程的傳輸狀態(tài)。
在S401中,接收的數(shù)據(jù)幀的示意圖如圖2所示,本實(shí)施例中,對(duì)數(shù)據(jù)幀、仲裁場(chǎng)、幀數(shù)指示字段和完成指示字段相關(guān)的定義和說(shuō)明,與記載在S101中的相關(guān)定義和說(shuō)明類(lèi)似,本領(lǐng)域技術(shù)人員可參照相關(guān)段落的描述,此處不再贅述。
在S402中,通信節(jié)點(diǎn)根據(jù)接收的數(shù)據(jù)幀中包括的幀數(shù)指示字段,可以確定接收的數(shù)據(jù)幀的幀號(hào),根據(jù)完成指示字段,可以確定幀傳輸過(guò)程的傳輸狀態(tài)。
示例性的,當(dāng)數(shù)據(jù)接收端接收的來(lái)自數(shù)據(jù)發(fā)送端發(fā)送的幀數(shù)指示字段的內(nèi)容為“00101010”時(shí),獲取幀號(hào)為42,即該幀為本次幀傳輸過(guò)程的第43幀。
示例性的,當(dāng)數(shù)據(jù)接收端接收的來(lái)自數(shù)據(jù)發(fā)送端發(fā)送的完成指示字段的內(nèi)容為“0”時(shí),確定本次幀傳輸過(guò)程未完成,當(dāng)完成指示字段的內(nèi)容為“1”時(shí),確定本次幀傳輸過(guò)程完成。
可選的,如圖5所示,本方法還包括:
S403,發(fā)送異常指示幀,其中,異常指示幀用于指示幀傳輸過(guò)程中的異常數(shù)據(jù)幀。
當(dāng)數(shù)據(jù)接收端接收到異常數(shù)據(jù)幀,或數(shù)據(jù)幀的幀號(hào)滿(mǎn)足預(yù)設(shè)條件時(shí),數(shù)據(jù)接收端可以向數(shù)據(jù)發(fā)送端發(fā)送異常指示幀,用于指示所述幀傳輸過(guò)程中的異常數(shù)據(jù)幀。
本發(fā)明還公開(kāi)了一種幀傳輸裝置60,如圖6所示,具體如下:
處理器601,用于生成數(shù)據(jù)幀,其中,數(shù)據(jù)幀包括仲裁場(chǎng),仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,幀數(shù)指示字段用于指示所述數(shù)據(jù)幀的幀號(hào),幀號(hào)為小于2^N的非負(fù)整數(shù),N為所述幀數(shù)指示字段包括的比特?cái)?shù),完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
發(fā)送器602,用于發(fā)送處理器601生成的數(shù)據(jù)幀。
可選的,幀傳輸過(guò)程的起始數(shù)據(jù)幀的幀號(hào)可以為0。
可選的,完成指示字段可以包括1位比特,其中,比特為1時(shí),表征數(shù)據(jù)幀為幀傳輸過(guò)程的最后一幀,比特為0時(shí),表征數(shù)據(jù)幀不為幀傳輸過(guò)程的最后一幀。
可選的,如圖7所示,幀傳輸裝置60還可以包括:
接收器603,用于接收異常指示幀,其中,異常指示幀用于指示幀傳輸過(guò)程中的異常數(shù)據(jù)幀。
幀傳輸裝置60可以用于執(zhí)行如圖1或圖3所示的方法。示例性的,處理器601可以用于執(zhí)行S101的步驟,發(fā)送器602可以用于執(zhí)行S102的步驟,接收器603可以用于執(zhí)行S103的步驟,步驟說(shuō)明已在前文中給出描述,此處不再贅述。
本發(fā)明公開(kāi)的裝置,發(fā)送的數(shù)據(jù)幀中包括了幀數(shù)指示字段和完成指示字段。在數(shù)據(jù)傳輸過(guò)程中,接收端可以根據(jù)幀數(shù)指示字段攜帶的信息,獲取幀傳輸過(guò)程中數(shù)據(jù)幀的幀號(hào),根據(jù)完成指示字段攜帶的信息,獲取幀傳輸過(guò)程的傳輸狀態(tài)。
本發(fā)明還公開(kāi)了一種幀傳輸裝置80,如圖8所示,具體如下:
接收器801,用于接收數(shù)據(jù)幀,其中,數(shù)據(jù)幀包括仲裁場(chǎng),仲裁場(chǎng)包括幀數(shù)指示字段和完成指示字段,幀數(shù)指示字段用于指示數(shù)據(jù)幀的幀號(hào),幀號(hào)為小于2^N的非負(fù)整數(shù),N為幀數(shù)指示字段包括的比特?cái)?shù),完成指示字段用于指示幀傳輸過(guò)程的傳輸狀態(tài);
處理器802,用于根據(jù)接收器801接收的數(shù)據(jù)幀,確定數(shù)據(jù)幀的幀號(hào)和幀傳輸過(guò)程的傳輸狀態(tài)。
可選的,幀傳輸過(guò)程的起始數(shù)據(jù)幀的幀號(hào)可以為0。
可選的,完成指示字段可以包括1位比特,其中,比特為1時(shí),表征數(shù)據(jù)幀為幀傳輸過(guò)程的最后一幀,比特為0時(shí),表征數(shù)據(jù)幀不為幀傳輸過(guò)程的最后一幀。
可選的,如圖9所示,幀傳輸裝置80還可以包括:
發(fā)送器803,用于發(fā)送異常指示幀,其中,異常指示幀用于指示幀傳輸過(guò)程中的異常數(shù)據(jù)幀。
幀傳輸裝置80可以用于執(zhí)行如圖4或圖5所示的方法。示例性的,接收器801可以用于執(zhí)行S401的步驟,處理器802可以用于執(zhí)行S402的步驟,發(fā)送器803可以用于執(zhí)行S403的步驟,步驟說(shuō)明已在前文中給出描述,此處不再贅述。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的流程及結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。