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

兼容can2.0b協(xié)議的can總線通信方法

文檔序號(hào):7808667閱讀:5491來源:國知局
兼容can2.0b協(xié)議的can總線通信方法
【專利摘要】本發(fā)明公開了一種兼容CAN2.0B協(xié)議的CAN總線通信方法,采用增強(qiáng)型CAN協(xié)議,即ECAN協(xié)議通信;其中,所述ECAN協(xié)議為對(duì)CAN2.0B協(xié)議重新定義后的協(xié)議,所述ECAN協(xié)議使得采用ECAN協(xié)議通信的節(jié)點(diǎn)比采用CAN2.0B協(xié)議通信的節(jié)點(diǎn)具有更高的速率實(shí)現(xiàn)節(jié)點(diǎn)之間的通信,同時(shí)使得所述采用ECAN協(xié)議通信的節(jié)點(diǎn)可與采用CAN2.0B協(xié)議通信的節(jié)點(diǎn)共存于同一個(gè)網(wǎng)絡(luò)。本發(fā)明使得在提高通信速率的同時(shí),與已有的符合CAN2.0B標(biāo)準(zhǔn)的節(jié)點(diǎn)可以共存于同一個(gè)網(wǎng)絡(luò),兼容性好。
【專利說明】兼容CAN2. OB協(xié)議的CAN總線通信方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及工業(yè)控制領(lǐng)域,特別涉及一種兼容CAN2. 0B協(xié)議的CAN總線通信方法。

【背景技術(shù)】
[0002] CAN總線是BOSCH公司為現(xiàn)代汽車電子設(shè)備互聯(lián)通信設(shè)計(jì)的一種多主機(jī)設(shè)備局 部網(wǎng),其卓越的性能已經(jīng)廣泛應(yīng)用于工業(yè)控制、交通工具、醫(yī)療儀器、數(shù)控機(jī)床等眾多場合。 BOSCH公司在1991年發(fā)布了包含具有11位ID的CAN2. 0A和29位ID的CAN2. 0B協(xié)議的 CAN2. 0規(guī)范,但隨著應(yīng)用需求的增加,其最高1Mbps通信速率已經(jīng)不能滿足應(yīng)用需求,因此 BOSCH在2012年發(fā)布了具有更高通信速率的CAN FD1. 0協(xié)議,該協(xié)議雖然能提升基于CAN FD協(xié)議節(jié)點(diǎn)之間的通信速率,但無法兼容現(xiàn)有的基于CAN2. 0B協(xié)議的節(jié)點(diǎn)。換言之,它只能 用于構(gòu)建全新的基于CAN FD協(xié)議的網(wǎng)絡(luò),因此亟需一種與CAN2. 0B節(jié)點(diǎn)兼容并達(dá)到較高通 信速率的技術(shù)手段。


【發(fā)明內(nèi)容】

