亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種can總線數(shù)據(jù)傳輸方法

文檔序號:7721064閱讀:345來源:國知局
專利名稱:一種can總線數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種CAN現(xiàn)場總線數(shù)據(jù)傳輸方法,特別是采用動態(tài)改變優(yōu)先級、幀順序控制、多幀應(yīng)答機制等多項技術(shù)提高CAN總線多幀數(shù)據(jù)傳輸可靠性的方法,屬于數(shù)據(jù)傳輸技術(shù)領(lǐng)域。

背景技術(shù)
由于CAN總線標(biāo)準(zhǔn)只規(guī)定了物理層和數(shù)據(jù)鏈路層,應(yīng)用層部分需要自行開發(fā)。目前小衛(wèi)星常用作法是將大塊數(shù)據(jù)分割成較小的數(shù)據(jù)塊,小塊數(shù)據(jù)單獨發(fā)送,接收端將數(shù)據(jù)全部接收后按照先后順序拼接成原始數(shù)據(jù)。該種處理方式簡單實用,適用于數(shù)據(jù)量較小、通信場合穩(wěn)定可靠的情況。在數(shù)據(jù)塊變大,且通信環(huán)境惡劣時,可能會產(chǎn)生誤碼。目前對于誤碼的處理方式為重新發(fā)送。而大數(shù)據(jù)塊全部重新發(fā)送需要占用總線帶寬及通信時間,不利于星載測控數(shù)據(jù)的可靠傳輸。
許杭等于2007年12月發(fā)表在《計算機工程》的《CAN總線上層協(xié)議的設(shè)計》一文重點闡述了基于CAN擴展幀格式的應(yīng)用層協(xié)議設(shè)計,而本發(fā)明基于CAN標(biāo)準(zhǔn)幀格式,格式定義不同,現(xiàn)場應(yīng)用的方向不同。


