AUTOSAR从入门到精通100讲(三十六)-CAN总线错误处理
一 背景
寫這篇文章是因為我看到網(wǎng)上介紹CAN總線錯誤處理的文章,清一色的都是生搬照抄教科書或是數(shù)據(jù)文檔的內(nèi)容,特別是國內(nèi)很難找到一些有價值的內(nèi)容,這讓一些真正有需要的人很苦惱,包括我自己。這篇不打算對CAN的錯誤處理機制做進一步的探討,而是從實際工作中碰到的具體問題來分析一些常見的CAN總線錯誤和解決辦法。
二 CAN節(jié)點數(shù)據(jù)收發(fā)過程
了解CAN節(jié)點在總線上數(shù)據(jù)上的收發(fā)過程很重要,之前的一篇文章講解了一些CAN總線的錯誤處理機制,但是那些都是理論上的東西,如果不深入了解CAN總線上的數(shù)據(jù)收發(fā)過程,理解那些理論的東西難免有些晦澀。
我們知道CAN總線上的每個節(jié)點往總線上發(fā)送數(shù)據(jù)的同時會同時讀取總線上的數(shù)據(jù),并與自己發(fā)送的數(shù)據(jù)作對比。
CAN信息發(fā)送成功后,在這個間隙內(nèi),接收節(jié)點可以準備要回復的信息,也就是把應答場填充為顯性0,在發(fā)送時其為隱性1應答過程可能如下:當信息傳輸?shù)紸CK前的Del時,可以認為信息已經(jīng)傳輸完畢,接收節(jié)點也接收到了足夠的信息來檢測接收的信息是否正確,所以這時接收節(jié)點就會檢測信號是否正確,如果正確,就將ACK置位為顯性0,注意這時,發(fā)送節(jié)點因為還在發(fā)送而接收節(jié)點又將ACK信息置位為1,所以它就會在回讀時檢測到ACK為0,判斷接收成功。注意:這其中有個接收節(jié)點用顯性覆蓋隱性---覆蓋ACK位的過程,覆蓋+回讀。
ACK前后各加一個Del,就是為了考慮到時間誤差,讓接收節(jié)點有足夠的時間對ACK確認。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的AUTOSAR从入门到精通100讲(三十六)-CAN总线错误处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AUTOSAR从入门到精通100讲(三十
- 下一篇: AUTOSAR从入门到精通100讲(三十