[0003] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種兼容CAN2. 0B協(xié) 議的CAN總線通信方法,其在兼容現(xiàn)有CAN2. 0B協(xié)議的前提下,提高CAN總線網(wǎng)絡(luò)節(jié)點(diǎn)間的 通信速率。
[0004] 為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案是:一種兼容CAN2. 0B協(xié)議的CAN 總線通信方法,采用增強(qiáng)型CAN協(xié)議,S卩ECAN協(xié)議通信;其中,所述ECAN協(xié)議為對(duì)CAN2. 0B 協(xié)議重新定義后的協(xié)議,所述ECAN協(xié)議使得采用ECAN協(xié)議通信的節(jié)點(diǎn)比采用CAN2. 0協(xié)議 通信的節(jié)點(diǎn)具有更高的速率實(shí)現(xiàn)節(jié)點(diǎn)之間的通信,同時(shí)使得所述采用ECAN協(xié)議通信的節(jié) 點(diǎn)可與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)共存于同一個(gè)網(wǎng)絡(luò)。
[0005] 本發(fā)明保留B0SCH公司CAN 2. 0B協(xié)議標(biāo)準(zhǔn)的除物理層數(shù)據(jù)幀外的所有其它幀類 型、幀格式、應(yīng)答響應(yīng)機(jī)制、錯(cuò)誤判斷與錯(cuò)誤計(jì)數(shù)機(jī)制,以及其它涉及到的物理層通信的所 有方法,僅改變其物理層數(shù)據(jù)幀的幀格式并通過在CAN2. 0B幀的數(shù)據(jù)域和CRC域插入高速 比特的方式來實(shí)現(xiàn)通信速率的提升,同時(shí)實(shí)現(xiàn)與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)共存于同一 網(wǎng)絡(luò)。
[0006] 所述ECAN協(xié)議具體構(gòu)成為:在CAN2. 0B的基礎(chǔ)上,保留其各字段并重新定義其遠(yuǎn) 程幀指示位RTR、保留位R0和R1來區(qū)分CAN2. 0B數(shù)據(jù)幀和ECAN數(shù)據(jù)幀,ECAN協(xié)議仲裁域定 義及相應(yīng)的仲裁機(jī)制與CAN2. 0B協(xié)議相同;ECAN協(xié)議中在對(duì)應(yīng)于CAN2. 0B協(xié)議的數(shù)據(jù)域和 CRC域內(nèi)填充高速比特?cái)?shù)據(jù)實(shí)現(xiàn)傳輸速率的提升,所述高速比特?cái)?shù)據(jù)的填充符合CAN2. 0B 協(xié)議的比特填充規(guī)律。
[0007] 在本發(fā)明的一個(gè)實(shí)施例中,所述高速比特?cái)?shù)據(jù)的填充采用以下第一方式: 每3比特一組的最后一個(gè)"R"全部用于傳輸高速比特,若高速比特的傳輸速率為 CAN2. 0B比特傳輸速率的ΑΓ倍,則每3個(gè)CAN2. 0B比特可以傳輸見比特的用戶數(shù)據(jù),N為不 小于1的整數(shù)。
[0008] 在本發(fā)明的又一實(shí)施例中,所述高速比特?cái)?shù)據(jù)的填充采用以下第二方式:在第一 方式的基礎(chǔ)上,除第一組外,每組開始的"R"比特的同步段和相位段減去同步跳轉(zhuǎn)寬度SJW 的時(shí)間用于傳輸高速比特,增加傳輸速率。
[0009] 在本發(fā)明的另一實(shí)施例中,所述高速比特?cái)?shù)據(jù)的填充采用以下方式:在第二方式 的基礎(chǔ)上,增加每組的"D"比特的相位段減去同步跳轉(zhuǎn)寬度SJW的時(shí)間用于傳輸高速比特, 以進(jìn)一步增加傳輸速率。
[0010] 新的數(shù)據(jù)幀我們稱之為ECAN數(shù)據(jù)幀,符合新的幀及相應(yīng)的響應(yīng)機(jī)制的CAN節(jié)點(diǎn)被 稱之為ECAN節(jié)點(diǎn)。
[0011] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明中網(wǎng)絡(luò)節(jié)點(diǎn)間采用增強(qiáng)型CAN協(xié) 議,S卩ECAN協(xié)議通信,ECAN協(xié)議為對(duì)CAN2. 0B協(xié)議重新定義后的協(xié)議,所述ECAN協(xié)議使得 采用ECAN協(xié)議通信的節(jié)點(diǎn)比采用CAN2.0協(xié)議通信的節(jié)點(diǎn)具有更高的速率實(shí)現(xiàn)節(jié)點(diǎn)之間的 通信,同時(shí)使得所述采用ECAN協(xié)議通信的節(jié)點(diǎn)可與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)共存于 同一個(gè)網(wǎng)絡(luò)。因此,本發(fā)明在兼容現(xiàn)有采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)的前提下,提高了基于 CAN總線協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn)間的通信速率。
[0012]

【專利附圖】

【附圖說明】: 圖1是CAN 2. 0B與ECAN物理層數(shù)據(jù)幀結(jié)構(gòu)示意圖; 圖2是ECAN幀高速比特?cái)?shù)據(jù)填充三種方法示意圖。