發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種高可靠的CAN總線大數(shù)據(jù)塊傳輸方法,大幅提高了CAN總線大數(shù)據(jù)塊收發(fā)的可靠性,并具有一定的糾檢錯功能,擴大了CAN總線的應(yīng)用層次,提高了網(wǎng)絡(luò)系統(tǒng)的健壯性。
本發(fā)明的技術(shù)解決方案是一種CAN總線數(shù)據(jù)傳輸方法,通過以下步驟實現(xiàn) 第一步,數(shù)據(jù)發(fā)送方將要傳輸?shù)拇髷?shù)據(jù)塊按照特定的幀格式分成若干個數(shù)據(jù)幀的多幀形式,每一幀數(shù)據(jù)包括仲裁場、控制場和有效數(shù)據(jù)場,其中仲裁場的ID10、ID9位為幀優(yōu)先級、ID8~ID3位為幀順序控制域,用來填寫幀序號,將若干個數(shù)據(jù)幀的第一幀即頭幀和最后一幀即尾幀的幀優(yōu)先級定為0,其他數(shù)據(jù)幀的優(yōu)先級定為1,頭幀的幀序號為0,其余數(shù)據(jù)幀的幀序號按1、2、3...N的順序編號,N為大數(shù)據(jù)塊分成的數(shù)據(jù)幀的幀總數(shù),頭幀的有效數(shù)據(jù)場第一位數(shù)據(jù)字節(jié)T為幀標(biāo)識,第二個數(shù)據(jù)字節(jié)L為幀總數(shù),即N的數(shù)值,尾幀的有效數(shù)據(jù)場的最后一個字節(jié)SUM為校驗字,頭幀、尾幀剩余有效數(shù)據(jù)場及其余的數(shù)據(jù)幀的有效數(shù)據(jù)場的字節(jié)為要傳輸?shù)挠行?shù)據(jù); 第二步,數(shù)據(jù)發(fā)送方將頭幀發(fā)送到數(shù)據(jù)接收方; 第三步,數(shù)據(jù)接收方接到頭幀后,向數(shù)據(jù)發(fā)送方返回頭幀應(yīng)答數(shù)據(jù)幀,頭幀應(yīng)答數(shù)據(jù)幀格式為有效數(shù)據(jù)場第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二字節(jié)為頭幀接收狀態(tài),第三個字節(jié)SUM為本幀的校驗字,若數(shù)據(jù)接收方向數(shù)據(jù)發(fā)送方返回的頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為0表示頭幀正確接收,進入第四步,若頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為1表示頭幀未正確接收,需要重新發(fā)送,則返回第二步,若數(shù)據(jù)發(fā)送方在10ms內(nèi)未收到頭幀應(yīng)答數(shù)據(jù)幀,則返回第二步; 第四步,數(shù)據(jù)發(fā)送方繼續(xù)向數(shù)據(jù)接收方發(fā)送其余的數(shù)據(jù)幀,直到尾幀; 第五步,數(shù)據(jù)接收方接收完所有的數(shù)據(jù)幀,根據(jù)檢查所有數(shù)據(jù)幀的結(jié)果向數(shù)據(jù)發(fā)送方返回尾幀應(yīng)答數(shù)據(jù)幀,若數(shù)據(jù)發(fā)送方10ms未接到數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,則回到第二步; (1)數(shù)據(jù)接收方檢查所有數(shù)據(jù)幀的幀順序控制域,若數(shù)據(jù)幀的順序號連續(xù)完整,進入步驟(2),若數(shù)據(jù)幀的順序號不是連續(xù)完整的,則進入步驟(3); (2)利用尾幀的校驗字對接收到所有數(shù)據(jù)幀進行校驗,若校驗正確,則進入步驟(4),若校驗不正確則進入步驟(5); (3)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回部分重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為需重新發(fā)送的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6); (4)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回全部正確的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二個字節(jié)SUM為本幀的校驗字,進入第七步; (5)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回全部重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為全部的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6); (6)數(shù)據(jù)接收方根據(jù)數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,向數(shù)據(jù)接收方發(fā)送所需重新發(fā)送的數(shù)據(jù)幀,回到步驟(1); 第六步,在數(shù)據(jù)接收方接受多幀數(shù)據(jù)時,接受到多幀數(shù)據(jù)以外的數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀仲裁場的幀優(yōu)先級確定接收的順序,優(yōu)先級高的先接收; 第七步,多幀數(shù)據(jù)傳輸完畢。
所述第三步中若數(shù)據(jù)發(fā)送方在10ms內(nèi)未收到頭幀應(yīng)答數(shù)據(jù)幀,回到第二步重新發(fā)送頭幀的次數(shù)最多不超過5次,重新發(fā)送5次后仍未收到頭幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
所述第五步若數(shù)據(jù)發(fā)送方在10ms內(nèi)未接到數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,則回到第二步重新發(fā)送,重新發(fā)送的次數(shù)不超過3次,重新發(fā)送3次后仍未收到尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
所述第五步步驟(6)中,數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為部分重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所需數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過5次,重新發(fā)送5次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
所述第五步步驟(6)中,數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為全部重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所有數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過3次,重新發(fā)送3次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
本發(fā)明設(shè)計原理 本發(fā)明采用動態(tài)改變幀優(yōu)先級、幀順序控制、多幀應(yīng)答機制、多幀遴選策略等方法提高CAN總線大數(shù)據(jù)塊傳輸?shù)目煽啃浴?br> (1)動態(tài)改變幀優(yōu)先級,提高第一幀(頭幀)和最后一幀(尾幀)的優(yōu)先級,使得多幀的頭幀與尾幀的優(yōu)先級高于其它多幀或優(yōu)先級不高的單幀,保證重要信息(如幀標(biāo)識、校驗字)等數(shù)據(jù)的正確接收。幀優(yōu)先級通過幀仲裁場ID10~ID9來體現(xiàn),數(shù)值越小優(yōu)先級越高; (2)幀順序控制,將大數(shù)據(jù)塊分成多幀后,將仲裁場ID8~ID3定義為幀順序控制域,發(fā)送前將多幀按特定順序編號,該編號填充在幀順序控制域中。接收端將數(shù)據(jù)全部接收后,按照幀順序控制域的內(nèi)容將接收數(shù)據(jù)進行排序,并將數(shù)據(jù)拼接進行校驗。如果發(fā)生后發(fā)先至的情況,接收端可根據(jù)幀順序控制域進行適當(dāng)調(diào)整。
(3)多幀應(yīng)答機制,多幀數(shù)據(jù)接收方需要對多幀的頭幀和尾幀分別進行應(yīng)答。頭幀和尾幀分別在幀順序控制域中給出,由于這兩幀最為重要,需要分別進行應(yīng)答,多幀中的其它幀則通過異或和校驗字SUM進行校驗。尾幀作為多幀數(shù)據(jù)的結(jié)尾,包含有全部數(shù)據(jù)的校驗字,因此尾幀的應(yīng)答幀需要根據(jù)全部數(shù)據(jù)是否正確接收進行組織。尾幀的應(yīng)答幀包含錯誤幀的序號,可促使發(fā)送端自動重發(fā)。
(4)多幀遴選策略,在多幀傳送過程中,有可能被插入其它單幀或多幀,如重要的控制信息。為簡化處理,這里采取舍棄低優(yōu)先級幀的策略。
本發(fā)明與現(xiàn)有技術(shù)相比有益效果為 (1)本發(fā)明采用了動態(tài)改變幀優(yōu)先級的策略,多幀數(shù)據(jù)的第一幀和最后一幀的優(yōu)先級高于普通數(shù)據(jù),因此這兩幀將不受普通多幀數(shù)據(jù)的影響,保證了幀標(biāo)識、幀長度、幀校驗碼等重要控制信息的正常接收。
(2)本發(fā)明多幀應(yīng)答機制增加了頭幀應(yīng)答與尾幀應(yīng)答,保證了頭幀有效接收的同時,也杜絕了頭幀已錯誤但仍繼續(xù)發(fā)送數(shù)據(jù)的情況,有效節(jié)約了總線帶寬,提高了傳輸效率; (3)本發(fā)明尾幀應(yīng)答中含有的錯誤幀序號也使得數(shù)據(jù)發(fā)送端盡快得知錯誤的具體幀號,從而僅重發(fā)錯誤的幀號,而不必全部重新發(fā)送,浪費總線帶寬; (4)本發(fā)明大幅提高了CAN總線大數(shù)據(jù)塊收發(fā)的可靠性,并具有一定的糾檢錯功能,擴大了CAN總線的應(yīng)用層次,提高了網(wǎng)絡(luò)系統(tǒng)的健壯性。



