一種can總線無應答處理方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及汽車的CAN通信領域,尤其涉及一種CAN總線無應答處理方法及裝置。
【背景技術】
[0002] 在IS011898-1Roadvehicles-Controllerareanetwork(CAN)-化;rtl:Data linklayerand地ysicalsi即aling規(guī)范中,任何通信頓(報文)都必須被應答,如果沒有被 應答,則被標識為錯誤通信頓,如6. 10節(jié)。對于標識為錯誤通信頓(報文),通信頓發(fā)送者必 須重新發(fā)送此通信頓,發(fā)送時間間隔為17~23個位時間(最多不超過31個位時間)。在沒有 檢測到成功發(fā)送前,此通信頓會一直發(fā)送。重發(fā)此通信頓的時間間隔為0. 034~0. 046ms, W500化PS通信帶寬為例。
[0003] 按照IS011898規(guī)范,在出現(xiàn)無應答錯誤(NoAcknowledgementerror)時,通信頓 (報文)的發(fā)送方必須丟掉此通信頓,并將此相同通信頓自動重新發(fā)送,重新發(fā)送此相同通 信頓的時間間隔為17~23個位時間(最多不超過31個位時間),在沒有檢測到成功發(fā)送前, 此通信頓會一直自動重新發(fā)送。重發(fā)此通信頓的時間間隔為0. 034~0. 046ms,W500化PS 帶寬總線通信為例。
[0004] 產生無應答錯誤原因一般為發(fā)送控制單元的通信導線與其他接收控制單元斷開, 或發(fā)送控制單元的接收出現(xiàn)某種錯誤,無法檢測到發(fā)送通信頓被接收控制單元正常接收 (即被接收者應答)。此時,通信頓發(fā)送者將自動高頻率重發(fā)相同通信頓,因而會對通信頓發(fā) 送者的收發(fā)器工作強度、通信頓發(fā)送者(電控單元)電流消耗、整車EMC性能、殘余CAN總線 都會造成不良影響。但為了保證通信的可靠性,又不能直接關閉此項重發(fā)功能。
【發(fā)明內容】
[0005] 本發(fā)明所要解決的技術問題在于,提供一種CAN總線無應答處理方法及裝置。可 W在CAN總線出現(xiàn)無應答錯誤時,避免簡單高頻率重發(fā)通信頓。
[0006] 為了解決上述技術問題,本發(fā)明實施例的一方面提供一種CAN總線無應答處理方 法,用于乘用車的CAN總線通信中,包括如下步驟: 每隔第一時間周期持續(xù)對CAN總線所發(fā)送的通信頓是否存在無應答錯誤進行循環(huán)監(jiān) 測; 當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則在第二時間周期內W第一 頻率自動重發(fā)所述當前通信頓,然后在第H時間周期內停止自動重發(fā)所述當前通信頓,重 復上述處理過程,直至所述CAN總線所發(fā)送的當前通信頓不再存在無應答錯誤。
[0007] 其中,所述當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則在第二時 間周期內W第一頻率自動重發(fā)所述當前通信頓,然后在第H時間周期內停止自動重發(fā)所述 當前通信頓,重復上述處理過程,直至所述CAN總線所發(fā)送的當前通信頓不再存在無應答 錯誤的步驟進一步包括: 當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則在第二時間周期內W第一 頻率自動重發(fā)所述當前通信頓; 在所述第二時間周期到達后,且仍存在無應答錯誤時,在第H時間周期內停止自動重 發(fā)所述當前通信頓; 當所述第H時間周期到達后,繼續(xù)持續(xù)對所述CAN總線所發(fā)送的通信頓是否存在無應 答錯誤進行循環(huán)監(jiān)測,直至監(jiān)測到CAN總線所發(fā)送的當前通信頓不存在無應答錯誤。
[0008] 其中,進一步包括如下步驟: 當監(jiān)測到當前CAN總線所發(fā)送的通信頓不存在無應答錯誤,則正常發(fā)送后續(xù)的通信 頓。
[0009] 其中,進一步包括: 對CAN通信控制單元上電進行初始化,通過CAN控制器向CAN總線發(fā)送通信頓,檢測是 否存在總線關閉故障,如果存在總線關閉故障,則對所述總線關閉故障進行處理,在處理完 成后,重發(fā)所述通信頓; 在所述CAN通信控制單元上電進行初始化后經過第四時間周期后,則開始每隔第一時 間周期持續(xù)對CAN總線所發(fā)送的通信頓是否存在無應答錯誤進行循環(huán)監(jiān)測。
[0010] 其中,進一步包括如下步驟: 預先配置所述第一時間周期、所述第二時間周期、所述第H時間周期、所述第一頻率、 所述第四時間周期W及所述處理總線關閉故障的時間。
[0011] 相應地,本發(fā)明實施例的另一方面,還提供一種CAN總線無應答處理裝置,用于乘 用車的CAN總線通信中,包括: 無應答錯誤檢測單元,用于每隔第一時間周期持續(xù)對CAN總線所發(fā)送的通信頓是否存 在無應答錯誤進行循環(huán)監(jiān)測; 無應答錯誤處理單元,用于在所述無應答錯誤檢測單元監(jiān)測到CAN總線所發(fā)送的當前 通信頓存在無應答錯誤,則在第二時間周期內W第一頻率自動重發(fā)所述當前通信頓,然后 在第H時間周期內停止自動重發(fā)所述當前通信頓,重復上述處理過程,直至所述CAN總線 所發(fā)送的當前通信頓不再存在無應答錯誤。
[0012] 其中,所述無應答錯誤處理單元進一步包括: 重發(fā)子單元,用于當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則在第二 時間周期內W第一頻率自動重發(fā)所述當前通信頓; 重發(fā)停止子單元,在所述第二時間周期到達后,且仍存在無應答錯誤時,在第H時間周 期內停止自動重發(fā)所述當前通信頓; 處理結束子單元,當所述第H時間周期到達后,繼續(xù)持續(xù)對所述CAN總線所發(fā)送的通 信頓是否存在無應答錯誤進行循環(huán)監(jiān)測,直至監(jiān)測到CAN總線所發(fā)送的當前通信頓不存在 無應答錯誤。
[0013] 其中,進一步包括: 通信頓發(fā)送單元,用于在初始化后,W及當所述無應答錯誤檢測單元監(jiān)測到當前CAN總線所發(fā)送的通信頓不存在無應答錯誤時,發(fā)送通信頓。
[0014] 其中,進一步包括: 初始化單元,用于對CAN通信控制單元上電進行初始化,通過CAN控制器向CAN總線發(fā) 送通信頓; 總線關閉故障檢測處理單元,用于檢測是否存在總線關閉故障,如果存在總線關閉故 障,則對所述總線關閉故障進行處理,并在處理完成后,驅動所述通信頓發(fā)送單元重發(fā)所述 通信頓; 輪詢檢測觸發(fā)單元,用于在所述CAN通信控制單元上電進行初始化后經過第四時間周 期后,則啟動所述無應答錯誤檢測單元。
[0015] 其中,進一步包括: 參數(shù)配置單元,用于預先配置所述第一時間周期、所述第二時間周期、所述第H時間周 期、所述第一頻率、所述第四時間周期W及所述處理總線關閉故障的時間。
[0016] 實施本發(fā)明實施例,具有如下的有益效果: 本發(fā)明通過在可W在CAN總線出現(xiàn)無應答錯誤時,間隔性地重發(fā)通信頓,可W避免簡 單高頻率重發(fā)通信頓??蒞降低發(fā)送通信頓的控制單元收發(fā)器工作強度和發(fā)送通信頓控制 單元電流消耗,避免對整車EMC性能W及剩余CAN總線可能造成的不良影響。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 W根據(jù)送些附圖獲得其他的附圖。
[0018] 圖1是本發(fā)明提供的一種CAN總線無應答處理方法的一個實施例的主流程示意 圖; 圖2是圖1中的時序示意圖; 圖3是本發(fā)明提供的一種CAN總線無應答處理裝置的一個實施例的結構示意圖; 圖4是圖3中的無應答錯誤處理單元的結構示意圖。
【具體實施方式】
[0019] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0020] 如圖1W及圖2所示,示出了本發(fā)明提供的一種CAN總線無應答處理方法的一個 實施例。在該實施例中,該CAN總線無應答處理方法,用于乘用車的CAN總線通信中,其包 括如下步驟: 在步驟SlO中,對CAN通信控制單元上電進行初始化,通過CAN控制器向CAN總線發(fā)送 通信頓,并啟動一個tiwTjm計時器; 在步驟Sll中,檢測是否存在總線關閉故障(busoff故障),如果存在總線關閉故障,貝U在預定的tbuwff時間(處理總線關閉故障的時間)內對總線關閉故障進行處理,在處理完成 后,重發(fā)當前通信頓; 在步驟S13中,等待tiwTjM計時器的計時時間到達。
[002。 在CAN通信控制單元上電進行初始化后經過計時時間周期后,則開始每隔 第一時間周期to持續(xù)對CAN總線所發(fā)送的通信頓是否存在無應答錯誤進行循環(huán)監(jiān)測。具 體地,該循環(huán)監(jiān)測包括;每隔第一時間周期持續(xù)對CAN總線所發(fā)送的通信頓是否存在無應 答錯誤進行循環(huán)監(jiān)測;當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則在第二 時間周期JlAX)內W第一頻率fO自動重發(fā)當前通信頓,然后在第H時間周期(tw WAIT)內停止自動重發(fā)當前通信頓,重復上述處理過程,直至CAN總線所發(fā)送的當前通信頓不 再存在無應答錯誤。
[0022] 具體地,包括如下步驟: 在步驟S14中,每隔第一時間周期持續(xù)對CAN總線所發(fā)送的通信頓是否存在無應答錯 誤進行循環(huán)監(jiān)測,具體地,檢測無應答錯誤的過程具體為:在每次通信頓發(fā)送中,當其被正 確應答時,則通信頓最后一位被改寫,故當檢測到通信頓文最后一位未被改寫時,則表明發(fā) 生了無應答錯誤; 在步驟S15中,判斷是否存在無應答錯誤;當判斷結果為否,則在步驟S16中,繼續(xù)發(fā)送 后續(xù)的通信頓;如果判斷結果為是,則流程轉至步驟S17 ; 在步驟S17中,當監(jiān)測到CAN總線所發(fā)送的當前通信頓存在無應答錯誤,則啟動tw MAX計時器,并在該計時周期內,按預定的第一頻率自動重發(fā)當前通信頓; 步驟S18,在計時周期到達后,且仍存在無應答錯誤時,則啟動計時 器,并在該計時周期內,停止自動重發(fā)當前通信頓; 當MIT計時周期到達后,流程轉至步驟S14,繼續(xù)持續(xù)對CAN總線所發(fā)送的通信頓 是否存在無應答錯誤進行循環(huán)監(jiān)測,直至監(jiān)測到CAN總線所發(fā)送的當前通信頓不存在無應 答錯誤。
[