【具體實(shí)施方式】
[0013] 下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。但不應(yīng)將此理解為本發(fā)明 上述主題的范圍僅限于以下的實(shí)施例,凡基于本
【發(fā)明內(nèi)容】
所實(shí)現(xiàn)的技術(shù)均屬于本發(fā)明的范 圍。
[0014] 本發(fā)明旨在兼容現(xiàn)有采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)的前提下,提高了基于CAN總 線協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn)間的通信速率。
[0015] 本發(fā)明實(shí)施例提供的兼容CAN2. 0B協(xié)議的CAN總線通信方法,采用增強(qiáng)型CAN協(xié) 議,即ECAN協(xié)議通信;其中,所述ECAN協(xié)議為對(duì)CAN2. 0B協(xié)議重新定義后的協(xié)議,所述ECAN 協(xié)議使得采用ECAN協(xié)議通信的節(jié)點(diǎn)比采用CAN2. 0協(xié)議通信的節(jié)點(diǎn)具有更高的速率實(shí)現(xiàn)節(jié) 點(diǎn)之間的通信,同時(shí)使得所述采用ECAN協(xié)議通信的節(jié)點(diǎn)可與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn) 共存于同一個(gè)網(wǎng)絡(luò)。
[0016] 為了描述方便,本發(fā)明中自定義增強(qiáng)數(shù)據(jù)巾貞為ECAN (Enhancement CAN)巾貞,本發(fā) 明中所涉及到的幀數(shù)據(jù)的描述(例如信號(hào)的狀態(tài)描述,隱性位Recessive-簡稱R,顯性位 Dominant-簡稱 D 等)與 CAN2.0 協(xié)議(Robert Bosch GmbH. CAN Specification, Version 2.0. 1991)的定義相同,換言之本發(fā)明僅對(duì)CAN2.0的數(shù)據(jù)幀進(jìn)行了重新定義,其它所有內(nèi) 容與BOSCH CAN2. 0規(guī)范相同。同時(shí),為了描述方便,本發(fā)明中"CAN2. 0"指BOSCH CAN2. 0A 和CAN2. 0B協(xié)議(Robert Bosch GmbH. CAN Specification, Version 2.0. 1991)所規(guī)定的 內(nèi)容,"CAN2. 0A"指基本型 BOSCH CAN2. 0A (11 位 ID),"CAN2. 0B"指擴(kuò)展型 BOSCH CAN2. 0B (29 位 ID)。
[0017] 本發(fā)明保留BOSCH公司CAN 2. 0B協(xié)議標(biāo)準(zhǔn)的除物理層數(shù)據(jù)幀外的所有其它幀類 型、幀格式、應(yīng)答響應(yīng)機(jī)制、錯(cuò)誤判斷與錯(cuò)誤計(jì)數(shù)機(jī)制,以及其它涉及到的物理層通信的所 有方法,僅改變其物理層數(shù)據(jù)幀的幀格式并通過在CAN2. OB幀的數(shù)據(jù)域和CRC域插入高速 比特的方式來實(shí)現(xiàn)通信速率的提升,同時(shí)實(shí)現(xiàn)與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)共存于同一 網(wǎng)絡(luò)。
[0018] 本發(fā)明在于重新設(shè)計(jì)CAN2. 0B協(xié)議的物理層數(shù)據(jù)幀,以比CAN2. 0B節(jié)點(diǎn)更高的速 率實(shí)現(xiàn)新節(jié)點(diǎn)(即采用ECAN協(xié)議的節(jié)點(diǎn))之間的通信,同時(shí)這些新節(jié)點(diǎn)可以與CAN2. 0B節(jié) 點(diǎn)共存于同一個(gè)網(wǎng)絡(luò),實(shí)現(xiàn)基于該數(shù)據(jù)幀格式的節(jié)點(diǎn)與現(xiàn)有CAN2. 0B節(jié)點(diǎn)的兼容,本發(fā)明 中將重新設(shè)計(jì)的CAN2. 0B協(xié)議的物理層數(shù)據(jù)幀結(jié)構(gòu)和機(jī)制稱為增強(qiáng)型CAN通信協(xié)議,簡稱 ECAN協(xié)議,符合新的ECAN幀結(jié)構(gòu)定義及相應(yīng)的響應(yīng)機(jī)制的CAN節(jié)點(diǎn)被稱之為ECAN節(jié)點(diǎn)。
[0019] 對(duì)于ECAN的幀結(jié)構(gòu),僅對(duì)CAN2. 0B的數(shù)據(jù)幀進(jìn)行重新設(shè)計(jì),遠(yuǎn)程幀、錯(cuò)誤幀、過載 幀以及幀間空隙均與CAN2. 0B標(biāo)準(zhǔn)相同。在增強(qiáng)型通信中,為了提高通信速率,在CAN2. 0B 的基礎(chǔ)上,保留其各字段并重新定義其遠(yuǎn)程幀指示位RTR、保留位R0和R1來區(qū)分CAN2. 0B 數(shù)據(jù)幀和ECAN數(shù)據(jù)幀,ECAN協(xié)議仲裁域定義及相應(yīng)的仲裁機(jī)制與CAN2. 0B協(xié)議相同;ECAN 協(xié)議中在對(duì)應(yīng)于CAN2. 0B協(xié)議的數(shù)據(jù)域和CRC域內(nèi)填充高速比特?cái)?shù)據(jù)實(shí)現(xiàn)傳輸速率的提 升,所述高速比特?cái)?shù)據(jù)的填充符合CAN2. 0B協(xié)議的比特填充規(guī)律。即在CAN2. 0B協(xié)議的數(shù) 據(jù)域和CRC域采用變速率方式實(shí)現(xiàn)在傳輸高速比特的同時(shí)保證CAN2. 0B節(jié)點(diǎn)的比特填充規(guī) 律(不能出現(xiàn)連續(xù)6個(gè)相同值)并使其能進(jìn)行正確的同步調(diào)整(即在ECAN幀結(jié)構(gòu)設(shè)計(jì)中保留 間隔足夠短的同步沿),以實(shí)現(xiàn)兼容性。
[0020] ECAN數(shù)據(jù)幀幀格式和CAN 2. 0B數(shù)據(jù)幀格式如圖1所示。對(duì)于CAN2. 0B幀,101是 其幀開始標(biāo)志位S0F,102是其仲裁域,103是遠(yuǎn)程幀指示位RTR,104、105和106分別為其控 制域中的保留位Rl、R0和DLC,107為數(shù)據(jù)域、108為CRC,109為CRC定界符,110和111分 別為應(yīng)答位ACK及ACK定界符,112為幀結(jié)尾EOF。
[0021] 對(duì)于ECAN巾貞,其仲裁域114與CAN2. 0B幀相同,僅將CAN2. 0B幀的RTR位定義為 115為保留位R1,并發(fā)送顯性位"D",因此對(duì)于ECAN幀無遠(yuǎn)程巾貞,在ECAN的使用中,遠(yuǎn)程幀 由CAN2. 0B的遠(yuǎn)程幀來完成。在控制域,CAN2. 0B的保留位R1和R0發(fā)送顯性位"D",對(duì)應(yīng) 至lj ECAN幀中定義為ECAN標(biāo)識(shí)位EDL (116)和保留位R0 (117),EDL發(fā)送隱性位"R",R0 發(fā)送顯性位"D",因此104和116是區(qū)別CAN2. 0B幀和ECAN幀的唯一標(biāo)識(shí)。106和118的 DLC字段給出了后續(xù)傳輸數(shù)據(jù)的長度,其具體數(shù)值符合CAN2. 0B的規(guī)定,CAN2. 0B節(jié)點(diǎn)按照 CAN2. 0B協(xié)議進(jìn)行數(shù)據(jù)長度解釋,而ECAN節(jié)點(diǎn)則對(duì)傳輸數(shù)據(jù)長度重新解釋(具體見后面解 釋部分),因此每一個(gè)DLC所規(guī)定的CAN2. 0B幀都對(duì)應(yīng)了一個(gè)ECAN幀。CAN2. 0B幀的107 和108的時(shí)間段對(duì)應(yīng)了 ECAN幀的119、120和121時(shí)間段,在ECAN幀的119、120時(shí)間段內(nèi) 傳輸高速填充的用戶數(shù)據(jù),從而來提高傳輸速率。其中121為ECAN幀的接收錯(cuò)誤標(biāo)識(shí),與 CAN2.0B的比特時(shí)間相同,在CAN2.0B幀中該比特為CRC的最后一個(gè)比特,在ECAN幀中由 接收端根據(jù)接收的ECAN數(shù)據(jù)CRC校驗(yàn)正確性來發(fā)送"D"或者"R"。122 (CRC定界符)、123 (ACK)、124 (ACK 定界符)、125 (EOF)與 CAN2.0B 幀的 109 (CRC 定界符)、110 (ACK)、111 (ACK定界符)、112 (EOF)--對(duì)應(yīng),并具有與CAN2. 0B相同的發(fā)送規(guī)則。
[0022] 與CAN2. 0B協(xié)議的數(shù)據(jù)幀對(duì)應(yīng),ECAN數(shù)據(jù)幀也包含了幀開始(S0F)、仲裁域(ID)、 控制域(CONTROL )、數(shù)據(jù)域(DATA )、循環(huán)冗余校驗(yàn)域(CRC )、應(yīng)答域(ACK )和幀結(jié)尾(EOF )。圖 1中深色部分為ECAN數(shù)據(jù)幀的變速率區(qū)間,它包含了 ECAN幀的數(shù)據(jù)域和CRC域,ECAN數(shù) 據(jù)幀的其它部分仍然按照CAN2. 0B的速率進(jìn)行傳輸;ECAN幀的S0F、ACK、ACK定界符和EOF 與CAN2. OB定義相同;在仲裁域?qū)CAN幀的RTR位修改為保留位R1,并傳輸顯性位"D" ; 在控制域?qū)AN2. 0B幀的保留位R1修改為EDL位,并傳輸隱性位"R",以此來區(qū)分CAN2. 0B 和ECAN巾貞,EDLC字段;CAN2. 0B和ECAN幀節(jié)點(diǎn)對(duì)DLC字段做不同的長度解釋。通過這種對(duì) CAN2. 0B幀結(jié)構(gòu)的修改,使得在CAN2. 0B的數(shù)據(jù)域和CRC域期間可以進(jìn)行高速比特?cái)?shù)據(jù)的傳 輸,同時(shí)在傳輸高速ECAN幀時(shí)網(wǎng)絡(luò)中的CAN2. 0B節(jié)點(diǎn)可以進(jìn)行正確的同步、比特填充錯(cuò)誤 檢測,以實(shí)現(xiàn)高速ECAN幀和CAN2. 0B幀共存于同一個(gè)網(wǎng)絡(luò),從而解決CAN2. 0B幀和CAN FD 幀的高速傳輸和兼容性問題。
[0023] 由于在變速率部分,網(wǎng)絡(luò)中已有的CAN2. 0B節(jié)點(diǎn)以較低的速率來采集高速率數(shù) 據(jù),可能出現(xiàn)隨機(jī)錯(cuò)誤。為了阻止網(wǎng)絡(luò)中已有CAN2. 0B節(jié)點(diǎn)在ECAN幀高速率部分發(fā)出比 特填充錯(cuò)誤,則在ECAN幀高速率部分對(duì)應(yīng)固定位置填充符合CAN2. 0B協(xié)議的額外數(shù)據(jù)。此 夕卜,為了讓CAN2. 0B節(jié)點(diǎn)不產(chǎn)生幀格式錯(cuò)誤,則已有的CAN2. 0B節(jié)點(diǎn)則需正確解析ECAN幀 的數(shù)據(jù)長度、CRC定界符、ACK域以及EOF。ECAN幀在這些有關(guān)幀數(shù)據(jù)格式的關(guān)鍵位置也與 CAN2. 0標(biāo)準(zhǔn)保持一致。因此,每一個(gè)ECAN幀的整個(gè)持續(xù)時(shí)間長度與CAN2. 0B定義的幀相 同,同時(shí)在ECAN幀中必須對(duì)DLC段定義的數(shù)據(jù)長度做重新解釋(具體見后面解釋部分)。
[0024] 下面結(jié)合圖1對(duì)ECAN幀結(jié)構(gòu)具體說明: 1) S0F :幀開始標(biāo)識(shí)與CAN2. 0B協(xié)議定義相同,工作在CAN2. 0B所使用的速率下,發(fā)送 端以從R (Reccessive,隱性位,邏輯"1")到"D"(Dominate,顯性位,或者邏輯"0")的跳 變作為幀開始,接收端在檢測到跳變時(shí)完成初始的比特硬同步。
[0025] 2)仲裁域:除CAN2. 0B數(shù)據(jù)幀的RTR位對(duì)應(yīng)了 ECAN的保留位R1外,仲裁域的其 它部分與ECAN數(shù)據(jù)幀與CAN2. 0B數(shù)據(jù)幀相同。在CAN2. 0B幀中RTR發(fā)送R時(shí)為遠(yuǎn)程幀,發(fā) 送D時(shí)為數(shù)據(jù)幀,對(duì)應(yīng)的ECAN幀中的R1發(fā)送D,因此限定了 ECAN幀無遠(yuǎn)程幀,要實(shí)現(xiàn)遠(yuǎn)程 幀的功能則需要利用CAN2. 0B的方式實(shí)現(xiàn)。
[0026] 仲裁域用于總線仲裁,ID的具體分配需要系統(tǒng)層面考慮,ID的分配與常規(guī)的 CAN2. 0B總線仲裁完全相同,有些ECAN幀可以比CAN2. 0B幀的優(yōu)先級(jí)高,而有些則可以較 CAN2. 0B幀的優(yōu)先級(jí)低。
[0027] 3)控制域:控制域中由6比特?cái)?shù)據(jù)組成,具體包括EDL :CAN2. 0B節(jié)點(diǎn)的保留位 R1對(duì)應(yīng)了 ECAN幀節(jié)點(diǎn)的EDL位,在CAN2. 0B幀中為D,在ECAN幀節(jié)點(diǎn)中為R,該位是區(qū)別 CAN2. 0B幀與ECAN幀的唯一標(biāo)識(shí)。
[0028] R0 :在CAN2. 0B的增強(qiáng)幀中為保留位,該位為D,ECAN幀節(jié)點(diǎn)利用EDL到R0的跳變 進(jìn)行一次硬同步,CAN2. 0B節(jié)點(diǎn)對(duì)該位不做判斷。
[0029] DLC:DLC為數(shù)據(jù)長度,共4位,在CAN2. 0B節(jié)點(diǎn)和ECAN節(jié)點(diǎn)中做不同解釋。其值 為0?8,在CAN2. 0B中表示傳輸?shù)淖止?jié)數(shù),大于8的值被解釋為8。對(duì)于ECAN幀,將對(duì)DLC 段做重新解釋,見后續(xù)內(nèi)容的ECAN幀數(shù)據(jù)長度解釋部分的內(nèi)容。
[0030] 數(shù)據(jù)域 對(duì)于CAN2. 0B幀,其長度為DLC規(guī)定的用戶傳輸字節(jié)數(shù),對(duì)于ECAN幀,其長度見后續(xù)內(nèi) 容的ECAN幀數(shù)據(jù)長度解釋部分的內(nèi)容。當(dāng)應(yīng)用層所傳輸比特?cái)?shù)小于ECAN所解釋得到的數(shù) 據(jù)長度時(shí),應(yīng)先在應(yīng)用層填充,填充值也納入CRC的計(jì)算。
[0031] 需要說明的是,為了每個(gè)ECAN幀與CAN2. 0B幀唯一對(duì)應(yīng),則應(yīng)在ECAN幀的固定位 置插入比特,以避免在ECAN幀的通信中CAN2. 0B產(chǎn)生比特填充錯(cuò)誤標(biāo)識(shí),見數(shù)據(jù)域與CRC 域的填充方法的描述。
[0032] CRC域:CRC域包含快速率和與CAN2. 0B相同速率的兩部分。
[0033] CRC序列:為了增加有效數(shù)據(jù)長度,CRC采用與CAN2.0B協(xié)議完全相同的CRC算法, 它以快速率傳輸;但在符合本發(fā)明所述的填充規(guī)則下,CRC也可以根據(jù)實(shí)際需求改變,利用 不同于CAN2. 0B協(xié)議的多項(xiàng)式來生成CRC序列,需要進(jìn)行CRC計(jì)算的數(shù)據(jù)CAN2. 0B規(guī)定一 致(即包括了 S0F、仲裁域、控制域和數(shù)據(jù)域)。
[0034] ECRC錯(cuò)誤:當(dāng)ECAN節(jié)點(diǎn)接收端CRC檢查未發(fā)現(xiàn)錯(cuò)誤,則該標(biāo)識(shí)在ECRC錯(cuò)誤指示期 間送R,當(dāng)接收端發(fā)現(xiàn)CRC不相符,則錯(cuò)誤被動(dòng)的ECAN幀接收節(jié)點(diǎn)發(fā)送R,錯(cuò)誤主動(dòng)的ECAN 幀接收節(jié)點(diǎn)發(fā)送D。通過這種方式,相當(dāng)于單獨(dú)進(jìn)行ECAN幀的錯(cuò)誤應(yīng)答和錯(cuò)誤標(biāo)識(shí)。設(shè)置 ECRC錯(cuò)誤應(yīng)答的原因在于,由于CAN2. 0B節(jié)點(diǎn)在采集ECAN幀時(shí)CRC出錯(cuò)概率大,若發(fā)現(xiàn) 錯(cuò)誤,按照CAN2. 0B協(xié)議,將在ACK定界符后給出錯(cuò)誤標(biāo)識(shí)。而ECAN節(jié)點(diǎn)發(fā)送端可能收到 ACK的應(yīng)答,但又收到錯(cuò)誤標(biāo)識(shí),無法判斷該錯(cuò)誤標(biāo)識(shí)是因?yàn)檎嬲母袷藉e(cuò)誤,還是來自于 CAN2. 0B節(jié)點(diǎn)。設(shè)置該位使得在CAN2. 0B應(yīng)答前就能確定數(shù)據(jù)的正確性。
[0035] CRC定界符:CRC定界符為一個(gè)CAN2.0B速率的比特持續(xù)時(shí)間,值為R,其定義與 CAN2. 0B -致。ECAN幀節(jié)點(diǎn)同CAN2. 0B節(jié)點(diǎn)一樣,也檢查諸如CRC定界符這類的形式錯(cuò)誤。
[0036] ACK slot :當(dāng)接收端接收完成,并CRC校驗(yàn)通過時(shí),將在該位置發(fā)送一個(gè)D。在ECAN 幀通信中,CAN2. 0B節(jié)點(diǎn)接收到CRC錯(cuò)誤概率很大,當(dāng)發(fā)現(xiàn)CRC錯(cuò)誤時(shí)發(fā)送一個(gè)R。而對(duì)應(yīng) 的ECAN節(jié)點(diǎn),只要CRC校驗(yàn)通過,則發(fā)送應(yīng)答D,否則發(fā)送R。
[0037] ACK定界符:其定義與CAN2. 0B協(xié)議中的一致。
[0038] EOF:與 CAN2. 0B 協(xié)議中的一致。
[0039] 本發(fā)明規(guī)定了一種增強(qiáng)型CAN總線數(shù)據(jù)幀格式,可以但不限于利用單片機(jī)、AISC、 FPGA等載體來實(shí)現(xiàn)。
[0040] 接下來說明上述對(duì)ECAN數(shù)據(jù)幀數(shù)據(jù)域與CRC域的高速比特?cái)?shù)據(jù)填充方法: 在傳輸ECAN幀的高速率部分時(shí),CAN2. 0B節(jié)點(diǎn)仍然監(jiān)聽總線狀態(tài),由于CAN2. 0B節(jié)點(diǎn)具 有自動(dòng)調(diào)整采樣點(diǎn)機(jī)制、高速數(shù)據(jù)的隨機(jī)性等因素,對(duì)于CAN2. 0B節(jié)點(diǎn)來講,它將在高速部 分采集到不確定值,可能破壞CAN2. 0B的填充規(guī)則。另一方面,在高速幀傳輸期間,CAN2. 0B 節(jié)點(diǎn)仍然在進(jìn)行比特同步等工作,特殊情況下的向同一個(gè)方向的重同步所帶來的誤差累積 也可能導(dǎo)致比特填充錯(cuò)誤。因此,位流的填充應(yīng)充分考慮這兩方面的因素,高速數(shù)據(jù)的傳輸 期間應(yīng)從協(xié)議上保證CAN2. 0B節(jié)點(diǎn)不產(chǎn)生錯(cuò)誤標(biāo)識(shí)以打斷高速數(shù)據(jù)的傳輸。
[0041] 此外,數(shù)據(jù)幀的幀長無論從CAN2. 0B節(jié)點(diǎn)和ECAN幀節(jié)點(diǎn)看來都應(yīng)該分別符合其協(xié) 議規(guī)定。由于CAN2. 0B節(jié)點(diǎn)已經(jīng)有相關(guān)協(xié)議規(guī)定其DLC域的意義,因此ECAN幀在此基礎(chǔ)上 進(jìn)行重新解釋,具體見后續(xù)內(nèi)容"ECAN幀對(duì)DLC字段的解釋"部分。CAN2. 0B節(jié)點(diǎn)的數(shù)據(jù)幀 和ECAN幀在時(shí)間上相等,每一個(gè)ECAN幀都對(duì)應(yīng)了一個(gè)CAN2. 0B幀。
[0042] 本發(fā)明的高速比特?cái)?shù)據(jù)填充方法,即ECAN幀的三種高速比特?cái)?shù)據(jù)填充方式如圖 2所示。在CAN2.0B幀的DLC字段之后、ECRC錯(cuò)誤比特之前用于傳輸高速的填充。一個(gè) CAN2. 0B幀比特時(shí)間包含了同步段SYN(201)、相位段1 (202)、相位段2 (203)。對(duì)于三種 填充方式,首先在"ECRC錯(cuò)誤"比特之前固定傳輸一個(gè)"R"和"D",然后從DLC之后到201之 前的數(shù)據(jù)按照3個(gè)CAN2. 0B比特一組,每組的值為"R"、"D"、"R"方式來排列數(shù)據(jù)。若DLC 規(guī)定的傳輸數(shù)據(jù)比特?cái)?shù)非3的整數(shù)倍,剩余一比特情況下201之前傳輸"R",剩余2比特情 況下201之前傳輸"R"和"D"。具體有3中不同的實(shí)現(xiàn)方式: 方式1,每3比特一組的最后一個(gè)"R"(207)全部用于傳輸高速比特,若高速比特的傳 輸速率為CAN2. 0B比特速率的JV倍,則每3個(gè)CAN2. 0B比特可以傳輸F比特的用戶數(shù)據(jù)。
[0043] 方式2,在方式1的基礎(chǔ)上,除第一組外,每組開始的"R"比特的同步段和相位段1 減去同步跳轉(zhuǎn)寬度SJW的時(shí)間用于傳輸高速比特,即增加208來插入高速比特。
[0044] 方式3,在方式2的基礎(chǔ)上,增加每組的"D"比特的相位段1減去同步跳轉(zhuǎn)寬度SJW 的時(shí)間來傳輸高速比特,即增加209的時(shí)間來傳輸高速比特,以進(jìn)一步增加傳輸速率。
[0045] 參看圖2,位置204及其它向下的箭頭為CAN2. 0B比特所設(shè)定的采樣點(diǎn)位置,在圖 2中,SJW與CAN2. 0B相位段2寬度相同,根據(jù)協(xié)議要求,SJW小于相位段2的寬度即可,ECAN 的每個(gè)高速填充比特具有與CAN2. 0B相同的同步段、相位段1和相位段2的定義。206和 211是方式1、方式2和方式3下都具有的兩個(gè)"R"到"D"的轉(zhuǎn)換沿,ECAN節(jié)點(diǎn)接收時(shí)在這 兩個(gè)沿需進(jìn)行硬同步,其它同步規(guī)則與CAN2. 0B定義相同。方式1、方式2和方式3的高速 比特?cái)?shù)據(jù)填充方式保證了 CAN2. 0B節(jié)點(diǎn)在ECAN幀發(fā)送期間可以進(jìn)行正確的同步調(diào)整、比特 填充錯(cuò)誤檢查,在ECAN節(jié)點(diǎn)接收ECAN幀時(shí)也按照CAN2. 0B的規(guī)則和傳輸速率進(jìn)行比特填 充檢測,而對(duì)于高速比特不再進(jìn)行比特填充錯(cuò)誤檢測,只進(jìn)行同步調(diào)整。
[0046] 高速比特?cái)?shù)據(jù)填充方式1、方式2和方式3僅給出了在本發(fā)明方案下的三種填充示 例,其它的在ECAN幀發(fā)送期間能避免CAN2. 0B節(jié)點(diǎn)填充和同步錯(cuò)誤的填充方式也屬于本發(fā) 明保護(hù)范圍。
[0047] 下面再對(duì)高速比特填充方法具體說明:填充后的幀格式應(yīng)能及時(shí)修正由于高速數(shù) 據(jù)的不確定性所帶來的錯(cuò)誤,以免錯(cuò)誤累積出現(xiàn)多采集或漏采集數(shù)據(jù)。其次,填充后幀格式 應(yīng)保證CAN2. 0B節(jié)點(diǎn)不連續(xù)采集到6個(gè)相同值。根據(jù)這兩方面因素可得到多種填充方案, 本發(fā)明給出如圖2所示的三種填充示例,其中SJW和SYN分別為CAN2. 0B節(jié)點(diǎn)的最大跳轉(zhuǎn) 寬度和同步段。
[0048] 方式1 :在CAN2. 0B幀結(jié)構(gòu)自DLC字段后,CRC定界符之前以CAN2. 0B的比特傳輸 速率的每一個(gè)R到D的變化之后插入高速數(shù)據(jù)(圖2中的深色填充部分),這種方式相當(dāng)于 將原有的CAN2. 0B幀分成了每三比特一組,每組的比特值為一個(gè)R、一個(gè)D,緊跟一個(gè)高速數(shù) 據(jù)傳輸間歇(寬度為一個(gè)CAN2. 0B比特時(shí)間);在ECRC比特之前,以CAN2. 0B速率傳輸一個(gè) R和一個(gè)D結(jié)束;若DLC字段所確定的CAN2. 0B傳輸比特?cái)?shù)目非3的整數(shù)倍,若最后一組只 有一個(gè)CAN2. 0B比特,則該組傳輸R,若最后一組剩余兩個(gè)CAN2. 0B比特,則該組先傳輸R再 傳輸D。
[0049] 方式2 :在方式1的基礎(chǔ)上再在CAN2. 0B幀同步段和傳播段1減去SJW后所剩下 的時(shí)間內(nèi)傳輸高速比特,使深色部分采樣點(diǎn)之后可能出現(xiàn)的錯(cuò)誤同步沿可以在下一個(gè)R到 D的沿得到糾正。
[0050] 方式3 :在方式2基礎(chǔ)上在CAN2. 0B傳輸D期間的傳播段減去SJW后剩下的時(shí)間 內(nèi)也傳輸高速比特;此外,考慮到每3個(gè)比特就有一個(gè)確定的R到D的沿,在符合CAN2. 0B 時(shí)鐘穩(wěn)定度要求的前提下,可將深色部分往相位段1和相位段2內(nèi)擴(kuò)散,以進(jìn)一步增加傳輸 速率。
[0051] 以上3種方式在ECRC錯(cuò)誤比特之前均插入1個(gè)標(biāo)準(zhǔn)CAN2. 0B幀的R和D,ECAN節(jié) 點(diǎn)在該沿進(jìn)行硬同步;類似地,DLC之后的第一個(gè)R到D的沿,ECAN節(jié)點(diǎn)也進(jìn)行硬同步。
[0052] ECAN幀中對(duì)DLC字段的解釋:令DLC的值為,它在CAN2. 0B節(jié)點(diǎn)中解釋為傳輸 數(shù)據(jù)的字節(jié)數(shù),允許的值為〇?8,超過8的值被認(rèn)為是8。由于ECAN幀與CAN2. 0B幀-- 對(duì)應(yīng),因此每一個(gè)分別對(duì)應(yīng)了一個(gè)ECAN幀的傳輸數(shù)據(jù)長度。令變速率部分的傳輸速率 為CAN2. 0B傳輸速率的F倍,它表明在一個(gè)CAN2. 0B比特傳輸間隙期間可以傳輸?shù)腅CAN幀 數(shù)據(jù)為F比特。
[0053] 對(duì)于本發(fā)明的基于對(duì)CAN2.0B數(shù)據(jù)域和CRC域進(jìn)行高速比特填充的方法,