圖1為本發(fā)明的流程圖。

具體實施例方式 本發(fā)明如圖1所示,通過以下步驟實現(xiàn),結(jié)合具體的實例來說明。
一、制定數(shù)據(jù)幀格式 數(shù)據(jù)發(fā)送方將要傳輸?shù)拇髷?shù)據(jù)塊按照特定的幀格式分成若干個數(shù)據(jù)幀的多幀形式。幀格式如表1所示,給出的多幀數(shù)據(jù)格式中,其中ID10~ID9為本幀的優(yōu)先級判定依據(jù),按照CAN總線協(xié)議標(biāo)準(zhǔn)規(guī)定的仲裁機制,當(dāng)總線上發(fā)生數(shù)據(jù)搶占時,“0”的優(yōu)先級大于“1”,因此第一幀和最后一幀的優(yōu)先級大于第二幀和第三幀。
每一幀數(shù)據(jù)包括仲裁場、控制場和有效數(shù)據(jù)場,其中仲裁場的ID10、ID9位為幀優(yōu)先級、ID8~ID3位為幀順序控制域,用來填寫幀序號,將若干個數(shù)據(jù)幀的第一幀即頭幀和最后一幀即尾幀的幀優(yōu)先級定為0,其他數(shù)據(jù)幀的優(yōu)先級定為1,頭幀的幀序號為0,其余數(shù)據(jù)幀的幀序號按1、2、3...N的順序編號,N為大數(shù)據(jù)塊分成的數(shù)據(jù)幀的幀總數(shù),頭幀的有效數(shù)據(jù)場第一位數(shù)據(jù)字節(jié)T為幀標(biāo)識,第二個數(shù)據(jù)字節(jié)L為幀總數(shù),即N的數(shù)值,尾幀的有效數(shù)據(jù)場的最后一個字節(jié)SUM為校驗字,頭幀、尾幀剩余有效數(shù)據(jù)場及其余的數(shù)據(jù)幀的有效數(shù)據(jù)場的字節(jié)為要傳輸?shù)挠行?shù)據(jù)。
控制場為CAN標(biāo)準(zhǔn)幀格式。
表1
大塊數(shù)據(jù)的分割按照字節(jié)的先后順序依次進行,如表1中的W0~W21字段所示,接收方根據(jù)該順序?qū)?shù)據(jù)進行組合,得到有效信息。
表1給出了22字節(jié)數(shù)據(jù)塊(W0~W21)被分割成4幀的情況。如表1所示,本發(fā)明將大塊數(shù)據(jù)分割成4幀,幀序號從0開始計數(shù)到3。其中第一幀的第一個數(shù)據(jù)字節(jié)T為幀標(biāo)識,區(qū)分在CAN總線網(wǎng)絡(luò)上傳輸?shù)牟煌瑪?shù)據(jù)包類型,最多256種,用以區(qū)分不同的目的地址及數(shù)據(jù)類型。第一幀的第二個數(shù)據(jù)字節(jié)L為多幀總數(shù),最大為63。最后一幀的最后一個字節(jié)SUM為校驗字,對數(shù)據(jù)采用異或和校驗。
二、數(shù)據(jù)發(fā)送方將頭幀發(fā)送到數(shù)據(jù)接收方。
三、頭幀應(yīng)答 數(shù)據(jù)接收方接到頭幀后,向數(shù)據(jù)發(fā)送方返回頭幀應(yīng)答數(shù)據(jù)幀,頭幀應(yīng)答數(shù)據(jù)幀格式為有效數(shù)據(jù)場第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二字節(jié)為頭幀接收狀態(tài),第三個字節(jié)SUM為本幀的校驗字,若數(shù)據(jù)接收方向數(shù)據(jù)發(fā)送方返回的頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為0表示頭幀正確接收,接著發(fā)送其他數(shù)據(jù)幀,若頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為1表示頭幀未正確接收,需要重新發(fā)送,重新發(fā)送頭幀,若數(shù)據(jù)發(fā)送方在10ms內(nèi)未收到頭幀應(yīng)答數(shù)據(jù)幀,重新發(fā)送頭幀。
表2給出了對于頭幀的應(yīng)答幀數(shù)據(jù)格式。有效數(shù)據(jù)場中的第一個字節(jié)T為應(yīng)答幀的幀標(biāo)識,由用戶自行定義。第二個字節(jié)為0,說明頭幀正確接收;該字節(jié)為1,說明頭幀未正確接收,需要重新發(fā)送,如表3所示。第三個字節(jié)SUM為本幀的異或和校驗字。如果發(fā)送方等待一定時間接收不到頭幀的應(yīng)答,認(rèn)為接收方發(fā)生錯誤或鏈路發(fā)生錯誤,將重新發(fā)送頭幀并等待應(yīng)答,重發(fā)次數(shù)超過五次仍未成功,停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
表2(正確接收)
表3(未正確接收)
四、數(shù)據(jù)發(fā)送方繼續(xù)向數(shù)據(jù)接收方發(fā)送其余的數(shù)據(jù)幀,直到尾幀。
五、尾幀應(yīng)答 數(shù)據(jù)接收方接收完所有的數(shù)據(jù)幀,根據(jù)檢查所有數(shù)據(jù)幀的結(jié)果向數(shù)據(jù)發(fā)送方返回尾幀應(yīng)答數(shù)據(jù)幀,若數(shù)據(jù)發(fā)送方在10ms內(nèi)未接到數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,則要重新發(fā)送全部數(shù)據(jù)幀。重新發(fā)送的次數(shù)不超過3次,重新發(fā)送3次后仍未收到尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
(1)數(shù)據(jù)接收方檢查所有數(shù)據(jù)幀的幀順序控制域,若數(shù)據(jù)幀的順序號連續(xù)完整,進入步驟(2),若數(shù)據(jù)幀的順序號不是連續(xù)完整的,則進入步驟(3); (2)利用尾幀的校驗字對接收到所有數(shù)據(jù)幀進行校驗,若校驗正確,則進入步驟(4),若校驗不正確則進入步驟(5); (3)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回如表4所示的部分重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為需重新發(fā)送的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6); 表4(部分重發(fā))
表4給出了在多幀接收中第二、三幀缺失或出現(xiàn)錯誤要求重新發(fā)送的情況。此時尾幀應(yīng)答幀數(shù)據(jù)域的第一個字節(jié)T仍為幀標(biāo)識,最后一個字節(jié)SUM仍為校驗字,中間字節(jié)為錯誤幀序號。
(4)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回如表5所示的全部正確的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二個字節(jié)SUM為本幀的校驗字,進入第七步; 表5(全部正確)
表5給出了在多幀全部正確接收時的尾幀應(yīng)答幀數(shù)據(jù)格式。與頭幀應(yīng)答幀類似,有效數(shù)據(jù)場中的T為幀標(biāo)識,SUM為異或和校驗碼,且T=SUM。
(5)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回如表6所示的全部重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為全部的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6); 表6(全部重發(fā))
如果接收方接收到所有4幀數(shù)據(jù),但有效數(shù)據(jù)異或和(包括T、W0~W21在內(nèi)的所有字節(jié))與接收到的SUM不相等,則認(rèn)為校驗錯誤,要求發(fā)送方重新發(fā)送所有數(shù)據(jù)幀,尾幀應(yīng)答幀如表6所示。發(fā)送方接收到該幀后將重新發(fā)送整個多幀。
表7給出了重發(fā)的數(shù)據(jù)幀格式。重新發(fā)送仍保持原來多幀中的相同格式,這樣做是為了使得接收方可快速有效地捕獲數(shù)據(jù),并快速地將其存入多幀接收緩沖區(qū)中。
表7(部分多幀重新發(fā)送數(shù)據(jù)幀)
(6)數(shù)據(jù)接收方根據(jù)數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,向數(shù)據(jù)接收方發(fā)送所需重新發(fā)送的數(shù)據(jù)幀,回到步驟(1)。
數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為部分重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所需數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過5次,重新發(fā)送5次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為全部重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所有數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過3次,重新發(fā)送3次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
六、多幀遴選 在數(shù)據(jù)接收方接受多幀數(shù)據(jù)時,接受到多幀數(shù)據(jù)以外的數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀仲裁場的幀優(yōu)先級確定接收的順序,優(yōu)先級高的先接收。
在多幀傳送過程中,有可能被插入其它單幀或多幀,如重要的控制信息。為簡化處理,這里采取舍棄低優(yōu)先級幀的策略。如果被插入的幀為單幀,且優(yōu)先級高于本多幀,那么將舍棄多幀,轉(zhuǎn)而處理高優(yōu)先級單幀。如果被插入的幀為多幀,且優(yōu)先級高于正在傳送的多幀,那么將舍棄正在傳送的多幀,接收高優(yōu)先級多幀。在高優(yōu)先級數(shù)據(jù)接收完畢后,接收低優(yōu)先級幀。低優(yōu)先級幀的發(fā)送方得不到任何回應(yīng),將重發(fā)多幀,重發(fā)三次以上停止發(fā)送,接收方只要有一次完整接收到多幀并做出正確響應(yīng),發(fā)送方即不再重發(fā)。
七、多幀數(shù)據(jù)傳輸完畢。
本發(fā)明未詳細說明部分屬本領(lǐng)域技術(shù)人員公知常識。
權(quán)利要求
1.一種CAN總線數(shù)據(jù)傳輸方法,其特征在于通過以下步驟實現(xiàn)
第一步,數(shù)據(jù)發(fā)送方將要傳輸?shù)拇髷?shù)據(jù)塊按照特定的幀格式分成若干個數(shù)據(jù)幀的多幀形式,每一幀數(shù)據(jù)包括仲裁場、控制場和有效數(shù)據(jù)場,其中仲裁場的ID10、ID9位為幀優(yōu)先級、ID8~ID3位為幀順序控制域,用來填寫幀序號,將若干個數(shù)據(jù)幀的第一幀即頭幀和最后一幀即尾幀的幀優(yōu)先級定為0,其他數(shù)據(jù)幀的優(yōu)先級定為1,頭幀的幀序號為0,其余數(shù)據(jù)幀的幀序號按1、2、3...N的順序編號,N為大數(shù)據(jù)塊分成的數(shù)據(jù)幀的幀總數(shù),頭幀的有效數(shù)據(jù)場第一位數(shù)據(jù)字節(jié)T為幀標(biāo)識,第二個數(shù)據(jù)字節(jié)L為幀總數(shù),即N的數(shù)值,尾幀的有效數(shù)據(jù)場的最后一個字節(jié)SUM為校驗字,頭幀、尾幀剩余有效數(shù)據(jù)場及其余的數(shù)據(jù)幀的有效數(shù)據(jù)場的字節(jié)為要傳輸?shù)挠行?shù)據(jù);
第二步,數(shù)據(jù)發(fā)送方將頭幀發(fā)送到數(shù)據(jù)接收方;
第三步,數(shù)據(jù)接收方接到頭幀后,向數(shù)據(jù)發(fā)送方返回頭幀應(yīng)答數(shù)據(jù)幀,頭幀應(yīng)答數(shù)據(jù)幀格式為有效數(shù)據(jù)場第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二字節(jié)為頭幀接收狀態(tài),第三個字節(jié)SUM為本幀的校驗字,若數(shù)據(jù)接收方向數(shù)據(jù)發(fā)送方返回的頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為0表示頭幀正確接收,進入第四步,若頭幀應(yīng)答數(shù)據(jù)幀有效數(shù)據(jù)場第二字節(jié)為1表示頭幀未正確接收,需要重新發(fā)送,則返回第二步,若數(shù)據(jù)發(fā)送方在10ms內(nèi)未收到頭幀應(yīng)答數(shù)據(jù)幀,則返回第二步;
第四步,數(shù)據(jù)發(fā)送方繼續(xù)向數(shù)據(jù)接收方發(fā)送其余的數(shù)據(jù)幀,直到尾幀;
第五步,數(shù)據(jù)接收方接收完所有的數(shù)據(jù)幀,根據(jù)檢查所有數(shù)據(jù)幀的結(jié)果向數(shù)據(jù)發(fā)送方返回尾幀應(yīng)答數(shù)據(jù)幀,若數(shù)據(jù)發(fā)送方10ms未接到數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,則回到第二步;
(1)數(shù)據(jù)接收方檢查所有數(shù)據(jù)幀的幀順序控制域,若數(shù)據(jù)幀的順序號連續(xù)完整,進入步驟(2),若數(shù)據(jù)幀的順序號不是連續(xù)完整的,則進入步驟(3);
(2)利用尾幀的校驗字對接收到所有數(shù)據(jù)幀進行校驗,若校驗正確,則進入步驟(4),若校驗不正確則進入步驟(5);
(3)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回部分重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為需重新發(fā)送的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6);
(4)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回全部正確的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,第二個字節(jié)SUM為本幀的校驗字,進入第七步;
(5)數(shù)據(jù)接收方向數(shù)據(jù)接收方返回全部重發(fā)的尾幀應(yīng)答數(shù)據(jù)幀,數(shù)據(jù)幀的格式為有效數(shù)據(jù)場的第一字節(jié)T為應(yīng)答幀的幀標(biāo)識,中間的字節(jié)為全部的數(shù)據(jù)幀的幀序號,第后一個字節(jié)SUM為本幀的校驗字,進入步驟(6);
(6)數(shù)據(jù)接收方根據(jù)數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,向數(shù)據(jù)接收方發(fā)送所需重新發(fā)送的數(shù)據(jù)幀,回到步驟(1);
第六步,在數(shù)據(jù)接收方接受多幀數(shù)據(jù)時,接受到多幀數(shù)據(jù)以外的數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀仲裁場的幀優(yōu)先級確定接收的順序,優(yōu)先級高的先接收;
第七步,多幀數(shù)據(jù)傳輸完畢。
2.根據(jù)權(quán)利要求1所述的一種CAN總線數(shù)據(jù)傳輸方法,其特征在于所述第三步中若數(shù)據(jù)發(fā)送方在10ms內(nèi)未收到頭幀應(yīng)答數(shù)據(jù)幀,回到第二步重新發(fā)送頭幀的次數(shù)最多不超過5次,重新發(fā)送5次后仍未收到頭幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
3.根據(jù)權(quán)利要求1所述的一種CAN總線數(shù)據(jù)傳輸方法,其特征在于所述第五步若數(shù)據(jù)發(fā)送方在10ms內(nèi)未接到數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀,則回到第二步重新發(fā)送,重新發(fā)送的次數(shù)不超過3次,重新發(fā)送3次后仍未收到尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
4.根據(jù)權(quán)利要求1所述的一種CAN總線數(shù)據(jù)傳輸方法,其特征在于所述第五步步驟(6)中,數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為部分重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所需數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過5次,重新發(fā)送5次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
5.根據(jù)權(quán)利要求1所述的一種CAN總線數(shù)據(jù)傳輸方法,其特征在于所述第五步步驟(6)中,數(shù)據(jù)接收方返回的尾幀應(yīng)答數(shù)據(jù)幀為全部重發(fā),數(shù)據(jù)發(fā)送方重新發(fā)送所有數(shù)據(jù)幀,重新發(fā)送的次數(shù)最多不超過3次,重新發(fā)送3次后仍未收到全部正確的尾幀應(yīng)答數(shù)據(jù)幀,則停止發(fā)送,多幀數(shù)據(jù)傳輸結(jié)束。
全文摘要
一種CAN總線數(shù)據(jù)傳輸方法,采用動態(tài)改變幀優(yōu)先級、幀順序控制、多幀應(yīng)答機制、多幀遴選策略等方法提高CAN總線大數(shù)據(jù)塊傳輸?shù)目煽啃?。本發(fā)明采用了動態(tài)改變幀優(yōu)先級的策略,多幀數(shù)據(jù)的第一幀和最后一幀的優(yōu)先級高于普通數(shù)據(jù),因此這兩幀將不受普通多幀數(shù)據(jù)的影響,保證了幀標(biāo)識、幀長度、幀校驗碼等重要控制信息的正常接收;本發(fā)明多幀應(yīng)答機制增加了頭幀應(yīng)答與尾幀應(yīng)答,保證了頭幀有效接收的同時,也杜絕了頭幀已錯誤但仍繼續(xù)發(fā)送數(shù)據(jù)的情況,有效節(jié)約了總線帶寬,提高了傳輸效率;本發(fā)明尾幀應(yīng)答中含有的錯誤幀序號也使得數(shù)據(jù)發(fā)送端盡快得知錯誤的具體幀號,從而僅重發(fā)錯誤的幀號,而不必全部重新發(fā)送,浪費總線帶寬;本發(fā)明大幅提高了CAN總線大數(shù)據(jù)塊收發(fā)的可靠性,并具有一定的糾檢錯功能,擴大了CAN總線的應(yīng)用層次,提高了網(wǎng)絡(luò)系統(tǒng)的健壯性。
文檔編號H04L12/40GK101764730SQ200910242900
公開日2010年6月30日 申請日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者李國軍, 謝松, 霍德聰 申請人:航天東方紅衛(wèi)星有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1