两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

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

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


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



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

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