一種控制器局域網(wǎng)總線的提速方法
【專利摘要】本發(fā)明公開了一種控制器局域網(wǎng)總線的提速方法,在原CAN2.0協(xié)議數(shù)據(jù)幀結(jié)構(gòu)中的保留比特標(biāo)記新的CAN?HS數(shù)據(jù)幀,同時將標(biāo)準(zhǔn)比特劃分為N個等份,以更高比特速率進行傳輸;而N1個CAN?HS比特的前L1≥1個CAN?HS比特和后L2≥0個CAN?HS比特用于傳輸CAN?HS數(shù)據(jù)(稱為CAN?HS數(shù)據(jù)比特),因此每單位CAN2.0比特可最大攜帶L1+L2個CAN?HS數(shù)據(jù)比特,從而提高了傳輸效率。并且第1個CAN?HS比特用于進行同步/再同步觸發(fā),其次在采樣點附近的N1≥2個CANHS比特傳輸相同的值供CAN2.0控制器采樣取值,保證CAN2.0控制器不會出現(xiàn)采樣錯誤,最后,校驗字段的填充區(qū)CAN?HS比特取值依據(jù)CAN2.0協(xié)議計算校驗序列并填充,這樣CAN2.0控制器也不會出現(xiàn)校驗錯誤計數(shù)。
【專利說明】一種控制器局域網(wǎng)總線的提速方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于控制器局域網(wǎng)【技術(shù)領(lǐng)域】,更為具體地講,涉及一種控制器局域網(wǎng)總線的提速方法。
【背景技術(shù)】
[0002]控制器局域網(wǎng)(Controller Area Network,簡稱CAN)總線是一種現(xiàn)場控制總線,網(wǎng)絡(luò)中的各節(jié)點對通信數(shù)據(jù)進行編碼而不是對站地址編碼,且對總線訪問優(yōu)先權(quán)通過數(shù)據(jù)報文優(yōu)先權(quán)(ID)的逐位仲裁方式競爭進行,可使不同的節(jié)點同時接收到相同的數(shù)據(jù)。這些特點使得CAN總線構(gòu)成的網(wǎng)絡(luò)各節(jié)點之間的數(shù)據(jù)通信實時性強,并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性,因而被廣泛用于需要分布式和實時控制的場合,如汽車傳感與控制、醫(yī)療器械儀器互聯(lián)等。
[0003]但是當(dāng)前CAN總線2.0版本的最高傳輸速率為IMbit/s,而實際使用速率最高為500kbit/s。隨著電子控制單元(Electronic Control Unit,簡稱EQJ)的大量增加,使總線負(fù)載率急劇增大以致造成網(wǎng)絡(luò)擁堵,影響信息傳輸?shù)目煽啃院蛯崟r性。研究表明,CAN總線負(fù)載率在30%左右時網(wǎng)絡(luò)系統(tǒng)的性能相對較好,否則會增大報文延遲、降低系統(tǒng)的擴展性,尤其對于實時性要求較高的安全系統(tǒng),高負(fù)載率甚至可能影響汽車行車安全,因此當(dāng)前CAN總線2.0已不能滿足日益增長的汽車網(wǎng)絡(luò)需求。
[0004]為解決帶寬與可靠性的需求,人們提出了使用新型總線協(xié)議,如FlexRay總線、MOST總線等來替代CAN總線,但這意味著需要重新開發(fā)控制器軟硬件、重新設(shè)計車載網(wǎng)絡(luò)系統(tǒng)等,從而增加汽車制造商的開發(fā)成本,降低其市場競爭力,因此在目前車載網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ)上對CAN總線進行改進顯得尤其迫切。
[0005]Bosch公司于2011發(fā)布的CAN替代總線一CAN FD,通過利用CAN總線的保留位進行判斷以及區(qū)分不同的幀格式,具有與CAN總線相似的控制器接口,這種相似性使ECU供應(yīng)商不需要對ECU的軟件部分做大規(guī)模修改,降低了開發(fā)難度和成本。CAN FD的高速率傳輸主要體現(xiàn)在通過雙速率傳輸機制,即在仲裁期仍沿用CAN2.0協(xié)議的標(biāo)準(zhǔn)速率(Nominal BitRate)進行傳輸,但在數(shù)據(jù)字段啟用第二速率(Data Bit Rate,比Nominal Bit Rate高)進行傳輸,從而一方面可以更高速率傳送,另一方面在數(shù)據(jù)字段能容納更長的數(shù)據(jù)提高有效吞吐率。
[0006]但是CAN FD數(shù)據(jù)幀中,包括DLC字段、數(shù)據(jù)字段、校驗字段的數(shù)據(jù)都采用第二速率傳送,因而CAN2.0控制器僅能通過仲裁期的控制字知道不是其能處理的數(shù)據(jù)幀,但仍會進行比特同步、比特填充規(guī)則、CRC校驗的檢查。因而當(dāng)CAN2.0控制器和CAN FD控制器共處于同一網(wǎng)絡(luò)時,CAN2.0控制器會因CANFD幀增加不必要的錯誤計數(shù)甚至進入總線關(guān)閉狀態(tài)。因此CAN2.0控制器是不能和CAN FD控制器直接共存的,這也正是CAN FD規(guī)范所指出的:“CAN FD控制器僅當(dāng)使用CAN2.0標(biāo)準(zhǔn)幀時能才能和CAN2.0控制器互通;CAN FD協(xié)議升級只能漸進進行,比如通過軟件下載的方式實施,且實施時不支持CAN FD的控制器必須掛起(StandBy) ”。[0007]但實際應(yīng)用中,有許多場合需要在不停用CAN2.0控制器的情況下引入兼容CAN2.0協(xié)議的高速CAN機制,如某些基于CAN的監(jiān)控場合,僅需要升級“上位機” CAN節(jié)點控制器(數(shù)量較少)即可在已經(jīng)存在大量CAN2.0控制器的網(wǎng)絡(luò)中加入新型CAN節(jié)點,從而極大地降低成本同時加快部署。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于克服現(xiàn)有高速控制器局域網(wǎng)總線的不足,提供一種控制器局域網(wǎng)總線的提速方法,以兼容現(xiàn)有的CAN2.0協(xié)議并在高速傳輸模式下允許與CAN2.0控制器共存一個網(wǎng)絡(luò)中而不會增加CAN2.0控制器的錯誤計數(shù)。
[0009]為實現(xiàn)上述發(fā)明目的,本發(fā)明控制器局域網(wǎng)總線的提速方法,其特征在于,包括以下步驟:
[0010]CAN控制器在發(fā)送遠程幀、錯誤幀、超載幀時依照CAN2.0協(xié)議的規(guī)范執(zhí)行;當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度小于等于8個字節(jié)時,CAN控制器以CAN2.0模式工作,即按照CAN2.0協(xié)議規(guī)范發(fā)送數(shù)據(jù)幀,而當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度大于8個字節(jié)時,CAN控制器以CAN HS模式工作即發(fā)送CAN HS數(shù)據(jù)幀;
[0011]其中,CAN HS數(shù)據(jù)幀中除數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段外,其他幀格式與CAN2.0數(shù)據(jù)幀格式相同,并做如下修改:
[0012](I) jfCAN HS數(shù)據(jù)幀中的保留位作為CAN HS標(biāo)識位,并通過置為“隱性”表示CANHS數(shù)據(jù)幀;
[0013](2)、將CAN HS數(shù)據(jù)幀中數(shù)據(jù)期與CAN2.0數(shù)據(jù)幀數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段中每個標(biāo)準(zhǔn)比特的對應(yīng)位置均劃分為N個等份,每個等份稱為一個CAN HS比特;對于每個標(biāo)準(zhǔn)比特對應(yīng)位置劃分為四個部分即跳變沿位、數(shù)據(jù)段1、填充區(qū)、數(shù)據(jù)段2:第I個CAN HS比特構(gòu)成跳變沿位,第I個CAN HS比特稱為跳變沿比特,緊接著L1 > I個CAN HS比特構(gòu)成數(shù)據(jù)段I,數(shù)據(jù)段I中的CAN HS比特為CANHS數(shù)據(jù)比特,再緊接著N1 > 2個CAN HS比特構(gòu)成填充區(qū),填充區(qū)中的CAN HS比特為填充區(qū)比特,最后為L2≥O個CAN HS比特構(gòu)成數(shù)據(jù)段2,數(shù)據(jù)段2中的CAN HS比特為CAN HS數(shù)據(jù)比特;
[0014]L1, N1, L2 的取值滿足(l+Li+WN 與(丨+ 7;,,,,+差值最小,其中,N = 1+Li+Ni+h,Tprop, FfI? Τνι為CAN2.0數(shù)據(jù)幀數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段中每個標(biāo)準(zhǔn)比特的傳播段(PR0P_SEG)、相段1(PHASE_SEG1)、相段2(PHASE_SEG2)相對于同步段(SYNC_REG)的時長倍數(shù);
[0015](3)、填充規(guī)則
[0016]3.1)、第I個跳變沿比特S的取值與數(shù)據(jù)長度字段即DLC的最后I位取值相異,后續(xù)每個跳變沿比特S取值與上一個標(biāo)準(zhǔn)比特對應(yīng)位置最后一個CAN HS比特相異值;
[0017]3.2)、填充區(qū)的所有CAN HS比特的值相同,其中,數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與之前所有填充區(qū)的取值滿足CAN2.0協(xié)議填充規(guī)則,即連續(xù)5次相同取值后取前一個填充區(qū)取值的相異值,校驗字段的填充區(qū)CAN HS比特取值根據(jù)數(shù)據(jù)字段的填充區(qū)CAN HS比特取值按照CAN2.0協(xié)議計算出校驗序列并進行填充;
[0018]3.3)、數(shù)據(jù)段1、2的CAN HS比特用數(shù)據(jù)進行填充。
[0019]本發(fā)明的發(fā)明目的是這樣實現(xiàn)的:[0020]本發(fā)明控制器局域網(wǎng)總線的提速方法,數(shù)據(jù)幀攜帶數(shù)據(jù)的長度大于8個字節(jié)時,工作在CAN HS模式,利用原CAN2.0協(xié)議數(shù)據(jù)幀結(jié)構(gòu)中的保留比特,由原來的“顯性”改為“隱性”來標(biāo)記新的CAN HS數(shù)據(jù)幀,同時將原CAN2.0協(xié)議數(shù)據(jù)幀數(shù)據(jù)傳送部分包括CAN2.0幀中的數(shù)據(jù)字段和CRC校驗字段即數(shù)據(jù)期的標(biāo)準(zhǔn)比特劃分為N個等份,每個等份稱為CANHS比特,這N個CAN HS比特稱為HS組,即更高的比特速率進行傳輸。而N1個CAN HS比特的前L1≥I個CAN HS比特和后L2≥O個CAN HS比特用于傳輸CAN HS數(shù)據(jù)(稱為CAN HS數(shù)據(jù)比特),因此每單位CAN2.ο比特可最大攜帶LJL2Acan Hs數(shù)據(jù)比特,從而提高了傳輸效率。但同時保證為CAN2.0控制器提供可預(yù)知的數(shù)據(jù)流進行接收的填充規(guī)則檢查和CRC校驗檢查,使得CAN2.0控制器不會新增錯誤計數(shù),在每個CAN2.0標(biāo)準(zhǔn)比特中劃分出的第I個CAN HS比特用于進行同步/再同步觸發(fā)以確保CAN2.0控制器的采樣點相位不變,其次在采樣點附近的N1≥2個CAN HS比特傳輸相同的值供CAN2.0控制器采樣取值,保證CAN2.0控制器不會出現(xiàn)采樣錯誤,最后,數(shù)據(jù)字段填充區(qū)CAN HS比特取值按照CAN2.0協(xié)議填充、校驗字段的填充區(qū)CAN HS比特取值依據(jù)CAN2.0協(xié)議計算校驗序列并填充,這樣CAN2.0控制器也不會出現(xiàn)校驗錯誤計數(shù)。這樣在高速傳輸模式下允許與CAN2.0控制器共存一個網(wǎng)絡(luò)中而不會增加CAN2.0控制器的校驗錯誤計數(shù)。
【專利附圖】
【附圖說明】
[0021]圖1是CAN總線網(wǎng)絡(luò)拓?fù)涫疽鈭D;
[0022]圖2是CAN總線控制器邏輯結(jié)構(gòu)圖; [0023]圖3是CAN2.0、CAN FD及CAN HS數(shù)據(jù)幀結(jié)構(gòu)對照示意圖;
[0024]圖4是CAN HS數(shù)據(jù)幀的雙速率轉(zhuǎn)換過程示意圖;
[0025]圖5是CAN2.0的比特和CAN HS的比特細微特征的對照示意圖;
[0026]圖6是CAN2.0、CAN HS、CAN FD數(shù)據(jù)幀中DLC編碼對照;
[0027]圖7是典型CAN總線網(wǎng)絡(luò)的節(jié)點發(fā)送和接收流程示意圖。
【具體實施方式】
[0028]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計的詳細描述也許會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。
[0029]在本發(fā)明中,同一總線局域網(wǎng)中可以同時存在CAN2.0控制器和采用本發(fā)明的CAN控制器,稱為CAN HS控制器,這些控制器分別連接節(jié)點和CAN收發(fā)器,CAN收發(fā)器是連接CAN控制器和CAN總線的中介,它完成CAN總線電平到控制器電平的相互轉(zhuǎn)換。處于同一總線局域網(wǎng)中的CAN控制器都支持CAN2.0協(xié)議的所有功能,它們用相同比特速率R進行傳輸,并稱該速率為標(biāo)準(zhǔn)速率。CAN HS和CAN2.0控制器均能發(fā)送數(shù)據(jù)幀、遠程幀、錯誤幀、超載幀
坐寸ο
[0030]在本發(fā)明中,CAN HS控制器在發(fā)送數(shù)據(jù)幀時可以工作于兩種模式:CAN2.0模式和CAN HS模式,在發(fā)送遠程幀、錯誤幀、超載幀時的格式速率等依照CAN2.0協(xié)議的規(guī)范執(zhí)行。當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度小于等于8個字節(jié)時,CANHS控制器以CAN2.0模式工作,即按照CAN2.0協(xié)議規(guī)范發(fā)送數(shù)據(jù)幀,而當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度大于8個字節(jié)時,CAN HS控制器以CAN HS模式工作,即發(fā)送CAN HS數(shù)據(jù)幀。
[0031]CAN HS數(shù)據(jù)幀以CAN2.0數(shù)據(jù)幀格式為基礎(chǔ)進行改進而成,因此結(jié)構(gòu)基本相同,在本實施例中,也分為基本數(shù)據(jù)幀和擴展數(shù)據(jù)幀兩種。
[0032]CAN2.0基本數(shù)據(jù)幀包括I位開始位(SOF)、11位基本標(biāo)識字段(BID)、I位遠程傳輸請求(RTR,“顯性” )、I位標(biāo)識擴展標(biāo)志(IDE,“顯性” )、I位保留位(rO為“顯性”)、4位數(shù)據(jù)長度字段(DLC)、L位CAN2.0位寬的數(shù)據(jù)字段(Data)、15位CAN2.0位寬的CRC校驗字段、I位CRC校驗界定符、2位寬的應(yīng)答區(qū)、7位幀結(jié)束符(EOF,全部“隱性”);CAN2.0擴展數(shù)據(jù)幀包括I位開始位(SOF)、11位基本標(biāo)識字段(BID)、I位遠程傳輸請求替換位(SRR,“隱性”)、I位標(biāo)識擴展標(biāo)志(IDE,“隱性”)、18位擴展標(biāo)識(EID)、I位遠程傳輸請求(RTR,“顯性”)、2位保留位(r0、rl,均為“顯性”)、4位數(shù)據(jù)長度字段(DLC) 4位CAN2.0位寬的數(shù)據(jù)字段(Data)、15位CAN2.0位寬的CRC校驗字段、I位CRC校驗界定符、2位寬的應(yīng)答區(qū)、7位幀結(jié)束符(E0F,全部“隱性”)。
[0033]在本實施例中,CAN HS基本數(shù)據(jù)幀是將CAN2.0基本數(shù)據(jù)幀中的保留位r0改為CANHS標(biāo)識位(HS),并通過置為“隱性”表示CAN HS基本數(shù)據(jù)幀;CANHS擴展數(shù)據(jù)幀將CAN2.0擴展數(shù)據(jù)幀中的保留位r0、rl中一位或rO、rl同時改為CAN HS標(biāo)識位(HS),并用“隱性”值結(jié)合IDE位的“隱性”值來表示CAN HS擴展數(shù)據(jù)幀。
[0034]這樣帶CAN HS標(biāo)識位的基本數(shù)據(jù)幀包括I位開始位(SOF)、11位基本標(biāo)識字段(BID)、I位遠程傳輸請求(RTR,“顯性” )、I位標(biāo)識擴展標(biāo)志(IDE,“顯性”)、I位雙速率傳輸標(biāo)識(HS,“隱性”)、4位數(shù)據(jù)長度字段(DLC) ,64 ^ L ^ 76位CAN2.0位寬的數(shù)據(jù)字段(DATA)、15位CAN2.0位寬的CRC校驗字段、I位CRC校驗界定符、2位寬的應(yīng)答區(qū)、7位幀結(jié)束符(E0F,全部“隱性”);擴展數(shù)據(jù)幀,包括I位開始位(SOF)Ul位基本標(biāo)識字段(BID)、I位遠程傳輸請求替換位(S
RR,“隱性”)、I位標(biāo)識擴展標(biāo)志(IDE,“隱性”)、18位擴展標(biāo)識(EID)、I位遠程傳輸請求(RTR,“顯性”)、1位雙速率傳輸標(biāo)識(HS,“隱性”)、2位保留位(r0、rl中一位或r0、rl同時,“顯性”)、4位數(shù)據(jù)長度字段(DLC)、64≤L≤76位CAN2.0位寬的數(shù)據(jù)字段(DATA)、15位CAN2.0位寬的CRC校驗字段、I位CRC校驗界定符、2位寬的應(yīng)答區(qū)、7位幀結(jié)束符(E0F,全部“隱性”)。其中,DATA和CRC校驗合稱數(shù)據(jù)期,其前后均為仲裁期。仲裁期和數(shù)據(jù)期兩個交替出現(xiàn)的階段,在仲裁期的所有比特以標(biāo)準(zhǔn)速率R發(fā)送,在數(shù)據(jù)期以N倍于R的速率發(fā)送,稱數(shù)據(jù)速率。
[0035]在CAN HS模式下,利用原CAN2.0協(xié)議幀結(jié)構(gòu)中的保留比特(由原來的“顯性”改為“隱性”)來標(biāo)記新的CAN HS數(shù)據(jù)幀,同時將原CAN2.0數(shù)據(jù)幀傳送部分(包括CAN2.0幀中的數(shù)據(jù)字段和CRC校驗字段)的比特劃分為N個等份,每個等份稱為CAN HS比特,N個CAN HS比特稱為HS組,即更高的比特速率進行傳輸,但同時保證為CAN2.0控制器提供可預(yù)知的數(shù)據(jù)流進行接收的填充規(guī)則檢查和CRC校驗檢查,使得CAN2.0控制器不會新增錯誤計數(shù)。在每個CAN2.0標(biāo)準(zhǔn)比特中劃分出的第I個CAN HS比特即跳變沿比特用于進行同步/再同步觸發(fā)以確保CAN2.0控制器的采樣點相位不變,其次在采樣點附近的N1 > 2個CANHS比特傳輸相同的值供CAN2.0控制器采樣取值,而N1個CAN HS比特的前L1≥I個CAN HS比特和后L2≥O個CAN HS比特用于傳輸CAN HS數(shù)據(jù)(稱為CAN HS數(shù)據(jù)比特),因此每單位CAN2.0比特可最大攜帶LJL2個CAN HS數(shù)據(jù)比特,從而提高了傳輸效率。
[0036]在本實施例中,采用本發(fā)明的CAN HS控制器發(fā)送的幀類似包含了 CAN2.0協(xié)議的數(shù)據(jù)幀、遠程幀、錯誤幀、超載幀,可以工作在CAN2.0協(xié)議模式或者CAN HS模式。在CAN2.0模式下所有幀結(jié)構(gòu)和處理方法與CAN2.0協(xié)議規(guī)定的一致,而CAN HS模式下,除數(shù)據(jù)幀外其他幀的功能和結(jié)構(gòu)與CAN2.0幀相同。所述比特填充方法與CAN2.0協(xié)議,發(fā)送者在每5個連續(xù)相同取值(如“顯性”/ “隱性”)比特后發(fā)送I位與前5位比特值取值相異的比特(即“隱性”/ “顯性”)。當(dāng)DLC的四個比特C3C2C1C0取值為OOOO~1000時,CAN HS控制器運行在CAN2.0模式,即使用CAN2.0幀格式;當(dāng)C3C2C1C0取值為1001~1111時,CAN HS控制器運行在CAN HS模式,即使用CAN HS數(shù)據(jù)幀格式。在CAN2.0模式下幀攜帶K = O~8字節(jié)的數(shù)據(jù);在CAN HS模式下,K = 9~15,分別表示8*2 (κ_8)字節(jié),或者單位CAN2.0數(shù)據(jù)比特傳輸2 (κ_8)個CAN HS比特。當(dāng)K = O~8時,CRC校驗字段選用CRC-15進行校驗,否則選用CRC-17或者CRC-21進行校驗。
[0037]在本實施例中,根據(jù)DLC取值對應(yīng)的CAN HS總數(shù)據(jù)比特數(shù)M選擇與CAN2.0相同的CRC校驗式,如當(dāng)M≤64時采用CAN2.0的CRC-15校驗式,當(dāng)64≤M≤128時選用CRC-17,而當(dāng)M > 128時選用CRC-21,以提供漢明距D≤6的糾錯保護。其中CRC-15為0xC599,即:
[0038]“ (χ15+χ14+χ10+χ8+χ7+χ4+χ3+1) = (χ+1) (χ7+χ3+1) (χ7+χ3+χ2+χ+1) ” ;
[0039]而CRC-17 和 CRC-21 可分別選用 0x3685B 和 0x302899,即:
[0040]“ (χ17+χ16+χ14+χ13+χ11+χ6+χ4+χ3+χ+1) = (χ+1) (χ16+χ13+χ10+χ9+χ8+χ7+χ6+χ3+1) ” 和“ (χ21+χ20+χ13+χη+χ7+χ4+χ3+1) = (χ+1) (χ10+χ3+1) (χ10+χ3+χ2+χ+1) ”。
[0041]在CAN HS模式下的數(shù)據(jù)期比特速率是仲裁期比特速率的N≥max(2K_8,4)倍,即將原CAN2.0幀的數(shù)據(jù)字段和校驗區(qū)的標(biāo)準(zhǔn)比特劃分成N個CAN HS比特。N個CAN HS比特被分成四個部分,依次分別為I個CAN HS比特、L1 ≥I個CANHS比特的數(shù)據(jù)字段1、5≥N1≥2個CAN HS比特的填充區(qū)和L2 SOfCAN HS比特的數(shù)據(jù)字段2。其中,第一個為跳變沿比特S的取值與前一個CAN2.0比特的最后一個CAN HS比特相異;填充區(qū)的所有CAN HS比特取相同值,且與之前所有CAN2.0比特填充區(qū)的取值滿足CAN2.0填充規(guī)則,即連續(xù)5次相同取值后本次填充取前一個CAN2.0比特填充區(qū)取值的相異值。為了進行比特同步和采樣,CAN2.0、CAN FD和CAN HS比特均被分為四段,依次為同步段(SYNC_REG)、傳播段(PR0P_SEG)、相段
I (PHASE_SEG1)、相段 2 (PHASE_SEG2),它們所占的時間分別為(I,Tpmpf Tfl,Tf2)tq,為
整數(shù)倍值,tq是最小時間單位tm的整數(shù)倍,tm與實現(xiàn)有關(guān)。于是,一個CAN2.0比特的時
間為:(I+?"胃+ ?,比特米樣點在相段I和相段2之間,因而米樣點相對比特起始位
置占比特時間比率為:
[0042]
=(1 ++ Tpt)/(1+ Tpmp + Tm + 1:,2) O
[0043]在CAN HS模式下,兩個數(shù)據(jù)字段均用于傳送CAN HS數(shù)據(jù)比特,且I個CAN2.0比特中最多可以傳輸LJL2≥2K_8個CAN HS數(shù)據(jù)比特。L1JpL2的取值應(yīng)盡量使得N1個CANHS比特的中心部分盡量對準(zhǔn)CAN2.0比特的采樣點,即CAN2.0比特中
[0044]
Τ?,+ΤψΙ ~ L1 +N,/2
2;);-;V,/2+£5[0045]或自CAN2.0比特開始位置到CAN2.0比特采樣點的時間所占CAN2.0比特的比率
為:
[0046]
r— =(1+4 + XM/,¥=(1+7^ + Tm)/(1+7^, + 7-- + Tp2)
[0047]根據(jù)這樣的傳輸規(guī)則,單位CAN2.0比特可以同時保證CAN2.0控制器不增加錯誤計數(shù)。
[0048]CAN HS模式下N的選擇可以根據(jù)DLC的取值變化,也可以對所有DLC值取相同的值。
[0049]CAN HS模式下,原CAN2.0幀校驗字段的數(shù)據(jù)字段I只有Lf2個比特用于CAN HS數(shù)據(jù)比特傳輸,而剩下的2個比特為填充區(qū)的輔助填充比特,以便能正確進行CAN2.0的CRC-15序列填充而不破壞CAN的填充規(guī)則。
[0050]CAN HS模式下,當(dāng)DLC的取值K滿足2K_8 ( L1時,在數(shù)據(jù)字段I的前2Κ_8個比特用于傳輸CAN HS數(shù)據(jù)比 特,剩下的Ι^-2Κ_8和數(shù)據(jù)字段2的L2個CAN HS比特傳輸任意值;當(dāng)2κ_8>1^時,則數(shù)據(jù)字段I的所有L1個比特全部用于傳輸CANHS數(shù)據(jù)比特,而數(shù)據(jù)字段2第三區(qū)段的前2Κ_8-!^個比特用于傳輸CAN HS數(shù)據(jù)比特,剩余的L2Iih^L1個比特傳輸任意值。
[0051]填充區(qū)和跳變沿位均是填充比特,其中填充區(qū)為全顯性或全隱性比特,而跳變沿則必須考慮特定位置跳變。因而設(shè)定規(guī)則依次如下:
[0052]①跳變沿比特取值規(guī)則:第I個跳變沿比特S的取值與數(shù)據(jù)長度字段DLC的最后I位取值相異;后續(xù)每個跳變沿比特S取值與上一個標(biāo)準(zhǔn)比特對應(yīng)位置最后一個CAN HS比特相異值即前一個HS組的最后一個CAN HS比特相異值,以保證CAN2.0標(biāo)準(zhǔn)比特的同步段出現(xiàn)一個跳變沿,確保CAN2.0控制器重同步的觸發(fā)時刻固定,從而保證CAN2.0控制器比特采樣相位基本固定;
[0053]②數(shù)據(jù)段I的填充規(guī)則:用數(shù)據(jù)依次填充在L1個比特中,并適用CAN協(xié)議本身的填充規(guī)則(即5個連續(xù)相同值后填充一個相異值)進行填充;
[0054]③填充區(qū)的填充規(guī)則
[0055]al、規(guī)則1:數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與填充區(qū)前面的最后一個CAN HS比特相同,如果填充區(qū)CAN HS比特與之前的即與數(shù)據(jù)段I緊鄰的CANHS比特進行組合,會出現(xiàn)5個連續(xù)相同值,則改為相異值填充;規(guī)則2:當(dāng)數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與之前所有填充區(qū)的取值滿足CAN2.0協(xié)議填充規(guī)則,即連續(xù)5次相同取值后則不再用規(guī)則I進行取值,而取前一個填充區(qū)取值的相異值,此時,如果填充區(qū)CAN HS比特與之前的即與數(shù)據(jù)段I緊鄰的CAN HS比特進行組合出現(xiàn)5個連續(xù)相同值,則將數(shù)據(jù)段I最后兩位CAN HS比特后移至數(shù)據(jù)段2,并填入兩位與前后取值相異的值,這樣進一步保證了這樣進一步保證了 CAN HS比特滿足CAN協(xié)議填充規(guī)則;
[0056]a2、校驗字段的填充區(qū)CAN HS比特取值根據(jù)數(shù)據(jù)字段的填充區(qū)CAN HS比特取值按照CAN2.0協(xié)議計算出校驗序列并進行填充,這樣保證了 CAN2.0控制器不會產(chǎn)生CRC校驗錯誤;其中將數(shù)據(jù)段I最后兩位CAN HS比特后移至數(shù)據(jù)段2,并填入兩位與前后取值即數(shù)據(jù)段I填入的最后一個數(shù)據(jù)與填充區(qū)填入的第一個CAN HS比特取值相異的值,這樣進一步保證了 CAN HS比特滿足CAN協(xié)議填充規(guī)則;
[0057]④數(shù)據(jù)段2的填充規(guī)則:依據(jù)用數(shù)據(jù)依次填充在L2個比特中,并適用CAN協(xié)議本身的填充規(guī)則(即5個連續(xù)相同值后填充一個相異值)進行填充;
[0058]需要說明的是,數(shù)據(jù)字段填充區(qū)的填充中,所述的規(guī)則I中的數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與填充區(qū)前面的最后一個CAN HS比特相同也可以該為相異,數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與前一個填充區(qū)的填充值相異。
[0059]在本發(fā)明中,CAN控制器配備必要的寄存器以支持本發(fā)明的運行,同時為了兼容CAN2.0控制器還必須包含CAN2.0協(xié)議相關(guān)的配置寄存器即CAN HS控制器必須同時支持CAN2.0協(xié)議和CAN HS協(xié)議即本發(fā)明。
[0060]在上述技術(shù)方案下,同一 CAN總線網(wǎng)絡(luò)中,CAN節(jié)點可以是僅支持CAN2.0協(xié)議的節(jié)點,也可以是既支持CAN2.0協(xié)議又支持CAN HS協(xié)議的節(jié)點;支持CAN HS協(xié)議的節(jié)點可以根據(jù)配置工作在CAN2.0協(xié)議模式,也可以工作在CANHS模式,但當(dāng)幀中的數(shù)據(jù)比特數(shù)大于8個字節(jié)或者等效的64個比特時,則必須以CAN HS模式工作。
[0061]本發(fā)明具有如下效果:
[0062]1、在兼容CAN2.0協(xié)議的基礎(chǔ)上允許以高于CAN2.0極限速率IMbps的速率進行數(shù)據(jù)傳輸,保留的原CAN2.0協(xié)議的多主性、分布式、實時傳輸能力,同時每個幀支持的數(shù)據(jù)長度更大,而所需時間為原CAN2.0幀長為8字節(jié)(即64比特)時的幀持續(xù)時間,因而具有更聞的吞吐率;
[0063]2、通過本發(fā)明設(shè)計的幀結(jié)構(gòu)設(shè)計以保證CAN2.0控制器在接收CAN HS數(shù)據(jù)幀時不會出現(xiàn)定時漂移(即比特同步相位不受影響),且能采樣時刻能采樣到確知的合法CAN數(shù)據(jù)比特和對應(yīng)的CRC校驗比特序列,即保證不會出現(xiàn)CRC錯誤,從而CAN2.0控制器不會新增錯誤計數(shù),于是CAN2.0控制器和CAN HS控制器能在同一 CAN網(wǎng)絡(luò)中共存。這樣當(dāng)CAN網(wǎng)絡(luò)的網(wǎng)關(guān)或者“上位機”的CAN控制器支持CAN HS協(xié)議時,即可根據(jù)需要添加CAN HS節(jié)點實現(xiàn)兼容、共存式的快速升級和部署。
[0064]本發(fā)明提出的CAN HS協(xié)議和傳輸方法相比CAN2.0協(xié)議可以支持更高的速率,即具備CAN FD的優(yōu)勢,同時還克服了 CAN FD不能與CAN2.0共存的問題。
[0065]圖1是CAN總線網(wǎng)絡(luò)拓?fù)涫疽鈭D。
[0066]如圖1所示,控制器局域網(wǎng)(CAN)有多個控制節(jié)點,通過CAN總線互聯(lián)在一起,每個CAN節(jié)點通過CAN控制器向CAN總線發(fā)送數(shù)據(jù)或接收數(shù)據(jù),而CAN控制器是通過CAN收發(fā)器連接到CAN總線。CAN收發(fā)器負(fù)責(zé)將CAN控制器的數(shù)據(jù)(通過“顯性”或者“隱性”電平代表O或I)轉(zhuǎn)換為CAN總線電平(差分信號網(wǎng)絡(luò)),或者將CAN總線的信號電平轉(zhuǎn)換為CAN控制器能處理的信號電平;而CAN控制器是節(jié)點到CAN總線的中介,它負(fù)責(zé)根據(jù)節(jié)點的需要在總線空閑時將數(shù)據(jù)發(fā)送到總線上,且在發(fā)送過程中負(fù)責(zé)總線接入權(quán)的仲裁,如果競爭失敗則退出發(fā)送并轉(zhuǎn)入接收模式;處于接收模式的CAN控制器對比特流一方面進行接收,一方面進行填充規(guī)則、格式以及CRC校驗檢查,如果出現(xiàn)了錯誤則進行錯誤計數(shù)更新,其中具體的檢查規(guī)則與現(xiàn)有的CAN2.0或者CAN FD協(xié)議一致。
[0067]在本發(fā)明中,CAN2.0控制器和CAN HS控制器可以共存在同一 CAN網(wǎng)絡(luò)中,CAN HS控制器如果集成了 CAN FD協(xié)議也可以和CAN FD控制共存同一 CAN網(wǎng)絡(luò)中。下面僅以CANHS和CAN2.0控制器共存方案進行說明,但并不限制CAN控制器集成三種協(xié)議后的共存方案的實施。
[0068]CAN HS控制器的基本原理框圖和CAN2.0控制器,甚至CAN FD控制器基本相同,如圖2所示。CAN控制器包含:發(fā)送邏輯、比特定時邏輯、發(fā)送FIF0、5種錯誤檢測邏輯、消息濾波、狀態(tài)機、MCU接口邏輯、時鐘發(fā)生器等,各部分的功能如下:
[0069]控制寄存器Control Registers:用于對CAN的工作模式等進行配置,包括定時控制、速率參數(shù)、濾波掩碼等配置;
[0070]錯誤計數(shù)器Error Registers:含發(fā)送錯誤計數(shù)器(TEC)和接收錯誤計算器(REC),用于在狀態(tài)機的控制下依據(jù)5種錯誤進行錯誤技術(shù)。5種錯誤分別為:比特錯誤(BE)、格式錯誤(FE)、CRC錯誤(CE)、應(yīng)答錯誤(AE)、填充錯誤(SE),具體的錯誤判別標(biāo)準(zhǔn)按照已有的CAN2.0協(xié)議規(guī)定進行。
[0071]狀態(tài)機State Machine是CAN控制器的核心部分,包含了所有協(xié)議流程的狀態(tài)及狀態(tài)控制邏輯。
[0072]時鐘發(fā)生器的功能是從系統(tǒng)基本時鐘產(chǎn)生系統(tǒng)各個功能部分所需要的時鐘源,如發(fā)送的位時序邏輯以及接收部分的硬同步和重同步模塊和比特采樣模塊等的時鐘。
[0073]位流處理器包括發(fā)送位流處理和接收位流處理。發(fā)送位流處理主要完成數(shù)據(jù)比特發(fā)送、比特填充、CRC計算和發(fā)送等,同時在接收位流處理的協(xié)作下完成發(fā)送數(shù)據(jù)時的總線仲裁、比特錯誤檢測、 應(yīng)答檢測等;而接收位流處理除了在發(fā)送數(shù)據(jù)時進行協(xié)助外,在控制器處于接收模式時,進行比特填充規(guī)則檢查、填充比特刪除、CRC校驗、驗收濾波、錯誤檢測和標(biāo)定、數(shù)據(jù)應(yīng)答等功能。
[0074]下面結(jié)合附圖和【具體實施方式】對本發(fā)明方法進行詳細說明。
[0075]支持CAN HS協(xié)議的控制器可以同時支持CAN2.0協(xié)議和CAN FD協(xié)議,后二者可按已有協(xié)議方法進行實施,除非特別說明,下面僅針對本發(fā)明的CAN HS協(xié)議實現(xiàn)進行說明。
[0076]如圖3、4、5所示,CAN HS協(xié)議的幀結(jié)構(gòu)基本與CAN2.0相同,也包括基本數(shù)據(jù)幀和擴展數(shù)據(jù)幀。其中基本數(shù)據(jù)幀將CAN2.0的基本數(shù)據(jù)幀種的保留位r0定義為HS字段,當(dāng)HS為“顯性”時意味著該幀為CAN2.0基本數(shù)據(jù)幀,否則為CANHS基本數(shù)據(jù)幀;相應(yīng)地,CAN HS擴展數(shù)據(jù)幀基于CAN2.0擴展,由于CAN2.0幀有兩個保留位r0和rl,因此在實施時可以通過三種方式實現(xiàn),即(r0,rl)=(顯性,隱性)、(隱性,顯性)或者(隱性,隱性)。
[0077]為了與CAN2.0協(xié)議共存,當(dāng)CAN幀的單幀數(shù)據(jù)長度不大于8字節(jié)時,自動適用CAN2.0幀,而當(dāng)單幀數(shù)據(jù)長度大于8字節(jié)時,DLC取值為OblOOl~Obl 100,而對應(yīng)數(shù)據(jù)長度為8*2(DLC-8)字節(jié),取值ObllOl~OblllO為保留值,Obllll用于表示盡可能使用最大長度,數(shù)據(jù)長度可能不再是整數(shù)倍字節(jié)長度。上述DLC編碼如圖6所示,其中也給出了 CAN2.0和CAN FD的相應(yīng)編碼對照。值得注意的是,圖6的CAN HS編碼方式特別是DLC≥8的編碼僅是一種實現(xiàn),不排除其他實現(xiàn)方式,而且具體實現(xiàn)中當(dāng)DLC取值為OblOOl~ObllOO時,數(shù)據(jù)長度也可以不是整數(shù)倍字節(jié)長度,如當(dāng)把CRC-15序列擴展出的CAN HS比特用上的話——后面將進一步說明。但當(dāng)CAN幀單幀數(shù)據(jù)長度大于8時,CAN HS數(shù)據(jù)幀的數(shù)據(jù)字段所占的時間剛好與CAN2.0幀中當(dāng)DLC = 8時的數(shù)據(jù)字段所占時間相同——這與CANFD協(xié)議類似。
[0078]如圖5所示,對于CAN2.0幀而言每個比特都被分為四個部分構(gòu)成,依次為同步段(SYNC_REG)、傳播段 (PR0P_SEG)、相段 I (PHASE_SEG1)、相段 2 (PHASE_SEG2),它們所占的時
間分別為(I, Tpmp, T fi, &2)的整數(shù)值,單位為tq,tq是整數(shù)倍的最小時間單位tm,乜與
實現(xiàn)有關(guān),且Tsyn ^ I。于是,一個CAN2.0比特的時間為:[0079]
【權(quán)利要求】
1.一種控制器局域網(wǎng)總線的提速方法,其特征在于,包括以下步驟: CAN控制器在發(fā)送遠程幀、錯誤幀、超載幀時依照CAN2.0協(xié)議的規(guī)范執(zhí)行;當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度小于8個字節(jié)時,CAN控制器以CAN2.0模式工作,即按照CAN2.0協(xié)議規(guī)范發(fā)送數(shù)據(jù)幀,而當(dāng)數(shù)據(jù)幀攜帶數(shù)據(jù)的長度大于8個字節(jié)時,CAN控制器以CAN HS模式工作即發(fā)送CAN HS數(shù)據(jù)幀; 其中,CAN HS數(shù)據(jù)幀中除數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段外,其他幀格式與CAN2.0數(shù)據(jù)幀格式相同,并做如下修改: (1)、將CANHS數(shù)據(jù)幀中的保留位作為CAN HS標(biāo)識位,并通過置為“隱性”表示CAN HS數(shù)據(jù)幀; (2)、將CANHS數(shù)據(jù)幀中數(shù)據(jù)期與CAN2.0數(shù)據(jù)幀數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段中每個標(biāo)準(zhǔn)比特的對應(yīng)位置均劃分為N個等份,每個等份稱為一個CANHS比特;對于每個標(biāo)準(zhǔn)比特對應(yīng)位置劃分為四個部分即跳變沿位、數(shù)據(jù)段1、填充區(qū)、數(shù)據(jù)段2:第I個CAN HS比特構(gòu)成跳變沿位,第I個CAN HS比特稱為跳變沿比特,緊接著L1 > I個CAN HS比特構(gòu)成數(shù)據(jù)段1,數(shù)據(jù)段I中的CAN HS比特為CAN HS數(shù)據(jù)比特,再緊接著N1 > 2個CAN HS比特構(gòu)成填充區(qū),填充區(qū)中的CANHS比特為填充區(qū)比特,最后為L2≥O個CAN HS比特構(gòu)成數(shù)據(jù)段2,數(shù)據(jù)段2中的CAN HS比特為CAN HS數(shù)據(jù)比特; L0N1,L2的取值滿足(1+W) /N與(Μ— + L)/(1+?胃+? +If2)差值最小,其中,N =1+L^N^L,, Tprop, Tvl,7;2為CAN2.0數(shù)據(jù)幀數(shù)據(jù)期的數(shù)據(jù)字段和校驗字段中每個標(biāo)準(zhǔn)比特的傳播段(PROP_SEG)、相段 I (PHASE_SEG1)、相段 2 (PHASE_SEG2)相對于同步段(SYNC_REG)的時長倍數(shù); (3)、填充規(guī)則 3.1)、第I個跳變沿比特S的取值與數(shù)據(jù)長度字段即DLC的最后I位取值相異,后續(xù)每個跳變沿比特S取值與上一個標(biāo)準(zhǔn)比特對應(yīng)位置最后一個CAN HS比特相異值; 3.2)、填充區(qū)的所有CAN HS比特的值相同,其中,數(shù)據(jù)字段的填充區(qū)CANHS比特取值與之前所有填充區(qū)的取值滿足CAN2.0協(xié)議填充規(guī)則,即連續(xù)5次相同取值后取前一個填充區(qū)取值的相異值,校驗字段的填充區(qū)CAN HS比特取值根據(jù)數(shù)據(jù)字段的填充區(qū)CAN HS比特取值按照CAN2.0協(xié)議計算出校驗序列并進行填充; 3.3)、數(shù)據(jù)段1、2的CAN HS比特用數(shù)據(jù)進行填充。
2.權(quán)利要求1所述的提速方法,其特征在于,所述的數(shù)據(jù)字段的填充區(qū)CANHS比特取值為: 規(guī)則1:數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與填充區(qū)前面的最后一個CANHS比特相同,如果填充區(qū)CAN HS比特與之前的即與數(shù)據(jù)段I緊鄰的CAN HS比特進行組合,會出現(xiàn)5個連續(xù)相同值,則改為相異值填充;規(guī)則2:當(dāng)數(shù)據(jù)字段的填充區(qū)CAN HS比特取值與之前所有填充區(qū)的取值滿足CAN2.0協(xié)議填充規(guī)則,即連續(xù)5次相同取值后則不再用規(guī)則I進行取值,而取前一個填充區(qū)取值的相異值,此時,如果填充區(qū)CAN HS比特與之前的即與數(shù)據(jù)段I緊鄰的CAN HS比特進行組合出現(xiàn)5個連續(xù)相同值,則將數(shù)據(jù)段I最后兩位CAN HS比特后移至數(shù)據(jù)段2,并填入兩位與前后取值相異的值。
3.權(quán)利要求1所述的提速方法,其特征在于,所述在校驗字段中,數(shù)據(jù)段I最后兩位CANHS比特后移至數(shù)據(jù)段2, 并填入兩位與前后取值相異的值。
【文檔編號】H04L1/00GK103973406SQ201410204407
【公開日】2014年8月6日 申請日期:2014年5月15日 優(yōu)先權(quán)日:2014年5月15日
【發(fā)明者】鄺育軍 申請人:電子科技大學(xué)