【權(quán)利要求】
1. 一種兼容CAN2. OB協(xié)議的CAN總線通信方法,其特征在于,采用增強(qiáng)型CAN協(xié)議,即 ECAN協(xié)議通信;其中,所述ECAN協(xié)議為對(duì)CAN2. 0B協(xié)議重新定義后的協(xié)議,所述ECAN協(xié)議 使得采用ECAN協(xié)議通信的節(jié)點(diǎn)比采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)具有更高的速率實(shí)現(xiàn)節(jié)點(diǎn) 之間的通信,同時(shí)使得所述采用ECAN協(xié)議通信的節(jié)點(diǎn)可與采用CAN2. 0B協(xié)議通信的節(jié)點(diǎn)共 存于同一個(gè)網(wǎng)絡(luò)。
2. 根據(jù)權(quán)利要求1所述的兼容CAN2. 0B協(xié)議的CAN總線通信方法,其特征在于,所述 ECAN協(xié)議具體構(gòu)成為: 在CAN2. 0B的基礎(chǔ)上,保留其各字段并重新定義其遠(yuǎn)程幀指示位RTR、保留位R0和R1 來區(qū)分CAN2. 0B數(shù)據(jù)幀和ECAN數(shù)據(jù)幀,ECAN協(xié)議仲裁域定義及相應(yīng)的仲裁機(jī)制與CAN2. 0B 協(xié)議相同;ECAN協(xié)議中在對(duì)應(yīng)于CAN2. 0B協(xié)議的數(shù)據(jù)域和CRC域內(nèi)填充高速比特?cái)?shù)據(jù)實(shí)現(xiàn) 傳輸速率的提升,所述高速比特?cái)?shù)據(jù)的填充符合CAN2. 0B協(xié)議的比特填充規(guī)律。
3. 根據(jù)權(quán)利要求1或2所述的兼容CAN2. 0B協(xié)議的CAN總線通信方法,其特征在于,所 述高速比特?cái)?shù)據(jù)的填充采用以下第一方式: 每3比特一組的最后一個(gè)"R"全部用于傳輸高速比特,若高速比特的傳輸速率為 CAN2. 0B比特傳輸速率的F倍,則每3個(gè)CAN2. 0B比特可以傳輸F比特的用戶數(shù)據(jù),F(xiàn)為 不小于1的整數(shù)。
4. 根據(jù)權(quán)利要求3所述的兼容CAN2. 0B協(xié)議的CAN總線通信方法,其特征在于,所述高 速比特?cái)?shù)據(jù)的填充采用以下第二方式: 在第一方式的基礎(chǔ)上,除第一組外,每組開始的"R"比特的同步段和相位段1減去同步 跳轉(zhuǎn)寬度SJW的時(shí)間用于傳輸高速比特。
5. 根據(jù)權(quán)利要求4所述的兼容CAN2. 0B協(xié)議的CAN總線通信方法,其特征在于,所述高 速比特?cái)?shù)據(jù)的填充采用以下方式: 在第二方式的基礎(chǔ)上,增加每組的"D"比特的相位段1減去同步跳轉(zhuǎn)寬度SJW的時(shí)間 用于傳輸高速比特,以進(jìn)一步增加傳輸速率。
【文檔編號(hào)】H04L12/40GK104092515SQ201410329183
【公開日】2014年10月8日 申請(qǐng)日期:2014年7月11日 優(yōu)先權(quán)日:2014年7月11日
【發(fā)明者】馬上, 胡劍浩, 王劍 申請(qǐng)人:電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
隆子县| 延安市| 玉田县| 长岭县| 湖南省| 长阳| 石阡县| 临泽县| 大姚县| 堆龙德庆县| 温泉县| 临澧县| 陇西县| 麻栗坡县| 炉霍县| 嘉鱼县| 萍乡市| 天全县| 龙海市| 万荣县| 陕西省| 扎囊县| 开江县| 宜城市| 蓬莱市| 西乌| 聊城市| 嘉义县| 新乡县| 常宁市| 威宁| 老河口市| 烟台市| 阿巴嘎旗| 泽库县| 运城市| 莒南县| 新龙县| 绥芬河市| 文昌市| 盐源县|