一種can總線通信方法
【專利摘要】一種CAN總線通信方法,屬于串行通訊領(lǐng)域,CAN2.0b通信協(xié)議中定義了標準幀,標準幀包括標識區(qū)和數(shù)據(jù)區(qū),CAN總線中包括主節(jié)點和若干個從節(jié)點,將CAN2.0b通信協(xié)議中11bits標識區(qū)分成三部分,分別為幀信息區(qū),節(jié)點信息區(qū)和動態(tài)翻轉(zhuǎn)區(qū),其中幀信息區(qū)占據(jù)標識區(qū)中的0至4位,共5bits,節(jié)點信息區(qū)占據(jù)標識區(qū)中的5至8位,共4bits,動態(tài)翻轉(zhuǎn)區(qū)占據(jù)標識區(qū)中的9至10位,共2bits;本方法通信包括a、b、c、d、e五個步驟,通過這5個步驟后能夠讓主節(jié)點平等的接收各個從節(jié)點所發(fā)送的信息,避免一個從節(jié)點發(fā)送超長信息,堵塞整個節(jié)點通訊的問題。
【專利說明】一種CAN總線通信方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于串行通訊領(lǐng)域,涉及工業(yè)控制中常用的控制器局域網(wǎng)(CAN)總線通 ?目。
【背景技術(shù)】
[0002] CAN總線是一種有仲裁機制的差分信號傳輸?shù)目偩€,因為存在仲裁機制,而且總線 簡單,所以經(jīng)常被采用來做小數(shù)據(jù)量控制。作為總線傳輸,需要一個ID作為標識以確定報 文的作用。標識上可以區(qū)分板卡、通信內(nèi)容。CAN2. Ob的MAC層上定義了兩類通信幀,一種 標準幀,一種超長幀。對于標準幀,有11位的ID可以標識。CAN發(fā)送數(shù)據(jù)的時候,其優(yōu)先級 取決于該幀的ID,ID越小,優(yōu)先級越高。為了標識網(wǎng)絡(luò)中不同的節(jié)點,CAN的ID需要帶上 節(jié)點的信息(我們稱之為位置信息),從而導致天生的不平等性。如果只以位置信息為CAN 的ID,使得如果兩個節(jié)點同時傳輸多幀的數(shù)據(jù),位置信息導致的不平等性會使得其中一個 節(jié)點連續(xù)傳輸完所有的幀才會輪到另外一個節(jié)點搶到總線。如此在現(xiàn)實應用中不是很好, 不利于通信的均衡性。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明針對現(xiàn)有技術(shù)中的不足,提供了一種CAN總線通信方法,能夠讓主節(jié)點平 等的接收各個從節(jié)點所發(fā)送的信息,避免一個從節(jié)點發(fā)送超長信息,堵塞整個節(jié)點通訊的 問題。
[0004] 為了解決上述技術(shù)問題,本發(fā)明通過下述技術(shù)方案得以解決:一種CAN總線通信 方法,CAN2. Ob通信協(xié)議中定義了標準幀,標準幀包括標識區(qū)和數(shù)據(jù)區(qū),CAN總線中包括主 節(jié)點和若干個從節(jié)點,將CAN2. Ob通信協(xié)議中Ilbits標識區(qū)分成三部分,分別為幀信息區(qū), 節(jié)點信息區(qū)和動態(tài)翻轉(zhuǎn)區(qū),其中幀信息區(qū)占據(jù)標識區(qū)中的〇至4位,共5bits,節(jié)點信息區(qū)占 據(jù)標識區(qū)中的5至8位,共4bits,動態(tài)翻轉(zhuǎn)區(qū)占據(jù)標識區(qū)中的9至10位,共2bits ;本方法 通信包括以下步驟:
[0005] 步驟a):從節(jié)點向主節(jié)點發(fā)送數(shù)據(jù)時,首先發(fā)送應答幀,應答幀中標識區(qū)里幀信 息區(qū)的值是將要發(fā)送的數(shù)據(jù)幀的個數(shù),應答幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是當前從節(jié) 點的位置信息;
[0006] 步驟b):主節(jié)點接收到從節(jié)點的應答幀后,向從節(jié)點發(fā)送回應幀,回應幀標識區(qū) 里幀信息區(qū)的值是從節(jié)點將要發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從 節(jié)點的位置信息;
[0007] 步驟c):從節(jié)點接收到回應幀后,向主節(jié)點發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀中標識區(qū)里幀信 息區(qū)的值是當前數(shù)據(jù)幀的序數(shù),數(shù)據(jù)幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是當前從節(jié)點的位 置信息;
[0008] 步驟d):主節(jié)點接收到從節(jié)點最后一個數(shù)據(jù)幀后發(fā)送確認幀,確認幀的標識區(qū)幀 信息區(qū)的值是從節(jié)點發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲的是此從節(jié)點的位置 信息,確認幀的數(shù)據(jù)區(qū)存儲有接收掩碼,接收掩碼顯示在通訊過程中是否丟幀;
[0009] 步驟e):從節(jié)點接收到確認幀后,根據(jù)接收掩碼判斷是否丟幀,如果發(fā)現(xiàn)丟幀,則 重新發(fā)送丟失的數(shù)據(jù)幀,主節(jié)點接收到從節(jié)點重新發(fā)送來的數(shù)據(jù)幀后再向從節(jié)點發(fā)送確認 幀,直至從節(jié)點接收到的確認幀內(nèi)接收掩碼顯示沒有丟幀,如果從節(jié)點接收到接收掩碼確 認沒有丟幀,則表明信息全部傳輸完成,結(jié)束本次通訊;
[0010] 在從節(jié)點每次開始一次新的通訊時,從節(jié)點所發(fā)送的應答幀和數(shù)據(jù)幀中標識區(qū)里 動態(tài)翻轉(zhuǎn)區(qū)的值按照發(fā)送順序依次進行01、10、11轉(zhuǎn)換,主節(jié)點在同一時間段優(yōu)先接收從 節(jié)點發(fā)所發(fā)送的幀中動態(tài)翻轉(zhuǎn)區(qū)值為01的幀,再接收動態(tài)翻轉(zhuǎn)區(qū)值為10的幀,最后接收動 態(tài)翻轉(zhuǎn)區(qū)值為11的幀。
[0011] 上述技術(shù)方案中,優(yōu)選的,步驟a1):主節(jié)點向從節(jié)點發(fā)送數(shù)據(jù)時,首先發(fā)送應答 幀,應答幀中標識區(qū)里幀信息區(qū)的值是將要發(fā)送的數(shù)據(jù)幀的個數(shù),應答幀中標識區(qū)里節(jié)點 信息區(qū)存儲的是接收從節(jié)點的位置信息,信息區(qū)存儲有發(fā)送應答碼;
[0012] 步驟b1):從節(jié)點接收到主節(jié)點的應答幀后,向從節(jié)點發(fā)送回應幀,回應幀標識區(qū) 里幀信息區(qū)的值是主節(jié)點將要發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從 節(jié)點的位置信息,信息區(qū)存儲有接收應答碼;
[0013] 步驟C1):主節(jié)點接收到回應幀后,向從節(jié)點發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀中標識區(qū)里幀信 息區(qū)的值是當前數(shù)據(jù)幀的序數(shù),數(shù)據(jù)幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是接收從節(jié)點的位 置信息;
[0014] 步驟d1):從節(jié)點接收到主節(jié)點最后一個數(shù)據(jù)幀后發(fā)送確認幀,確認幀的標識區(qū)里 幀信息區(qū)的值是主節(jié)點發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從節(jié)點的 位置信息,確認幀的數(shù)據(jù)區(qū)存儲有接收掩碼,接收掩碼顯示在通訊過程中是否丟幀;
[0015] 步驟e1):主節(jié)點接收到確認幀后,根據(jù)接收掩碼確認是否丟幀,如果發(fā)現(xiàn)丟幀,則 重新發(fā)送丟掉的數(shù)據(jù)幀,從節(jié)點接收到主節(jié)點重新發(fā)送來的數(shù)據(jù)幀后再向主節(jié)點發(fā)送確認 幀,直至主節(jié)點接收到的確認幀內(nèi)接收掩碼顯示沒有丟幀,如果主節(jié)點接收到接收掩碼確 認沒有丟幀,則表明信息全部傳輸完成,結(jié)束本次通訊;
[0016] 在主節(jié)點向從節(jié)點通訊時,主節(jié)點所有幀的標識區(qū)里動態(tài)翻轉(zhuǎn)區(qū)值都為00,從節(jié) 點所有幀的標識區(qū)里動態(tài)翻轉(zhuǎn)區(qū)值都為01。
[0017] 上述技術(shù)方案中,優(yōu)選的,步驟a中從節(jié)點發(fā)送應答幀后一段時間內(nèi)沒有接收到 主節(jié)點的回應幀,則繼續(xù)發(fā)送應答幀,直至接收到主節(jié)點的回應幀;
[0018] 步驟b中主節(jié)點發(fā)送完回應幀后一段時間內(nèi)沒有接收到從節(jié)點的數(shù)據(jù)幀,則繼續(xù) 發(fā)送回應幀,直至接收到從節(jié)點的數(shù)據(jù)幀;
[0019] 步驟d中從節(jié)點發(fā)送最后一個數(shù)據(jù)幀后一段時間內(nèi)沒有接收到主節(jié)點的確認幀, 則繼續(xù)發(fā)送最后一個數(shù)據(jù)幀,直至接收到主節(jié)點的確認幀;
[0020] 步驟e中,如果從節(jié)點和主節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,主節(jié)點向從節(jié)點發(fā)送確 認幀后一段時間內(nèi)沒有接收到從節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送確認幀,直至接收到從節(jié)點的 數(shù)據(jù)幀;
[0021] 步驟e中,如果從節(jié)點和主節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,從節(jié)點接收到主節(jié)點的 確認幀后向主節(jié)點按序數(shù)發(fā)送丟失的數(shù)據(jù)幀,當最后一個丟失數(shù)據(jù)幀發(fā)送完后一段時間內(nèi) 沒有接收到主節(jié)點的確認幀,則繼續(xù)發(fā)送最后一個丟失的數(shù)據(jù)幀,直至接收到主節(jié)點的確 認幀。
[0022] 上述技術(shù)方案中,優(yōu)選的,步驟d和步驟e中,接收掩碼為4字節(jié)32位二進制碼, 二進制碼從右到左每一位按照數(shù)據(jù)幀發(fā)送的順序與數(shù)據(jù)幀一一對應,其中,如果主節(jié)點接 受到數(shù)據(jù)幀,則二進制碼相應位的值是1,如果沒有接收到則值為〇。
[0023] 上述技術(shù)方案中,優(yōu)選的,步驟a1中主節(jié)點發(fā)送應答幀后一段時間內(nèi)沒有接收到 從節(jié)點的回應幀,則繼續(xù)發(fā)送應答幀,直至接收到從節(jié)點的回應幀;
[0024] 步驟b1中從節(jié)點發(fā)送完回應幀后一段時間內(nèi)沒有接收到主節(jié)點的數(shù)據(jù)巾貞,則繼續(xù) 發(fā)送回應幀,直至接收到主節(jié)點的數(shù)據(jù)幀;
[0025] 步驟d1中主節(jié)點發(fā)送最后一個數(shù)據(jù)幀后一段時間內(nèi)沒有接收到從節(jié)點的確認幀, 則繼續(xù)發(fā)送最后一個數(shù)據(jù)幀,直至接收到從節(jié)點的確認幀;
[0026] 步驟e1中,如果主節(jié)點和從節(jié)點通訊中發(fā)生了丟幀現(xiàn)象,從節(jié)點向主節(jié)點發(fā)送確 認幀后一段時間內(nèi)沒有接收到主節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送回應幀,直至接收到主節(jié)點的 數(shù)據(jù)幀;
[0027] 步驟e1中,如果主節(jié)點和從節(jié)點通訊中發(fā)生了丟幀現(xiàn)象,主節(jié)點接收到從節(jié)點的 確認幀后向從節(jié)點按序數(shù)發(fā)送丟失的數(shù)據(jù)幀,當最后一個丟失數(shù)據(jù)幀發(fā)送完后一段時間內(nèi) 沒有接收到從節(jié)點的確認幀,則繼續(xù)發(fā)送最后一個丟失的數(shù)據(jù)幀,直至接收到從節(jié)點的確 認幀。
[0028] 上述技術(shù)方案中,優(yōu)選的,步驟d1和步驟e1中,接收掩碼為4字節(jié)32位二進制碼, 二進制碼從右到左每一位按照數(shù)據(jù)幀發(fā)送的順序與數(shù)據(jù)幀一一對應,其中,如果從節(jié)點接 受到數(shù)據(jù)幀,則二進制碼相應位的值是1,如果沒有接收到則值為0。
[0029] 上述技術(shù)方案中,優(yōu)選的,發(fā)送應答碼為1字節(jié)8位二進制碼,值為00000000 ;接 收應答碼為1字節(jié)8位二進制碼,值為11111111。
[0030] 在CAN總線通信中,主節(jié)點與從節(jié)點的通訊非常頻繁,容易發(fā)生若干個從節(jié)點同 時向主節(jié)點發(fā)送信息的情況,一般情況下主節(jié)點首先接收位置信息靠前的從節(jié)點的信息, 比如從節(jié)點〇和從節(jié)點1同時向主節(jié)點發(fā)送信息,主節(jié)點首先接收從節(jié)點〇的信息,再接收 從節(jié)點1的信息。這就造成了信息接收的不平等性。如果從節(jié)點〇發(fā)送的信息較長同時優(yōu) 先級不高,從節(jié)點1發(fā)送的信息優(yōu)先級較高,同時較短,理想狀態(tài)下優(yōu)先接收從節(jié)點1的信 息。本方法就是一種主節(jié)點在同一時間段平等接收各個從節(jié)點信息的方法。本方法主要在 幀的標識區(qū)內(nèi)設(shè)置動態(tài)翻轉(zhuǎn)區(qū),動態(tài)翻轉(zhuǎn)區(qū)的值分別為〇〇、〇1、1〇、11,其中〇〇只給從主節(jié) 點所發(fā)送的幀,從節(jié)點與主節(jié)點通訊時,從節(jié)點所發(fā)送幀的動態(tài)翻轉(zhuǎn)區(qū)依次按照〇1、1〇、11 的順序循環(huán)替換。主節(jié)點接收幀時,在一定時間內(nèi)優(yōu)先接收動態(tài)翻轉(zhuǎn)區(qū)為01的幀,然后再 接收動態(tài)翻轉(zhuǎn)區(qū)為10的幀,最后接收動態(tài)翻轉(zhuǎn)區(qū)為11的幀。如此一來,若干個從節(jié)點同時 向主節(jié)點發(fā)送信息時,每個從節(jié)點的幀都會依次被主節(jié)點接收到,發(fā)送信息段短的從節(jié)點 的信息被首先接收完畢。在主節(jié)點接收若干從節(jié)點的信息過程中,還有其他的從節(jié)點向主 節(jié)點發(fā)送信息時,因為這個從節(jié)點所發(fā)送第一個幀的動態(tài)翻轉(zhuǎn)區(qū)值為01,主節(jié)點會優(yōu)先接 收這個幀,讓這個從節(jié)點的信息進入接收序列。在主節(jié)點向從節(jié)點發(fā)送信息時,從節(jié)點回復 主節(jié)點的幀的動態(tài)翻轉(zhuǎn)區(qū)都為01,這樣保證了可以讓從節(jié)點快速回復主節(jié)點。通過這種方 法主節(jié)點就能在通訊量巨大的同時快速的接收到比較重要又短小的信息(比如報警,損壞 等),對整個系統(tǒng)做正確快速的反應。
[0031] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:能夠讓主節(jié)點平等的接收各個從節(jié)點所 發(fā)送的信息,避免一個從節(jié)點發(fā)送超長信息,堵塞整個節(jié)點通訊的問題。
【具體實施方式】
[0032] 下面結(jié)合【具體實施方式】對本發(fā)明作進一步詳細描述。
[0033] 實施例1 :
【權(quán)利要求】
1. 一種CAN總線通信方法,CAN2. Ob通信協(xié)議中定義了標準幀,標準幀包括標識區(qū)和數(shù) 據(jù)區(qū),CAN總線中包括主節(jié)點和若干個從節(jié)點,其特征在于,將CAN2. Ob通信協(xié)議中l(wèi)lbits 標識區(qū)分成三部分,分別為幀信息區(qū),節(jié)點信息區(qū)和動態(tài)翻轉(zhuǎn)區(qū),其中幀信息區(qū)占據(jù)標識區(qū) 中的0至4位,共5bits,節(jié)點信息區(qū)占據(jù)標識區(qū)中的5至8位,共4bits,動態(tài)翻轉(zhuǎn)區(qū)占據(jù) 標識區(qū)中的9至10位,共2bits ;本方法通信包括以下步驟: 步驟a):從節(jié)點向主節(jié)點發(fā)送數(shù)據(jù)時,首先發(fā)送應答幀,應答幀中標識區(qū)里幀信息區(qū) 的值是將要發(fā)送的數(shù)據(jù)幀的個數(shù),應答幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是當前從節(jié)點的 位置信息; 步驟b):主節(jié)點接收到從節(jié)點的應答幀后,向從節(jié)點發(fā)送回應幀,回應幀標識區(qū)里幀 信息區(qū)的值是從節(jié)點將要發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從節(jié)點 的位置信息; 步驟c):從節(jié)點接收到回應幀后,向主節(jié)點發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀中標識區(qū)里幀信息區(qū) 的值是當前數(shù)據(jù)幀的序數(shù),數(shù)據(jù)幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是當前從節(jié)點的位置信 息; 步驟d):主節(jié)點接收到從節(jié)點最后一個數(shù)據(jù)幀后發(fā)送確認幀,確認幀的標識區(qū)幀信息 區(qū)的值是從節(jié)點發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲的是此從節(jié)點的位置信 息,確認幀的數(shù)據(jù)區(qū)存儲有接收掩碼,接收掩碼顯示在通訊過程中是否丟幀; 步驟e):從節(jié)點接收到確認幀后,根據(jù)接收掩碼判斷是否丟幀,如果發(fā)現(xiàn)丟幀,則重新 發(fā)送丟失的數(shù)據(jù)幀,主節(jié)點接收到從節(jié)點重新發(fā)送來的數(shù)據(jù)幀后再向從節(jié)點發(fā)送確認幀, 直至從節(jié)點接收到的確認幀內(nèi)接收掩碼顯示沒有丟幀,如果從節(jié)點接收到接收掩碼確認沒 有丟幀,則表明信息全部傳輸完成,結(jié)束本次通訊; 在從節(jié)點每次開始一次新的通訊時,從節(jié)點所發(fā)送的應答幀和數(shù)據(jù)幀中標識區(qū)里動態(tài) 翻轉(zhuǎn)區(qū)的值按照發(fā)送順序依次進行〇1、1〇、11轉(zhuǎn)換,主節(jié)點在同一時間段優(yōu)先接收從節(jié)點 發(fā)所發(fā)送的幀中動態(tài)翻轉(zhuǎn)區(qū)值為01的幀,再接收動態(tài)翻轉(zhuǎn)區(qū)值為10的幀,最后接收動態(tài)翻 轉(zhuǎn)區(qū)值為11的幀。
2. 根據(jù)權(quán)利要求1所述的一種CAN總線通信方法,其特征為本方法通信還包括以下幾 個步驟: 步驟a1):主節(jié)點向從節(jié)點發(fā)送數(shù)據(jù)時,首先發(fā)送應答幀,應答幀中標識區(qū)里幀信息區(qū) 的值是將要發(fā)送的數(shù)據(jù)幀的個數(shù),應答幀中標識區(qū)里節(jié)點信息區(qū)存儲的是接收從節(jié)點的位 置信息,信息區(qū)存儲有發(fā)送應答碼; 步驟b1):從節(jié)點接收到主節(jié)點的應答幀后,向從節(jié)點發(fā)送回應幀,回應幀標識區(qū)里幀 信息區(qū)的值是主節(jié)點將要發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從節(jié)點 的位置信息,信息區(qū)存儲有接收應答碼; 步驟c1):主節(jié)點接收到回應幀后,向從節(jié)點發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀中標識區(qū)里幀信息區(qū) 的值是當前數(shù)據(jù)幀的序數(shù),數(shù)據(jù)幀中標識區(qū)里節(jié)點信息區(qū)存儲是的是接收從節(jié)點的位置信 息; 步驟d1):從節(jié)點接收到主節(jié)點最后一個數(shù)據(jù)幀后發(fā)送確認幀,確認幀的標識區(qū)里幀信 息區(qū)的值是主節(jié)點發(fā)送的數(shù)據(jù)幀的個數(shù),標識區(qū)里節(jié)點信息區(qū)存儲是的是此從節(jié)點的位置 信息,確認幀的數(shù)據(jù)區(qū)存儲有接收掩碼,接收掩碼顯示在通訊過程中是否丟幀; 步驟e1):主節(jié)點接收到確認幀后,根據(jù)接收掩碼確認是否丟幀,如果發(fā)現(xiàn)丟幀,則重新 發(fā)送丟掉的數(shù)據(jù)幀,從節(jié)點接收到主節(jié)點重新發(fā)送來的數(shù)據(jù)幀后再向主節(jié)點發(fā)送確認幀, 直至主節(jié)點接收到的確認幀內(nèi)接收掩碼顯示沒有丟幀,如果主節(jié)點接收到接收掩碼確認沒 有丟幀,則表明信息全部傳輸完成,結(jié)束本次通訊; 在主節(jié)點向從節(jié)點通訊時,主節(jié)點所有幀的標識區(qū)里動態(tài)翻轉(zhuǎn)區(qū)值都為00,從節(jié)點所 有幀的標識區(qū)里動態(tài)翻轉(zhuǎn)區(qū)值都為01。
3. 根據(jù)權(quán)利要求1所述的一種CAN總線通信方法,其特征為, 步驟a中從節(jié)點發(fā)送應答幀后一段時間內(nèi)沒有接收到主節(jié)點的回應幀,則繼續(xù)發(fā)送應 答幀,直至接收到主節(jié)點的回應幀; 步驟b中主節(jié)點發(fā)送完回應幀后一段時間內(nèi)沒有接收到從節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送 回應幀,直至接收到從節(jié)點的數(shù)據(jù)幀; 步驟d中從節(jié)點發(fā)送最后一個數(shù)據(jù)幀后一段時間內(nèi)沒有接收到主節(jié)點的確認幀,則繼 續(xù)發(fā)送最后一個數(shù)據(jù)幀,直至接收到主節(jié)點的確認幀; 步驟e中,如果從節(jié)點和主節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,主節(jié)點向從節(jié)點發(fā)送確認中貞 后一段時間內(nèi)沒有接收到從節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送確認幀,直至接收到從節(jié)點的數(shù)據(jù) 幀; 步驟e中,如果從節(jié)點和主節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,從節(jié)點接收到主節(jié)點的確認 幀后向主節(jié)點按序數(shù)發(fā)送丟失的數(shù)據(jù)幀,當最后一個丟失數(shù)據(jù)幀發(fā)送完后一段時間內(nèi)沒有 接收到主節(jié)點的確認幀,則繼續(xù)發(fā)送最后一個丟失的數(shù)據(jù)幀,直至接收到主節(jié)點的確認幀。
4. 根據(jù)權(quán)利要求1所述的一種CAN總線通信方法,其特征為,步驟d和步驟e中,接收 掩碼為4字節(jié)32位二進制碼,二進制碼從右到左每一位按照數(shù)據(jù)幀發(fā)送的順序與數(shù)據(jù)幀 一一對應,其中,如果主節(jié)點接受到數(shù)據(jù)幀,則二進制碼相應位的值是1,如果沒有接收到則 值為0。
5. 根據(jù)權(quán)利要求2所述的一種CAN總線通信方法,其特征為, 步驟a1中主節(jié)點發(fā)送應答幀后一段時間內(nèi)沒有接收到從節(jié)點的回應幀,則繼續(xù)發(fā)送應 答幀,直至接收到從節(jié)點的回應幀; 步驟b1中從節(jié)點發(fā)送完回應幀后一段時間內(nèi)沒有接收到主節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送 回應幀,直至接收到主節(jié)點的數(shù)據(jù)幀; 步驟d1中主節(jié)點發(fā)送最后一個數(shù)據(jù)幀后一段時間內(nèi)沒有接收到從節(jié)點的確認幀,則繼 續(xù)發(fā)送最后一個數(shù)據(jù)幀,直至接收到從節(jié)點的確認幀; 步驟e1中,如果主節(jié)點和從節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,從節(jié)點向主節(jié)點發(fā)送確認中貞 后一段時間內(nèi)沒有接收到主節(jié)點的數(shù)據(jù)幀,則繼續(xù)發(fā)送回應幀,直至接收到主節(jié)點的數(shù)據(jù) 幀; 步驟e1中,如果主節(jié)點和從節(jié)點通訊中發(fā)生了丟巾貞現(xiàn)象,主節(jié)點接收到從節(jié)點的確認 幀后向從節(jié)點按序數(shù)發(fā)送丟失的數(shù)據(jù)幀,當最后一個丟失數(shù)據(jù)幀發(fā)送完后一段時間內(nèi)沒有 接收到從節(jié)點的確認幀,則繼續(xù)發(fā)送最后一個丟失的數(shù)據(jù)幀,直至接收到從節(jié)點的確認幀。
6. 根據(jù)權(quán)利要求2所述的一種CAN總線通信方法,其特征為,步驟d1和步驟e1中,接 收掩碼為4字節(jié)32位二進制碼,二進制碼從右到左每一位按照數(shù)據(jù)幀發(fā)送的順序與數(shù)據(jù)幀 一一對應,其中,如果從節(jié)點接受到數(shù)據(jù)幀,則二進制碼相應位的值是1,如果沒有接收到則 值為0。
7.根據(jù)權(quán)利要求2所述的一種CAN總線通信方法,其特征為,發(fā)送應答碼為1字節(jié)8位 二進制碼,值為〇〇〇〇〇〇〇〇 ;接收應答碼為1字節(jié)8位二進制碼,值為11111111。
【文檔編號】H04L12/40GK104393966SQ201410529273
【公開日】2015年3月4日 申請日期:2014年10月10日 優(yōu)先權(quán)日:2014年10月10日
【發(fā)明者】鄭堅江, 蔡晉, 馮丹榮 申請人:寧波三星電氣股份有限公司